Uni ed Modeling Language (UML) UML: Einf uhrung Uni ed ... · Einf uhrung in die Modellierung...

of 48/48
Einf¨ uhrung in die Modellierung Petrinetze Unified Modeling Language (UML) Vorlesung “Modellierung” “Modellierungsmethoden der Informatik” Wintersemester 2011/12 Prof. Barbara K¨ onig ¨ Ubungsleitung: Dr. Sander Bruggink Barbara K¨ onig Modellierung 1 Einf¨ uhrung in die Modellierung Petrinetze Unified Modeling Language (UML) Klassen- und Objektdiagramme Verhaltensdiagramme ¨ Uberblick ¨ uber weitere UML-Diagramme UML: Einf¨ uhrung UML = Unified Modeling Language Standard-Modellierungssprache f¨ ur Software Engineering. Basiert auf objekt-orientierten Konzepten. Sehr umfangreich, enth¨ alt viele verschiedene Typen von Modellen. Entwickelt von Grady Booch, James Rumbaugh, Ivar Jacobson (1997). Barbara K¨ onig Modellierung 213 Einf¨ uhrung in die Modellierung Petrinetze Unified Modeling Language (UML) Klassen- und Objektdiagramme Verhaltensdiagramme ¨ Uberblick ¨ uber weitere UML-Diagramme UML und Objekt-Orientierung Was bedeutet Objekt-Orientierung? Grundidee Die reale Welt besteht aus Objekten, die untereinander in Beziehungen stehen. Diese Sichtweise wird auch auf Modellierung und Softwareentwicklung ¨ ubertragen. Etwas genauer . . . Daten (= Attribute) werden zusammen mit der Funktionalit¨ at (= Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt ist in der Lage Nachrichten (= Methodenaufrufe) zu empfangen, Daten zu verarbeiten und Nachrichten zu senden. Diese Objekte k¨ onnen – einmal erstellt – in verschiedenen Kontexten wiederverwendet werden. Barbara K¨ onig Modellierung 214 Einf¨ uhrung in die Modellierung Petrinetze Unified Modeling Language (UML) Klassen- und Objektdiagramme Verhaltensdiagramme ¨ Uberblick ¨ uber weitere UML-Diagramme UML und Objekt-Orientierung Geschichte der Objekt-Orientierung Entwicklung von objekt-orientierten Programmiersprachen: 60er Jahre: Simula (zur Beschreibung und Simulation von komplexen Mensch-Maschine-Interaktionen) 80er Jahre: C++ 90er Jahre: Java Verbreitung von objekt-orientierten Entwurfsmethoden: 70er Jahre: Entity-Relationship-Modell 90er Jahre: Vorl¨ aufer von UML: OOSE (Object-Oriented Software Engineering), OMT (Object Modeling Technique) Seit 1997: UML Seit 2005: UML 2.0 Barbara K¨ onig Modellierung 215
  • date post

    04-Jun-2018
  • Category

    Documents

  • view

    219
  • download

    0

Embed Size (px)

Transcript of Uni ed Modeling Language (UML) UML: Einf uhrung Uni ed ... · Einf uhrung in die Modellierung...

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Vorlesung ModellierungModellierungsmethoden der Informatik

    Wintersemester 2011/12

    Prof. Barbara KonigUbungsleitung: Dr. Sander Bruggink

    Barbara Konig Modellierung 1

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    UML = Unified Modeling Language

    Standard-Modellierungssprache furSoftware Engineering.

    Basiert auf objekt-orientiertenKonzepten.

    Sehr umfangreich, enthalt vieleverschiedene Typen von Modellen.

    Entwickelt von Grady Booch,James Rumbaugh, Ivar Jacobson(1997).

    Barbara Konig Modellierung 213

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML und Objekt-Orientierung

    Was bedeutet Objekt-Orientierung?

    Grundidee

    Die reale Welt besteht aus Objekten, die untereinander inBeziehungen stehen. Diese Sichtweise wird auch auf Modellierungund Softwareentwicklung ubertragen.

    Etwas genauer . . .

    Daten (= Attribute) werden zusammen mit der Funktionalitat (=Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt istin der Lage Nachrichten (= Methodenaufrufe) zu empfangen,Daten zu verarbeiten und Nachrichten zu senden.

    Diese Objekte konnen einmal erstellt in verschiedenenKontexten wiederverwendet werden.

    Barbara Konig Modellierung 214

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML und Objekt-Orientierung

    Geschichte der Objekt-Orientierung

    Entwicklung von objekt-orientierten Programmiersprachen:

    60er Jahre: Simula (zur Beschreibung und Simulation vonkomplexen Mensch-Maschine-Interaktionen)80er Jahre: C++90er Jahre: Java

    Verbreitung von objekt-orientierten Entwurfsmethoden:

    70er Jahre: Entity-Relationship-Modell90er Jahre: Vorlaufer von UML:OOSE (Object-Oriented Software Engineering),OMT (Object Modeling Technique)Seit 1997: UMLSeit 2005: UML 2.0

    Barbara Konig Modellierung 215

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML und Objekt-Orientierung

    Vorteile der objekt-orientierten Programmierung und Modellierung

    Leichte Wiederverwendbarkeit dadurch, dass Daten undFunktionalitat zusammen verwaltet werden und es Konzeptezur Modifikation von Code (Stichwort: Vererbung) gibt.

    Nahe zur realen Welt: viele Dinge der realen Welt konnen alsObjekte modelliert werden.

    Vertraglichkeit mit Nebenlaufigkeit und Parallelitat:Kontrollfluss kann nebenlaufig in den Objekten ablaufen unddie Objekte konnen durch Nachrichtenaustausch bzw.Methodenaufrufe untereinander kommunizieren.

    Barbara Konig Modellierung 216

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML und Objekt-Orientierung

    Ein Beispiel fur die Modellierung vonObjekten der realen Welt:

    Fahrkartenautomat

    Daten: Fahrtziele, Zoneneinteilung,Fahrtkosten

    Funktionalitat: Tasten drucken,Preise anzeigen, Munzen einwerfen,Fahrkarte auswerfen

    Barbara Konig Modellierung 217

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML und Objekt-Orientierung

    Konzepte

    Klassen: definiert einen Typ von Objekten mit bestimmtenDaten und bestimmter Funktionalitat.

    Beispiel: die Klasse der VRR-Fahrkartenautomaten

    Objekte: Instanzen der Klasse.

    Beispiel: der Fahrkartenautomat am DuisburgerHauptbahnhof, Osteingang

    Barbara Konig Modellierung 218

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    Einsatzgebiete von UML im Software-Engineering

    Visualisierung

    Spezifikation

    Konstruktion (z.B. zur Codegenerierung)

    Dokumentation

    Barbara Konig Modellierung 219

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    Vokabular der UML (nach Booch/Rumbaugh/Jacobson)

    Dinge (things)

    Beziehungen (relationships)

    Diagramme (diagrams)

    Dinge

    Strukturen (structural things)

    Verhalten (behavioral things)

    Gruppen (grouping things)

    Annotationen (annotational things)

    Barbara Konig Modellierung 220

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    Beziehungen

    Abhangigkeiten (dependencies)

    Assoziationen (associations)

    Generalisierungen (generalizations)

    Realisierungen (realizations)

    Barbara Konig Modellierung 221

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    UML-Diagramme

    Verhaltens-diagramme

    Interaktions-

    diagramme

    Objekt-

    diagramm

    Kompositions-

    strukturdiagramm

    diagrammeStruktur-

    Klassen-

    diagramm

    Komponenten-

    diagramm

    Verteilungs-

    diagramm

    Paket-

    diagramm

    Diagrammeder UML

    diagramm diagramm

    diagramm

    Aktivitats- Anwendungsfall-

    Zustands-

    diagrammdiagramm

    Interaktionsuber-

    sichtsdiagramm

    Zeitverlaufs-/

    Timing-Diagramm

    Kommunikations-Sequenz-

    Barbara Konig Modellierung 222

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    Diagramme (I)

    Strukturdiagramme

    Klassendiagramme (class diagrams)Objektdiagramme (object diagrams)Kompositionsstrukturdiagramme (composite structurediagram)Paketdiagramme (package diagram)Verteilungsdiagramme (deployment diagram)Komponentendiagramme (component diagrams)

    Barbara Konig Modellierung 223

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    UML: Einfuhrung

    Diagramme (II)

    Verhaltensdiagramme

    Aktivitatsdiagramme (activity diagrams)Zustandsdiagramme (state diagrams)Anwendungsfalldiagramm (use case diagrams)

    Interaktionsdiagramme

    Sequenzdiagramme (sequence diagrams)Kommunikationsdiagramm (communicationdiagram)Zeitverlaufsdiagramm (timing diagram)Interaktionsubersichtsdiagramm (interactionoverview diagram)

    Wir werden im Folgenden einige dieser Begriffe mit Leben fullen.

    Barbara Konig Modellierung 224

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Wir beginnen mit Klassen- und Objektdiagrammen . . .

    Beispiel: Klasse der zweidimensionalen Punkte mit x-,y -Koordinaten und Operationen zum Auslesen der Koordinaten

    Graphische Darstellung einer Klasse

    x: inty: int

    Klassenname

    Attribute (evtl. mit Typ)

    Operationen/Methodenget x(): intget y(): int

    Point

    Barbara Konig Modellierung 225

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Bei den Attributen handelt es sich um sogenannteInstanzattribute, d.h., sie gehoren zu den Instanzen einerKlasse (nicht zur Klasse selbst).

    Man kann die Sichtbarkeit eines Attributes bzw. einerMethode spezifieren, indem man + (offentlich/sichtbar) oder (privat/nicht sichtbar) vor den Attribut-/Methodennamenschreibt.Auch die Angabe # (geschutzt/protected) ist moglich. Indiesem Fall ist das Attribut nur fur Klassen sichtbar, die vonder entsprechenden Klasse erben.

    Barbara Konig Modellierung 226

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Attribute haben im allgemeinen Typen, manchmal auchVorgabewerte (= initiale Werte). Dies wird dannfolgendermaen notiert:

    x: int = 0

    Mehrstellige Operationen mit Ruckgabewert werden mit ihrenTypen folgendermaen notiert:

    add(m: int, n: int): int

    Barbara Konig Modellierung 227

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Graphische Darstellung einer Instanz einer Klasse

    x: inty: int

    get x(): intget y(): int

    instantiate

    x = 0y = 0

    Point mypoint :Point

    Barbara Konig Modellierung 228

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Graphische Darstellung von Generalisierung/Spezialisierung

    c: stringx: inty: int

    get x(): intget y(): int

    color(): stringsetcolor(c: string)

    Colored PointPoint

    Die Klasse Colored Point spezialisiert die Klasse Point.Umgekehrt generalisiert Point die Klasse Colored Point.

    Barbara Konig Modellierung 229

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    In einer solchen Situation nennt man Point Superklasse undColored Point Subklasse.

    Die Subklasse erbt die Attribute, Methoden und Assoziationender Superklasse (und kann diesen noch weitere hinzufugen).Daher spricht man auch von Vererbung. Auerdem kann manin der Subklasse Methoden der Superklasse uberschreiben unddurch neue ersetzen.

    Barbara Konig Modellierung 230

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Wie kann man Beziehungen zwischen Klassen in UML darstellen?

    Es gibt folgende mogliche Beziehungen:

    Assoziation

    Aggregation

    Komposition

    Barbara Konig Modellierung 231

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Wir beginnen mit der schwachsten Relation zwischen zwei Klassen:der Assoziation.

    Assoziation

    Es gibt eine Assoziation zwischen den Klassen A und B, wenn

    es eine semantische Beziehung zwischen den Klassen gibt.

    Ublicherweise werden Assoziationen durch Referenzen realisiert.D.h., eine der Klassen hat ein Attribut vom Typ der anderenKlasse. Diese Attribute werden im Klassendiagramm jedoch nichtexplizit angegeben.

    Barbara Konig Modellierung 232

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Beispiel fur eine Assoziation

    Eine Person besitzt ein Auto.

    besitzt

    Person Auto

    Barbara Konig Modellierung 233

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Es kann eine Leserichtung der Assoziation eingefuhrt werden:

    besitzt

    Person Auto

    Die Navigationsrichtung (beschrieben durch eine Pfeilspitze)kann von der Leserichtung abweichen. Sie beschreibt, welcheKlasse ihren Assoziationspartner kennt (und daher seineMethoden aufrufen kann).

    besitzt

    Person Auto

    Hier kennen sich beide Klassen gegenseitig.

    Barbara Konig Modellierung 234

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Multiplizitaten: an beide Enden der Assoziationen konnenMultiplizitaten in Form von Intervallen m..n (oder einfach nurm fur m..m) angegeben werden. Hier besitzt eine Person biszu funf Autos. Ein Auto ist im Besitz genau einer Person.

    besitzt

    Person Auto1 0..5

    Falls die Multiplizitat groer als eins ist, muss dies in derImplementierung durch eine Liste (oder Menge oder Array)von Referenzen realisiert werden.

    Barbara Konig Modellierung 235

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Multiplizitaten allgemein: in folgendem Diagramm konnen iInstanzen von A (mit m i n) mit einer Instanz von Bassoziert sein. Umgekehrt konnen j Instanzen von B (mitk j l) mit einer Instanz von A assoziiert sein.

    A Bm..n k..l

    Falls es keine obere Schranke gibt, wird ein Stern (=unendlich) verwendet. Beispielsweise steht 2.. furmindestens zwei.

    Die Multiplizitat 0.. wird als Standardwert angenommen,wenn keine Angabe vorhanden ist.

    Barbara Konig Modellierung 236

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Rollen: Klassen konnen in verschiedenen Assoziationenverschiedene Rollen spielen. Rollen werden auch an denAssoziationen notiert (und konnen alle Bestandteile einesAttributs enthalten).

    HaendlerKaeufer

    EndkundeVerkaeuferKaeuferVerkaeufer

    Grosshandel

    Barbara Konig Modellierung 237

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Die nachste Relation Aggregation ist etwas starker.

    Aggregation

    Es gibt eine Aggregation zwischen den Klassen A und B, wenn

    Instanzen der Klasse A Instanzen der Klasse B als Teileenthalten. (Ein Ganzes enthalt mehrere Teile.)

    Barbara Konig Modellierung 238

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Beispiel fur eine Aggregation

    Ein Parkplatz enthalt mehrere Autos.

    AutoParkplatz

    enthaelt

    0..1 0..

    Barbara Konig Modellierung 239

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Die starkste Relation ist die sogenannte Komposition.

    Komposition

    Es gibt eine Komposition zwischen den Klassen A und B, wenn

    Instanzen der Klasse A Instanzen der Klasse B als Teileenthalten und die Lebenszeit der Teile wird vomGanzen kontrolliert. Das heit, die Teile konnen(mussen) geloscht werden, sobald die Instanz der KlasseA geloscht wird.

    Barbara Konig Modellierung 240

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Beispiel fur eine Komposition

    Ein Auto besteht aus vier Radern.

    Auto Rad

    besteht aus

    1 4

    Die Rader werden zerstort, sobald das Auto zerstort wird.

    Bemerkung: In diesem Fall muss die Multiplizitat, die an derschwarzen Raute steht, immer 0 oder 1 sein. Jedes Teil kannhochstens zu einem Ganzen gehoren.

    Barbara Konig Modellierung 241

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    In Klassendiagrammen befinden sich normalerweise nicht nur zweiKlassen mit einer Assoziationen, sondern verschiedene Klasseneines Programms oder Moduls, mit ihren Beziehungenuntereinander.

    Beispiel:

    AutoParkplatz

    enthaelt

    0..1 0..

    bes

    itzt

    Person

    1

    0..5

    Rad

    besteht aus

    1 4

    Barbara Konig Modellierung 242

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    n-are Assoziation

    Neben binaren (zweistelligen) Assoziationen gibt es auch n-areAssoziationen, die eine Beziehung zwischen n Klassen beschreiben.

    1..

    0..

    Vorspeise

    0.. Dessert

    Menue

    Hauptgericht

    Barbara Konig Modellierung 243

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Generalisierungsgruppen

    Klassen konnen in unterschiedlicher Weise spezialisiert bzw.unterteilt werden. Daher konnen Generalisierungen zu Gruppenzusammengefasst werden.

    Person

    Frau

    Mann

    AlterGeschlecht

    Erwachsener

    Kind

    Dabei wird die jeweilige Generalisierungsgruppe (hier: Alter bzw.Geschlecht) im Diagramm angegeben.

    Barbara Konig Modellierung 244

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Den Generalisierungsgruppen konnen Eigenschaften (ingeschweiften Klammern) zugeordnet werden.

    complete/incomplete:

    complete: die Generalisierungsgruppe ist vollstandig, d.h.,sie uberdeckt alle Instanzen der Klasse.incomplete: die Generalisierungsgruppe ist unvollstandig.

    disjoint/overlapping:

    disjoint: die spezialisierenden Klassen besitzen keinegemeinsamen Instanzen (keine Uberlappung).overlapping: die spezialisierenden Klassen konnengemeinsame Instanzen besitzen.

    Barbara Konig Modellierung 245

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Beispiele fur die Eigenschaften complete/incomplete unddisjoint/overlapping:

    {complete,disjoint}

    Person

    Frau

    Mann

    Geschlecht

    {complete,disjoint}

    Hier handelt es sich um eine Partitionierung der Instanzen derKlasse.

    Barbara Konig Modellierung 246

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    {incomplete,disjoint}

    Alter

    Person

    {incomplete,disjoint}

    Kind

    Erwachsener

    Warum unvollstandig? es fehlt eine Klasse Jugendlicher.

    Barbara Konig Modellierung 247

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    {complete,overlapping}

    Lebensraum

    Tier

    {complete,overlapping}Fliegendes Tier

    Landtier

    Wassertier

    Schildkroten sind sowohl Land- als auch Wassertiere.

    Barbara Konig Modellierung 248

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    {incomplete,overlapping}

    Tier

    LebensraumLandtier

    {incomplete,overlapping}Wassertier

    Fliegende Tiere fehlen.

    Barbara Konig Modellierung 249

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Mehrfachvererbung

    Es ist auch moglich, dass eine Klasse von mehreren Klassen erbt,d.h., eine Spezialisierung verschiedener Klassen ist. Dies bezeichnetman als Mehrfachvererbung.

    Frau Kind

    Erwachsener

    AlterGeschlecht

    Person

    Mann

    Maedchen

    Ein Madchen ist sowohl ein Kind als auch ein weiblicher Mensch(= Frau).

    Barbara Konig Modellierung 250

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Basierend auf diesen graphischen Notation sollte man einobjekt-orientiertes System modellieren, bevor es implementiertwird. Dabei stellen sich insbesondere folgende Fragen:

    Welche Objekte und Klassen werden benotigt?

    Welche Merkmale haben diese Klassen und welcheBeziehungen bestehen zwischen Ihnen?

    Wie sollen die Klassen eingesetzt werden?

    Welche Methoden stellen diese Klassen zur Verfugung? Wiewirken diese Methoden zusammen?

    In welchen Zustanden konnen sich Objekte befinden undwelche Nachrichten werden wann an andere Objektegeschickt?

    Barbara Konig Modellierung 251

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Ein groeres Beispiel fur objekt-orientierte Modellierung undProgrammierung: Wir modellieren eine Bank.

    Folgende Anforderungen werden gestellt:

    Eine Bank

    hat mehrere Kundenund mehrere Angestellteund fuhrt eine Menge von Konten.

    Konten konnen

    Giro- oder Sparkonten sein. (Ein Sparkonto wirft hohereZinsen ab, darf aber nicht ins Minus absinken.)in Euro oder in Dollar gefuhrt werden.

    Barbara Konig Modellierung 252

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Auf den Konten sollen folgende Operationen ausgefuhrtwerden konnen:

    EinzahlenAbhebenVerzinsenUmbuchen

    Auerdem sollen alle Objekte (inklusive der Bank) ihreDarstellung ausdrucken konnen. Dazu hat jedes Objekt eineeigene print-Methode.

    Das bezeichnet man auch als Overloading: eine Methodegleichen Namens kann bei Objekten verschiedener Klassenaufgerufen werden und erzielt dort unterschiedliche Effekte.

    Barbara Konig Modellierung 253

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Bank:

    Bank

    neuen kunden anlegen()

    name: string

    konten verzinsen()print()

    angestellten einstellen()

    Methoden: neuen Kunden anlegen;neuen Angestellten einstellen; alleKonten verzinsen

    Auerdem: Eine Bank besteht (inKompositionsrelation) aus einerMenge von Konten, dieverschwinden, wenn die Bankverschwindet. Auerdem gibt esAggregationen mit einer Liste vonKunden und von Angestellten.

    Barbara Konig Modellierung 254

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Konto:

    Konto

    nummer: stringzins: float

    verzinsen()print()

    einzahlen(wert: Betrag)

    umbuchen auf(kto: konto,abheben(wert: Betrag)

    kontostand: Betrag

    wert: Betrag)

    Attribute: Kontonummer, Zins

    Methoden: Kontostand abfragen,einzahlen, abheben, umbuchen einesBetrags auf ein anderes Konto,Konto verzinsen

    Auerdem: Konto steht in einerKompositionsrelation mit Betrag,d.h., jedes Konto enthalt einenBetrag (siehe Klassendiagramm).

    Barbara Konig Modellierung 255

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Girokonto:

    Girokonto

    Konto

    zins: float = 0.005

    Die Klasse Girokonto wird vonKonto abgeleitet. Typischerweise istder Zins bei Girokonten niedriger alsbei Sparkonten. Von daher wirddieser auf einen niedrigerenAnfangswert gesetzt.

    Barbara Konig Modellierung 256

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Sparkonto:

    Konto

    Sparkonto

    zins: float = 0.02

    abheben(wert: Betrag)

    wert: Betrag)umbuchen auf(kto: Konto,

    Bei der Klasse Sparkonto muss wiebeim Girokonto ein neuerAnfangswert fur den Zins gesetztwerden.

    Auerdem: es muss darauf geachtetwerden, dass das Konto nicht insMinus abgleitet. Dazu werden dieentsprechenden Methodenuberschrieben (in derImplementierung muss dieBedingung entsprechend getestetwerden).

    Barbara Konig Modellierung 257

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Betrag:

    wert: float

    Betrag

    negativ(): bool

    print()mult(faktor: float)

    plus(wert: Betrag)minus(wert: Betrag)

    Methoden: Test, ob Konto imMinus; Betrag addieren,subtrahieren; Multiplikation mit einerGleitpunktzahl (zum Verzinsen!)

    Betrage mussen im allgemeinen in einer Wahrung angegebenwerden. Daher werden von der Klasse Betrag die UnterklassenEuro und Dollar abgeleitet.

    Barbara Konig Modellierung 258

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Euro:

    Euro

    betrag in euro():float

    Betrag

    Von Betrag wird zunachst die KlasseEuro abgeleitet.

    Methoden: Betrag in Euro ausgeben

    Barbara Konig Modellierung 259

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Euro:

    Betrag

    Dollar

    betrag in dollar():float

    Von Betrag wird auerdem dieKlasse Dollar abgeleitet.

    Methoden: Betrag in Dollarausgeben

    Barbara Konig Modellierung 260

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Person:

    Person

    name: string

    print()

    Methoden: nur die print-Methode,weitere Methoden werden in denUnterklassen definiert

    Auerdem: Person steht in einerAssoziationsrelation mit einer Listevon Konten, die entweder dieserPerson gehoren (Kunde) oder auf diediese Person Zugriff hat(Angestellte/r).

    Barbara Konig Modellierung 261

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Angestellter (erbt von Person):

    Angestellter

    zugriff auf konto(kto:Konto)

    Methoden: Zugriff auf ein Kontoerlangen

    Barbara Konig Modellierung 262

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Klasse Kunde (erbt von Person):

    Kunde

    konto eroeffnen()

    Methoden: Konto eroffnen (hierkonnte noch ein Parameter ubergebenwerden, der beschreibt, ob das Kontoein Giro- oder Sparkonto sein soll undob es in Euro oder Dollar gefuhrtwerden soll)

    Auerdem: Ein Kunde steht in einerAssoziationsrelation mit seinemBetreuer.

    Barbara Konig Modellierung 263

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Beispiel: Modellierung einer Bank

    Betrag

    Euro Girokonto Sparkonto

    Konto

    1

    Dollar

    Kunde

    1

    11

    Bank Person

    name: string

    wert: float

    Kontotyp

    betreut

    Angestellterbesitzt

    besteht aus

    Waehrung

    hat Zugriff auf

    Status

    Barbara Konig Modellierung 264

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Abstrakte Klasse

    Eine Klasse heit abstrakt, wenn sie selbst keine Instanzen habenkann. Dazu wird die Eigenschaft {abstract} unter demKlassennamen angegeben. Manchmal wird stattdessen auch derKlassenname kursiv geschrieben.

    Beispiel: in dem Bank-Beispiel mochte man beispielsweise nie eineInstanz der Klasse Person bilden, sondern nur von Kunde oderAngestellter.

    Person{abstract}

    Barbara Konig Modellierung 265

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Wir betrachten nun Objektdiagramme. Ein Objekt ist eine Instanzoder Auspragung einer Klasse.

    Objekte und Klassen

    x: inty: int

    get x(): intget y(): int

    instantiate

    x = 0y = 0

    Point mypoint :Point

    Ein Objektdiagramm beschreibt eine Art Momentaufnahme desSystems: eine Menge von Objekten, wie sie zu einem bestimmtenZeitpunkt vorhanden sind.

    Barbara Konig Modellierung 266

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Ein Objekt kann, muss aber keinen Namen haben. Es mussaber die Klasse angegeben werden, von der dieses Objekt eineInstanz ist. (In der Form: :Point.)

    Die Klassen mussen in dem Diagramm nicht graphischdargestellt werden. Es kann aber manchmal angemessen sein,Bauplan und Produkt gemeinsam darzustellen.

    Nicht alle Attributbelegungen des Objekts mussen angegebenwerden.

    Barbara Konig Modellierung 267

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Links

    Ein Link beschreibt eine Beziehung zwischen zwei Objekten. Er isteine Instanz einer Assoziation auf Klassenebene.

    Bemerkungen:

    Links sind nicht mit Multiplizitaten beschriftet, ein Linkreprasentiert genau eine Beziehung.

    Es ist jedoch darauf zu achten, dass dieMultiplizitatsbedingungen des Klassendiagramms eingehaltenwerden. D.h., die Anzahl der Objekte, die miteinander inBeziehung stehen, mussen innerhalb der jeweiligen Schrankensein.

    Barbara Konig Modellierung 268

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Zuruck zum Beispiel: Autos, Parkplatz, Rader

    Wir betrachten zunachst noch einmal das Klassendiagramm:

    AutoParkplatz

    enthaelt

    0..1 0..

    bes

    itzt

    Person

    1

    0..5

    Rad

    besteht aus

    1 4

    Barbara Konig Modellierung 269

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Dieses Objektdiagramm passt zum vorherigen Klassendiagramm:

    :Rad

    :Rad

    :Rad

    :Rad

    enthaelt

    enthaelt

    bes

    itzt

    besteht aus

    besitzt

    besteht aus

    peter

    :Rad

    :Rad

    :Rad

    :Rad

    gruenerAudi

    gabi

    :Person

    :Person

    :AutoparkplatzLBereich

    :ParkplatzschwarzerVW

    :Auto

    Barbara Konig Modellierung 270

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Klassen- und Objektdiagramme

    Bemerkungen:

    Auch Aggregations- und Kompositionssymbole durfen inObjektdiagrammen auftauchen.

    Achtung: Beziehungen (Assoziationen, Aggregationen,Kompositionen) zwischen Klassen werden vererbt und mussendann auch entsprechend im Objektdiagramm bei denInstanzen der Unterklassen auftauchen.

    Beispiel:

    besitzt

    besitzt

    :Sparkonto

    :Girokonto

    klaus :Kunde

    Barbara Konig Modellierung 271

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Wir betrachten nun sogenannte Aktivitatsdiagramme (activitydiagrams), das sind UML-Diagramme mit denen man Ablaufplane,Reihenfolgen von Aktivitaten, parallele Aktivitaten, etc.modellieren kann.

    Sie werden beispielsweise verwendet, um Geschaftsprozesse (auchWorkflow-Prozesse) des Auftraggebers zu modellieren. Sie konnenebenso eingesetzt werden, um interne Systemprozesse zubeschreiben.

    Aktivitatsdiagramme sind in vielen Aspekten ahnlich zuPetri-Netzen. Im Unterschied zu Petri-Netzen bieten Sie zusatzlicheModellierungsmoglichkeiten, haben jedoch keine formale Semantik.

    Barbara Konig Modellierung 272

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Plan einreichen

    Plan erstellen

    Phase paralleler

    Aktivitaten

    Bauplatz wahlen

    Startknoten

    Architekt suchen

    Arbeit im Buro

    [angenommen]

    Plan

    [nicht angenommen]

    Arbeit auf Baustelle

    Aktivitatsende

    Haus fertigstellen

    Beispiel:

    Hausbau

    Barbara Konig Modellierung 273

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Wir vergleichen nun die Bestandteile von Aktivitatsdiagrammenmit Petrinetzen (angelehnt an die Semantik von Storrle):

    Aktions

    Eine Aktion wird durch ein Rechteck mit abgerundeten Eckendargestellt. Es entspricht einer Transition eines Petrinetzes.

    Plan erstellen Plan erstellen

    Barbara Konig Modellierung 274

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Kontrollfluss

    Der Kontrollfluss, d.h. die Kanten, zwischen den Aktionen wird indem entsprechenden Petrinetz durch Hilfsstellen dargestellt.

    Architekt suchen

    Bauplatz wahlen

    Plan erstellen

    Bauplatz wahlen

    Architekt suchen

    Plan erstellen

    Barbara Konig Modellierung 275

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Objektknoten

    Objektknoten beschreiben Speicher fur die Ubergabe von Objektenbzw. Ressourcen. Sie entsprechen den Stellen des Petrinetzes.

    Plan

    Plan

    Plan erstellen

    Plan einreichen

    Plan erstellen

    Plan einreichen

    Bemerkung: Objektknoten sind mit Klassennamen beschriftet. Siekonnen mehrere Instanzen dieser Klasse enthalten.

    Barbara Konig Modellierung 276

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Entscheidungsknoten (auch: Verzweigungsknoten)

    Entscheidungsknoten (decision nodes) beschreiben eineVerzweigung des Kontrollflusses, wobei aus den moglichenKontrollflussen genau einer ausgewahlt wird. Sie werden durchHilfsstellen reprasentiert, die sich in der Vorbedingung mehrererTransitionen befinden.

    Plan einreichen

    Hilfstransition[angenommen]

    [nicht angenommen]

    Plan einreichen

    Bei Bedarf (v.a. bei nachfolgenden Entscheidungs- oderObjektknoten) muss noch eine Hilfstransition eingefuhrt werden.

    Barbara Konig Modellierung 277

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Bemerkung zu Entscheidungsknoten:

    Uberwachungsbedingungen (Guards), die den Kontrollfluss steuern,werden in eckigen Klammern an den ausgehenden Kontrollflussennotiert. Ahnliche Guards existieren auch in attributierten Netzen.

    Barbara Konig Modellierung 278

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Verbindungsknoten

    Es gibt auch sogenannte Verbindungsknoten (merge nodes), diemehrere alternative Kontrollflusse zusammenfassen. Sie konnendurch Hilfsstellen dargestellt werden, die sich in derNachbedingung mehrerer Transitionen befinden.

    Es gibt auch Knoten, die sowohl Entscheidungs- als auchVerbindungsknoten sind, d.h., mehrere eingehende und mehrereausgehende Kontrollflusse haben.

    Barbara Konig Modellierung 279

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Gabelung (auch: Parallelisierungsknoten)

    Eine Gabelung (fork node) teilt einen Kontrollfluss in mehrereparallele Kontrollflusse auf.Sie entspricht einer Transition mit mehreren Stellen in derNachbedingung.

    Barbara Konig Modellierung 280

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Vereinigung (auch: Synchronisationsknoten)

    Analog dazu gibt es die Vereinigung (join node), die mehrereparallele Kontrollflusse zusammenfasst. Sie wird durch eineTransition dargestellt, die mehrere Stellen in der Vorbedingung hat.

    Wie Entscheidungs- und Verbindungsknoten kann man Gabelungenund Vereinigungen zu einem Element zusammenfassen.

    Barbara Konig Modellierung 281

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Bitte beachten:

    Kontrollflusse durfen nur an Objektknoten, Entscheidungsknotenund Gabelungen aufgespalten und an Objektknoten,Verbindungsknoten und Vereinigungen wieder zusammengefuhrtwerden. Auerdem durfen Kontrollflusse, die an Gabelungenaufgespalten wurden, nur wieder an Vereinigungenzusammengefugt werden. Gleiches gilt fur Entscheidungs- undVereinigungsknoten.

    Folgendes ist nicht erlaubt:

    AktionAktion

    Barbara Konig Modellierung 282

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Startknoten

    Ein Startknoten entspricht einer initial markierten Stelle. EinAktivitatsdiagramm darf nur einen Startknoten haben, in den keinKontrollfluss hineinfuhrt

    Barbara Konig Modellierung 283

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Aktivitatsende

    Das Aktivitatsende signalisiert, dass alle Kontrollflusse beendetwerden. Es gibt keine Entsprechung in Petrinetzen.

    Es gibt auch ein Symbol fur das Flussende, das nur den in eshineinlaufenden Kontrollfluss beendet.

    Barbara Konig Modellierung 284

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Plan einreichen

    fork

    Arbeit im BuroArbeit auf Baustelle

    join

    Architekt suchen

    PlanPlan erstellen

    Bauplatz wahlen

    Hilfstransition

    Haus fertigstellen

    Ubersetztes

    Petrinetz

    Barbara Konig Modellierung 285

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Aktivitatsdiagramme enthalten noch mehr Anleihen ausPetrinetzen. Beispielsweise konnen auch die Kapazitat einesObjektknotens und das Gewicht eines Kontrollflusses spezifiziertwerden.

    Gericht

    {upperBound=6}

    2Gericht zubereiten Gericht servieren

    6

    Gericht zubereiten Gericht servieren

    Gericht

    {weight=2}

    Dabei beschreibt upperBound die Kapazitat einer Stelle (maximal6 Gerichte durfen gleichzeitig fertig sein) und weight das Gewicht(immer 2 Gerichte werden gleichzeitig serviert).

    In Aktivitatsdiagrammen darf noch zusatzlich spezifiziert werden,in welcher Reihenfolge die Objekte aus dem Objektknotengenommen werden (unordered, ordered, LIFO, FIFO).

    Barbara Konig Modellierung 286

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Vorsicht:

    Die Entsprechung zwischen Aktivitatsdiagrammen undPetrinetzen ist nicht immer ganz exakt. Nicht alle Konzepteentsprechen einander.

    Das liegt teilweise auch daran, dass Aktivitatsdiagramme nurein semi-formales Modell sind und nicht alle Aspektevollstandig spezifiziert sind.

    Barbara Konig Modellierung 287

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Es gibt auch die Moglichkeit zur weiteren Strukturierung vonAktivitatsdiagrammen:

    Aktivitatsbereiche (activity partitions/swimlanes)

    Zusammenfassung mehrerer Knoten (Aktionen, Objektknoten,etc.) zu einer Einheit. Dies dient im allgemeinen dazu, um dieVerantwortung fur bestimmte Aktionen festzulegen.

    Gast Kellner

    Gericht bestellen

    Gericht servierenGericht verspeisen

    Bestellung aufnehmen

    Barbara Konig Modellierung 288

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Aktivitatsdiagramme

    Weitere Elemente von Aktivitatsdiagrammen:

    Pins: Parameter und Parametersatze fur Aktionen

    Senden und Empfang von Signalen

    Kontrollstrukturen: Schleifenknoten, Bedingungsknoten

    Unterbrechungsbereiche (interruptible activity region) zurBehandlung von Ausnahmen (Exceptions)

    Expansionsbereiche (expansion region) zur wiederholtenAusfuhrung von Aktivitaten fur mehrere ubergebene Objekte

    Barbara Konig Modellierung 289

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Zustandsdiagramme (state diagrams, auch state machine diagramsoder statecharts) genannt, sind eng verwandt mit den bereitseingefuhrten Zustandsubergangsdiagrammen.

    Sie werden eingesetzt, wenn bei der Modellierung der Fokus auf dieZustande und Zustandsubergange des Systems gelegt werden soll.

    Im Gegensatz zu Aktivitatsdiagrammen werden auch weniger dieAktionen des Systems, sondern eher die Reaktionen des Systemsauf die Umgebung beschrieben.

    Barbara Konig Modellierung 290

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Anwendungen sind die Modellierung von:

    Protokolle, Komponenten verteilter Systemen

    Benutzeroberflachen

    Eingebettete Systemen

    . . .

    Zustandsdiagramme wurden 1987 von David Harel unter demNamen Statecharts eingefuhrt. Harel modellierte damit vollstandigseine Armbanduhr.

    Barbara Konig Modellierung 291

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Eigenschaften von Zustandsdiagrammen:

    Zustande und Zustandsubergange (Transitionen)

    Hierarchisch aufgebaute Zustande

    Parallelschalten von Zustandsdiagrammen durch Regionen

    Historien, um sich fruher besuchte Zustande zu merken und indiese zuruckzukehren

    Viele dieser Eigenschaften dienen dazu, unubersichtlicheZustandsdiagramme mit vielen Zustanden und Ubergangenubersichtlicher und kompakter zu gestalten.

    Barbara Konig Modellierung 292

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Wir lernen Zustandsdiagramme am Beispiel der Modellierung einerArmbanduhr kennen (stark vereinfacht gegenuber HarelsArmbanduhr).

    Die Armbanduhr hat zwei Knopfe (a,b) und zwei Modi(Zeitanzeige, Alarmeinstellung). Zwischen diesen Modi wechseltman mit Hilfe von Knopf a.Der Alarm kann aus (off) oder an (on) sein. Man kann zwischenden Alarmzustanden mit Hilfe von Knopf b wechseln. Falls derAlarm an ist, erzeugt die Uhr zu jeder vollen Stunde einen Piepton.

    ba 9:21 ba baAlarm Alarm

    a

    a

    a

    b

    b

    on off

    Barbara Konig Modellierung 293

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Wir beginnen zunachst mit der Modellierung der Minutenanzeige.

    10 . . .

    . . .

    after(1 min) after(1 min)

    after(1 min) after(1 min)after(1 min)

    2

    575859

    Barbara Konig Modellierung 294

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Zustand

    Ein Zustand eines Zustandsdiagramms wird durch ein Rechteckmit abgerundeten Ecken dargestellt.

    0

    Startzustand

    Der Startzustand wird durch einen schwarzen ausgefullten Kreisgekennzeichnet (ahnlich wie bei Aktivitatsdiagrammen).

    0

    Barbara Konig Modellierung 295

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Endzustand

    Endzustande werden wie das Aktivitatsende inAktivitatsdiagrammen gekennzeichnet.

    A

    Fur den Fall, dass man ein System modelliert, das nicht terminierensoll, gibt es keinen Endzustand (wie in unserem Beispiel).

    Barbara Konig Modellierung 296

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Transition (= Zustandsubergang)

    Eine Transition ist ein Pfeil, der mit Ereignis [Bedingung]/Effektbeschriftet ist. (Bedingung und Effekt sind optional.)

    Ereignis: Signal oder Nachricht, die die entsprechendeTransition auslosen.

    10after(1 min)

    Bedingung: Uberwachungsbedingung (auch Guard genannt).

    Effekt: Effekt, der durch die Transition ausgelost wird .

    Im obigen Beispiel (Minutenanzeige) gibt es nur Ereignisse(sogennante time events), die die Zeitspanne spezifizieren, nachder die Transition ausgelost wird. Es gibt aber auch andereEreignisse, beispielsweise Methodenaufrufe.

    Barbara Konig Modellierung 297

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Neben den Effekten, die durch Transitionen ausgelost werden,konnen in einem Zustand weitere Aktionen bei Eintritt, Verweilenoder Verlassen ausgelost werden.

    Sie haben den gleichen Aufbau wie die Beschriftung einerTransition: Ereignis [Bedingung]/Effekt. Dabei kann Ereignis unteranderem folgendes sein:

    entry: der entsprechende Effekt wird bei Eintritt in denZustand ausgelost.

    do: der Effekt ist eine Aktion, die nach Betreten des Zustandsausgefuhrt wird und die spatestens dann endet, wenn derZustand verlassen wird

    exit: der entsprechende Effekt wird bei Verlassen des Zustandsausgelost.

    Barbara Konig Modellierung 298

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beispiel: die Uhr soll zu jeder vollen Stunden ein Signal von sichgeben. Daher wird die Aktion beep bei Eintritt in den Zustand 0ausgelost.

    0

    entry/beep

    Barbara Konig Modellierung 299

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Wie sieht es mit der Stundenanzeige aus? Diese soll parallel zurMinutenanzeige laufen, d.h., die Uhr ist in zwei Zustandengleichzeitig, ein Zustand fur die Stunden, der andere fur dieMinuten. Diese Situation wird durch Regionen modelliert.

    Region

    Regionen unterteilen ein Zustandsdiagramm in zwei Bereiche, dieparallel zueinander ausgefuhrt werden.

    Dies erlaubt uns, insgesamt nur 24 + 60 = 84 Zustande, anstatt24 60 = 1440 Zustande zu zeichnen.

    Barbara Konig Modellierung 300

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    So sieht das modifizierte Zustandsdiagramm fur die Uhr jetzt aus:

    1 . . .

    . . .

    1 . . .

    . . .

    0

    entry/beepafter(1 min) after(1 min)

    after(1 min) after(1 min)

    2

    575859

    after(1 min)/h

    20

    22 2123

    h h

    hhh

    Stunden

    Minuten

    Barbara Konig Modellierung 301

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Bemerkungen:

    Es gibt jetzt zwei Startzustande, die beide zu Beginn betretenwerden (Uhrzeit: 0:00).

    Da Stunden- und Minutenanzeige nicht vollkommenunabhangig voneinander arbeiten, ist eine Synchronisationeingebaut. Die Transition in den Minutenzustand 0 lost einenEffekt h (h fur hour) aus.

    Dieser Effekt ist dann ein Trigger, der das entsprechendeEreignis triggert und den Ubergang in den nachstenStundenzustand verursacht. Die beiden Transitionen werdensynchronisiert und finden gleichzeitig statt.

    Barbara Konig Modellierung 302

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Bemerkungen:

    Transitionen verbrauchen im allgemeinen keine Zeit (imGegensatz zum Aufenthalt in Zustanden).

    Neben Triggern, die direkt ausgefuhrt werden, gibt es auchEvents, die zunachst in einer Event Queue (= Warteschlange)abgelegt werden. Diese Warteschlange wird schrittweiseabgearbeitet, wobei die entsprechenden Ereignisse ausgelostwerden. Damit kann asynchrone Kommunikation beschriebenwerden.

    Effekte konnen direkte Kommunikation bedeuten(beispielsweise Methodenaufrufe), konnen aber auchsogenannte Broadcasts (= Rundrufe) sein. Diese sind uberallim Zustandsdiagramm sichtbar. (Die ursprunglicheStatecharts-Semantik von Harel verwendete nur Broadcasts.)

    Barbara Konig Modellierung 303

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Nun soll noch die Moglichkeit hinzugefugt werden, das Alarmsignalzur vollen Stunden aus- und wieder einzuschalten. Dazu fuhren wirweitere Zustande (Alarm on, off) ein, in die man durch Druckenvon a gelangt.

    Problem: wir brauchen mindestens 84 mit a beschrifteteTransitionen, die aus den Stunden-/Minutenzustanden ausgehen!Das sind ziemlich viele . . .

    Dafur bieten Zustandsdiagramme folgende Losung:

    Zusammengesetzte Zustande

    Zusammengesetzte Zustande dienen dazu, um Hierarchien vonZustanden zu modellieren und damit ein- und ausgehendeTransitionen zusammenzufassen.

    Barbara Konig Modellierung 304

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Damit ergibt sich folgendes Diagramm:

    1 . . .

    . . .

    1 . . .

    . . .

    20

    22 2123

    h h

    hhh

    Stunden

    Minuten

    after(1 min) after(1 min)

    after(1 min) after(1 min)

    2

    575859

    after(1 min)/h

    0

    entry/beep

    on

    off

    a

    ab b

    Alarm

    Barbara Konig Modellierung 305

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Um eine gewisse Flexibilitat bei der Modellierung zu haben, werdenverschiedene Eintritts- und Austrittsmoglichkeiten bereitgestellt.

    Eintrittsmoglichkeiten in einen Zustand (graphisch)

    C

    B

    D E

    A H H

    Eintritt uber die

    tiefe Historie

    Eintritt uber die

    flache Historie

    Eintritt

    Expliziter

    Standard-Eintritt

    Barbara Konig Modellierung 306

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Eintrittsmoglichkeiten:

    Standard-Eintritt: dabei wird der Startzustand deszusammengesetzten Zustands angesprungen.

    (Forsetzung bei B, was schlielich zu einer Fortsetzung bei Dfuhrt)

    Expliziter Eintritt: es wird bei dem explizit angegebenenFolgezustand fortgesetzt.

    (Fortsetzung bei C .)

    Barbara Konig Modellierung 307

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Eintrittsmoglichkeiten (Fortsetzung):

    Eintritt uber die tiefe Historie: Wurde der zusammengesetzteZustand bereits fruher besucht, so wird der letzte vor demVerlassen des Zustands aktive Unterzustand dertiefstmoglichen Ebene betreten.

    (Falls also der zusammengesetzte Zustand das letzte Mal vonE aus verlassen wurde, so wird jetzt wieder bei E fortgesetzt.)

    Falls man noch niemals zuvor diesen zusammengesetztenZustand betreten hat, so wird der Zustand betreten, der mitder Kante gekennzeichnet ist, die aus dem H-Knoten ausgeht.

    Barbara Konig Modellierung 308

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Eintrittsmoglichkeiten (Fortsetzung):

    Eintritt uber die flache Historie: Wurde der zusammengesetzteZustand bereits fruher besucht, so wird der letzte vor demVerlassen des Zustands aktive Unterzustand der oberstenEbene betreten.

    (Falls also der zusammengesetzte Zustand das letzte Mal vonE aus verlassen wurde, so wird jetzt bei B fortgesetzt, wasletztendlich zu einer Fortsetzung bei D fuhrt.)

    Auerdem: Eintritt uber einen Eintrittspunkt (wird hier nichtbehandelt).

    Barbara Konig Modellierung 309

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Wenn ein Zustand in mehrere Regionen unterteilt ist, so ergebensich bei den Eintrittsmoglichkeiten einige Besonderheiten.

    Eintrittsmoglichkeiten bei Regionen (graphisch)

    A B

    C D

    Standard-Eintritt

    ExpliziterEintritt

    Eintrittuber Gabelung

    Barbara Konig Modellierung 310

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Eintrittsmoglichkeiten bei Regionen:

    Standard-Eintritt: dabei werden die jeweiligen Startzustandeder Regionen angesprungen.

    (Fortsetzung bei A und C )

    Expliziter Eintritt: ein Zustand einer Region wird direktangesprungen. In der anderen Region wird bei dementsprechenden Startzustand fortgesetzt.

    (Fortsetzung bei B und C .)

    Eintritt uber Gabelung: ahnlich wie bei Aktivitatsdiagrammenwird eine Gabelung eingesetzt, um die beiden anzuspringendenZustande in den Regionen zu kennzeichnen.

    (Fortsetzung bei B und D.)

    Barbara Konig Modellierung 311

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Austrittsmoglichkeiten aus einem Zustand (graphisch)

    C

    B

    D E

    A

    Austritt aus eineminneren Zustand

    Austritt auseinem zusammengesetzten Zustand

    Barbara Konig Modellierung 312

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Austrittsmoglichkeiten:

    Austritt aus einem zusammengesetzten Zustand: sobald dasmit der Transition assoziierte Ereignis stattfindet, wird jederbeliebige (Unter-)Zustand von A verlassen.

    Austritt aus einem inneren Zustand: die Transition wird nurgenommen, wenn man sich gerade im entsprechenden Zustand(hier: Zustand E) befindet (und das entsprechende Ereignisstattfindet).

    Auerdem: Austritt uber einen Austrittspunkt, uber einenEndzustand oder Terminator (wird hier nicht behandelt).

    Barbara Konig Modellierung 313

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beispiel zu Austrittsmoglichkeiten:

    B C

    A

    D

    E

    a

    entspricht B C

    A

    D

    E

    a aa

    Barbara Konig Modellierung 314

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Auch fur Austrittsmoglichkeiten mussen wir untersuchen, was sichbei Regionen andert.

    Austrittsmoglichkeiten bei Regionen (graphisch)

    A B

    C D

    Austritt aus einemzusammengesetzten

    Zustand

    Austritt aus eineminneren Zustand

    Austrittuber Vereinigung

    Barbara Konig Modellierung 315

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Austrittsmoglichkeiten bei Regionen:

    Austritt aus einem zusammengesetzten Zustand: dabei wirdder zusammengesetzte Zustand verlassen, egal in welchenUnterzustanden man sich gerade befindet.

    Austritt aus einem inneren Zustand: der zusammengesetzteZustand wird nur verlassen, wenn man sich in der jeweiligenRegion in dem Zustand befindet, der durch den Pfeil verlassenwird. In den anderen Regionen kann man sich in beliebigenZustanden befinden.

    (Austritt nur, wenn man sich in der ersten Region in Bbefindet.)

    Barbara Konig Modellierung 316

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beschreibung der Austrittsmoglichkeiten bei Regionen(Fortsetzung):

    Austritt uber Vereinigung: ahnlich wie beiAktivitatsdiagrammen wird eine Vereinigung eingesetzt, ummehrere Regionen zusammenzufuhren. Der zusammengesetzteZustand kann nur verlassen werden, wenn man sich in denZustanden befindet, von denen Pfeile in die Vereinigunghineinfuhren.

    (Austritt nur, wenn man sich in B und D befindet.)

    Barbara Konig Modellierung 317

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Wieder zuruck zur Armbanduhr. Es gibt ein weiteres Problem:wenn man aus der Alarmeinstellung zuruckkehrt, ist die Zeit auf0:00 zuruckgesetzt!

    Losung: Verwendung des Eintritts uber die (flache) Historie.Da man im Fall der Zeitanzeige in zwei Regionen gleichzeitigeintreten muss, verwenden wir eine Gabelung.

    Barbara Konig Modellierung 318

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    1 . . .

    . . .

    1 . . .

    . . .

    on

    off

    b b

    20

    22 2123

    h h

    hhh

    Stunden

    Minuten

    after(1 min) after(1 min)

    after(1 min) after(1 min)

    2

    575859

    after(1 min)/h

    0

    entry/beep

    a

    Alarma

    H

    H

    H

    Barbara Konig Modellierung 319

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Weiteres Problem: wenn man langere Zeit im Alarm-Zustandverbringt, so wird in dieser Zeit die Minuten-/Stundenanzeige nichtentsprechend aktualisiert. Das Time Event (after(1 min)) beziehtsich nur auf die Zeit, die seit dem Eintritt in den entsprechendenZustand vergangen ist.

    Die Zeitanzeige musste deshalb entsprechend aktualisiert werden.Dieses Problem wird hier nicht gelost.

    Barbara Konig Modellierung 320

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Was fehlt noch?

    Beim Wechseln zwischen den Alarm-Zustanden (on,off) mussein Flag (genannt al) gesetzt werden, um damit den beep-Effekt zukontrollieren.

    Dieses Flag muss mit Hilfe einer Bedingung im Minutenzustand 0abgefragt werden.

    Auerdem betreten wir den Zustand Alarm nun nicht mehr uberdie flache Historie, sondern fragen mit Hilfe von Bedingungen ab,wie al belegt ist. (Damit ist die Markierung des Anfangszustandseigentlich uberflussig geworden.)

    Barbara Konig Modellierung 321

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    1 . . .

    . . .

    . . .

    . . .

    1

    20

    22 2123

    h h

    hhh

    Stunden

    Minuten

    after(1 min) after(1 min)575859

    after(1 min)/h

    a

    Alarm

    on

    off

    b/al=1

    entry[al==1]/beepafter(1 min) after(1 min)

    0

    b/al=0

    a[al==1]

    a[al==0]

    H

    H

    Barbara Konig Modellierung 322

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Wir modellieren, dass die Batterie der Uhr kaputtgehen kann undgewechselt werden muss.

    In diesem Fall will man den zusammengesetzten Zustand nichtuber die flache oder tiefe Historie betreten! Es wird also hiertatsachlich die Zeit auf 0:00 zuruckgesetzt.

    Auerdem setzen wir das Flag al beim Einsetzen der Batteriezuruck auf den Anfangswert 1.

    Barbara Konig Modellierung 323

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    1 . . .

    . . .

    . . .

    . . .

    1

    Uhr

    20

    22 2123

    h h

    hhh

    Stunden

    Minuten

    after(1 min) after(1 min)575859

    after(1 min)/h

    a

    Alarm

    on

    off

    b/al=1

    entry[al==1]/beepafter(1 min) after(1 min)

    0

    a[al==1]

    a[al==0]

    b/al=0 H

    H

    Batterie kaputt

    Batterie geht kaputt Neue Batterie wird eingesetzt/al=1

    Barbara Konig Modellierung 324

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Ein groer Teil der Modellierungsmoglichkeiten vonZustandsautomaten dient dazu, Zustandsdiagramme kompakt undubersichtlich zu notieren.

    Oft kann man Zustandsdiagramme flachklopfen undzusammengesetzte Zustande auflosen, wodurch man aquivalenteZustandsdiagramme erhalt, die die gleichen Ubergange erlauben.Dabei erhalt man jedoch im allgemeinen mehr Zustande und/oderTransitionen.

    Wir sehen uns einige Beispiele an . . .

    Barbara Konig Modellierung 325

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beispiel 1: Wandeln Sie folgendes Zustandsdiagramm in einflaches Zustandsdiagramm um:

    A

    B

    C

    D

    a

    b

    e

    c df

    Barbara Konig Modellierung 326

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Losung zu Beispiel 1:

    A

    B

    C

    D

    e

    c d

    a

    b

    f

    e

    Idee: die Transition, die von dem zusammengesetzten Zustandwegfuhrt, durch mehrere Transitionen ersetzen, die von den innerenZustanden ausgehen.

    Barbara Konig Modellierung 327

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beispiel 2: Wandeln Sie folgendes Zustandsdiagramm in einflaches Zustandsdiagramm um:

    A B C D

    E F

    a b c

    e

    gG

    h

    Barbara Konig Modellierung 328

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Losung zu Beispiel 2:

    b c

    g

    h

    a

    b c

    e e e

    (D,F)(C,F)(B,F)

    (B,E) (C,E) (D,E)

    G

    A

    h

    Idee: Kreuzprodukt der Zustandsmengen der Regionen bilden.

    Barbara Konig Modellierung 329

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Beispiel 3: Wandeln Sie folgendes Zustandsdiagramm in einflaches Zustandsdiagramm um:

    H

    A

    B

    C

    Db

    e

    c da f

    Xx

    Barbara Konig Modellierung 330

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Losung zu Beispiel 3:

    Xx

    C

    D

    c da f a f

    A(C)

    B(C)

    A(D)

    B(D)b

    e

    e

    b

    Idee: in den aueren Zustanden muss man sich merken, auswelchem Zustand man den zusammengesetzten Zustand verlassenhat. Dies fuhrt zu zusatzlichen Zustanden.

    Barbara Konig Modellierung 331

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Weitere Elemente von Zustandsdiagrammen:

    Unterscheidung zwischen verschiedenen Arten vonEreignissen: call event, signal event, change event, time event,any receive event

    Verzogern und Ignorieren von Ereignissen

    Entscheidungen und Kreuzungen

    Rahmen und Wiederverwendung von Zustandsdiagrammen

    Auerdem: Generalisierung und Spezialisierung vonZustandsdiagrammen

    Barbara Konig Modellierung 332

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Zustandsdiagramme

    Zusammenfassung:Nach Harel werden Zustandsdiagramme bzw. deren Eigenschaftendurch folgende Formel beschrieben:

    UML-Zustandsdiagramme =Zustandsubergangsdiagramme + Tiefe + Orthogonalitat(+ Broadcast-Kommunikation)

    Dabei steht Orthogonalitat fur die Parallelitat, die durchRegionen erreicht werden kann.

    Barbara Konig Modellierung 333

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Sequenzdiagramme (sequence diagrams) sind die bekanntestenVertreter von Interaktionsdiagrammen in UML.

    Sie dienen dazu, um Kommunikation und Interaktion zwischenmehreren Kommunikationspartnern zu modellieren und beruhenauf dem Basiskonzept der Interaktion:

    Interaktion

    Eine Interaktion ist das Zusammenspiel von mehrerenKommunikationspartnern.

    Typische Beispiele: Versenden von Nachrichten, Datenaustausch,Methodenaufruf

    Barbara Konig Modellierung 334

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Sequenzdiagramme waren bereits vor Aufnahme in die UML unterdem Namen message sequence charts bekannt.

    Im Gegensatz zu Aktivitatsdiagrammen oder Zustandsdiagrammenbeschreiben sie im allgemeinen nicht alle Ablaufe eines Systems,sondern nur einen oder mehrere mogliche Ablaufe.

    Barbara Konig Modellierung 335

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Sequenzdiagramme beschreiben Interaktionen in zwei Dimensionen:

    Von links nach rechts: Anordnung der Kommunikationspartnerals LebenslinienOft wird der Partner, der den Ablauf initiiert, ganz linksangegeben.

    Von oben nach unten: Zeitachse

    Barbara Konig Modellierung 336

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Beispiel Restaurant

    Petra

    :Gast

    Robert

    :Kellner

    Ina

    :Kochin

    Mustafa

    :Kassierer

    Menu bringen

    bestellenbestellen

    Getrank servieren

    Essen abholenEssen servieren

    bezahlen

    Barbara Konig Modellierung 337

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Kommunikationspartner

    Die Kommunikationspartner in einem Sequenzdiagramm werdenahnlich wie in Objektdiagrammen als Rechtecke notiert.

    Manchmal werden die Rechtecke auch weggelassen. MenschlichePartner werden auch durch ein Strichmannchen symbolisiert:

    Von jedem Kommunikationspartner fuhrt eine gestrichelteLebenslinie nach unten.

    Barbara Konig Modellierung 338

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Ausfuhrungsbalken

    Aktivitaten eines Kommunikationspartners werden durchsogenannte Ausfuhrungsbalken dargestellt.

    Parallele Tatigkeiten eines Kommunikationspartners werden dabeidurch ubereinander liegende Ausfuhrungsbalken beschrieben (sieherechts oben).

    Wahrend die Balken aktive Zeit anzeigen, symbolisieren diegestrichelten Linien passive Zeit.

    Barbara Konig Modellierung 339

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Nachrichten

    Die Nachrichten beschreiben die Kommunikationen bzw.Interaktionen der Kommunikationspartner und werden durch Pfeiledargestellt. Eine Nachricht hat einen Sender und einen Empfanger.

    Die Stellen, an denen die Pfeile auf den Lebenslinien auftreffen,nennt man auch Sendeereignis und Empfangsereignis.

    EmpfangerSender

    Name der NachrichtEmpfangs-ereignis

    Sende-

    ereignis

    Barbara Konig Modellierung 340

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Synchrone und asynchrone Nachrichten

    Bei synchroner Kommunikation warten Sender und Empfangeraufeinander. Der Sender macht erst dann weiter, wenn er wei,dass der Empfanger die Nachricht erhalten hat. Sie wird durch eineschwarze ausgefullte Pfeilspitze dargestellt.

    Barbara Konig Modellierung 341

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Synchrone und asynchrone Nachrichten (Fortsetzung)

    Bei asynchroner Kommunikation wartet der Sender nicht darauf,dass der Empfanger die Nachricht erhalten hat. Er arbeitet einfachweiter. Die Nachricht wird durch eine einfache Pfeilspitze wirddargestellt.

    Bei asynchronen Nachrichten kann es zu einer Zeitverzogerungzwischen Sende- und Empfangsereignis kommen, die durch einengeneigten Pfeil beschrieben wird (siehe oben rechts).

    Barbara Konig Modellierung 342

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Bei asynchroner Kommunikation (aber nicht bei synchronerKommunikation) kann auch der Fall eintreten, dass sichNachrichten uberholen oder kreuzen.

    Das Uberholen der Nachrichten (oben links) ist nur dann nichtmoglich, wenn man explizit einen FIFO-Kanal fordert.

    Barbara Konig Modellierung 343

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Was jedoch nicht moglich ist, ist eine Nachricht, die ruckwartsin der Zeit lauft und vor dem Senden ankommt.

    Barbara Konig Modellierung 344

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Es ist jedoch moglich, eine Nachricht an sich selbst zu schicken.

    :Gast

    Gericht aussuchen

    Bei einer synchronen Nachricht sollte man dabei paralleleAusfuhrungsbalken verwenden, da das Sende- undEmpfangsereignis parallel stattfinden mussen.

    Barbara Konig Modellierung 345

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Nachrichten, die als Antworten auf fruhere Nachrichten gedachtsind, werden durch gestrichelte Pfeile notiert. Dabei sollte derName der ursprunglichen Nachricht wiederholt werden.

    Nachfrage

    Antwort auf Nachfrage

    Barbara Konig Modellierung 346

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Wir machen uns nun Gedanken uber die Reihenfolge der Ereignissein einem Sequenzdiagramm. Dazu ist es nutzlich sichklarzumachen, was eine (partielle) Ordnung ist.

    Partielle Ordnung

    Gegen sei eine Menge X . Eine partielle Ordnung auf X ist eineRelation R X X mit folgenden Eigenschaften:

    Reflexivitat: fur jedes x X gilt (x , x) RTransitivitat: aus (x1, x2) R und (x2, x3) R furx1, x2, x3 X folgt (x1, x3) R.Antisymmetrie: aus (x1, x2) R und (x2, x1) R furx1, x2 X folgt x1 = x2.

    Barbara Konig Modellierung 347

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Weitere Bezeichnungen:

    Partielle Ordnung bezeichnet man oft mit dem Zeichen undnotiert in Infix-Schreibweise (x1 x2 statt (x1, x2) R).Wir schreiben x1 < x2, falls x1 x2 und x1 6= x2.

    Vorsicht: Die Relation < ist selbst keine partielle Ordnung.

    Barbara Konig Modellierung 348

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Totale Ordnung

    Eine partielle Ordnung heit total, wenn fur zwei beliebigeElemente x1, x2 X immer x1 x2 oder x2 x1 gilt.

    Beispiele:

    Die -Relation auf den ganzen Zahlen Z ist eine totaleOrdnung.

    Ein typisches Beispiel fur eine partielle Ordnung, die nichttotal ist, ist die Inklusionsordnung auf Mengen.

    Barbara Konig Modellierung 349

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Reflexiv-transitive Hulle

    Fur eine gegebene Relation R E E beschreiben wir derenreflexiv-transitive Hulle R. Man erhalt sie aus R, indem man

    alle Paare (e, e) mit e E zu R hinzufugt undbei (e1, e2), (e2, e3) R auch (e1, e3) zu R hinzufugt. DieserProzess wird so lange wiederholt, bis keine neuen Paare mehrhinzukommen.

    Die reflexiv-transitiv Hulle R einer Relation R ist immerreflexiv und transitiv. Sie ist jedoch nicht immerantisymmetrisch und daher nicht notwendigerweise eineOrdnung.

    Die Relation R ist die kleinste reflexive und transitiveRelation, die R enthalt.

    Barbara Konig Modellierung 350

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Beispiel: Zugrundeliegende Menge E = {1, 2, 3, 4, 5}Die reflexiv-transitive Hulle von

    R = {(1, 2), (2, 3), (3, 4), (3, 5)}

    ist

    R = {(1, 2), (2, 3), (3, 4), (3, 5),(1, 1), (2, 2), (3, 3), (4, 4), (5, 5),

    (1, 3), (1, 4), (1, 5), (2, 4), (2, 5)}

    Barbara Konig Modellierung 351

  • Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Die Elemente von Sequenzdiagrammen, die nun geordnet werden,sind die Ereignisse, d.h., Sende- und Empfangsereignisse.

    In den Sequenzdiagrammen, wie wir sie bisher kennengelernthaben, sind die Ereignisse immer total geordnet, nach folgendemSchema:

    (Sendeereignis der Nachricht N) < (Empfangsereignis von N)

    Die restlichen Ereignisse sind entsprechend dem zeitlichenVerlauf geordnet.

    Barbara Konig Modellierung 352

    Einfuhrung in die ModellierungPetrinetze

    Unified Modeling Language (UML)

    Klassen- und ObjektdiagrammeVerhaltensdiagrammeUberblick uber weitere UML-Diagramme

    Sequenzdiagramme

    Petra

    :Gast

    Robert

    :Kellner

    Ina

    :Kochin

    Mustafa

    :Kassierer

    Menu bringen

    bestellenbestellen

    Getrank servieren

    Essen abholenEssen servieren

    bezahlen

    R5

    P1

    P2

    P3

    P4

    P5

    R1

    R2R3

    R4

    R6

    I1

    I2

    M1

    R1 < P1 < P2