OOD


Um das Klassendiagramm zu verfeinern und genauer implementierbar zu machen, wird der objektorientierte Entwurf (OOD) angefertigt. Im OOD-Klassendiagramm werden sämtliche zu implementierenden Klassen, sowie deren Methoden und Variablen aufgeführt. Zusätzlich wird noch die Sichtbarkeit (private,public,protected) zu jeder Variable und Methode hinzugefügt. Im folgenden OOD-Klassendiagramm sind einige Änderungen zur Projektarbeit erkennbar:
>zum vergrößern auf das Diagramm klicken<
Im OOD-Klassendiagramm wurde eine Drei-Schichten-Architektur eingehalten. Hierbei handelt es sich um ein Entwurfsmodell, bei dem die Klassen in drei Schichten aufgeteilt werden.

IM OOD-Klassendiagramm befinden sich auf der linken Seite die GUI-Klassen, welche für die Benutzeroberfläche verantwortlich sind. In der Mitte des Klassendiagramms ist das Fachkonzept dargestellt, dass bereits bei der Objektorientierten-Analyse entstanden ist und hierbei lediglich noch verfeinert wurde. Die dritte Schicht, die Datenhaltungsschicht, ist auf der rechten Seite dargestellt und realisiert das dauerhafte Speichern des Fachkonzeptes. Außerdem wurde die Klasse Export, welche das erzeugte Objekt in andere Formate speichert, in diese Schicht gelegt.

Da im Diagramm lediglich zwischen nebeneinander liegenden Klassen Assoziationen bestehen, spricht man hier von einer strengen Drei-Schichten-Architektur. Dabei darf lediglich die GUI-Schicht mit dem Fachkonzept und das Fachkonzept mit der Datenhaltungsschicht kommunizieren. Erkennbar ist dies im Diagramm, durch Assoziationen, die lediglich eine gestrichelte Linie, die die Schichten trennen, überschreiten. Durch diese strenge Architektur ist es möglich mit wenig Aufwand zum Beispiel eine andere Datenhaltung, vielleicht eine Datenbank, zu implementieren. Auch eine andere Benutzeroberfläche ist dadurch implementierbar.

Um das Konzept dieser Drei-Schichten-Architektur einzuhalten, wurde das Model-View-Controller Konzept umgesetzt. Der Controller wird dabei als Schnittstelle zwischen den Klassen genutzt. Außerdem ist dem Controller bekannt, welche View`s, also welche anderen Klassen, auf bestimmte Aktionen des Models (Fachkonzeptes), reagieren müssen.

Der Controller beinhaltet zu allen Ereignissen, die ausgelöst werden können, entsprechende Methoden. Mit Hilfe dieser Methoden wird der Controller angewiesen, was dieser bei einem Ereignis „erledigen“ soll. Beispielsweise findet man folgende Methode im Controller wieder:
Hierbei handelt es sich um die Methode addPoint(), welche aufgerufen wird, wenn ein neuer Punkt hinzugefügt wurde. Die View`s, also hier zum Beispiel das Koordinatensystem (canvas2d) oder der 3D-Ansichtsbereich (univ) werden dann angewiesen, sich zu aktualisieren.

Im Klassendiagramm ist zwischen der Klasse Streckenzug und der Klasse Liste eine Vererbungshierarchie erkennbar.