GRASP (object-oriented design)

GRASPGRASP information expertGRASP principles
General Responsibility Assignment Software Patterns (or Principles), abbreviated GRASP, consist of guidelines for assigning responsibility to classes and objects in object-oriented design.wikipedia
24 Related Articles

Object-oriented design

designobject orientedobject-oriented
General Responsibility Assignment Software Patterns (or Principles), abbreviated GRASP, consist of guidelines for assigning responsibility to classes and objects in object-oriented design.

Craig Larman

Computer scientist Craig 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."
In this he introduced the GRASP principles of object-oriented design, contributing to the codification of software design principles.

SOLID

SOLID (object-oriented design)SOLID principles
It is not related to the SOLID design principle.
It is not related to the GRASP software design principles.

Design Patterns

GoF design patternsDesign Patterns: Elements of Reusable Object-Oriented SoftwareGang of Four

Cohesion (computer science)

cohesioncohesiveHigh Cohesion
The different patterns and principles used in GRASP are controller, creator, indirection, information expert, high cohesion, low coupling, polymorphism, protected variations, and pure fabrication.

Coupling (computer programming)

couplingdependenciesdependency
The different patterns and principles used in GRASP are controller, creator, indirection, information expert, high cohesion, low coupling, polymorphism, protected variations, and pure fabrication.

Software

Computer softwareSoftware & Programmingsoftware technology
All these patterns answer some software problems, and these problems are common to almost every software development project.

Software development

developmentdevelopedapplication development
All these patterns answer some software problems, and these problems are common to almost every software development project.

Computer programming

programmingcodingprogrammable
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.

Unified Modeling Language

UMLUnified Modelling Languageinteraction diagram
Computer scientist Craig 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."

User interface

UIinterfaceweb interface
The controller pattern assigns the responsibility of dealing with system events to a non-UI class that represents the overall system or a use case scenario.

Use case

use casesuse-caseUse case diagram
The controller pattern assigns the responsibility of dealing with system events to a non-UI class that represents the overall system or a use case scenario.

Business logic

business logic layerdomain layerapplication logic
The GRASP Controller can be thought of as being a part of the application/service layer (assuming that the application has made an explicit distinction between the application/service layer and the domain layer) in an object-oriented system with common layers in an information system logical architecture.

Polymorphism (computer science)

polymorphismpolymorphictype polymorphism
The different patterns and principles used in GRASP are controller, creator, indirection, information expert, high cohesion, low coupling, polymorphism, protected variations, and pure fabrication. The protected variations pattern protects elements from the variations on other elements (objects, systems, subsystems) by wrapping the focus of instability with an interface and using polymorphism to create various implementations of this interface.

Interface (computing)

interfaceinterfacescomputer interface
The protected variations pattern protects elements from the variations on other elements (objects, systems, subsystems) by wrapping the focus of instability with an interface and using polymorphism to create various implementations of this interface.

Domain-driven design

Domain Driven Designbuilding blocks of DDD
This kind of class is called a "service" in domain-driven design.

Interface segregation principle

interface segregationisolated
ISP is one of the five SOLID principles of object-oriented design, similar to the High Cohesion Principle of GRASP.

Object-oriented programming

object-orientedobject orientedobject-oriented programming language
GRASP (General Responsibility Assignment Software Patterns) is another set of guidelines advocated by Craig Larman.