CRC-Cards — Class-Responsibility-Collaboration Cards — sind eine Low-Tech-Technik für objektorientierten Entwurf von Ward Cunningham und Kent Beck. Jede Karteikarte steht für eine Klasse, links ihre Verantwortlichkeiten, rechts ihre Kollaborateure. Teams spielen Szenarien mit den Karten durch und entdecken und verfeinern so Klassen, bevor sie Code schreiben.
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