Jump to content

GRASP (object-oriented design)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Rscottfree (talk | contribs) at 19:47, 26 April 2006 (First post. Just a starting page for someone who knows more than me to add to.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

General Overview

GRASP stands for General Responsibility Assignment Software Patterns (or sometimes Principles). It is used in object oriented design, and gives guidelines for assigning responsibility to classes and objects. Examples of different patters/principles used in GRASP are: Information Expert, Creator, Controller, Low Coupling, High Cohesion, Polymorphism, Pure Fabrication, Indirection, Protected Variations. All these patters answer some software problem, and in most every case these problems are common to most every software development project, thus they don't exist to facilitate new information, but to better document and standardize old, tried-and-true programming principles in object oriented design. "The critical design tool for software development is a mind well educated in design principles. It is not the UML or any other technology" (Larmen, Craig. Applying UML and Patterns - Third Edition. [1]). Thus, GRASP is really just a toolset, a learning aid to help in the design of object oriented software.