Beispiel
Modelliert werden soll ein einfaches Aufzugsystem:
Es gibt nur Erdgeschoß und erste Etagen, pro Etage einen
einen Rufknopf und
Fahrknopf im Aufzugkorb. Türen, Anzeigen etc. werden nicht
modelliert, um das Beispiel eifach zuhalten.
1. Modell, in freiem Pseudocode
if {keine eingabe}
then {so bleiben}
else
if {Knopf oben gedrückt}
then
if {Korb unten}
then {fahre hoch}
else
fi
else
if {Knopf unten gedrückt}
then
if {Korb oben}
then {fahre hoch}
else -
fi
else
if {Knopf im Korb gedrückt}
then
if {Aufzug oben}
then {fahre herunter}
else {fahre hoch}
fi
fi
fi
fi
fi
2. Modell, als endlicher Automat
Unser Aufzug hat zwei Zustände, die beide auch mögliche
Endzustände sind: Aufzugkoirb oben bzw. Aufzugkorb unten.
Drücken eines der drei Knöpfe ändert den Zustand, oder eben
nicht. Genau dies dynamische Antwortverhalten modelliert gut
der nebenstehende Zustandautomat.
3. Modell, als Klassendiagramm
Diese Darstellung beschreibt mehr die statische Perspektive
der Einzelteile im System und dessen Zusammenhang.
Dieses Konzept der Modellierung ist eng mit der
objektorientierten Programmierung verknüpft. Neben den
nach aussen unsichtbaren Attributen einer Klasse, die den
Objektzustand beschreiben, gibt es für jede Klasse
durch Botschaften anderer Objekte ausgelöste Operationen, die
den inneren Zustand eines Objektes ändern und ggf. Botschaften
an Objekte anderer Klassen senden. In der Modellierung hier
wird durch das Attribut 'in Betrieb'
auch die endliche Dauer der Aufzugkorbbewegung mit
berücksichtig. Die Methode fahre
kann zum
Beispiel erst dann beendet sein, wenn
'in Betrieb=false' ist.