Es soll hier noch einmal aufgezeigt werden, wie komplexere Probleme allgemein angegangen werden.
Für den Tauglichkeitstester lassen sich folgende Geschäftsprozesse (GP) identifizieren, die von dem Akteur "Testperson" ausgelöst werden:
Dies wird in einem Geschäftprozessdiagramm (auch Use-Case-Diagramm) wie folgt dargestellt:
| Ziel: | Die Reaktionszeit beim Umspringen einer Ampel von rot auf grün wird bestimmt. |
| Vorbedingung: | keine |
| Nachbedingung Erfolg: | Reaktionszeit ist ausgegeben, Testumgebung startbereit, Art des Tests kann neu gewählt werden |
| Akteur: | Testperson |
| Auslösendes Ereignis | Teststart und Ende durch die Testperson (Mausklick) |
| Beschreibung | 1. Test starten. 2. Auf Umspringen der Ampel von rot auf grün reagieren (Mausklick) Alternative 1a. Art des Tests neu wählen |
In ähnlicher Weise werden Einschätzung und Konzentration beschrieben.
Aus dem Pflichtenheft und den GP findet man mit Hilfe der Substantivmethode (Substantive bei der Beschreibung benutzen):
Fahrtauglichkeitstester, Anwender, Reaktionstest, Einschätzungstest, Konzentrationstest, Test, Ergebnis, Ampel, Reaktionszeit, Bewertung, Quadrat, Ballon, Testperson, Reaktion, Abwertung.
Wir identifizieren die folgenden Objekte:
Zur Messung der Reaktionszeit wird eine Uhr benötigt.
Die Attribute und Methoden der Klassen Stoppuhr, Figur, Kreis, Ballon, Quadrat und Ampel sind bereits festgelegt.
Es muss nun noch eine Betrachtung der Testklassen erfolgen.
Hierfür einige Informationen zu den Testklassen:
Diese Informationen führen auf eine erste grobe Modellierung und Beschreibung der Methoden der Testklassen.
Betrachten wir die verfeinerte Modellierung der Klasse ReaktionsTest:
Ergebnis:
Speichert das Ergebnis beim Test
Aktiv:
Speichert, ob der Test aktiv ist
Stoppuhr:
Wird zur Zeitmessung benötigt
Ampel:
Wird zur Darstellung benötigt
starten()
stoppen()
zeigeHilfe()
warten()
getErgebnis()
isAktiv()
| Reaktionstest |
| # Ampel # Stoppuhr # Ergebnis # Aktiv |
| # warten() + getErgebnis() + starten() + stoppen() + zeigeHilfe() + isAktiv() |
Die drei Testarten haben Gemeinsamkeiten (z.B. Test starten usw.). Deshalb bietet sich eine Generalisation an, d.h. Bildung einer Oberklasse, um Testklassen durch Vererbung zu erzeugen.
Weiterhin haben wir eine Vererbungsstruktur bei den Figuren, was wir schon betrachtet haben.
Wie kann man die verschiedenen Testklassen durch Vererbung erhalten?
Welche Methoden der Oberklasse Test sind abstrakt, welche Methoden werden überschrieben?
Wir können Assoziationen zwischen folgenden Objekten identifizieren.
Erstellen Sie aus den oben beschriebenen Informationen ein Klassendiagramm aller am Projekt beteiligten Klassen. Achten Sie auf Vererbung und Assoziationen. Tragen Sie auch die Kardinalitäten ein.
Das dynamische Modell repräsentiert das zeitliche Verhalten von Objekten.
Ein Geschäftsprozess wird in mehrere selbstständige Teilprozesse (Szenarios) zerlegt.
In Sequenzdiagrammen kann für jedes Szenario der Nachrichtenfluss zwischen Instanzen und deren zeitliche Abfolge beschrieben werden. Die Zeitachse verläuft von oben nach unten.
Im folgenden Beispiel wird der Start des Einschätzungstests dargestellt. Die Objekte sind als anonyme Objekte ihrer Klasse dargestellt (Schreibweise :Klasse ).

Das Sequenzdiagramm soll auf Konsistenz mit den Klassen geprüft werden. Die Botschaften im Diagramm müssen als Methoden der Objekte deklariert sein.
Während bei OOA ein Modell des Problembereichs entwickelt wird, muss im OOD das Modell so erweitert werden, dass es implementiert werden kann. Dazu müssen Klassenstruktur, Attribute und Methoden modifiziert, ergänzt und verfeinert werden. Zudem werden Assoziationen präzisiert und Vererbungsstrukturen verfeinert und eine erste Modellierung der Benutzungsoberfläche vorgenommen.
Das OOD-Modell ist ein genaues Abbild des späteren Programms.
Vorgaben
Aus diesen Vorgaben entsteht ein erster Prototyp der Benutzungsoberfläche.
Das OOD ist eng verbunden mit der Implementierung des Modells in einer objektorientierten Programmiersprache.
Autor: Jürgen Dehmer, A. Sessler, G. Liebrich
Letzte Änderung: