CRC-Karten-Analyse im Unterricht

 

Kurzbeschreibung

Das objektorientierte Modell einer Anwendungsdomäne hängt stark von den Anforderungen (des Auftraggebers) ab: Je nach gewünschter Funktionalität fällt das Modell unterschiedlich aus.
Die anwendungsfallgetriebene CRC-Karten-Analyse klärt die Anforderungen mit Hilfe der Definition von Anwendungsfällen und erstellt darauf aufbauend ein Analysemodell der Anwendungsdomäne.

Problem

Nahezu alle Abläufe in einem realen System (der Anwendungsdomäne) sind durch Aktionen und Interaktionen geprägt, die oft unbemerkt und ohne scheinbare Initiierung erfolgen. In der Analysephase muss ausgewählt werden: Welche Aktionen und Interaktionen sollen erfasst werden, welchem Objekt sind sie zuzuordnen (Beispiel: Der Torwart fängt den Ball oder: Der Ball wird gefangen vom Torwart). Unwesentliches wird weggelassen, woraus die Frage resultiert: "Was gehört zum Modell, was nicht?"

Kontext

Analysephase von Softwareentwicklungsprojekten (im life³-Phasenmodell: Phase 2/Schritt A und in Phase 3)

Schwierigkeiten

Die Systemgrenze muss gefunden werden: Was gehört zum Modell, was ist überflüssig und wird weggelassen.
Diese Frage kann nur geklärt werden, wenn der Zweck bzw. der Einsatz der späteren Software klar ist. Anfängerinnen und Anfänger neigen dazu, ihnen nahe liegende Elemente direkt ins Modell abzubilden. Schwierigkeiten entstehen dann, wenn unterschiedliche Meinungen bezüglich des Offensichtlichen/Nahe liegenden geäußert werden oder wenn wesentliche Aspekte in der Analysephase übersehen werden.

Lösung

CRC-Analyse kann sehr gut wie eine Brainstorming-Sitzung in Gruppen von etwa vier Schülerinnen und Schülern durchgeführt werden.
Ausgangspunkt ist das Identifizieren/Finden von Objekten, die auf Karteikarten, den sog. CRC-Karten, notiert werden: Oben wird der Klassenname notiert, in zwei Spalten darunter die Verantwortlichkeiten und Beteiligte.

Zum Verfeinern des Modells zieht man Anwendungsfälle hinzu: das sind von einem Benutzer (Akteur) 'angestoßene' bzw. 'angefragte' Verantwortlichkeiten, die ihm meist ein Ergebnis zurückmelden.
Die Anwendungsfälle werden gesondert auf einer Liste notiert. Sie bekommen einen Namen und eine kurze Erläuterung. Mit Hilfe des Objektspiels können die einzelnen Anwendungsfälle getestet werden. Anschließend werden die Gruppenergebnisse in der Gesamtgruppe zu einem Modell zusammengeführt und nochmals getestet, zumindest jedoch sollten sie besprochen werden, um Alternativen aufzuzeigen sowie um Vor- und Nachteile einzelner Varianten anzusprechen.

Ergebnis

Zusammen mit den Anwendungsfällen zeigt das CRC-Modell die wesentlichen Elemente des noch zu designenden Fachklassenmodells und seine Zielsetzung auf (Was soll der spätere Benutzer machen können?). Die CRC-Karten können anschließend in ein solches Fachklassenmodell überführt werden.
Die Anwendungsfälle sind im Übrigen noch von Bedeutung, sie können später immer wieder zum Testen des weiterentwickelten Modells herangezogen werden. Außerdem unterstützen sie die Anbindung einer grafischen Oberfläche sowie damit verbunden die Integration der Ereignisorientierung, da sie Start- und Endpunkte von Benutzerinteraktionen festhalten.

Diskussion/Konsequenzen

Schon früh erfahren die Schüler, dass es nicht nur eine Lösung gibt. Hier liegt zunächst - allerdings nur scheinbar - eine Schwäche dieser Methode, da sie zu langwierigen, oft als lästig empfundenen Diskussionen führen kann. Doch mit wachsender Fachkompetenz der Schülerinnen und Schüler ergeben sich hier Möglichkeiten, alternative Lösungswege zu entwickeln, und die Güte von Lösungen anhand ihrer Konsequenzen abzuschätzen.

Anwendungsfälle werden schnell als lästiges Übel empfunden, sie können in der Gesamtgruppe jedoch als Maßstab genutzt werden, um die einzelnen Lösungen zu vergleichen: Sind die Anwendungsfälle vollständig? Sind sie vollständig vom Modell unterstützt? Hat das Modell zusätzliche, evtl. überflüssige Eigenschaften?

Es kann vorkommen, dass die Gruppen lieber direkt ein UML-Klassendiagramm erstellen wollen und die Analyse überspringen, insbesondere wenn die Anwendungsdomäne bekannt ist. Hierbei sollte auf die Bedeutung einer sorgfältigen Analyse aufmerksam gemacht werden und Konsequenzen erörtert werden.