Wir haben mittlerweile eine ganze Menge von der OML schon gesehen.
Das Klassendiagramm kannten Sie schon vorher. Wir haben das Use-Case-Diagramm,
das Anwendungsfalldiagramm besprochen. Wir haben das Klassendiagramm mit weiteren Dings
, mit Einzelheiten besprochen und noch oder wiederholt.
Und das Aktivitätsdiagramm, was uns Verhalten, Abläufe darstellt.
Ich möchte jetzt ebenfalls noch mit Sicht auf die Problembereichsmodellierung des Zustandsdiagramm einführen.
Und zwar, weil das Zustandsdiagramm uns die Möglichkeit gibt,
den gesamten Zusammenhang über den Überblick, das Verhalten eines Elements, eines fachlichen Objekts oder gar eines Systems darzustellen.
Dieses Zustandsdiagramm folgt in der fachlichen Fundierung einer Theorie, nämlich der Theorie der State Machine bzw. des Zustandsautomats. Der Kasten sagt uns hier,
die Definition, also es geht, nein,
darunter steht uns noch, dass es sich um einen endlichen Automat handelt,
also dass ist die Theorie dahinter und die Definition,
es geht um Zustände, die ein Objekt,
und das ist das, was ich eben sagte,
es handelt sich um alle Zustände, um alle Zustandsübergänge,
die ein Element unseres Entwurfs, unseres Systems, unserer Unternehmenslandschaft,
wenn Sie so wollen, also die beliebige Größe kann das Ganze haben,
wir stellen verschiedene Dinge hier dar und wir fokussieren uns bei dem Zustandsdiagramm immer auf ein Element.
So, hier gibt es noch das Wort Steamuli,
etwas Stimulieren,
das sind meistens Ereignisse
Irgendetwas passiert und das löst etwas aus.
Dieses Auslösende führt dann zu Zustandsüberengen, Zustandsänderungen.
Endlicher Automat, dass die Theorie dahinter bedeutet nur,
dass wir eine endliche Menge von Zuständen haben.
Also wir können die irgendwie abzählen. Ja,
und natürlich sollten wir auch die Menge der Ereignisse,
die das Ding verarbeitet, irgendwie auch endlich haben.
Aber wir wissen ja, in Schleifen kann so einiges passieren.
Wichtig ist noch, dass wir Zustandsübergänge haben,
um von einem Zustand zum anderen
zu kommen
Meistens gibt es einen Anfangszustand, aber durchaus mehrere Endzustände.
So, diese Dinge können da alle vorkommen,
das wäre auch gleich die Antwort auf die erste Frage.
Ich springe mal zurück zu den Folie mit der Frage dazu.
Welche Elemente werden im Zustandsdiagramm dargestellt?
Das wäre eben das, was wir hier gerade hatten.
Also die Menge von Zuständen, von Ereignissenzustandsübergängen, Anfangszustand, Endzustände.
Wie sieht das Ganze grafisch aus? Ich habe hier
ein Beispiel mitgebracht. Das Beispiel ist ein bisschen komplexer,
aber es zeigt uns einige der wesentlichen Sachen
Zum einen, hier vorne haben wir den Stadtzustand.
Hier haben wir einen Endzustand, weitere Endzustände gibt es jetzt
in diesem Diagramm nicht. Die Kästen mit den abgerundeten Ecken
sind Zustände. Und diese Linien hier mit dem Pfeil
dran sind Zustandsübergänge
So, soweit erstmal. Dann steht hier immer noch was dran.
Stören Sie sich nicht dran, dass wir jetzt hier immer
was mit Klammer auf, Klammer zu dran stehen haben.
Das muss nicht sein. Ja,
also das klingt jetzt danach, als wäre es hier ein,
schon etwas aus dem Lösungsbereich, weil Klammer auf,
Klammer zu, klingt irgendwie wie in einer Programmiersprache.
Aber wenn wir uns dann am Ende mal das anschauen,
ja, so ganz sicher kann man sich nicht sein.
Ich hatte ja bei der Diskussion im Problembereich Lösungsbereich
gesagt schon, das ist nicht ganz so.
Was ich mir mit Ihnen anschauen möchte,
ist, wo passiert denn hier,
wo gehen wir denn hin
Also zunächst erst mal von dem Staatszustand passiert ohne weitere Aktionen irgendwie,
dass man auf irgendwas wartet, Ereignisse,
ist man in dem ersten Zustand ungeprüfter Wunsch und ich kann hier eine Zustandsüberkänderung machen,
indem ich hier einen Zeitraum,
einen Kfz-Typ eingebe und da bleibe ich weiter hier und ich kann dann hier rausgehen,
wenn ich irgendwo,
wahrscheinlich muss ich da irgendwas drücken oder sowas,
das steht leider nicht dabei.
Ja, so, wir schauen uns mal diesen Zustand an hier.
Bei diesem Zustand, von diesem Zustand gehen drei weg.
Dieser,
dieser und dieser
Diese drei müssen sich durch irgendetwas unterscheiden. Woran,
dass das System weiß, wo es lang gehen muss.
Und zwar sehen wir das hier, wenn Sie hier
genau hinschauen, hier gibt es eckige Klammern rum.
Diese eckigen Klammern stehen, das kann wir beim Aktivitätsdiagramm
schon gesehen, stehen für eine Bedingung.
Hier haben wir auch was mit eckigen Klammern und hier
haben wir auch was mit gegen Klammern fehlgeschlagen.
Also die Bedingung unterscheidet diese drei Zustandsübergänge.
Dann gehe ich in einen anderen Zustand zu Übergang
und das Gleiche hier auch
Wichtig ist, dass die Bezeichnungen in irgendeiner Form ausdrücken, was hier fachlich passiert.
Was ist da immer? Die Semantik wird bei diesen Diagrammen,
fast bei allen UML-Diakrammen, wird das nur durch die Bezeichnung dargestellt.
Ja, also hier, etwas ist reserviert worden.
Das ist ein Zustand. Ich tue nichts. Ja,
ich storniere nicht, nein, es ist storniert.
Es ist bestätigt, es ist reserviert, das ist ganz wichtig,
dass wir hier zum Beispiel im Partizip nehmen, um das auszudrücken.
Ja, also das ist schon eher wenig gut,
ja, so der Wunsch ist geprüft worden,
ist ungeprüft, ja,
das ist,
könnte man auch
anders verstehen
Könnte man auch als Verb verstehen. Soweit dazu,
man kann hier durch das, durch das Ding durchgehen
und kann die Zustände einen nach dem anderen ablaufen lassen.
Soweit ist das für uns ein Beispiel. Ich möchte hier
auf der nächsten Folie nochmal die Elemente alle darstellen.
Also wir haben mir den Zustand mit den abgerundeten Ecken,
die den Zustandsübergang heißt hier auch Transition.
Das ist das Transition und Zustandsübergang sind Synonyme,
das ist das Gleiche.
Und Stadtknoten, Entknoten
Das ist erst mal ganz gut. Hier unten sehen wir,
dass es tatsächlich solche Elemente wie im Aktivitätsdiagramm auch noch mal gibt.
Das finde ich sehr unglücklich. Besser wäre es,
man würde sich mit Zustand, Zustandsübergängen und noch ein paar anderen Sachen begnügen.
Ein Punkt, wo auf den ich besonders eingehen möchte,
ist die Beschreibung einer Transition. Die Beschreibung in der Transition
sagt nämlich, wann und unter welchen Umständen das passiert.
Die Beschreibung eines Zustandsübergangs, ich schreibe mal zur Sicherheit
noch mit dran,
Ja, also Transitionsbeschreibung, Zustandsübergangsbeschreibung ist das Gleiche.
Wir haben hier zunächst erstmal das Ereignis. In der Definition
war das der Steamulus. Dieses Ereignis löst das Ganze auf,
es kann ja noch Argumente geben, also das Ereignis löst das aus.
Dann haben wir in den eckigen Klammern die Bedingungen,
die haben wir eben schon im Beispiel gesehen,
was in dem Beispiel nicht dabei war,
war hier mit dem Schrägstrich die Operation, die passiert.
In einer Transition kann etwas, eine Aktion
ausgeführt werden,
eine Operation
Außerdem gibt es auch noch im Zustand die Möglichkeit,
diesen Zustand zu teilen, wenn wir hier im Zustand irgendwelche Aktionen ausführen.
Entry, du Exits sind drei unterschiedliche Aktionen zu unterschiedlichen Zeitpunkten
. Die werden wir gleich noch mal separat darstellen.
Jetzt zunächst erst mal dazu, was denn dazu notwendig
ist oder wie das mit dem Zustandsübergang hier sich verhält.
Zustandsübergang heißt, ich gehe von da nach da.
Ausgelöst wird das durch ein Ereignis. Man sagt auch,
der Zustandsübergang oder die Transition feuert.
Ja, ich gehe darüber
ganz schnell
Ja, also das ist etwas, was hier passieren kann.
Das ist das, was wir hier in diesem Bild
vorher mehrfach haben, also hier rum, hier rum.
Aber wenn du jetzt mit dem Wissen von Ebenen hier schauen,
oh, hier stehen doch gar keine Ereignisse dran.
Das ist hier in diesem Diagramm irgendwie nicht wichtig gewesen.
Damit wollte das nicht unbedingt darstellen. Ich möchte nochmal zu
den Bedingungen, auf den Bedingungen eingehen,
wann so ein Zustandsübergang feuert, wann ein Zustandsübergang eintritt.
Denn dazu müssen mehrere Sachverhalte gegeben sein.
Das schreibe ich mal hier oben hin
Wann erfolgt eine Transition? Zunächst erstmal müssen wir in
dem Zustand vorher sein. Das ist die erste Voraussetzung.
Der Vorzugestand ist aktiv. Das ist die erste Voraussetzung.
Die zweite Voraussetzung ist, dass
dieses Ereignis eintritt
Aber auch wenn das Ereignis eingetreten ist,
das reicht noch nicht, auch die Bedingung muss erfüllt sein.
Nur wenn diese drei Sachverhalte sind, tritt das zu einem Zustandsübergang ein.
Ich habe Gleichzeitig gibt es noch die Möglichkeit, wie schon gesagt,
dass auch Aktionen an einem Zustand stattfinden, in einem Zustand stattfinden.
Und hier haben wir drei. Die möchte ich gerne noch
separat erklären, diese Aktionen eines Zustands. Das sind die
Do-Exit und Entry, Entry-Du-Exit folgen einer Reihenfolge. Ja,
und ich möchte das mal so darstellen, dass ich hier diese Zustandsübergänge,
dass ich eine kleine Skizze mache und drei Zustände male,
Das sollen also Käst mit abgeründeten Ecken sein, Zustände.
Die kriegen jetzt auch bei mir Namen und den nenne ich
mal Z1, den nenne ich Z2, zertraien.
So, und nur damit dieser Zustand,
den ich hier eigentlich betrachte, dass der auch etwas,
ach ja, sollte ich vielleicht noch,
dem sollte ich vielleicht auch noch eine Entry und eine Exit-Bedingung geben.
Ja, also der hat hier, ich mache den mal
ein bisschen größer, bei mir geht das, ich hoffe,
sie können das auch noch machen.
Und hier gibt es das Entry, du Exit drin,
ja, da steht immer noch was dahinter.
Das schreibe ich jetzt mal unten drunter.
Und zwar möchte ich das anhand der Zeitachse klarmachen,
was hier passiert. Ja, wir haben hier vorne
ein Ereignis beim Reintreten
Und hier, ein Ereignis beim Raustreten, Ereignis 2.
Und das Ganze möchte ich zur Veranschaulichung mal,
wann diese Entry-Do, in Exit-Aktionen passieren, einem Zeitstrahl machen.
Dass es hier der Zeitstrahl und wir haben das Ereignis,
mache ich mal hierhin,
das ist Ereignis 1. Und hier mache ich mal
Ereignis 2 hin
Dazwischen sind wir also so lange in dem Zustand Z2. So.
Und wenn wir jetzt mal betrachten, wann passiert denn hier was?
Dann passiert das Entry-Ereignis beim Eintreten in diesen Zustand Z2. Ich male erst
mal vielleicht hierhin, wann wir im Zustand Z2 sind.
Also hier sind wir im Zustand C2.
Hier sind wir im Zustand
Und hier sind wir im Zustand C3. Der Theorie nach geht
dieser Zustandsübergang plötzlich, das heißt, er braucht keine Zeit.
Wir wissen in der Realität, alles braucht irgendwie ein bisschen Zeit.
Und wenn es nur ist, dass wir ein paar Elektronen verschieben,
irgendwie ein bisschen Zeit braucht alles. Aber in der Theorie,
dass der ideale Zustandsautomat hat keine, braucht keine Zeit.
So, wann ist denn jetzt der, die Entry-Aktion?
Entry, das sagt schon das Wort, beim Eintreten in
den Zustand, diese endre ich mal das mal farbig.
Ja, die Entry-Aktion kann ja nicht starten,
bevor das Ereignis kommt
Ja, das heißt, diese Entry-Aktion wäre eigentlich irgendwie ein Zeitstrahl hier.
Aber sie dauert ja vielleicht ein kleines bisschen, ja,
und deswegen kann die, und das kann er natürlich nicht vorher passieren,
kann ja nicht wissen vorher, wann das,
wann dieses Ereignis kommt.
Das heißt, vom Ereignis dauert das eine kleine Zeit und das ist die Entry-Aktion.
Die kommt also, wenn das Ereignis eintritt. Wir können
genauso gut sagen, diese Exit-Aktion, die wird passieren beim Verlassen.
Und auch hier wiederum, sie kann ja nicht
vorher starten
Sondern sie kann eigentlich nur dann genauer starten, wenn
das Ereignis kommt. Also hier, ja. So,
und sie wird auch eine kleine Zeit dauern,
auch wenn sie vielleicht nicht so lange dauert,
dann wäre das hier die Exit-Aktion.
Die geht beim Verlassen, beim Verlassen von Z2,
also immer dann, wenn Ereignis 2 anfeuert und die Transition hier passiert.
Nehmen wir mal an, hier wäre keine Bedingung dabei,
die das noch verhindert, dass es jetzt da weitergeht.
So, jetzt haben wir noch die Duo-Aktion,
die Duo-Aktion ist aktiv, solange wir in diesem Zustand sind.
Das heißt, die Duo-Aktion müssen wir auch zeichnen
Von hier, ich mache mal diesen Strich ein bisschen länger, ihr.
Das heißt, wir hätten die Du-Aktion hier über den ganzen Zeitraum.
Wäre die Du-Aktion hier dazwischen. Soweit zu dem Du-Entry und Exit,
was sie sich bitte merken sollten, wäre, ich gehe nochmal eins zurück,
ist, dass wir hier immer diesen Schrägstrich haben.
Ja, der ist hier dran, der ist hier dran,
der Schrägstrich ist das Kennzeichen so einer Aktion oder hier steht Operation.
Ja, also das Der Schrägstrich ist ein Kennzeichen,
genauso hatten wir diese eckig in Klammern für die Bedingungen.
Das sollten Sie bitte, bitte wissen. Soweit dazu,
es gibt auch noch den Bedarf dazu,
dass wir Dinge auslagern. Wir machen Modelle nur dann,
wenn es zu kompliziert für die Übersicht wird,
aber wenn es dann noch größer ist,
dann passt es vielleicht nicht mehr auf ein Blatt,
passt nicht mehr auf einen Bildschirm, dann wollen wir Sachen auslagern.
Für das Auslagern können wir ein Unterdiagramm durchnutzen.
Also ein Zustand, in dem noch viel mehr drin ist.
Also deswegen haben wir hier den Unterzustand,
wir nutzen die, um ein System zu gliedern,
um etwas wie so eine Blackbox dann zu verpacken.
Das Ziel ist es, eine Zusammenfassung zu erreichen,
damit wir die Verständlichkeit verbessern, dass wir es vereinfachen.
Da gibt es einen Teil, der, ich kann reinschauen,
wenn ich will, aber ansonsten ist es ein bisschen übersichtlicher geworden,
weil wir die Sachen zusammenfassen.
Das ist diese Möglichkeit, haben wir immer dann oder sollten
wir immer dann nutzen, wenn es zu viel wird.
Hier ist mal dargestellt auf diesem, hier ist dargestellt,
dass wir innen drin etwas weitere Zustände haben.
Also wenn ich von außen gehe ich irgendwie rein,
dann ist das innen der Stadtzustand.
Wenn ich dann irgendwie wieder rauskomme,
normalerweise hätte ich dann außen,
ist das in der Endzustand
Dieses Diagramm hier würde in demnächst hören, wird es nur so dargestellt.
Ich male das mal hier so dar. Das würde hier
ein Diagramm sein. Das heißt, nein, sorry,
ein Zustand. So, wobei, also wichtig ist,
deswegen habe ich das jetzt auch so gemacht,
die Bezeichnung hier findet sich in demnächst höheren Diagramm,
wo das zusammengefasst wird,
hier wieder.
Es gibt hier
einen Eingang
Ist auch ein Eingang. Hier gibt es einen aus,
ein Ende. Also gibt es hier auch einen Ausgang.
Das muss zueinander passen. Was hier gerade nicht
so gut passt in diesem Beispiel, ist die Bezeichnung.
Die gefällt mir eigentlich nicht so. Genau diese Bezeichnung,
das sind eigentlich die Bezeichnungen von Tätigkeiten.
Und ich habe die jetzt natürlich jetzt hier übernommen,
aber eigentlich wäre es besser, eine Bezeichnung zu nehmen,
so wie Deckung definiert, Deckung angelegt.
Das wäre eigentlich das Bessere. So,
es gibt auch die Möglichkeit, irgendwie nebenläufige Sachen darzustellen,
dass hier etwas entweder so oder so passiert.
Da muss natürlich noch klar sein,
unter welche Bedingungen passt was
Was hier an diesem, das Diagramm soll uns das zeigen,
aber mit dem Auto hier,
Herr Österreich, hat es ein bisschen gut gemeint.
Normalerweise würde ich hier nicht den Inhalt zeigen. Ja,
der Inhalt, also dieses Ding gehört auf ein separates Diagramm,
sonst ist es ja sinnlos. Dann heißt das ja mein
Diagramm nicht Lehrer. Ich möchte ja Dinge zusammenfassen,
damit sie hier nicht sichtbar sind, damit sie hier zu einer Vereinfachung führen,
wenn ich das hier drin habe, ist es keine Vereinfachung.
Also das hier, bitteschön betrachtet das, das ist in einem anderen Diagramm.
Hier ist das nur als ein Kasten dargestellt,
so wie wir das hier dargestellt haben
Soweit zu dieser hierarchischen Gliederung. Ich glaube, dazu hatten wir eine Frage.
Genau wie werden, genau, wozu werden Unterzustände benötigt?
Das war genau die Antwort, die ich hier oben schon
hingeschrieben hatte. Ja, wo war es? Hier,
wir wollen sie Zwecksvereinfachung zusammenfassen. Okay,
soweit viel mehr wollte ich Ihnen zu dem Zustandsdiagramm nicht sagen,
obwohl es natürlich noch viel mehr Details gibt,
wenn Sie davon mehr brauchen,
dann bitte schauen Sie sich ein UML-Buch an,
nutzen Sie
ein UML-Buch
Was ich noch ergänzen möchte,
es gibt noch eine spezielle Form von Zustandsautomat, von Zustandsdiagramm,
und zwar der Protokollzustandsautomat, der ist in gewisser Weise speziell,
weil er kein Verhalten hat, was darüber hinausgeht,
man braucht solche Protokollbeschreibungen, damit man weiß, was passiert an Schnittstellen.
Das Bordprotokoll kommt jetzt hier nicht von dem Physikprotokoll,
was sie vielleicht im Physikunterricht irgendwann mal machen mussten,
sondern es bekommt von dem eher so,
ist er verwandt zu dem Diplomatischen Protokoll,
also wenn ein Staatsoberhaupt ankommt,
dann gibt es den roten Teppich dann gibt es eine Ehrenkompanie und eine Motorradkarte und was auch immer.
Also einen bestimmten festgelegten Ablauf. Dieses Protokollwortphotokoll steht für den
Ablauf und zwar für den Ablauf, insbesondere an Schnittstellen.
Wenn ich eine Schnittstelle habe, gerade bei serviceorientierten Systemen,
ist das heutzutage ganz wichtig, weil die Schnittstelle eine große Rolle spielt,
dann muss ich eine bestimmte Reihenfolge einhalten.
Vielleicht muss ich eine Komponente erst initialisieren,
dann muss ich erst mal Werte hinschicken, dann muss ich
die Prüfung durchführen und dann kann ich erst in der Rechenoperation durchführen.
Und diese Reihenfolge beschreiben, als Folge von Ereignissen,
dazu dient ein Protokollzustandsautomat.
Soweit zu den,
zum Zustandsdiagramm,
vielen Dank soweit