References General Responsibility Assignment Software Patterns SOLID, GRASP, and Other Basic Principles of Object-Oriented Design GRASP Wiki