Im Thema zwei der Übungen zur Softwaretechnik beschäftigen wir uns mit
Aktivitäts- und Zustandsdiagrammen. In diesem Video werde ich ein Aktivitätsdiagramm
erstellen und sie wieder an meinen Gedanken dazu teilhaben lassen.
Sie sollten vorher die Vorlesung 1, 3,
4 von Professor Riebisch gesehen haben. Dort werden Aktivitätsdiagramme eingeführt
. Zudem sollten sie das Textdokument aus dem Material zur Übung
vorher gelesen haben. Ich gehe also davon aus,
dass sie wissen, was Aktivitätsdiagramme sind,
wie diese einzuordnen sind und sie sollten auch die ersten Notationselemente
schon gesehen haben
Für diesen Teil der Übung,
für dieses Diagramm verwende ich jetzt mal einen anderen Editor.
Das ist Asta in diesem Fall. Aber sie können natürlich weiterhin
jeden um Eleditor ihrer Wahl verwenden. Asta bietet mir die Möglichkeit,
entweder von einem Template das Ganze zu erstellen,
das ist aber für unsere Fälle nicht nötig.
Das heißt, ich erstelle ein leeres Aktivitätsdiagramm,
kann einen Namen angeben und könnte dort beispielsweise dann die Aktivität
Film hinzufügen aus dem Beispielsystem My Movies modellieren.
Asta bietet mir direkt den typischen UML-Frame an und dort wird in der Ecke oben dargestellt,
dass es sich um ein Aktivitätsdiagramm handelt,
angezeigt durch das Schlüsselwörtchen Act oder Kurzform
Act für Activity Dialgram im Englischen, sowie den Namen der Aktivität, die modelliert wird.
Im Aktivitätsdiagramm geht es grundsätzlich darum, Steuerfluss darzustellen.
Also wir wollen von irgendeinem Staat, der so aussieht,
zu einem Ende, das so aussieht und können dort eben durch Pfeile darstellen,
was nacheinander passiert. Neben dem Steuerfluss werden Aktionen modelliert,
das heißt, ich hätte hier eine Aktion,
die eben aufgerufen wird und dann eine weitere interessant wird es dann,
wenn ich mehrere Aktionen habe,
die entweder in einer bestimmten Reihenfolge oder nach einer bestimmten Auswahl aufgerufen werden.
Es kommt also noch weitere Elemente für den Steuerfluss hinzu,
wie beispielsweise solche Rauten und ich kann dann modellieren,
dass ich meistens von oben nach unten einen Steuerfluss habe,
der zum Beispiel so aussieht,
dass ich eine Aktion oder die andere ausfülle.
Die Steuerfluss wieder zusammenführe und das Ganze zu einem Ende führe.
Das ist die Grundidee des Aktivitätsdiagramms
Bei der Verzweigung hier sollte ich nun natürlich noch angeben,
was denn die Bedingungen sind.
Aber das machen wir gleich am Beispiel. Grundsätzlich sollten sie unbedingt
diese Steuerelemente verwenden, also die Verzweigung und die Zusammenführung.
Denn es gibt neben dieser Verzweigung auch die nebenläufige Ausführung.
Und wenn sie mehrere Pfeile in eine Aktion hineinführen oder
dort herauskommen lassen, dann ist es häufig unklar,
ob welche dieser beiden Steuerflussmöglichkeiten denn gemeint ist.
Also wenn sie nicht absolut sicher sind, was passiert,
verwenden sie entweder eben dieses Element oder den Balken,
den sie später noch für nebenläufige Aktivitäten kennenlernen
Gut, wir gehen jetzt aber zu dem Beispiel MyMovies und wollen einen Film hinzufügen.
Bevor wir jetzt mit Aktionen beginnen und Steuerelementen,
kommen wir noch auf Partitionen zu sprechen,
die kennen Sie auch schon aus der Vorlesung, das heißt Verantwortungsbereiche.
Und in unserem Fall wollen wir einen Verantwortungsbereich pro Akteur
und für jedes Teilsystem einen eigenen Verantwortungsbereich haben.
Da wir noch keine Teilsysteme kennen,
sondern erstmal grundsätzlich von einem System ausgehen,
ist das das System MyMovies und der Akteur ist in
unserem Fall
die Filmsammlerin
Wenn wir jetzt in die Use-Case-Beschreibung schauen,
die wir schon kennen zu dem folgenden Ablauf,
dann gibt es dort die Durchführung und dort steht,
dass die Filmsammlerin eine Eingabemaske öffnet, dort Namen,
Erscheinungsjahr und Spielzeit einträgt, optional ein Cover auswählt,
das Ganze bestätigt und das System einen Eintrag am Ende erstellt.
Gut, wir möchten also beginnen, beginnen heißt,
wir nutzen einen Startknoten, davon gibt es meistens nur einen
im Aktivitätsdiagramm und haben die erste Aktion.
Die erste Aktion ist das Öffnen der Eingabemaske,
also Nennen wir diese Aktion auch genauso.
Vom Startknoten aus führen wir dann den Steuerfluss dorthin.
Die meisten UML-Tools bieten am Ende noch Möglichkeiten,
um diese Elemente auch genau untereinander auszurichten, um die Pfeile hübsch zu machen.
Aber das können wir uns dann am Ende ansehen.
Neben der Eingabemaske oder nach der Eingabemaske sollen dann Daten eingegeben werden.
Und hier ist vielleicht gar nicht mal so relevant,
welche Daten das sind, denn das wird alles in einer Eingabemaske eingegeben,
also genügen wir uns damit,
dass das Filmdaten sind
Nun ist der einfache Fall, dass das Ganze bestätigt wird.
Und dann lasst System etwas übernimmt. Die Frage ist,
was passiert, wenn das optionale Element, nämlich das Cover hinzukommt?
Das heißt, anstatt die jetzt alle zu verbinden,
fügen wir ein. Entscheidungsknoten ein. Das heißt,
nachdem die Filmdaten eingegeben wurden oder eben auch nicht,
aber ich habe die Möglichkeit als Akteurin dieses Formular auszufüllen,
kann ich nun wählen,
ob ich bestätige oder ob ich stattdessen
ein Cover hinzufüge
So, jetzt kommen wir an einen Punkt,
wo wir das Ganze ein bisschen aufräumen sollten.
Und das könnte zum Beispiel so aussehen. Wenn ich das Cover hinzugefügt habe,
komme ich danach vielleicht wieder auf die Ansicht der Filmdaten.
Das heißt, ich hätte hier dann einen Zusammenführungsknoten,
der entweder eben nach dieser Aktion ausgeführt wird
Oder in dem Ablauf, den wir eben von Anfang an
modelliert haben. Wenn ich jetzt noch eine Verzweigung habe,
muss ich die natürlich auch noch beschriften,
denn ansonsten ist unklar, welche dieser beiden Optionen gewählt wird.
Wenn ich jetzt die Leiste links wieder einblende,
ist das für Asta die Möglichkeit, mir eben anzugeben,
wie ich das Ganze machen kann.
Das heißt, an dieser Option notiere ich,
was getan wurde oder was die Bedingung ist, dass das hier ausgefüllt wird.
Und das heißt, hier könnte die Schaltfläche bestätigen, ausgewählt worden sein.
Dann habe ich dazu den Begriff in eckigen Klammern,
was die UML-typische Notation für Bedingungen ist und kann auf der
anderen Seite eben entsprechend angeben, dass die Schaltfläche Cover gewählt wurde.
Träumen wir uns mal den Pfeil aus dem Weg und dort
ist die entsprechende Option verfügbar. Gut,
nun haben wir aber das Ganze noch nicht zum Abschluss gebracht,
denn das System soll ja auch noch irgendetwas tun.
Ansonsten ergebe es keinen Sinn, das überhaupt für das System
zu modellieren
Wir können nun also auch eine Aktion auf der Seite des
Systems hinzufügen und dort soll ein neuer Eintrag erstellt werden.
Also haben wir die Aktion, einen neuen Eintrag für Filme
erstellen. Was jetzt noch fehlt, ist der Aktivitätsabschluss,
damit auch klar ist, dass hier wirklich die Aktivität zu Ende ist.
Das könnte man zum Beispiel so darstellen.
Es gibt noch einen Alternativablauf in der Use-Case-Beschreibung,
den werde ich jetzt hier nicht darstellen und eine Bemerkung.
Dort steht Erscheinungsjahr und Spielzeit nur Ziffern,
also es dürfen nur Ziffern
angegeben werden
Das bedeutet, wenn hier Filmdaten eingegeben werden, wird irgendwie dafür gesorgt,
dass dort auch nur Ziffern in den entsprechenden Feldern stehen.
Das könnte zum Beispiel im Formular direkt vermerkt sein,
das heißt, wenn ich einen Buchstaben eintippe, passiert überhaupt nichts,
dann muss ich hier auch keine Interaktion zwischen der Tätigkeit der Filmsammlerin und der Tätigkeit des Systems hinzufügen.
Wenn das eine kompliziertere Prüfung wäre,
dann und das System tatsächlich irgendetwas,
zum Beispiel berechnen muss, irgendwas nachschauen muss,
dann müsste ich natürlich die Aktion Filmdaten nochmal weiter aufteilen,
um zu sagen, was ist denn hier die Eingabe,
was ist die Prüfung,
wo findet eine Entscheidung statt
Auch beim Cover könnte ich natürlich noch weiter ins Detail gehen.
Also das Cover hinzufügen ist hier als eine einzelne Aktion dargestellt.
Also es öffnet sich ein Fenster,
ich wähle etwas aus und das Fenster schließt sich wieder.
Natürlich könnte ich auch hier sagen,
ich habe die Möglichkeit, ein Foto zu machen.
Ich habe die Möglichkeit, eine Bilddatei hochzuladen. Ich habe die Möglichkeit,
einen Link anzugeben zu einer Bilddatei, die vielleicht im Internet existiert.
Ich kann das Ganze auch wieder abbrechen,
aber für den aktuellen Fall belassen wir es mal dabei,
dass wir hier einfach nur das Cover hinzufügen.
Ihre Aufgabe ist es, zumindest für die Vorbereitungsaufgabe,
genau so etwas eben für das Bibliotheksystem durchzuführen.
Viel Erfolg dabei