|
| 1 | += CRC-Cards |
| 2 | +:categories: design-principles |
| 3 | +:roles: software-developer, software-architect, educator, consultant |
| 4 | +:related: grasp, gof-design-patterns, domain-driven-design |
| 5 | +:proponents: Ward Cunningham, Kent Beck |
| 6 | +:tags: crc-cards, oop, object-oriented-design, brainstorming, collaborative-design, class-responsibility-collaboration |
| 7 | +:tier: 3 |
| 8 | + |
| 9 | +[%collapsible] |
| 10 | +==== |
| 11 | +Vollständiger Name:: Class-Responsibility-Collaboration Cards |
| 12 | + |
| 13 | +Auch bekannt als:: CRC-Karten, CRC-Card-Methode, Class-Responsibility-Collaborator Cards |
| 14 | + |
| 15 | +[discrete] |
| 16 | +== *Kernkonzepte*: |
| 17 | + |
| 18 | +Klasse:: Der Name der Klasse oder des Objekts, das modelliert wird — eine Karteikarte pro Klasse |
| 19 | + |
| 20 | +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 |
| 21 | + |
| 22 | +Kollaborateure:: Andere Klassen, von denen diese Klasse abhängt, um ihre Verantwortlichkeiten zu erfüllen — auf der rechten Seite der Karte aufgelistet |
| 23 | + |
| 24 | +Karteikarten als Entwurfsmedium:: Bewusst Low-Tech: Physische Karten halten Design-Diskussionen leichtgewichtig, ermutigen zum Verwerfen und Neudenken und verhindern Over-Engineering |
| 25 | + |
| 26 | +Rollenspiel-Szenarien:: Teammitglieder halten physisch Karten und durchlaufen Szenarien, simulieren den Nachrichtenaustausch zwischen Objekten zur Validierung des Entwurfs |
| 27 | + |
| 28 | +Kollaboratives Brainstorming:: Fördert die Beteiligung verschiedener Fachbereiche; jeder kann beitragen, ohne tiefen technischen Hintergrund zu benötigen |
| 29 | + |
| 30 | +Klassen finden:: Beginne mit Substantiven in der Problembeschreibung; Kandidatenklassen werden entdeckt, nicht vorgeschrieben |
| 31 | + |
| 32 | +Iterative Verfeinerung:: Karten sind günstig zu verwerfen — Entwürfe werden durch mehrere Runden von Rollenspiel und Kritik weiterentwickelt |
| 33 | + |
| 34 | + |
| 35 | +Schlüsselvertreter:: Ward Cunningham, Kent Beck ("A Laboratory For Teaching Object-Oriented Thinking", OOPSLA 1989) |
| 36 | + |
| 37 | +[discrete] |
| 38 | +== *Wann zu verwenden*: |
| 39 | + |
| 40 | +* Frühe OO-Entwurfsphasen — Entdecken von Klassen, Verantwortlichkeiten und Beziehungen vor dem Codieren |
| 41 | +* Kollaborative Design-Sessions, bei denen mehrere Stakeholder oder Entwickler das Domänenmodell gestalten |
| 42 | +* Vermittlung objektorientierter Denkweise durch greifbare und interaktive Konzepte |
| 43 | +* Validierung von Entwürfen mit LLMs durch Beschreibung von Karten und Durchspielen von Abläufen |
| 44 | +* Leichtgewichtige Architekturerkundung vor dem Einsatz eines UML-Tools oder vollständigen Modells |
| 45 | + |
| 46 | +[discrete] |
| 47 | +== *Verwandte Anker*: |
| 48 | + |
| 49 | +* <<grasp,GRASP>> - Muster zur Zuweisung von Verantwortlichkeiten an Klassen im OO-Entwurf |
| 50 | +* <<gof-design-patterns,GoF Design Patterns>> - Entwurfsmuster, die aus CRC-Card-Sessions entstehen können |
| 51 | +* <<domain-driven-design,Domain-Driven Design>> - CRC-Cards unterstützen Ubiquitous Language und Entity-Entdeckung |
| 52 | +==== |
0 commit comments