Objektorientierte Analyse am Beispiel Silent Kitchen Company Anforderungsanalyse Die objektorientierte Analyse (OOA) beginnt mit der Anforderungsanalyse. Es soll der Problemraum erkannt, erfasst und definiert werden. Hier sind mögliche Klassen und ihre Beziehungen untereinander zu identifizieren. Das Analyse-Modell beschreibt dann den Soll- Konzept des neuen Softwareproduktes. Das Auffinden der benötigten Klassen ist im Allgemeinen nicht ganz so einfach. Man sollte sich dabei immer vor Augen haben, das man sich fragt woran (an welchen Objekten) das System etwas tut und nicht wie es das System tut. Weitere nützliche Fragen könnten sein: - Aus welchen Teilen besteht ein System? - Was haben die Teile für Aufgaben? - Welche Beziehungen haben die Teile untereinander? Im geschriebenen Text der Anforderung sollte man sich zunächst alle relevanten Substantive unterstreichen. Diese unterstrichenen Wörter sind dann mögliche Klassenkandidaten, die ein einzelnes Objekt repräsentieren. Im Beispiel sind folgende Wörter mögliche Klassenkandidaten: Verkaufsstelle, Verkaufsstellenleiter, Fertiggericht, Bestellung, Bestellformular, Vertrag, Kunde, Buchhaltung, Chefbuchhalter, Rechnung und Küche Bei mehreren Bearbeitern an einem Softwareprojekt ist es u.u. jetzt sinnvoll die CRC-Karten Methode anzuwenden, in der man auf verschiedene Karteikarten jeweils ein Objekt und seine Beziehungen untereinander beschreibt. Es sollte ein Rollenspiel durchgeführt werden und einige Anwendungsfälle durchgespielt werden und dabei die CRC-Karten vervollständigt werden. Klassenname: Oberklassen: Unterklassen: Verantwortlichkeiten: Mithelfer: Klassenname: Definition/Beschreibung: Attribute: Vorderseite Struktur einer CRC-Karte Rückseite 1
Die Anwendung der CRC-Karten-Methode wird hier am Objekt Kunde dargestellt. Kunde - - Bestellung aufgeben Vertrag abschließen Rechnung bezahlen Verkaufsstelle Verkaufstellenleiter Verkaufsstelle Kunde Der Kunde ist das zentrale Objekt bei einer Bestellung und Bezahlung seiner Bestellung Kundennummer Name Vorname Vorderseite CRC-Karte für den Kunden Rückseite Nach dem man dies gemacht kann man dann zur statischen Modellierung mit UML übergehen. Statische Modellierung mit UML Bei der statischen Modellierung mit UML beginnt man die herausgefundenen Klassen und Beziehungen in ein Klassendiagramm zu überführen. Es müssen die vorhandenen Assoziationen, Aggregationen und Kompositionen der einzelnen Klassen berücksichtigt werden. Weiterhin sind Multiplizitäten zwischen den Klassen anzugeben. In den einzelnen Klassen gibt es Attribute und Methoden. Klasse 1 -Attribut1:int -Attribut2:int Klasse 2 -Attribut1:int 1 Rolle 1..* +Methode1():void +Methode1():void Beispiel eines Klassendiagramms 2
Klassendiagramm für das Beispiel 3
Dynamische Modellierung Bei der dynamischen Modellierung mit UML gibt es verschiedene Diagrammtypen: - Use Case Diagramme - Sequenzdiagramme - Aktivitätsdiagramme - Zustandsdiagramme Use Case Diagramme Use Case Diagramme dienen dazu dem Programmentwickler die Terminologie des Anwendungsgebietes besser zu verstehen. Es sollten typische Arbeitsabläufe gezeigt werden sowie Ausnahme- und Sonderfälle, wobei die Systemgrenze vorher festzulegen ist. In diesem Fall ist die Systemgrenze die Verkaufsstelle. Der Kunde agiert mit der Verkaufsstelle. Im Modell ist es egal mit wem aus der Verkaufsstelle der Kunde einen Vertrag abschließt oder bei welchem Mitarbeiter er die Bestellung abgibt. Eine Detaillierung dessen ist in weiteren Use Case Diagrammen möglich. Jetzt wurde als Systemgrenze das Büro des Verkaufsstellenleiters gewählt. Es werden detailliertere Angaben zur Arbeitsweise der Verkaufsstelle dargestellt. 4
In diesem Use Case Diagramm ist die Systemgrenze die Buchführungsabteilung. Sequenzdiagramme Sequenzdiagramme werden verwendet um einen bestimmten Ablauf bzw. eine bestimmte Situation darzustellen. Es gibt ein bestimmtes Szenario wider und zeigt die einzelnen Botschaften, die die Objekte untereinander austauschen. So wird im Beispiel erst das neue Vertrags-Objekt angelegt, wenn alle Bedingungen erfüllt sind. 5
Aktivitätsdiagramme Aktivitätsdiagramme beschreiben Abläufe innerhalb eines Systems mit Aktivitäten. Diese Aktivitäten können nacheinander aber auch nebenläufig aktiv sein. Es können auch Verzweigungen und Synchronisationspunkte definiert sein. Weiterhin ist es möglich Aktivitäten wieder in Unteraktivitäten zu untergliedern. Zustandsdiagramme Ein Zustandsdiagramm stellt den Lebenszyklus eines Objektes dar. Zustandsdiagramme sind nur sinnvoll, wenn ein Objekt innerhalb seines Lebenszyklus seinen inneren Zustand ändert. 6