Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).
UML Sequenzdiagramm
Das Wichtigste aus dem Video
Tipp auf eine Zeit – das Video springt genau dorthin.
Transkriptautomatisch erstellt · 145 Zeilen
- [Musik] ich kann es euch zu einem weiteren video der berufsschule 7 diesmal soll es um speziellen jetzt um
- die sequenz diagramm gehen zielgruppe ist die elfte klasse fachinformatiker aber auch durchaus zwölfte klasse die sich das ganze noch
- mal anschauen wollen vor vonns die eigenschaften ansehen überlegen wir erst mal wofür wir einen sequenz diagramm brauchen und zwar ein
- sequenz diagramm modelliert den zeitlichen ablauf von nachrichten flüssen zwischen objekten oder eigentlich kommunikations teilnehmern
- und auf diesem grund oder auf dieser basis definieren sich auch die wichtigsten eigenschaften zum einen ist es ablauf orientiert das heißt wir
- können den ablauf die sequenzen der nachrichten nachverfolgen dann ist wie ich schon gesagt hat der fokus auf den nachrichtenaustausch das
- heißt darum soll es wirklich gehen es gibt eine zeitachse die läuft von oben nach unten die ist fest definiert beim sequenz diagramm und wir wollen
- hier auch die nutzeraktivitäten modellieren das heißt wann kann der nutzer irgendeine aktion ausführen und deswegen geht es auch so ein bisschen
- hand in hand mit dem use case diagramm wo eben der nutzer eben eigentlich auch definieren oder sieht wasser machen kann was er machen möchte und das sequenz
- diagramm würde das noch etwas mehr detaillieren kommen wir zu den innovations- elementen das wichtigste notation element vom
- sequenz diagramm ist die lebenslinien zwar wenn die jetzt beispielsweise eine person haben die in irgendeiner form interagiert dann gibt es hier so eine
- lebenslinie und diese lebenslinie existiert so lange der teilnehmer interagiert das heißt solange irgendwie mit diesem prozess was zu tun hat für
- personen also wie wir es jetzt hier gerade gezeichnet hat mit diesen typischen uml strichmännchen gilt wenn er nicht mehr an diesen gesamten
- kommunikationsprozess beteiligt ist dann endet diese lebenslinie und wir werden dann gleich sehen bei objekten dutzend andere möglichkeiten diese lebenslinie
- zu beenden dann gibt es den typ der lebenslinie das ist hier jetzt der user aber es ist oftmals auch wenn du jetzt nicht von
- usern oder personen sprechen ein klassen name und das während der instanz name oder in dem fall jetzt der name des der person
- es ist allerdings so dass man auch gerne mal den namen der person weglässt einfach weil das bringt üblicherweise keinen mehrwert und macht die ganze
- sache nur ja voller die zeitachse habe ich ja schon erwähnt geht immer von oben nach unten sie wird aber nicht gezeichnet das heißt jeder der ein
- sequenz diagramm sieht weiß die zeit läuft einfach von oben nach unten kommen wir nun zu einem anderen typ von lebenslinie und das wird jetzt so
- aussehen dass wir jetzt ein ein teilnehmer des systems wie man so schön sagt im wesentlichen ist es jetzt irgendein technisches gerät oder für uns
- eben im regelfall ein objekt und dieses objekt hatten nahmen das wäre dann hier die bestellung und was für eine klasse ist es dass die mail das heißt es wäre
- jetzt eine bestellen melden und das sind so die beiden wesentlichen typen wie ihr sie oftmals eben in sequenz diagramm sehen links eben die
- person rechts ein objekt das eben auch interagiert jetzt kommt noch ein wichtiger punkt und zwar so wie wir die beiden teilnehmer jetzt gezeichnet haben
- sind sie einfach nur da wenn sie aber aktiv was tun dann zeichnet man das durch so ein balken 1 das symbolisiert mir jetzt die aktive
- zeit des teilnehmers und während in dieser aktiven zeit dann kann er wirklich was tun ein mails erstellen und nachrichten
- senden empfangen usw das ist eben an der stelle wahrscheinlich der wichtigste oder das wichtigste elemente der lebenslinie wenn
- wir das obere aktive nennen das unseren natürlich auch einen namen und dann hat man das einfach passive zeit des teilnehmers genannt also liegt
- eigentlich auf der hand jetzt können wir auch notieren dass der user so eine mail erstellt und in der
- objektorientierung wäre das ja einen aufruf des konstrukteurs- und in ml ist es eine 1 erzeugungs nachricht dass mit diesem pfeil erzeugen wir ein objekt der
- klasse mail ja und das netz bestellung weil wir wissen dass soll die bestell mail sein und dann kann eben der user im rahmen
- seiner aktiven zeit auch interagieren mit diesen mit dieser mail und kann jetzt nachrichten oder aufrufe an dieses objekt schicken nachrichten wenn man
- gleich noch mal etwas genauer uns anschauen und jetzt ist es auch so wenn der user die mails losschickt dann verschwindet
- sie ja aus seinem interaktions bereich und dann würden wir eben diese mail terminieren und dazu hat die der sequenz diagramm eigenes symbol dass das hier
- dieses stopp symbol und dadurch wird jetzt auch diese diese senden nachrichte destruktion nachricht da das wiederum nach noch mal wenn wir über die
- nachrichten sprechen aber so viel sei schon mal gesagt hiermit können wir dieses ding dann eben auch stoppen
- gut jetzt schauen wir uns nochmal was interessantes an und zwar hab ich jetzt hier ein mailprogramm also ein etwas aufwendigeres konstrukt also das muss
- nicht immer eine einzelne klasse sein sondern es kann auch etwas aufwendiger sein und wenn ich jetzt in dieses programm
- rein gucken möchte und die inneren kommunikation auch darstellen möchte dann kann ich eine die komposition vornehmen das heißt ich kann jetzt hier
- gehen wir mal davon aus das ist ein nach dem mvz angeschrieben dieses mail programm kann ich jetzt beispielsweise diese drei elemente eben auch
- detailliert darstellen so und dann kann ich hier intern auch irgendwelche nachrichten hin und herschieben und kann dann sozusagen den internen
- datentransfer die nachrichtenaustausch den intern auch modellieren und gerade das ist für manche situationen hilfreich die die komposition sieht man es nicht
- allzu häufig aber wie gesagt es ist es ist machbar also es ist erlaubt so diese internen kommunikation kann man auch etwas komprimierter darstellen wenn
- ich jetzt nicht zeigen möchte wie mein element mein teilnehmer intern aufgebaut ist und dazu kann man ihn sozusagen interne nachrichten auf einer ebene
- darstellen das würde dann so aussehen das wäre zu sagen eine nachricht an sich selbst hier
- kann man rückmeldungen machen muss man nicht zwingend durchführen man sieht relativ häufig dass diese get data data gestrichelte rückmeldung fall nicht da
- ist weil wir sowieso innerhalb dieser dieses programms oder dieses teilnehmer sind aber wie gesagt so würde jetzt eine nachricht an sich selbst aussehen das
- wäre wenn ich sozusagen intern in meinem programm einen unter programm aufrufen würde und da in entsprechend eine nachricht schicken würde
- so die nächste notation elemente die uns anschauen sind die nachrichten ich habe jetzt mal zwei teilnehmer hingeschrieben also eine applikation und
- eine datenbank also zwei technische teilnehmer keine news mehr und die wollen jetzt in irgendeiner form miteinander kommunizieren beginnen wir
- mal mit einer einfachen nachricht und zwar ein insert statement das jetzt bei der datenbank aus geführt werden soll und das ist jetzt hier als sogenannte
- asynchrone nachricht modelliert und das bedeutet dass die applikation wenn diese nachricht geschickt wird nicht auf irgendein feedback wartet das heißt die
- applikation kann jetzt sofort mit einem neuen statement oder irgendeiner anderen aktivität weitermachen das heißt in der konsequenz dass die
- datenbank keine antwort schickt also kein keine bestätigung oder sonst irgendwas das jetzt dem der applikation indiziert dass jetzt diese diese dieser
- internet funktioniert hat diese nachrichten sind in der realen welt entweder irgendwelche funktions aufrufe oder methoden aufrufe und was auch
- möglich ist so genannte signale das heißt wenn irgendwo ein signal passiert und dass irgendein anderen teilnehmer geschickt wird dann wäre das in aller
- regel auch eine asynchrone nachricht gut wenn es synchrone nachrichten gibt gibt es offensichtlich auch synchrone nachrichten dass wir jetzt hier
- beispielsweise select statement select soldaten auf einer datenbank rausholen und dann würde ich auch gerne wissen welche daten die datenbank ausgespuckt
- hat also warte ich hier auf eine nachricht und die antwort nachricht wird dann eben mit so einer gestrichelten linie modelliert und und damit haben wir
- eben den der den informationsaustausch einmal zur datenbank wieder zurück fertig wenn man sich jetzt die asynchronen nachricht des inns
- statements und die synchrone nachricht des select seitens ansieht fällt uns auf dass bei dem einen ein offener pfeil ist beim in statement und beim select
- statement ein geschlossener pfeil und zwar ausgemalt und uml ist es ja grundsätzlich so dass die die formen von pfeilen symbolen et cetera immer sehr
- klar definiert sind und das bedeutet auch wenn wir das per hand zeichnen dass wir uns eben daran diese vorgaben auch halten müssen also asynchronen
- nachrichten haben eine offene fall spitze synchrone nachrichten eine ausgefüllte geschlossene pfeilspitze so bei einer synchronen nachricht ist es so
- dass der anrufer tatsächlich wartet bis er irgendwas neues machen kann und bekommt in aller regel eine antwort man modelliert manchmal auch ohne aber
- eigentlich sollte man immer eine antwort wirklich ein malen modellieren und diese antwort pfeil ist eine gestrichelte linie mit einem offenen pfeil sowie was
- hier gerade sehen was sind das für situation synchrone nachrichten sind eigentlich immer funktions aufrufe keine signale signale sind in aller regel als
- synchron und synchron sind dann die funktions aufrufe aber es gibt auch asynchrone funktions aufrufen
- jetzt schauen wir uns nochmal diese nachrichten etwas genauer an wir haben ziehe eine nachricht ohne einen parameter
- das heißt wir informieren denn lesen denn des ml diagramms einfach darüber es soll irgendein select passieren und die antwort nachricht sieht in aller
- regel so aus dass dieses dieser begriff select an der stelle so der name der anfrage dass das der ersten nachricht in der replay oder return nachrichten sich
- wiederfindet so dass wir wissen h von dem select ist das eben das ergebnis dann steht nach dem doppelpunkt der rückgabe wert da werden uns nachher
- nochmal ein paar alternativen anschauen aber das wäre jetzt die information dass die das leck statement hat jetzt hier irgendwelche daten zurück liefern
- und wie ich vorhin schon gesagt habe bei signalen finden wir so was in aller regel nicht hier habe ich jetzt mal eine nachricht
- mit einem parameter modelliert dass jetzt diese 123 in diesen runden klammern und diese nachricht dieser parameter kann entweder als die
- dezidierte wert oder als variable formuliert werden und in der antwort nachricht habe ich jetzt hier entsprechend dann den antwort wert aber
- auch das kann ein wert oder eine variable sein so ja das ist doch schon mal nicht schlecht da kann man schon einigermaßen was modellieren
- jetzt kann es aber auch so machen dass ich eine variable eine zuweisung oder einer variablen eine zuweisung meinem eines methoden aufrufs mache und dann
- würde ich hier stehen name ist gleich ein ganzer username 123 da gibt es noch ein paar andere möglichkeiten aber das was ich jetzt gerade gezeigt habe das
- sind so die eigentlich die sinnvollsten dann gibt's noch ein paar spezielle nachrichten
- zum einen sei da erwähnt die sogenannte gefundene nachricht also eine gefundene nachricht ist etwas wo der absender unbekannt ist das hat erst mal außerhalb
- unseres betrachtung des rahmens die kommt hat irgendwo her und das ist so sagen würde mir jetzt keinen mehrwert liefern diesen die den ursprung dieser
- temperaturänderung in dem fall jetzt in irgendeiner form zu modellieren und das wäre dann wie gesagt eine gefundene nachrichtenportal dazu wird die
- verlorene nachricht das heißt wenn ich irgendeine nachricht raus schicke und es ist mir jetzt für diesem für dieses modellierungs diagramm jetzt erst mal
- egal wer was damit macht dann würde ich das als eine sogenannte verlorene nachrichten modellieren und als indikator dafür haben wir hier eben
- diesen punkt der eben hier sein schwarzes loch fungiert die idee hinter einem einer verlorenen nachricht ist eben dass ich keinerlei relevante
- informationen in meinem himmel diagramm hinterlegen möchte oder kann die für die verarbeitung dieses signals irgendwie wichtig ist und deswegen ist es eine
- verlorene nachricht die aber durchaus gesendet wird also modelliert sie dann gibt es noch eine spezielle nachricht über die haben wir schon ein
- bisschen gesprochen und zwar die erzeugungs nachricht das ist eine nachricht die ein objekt oder ein teilnehmer in irgendeiner form erzeugt
- im programmieren werde es ein konstrukt der aufruf und das wird eben mit so einem fall dargestellt dann aber auch schon darüber gesprochen dass wir wenn
- wir jetzt fertig sind mit unserer interaktion mit der mail eine destruktion nachricht durchführen oder oder senden und die wird dadurch auch
- impliziert dass am ende dieses diese destruktion nachricht hier auch dieses stopp symbol auftaucht und dadurch getrieben dass die destruktion nachricht
- ein weiteres element ist der sogenannte interaktions rahmen der soll diese ganze kommunikation kapseln und ja fast im ganzen auch einen namen das heißt alles
- was in diesem rahmen abläuft ist eben für genau diese interaktion wichtig in dem fall user laden ass de steht für sequenz diagramm und damit infizieren
- wir eben auch dass es sich um eine sequenz diagramm handelt das wird so von uml vorgegeben und dann macht er das auch so
- beim interaktions rahmen oder gerkan wir auch parameter übergeben das heißt es im aufruf dieses interaktions rahmens in dem fall wer ist
- jetzt die id des users das dass wir dann beispielsweise für die select benötigen und es taucht dann hier unten wieder auf es gibt noch mehrere möglichkeiten mit
- variablen und ähnlichen innerhalb von einem mail sequenz diagramm zu arbeiten aber das wird jetzt an der stelle glaube ich doch zu weit führen und ich glaube
- mit diesem mit dieser mutation kann man die allermeisten dinge schon erschlagen dann gibt es noch den rückgabe wert der würde hier oben mit doppelpunkt und den
- datentyp formuliert werden und das würde man dann so realisieren dass wir hier unten so ein objekt erzeugt nennt das genauso wie den interaktions rahmen und
- ausgabewert an den string das wäre dann so etwas wie ich sozusagen mit dem eingabe parameter daten rein kriege um rückgabe wert oder rückgabe
- parameter nennt müsse auch wieder rausbekommen jetzt haben noch ein paar spezial symbole die nennt man auch kombinierte
- fragmente oder nur fragmente und ich fange mal mit der alternative an dazu schauen wir uns mal folgendes an ich habe wieder ein user und ein server
- und der möchte jetzt hier irgendein login machen mit weiteren passwort der server checkers und liefert jetzt die op zurück
- aber das soll ja nur dann durchgeführt werden wenn die log in informationen korrekt sind das heißt was mache ich wenn er jetzt
- beispielsweise was falsches rein schickt das heißt hier brauche ich irgendeine art verzweigung eben in sequenz diagramm sprich alternative und das ganze sieht
- dann so aus ich habe jetzt hier den positiven 2 das heißt wenn passwort okay in diesen eckigen klammern
- dann wird eben login passwort ok zurückgegeben und im elz zweig dann was sich die neue beispielsweise diese dieses passwort ok diesen ecken klammer
- nennt man das und die müssen im falle der alternative des jungs sein dh ich darf hier keine überschneidungen haben und deswegen macht man meistens am
- schluss einfach elsen und das ist sagen alles andere her also wenn quasi keines der vorigen bedingungen gilt und ich habe schon erwähnt das heißt es
- gibt eben quasi auch die möglichkeit mehrfach verzweigungen zu realisieren das sehen wir jetzt hier ich habe jetzt hier passwort okay dann wird eben ok
- zurückgeliefert wenn es nicht okay ist und der fehler zähler kleiner drei dann werden einfach nur die neue zurückgeschickt und wenn es eben nicht
- kleiner 13 größer gleich drei das wäre 12 dann würde irgendein passen der user gelockt werden was auch immer und das wäre jetzt inflation führen drei zweige
- so das stück das wir jetzt die option und bei auktionen ist es so dass ich nur prüfe ob etwas der fall ist und wenn nicht wird alles
- wird sozusagen dieser bereich innerhalb dieser option einfach übersprungen ich habe jetzt hier beispielsweise wenn das passwort nicht okay ist dann wird diese
- bereiche übersprung da merkt man gleich auf irgendwelche allgemein sind informationen und wenn es eben okay ist dann liefert mir mein mann mein server
- irgendwelche user präferenz ist fast immer so dass wir die option in der rotation für die struck programme wie hat es eine so genannte einseitige
- verzweigung so dann fehlt uns noch die schleife das sieht so aus dass ich hier das
- schlüsselwort luca oben drin habe und dann gibt es hier eine schleife bedingung für die wiederholung man interpretiert ist in aller regel als
- kopfgesteuert schleife und so halt dass die bei einem war heizwert die wiederholung durchgeführt wird hier steht eben entweder ein guter wert
- drin der eben die wiederholung darstellt es gibt aber auch eine andere möglichkeit wenn ich ein min oder bis max werthein trage dann wäre das eine
- zeitschleife also null zehn hätte ich nichts schleife von 0 bis 10 oder eine dritte option wäre an der stelle ein stern das würde dann einfach bedeuten
- die schleife million endlich laufen dann würde man noch abbruch bedingungen formulieren können aber das würde jetzt auch hier an der stelle zu weit führen
- das video wird ohnehin wahrscheinlich sehr lang es gibt noch weitere fragmente aber da würde ich einfach sagen wer wirklich da noch tiefer rein will
- in solche sachen wie kritische bereiche relevante relevante nachrichten usw sollte sich das dann eben anderweitig noch mal näher bringen ich glaube das
- was wir jetzt haben sind aus meiner sicht wirklich die wichtigsten elemente ja dann kommen wir schon zu einem beispiel wo wir das ganze mal anwenden
- und ich habe nicht alles drin aber doch einiges und deswegen habe ich jetzt einfach mal geld page täter genannt wir haben hier einen user der
- interagiert einen server und eine datenbanken beginnen wir damit dass der user jetzt irgendwie page informationen benötigt
- mit ergibt seine regieren und würde der server irgendwelche login-daten irgendwelche passworteingabe meldungen oder sowas zeigen und wir haben eine
- zwei phasen authentifizierung das heißt er schreibt jetzt irgendwie oder erzeugt jetzt erstmals ohne so eine mail wohin eine code erzeugt wird dann sagt er
- schickt email los der user kriegt jetzt die mail und holt sich dort eben diesen code raus und parallel dazu liefert jetzt der server die die information
- also die page täter geben dann braucht um eben den login und seinen code einzugeben
- so damit er das machen kann oder damit er sich auch mal vertippen kann habe ich jetzt hier einfach loop eingebaut das ist jetzt nicht besonders festgekettet
- also keinen abbruch und ohne alles aber egal das wesentliche kommt darüber der user gibt es ein login ein code id und passwort und der server verifiziert ist
- das der jackpot ob das alles so weit okay ist und solange es nicht okay sollte halt noch ein geben bis zum jüngsten tag und wenn das komplett
- verpasst muss halt einfach den kompletten prozess neu starten das ist jetzt hier nicht modelliert am schluss gibt dann der server wenn er eben über
- diesen coup hinaus ist diese user data usd/t soll ist für user data stehen das eben der user eben seinen persönlichen kram auf der seite sieht
- und entsprechend dann an der stelle weitermachen kann jetzt habe ich hier noch eine alternative eingebaut dh wenn der user
- kein atmen ist dann sagt einfach bitte gebt mir meine userdaten mit der id der server holt sich von der datenbank jetzt sehen diese userdaten die werden
- zurückgeschickt und dann an den user weitergeleitet um 11 2 also wenn es ein admin ist dann sagte schick mir alle daten erhalten weil sie eine andere
- funktionalität wird dann aufgerufen diese funktionalität holt sich dann von der datenbank eben entsprechend auch alle daten die gehen zurück und werden
- dann eben an den user zurückgeliefert und er sitzt dann okay ja damit einmal die wesentlichen elemente des sequenz diagramm sitz uns
- angeguckt und hoffentlich verstanden ich glaube das ist auch wirklich das wichtigste es gibt noch mehr das ist richtig aber da kann man sich dann auch
- entsprechend online dann noch mal schlau machen dann wirklich noch mehr in die tiefe gehen will aber das was wir jetzt hier heute
- irgendwie sehen haben das sind aus meiner sicht wirklich die wesentlichen elemente und ich glaube damit komme auf jeden fall ganz gut über die runden
- das war s dann von meiner seite ich bedanke mich für die aufmerksamkeit und ihr habt es zum nächsten video
Zum Nachlesen
SequenzdiagrammEin Sequenzdiagramm stellt in der Regel einen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes dar. Sollen Übersichten mit allen …
AktivitätsdiagrammEin Aktivitätsdiagramm (englisch activity diagram) ist ein Verhaltensdiagramm der Unified Modeling Language (UML), einer Modellierungssprache für Software …
Aktivität (UML)Eine Aktivität (engl. Activity) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.
Message Sequence ChartEin Nachrichten-Reihenfolge-Diagramm (MSC, engl. Message Sequence Chart) wird benutzt, um (z. B. zur Unterstützung der Modellierung mit SDL) beispielhafte …