General Responsibility Assignment Software Patterns/Principles (GRASP)
- consist of guidelines for assigning responsibility to classes and objects in object-oriented design
- the different patterns and principles used in GRASP are: controller, creator, indirection, information expert, low coupling, high cohesion, polymorphism, protected variations, and pure fabrication