Die CRC-Karte (Class-Responsibility-Collaboration-Karte) ist ein Hilfsmittel für das objektorientierte Design. Das Konzept wurde Ende der 1980er Jahre von Ward Cunningham und Kent Beck entwickelt.
Das Grundprinzip besteht darin, für jede Klasse eine Karteikarte zu erstellen und auf dieser deren Eigenschaften zu notieren. Für CRC-Karten gibt es keine allgemein gültige Notation. Man orientiert sich aber im Allgemeinen an den ersten, von Ward Cunningham gezeichneten Karten. Diese bestehen aus drei Bereichen:
- oben steht der Name der Klasse
- auf der linken Seite schreibt man die Verantwortlichkeiten der Klasse nieder
- auf der rechten Seite stehen die Klassen, mit denen die beschriebene Klasse zusammenarbeitet
Es gibt eine Vielzahl von Erweiterungen des ursprünglichen Konzepts, die zusätzliche Bereiche hinzufügen und teilweise auch die Rückseite der Karten mitverwenden.
Der Vorteil der CRC-Karten liegt in der einfachen Handhabung. Man kann problemlos Informationen hinzufügen oder streichen. Auf Grund des einfachen Ansatzes ist man auch unabhängig von verwendeten Programmiersprachen und -werkzeugen. Der begrenzte Platz zwingt die Entwickler zusätzlich dazu, sich auf die wesentlichen Aufgaben einer Klasse zu konzentrieren.
Relationen zwischen den Klassen kann man auf unterschiedlichen Wegen veranschaulichen. Entweder schreibt man die Namen der behandelten Klassen auf die Karte, oder man macht z. B. die Karten an einer Wand fest und zeichnet Striche zwischen die Karten.
Beispiel
BearbeitenAuf der Kartenvorderseite notiert man den Namen der Klasse und den der Superklasse (falls vorhanden). Außerdem werden das Verantwortungsgebiet und die Relation zu anderen Klassen kurz beschrieben.
Name der Klasse | Superklasse |
---|---|
Verantwortungsgebiet | |
Zusammenarbeit mit |
Auf der Rückseite beschreibt man die Klasse etwas detaillierter anhand eines Verzeichnisses der Operationen und der Attribute.
Operationen |
Attribute |
Fazit
BearbeitenAuf CRC-Karten sollte nur das Wesentliche einer Klasse notiert werden. Zunächst führt man in der Regel den Klassennamen auf. Erst in der Analysephase, wenn mehr Informationen über die Klasse vorhanden sind, wird die Karte ergänzt. Falls kein Bedarf mehr besteht, kann man auch Informationen streichen oder sogar eine komplette Karte entfernen.
Weblinks
Bearbeiten- Kent Beck, Ward Cunningham: A Laboratory For Teaching Object-Oriented Thinking.
- Ward Cunningham: A CRC Description of HotDraw. Die ersten, von ihrem Erfinder gezeichneten CRC-Karten.
- Ulli Gellesch: Einführung in die Arbeit mit CRC-Cards.