- Class-Responsibility-Collaboration-Karten
-
Die CRC-Karte (Class-Responsibility-Collaboration-Karte) ist ein Hilfsmittel für das objektorientierte Design. Das Konzept wurde Ende der 80er 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
Auf 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
Beschreibung der Methoden
Übersichtliche Beschreibung der Methodenaufgaben.Zusammenarbeit mit
Relation zu anderen Klassen.Auf der Rückseite beschreibt man die Klasse etwas detaillierter anhand eines Verzeichnisses der Operationen und der Attribute.
Operationen
Verzeichnis über die Operationen in einem geeigneten Detailniveau.
Zunächst nur Angabe des Namens der Operation, später auch der Parameter.Attribute
Verzeichnis über die Attribute in einem geeigneten Detailniveau.Fazit
Auf 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 da ist, kann man auch Informationen streichen oder sogar eine komplette Karte entfernen.
Weblinks
- 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.
Wikimedia Foundation.