Spezifikation des Entwurfs (OOD)
Der OOA-Entwurf wird nun in ein präziseres OOD-Modell überführt.
Bevor man sich an die Programmierumgebung
setzt und drauflos hackt, muß noch festgelegt werden, von welchem Datentyp
die Attribute sind und was die Methoden/Prozeduren genau tun sollen (aber
nicht wie!, was erst bei der Implementation kommt).
Des weiteren wird geprüft, ob Klassen aus der eigenen Bibliothek
vorteilhaft eingesetzt werden können. Das ist hier der Fall: Lampe läßt
sich als Kreis verstehen und Kasten aus der Ampel als Rechteck, die beide
in uGRAFIK verfügbar sind. Damit haben wir auch eine Entscheidung
getroffen, wie die Ampelanlage visualisiert werden soll. Damit können sich die Objekte selbst auf dem Bildschirm darstellen. Natürlich geht das auch mit
GUI-Komponenten, macht aber das Programm erheblich aufwendiger und
komplizierter.
Als letztes muß das Datenmodell (Fachkonzept) mit der GUI verbunden
werden, die die Anzeige und die Eingaben des Benutzers übernimmt. Dabei
ist die Aufgabentrennung von GUI und Fachkonzept in höchstem Maße
realisiert.
===> Für die ausführliche Spezifikation
klicken Sie bitte auf die Klassen im Diagramm!
TFensterFrm
Kennt TSteuerung und TAmpel (Assoziation) und zeigt die Ampeln
auf dem Bildschirm.
Die zwei Buttons rufen lediglich Start und Stop aus der Steuerung auf.
TSteuerung
TSteuerung kennt TAmpel (Assoziation).
SetLink meldet die Ampelexemplare bei der Steuerung an.
Startet (regelt) und stoppt die drei Ampelexemplare.
TAmpel
TAmpel hat drei Lampen (Aggregation) und einen Kasten (Aggregation).
Diese Komponenten-Attribute werden beim Erzeugen der Ampel gleich
miterzeugt.
Außerdem werden XPosition u. YPosition für das Zeichenblatt benötigt.
TLampe
Lampen lassen sich gut als Kreis darstellen. Also wählen wir
aus Gründen der Vereinfachung als
Oberklasse TKreis (Vererbung),
aus der deshalb alle erforderlichen Attribute und Methoden benutzt werden
können. Im strengen Sinne ist das eine etwas schmutzige Vererbung, denn
eine Lampe ist ja keine Art Kreis, sondern eher eine Art Lichtquelle.
|