GRASP (object-oriented design)

General Responsibility Assignment Software Patterns (or Principles), abbreviated GRASP, is a set of "nine fundamental principles in object design and responsibility assignment"[1]: 6  first published by Craig Larman in his 1997[citation needed] book Applying UML and Patterns.

The different patterns and principles used in GRASP are controller, creator, indirection, information expert, low coupling, high cohesion, polymorphism, protected variations, and pure fabrication.[2] All these patterns solve some software problems common to many software development projects. These techniques have not been invented to create new ways of working, but to better document and standardize old, tried-and-tested programming principles in object-oriented design.

Larman states that "the critical design tool for software development is a mind well educated in design principles. It is not UML or any other technology."[3]: 272  Thus, the GRASP principles are really a mental toolset, a learning aid to help in the design of object-oriented software.

  1. ^ Cite error: The named reference Larman2001 was invoked but never defined (see the help page).
  2. ^ Cite error: The named reference Umair2018 was invoked but never defined (see the help page).
  3. ^ Cite error: The named reference Larman2004 was invoked but never defined (see the help page).