Class-Responsibility-Collaboration-Karten
# Class-Responsibility-Collaboration-Karten

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

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 besteht, kann man auch Informationen streichen oder sogar eine komplette Karte entfernen.