Als letztes der Verhaltensdiagramme der UML,
sprechen wir nun über das Zustandsdiagramm Stagehart,
State Machine genannt, und wozu man es einsetzt.
Lassen Sie uns zunächst damit anfangen, was die Theorie dahinter ist.
Theoretischer Background dieses Diagramms, und das ist sehr gut formuliert
in der Theorie, ist der endliche Automat.
Heißt deswegen endliche Automat, weil die Menge der Zustände begrenzt ist.
Er kann sehr hoch sein, aber sie ist endlich.
Er besteht im Prinzip aus Zuständen und Zustandsübergängen. Die werden
durch Ereignisse bewirkt diese Ereignisse können eben eine erfüllte Bedingung sein,
eine empfangene Nachricht, oder dass es irgendein Zeitereignis gibt.
Mein Standard gewöhnlich mit einem Anfangszustand und es könnte mehrere Endzustände geben.
Jeweils bezieht sich ein solcher Automat immer auf ein Ding.
Er bezieht sich auf eine Klasse, auf eine Komponente,
auf ein Interface. Und das ist auch das,
was schon die eine Frage umfasst. Wir blenden gleich mal
hier zu den Fragen, auf welchen Kontext bezieht sich ein Zustandsdiagramm.
Das ist ein ganz wichtiger Punkt,
wofür setzen wir es ein
Es bezieht sich immer auf ein, irgendwie eine abgeschlossene Einheit.
Es kann auch ein ganzes System sein. Es ist aber eher ungewöhnlich,
weil das ein größeres System schon mehr Zustände hat.
Und für ganz kleine Systeme brauchen wir keine Modelle. So,
dazu kommen wir gleich nochmal, weil das auch den Einsatzbereich betrifft.
Auf jeden Fall sind wichtige Begriffe, wichtige Dinge,
die im Zustandsdiagramm dargestellt wird, der Menge der Zustand,
der dadurch beschrieben wird, dass Objekte irgendwelche Attributwerte haben.
Die Zustandsübergang, die Transition ist eine Änderung dieses Attributwerts bzw.
des Objektzustands
Das Ereignis ist das,
was irgendwie diese Transition auslöst und damit auch Aktionen auslöst.
Und diese Aktionen können im Softwareentwicklung halt auch im Wesentlichen
Operationen sein oder eben Methodenaufrufe. Soweit erstmal zur Basis,
das nächste Diagramm zeigt uns, wie sowas aussehen kann.
Aber wir gehen erstmal ganz schnell drüber,
weil das ist ziemlich viel. Wir bleiben mal bei dem,
was wir für die ILA-Veranstaltung unbedingt brauchen.
Ich schreibe mal hier dran,
Basiswissen.
Ja toll
So, da war ich wieder drauf, den Startknopf gekommen und weg war alles.
Also nochmal, diese Folie beschreibt, dass Basiswissen,
das ist das, was wir unbedingt auch brauchen.
Und was klar abgrenzt von den ganzen Sachen, die es auch noch gibt. Also bevor wir das erklären,
oder fangen wir mal damit an, ja,
wir haben hier einen Anfangszustand, Zustände sind Kästen mit abgerundeten Ecken,
falls ihnen das jetzt zufällig irgendwie bekannt vorkommt, tatsächlich,
wir hatten das beim Aktivitätsdiagramm,
dann gibt es die Pfeile, das sind Zustandsübergänge,
Transitionen,
Die Zustände können auch geteilt einen Strich durchhaben und dann werden sie geteilt in den Namen des und tun doch was für eine Aktion ist.
Und da ist immer zu merken, dieser schräge Strich hier,
den wir haben, der schräge Strich kündigt immer an,
danach kommt eine Aktion.
Hier ist jetzt kein Ereignis damit verbunden, hier ist ein Ereignis damit verbunden.
Hier gibt es auch durchaus Zuständigeübergänge, die im selben,
in derselben Zustand wieder landen. Also hier muss das Ereignis 2 eingetreten sein,
dann wird die Aktion 2 durchgeführt und ich lande wieder hier,
wenn das Ereignis 3 eintritt und der Mächte erfüllt es,
standen wir hier.
Hier gibt es gleich zwei Aktionen. Sie sehen,
es ist wieder geteilt. Also oben der Name,
unten drunter die Aktionen, die ausgeführt werden können.
Und dann gibt es hier einen Endzustand. Soweit,
das sollten Sie beherrschen, plus dem Unterzustand, der auch noch dazukommt.
Das schreiben wir hier noch mit dazu, dass das keiner verpasst.
Den Unterzustand brauchen wir auch noch. Jetzt schauen wir uns das
ein bisschen umfangreichere Bild an. Wie ich schon immer sagte,
zu allen Diagrammen, es gibt sehr viel mehr,
als wir in dieser Lehrveranstaltung behandeln.
Ja, so gibt es zum Beispiel die Sache, dass es weitere Einstiegspunkte gibt. Ja,
das haben wir schon gesehen, dass es eben unter dem Zustand,
hier gibt es das Element geteilt, da gibt es Entry-Do-Exit für die Bedingung,
für den Übergang hier, Zustandsübergang werden wir gleich nochmal was sagen.
Dann gibt es hier solche Sachen wie Zusammenführung, Auftrennung,
das brauchen wir alles nicht,
nur dass sie es schon mal gesehen haben oder dass man hier mit Signalen,
Sendensignal empfangen arbeitet, dass es eine Terminierung gibt oder eben,
dass es einen Ausgangspunkt gibt,
an dem man irgendwie austritt in andere Zustände.
Also was sind auch orthogonalen Zustand,
das brauchen wir nicht, nur dass sie es nochmal sehen
Ich schreibe mal hier dran, weitere weitere Diakrabmultationselemente.
Wie gesagt, es gibt sehr viel mehr,
sie werden in ihrer Praxis vermutlich nicht mit dem auskommen,
was wir hier auf dem Diagramm hatten.
Wo bleibt es? Das wäre doch, ich will gerade
nicht weiterschalten, dann mache ich das mal so.
Dann, das wird ihnen typischerweise nicht reichen,
aber das sind die Elemente,
die wir hier haben
Das ist auch gleichzeitig die Frage, die Frage 16,
die wir hier haben, welche Notationselemente werden dargestellt?
Wir möchten diese wissen. Ich hatte schon kurz gesagt,
ein Zustandstiagramm bezieht sich immer auf einen Kontext.
Und dieser Kontext, das könnte zum Beispiel eine Klasse sein.
Also das ist diese, das ist diese Klasse hier,
wir machen mal hier einen Pfeil dran. So,
für diese Klasse gibt es jetzt ein Zustände,
die Klasse kann ein Objekt dieser Klasse kann Zustände haben,
es beginnt irgendwie beim Start, wenn nicht die Klasse,
wenn das Objekt initialisiere, wenn ich das Objekt erzeuge,
da bin ich im Zustand bereit und dann kann ich irgendwie hier hingehen und hier hingehen oder hier zurück.
So, eigentlich hat es nur diese vier Zustände,
aber eine ganze Menge Zustandsübergänge. Und jetzt schauen wir uns
ein bisschen die Notation an. Also wir hatten hier gesagt,
das ist ein Ereignis und das ist die Aktion.
Das ist eine Bedingung mit eckigen Klammern, gibt es immer
die Bedingung. Hinter dem Schrägstrich steht immer die Aktion.
Das schauen wir uns im nächsten gleich mal ein bisschen genauer an.
Hier noch der der Bezug dazu, dass die Aktionen,
die wir durchführen, Aktionen typischerweise Aktionen über Objekten sind.
Und Objekte haben natürlich irgendwie die Aktionen als Methoden.
Ich habe die hier mal farbig gekennzeichnet in diesem Bild, ja.
Also hier geht es jetzt um eine Klasse Buch, ja,
das ist wieder Bezug dieses Diagramms ist ein Objekt der Klasse Buch.
Es geht immer um Objekte, weil es geht ja
um Laufzeit und jede Instanz können anderen Zustand haben.
Also sie sehen hier die verschiedenen Methoden,
sind hier jeweils als Operationen angegeben, als Aktionen,
Verzeihung angegeben und Kennzeichen für die Aktion ist immer so
ein runder,
so ein schräger Strich endisch
So, lassen Sie uns kurz etwas zu diesen Aktionen sagen.
Die Aktionen sind, da gibt es drei Aktionen,
Entry, Exit und du.
Ich lege mal zurück zu diesem etwas komplizierteren Diagramm.
Hier waren die drin. Entry, du Exit.
Und jeweils hinter dem Schrägstrich gab es eine Aktion.
Das schauen wir uns genauer an und dazu diese Folie.
Was ist der Auslöser, was passiert da?
Ich habe das Ganze mal hier auf einem Zeitstrahl dargestellt.
Lassen Sie uns noch dranschreiben, dass Sie sich um
einen Zeitstrahl handelt
Ja, und hier ist sozusagen das erste Ereignis,
gibt es ein Ereignis, bumm, bumm,
das ist der Eintritt in den Zustand, um den es hier geht.
Also dieser Zustand von mir aus, der so aussieht. Da gibt es ein,
da kommen wir rein und da geht es irgendwie raus und
das ist der Zustand XY und da gibt es jetzt Hendry,
du Schrägstrich, nehme ich mal B und Exit,
das ist für mich nicht schön, wie ich hier schreibe,
Exit, T. So, das sind, das ist das,
was wir hier darstellen, also genau dieser Eintritt und der Austritt,
der Austritt ist dann hier, ja,
so und dieses Eintrittsverhalten ist also durch den Bezeichner Exit,
sorry,
Entry bezeichnet,
ja,
und danach steht die Aktion nach dem Schrägstrich
und wie sieht das im Zeitstrahl aus
Im Zeitstrahl sieht es aus, dass wir also,
wenn hier gibt es bei der Sekunde,
gibt es denen das Ereignis und wir können rein in den Zustand.
Und dann wird diese Methode, von mir aus hier heißt
die A oder wie auch immer sie heißt, die wird dann ausgeführt.
Und zwar einmalig und hier kurz. In der Theorie ist
die Ausführungszeit null, in der Praxis dauert das natürlich irgendwie
ein paar Millisekunden, bis irgendetwas ausgeführt wird.
So, dann sind wir hier irgendwie mehrere Sekunden, Minuten,
Stunden, wie auch immer, lang sind wir in diesem Zustand, hier in diesem.
Und dann wird dieses Verhalten, dieses Zustandsverhalten gemacht.
Das ist so lange der Zustand aktiv ist Und da ist das,
was hinter du steht, in dem Fall bei uns,
hier in diesem kleinen Kästchen B.
Das wird so lange gemacht, wie wir hier sind.
Und dann irgendwann gibt es wieder ein Ereignis,
nimm geben wir dem auch wieder so einen Blitz.
Dann sind wir raus aus dem Zustand. Und dann gibt es
das Austrittsverhalten. Dann gibt es diese Exit-Aktion. Diese Exit-Aktion,
das ist hier in dem Fall bei mir,
ich habe das hier mit C angegeben, das würde passieren hier.
Theoretisch auch wieder mit der Dauer null. Praktisch wissen wir,
es geht nichts in der Dauer null,
irgendwie ein paar Millisekunden dauert es trotzdem
Das kann natürlich nicht vorher beginnen, weil niemand weiß,
jetzt kommt gleich das Ereignis. Es kann also erst ausgelöst werden,
wenn das, das heißt, eigentlich würde das jetzt,
ich mal das mal an,
das reale Zeitverhalten von C wäre jetzt hier.
Und dass er ja alle Zeitverhalten von A wäre hier.
Entry ist A, Exit ist C und das mache ich
mal mit Grün, dass du, ist B.
Und du wäre jetzt so lange, hier,
ich mache jetzt mal hier oben drüber, Die ganze Zeit lang ist b-aktiv.
Also B ist dieses, was wir, solange wir im Zustand sind.
Soweit, das sollten Sie wissen, Sie sollten dieses Entritt-Du-Exit erklären können.
Als nächstes möchte ich dazu kommen, wie diese Transitionen angegeben werden.
Und das ist die Definition, oder so ist die Angearbeit,
die Notation für einen, eine Transition.
Und das ist auch gleich der Inhalt einer Frage.
Lassen Sie uns kurz zu den Fragen springen
Eben, die Frage, das war eben Frage 19,
betreten und verlassen, die Notation, das war mit diesem Entry und Exit und die Transition mit Trigger on Guard,
das ist das, was wir uns jetzt gerade hier anschauen.
Der Zustandsübergang. Der Zustandsübergang verbindet zwei Zustände,
bei dem einen geht es raus,
in den nächsten geht es rein,
das ist erstmal das Wesentliche hier und man sagt das,
jedenfalls insbesondere die Leute aus der Theorie,
aus den Automatengrafen und von den Petri-Netzen, die sagen,
es feuert, also das heißt, es passiert etwas,
ich gehe da über, das kann durchaus durch ein Signal passieren,
das kann auch durch ein Sender-Signal empfangen, empfangenes Signal gesendet.
Sowas kann auch passieren. Ja,
auf jeden Fall sind ganz häufig irgendwelche Bedingungen damit verbunden,
nämlich auf jeden Fall muss es aber ein Ereignis geben.
Und es kann, muss aber nicht mit einer Aktion verbunden sein.
Das ist die Notation, da danach gefragt wird,
schreiben wir es dran. Notation,
also wir haben den Trigger, das ist dieses Ereignis,
Steht hier um, dass es der Trigger ist,
brauche ich nicht nochmal dran zu schreiben.
Dann gibt es hier ein Guard,
zu dem sagen wir auf der nächsten Folie nochmal etwas,
der Wächter, das ist die Bedingung.
Wir sehen schon hier, ich hatte Ihnen vorher schon mal gesagt,
egische Klammern in der OML immer für Bedingungen.
Hier sehen wir egische Klammern, ah, das ist was wie eine Bedingung.
So, und dann gibt es den Schrägstrich,
den wir eben schon kennen, von Do Entry Exit.
Da gibt es danach ein Verhalten. Und dieses Verhalten ist
also irgendwie eine Aktion, ein Methodenaufruf, so etwas.
Okay, lassen Sie uns das kurz gucken,
wie dieser Guard aussieht. Guard heißt auf Deutsch Schwächter und
das ist eine Bedingung
Dieser Wächter ist eine Bedingung. Steht das hier irgendwo?
Ja, hier unten steht das auch. Ja,
also das Ereignis kann, muss aber nicht mit so einem
Wächter kombiniert sein und die Tradition feuert genau dann,
wenn drei Bedingungen erfüllt sind.
Ja, ich muss natürlich im vorgehenden Zustand sein.
Dann muss das Ereignis eingetreten sein und dann muss die Bedingung auf erfüllt sein.
Lassen Sie uns das im Beispiel kurz anschauen.
Wir gehen wieder zurück zu so einem Diagramm hier.
Mal schauen, ob das so etwas hergibt. Nein,
das ist nicht so schön, wir nehmen mal lieber das.
Hier haben wir, hier haben wir verschiedene Sachen,
Hier zum Beispiel von dem Zustand gehen zwei andere Zustände aus,
der und der.
Beide haben keine Angabe, wenn wir nochmal zurückschauen.
Das war immer Ereignis, dann gab es Guard und
dann gab es die Desk Aktion, das Verhalten.
Also das Ereignis gibt es nicht. Irgendwie, das passiert sofort,
wenn ich hier drin, wenn ich hiermit fertig bin,
passiert sofort entweder das oder das.
Da wartet man nicht auf das Ereignis sozusagen unmittelbar.
Hier ist dein Ereignis da. Sehen Sie das? Ich kann hier,
gibt es auch zwei Sachen, die rausgehen aus dem Zustand,
entweder der oder der.
Beide reagieren auf das Ereignis,
Geld eingeworfen
Also wenn ich ein Geldstück einwerfe, es geht hier um ein Geldautomat,
ein Kartenautomat für Parkgebühren, so etwas lieben wir doch alle.
Deswegen eignen sich es gut. Als Beispiel hier für uns,
wenn ich hier Geld einwerfe, ja, dann wird,
also wir haben sehen hier die vollständige Notation.
Das Ereignis, der Trigger, er hat ja Guard und die Aktion.
Hier auch. Ereignis, Guard, Aktion. Wir schauen
nochmal, dass wir das auch wirklich richtig sehen.
Ja, also wo war denn das hier?
Ereignis, Guard, Aktion
Muss noch gültig, das können wir gut verwenden,
um das weiter zu erklären.
Also wenn wir das Ereignis Geld eingeworfen gemacht haben,
dann wird geprüft, ist diese Bedingung erfüllt oder diese Bedingung.
Wenn beide erfüllt werden, wäre es mit diesem Diagramm
irgendwas nicht in Ordnung. Die beiden sollten sich unterscheiden.
Es dürfte immer nur einer erfüllt sein. Wenn keine erfüllt sind,
gibt es keinen Sprung, gibt es keinen Zustand zu Übergang.
Wenn die erfüllt ist, gibt es einen Zustandsübergang,
aber Vala, wir landen im selben Zustand.
Wenn es die erfüllt sind, landen wir in dem nächsten Zustand.
Und hier steht jeweils noch dabei, was dann passiert.
Also hier wird der Restbetrag anzeigt,
bitte weitere 100 Euro für die Parkgebühr und hier
wird dann die Karte wieder ausgegeben und alles bezahlt
Von Bitterausfahren, irgend so was. Wir bedanken uns für
ihr Geld. So, wir haben jetzt hier gesehen,
es gibt die Möglichkeit, dass mehrere hier weggehen,
wenn mehrere weggehen und das gleiche Ereignis ist,
dann sollten sich die Bedingungen unterscheiden.
Aber das, was wir eben auf dem Diagramm waren,
waren ja das mit den drei Bedingungen.
Natürlich passiert das nur, wenn ich überhaupt hier bin.
Wenn ich gerade hier bin, wird dieser Zustandsübergang nicht passieren.
Das ist die erste Bedingung. Ich muss hier sein,
damit dieser Zustandsübergang passiert. Das zweite,
dieses Ereignis muss eingetreten sein, sonst passiert auch gar nichts.
Und wenn dieses Ereignis eingetreten ist,
dann muss noch die Bedingung
erfüllt sein
Soweit Nutzererläuterung, das war das, was hier steht.
Also erstens, man ist in dem entsprechenden Zustand
und das Ereignis tritt ein und die Bedingung ist erfüllt.
Es gibt auch dieses implizite Ereignis, wenn alles fertig ist,
die hat man tatsächlich auch mal,
das war hier oben dieses implizite Ereignis.
Hier sehen Sie, hier ist nichts dran,
ich schreibe das mal mit rot hier dran,
damit wir wissen, das gehört nicht zum Diagramm.
Implizites Ereignis. Soweit zu dem Wächter zu dem Gard.
Beispiele für Dinge, die hier passieren können,
ist zum Beispiel, dass eine Bedingung wahr wird.
Da ist, wenn wir zum Beispiel eine Temperatur haben,
die sich hier verändert, das passiert nicht plötzlich.
Ja, so ein ganz langsam wird der Glasofen oder Keramikbrennofen
oder der Baket dann hochgeheizt. Das geht langsam,
aber irgendwann ist diese Temperatur von 100 Grad überschritten oder was auch mal eingestellt wird.
Manchmal gibt es auch Signale von extern, ja,
zum Beispiel Klick ein auf einer Maus oder sowas.
Und manchmal war auch nur verstrichene Zeit.
Aber wie gesagt, es gibt auch dieses implizite Ereignis
Soweit dazu, das war die Antwort auf die Frage mit dem Transition-Trigger und Guard.
Jetzt bleibt uns hier noch eine weitere Frage,
wir fügen da noch eine weitere hinzu, aber hier erstmal hierarchische Gliederung.
Modelle brauchen wir für Sachen, die sehr komplex sind.
Und wenn die sehr komplex sind, bedeutet das,
wir haben viele Dinge in unserem Modell und das kann passieren,
dass wir das Modell dann sehr groß wird und unübersichtlich.
Wir haben das Bedürfnis, die Komplexität zu verringern,
indem wir Sachen wegpacken. Ja, Kapseln in ein Modul verstecken.
Und das gibt es hier, das nennen wir,
das machen wir Das kann man hierarchisch machen,
nämlich die Sachen zusammenpacken und die wieder in größere Sachen packen,
bis es hinreichend einfach ist.
Und wir kommen damit zurecht. Und das können wir machen durch
unter Zustände. Das ist auch schon die letzte Folie,
zu diesen Fullen hier. Wir malen gleich noch was Zusätzliches
. Aber hier haben wir so ein Beispiel dafür.
Wie alle Beispiele, die ich Ihnen so bringen kann,
krankt das an der Größe. Ich habe gerade gesagt,
wir brauchen unter Zustände, wenn wir ganz große Systeme haben.
Und was passiert in der Dotozent hier?
Etwas mit drei Zuständen. Es ist wirklich eine Schande.
Also ich möchte Ihnen aber nur das Prinzip erklären und
es muss leider auf so
eine PowerPoint-Folie passen
Ja, also wir haben jetzt hier im Prinzip ein System
mit zwei Zuständen, aufgeschlossen, zugeschlossen für eine Tür.
Etwas simples, ja, und in dem Zustand wurden sie
aufgeschlossen und zugeschlossen ist, gibt es nochmal zwei Unterzustände.
Nämlich, sie kann offen sein, also offen stehen,
oder sie kann geschlossen sein, aber man kann sie leicht aufmachen,
sie ist ja nicht zugeschlossen.
Im Zustand offen, ja,
kann ich nicht zuschließen und im Zustand geschlossen,
kann ich auf und zuschließen.
Da kann ich da
so rein und raus
Das soll bitte ein Beispiel sein. Stell Sie sich vor,
insgesamt hätten wir tausend Zustände und hier drin wollen wir 200 davon verpacken.
Oder wenigstens zwölf davon verpacken. Das ist schon schwierig zu
verstehen. Da wird mir die zwölf hier reinpacken und dann
haben die anderen nicht mehr 200, sondern nur noch 180.
188. So, und wichtig ist jetzt, dass das zu der,
das Eingebettete hier, zu dem Darüberliegen passt. Ja,
also wenn wir hier zwei Eingänge haben und zwei Ausgänge,
dann sollte das zu der Sache, die wir ja innen drin haben,
passen.
Also wenn das und das hier reingeht,
das sollte beides
hier landen können
Wenn das hier rausgeht, sollte immer klar sein,
wohin geht dann das raus? Unter welcher Bedingung geht es
hier lang oder welcher Bedingung geht es hier lang?
Das sollte irgendwie angegeben sein. Also diese Angaben fehlen jetzt
hier. Hier wäre er in Konflikt, weil hier ist
ja nicht klar, das sieht nach impliziten Ereignis aus.
Es gibt keine Bedingung, also Hub gehen wir hier lang.
Hier sieht es aber auch nach implizitereignis aus und keine Bedingung.
Also da fehlt noch irgendwas in meinem Diagramm.
Aber das war ja auch nur dazu da,
um ihm zu zeigen, ich packe hier noch was rein.
Und wenn ich das hier reinpacke, packe ich natürlich nicht,
dass in dem Bild mit den 200 Stück die zwölf auch noch rein,
nein, diese sind dann auf einem separaten Blatt, in einem separaten Modell.
Und hier mit den 200 oder nur noch 188 übrig bleiben,
da ist bitteschön nur ein Kasten dafür,
der hat einen kleinen Markt vom Makermarkt vermerkt,
wann das ist ein Unterzustand ist, ich könnte,
wenn ich ein Tool hätte, durch Döppelklick das öffnen,
dann sehe ich das andere, das kleine Diagramm oder ich habe das Antleihendiagramm in einer separaten Ansicht.
Soweit zu Unterzuständen. Wir sind aber noch nicht ganz fertig,
auch wenn wir die Fragen beantwortet haben, ich möchte gerne noch eine hinzufügen.
Und zwar möchte ich mal, dafür lassen wir die Letzte hier weg.
Ich möchte gerne noch eine Frage weiter mit Ihnen diskutieren,
und zwar die Frage des Einsatzes von Zustandsdiagramm versus den anderen Treitdiagrammen
Stellen Sie ihm den Einsatzbereich.
Von Zustandsdiagrammen. Gegenüber zu dem von Aktivitätssequenz, Kommunikationsdiagramm
Das ist ein Punkt, der sich darauf bezieht mit dem,
der hat ein bisschen was damit zu tun,
mit dem Kontext hier. Ich hatte vorher gesagt,
der Kontext für also ein Diagramm ist eine Klasse oder eine Methode,
ja, also eigentlich eine Klasse oder irgendein anderes Element.
Also hier hatten wir das für diese Klasse, ja,
oder hier hatten wir das für diese Klasse.
Alle Objekt oder ein Objekt dieser Klasse hat diese Menge von Zuständen,
ja, und zwar sind hier alle Zustände dabei
Und das ist der Unterschied, den packe ich deswegen,
füge ich die Folie mal hier danach ein,
ein leeres Blatt brauchen wir.
Einmal Querformat. Wir stellen das Zustandstiagramm gegen, was ist hier los?
So das Zustandstiagramm gegenüber zu Aktivitäts, Sequenz, Kommunikations-Diagra.
Überlegen wir noch mal, was wir gesagt hatten zum Einsatzbereich vom Aktivitätsdiagramm.
Dieses Aktivitätsdiagramm zeigt uns, das Zusammenspiel von verschiedenen Akteuren hier.
Der Kunde, Kassierer, das Kassensystem, wer macht was,
wer macht welche Aktion,
wie geht das rüber und über.
Wir hatten hier
diese Verantwortungsbereiche
Das Sequenz Diagramm zeigt uns, wo ist es,
hier ist eins, zeigt uns, wie die verschiedenen Beteiligten Nachrichten austauschen.
Also wieder Interaktion von verschiedenen Beteiligten. Das Kommunikationstiagramm,
da hatten wir ja nur so ein ganz kleines Beispiel,
zeigt aber auch, wie A, B, C,
D, hier Nachrichten austauschen.
Also dieses Diagramm, diese Diagramme hier zeigen uns die Interaktion
zwischen verschiedener Elemente
Und diese Elemente können sein, Klassen, Komponenten, Systeme,
irgend so etwas. Selbst die Stakeholder, die Akteure,
Menschen wandert durchaus mit dargestellt. Also das ist hier möglich,
aber gleichzeitig hatten wir dazu gesagt, dass es schon ziemlich kompliziert wird,
Wenn wir hier mehr als ein Szenario darstellen.
Ja, also hier haben wir eigentlich nur einen Ablauf.
Klar, hier gibt es mal zwei Alternativen und hier gibt es eine Schleife.
Aber wenn wir hier noch einen zweiten, dritten,
vierten Ablauf mit reinbringen würden, wäre das schnell unsich, unübersichtlich.
Ja, also deswegen ist das begrenzt auf einen im Wesentlichen
einen Ablauf.
Ein Ablauf oder ein Szenario darstellbar
Wenn Sie unbedingt wollen, können Sie natürlich noch
ein bisschen mehr reinpacken, aber die Übersichtlichkeit leidet darunter.
Wie sieht das jetzt demgegenüber beim Zustands-diagramm aus?
Das Zustands-diagramm bezieht sich erst mal auf ein Element.
Nichts weiter. Natürlich deren in dessen Interaktion mit der Umgebung,
mit zum Beispiel das neue Buch wird vorgelegt von einem Benutzer oder vom Wipley K.
Das Buch wird defekt oder der Wunsch geht ein von einem anderen Bestellensystem.
Es gibt schon eine Interaktion mit der externen Weltübereignisse,
aber eigentlich geht es nur um das Verhalten dieses Systems
Ja, lassen Sie uns das darstellen. Zustände und Zustandsübergänge. Eines Elements,
das kann auch wieder klasse Komponente oder irgendwas sein,
Wechselwirkung mit der Umgebung dieses Elements durch Ereignisse beziehungsweise Aktionen. Soweit erstmal die Begrenzung,
ja, wir schreiben das durchaus mal das Wesentliche mit Rot,
hier geht es um ein Element,
hier geht es um verschiedene Elemente, ja,
und wenn wir jetzt mal nochmal schauen, was wir hier darstellen,
Na, er will gerade was nicht bei meinem System.
Ja, doch, hier haben wir irgendwie alle Zustands,
alle Aktionen, die überhaupt möglich sind, kommen hier drin vor.
Wir haben alle Szenarien, die sich denken lassen,
hier dargestellt. Alle Zustandsübergänge sind in diesem Diagramm da.
Und das ist doch tatsächlich ein
ganz wichtiger Unterschied
Ja, und das machen wir wieder rot.
Hier im Wesentlichen ein, das hat mich ja auch rot.
Ja, also das ist der große Unterschied. So setzen wir
das eine und das andere Diagramm ein. Je nachdem,
was sie brauchen, wenn sie eher darstellen wollen,
wie die Interaktionen von verschiedenen Elementen aussieht, im Überblick,
im Zusammenspiel, dann würden sie eins dieser Diagramme nehmen,
aber sie sind dann halt beschränkt drauf,
irgendwie sich einen Ablauf anzugucken.
Während wenn sie die Gesamtheit wissen wollen,
zum Beispiel um Schnittstellen zu prüfen, sind die Schnittstellen komplett,
oder was habe ich denn alles für,
mit wem bin ich denn,
was für Daten
werden denn insgesamt ausgetauscht
Wie sieht denn das mit der Sicherheit aus?
Was für Daten gehen dann raus? Was geht denn rein
? Dann ist es besser, das Zustandsdiagramm zu verwenden,
weil dann haben wir alle Abläufe,
Szenarien und damit können wir auch alle Methoden das gesamte Schnittstellenverhalten dastehen.
Soweit noch eine Ergänzung dazu,
zu den Fragen,
die wir schon hatten