Wir machen weiter im nächsten Abschnitt mit dem Punkt 1.3.
Das handelt sich um das Aktivitätsdiagramm. Wir sind im Punkt
insgesamt dabei Anforderungsbeschreibung mit der UML zu machen.
Wir behandeln verschiedene Diagrammer der UML und Aktivitätsdiagramm ist jetzt das Zweite.
Wir knüpfen an daran, was wir gesagt hatten, bezüglich der Use-Case-Beschreibung.
Das war ja das Vorhergehende in den Teilen des Anforderungsmodells.
Anforderungen mit der UML, da hatten wir bis jetzt das Anwendungsfalldiagramm und die Anwendungsfallbeschreibung behandelt.
Und Entwicklungsfalldiagramm war das erste Diagramm der OML, was wir hier behandelt haben.
Das OML-Klassendiagramm kennen Sie ja von SE1 und SE2 schuld.
Ja, und in dieser Anwendungsfallbeschreibung waren Abläufe drin.
Und diese Abläufe waren dann dadurch in der Use-Case-Beschreibung so gekennzeichnet,
dass wir hier gesagt haben, wir beschreiben Verhalten,
drei verschiedene Versionen von Verhalten für Normalfallfehlerfall für Varianten.
Und diese Verhaltensbeschreibung kann irgendwie passieren. Sind die Abläufe einfach
? Reicht es, natürliche Sprache zu verwenden
Sie beschreiben das halbwegs strukturiert, so ein bisschen als
strukturierter Text, wenn dann als nächstes und so weiter.
Man könnte es auch Pseudocode beschreiben, so ein bisschen strukturiertes Englisch.
Ithan, warum nicht? Das geht auch. Aber es gibt Punkte,
wenn es komplizierter wird, wer macht was,
dass es dann die natürliche Sprache eventuell zu mehrdeutig wird.
Zu wenig Eindeutigkeit hat, insbesondere in mehrere Beteiligte sind,
wenn es kompliziertere Abläufe sind, wenn Sachen parallel laufen,
sich ausblitten, um da Bedingungen wieder zusammengeführt werden,
dann ist es vielleicht ein bisschen zu kompliziert.
Und dann wäre es geeignet, statt dieser Abläufe nicht
mehr Text zu verwenden, sondern ein anderes Darstellungsmittel.
Das wäre ein Punkt, wo dieses Aktivitätsdiagramm eingesetzt werden kann.
Wir werden später noch weitere Bereiche im Entwurf verwenden, besprechen,
wo auch das Aktivitätsdiagramm eingesetzt werden kann. Das Aktivitätsdiagramm,
dazu haben wir jetzt hier nur die eine Frage 9,
wo ich Elemente enthält,
das Aktivitätsdiagramm und da starten wir gleich damit,
dass wir erstmal die Definition uns anschauen,
was ist denn so
ein Aktivitätsdiagramm
Dafür, Aktivität beschreibt einen Ablauf und wird definiert durch verschiedene Arten von Knoten
. Knoten und Kanten, das sind die grafischen Elemente,
mit denen man so ein Diagramm häufig zeichnet.
Und hier gibt es zwei Sorten von Flüssen, Objekt und Kontrollflüsse.
Und es werden verschiedene Arten von Knoten unterschieden.
Soweit erstmal nicht besonders. Ich möchte Sie auf Besonderheiten hinweisen
. Das eine, wir haben häufig noch andere Begriffe,
wenn wir mit Entwicklern sprechen.
So werden häufig, wird der Objektfluss
häufig als Datenfluss bezeichnet
Ja. Damit meinen wir,
wie Daten bestimmte Variablbenutzung von Variablen durch ein Programm sich hindurchziehen,
wie sie weiter übergeben werden als Parameter in die nächste Funktion,
in den nächsten Modulen, nächste Komponente.
Entwickler benutzen dann den Begriff Datenfluss dafür, da wir mit Objekten agieren,
ist es nur konsequent ja den Begriff Objektfluss zu nehmen.
Deswegen in der Definition steht hier Objektfluss,
sie dürfen gerne in dieser Lehrveranstaltung auch Datenfluss dazu sagen,
einschließlich in der Klausur, das ist tolerant,
das Tolerabel.
Das Gleiche hier haben wir
den Begriff Kontrollfluss
Du Control heißt ja Steuern, ja, und viele sagen dazu,
Steuerfluss, ja, das ist auch ein Begriff, den man ganz häufig findet.
Und sie dürfen gerne den oder einen anderen Begriff verwenden.
Außerdem möchte ich sie noch, ach so,
vielleicht bevor wir hier weitermachen, zeige ich das erstmal,
dann mache ich sie noch auf zwei weitere Punkte aufmerksam.
Also hier sehen wir mal so ein Beispiel, ja,
also wir haben hier so einen Ablauf,
das fängt hier oben an, das ist irgendwie,
da braucht man nicht viel Erklärung dazu,
die Pfeile geben die Richtung vor,
es gibt eine Variante hiervon,
es gibt eine Variante hiervon und hier sehen wir jetzt nur diese eine Sorte Aktionsknoten und wir haben noch weitere Diagramme.
Hier sehen wir noch Entscheidungen. Das sind dann
die Kontrollknoten und wir hatten dann irgendwo ein bisschen später,
hier haben wir auch nochmal so ein Objektknoten.
Ich möchte Sie auf was anderes aufmerksam machen in diesem Diagramm.
Das Diagramm heißt Aktivitätsdiagramm und hier ist eine Besonderheit in der Benennung.
Das, was hier wirklich was tut. Das heißt nicht etwa Aktivität,
sondern das heißt Aktionsknoten und Aktivität heißt der ganze Ablauf.
Das ist also so ein bisschen, ja,
wie soll ich sagen, Muss man ein bisschen vorsichtig sein.
Ja, wenn jemand das ganz genau nimmt, dann könntest du Verwechslungen kommen.
Ja, also deswegen möchte ich sie einfach nur darauf hinweisen.
Also das hier heißt insgesamt eine Aktivität und das hier heißt Aktionsknoten.
Nur so dafür, ja, also wie gesagt,
ich werde in der Veranstaltung nicht so besonders drauf rumreiten,
aber sollte wenigstens wissen, wie es korrekt heißt.
So, also wir sehen hier schon, das sind die Elemente.
Hier hatten wir es schon kurz gesehen.
Und jetzt nochmal grafisch der Aktionsknoten ist also so ein Viereck
mit irgendwie abgerundeten Eltern
Jedenfalls kein richtiges Rechteck, weil das richtige Rechteck ist dem Objekt Knoten vorbehalten.
Das passt wieder zu dem übrigen Sachen der UML,
weil wir im Klassendiagramm ist ja die Klasse,
wovon das Objekt ja eine Instanz ist, auch so ein Kasten.
So, das haben wir. Dann haben wir die Pfeile,
das ist dann der Steuerfluss beziehungsweise Kontrollfluss. Da Bierknoten ist dann die,
wenn die Objektknoten, da kommen wir gleich noch dazu,
wenn die verbunden sind, wie der Objekt fürs aussieht.
Wir haben hier noch als besondere Knotenstatue und Endknoten,
den werden wir nicht benutzen, in unserem Beispiel.
Und was wichtig ist, Wir haben zwei Sorten von Aufspaltungen des Steuerflusses.
Und zwar einerseits diese hier, da wird mit einer Entscheidung,
das geht entweder da lang oder da lang,
oder es sind sogar drei Entscheidungen drin, das ist dieses Wenn dann.
Und dann wird das wieder zusammengeführt. Also das,
die beiden gehören zusammen, man bezeichnet es durchaus auch oder,
weil es geht entweder da lang oder da lang oder da lang.
Diese beiden gehören auch zusammen und das nutzt man für Nebenläufige Dinge.
Bei den nebenläufigen Sachen muss man Warte, warte, habe ich so weiter geschaltet?
Nein. Bei den nebenläufigen Sachen muss man,
muss man darauf achten,
dass wir hier tatsächlich das gleichzeitig haben und hier wird es dann gleichzeitig,
wird die Gleichzeitigkeit beendet und man wartet aufeinander.
Das haben wir, vielleicht, bevor wir weitergehen,
schreibe ich erstmal hier noch den zweiten Begriff dran.
Kontrollschluss. Und ja, genau, Aktionsgründen hat man
da schon dran geschrieben
Soweit, jetzt schauen wir uns das im Beispiel an.
Also, das erste Beispiel war ja, das hier ohne Entscheidungen.
Ja, die Entscheidungen sind irgendwie hier gar nicht mit angegeben.
Das geht hier lang und hier lang. Aber was wir
hier sehen, es gibt hier in eckigen Klammern die Bedingung.
Das schreiben wir uns mit dran. Und hier haben wir zweimal
eine Bedingung. Weil das nicht so ganz klar ist,
es ist besser, das schöner zu zeichnen.
Und schöner ist es hier gezeichnet. Ja,
hier haben wir dann also diese Entscheidung hier,
das ist dieses, oder hier haben wir wieder die Bedingungen dran.
Schreiben wir hier wieder hin
Und die Bedingungen sollten sich natürlich ausschließen, sollten nicht beide gleichzeitig erfüllt sein.
So, das Ganze wird hier wieder zusammengeführt hier unten.
Viele Werkzeuge erlauben, dass man das auch weglässt.
Entwickler lassen das deswegen auch gerne weg. Aber eigentlich
ordentlich ist es so, wenn es so aufgesplittet wird,
muss es auch so wieder zusammengeführt werden.
Hier sehen wir diese andere Form der Aufzweigung des Steuerflusses mit der Nebenläufigkeit.
Nebenläufigkeit bedeutet also, es geht da lang und da lang.
In dem vorhergehenden Bild war das Wort auch mit dabei. Ja,
es blillt sich hier auf und hier wird es wieder zusammengeführt,
das Wort Synchronisation finde ich eine sehr gute Erläuterung, was es hier macht.
Hier wird es nur zusammengeführt, hier wird es synchronisiert,
synchronisieren, hat was mit gleichzeitig zu tun.
Wir warten darauf, dass beides erfüllt ist. Ja,
also hier ist es egal, ob die das oder das zuerst kommt,
weiter geht es erst, wenn beide erfüllt sind.
Deswegen Synchronisation. In der Tat ist das sogar die bessere Darstellung,
wenn wir jetzt mal die beiden Versionen des Diagramms vergleichen.
Hier wird vorgeschrieben, ich muss zuerst das erste machen,
dann muss ich das zweite machen,
dann muss ich
das dritte machen
In dieser Reihenfolge. Ich darf nicht zuerst das machen. Besser,
flexibler in der Benutzung des Systems, was wir hier beschreiben.
Wir gestalten ja das System mit der Anforderungsbeschreibung, gestalten wir das System.
Ich erinnere an das Gewicht früher Entscheidungen. Ja,
also wir entscheiden jetzt hier, wenn wir das so entscheiden,
dass die beiden Sachen in der Reihenfolge beliebig sind, ist das System besser verwendbar.
Beispiel, mein Beispiel dafür ist Telefonnotline, ja,
jemand ruft an bei der Telefonhotline, bei einem Online-Versand, Oma Alice hier möchte eine Lama-Decke
Und dann, wenn das dann in der festen Reihenfolge steht,
da heißt das dann, Oma Lieschen,
ja guten Tag, ich möchte eine Lama-Decke bestellen,
sagen, sie müssen mir erst ihre Kundenkennung geben.
Ich möchte eine Lama-Decke. Nein, erst ihre Kundenkennung. Ja,
wenn das flexibel wäre, in dieser Form,
dann kann man eben erst die Bestellung aufnehmen und fragt hinterher,
ja, Frau Wermer, ich habe jetzt ihre Lärmedecke aufgeschrieben,
jetzt müssen Sie mal bitte Ihre Kundenkennung sagen oder Ihre Adresse,
wo man es denn hinschicken soll.
Also dann ist die Reihenfolge flexibel und das ist diese Konstruktion,
das ist flexibel, in der Reihenfolge, es sieht dann so aus.
Wir haben das Gleiche hier unten nochmal,
das ist wichtig, dass sie sich diesen Unterschied merken.
Ja, also hier muss ich auf jeden Fall,
so wie es aufgespellt wird, auch wieder synchronisieren.
Hier unten ist die Reihenfolge auch beliebig.
Wir benutzen von der Sprechweise nicht das Wort parallel dafür,
weil es muss nicht zwingend parallel, also gleichzeitig passieren.
Das Wort nebenläufig drückt das besser aus, weil es heißt,
ja okay, das ist irgendwie so nebeneinander,
aber die Reihenfolge ist tatsächlich nicht definiert.
Es geht erst weiter, wenn es beides fertig ist.
Soweit, hier haben wir, ja genau,
also das wäre die nächste Version
Als weiteren Punkt und als weitere Möglichkeit des Aktivitätsdiagramms haben wir
die Möglichkeit, dass wir Verantwortungsbereiche, Verantwortlichkeitsbereiche zuordnen.
Wir können also in dem Aktivitätsdiagramm ausdrücken, wer macht was.
Wer oder was ist für einen Knoten verantwortlich?
Und das machen wir durch diese im Jargon genannten Swim Lanes.
Ja, ich schreibe es mal hier dran. Weil es
so ein bisschen so aussieht wie die Bahnen im Schwimmbad,
wo jeder seine hat und wehe man geht in die andere
Ja, und, aber so, und was hier oben reinkommt
, sind die Akteure. Die Akteure oder die Systeme,
die hier, die hier diese Verantwortung, die Aufgabe übernehmen,
je nachdem, worauf sich das bezieht.
Beantwortung sind häufig Akteure oder irgendwelche Nachbarsysteme, das macht das E-Mail-System,
das macht der, das macht der.
Im Prinzip versucht man die Ablauf,
den Ablauf von oben nach unten zu machen durch diese Pfeile,
aber man kann hier das ausdrücken
Ja, wir haben jetzt hier ein Beispiel, was ein bisschen komplizierter ist.
Sie müssen sich hier das schon genau anschauen. Hier sehen wir
zum Beispiel zwei Akteure, Kunde- und Kassensystem. Und hier,
das ist auch ein Akteur im Sinne des Aktivitäts, des Use-Case-Diagramms.
Das ist ein anderes System, was noch beteiligt ist.
Und hier sehen wir, wie es hin und her geht.
Und tatsächlich geht es auch manchmal in irgendeiner Form wieder hoch. Ja,
ob das jetzt, man das genau so zeichnet oder so,
das hängt ein bisschen von dem Geschick ab.
Man versucht, das Übersicht zu gestalten, keine Kreuzung zu machen.
Hier ist jetzt mal die Kreuzung hervorgehoben durch so eine,
damit man sieht, das ist ja wirklich getrennt,
das so zu machen
Wir sehen jetzt hier die Nutzung der Swimlines, der Verantwortlichkeitsbereiche, der Partitionen.
Und zusätzlich gibt es hier eine Ausblittung und hier eine Synchronisation.
Soweit haben wir jetzt die grafischen Elemente schon behandelt für die Partition und den Aktionsknoten,
den Steuerfluss, die Bedingung und Stadtknoten, Entknoten.
Zusätzlich können wir überall in UML, in jedem UML-Diagramm können wir die Notiz anbringen.
Das ist so ein Zettel mit so einer abgeknickten Ecke,
so ein Symbol, da kann man beliebigen Text reinschreiben zur Erläuterung.
Die Empfehlung ist immer, das Diagramm zu verwenden,
ohne die Erläuterung möglichst alles durch OML-Elemente auszudrücken, soweit man es denn kann.
Soweit, was wir jetzt noch nicht hatten,
war der Aktionsknoten und tatsächlich braucht man den für den Datenfluss. Wie ich vorhin schon sagte,
offiziell heißt das Ganze Objektfluss, ja,
und hier die Definition davon, der Objektknoten gibt an,
dass ein Objekt existiert und die können als Parameter verwendet werden
in Aktionsknoten in Aktivitäten und der Objektfluss sieht genauso dargestellt aus wie ein Kontrollfluss,
verhält sich auch genau, er sagt die Reihenfolge,
drückt die Reihenfolge,
aber es werden Objekte transportiert
Wir haben grafisch zwei Darstellungen, jedenfalls ist das hier und hier,
ist es eigentlich das Gleiche, ja, dadurch, dass wir hier,
das sieht so ein bisschen aus wie so ein Port,
später haben wir das Komponentendiagramm, also hier so ein Interface,
wie sieht aus wie so ein Port,
das wird also deutlich, dass wir hier ein Objekt transportieren,
Datenparameterwerte und hier ist das separat in so einem Kästchen angegeben,
das ist dann das,
was wir als Objekt knoten in der Definition hatten.
Ja, beide Linien stehen eigentlich jetzt hier für den Datenfluss,
obwohl wir vorher gesagt haben,
ja,
diese Pfeile stellen den Steuerfluss da
Soweit, soweit dazu zum Aktivitätsdiagramm. Jetzt haben wir alle Elemente kennengelernt,
die es dabei gibt. Damit haben wir die Möglichkeit,
Dinge darzustellen, die auch durch diese Partition mehrere Teilnehmungen umfassen.
Aber im Wesentlichen haben wir immer einen Ablauf.
Wenn wir hier, ist es auch im Wesentlichen,
auch wenn das schon ziemlich kompliziert ist,
im Wesentlichen ist das ein Ablauf.
Man könnte noch irgendeine Variante mit reinschreiben, ja,
nein, irgend sowas. Aber man würde nicht in die
Versuchung kommen, zu viele Sachen reinzuschreiben,
sonst wird das unübersichtlich
Ja, damit sind wir erstmal am Ende von 1.3.
Weiter geht es dann mit 1.4,
der Problembereichsmodellierung