Weitere Spezifikationsmöglichkeiten mit der UML

Marcel Lüthi
Departement Mathematik und Informatik

Use-case Diagramm

  • Beschreibt in Funktion involvierte Aktoren
  • Variante der Datenflussdiagramme
Diagramm nach Ghezzi et al., Fundamentals of Software Engineering, Abbildung 5.9

UML Zustandsdiagramme

  • Mächtige Umsetzung der Endlichen Automaten
  • Unterstützt verschachtelte Zustände und viele weitere Erweiterungen

UML Sequenzdiagramme

  • Konstruktive Spezifikationsmethode
  • Beschreibt Interaktion/Nachrichten zwischen Objekten
  • Fokus auf Sequenz der Nachrichten
Diagramm nach Ghezzi et al., Fundamentals of Software Engineering, Abbildung 5.10

UML Kommunikationsdiagramme

  • Semantisch Äquivalent zu Sequenzdiagram
    • Fokus auf Objektinteraktion
Diagramm nach Ghezzi et al., Fundamentals of Software Engineering, Abbildung 5.11

UML Aktivitätsdiagramme

  • Konstruktive Spezifikationsmethode
  • Modelliert Ablauf von Anwendungsfall
  • Sequentielle und parallelen Aktivitäten möglich
    • Semantik basierend auf Petri Netzen

OCL: Object Constraint Language

  • Zweck: Spezifizieren von Eigenschaften und Einschränkungen
Beispiel: Wikipedia (https://de.wikipedia.org/wiki/Object_Constraint_Language)
Beispiele:
  • context Person inv: self.alter ≥ 0
  • context Person inv: self.eltern->size() ≤ 2
  • context Person inv: self.eltern $\rightarrow$ forAll(e|e.alter>self.alter)

Umsetzung in UML: OCL

Beispiel: Wikipedia (https://de.wikipedia.org/wiki/Object_Constraint_Language)
  • context Person::bekommtKind()
    post: self.kinder->notEmpty()
        and self.kinder->size() > self.kinder@pre->size()
  • context Person inv: self.alter ≤ 18 implies self.autos->isEmpty()
  • context Person inv:
    Person.allInstances()->exists(p | p.autos->size() > 0)

UML für Spezifikation

Use-case Diagramm Finden von top-level Funktionen.
Start vom Projekt.
Klassendiagramm Anfangen mit wichtigsten Entitäten. Detailieren während ganzem Projekt.
Sequenzdiagramm Wichtige Szenarien dokumentieren.
(Fokus auf zeitlicher Abfolge).
Kommunikations-
diagramm
Wichtige Szenarien dokumentieren.
(Fokus auf Beziehung der Objekte).
Zustandsdiagramm Spezifiziert Verhalten von Instanzen.
Erst spät im Projekt einsetzen.
OCL Spezifizieren von Einschränkungen.