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