CRC-Cards
Details
- Vollständiger Name
-
Class-Responsibility-Collaboration Cards
- Auch bekannt als
-
CRC-Karten, CRC-Card-Methode, Class-Responsibility-Collaborator Cards
Kernkonzepte:
- Klasse
-
Der Name der Klasse oder des Objekts, das modelliert wird — eine Karteikarte pro Klasse
- Verantwortlichkeiten
-
Was die Klasse weiß (Daten, die sie hält) und was sie tut (Verhalten, das sie bereitstellt) — auf der linken Seite der Karte aufgelistet
- Kollaborateure
-
Andere Klassen, von denen diese Klasse abhängt, um ihre Verantwortlichkeiten zu erfüllen — auf der rechten Seite der Karte aufgelistet
- Karteikarten als Entwurfsmedium
-
Bewusst Low-Tech: Physische Karten halten Design-Diskussionen leichtgewichtig, ermutigen zum Verwerfen und Neudenken und verhindern Over-Engineering
- Rollenspiel-Szenarien
-
Teammitglieder halten physisch Karten und durchlaufen Szenarien, simulieren den Nachrichtenaustausch zwischen Objekten zur Validierung des Entwurfs
- Kollaboratives Brainstorming
-
Fördert die Beteiligung verschiedener Fachbereiche; jeder kann beitragen, ohne tiefen technischen Hintergrund zu benötigen
- Klassen finden
-
Beginne mit Substantiven in der Problembeschreibung; Kandidatenklassen werden entdeckt, nicht vorgeschrieben
- Iterative Verfeinerung
-
Karten sind günstig zu verwerfen — Entwürfe werden durch mehrere Runden von Rollenspiel und Kritik weiterentwickelt
- Schlüsselvertreter
-
Ward Cunningham, Kent Beck ("A Laboratory For Teaching Object-Oriented Thinking", OOPSLA 1989)
Wann zu verwenden:
-
Frühe OO-Entwurfsphasen — Entdecken von Klassen, Verantwortlichkeiten und Beziehungen vor dem Codieren
-
Kollaborative Design-Sessions, bei denen mehrere Stakeholder oder Entwickler das Domänenmodell gestalten
-
Vermittlung objektorientierter Denkweise durch greifbare und interaktive Konzepte
-
Validierung von Entwürfen mit LLMs durch Beschreibung von Karten und Durchspielen von Abläufen
-
Leichtgewichtige Architekturerkundung vor dem Einsatz eines UML-Tools oder vollständigen Modells
Verwandte Anker:
-
GRASP - Muster zur Zuweisung von Verantwortlichkeiten an Klassen im OO-Entwurf
-
GoF Design Patterns - Entwurfsmuster, die aus CRC-Card-Sessions entstehen können
-
Domain-Driven Design - CRC-Cards unterstützen Ubiquitous Language und Entity-Entdeckung
Aktueller Stand:
-
Die Definition ist intakt — Karteikarten mit Class, Responsibilities, Collaborators, genau wie von Beck & Cunningham auf der OOPSLA 1989 veröffentlicht; das Original-Paper liegt weiterhin auf Ward Cunninghams Site
-
Die Technik überlebt vor allem als Lehr- und Workshop-Werkzeug für objektorientiertes Denken — ihr ursprünglich erklärter Zweck ("A Laboratory for Teaching Object-Oriented Thinking") — und bleibt ein definierter Eintrag im Agile-Alliance-Glossar; die alltägliche Designdiskussion ist weitgehend zu Whiteboard-Skizzen und leichtgewichtigen Diagrammen gewandert