GRASP

General Responsibility Assignment Software Principles. Dziewięć zasad dobrego programowania obiektowego. Mówi przede wszystkim o dobrych praktykach przydzielania odpowiedzialności do klas oraz o zależnościach między nimi.

Do tych zasad należą: Information Expert (Ekspert), Creator (Twórca), Controller (Kontroler), Low Coupling (Niskie Sprzężenie), High Cohesion (Wysoka Spójność), Polymorphism (Polimorfizm), Pure Fabrication (Czysty Wymysł), Indirection (Pośrednictwo), Protected Variations (Ochrona Zmienności).