GRASP (General Responsibility Assignment Software Patterns) è un file design pattern nello sviluppo di software orientato agli oggetti utilizzato per assegnare responsabilità a diversi moduli di codice.
Come strumento per gli sviluppatori di software, GRASP fornisce un mezzo per risolvere i problemi organizzativi e offre un modo comune per parlare di concetti astratti. Il modello di progettazione definisce le responsabilità per oggetti e classi in orientata agli oggetti progettazione del programma.
GRASP con la programmazione orientata agli oggetti classifica i problemi e le loro soluzioni insieme come modelli. Con questi problemi e soluzioni ben definiti, possono essere applicati in altri casi simili. GRASP assegna sette tipi di ruoli alle classi e agli oggetti in modo da definire chiaramente le responsabilità. Questi ruoli sono:
- Controller
- Esperto di informazioni
- Creatore
- Alta coesione
- Accoppiamento basso
- Polimorfismo
- Classi protette
GRASP è occasionalmente accoppiato con altri modelli di design come SOLID. Questa combinazione rende il moniker convincente di SOLID GRASP. Modelli di progettazione come questi aiutano a mantenere il codice più semplice, più organizzato, più comprensibile, analizzabile e riutilizzabile.