Übungsaufgabe zum UML-Zustandsdiagramm

https://oer-informatik.de/uml-zustand-uebung-session

https://bildung.social/deck/@oerinformatik/113726239470744032

tl/dr; (ca. 30 min Bearbeitungszeit): Übungsaufgabe zu UML-Zustandsdiagrammen: Es soll eine Art Genehmigungsprozess modelliert werden mit Zuständen, Transitionen, zusammengesetzen Zuständen und inneren Aktivitäten. (Zuletzt geändert am 16.01.2025)

Hintergrundinformationen finden sich in diesem Grundlagenartikel zum UML-Zustandsdiagramm.

Hintergrundinformation zur Aufgabe

Diese Modellierung erfolgt im Zusammenhang mit der Erstellung einer WebApp zur Organisation eines Mitmach-Kongresses: alle Kongress-Teilnehmer können per Online-Formular Veranstaltungsideen erstellen, bearbeiten und einreichen, ein Organisationsteam entscheidet darüber, welche Veranstaltungen am Ende durchgeführt werden. Veranstaltungen können Vorträge, Tutorials, Diskussionen usw. sein - sie werden im Folgenden vereinfacht als Session bezeichnet.

Aufgabenstellung

Die Vorschläge für Sessions werden mithilfe einer App gesammelt. Dabei können Sessions folgende Stadien durchlaufen:

  • Zunächst gilt eine Session als entworfen, solange sie bearbeitet wird. Ist die Bearbeitung abgeschlossen, wird der Text gespeichert und sie gilt danach als ausformuliert.

  • Sobald eine Session ausformuliert ist, wird die Prüfung durch den Autor vorbereitet. Eine Session wird unentwegt überprüft, solange sie ausformuliert ist. Die Prüfergebnisse werden gespeichert, sobald die Session nicht mehr ausformuliert ist. Es gibt nur drei Ereignisse, die dafür sorgen, dass eine Session nicht mehr ausformuliert ist:

    • Der Autor / die Autorin hat Korrekturen: Dabei werden die Prüfergebnisse erst gespeichert und dann eine neue Prüfung vorbereitet. Die Session ist nach den Korrekturen wieder ausformuliert.

    • Es gibt Ergänzungen des Autors / der Autorin: hierdurch gilt die Session wieder als eine entworfene Session: die Prüfergebnisse werden gespeichert und die Session wird wieder bearbeitet, bis die Bearbeitung abgeschlossen ist (siehe oben).

    • Wenn das Formular abgesendet wird, gilt eine ausformulierte Session als eingereicht, so fern alle Felder ausgefüllt sind. Sind nicht alle Felder ausgefüllt, ist die Session nach dem Absenden des Formulars wieder ausformuliert (sprich: Formular wird abgesendet, Vollständigkeit wird geprüft, die Prüfergebnisse werden gespeichert - bei fehlenden Formulardaten wird dann die Prüfung wieder vorbereitet, siehe oben).

  • Eine entworfene und ausformulierte Sessions können in den Papierkorb gelegt werden. Aus dem Papierkorb können sie entweder endgültig gelöscht oder wiederhergestellt werden. Wiederhergestellte Sessions gelten entweder als entworfen oder als ausformuliert, je nach dem, welches Stadium sie vor dem Löschen zuletzt hatten.

  • Eine eingereichte Session ist durch Zustimmung des Orgateams genehmigt. Während der Genehmigung wird eine Bestätigungsmail an den Autor / die Autorin gesendet.

  • Eine eingereichte Session wird durch Ablehnung des Orgateams wieder eine ausformulierte Session. Während der Ablehnung wird eine Bestätigungsmail an den Autor / die Autorin gesendet.

  • Eine genehmigte Session wird durchgeführt, sobald der Zeitpunkt der Session startet. Bei einer durchgeführten Session werden zu Beginn alle nötigen Dokumente bereitgestellt. Danach wird die Session durchgeführt. Sobald die Durchführung beendet ist, wird die Session evaluiert.

  • Eine durchgeführte Session wird archiviert, bevor alles beendet wird.

  • Eine eingereichte oder genehmigte Session kann durch den Autor / die Autorin zurückgezogen (in den Papierkorb gelegt). Wird diese Session wiederhergestellt, gilt sie als ausformulierte Session.

  • Eine durchgeführte Session kann nicht gelöscht werden.

Erstelle für die unterschiedlichen Zustände einer Session ein UML-Zustandsdiagramm mit allen genannten Informationen, aus dem die Zustandsübergänge, Aktivitäten und Bedingungen wie oben genannt hervorgehen.

Beispiellösung

Wer nach der Bearbeitung das eigene Ergebnis vergleichen will, der kann sich folgende Beispiellösung anschauen:

Die modellierten Zustände könnten etwa so aussehen - wobei leider das Tool bei den zusammengesetzten Zuständen eckige Umrandungen (was Objekte/Klassen wären) statt runder Umrandungen gewählt.

Darstellung Zustandsdiagramm zur Sessionplanung
Darstellung Zustandsdiagramm zur Sessionplanung

Hinweis zur Lösung:

Einige Eigenschaften lassen sich nur über Subzustände und Historie lösen: das Wiederherstellen der Session in den Zuständen ausformuliert oder entworfen ist anders nicht realisierbar.

Die Zustände genehmigt und eingereicht teilen sich die Transition “Session durch Autor zurückgezogen” - auch das lässt sich am einfachsten über einen zusammengesetzten Zustand realisieren.

Die Formulierungen sind so gewählt, dass klar zwischen Triggern, Guards und Effekten unterschieden werden kann, lediglich beim Übergang von “genehmigt” zu “durchgeführt” wäre auch eine zeitliche Triggerung denkbar.

Bei den inneren Aktivitäten ist zu beachten, dass die do -Aktivitäten solange laufen, bis sie beendet sind - es sei denn, ein Trigger, der den Zustandsübergang einleitet, unterbricht sie. Bei der letzten Transition aus dem “durchgeführt”-Zustand wird der Zustandsautomat beendet, sobald die do -Aktität abgeschlossen, die exit -Aktivität beendet und der Transitionseffekt abgeschlossen ist.

Bepunktungsvorschlag gesamt 31P:

  • 6 Zustände: 6x1P = 6P
  • 7 innere Aktivitäten 7x1P = 7P
  • 5 Transitionen mit Effekt (3x Mail, speichern, archivieren): 5P
  • 1 Choice (mit zwei Abzweigen): 3P
  • Transition mit Guard oder Zeit-Event (Zeitpunkt): 1P
  • Papierkorb-Transitionen (legen, wiederherstellen, löschen - ohne zurückziehen, das ist oben schon drin): 3P
  • Einfache Transitionen: Ergänzen, Korrektur, Start, Stop: 4P
  • Subzustand mit Historie: 2P

Hinweis zur Nachnutzung als Open Educational Resource (OER)

Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: Übungsaufgabe zum UML-Zustandsdiagramm” von Hannes Stein, Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/uml-zustand-uebung-session veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/uml/umlzustand. Stand: 16.01.2025.

[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: