ingo.strauch.diplom - Desy
ingo.strauch.diplom - Desy
ingo.strauch.diplom - Desy
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
3.1. SOFTWAREDESIGN 17<br />
Felder einer CRC-Karte<br />
Klassenname Der Name des Klassenkandidaten<br />
Superklasse Eine mögliche Klasse, von der der Kandidat abgeleitet werden kann<br />
Subklasse Mögliche Klassen, die von dem Kandidaten abgeleitet werden können<br />
Aufgaben Die Funktionalität, die der Kandidat zur Verfügung stellen soll<br />
Partner Andere Klassen, mit denen der Kandidat zusammenarbeitet<br />
Sonstiges Für weitere Anmerkungen<br />
Tabelle 3.2: Die Felder und deren Zweck bei einer CRC-Karte. Eine Blankovorlage zeigt Abbildung<br />
Anhang B.1, ein Beispiel einer ausgefüllten Karte findet sich in Abbildung Anhang B.2<br />
ten geeinigt, werden die Begriffsgruppen an die teilnehmenden Personen verteilt, die dann für<br />
jeden Kandidaten eine CRC-Karte erstellen müssen.<br />
Eine CRC-Karte besitzt im wesentlichen die Felder aus Tabelle 3.2. Natürlich muß nicht<br />
jedes Feld ausgefüllt sein, außerdem ist das Aussehen der Karten jeder Gruppe von Entwicklern<br />
freigestellt. Das H1-OO-Projektteam hat sich dabei auf eine Vorlage wie in Abbildung B.1<br />
geeinigt.<br />
Sind die CRC-Karten erstellt, werden sie von ihren Autoren vorgestellt und in der Gruppe<br />
diskutiert. An dieser Stelle des Entwicklungsprozesses soll herausgefunden werden, ob der Satz<br />
an Klassenkandidaten ausreicht und ob deren Zusammenspiel sinnvoll ist. Zu diesem Zweck<br />
werden bestimmte Situationen mit den Karten durchgespielt.<br />
Ein einfaches Beispiel: es soll ein Massenplot erstellt werden.<br />
• Von wo kommt die Masse? → Teilchen<br />
• Von wo kommt das Teilchen? → Teilchenliste<br />
• Wer erstellt diese Teilchenliste? → Teilchen-Selektor<br />
• Welche Eingaben benötigt der Selektor? → Liste aller Teilchen und eine Selektion<br />
• Woher kommt die Liste aller Teilchen? → Event<br />
• Woher kommt die Selektion? → Vom Benutzer definierte Kriterien<br />
An dieser Stelle ist es noch vollkommen uninteressant, wie z.B. die Masse in einem Teilchen<br />
steckt. Es könnte direkt ein Datenelement mit der Masse haben, aber genausogut könnte es einen<br />
Vierervektor besitzen, aus dem man die Masse noch berechnen muß. Dies sind jedoch nur Details<br />
der Implementierung, die zu diesem Zeitpunkt noch nicht wichtig sind.<br />
Am Ende der Kette stehen dann CRC-Karten, die einerseits das Interface der Klassen beschreiben,<br />
die es zu implementieren gilt, andererseits in ihrer Gesamtheit ein Gerüst für eine<br />
Klassenhierarchie darstellen. Außerdem geben die CRC-Karten vielfach auch schon Hinweise<br />
auf die künftigen Dateninhalte der geplanten Klassen. Ein Beispiel für eine ausgefüllte Karte<br />
zeigt Abbildung Anhang B.2, es handelt sich dabei um einen Vorschlag für eine Klasse zur Verwaltung<br />
von verschiedenen Bezugssystemen.