428
Modellierung Vorlesung “Modellierung” Wintersemester 2013/14 (Folien von Prof. B. König) Prof. Norbert Fuhr Übungsleitung: Thomas Beckers

Vorlesung“Modellierung” Wintersemester2013/14 ... · Modellierung Vorlesung“Modellierung” Wintersemester2013/14 (FolienvonProf.B.König) Prof.NorbertFuhr Übungsleitung:ThomasBeckers

Embed Size (px)

Citation preview

Modellierung

Vorlesung “Modellierung”

Wintersemester 2013/14

(Folien von Prof. B. König)

Prof. Norbert FuhrÜbungsleitung: Thomas Beckers

Modellierung

Das heutige ProgrammOrganisatorisches

VorstellungAblauf der Vorlesung und der ÜbungenPrüfungLiteratur & Folien

Einführung und Motivation: Was ist Modellierung?Inhalt der weiteren Vorlesung

Modellierung

Wer sind wir?

Dozent: Prof. Dr.-Ing. Norbert FuhrRaum LF 135E-Mail: [email protected]: nach Vereinbarung

Übungsleitung:Dipl.-Inform. Thomas Beckers

Raum LF 138E-Mail: [email protected]

Modellierung

Wer sind wir?

Studentische Hilfskräfte (Korrektur & Betreuung vonÜbungsgruppen):Sebastian Schweitzer

E-Mail: [email protected] Reichwein

E-Mail: [email protected] Wohland

E-Mail: [email protected] Weiß

E-Mail: [email protected]

Modellierung

Wer sind wir?

Web-Seite:http://www.is.inf.uni-due.de/courses/mod_ws13/

Regelmäßig vorbeischauen!

Modellierung

Vorlesungstermine

Vorlesungstermin:Mittwoch, 14:00-16:00 Uhr, im Raum LB 104

Modellierung

Aktives Lernen

Was von einer Vorlesung ’hängenbleibt’Am Ende der Stunde: 50%Nach einer Woche: 15%Am Ende des Semesters: Nicht messbar

„Sage es mir, und ich vergesse es.Zeige es mir, und ich erinnere mich.Lass es mich tun, und ich behalte es ein Leben lang“

Modellierung

Hinweise zu den Übungen

Besuchen Sie die Übungen und machen Sie die Hausaufgaben!Diesen Stoff kann man nur durch regelmäßiges Üben erlernen.Auswendiglernen hilft nicht besonders viel.Die Übungen beginnen in der zweiten Semesterwoche amMittwoch, den 23. Oktober.

Modellierung

Termine der Übungsgruppen/Tutorien

Übungsgruppen:

Mo, 16:00 - 17:00 Uhr, Raum LE 120 (Gruppe 1)Mo, 17:00 - 18:00 Uhr, Raum LE 120 (Gruppe 2)Di, 10:00 - 11:00 Uhr, Raum LE 120 (Gruppe 3)Di, 11:00 - 12:00 Uhr, Raum LE 120 (Gruppe 4)Di, 12:00 - 13:00 Uhr, Raum LK 051 (Gruppe 5)Di, 13:00 - 14:00 Uhr, Raum LK 051 (Gruppe 6)Do, 10:00 - 11:00 Uhr, Raum LF 125 (Gruppe 7)Do, 11:00 - 12:00 Uhr, Raum LF 125 (Gruppe 8)Do, 14:00 - 15:00 Uhr, Raum LE 120 (Gruppe 9)Do, 15:00 - 16:00 Uhr, Raum LE 120 (Gruppe 10)

Modellierung

Hinweise zu den Übungen

Anmeldung über Webseite zur Vorlesung (bis einschließlich17.10.)Endgültige Gruppenaufteilung wird nach Ablauf derAnmeldefrist auf der Webseite bekanntgegeben.

Modellierung

Hinweise zu den ÜbungenMatrikelnummern

Nummern auf Studentenausweis, z.B.DS0075432100 ES0212345601Nur der grün markierte Teil ist die Matrikelnummer.

Modellierung

Hinweise zu den Übungen

Das Übungsblatt wird jeweils am Montag ins Netz gestellt.Das erste Übungsblatt wird am 15. Oktober bereitgestellt.Die schriftlichen Aufgaben müssen bis spätestens Sonntag,23:59 Uhr, abgegeben werden.Abgabe durch Formular auf Webseite zur Vorlesung (nur alsPDF)Besprechung in der darauffolgenden WocheBitte geben Sie auf Ihrer Lösung deutlich Ihren Namen, IhreMatrikelnummer und Ihre Gruppennumer an.Sie dürfen in Einer- oder Zweier-Gruppen abgeben.Plagiate werden mit 0 Punkten bewertet.

Modellierung

Klausur

Die Vorlesung wird durch eine Klausur am Ende des Semestersgeprüft:

Termin: Siehe Webseite

Die Anmeldung erfolgt über das Prüfungsamt

Modellierung

Klausur

Es gibt folgende Bonusregelung:

50% der Hausaufgabenpunkten80% der Hausaufgaben bearbeitet (Aufgaben mit > 0Punkten)Auswirkung: Verbesserung um eine Notenstufe; z.B. von 2,3auf 2,0

Modellierung

Literatur

Bernd Baumgarten: Petri-Netze.Grundlagen und Anwendungen,Spektrum, 1996.

Das Buch ist vergriffen, ist aber in der Bibliothek verfügbar.

Modellierung

Literatur

Wolfgang Reisig: Petri-Netze –Eine Einführung, Springer, 1985.

Ebenfalls vergriffen und in der Bibliothek verfügbar. Es gibt jedochelektronisch eine neue Version unter:http://www2.informatik.hu-berlin.de/top/pnene_buch/

Modellierung

Literatur

L. Priese, H. Wimmel:Petri-Netze, Springer, 2008.

Online verfügbar unterhttp://www.springerlink.com/content/n54711/(Zugriff über Uni-Rechner)

Modellierung

Literatur

Tadao Murata: Petri Nets: Properties, Analysis and Applications.Proc. of the IEEE, 77(4), 1989.

Online verfügbar als PDF:http://www.cs.unc.edu/˜montek/teaching/spring-04/murata-petrinets.pdf

Modellierung

Literatur

G. Booch, J. Rumbaugh, I.Jacobson: The Unified ModelingLanguage User Guide, AddisonWesley, 2005.

Modellierung

Literatur

M. Jeckle, C. Rupp, J. Hahn, B.Zengler, S. Queins: UML 2glasklar, Hanser Fachbuch, 2007.

Modellierung

Literatur

R. Miles, K. Hamilton: LearningUML 2.0, O’Reilly, 2006.

Online verfügbar unterhttp://proquest.safaribooksonline.com/0596009828(Zugriff über Uni-Rechner)

Modellierung

Literatur

Christoph Kecher: UML 2.0 - Dasumfassende Handbuch. GalileoPress, 2006.

Buch ist in der Bibliothek verfügbar.

Modellierung

Literatur

Perdita Stevens, Rob Pooley:UML - Softwareentwicklung mitObjekten und Komponenten.Pearson, 2001.

Buch (vor allem das englische Original) ist in der Bibliothekverfügbar.

Modellierung

Literatur

David Harel: Statecharts: a visual formalism for complex systems.Science of Computer Programming 8, pp 231-274. North-Holland1987.

Online verfügbar als PDF:http://www.wisdom.weizmann.ac.il/˜dharel/

SCANNED.PAPERS/Statecharts.pdf

Modellierung

Literatur

Hinweise:

Die Bücher sind als Ergänzung gedacht, sie präsentieren denStoff oft aus einem anderen Blickwinkel.Sehen Sie sich die Bücher erst an, bevor Sie sie kaufen. Nichtjede/r kommt mit jedem Buch zurecht.Die Bibliothek (LK) ist ein guter Platz um nach Büchern zustöbern (Informatik-Abteilung im 1. Stock, Lehrbuchsammlungim Keller)Wagen Sie sich auch an englische Literatur, englischeFachsprache ist zumeist gut verständlich

Modellierung

Folien

Folien werdenim Web als PDF bereitgestelltbei Bedarf aktualisiert /korrigiert

ModellierungEinführung in die Modellierung

Was ist Modellierung?

ModellEin Modell ist eine Repräsentation eines Systems von Objekten,Beziehungen und/oder Abläufen. Ein Modell vereinfacht undabstrahiert dabei im allgemeinen das repräsentierte System.

SystemDer Begriff System wird hier sehr allgemein verwendet. Er kannentweder

einen Teil der Realität oderein noch nicht bestehendes Gebilde, das noch erstellt werdenmuss,

bezeichnen.

ModellierungEinführung in die Modellierung

Was ist Modellierung?

ModellierungModellierung ist der Prozess, bei dem ein Modell eines Systemserstellt wird.

Warum sollte man modellieren? Um ein System zu entwerfen, besser zu verstehen, zuvisualisieren, zu simulieren, . . .

Um etwas konkreter zu werden betrachten wir den Begriff derModellierung in verschiedenen Disziplinen (Physik, Biologie,Klimaforschung, . . . )

ModellierungEinführung in die Modellierung

Modellierung in der Physik

AtommodelleAtome bestehen aus Protonen, Neutronen und Elektronen. Wiediese Teilchen zusammenwirken, wird in verschiedenenAtommodellen beschrieben, die sich im Laufe der Zeit immerwieder geändert haben.

ModellierungEinführung in die Modellierung

Modellierung in der Biologie

ZitronensäurezyklusDer Zitronensäurezyklus oder Citratzyklus modelliert den Abbauorganischer Stoffe im Körper.

ModellierungEinführung in die Modellierung

Modellierung in der Klimaforschung

Modell des Transports von Gasen in der Atmosphäre

ModellierungEinführung in die Modellierung

Arten von Modellen

visuell vs. textuellNicht alle Modelle sind visuell bzw. graphisch. Auch mit textuellenBeschreibunge und Formeln kann man modellieren (siehebeispielsweise mathematische Modelle).Dennoch werden häufig graphische Darstellungen benutzt, auch ausdidaktischen Gründen und um sich besser über die Modelleverständigen zu können.

ModellierungEinführung in die Modellierung

Arten von Modellen

qualitativ vs. quantitativqualitative Modelle: Welche Objekte gibt es? Was passiert?Warum passiert es? In welcher Reihenfolge geschehen dieEreignisse? Was sind die kausalen Zusammenhänge? WelchePhänomene treten auf?quantitative Modelle: Wieviele Objekte gibt es? Wie langedauert ein Vorgang? Wie wahrscheinlich ist ein bestimmtesEreignis?

ModellierungEinführung in die Modellierung

Arten von Modellen

black box vs. white boxblack box: nur das von außen beobachtbare Verhalten wirdbeschriebenwhite box: es wird auch beschrieben, wie das von außenbeobachtbare Verhalten im “Inneren” des Systems erzeugt wird

ModellierungEinführung in die Modellierung

Arten von Modellen

statisch vs. dynamischein statisches Modell beschreibt einen Zustand des Systems zueinem bestimmten Zeitpunktein dynamisches Modell beschreibt hingegen auch, wie dasSystem sich entwickelt (ein oder mehrere mögliche Abläufeoder sogar das gesamte Systemverhalten)

ModellierungEinführung in die Modellierung

Arten von Modellen

nicht-formell vs. semi-formal vs. formalJe nach Exaktheit der Modelle erhält man:

formale Modelle, die vollkommen exakt in ihren Aussagen sind(vor allem mathematische Modelle)semi-formale Modelle, die teilweise exakt sind, jedoch nichtalles vollständig spezifierennicht-formale Modelle, die als grobe Richtlinie dienen können,jedoch eher vage Aussagen machen

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

Natürliche Sprache ist nicht immer eindeutig.

Beispiel:

Ich sah den Mann auf dem Berg mit dem Fernrohr.

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

(((Ich sah den Mann) auf dem Berg) mit dem Fernrohr)

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

((Ich sah (den Mann auf dem Berg)) mit dem Fernrohr)

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

((Ich sah den Mann) (auf dem Berg mit dem Fernrohr))

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

(Ich sah ((den Mann auf dem Berg) mit dem Fernrohr))

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

(Ich sah (den Mann (auf dem Berg mit dem Fernrohr)))

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

(((Ich sah den Mann) auf demBerg) mit dem Fernrohr)

((Ich sah (den Mann auf demBerg)) mit dem Fernrohr)

((Ich sah den Mann) (auf demBerg mit dem Fernrohr))

(Ich sah ((den Mann auf demBerg) mit dem Fernrohr))

(Ich sah (den Mann (auf demBerg mit dem Fernrohr)))

5 möglicheInterpretationen!

ModellierungEinführung in die Modellierung

Probleme mit nicht-formalen Modellen

Auch graphische Darstellungen können uneindeutig sein:

ModellierungEinführung in die Modellierung

Modellierung in der Informatik

In dieser Vorlesung geht es um Modellierungsmethoden in derInformatik. Diese werden zum Entwurf folgender Systemeeingesetzt:

(Objekt-orientierte) Programme(Große) Software-SystemeBenutzeroberflächenDatenbankenVirtual Reality, Computer-Spiele. . .

ModellierungEinführung in die Modellierung

Wozu ist Modellierung gut?

Wozu benötigt man Modelle?

je komplexer ein System ist, desto wichtiger ist es, einen Plan zuerstellen, bevor man beginnt das System zu konstruieren

dies führt zu:Vermeidung von Fehlernbesserer Qualitätniedrigeren Kostenbesserer Dokumentation und Wiederverwendbarkeit

ModellierungEinführung in die Modellierung

Wozu ist Modellierung gut?

Analogie: Bau eines Hauses

Beim Bau einer Hundehütte kannman zumeist ohne große Planungvorgehen. Die Hütte kann voneiner einzelnen Person erstelltwerden und ein Hund hat zumeistkeine großen Anforderungen.

ModellierungEinführung in die Modellierung

Wozu ist Modellierung gut?

Analogie: Bau eines Hauses

Beim Bau eines Einfamilienhausesist Planung viel wichtiger. DieFamilie ist anspruchsvoller als einHund, Bauvorschriften müsseneingehalten werden undvermutlich werden nicht alleArbeiten von derselben Persondurchgeführt.

ModellierungEinführung in die Modellierung

Wozu ist Modellierung gut?

Analogie: Bau eines Hauses

Beim Bau eines Hochhauses istohne Erstellung eines detailliertenPlans bzw. Modells nichtmöglich. Das Risiko, Fehler zumachen ist sehr groß, und Fehlerkönnen extrem kostspielig werden.

ModellierungEinführung in die Modellierung

Wozu ist Modellierung gut?

Modellierung ist in der Informatik weniger verbreitet als in denIngenieurwissenschaften, aber ebenso wichtig.

Schwierigkeiten beim Entwurf komplexer SystemeMenschen können sich komplexe Systeme normalerweise nichtin vollem Umfang vorstellenBei mehreren Menschen/Entwicklern gibt es unterschiedlicheMeinungen darüber, wie das System aussehen muss Modelle dienen zu Kommunikation!Es ist schwer ein System zu dokumentieren und zu warten, dasnicht explizit modelliert ist.

Feststellung (nach Glinz)

Die Entwicklung von Klein-Software unterscheidet sich fundamentalvon der Entwicklung größerer Software.

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

Klein-Groß-Gegensätze in der Software-Entwicklung:

klein großProgramme bis ungefähr 300Zeilen Längere Programme

Für den Eigengebrauch Für den Gebrauch durchDritte

Vage Zielsetzung genügt, dasProdukt ist seine eigeneSpezifikation

Genaue Zielbestimmung, d.h.die Spezifikation vonAnforderungen, erforderlich

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

klein groß

Ein Schritt vom Problem zurLösung genügt: Lösung wirddirekt programmiert

Mehrere Schritte vomProblem zur Lösungerforderlich: Spezifikation,Konzept, Entwurf undProgrammieren der Teile,Zusammensetzen,Inbetriebnahme

Validierung(Überprüfung/Testen) undnötige Korrekturen finden amEndprodukt statt

Auf jeden Entwicklungsschrittmuss ein Prüfschritt folgen,sonst kann Endergebnisunbrauchbar werden

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

klein groß

Eine Person entwickelt: keineKooperation undKommunikation erforderlich

Mehrere Personen entwickelngemeinsam: Koordination undKommunikation notwendig

Komplexität des Problems inder Regel klein, Strukturierenund Behalten der Übersichtnicht schwierig

Komplexität des Problemsgrößer bis sehr groß, expliziteMaßnahmen zurStrukturierung undModularisierung erforderlich

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

klein großSoftware besteht aus wenigenKomponenten

Software besteht aus vielenKomponenten, die spezielleMaßnahmen zurKomponentenverwaltungerfordern

In der Regel wird keineDokumentation erstellt Dokumentation dringend

erforderlich, damit Softwarewirtschaftlich betrieben undgepflegt werden kann

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

klein groß

Keine Planung undProjektorganisationerforderlich

Planung undProjektorganisation zwingenderforderlich für einezielgerichtete, wirtschaftlicheEntwicklung

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

Explosion der Anzahl der Kommunikationspfade bei Anstieg derEntwicklerzahl:

Quantensprung:Kommunikationwird erforderlich

Quantensprung:Zahl der Komm.pfadeübersteigt Zahlder Personen

1 2 3 4 5 6

0 1 3 6 10 15

Anzahl Personen:

Anzahl Komm.pfade:

ModellierungEinführung in die Modellierung

Probleme bei der Entwicklung großer Systeme

Die Problematik bei der Erstellung großer Programme sieht manauch an folgenden Zahlen (nach Boehm 1981):

40% der Zeit wird mit der Entwicklung verbracht (davon:15% Spezifikation; 8% Codierung; 16% Test)60% der Zeit wird für die Wartung aufgewendet(12% Anpassung; 36% Erweiterung und Verbesserung;12% Fehlerbehebung)

ModellierungEinführung in die Modellierung

Wozu ist Modellierung gut?

Aus diesen Fakten und Zahlen ergibt sich folgende Konsequenz:

Vor allem bei der Erstellung großer Systeme ist es unbedingterforderlich, zunächst das System zu modellieren, bevor esimplementiert bzw. konstruiert wird.

Meistens sind auch mehrere verschiedene Modelle erforderlich.

Aus Gründen der Übersichtlichkeit und Didaktik werden wir uns inder Vorlesung jedoch hauptsächlich mit kleinen Modellen befassen.

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Wir modellieren folgendes System, um eine möglich Lösung zufinden.

Wolf-Ziege-Kohlkopf-ProblemEin Bauer will einen Fluss überqueren. Er hat einen Wolf, eineZiege und einen Kohlkopf bei sich. Wenn sie alleingelassen werden,so frisst der Wolf die Ziege, und die Ziege den Kohlkopf. ZurÜberquerung des Flusses steht ein Boot mit zwei Plätzen zurVerfügung. Nur der Bauer kann rudern und er kann das Bootentweder allein benutzen oder ein Tier oder den Kohlkopfmitnehmen.

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Statisches Modell I: Beteiligte Akteure/Objekte

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Statisches Modell II: Fress- und Eigentumsbeziehungen zwischenden Akteuren

besitzt

��

besitzt�� besitzt

��

frisst // frisst //

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Ausgangssituation: vor Überquerung des Flusses

Boot

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Zielsituation: nach Überquerung des Flusses

Boot

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Dynamisches Modell: Beispielablauf, erster SchrittBauer und Wolf setzen gemeinsam über

→ Boot

ModellierungEinführung in die Modellierung

Beispiel: Wolf, Ziege, Kohlkopf

Dynamisches Modell: Beispielablauf, zweiter SchrittZiege frisst Kohlkopf

Boot

ModellierungEinführung in die Modellierung

Syntax und Semantik

Man unterscheidet bei der Modellierung zwischen:

Syntax: Symbole und Diagramme, die für die Darstellung desModells genutzt werden dürfenIm Beispiel: Bild der Ziege, blaue Fläche, etc.Semantik: Bedeutung, die sich hinter den Symbolen verbirgtIm Beispiel: Die blaue Fläche symbolisiert den Fluss.

Die Pfeile bedeuten: “Fluss wird überquert”

Zu einer Syntax gibt es nicht immer eine dazugehörige Semantik(im Beispiel ist die Semantik sehr vage).Wünschenswert ist jedoch im allgemeinen, dass die Bedeutung allerSymbole möglichst präzise festgelegt wird.Einigung auf eine gemeinsame Sprache/Notation, auf gemeinsamevisuelle Beschreibungen zur Vermeidung von Missverständnissen.

ModellierungEinführung in die Modellierung

Weitere Aspekte

Weitere wichtige Gesichtspunkte sind:

Analyse:Ist das Modell korrekt? Ist es in sich konsistent?Stimmt das Modell mit der späteren Implementierungüberein? (Hier werden Verfahren zum Testen und zurVerifikation benötigt)

Werkzeuge, Software-Tools: werden benötigt zum Zeichnen,zum Darstellen (Wechsel zwischen verschiedenenDarstellungen), zum Archivieren, zur Code-Generierung, zurAnalyse, . . .

ModellierungEinführung in die Modellierung

Inhalt der Vorlesung

InhaltMathematische GrundlagenGraphen für statische und dynamische SystembeschreibungenPetrinetzeUML (Unified Modeling Language)

ModellierungEinführung in die Modellierung

Graphen

Graphen bestehen aus Knoten undKanten.Sie können eingesetzt werden für

Statische Modellierung:Komponenten undBeziehungen zwischen denKomponentenDynamische Modellierung:Zustände undZustandsübergänge in FormeinesZustandsübergangsdiagramms

1 2

3

a

bc

ModellierungEinführung in die Modellierung

Petrinetze

Modell für nebenläufige undverteilte Systeme, das diegemeinsame Nutzung vonRessourcen beschreibt.Schwerpunkt liegt auf derModellierung des dynamischenVerhaltens.Etabliertes Modell, das vielfältigeingesetzt wird.Formale Semantik.Erfunden von Carl Adam Petri(1962).

MarkeStelle

Transition

ModellierungEinführung in die Modellierung

UML: Unified Modeling Language

Standard-Modellierungssprache fürSoftware Engineering.Basiert auf objekt-orientiertenKonzepten.Sehr umfangreich, enthält vieleverschiedene Typen von Modellen.Entwickelt von Grady Booch,James Rumbaugh, Ivar Jacobson(1997).

ModellierungEinführung in die Modellierung

Inhalt der Vorlesung

Die vorgestellten Modellierungsmethoden sind nicht die einzigenModellierungsmethoden in der Informatik.

Hier: Fokus auf visuelle Modellierung mit Hilfe von Diagrammen

Mögliche Alternative: algebraische Modellierungsmethoden, die sichstärker an der Mathematik orientieren

ModellierungEinführung in die Modellierung

Ein weiteres Beispiel: Einschreiben an der Universität

Szenario: Eine Reorganisation der Universität, und insbesondere desStudiensekretariats, das für Einschreibungen zuständig ist, steht an.

Hierzu soll der Ablauf des Einschreibens neuer Studierendermodelliert werden . . .

ModellierungEinführung in die Modellierung

Ein weiteres Beispiel: Einschreiben an der Universität

Darstellung des zeitlichen Ablaufs durch Symbolisieren derbeteiligten Partner als Linien und der Kommunikation durch Pfeile(Ausschnitt).

Universität Student/in Studiensekretariat

Studieninformation anfordern

Studieninformation

AufstellenBonautomat

Anfordern Bon

Ausgeben BonUnterlagen schicken

Besuch der Einführungs-veranstaltung

. . . . . . . . .

zeitlicherAblauf

ModellierungEinführung in die Modellierung

Ein weiteres Beispiel: Einschreiben an der Universität

Solche Diagramme sind übrigens Bestandteil von UML. Sie werdenSequenzdiagramme (engl. sequence diagrams, auch messagesequence charts) genannt.

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

MengeMenge M von Elementen, wird beschrieben als Aufzählung

M = {0, 2, 4, 6, 8, . . . }

oder als Menge von Elementen mit einer bestimmten Eigenschaft

M = {n | n ∈ N0 und n gerade}.

Allgemeines Format:M = {x | P(x)}

(M ist Menge aller Elemente x , die die Eigenschaft P erfüllen.)

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

Bemerkungen:

Die Elemente einer Menge sind ungeordnet, d.h., ihre Ordnungspielt keine Rolle. Beispielsweise gilt:

{1, 2, 3} = {1, 3, 2} = {2, 1, 3} = {2, 3, 1} = {3, 1, 2} = {3, 2, 1}

Ein Element kann nicht “mehrfach” in einer Menge auftreten.Es ist entweder in der Menge, oder es ist nicht in der Menge.Beispielsweise gilt:

{1, 2, 3} 6= {1, 2, 3, 4} = {1, 2, 3, 4, 4}

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

Element einer MengeWir schreiben a ∈ M, falls ein Element a in der Menge M enthaltenist.

Anzahl der Elemente einer Menge

Für eine Menge M gibt |M| die Anzahl ihrer Elemente an.

TeilmengenbeziehungWir schreiben A ⊆ B , falls jedes Element von A auch in Benthalten ist. Die Relation ⊆ heißt auch Inklusion.

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

VereinigungDie Vereinigung zweier Mengen M1,M2 ist die Menge M, die dieElemente enthält, die in M1 oder M2 vorkommen. Man schreibtdafür M1 ∪M2.

M1 ∪M2 = {a | a ∈ M1 oder a ∈ M2}

SchnittDer Schnitt zweier Mengen M1,M2 ist die Menge M, die dieElemente enthält, die sowohl in M1 als auch in M2 vorkommen.Man schreibt dafür M1 ∩M2.

M1 ∩M2 = {a | a ∈ M1 und a ∈ M2}

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

KreuzproduktSeien A,B zwei Menge. Die Menge A× B is die Menge aller Paare(a, b), wobei das erste Element des Paars aus A, das zweite aus Bkommt.

A× B = {(a, b) | a ∈ A, b ∈ B}

Beispiel:{1, 2} × {3, 4, 5} = {(1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5)}

Es gilt: |A× B| = |A| · |B| (für endliche Menge A,B).

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

Bemerkungen:

Wir betrachten nicht nur Paare, sondern auch sogenannteTupel, bestehend aus mehreren Elementen. Ein Tupel(a1, . . . , an) bestehend aus n Elementen heißt auch n-Tupel.In einem Tupel sind die Elemente geordnet! Beispielsweise gilt:

(1, 2, 3) 6= (1, 3, 2) ∈ N0 × N0 × N0

Ein Element kann “mehrfach” in einem Tupel auftreten. Tupelunterschiedlicher Länge sind immer verschieden. Beispielsweise:

(1, 2, 3, 4) 6= (1, 2, 3, 4, 4)

Merke: Runde Klammern (, ) und geschweifte Klammern {, } stehenfür ganz verschiedene mathematische Objekte!

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

Potenzmenge

Sei M eine Menge. Die Menge P(M) ist die Menge allerTeilmengen von M.

P(M) = {A | A ⊆ M}

Beispiel:P({1, 2, 3}) = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}.

Es gilt: |P(M)| = 2|M| (für eine endliche Menge M).

ModellierungEinführung in die Modellierung

Notation: Mengen und Funktionen

Funktion

f : A → Ba 7→ f (a)

Die Funktion f bildet ein Element a ∈ A auf ein Element f (a) ∈ Bab. Dabei ist A der Definitionsbereich und B der Wertebereich.

Beispiel (Quadratfunktion):

f : Z→ N0, f (n) = n2

. . . ,−3 7→ 9,−2 7→ 4,−1 7→ 1, 0 7→ 0, 1 7→ 1, 2 7→ 4, 3 7→ 9, . . .

Dabei ist N0 die Menge der natürlichen Zahlen (mit der Null) undZ die Menge der ganzen Zahlen.

ModellierungEinführung in die Modellierung

Graphen

Graphen sind netzartige Strukturen, bestehend aus Knoten undKanten. Sie bilden die Grundlagen vieler diagrammatischerModellierungstechniken.

Gerichteter Graph

Sei L eine Menge von Beschriftungen (oder Labels). Ein gerichteter(beschrifteter) Graph G = (V ,E ) besteht aus

einer Knotenmenge V undeiner Kantenmenge E ⊆ V × L× V .

Bemerkung: V steht für vertices und E für edges.

ModellierungEinführung in die Modellierung

Graphen

Beispiel (Bauer, Wolf, Ziege, Kohlkopf):

V = {B,W ,Z ,K} L = {besitzt, frisst}

E = {(B, besitzt,W ), (B, besitzt,Z ), (B, besitzt,K ),

(W , frisst,Z ), (Z , frisst,K )}

Graphische Darstellung:

B

W Z K

besitztbesitzt

besitzt

frisst frisst

ModellierungEinführung in die Modellierung

Graphen

Weitere Arten von Graphen:

Ungerichtete GraphenBei ungerichteten Graphen spielt die Richtung der Kanten keineRolle. Formal sind Kanten zweielementige Teilmengen derKnotenmenge (statt Tupel).

A

B C D

ab

c c

ModellierungEinführung in die Modellierung

Graphen

Graphen mit KnotenbeschriftungAuch Knoten können Beschriftungen tragen, wobei zweiverschiedene Knoten auch gleich beschriftet sein dürfen.

B

W Z K

besitztbesitzt

besitzt

frisst frisst

Tier GemüseTier

Mensch

ModellierungEinführung in die Modellierung

Graphen

Hypergraphen

Bei Hypergraphen kann eine Kante (symbolisiert durch ein Quadratoder Rechteck) mit einer beliebigen Anzahl von Knoten verbundensein. Evtl. sind dabei die Knoten im Bezug auf die Kante geordnet(wie bei gerichteten Graphen).

a

A

b

c

C DB

ModellierungEinführung in die Modellierung

Graphen

Graphen können in vielfältiger Weise zur Modellierung eingesetztwerden. Wir betrachten zwei typische Fälle.

Graphen zur statischen ModellierungKnoten sind Komponenten oder Objekte, die untereinander überKanten verbunden sind bzw. in Beziehung stehen.

Beispiel: Beziehungen zwischen Bauer, Wolf, Ziege, Kohlkopf

ModellierungEinführung in die Modellierung

Zustandsübergangsdiagramme

Graphen zur dynamischen ModellierungKnoten sind Zustände und Kanten sind Zustandsübergänge.Klassischer Vertreter: Zustandsübergangsdiagramme (auchTransitionssysteme genannt)

ZustandsübergangsdiagrammEin Zustandsübergangsdiagramm besteht aus einem gerichtetenGraphen (Z ,U), wobei Z (= Zustände) die Knotenmenge desGraphen und U (= Übergänge) die Kantenmenge der Graphen ist,und außerdem aus einem Startzustand z0 ∈ Z .Zustandsübergangsdiagramme werden graphisch wie gerichteteGraphen dargestellt. Der Startzustand (auch Anfangszustandgenannt) wird dabei meist durch eine eingehende Pfeilspitzegekennzeichnet.

ModellierungEinführung in die Modellierung

Zustandsübergangsdiagramme

Beispiel: Zustandsübergangsdiagramm für die Übergänge beimWolf-Ziege-Kohlkopf-Problem.

BZK|W

Misserfolg! ZK|BW WK|BZ

BWZK|

K|BWZ W|BZK

BWZ|K

BWK|Z

Z|BWK

BZ|WK

BK|WZMisserfolg! BW|ZK Misserfolg!

Misserfolg!WZ|BK

WZK|B Misserfolg!

Misserfolg!B|WZK|BWZKErfolg!

ModellierungEinführung in die Modellierung

Zustandsübergangsdiagramm

Bemerkungen:

Der senkrechte Strich | steht für den Fluss. Links und rechtsdavon befinden sich die Akteure/Objekte (B = Bauer, W =Wolf, Z = Ziege, K = Kohlkopf)Übergänge sind aus Gründen der Übersichtlichkeit nichtbeschriftet. Sinnvolle Beschriftungen wären die ausgeführtenAktionen (“Bauer bringt Ziege über den Fluss”, etc.)Eckige (rote) Zustände symbolisieren hier Misserfolg (z.B.“Ziege frisst Kohlkopf”).Kanten, die aus solchen Zuständen herausführen, wurdenweggelassen.Die doppelte (blaue) Ellipse symbolisiert hier Erfolg(erwünschter Zielzustand ist erreicht)

ModellierungEinführung in die Modellierung

Zustandsübergangsdiagramme

Weitere Bemerkungen:

Es gibt mehrere (sogar unendlich viele) Wege zum Zielzustand.Die zwei kürzesten enthalten jeweils sieben Übergänge.Zustandsübergangsdiagramme selbst relativ einfacher Systemewerden oft erstaunlich groß (sogenannte Zustandsexplosion).

Wichtig:Zustandsübergangsdiagramme stellen im allgemeinen alle Zuständeund alle Übergänge eines Systems dar.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

Petrinetze sind ein Formalismus zur Modellierung von nebenläufigenSystemen mit folgenden Eigenschaften:

Vorstellung von Systemübergängen, bei denen gemeinsameRessourcen konsumiert und neu erzeugt werden können.Einfache Modellierung von räumlicher Verteilung derRessourcen, Nebenläufigkeit, Parallelität und(Zugriffs-)Konflikten.Intuitive graphische Darstellung.Petrinetze werden in der Praxis vielfach benutzt. In UML sindsie abgewandelt als sogenannte Aktivitätsdiagramme (engl.activity diagrams) eingegangen.Eingeführt wurden Sie in der Doktorarbeit von Carl AdamPetri: “Kommunikation mit Automaten”, Bonn, 1962.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

Parallelität versus Nebenläufigkeit:

ParallelitätZwei Ereignisse finden parallel statt, wenn sie gleichzeitigausgeführt werden.

NebenläufigkeitZwei Ereignisse sind nebenläufig, wenn sie parallel ausgeführtwerden können (jedoch nicht müssen), das heißt, wenn zwischenihnen keine kausale Abhängigkeit besteht.

Das bedeutet: Nebenläufigkeit ist der allgemeinere Begriff.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

Anwendungen für Petrinetze:

Modellierung von Büroabläufen (work flow, business processes)Modellierung und Analyse von Web ServicesBeschreibung von graphischen BenutzeroberflächenProzessmodellierung bei BetriebssystemenAblaufbeschreibungen in ingenieurwissenschaftlichenAnwendungen. . .

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

Beispiel für ein Petrinetz:

Notation:

Stellen (dargestellt als Kreise): Mögliche Plätze für RessourcenMarken (dargestellt als kleine ausgefüllte Kreise): RessourcenTransitionen (dargestellt durch Rechtecke): Systemübergänge

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

Darstellung einer Transition:

Vorbedingung (Marken, die konsumiert werden)

Nachbedingung (Marken, die erzeugt werden)

Die Entfernung der Marken der Vorbedingung und Erzeugung derMarken der Nachbedingung nennt man Schalten bzw. Feuern derTransition.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Motivation: Petrinetze

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Beispiel: Dining Philosophers

Wir betrachten das Beispiel der Dining Philosophers (speisendePhilosophen):

Es sitzen drei Philosophen um einen runden Tisch, zwischen jezwei Philosophen liegt eine Gabel.Philosophen werden von Zeit zu Zeit hungrig und benötigenzum Essen beide benachbarte Gabeln.Jeder Philosoph nimmt zu einem beliebigen Zeitpunkt beideGabeln nacheinander auf (die rechte zuerst), isst und legtanschließend beide Gabeln wieder zurück.

P2P1

P3

F2F3

F1

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Beispiel: Dining Philosophers

Modellierung alsPetrinetz:

In dem Netz ist einDeadlock(Verklemmung)erreichbar, d.h.,eine Markierung, beider keine Transitionmehr geschaltetwerden kann.

E1

W1

E2F1

H1

W2

H2

W3

H3

E3

F2

F3

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Definitionen

Petrinetz (Definition)

Ein Petrinetz ist ein Tupel N = (S ,T , •(), ()•,m0), wobeiS eine Menge von Stellen undT eine Menge von Transitionen ist.Außerdem gibt es für jede Transition t zwei Funktionen•t : S → N0, t• : S → N0, die angeben, wieviele Marken t auseiner Stelle entnimmt und in eine Stelle legt.m0 : S → N0 ist die Anfangsmarkierung (oder initialeMarkierung).

Der Wert •t(s) bzw. t•(s) wird auch als Gewicht bezeichnet.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Definitionen

MarkierungEine Markierung ist eine Abbildung m : S → N0, die festlegt,wieviele Marken in jeder Stelle liegen.Falls eine Reihenfolge s1, . . . , sn der Stellen fixiert wurde, kann eineMarkierung m auch durch ein Tupel (m(s1), . . . ,m(sn)) dargestelltwerden.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Darstellung

Eine andere Definition stellt die Verbindungen zwischen Stellen undTransitionen und die dazugehörigen Gewichte als Graph dar:

F ⊆ (S ∪ T )× (N0\{0})× (S ∪ T ) (Flussrelation),

wobei nur Kanten der Form (s, n, t) (von Stelle zu Transition) und(t, n, s) (von Transition zu Stelle) mit s ∈ S , t ∈ T erlaubt sind.

Zusammenhang zur eingeführten Notation:

(s, n, t) ∈ F ⇐⇒ •t(s) = n 6= 0(t, n, s) ∈ F ⇐⇒ t•(s) = n 6= 0

Manchmal werden auch unbeschriftete Kante eingeführt, denendann mit Hilfe einer Funktion W ein Gewicht zugeordnet wird.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Darstellung

Graphische Darstellung:

Stellen werden als Kreise, Transitionen als Quadrate oderRechtecke, Marken als kleine schwarze ausgefüllte KreisedargestelltKanten zwischen Stellen und Transitionen werden als Pfeiledargestellt.Das Gewicht als Kantenbeschriftung kann weggelassen werden,falls es den Wert eins hat. Die Kante wird ganz weggelassen,falls das Gewicht den Wert 0 hat.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Darstellung

Wir betrachten den Zusammenhang zwischen der mathematischenNotation und der graphischen Darstellung genauer:

s1 s2

t1

2

t3

s3

t2

Stellenordnung: s1, s2, s3

S = {s1, s2, s3}T = {t1, t2, t3}•t1(s1) = 1 •t1(s2) = 1 •t1(s3) = 0t1•(s1) = 0 t1•(s2) = 0 t1•(s3) = 2oder: •t1 = (1, 1, 0) t1• = (0, 0, 2)

. . .

m0(s1) = 1 m0(s2) = 2 m0(s3) = 0oder: m0 = (1, 2, 0)

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Darstellung

Wir betrachten den Zusammenhang zwischen der mathematischenNotation und der graphischen Darstellung genauer:

s1 s2

t1

2

t3

s3

t2

Stellenordnung: s1, s2, s3

Alternative Darstellung (mit Flussrelati-on):

S = {s1, s2, s3}T = {t1, t2, t3}F = {(s1, 1, t1), (s2, 1, t1), (t1, 2, s3),

(s3, 1, t2), (t2, 1, s1),(s3, 1, t3), (t3, 1, s2)}

m0 = (1, 2, 0)

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Operationen auf Markierungen:

Seien m,m′ : S → N0 zwei Abbildungen von Stellen auf natürlicheZahlen.

Ordnung

Es gilt m ≤ m′, falls für alle s ∈ S gilt: m(s) ≤ m′(s).

AdditionWir definieren m′′ = m ⊕m′, wobei m′′ : S → N0 mitm′′(s) = m(s) +m′(s) für alle s ∈ S .

SubtraktionWir definieren m′′ = m m′, wobei m′′ : S → N0 mitm′′(s) = m(s)−m′(s) für alle s ∈ S . Dabei gilt n − k = 0, fallsn, k ∈ N0, n < k (modifizierte Subtraktion).

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Weitere Definitionen:

AktivierungEine Transition t ist unter einer Markierung m aktiviert, falls•t ≤ m gilt. (D.h., falls genug Marken vorhanden sind, um dieTransition zu schalten.)

SchaltenSei m eine Markierung und t eine Transition, die für m aktiviert ist.Dann kann t schalten, was zu der Nachfolgemarkierungm′ = m •t ⊕ t• führt. Symbolisch m[t〉m′.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Weitere Definitionen:

ErreichbarkeitEine Markierung m heißt erreichbar in einem Netz, falls es eineFolge von Transitionen t1, . . . , tn gibt mit m0[t1〉m1 . . .mn−1[tn〉m,wobei m0 die Anfangsmarkierung ist.

In diesem Fall schreibt man auch m0[t1 . . . tn〉m oder m0[t̃〉m mitt̃ = t1 . . . tn.

Die Sequenz t̃ heißt auch Schaltfolge. Auch die leere Schaltfolget̃ = ε is möglich. In diesem Fall ändert sich die Markierung nicht(m[ε〉m, für jede Markierung m).

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

s1 s2

t1

2

t3

s3

t2

Die Markierung m2 = (1, 1, 1) ist in zweiSchritten erreichbar:

•t1 = (1, 1, 0) ≤ (1, 2, 0) = m0

m1 = m0 •t1 ⊕ t1• = (1, 2, 0)(1, 1, 0)⊕ (0, 0, 2) = (0, 1, 2)

•t2 = (0, 0, 1) ≤ (0, 1, 2) = m1

m2 = m1 •t2 ⊕ t2• = (0, 1, 2)(0, 0, 1)⊕ (1, 0, 0) = (1, 1, 1)

Es gilt also: m0[t1〉m1[t2〉m2

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Zustandsübergangsdiagramm eines Petrinetzes

Sei N = (S ,T , •(), ()•,m0) ein Petrinetz. Dann besteht das zu Ngehörende Zustandsübergangsdiagramm aus folgendenKomponenten:

Menge der Beschriftungen L: Menge aller TransitionenZustandsmenge Z : Menge aller erreichbaren MarkierungenÜbergangsmenge U: (m, t,m′) ∈ U ⇐⇒ m[t〉m′.Startzustand z0: die Anfangsmarkierung m0

Das Zustandsübergangsdiagramm eines Petrinetzes heißt auchErreichbarkeitsgraph.

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Beispiel: Bestimme den Erreichbarkeitsgraph für das folgendeBeispielnetz

s1 s2

t1

2

t3

s3

t2

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Erreichbarkeitsgraph für das Beispielnetz:

��

(1, 2, 0)

t1��

(0, 1, 2)t3 //

t2

##

(0, 2, 1)t3 //

t2pp

(0, 3, 0)

(1, 1, 1)t2 //

t1��

t3

DD

(2, 1, 0)

t1��

(0, 0, 3)

t3

MM

t2// (1, 0, 2) t2

//

t3cc

(2, 0, 1) t2//

t3pp

(3, 0, 0)

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Frage: Wie kann ein beliebiges Zustandsübergangsdiagramm in einPetrinetz umgewandelt werden, das als Erreichbarkeitsgraph wiederdas ursprüngliche Zustandsübergangsdiagramm besitzt?

Idee:Zustände werden zu StellenÜbergänge werden zu Transitionendie Stelle, die den Anfangszustand darstellt, ist als einzige zuBeginn markiert

Aber:

das entstandene Petrinetz enthält keinerlei Nebenläufigkeitbei der Umwandlung

Petrinetz → Zustandsübergangsdiagramm → Petrinetzwird das zweite Petrinetz im allgemeinen viel größer als daserste

ModellierungPetrinetzeGrundlagen und Erreichbarkeitsgraphen

Petrinetze: Dynamik

Beispiel: Umwandlung eines Zustandsübergangsdiagramms in einPetrinetz

c

e bd

aa

bd e

c

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Beschränktheit

Sichere, beschränkte und unbeschränkte NetzeSei N ein Petrinetz. Das Netz N heißt

beschränkt, wenn es eine Konstante c ∈ N0 gibt, so dass fürjede erreichbare Markierung m und jede Stelle s gilt, dassm(s) ≤ c .sicher (oder auch 1-sicher), wenn

Für jede Transition t und für jede Stelle s gilt •t(s) ≤ 1und t•(s) ≤ 1, d.h., alle Gewichte sind höchstens 1 undfür jede erreichbare Markierung m und jede Stelle s gilt,dass m(s) ≤ 1.

unbeschränkt, falls es für jede Konstante c ∈ N0 eineerreichbare Markierung m und eine Stelle s gibt mit m(s) > c .

Aufgabe: Finde ein Beispiel für ein unbeschränktes Netz.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetz-Beispiel: Keksautomat

Wir modellieren einen Keksautomaten mit folgenden Bestandteilen:

extern: Einwurfschlitz, Entnahmefachintern: Keksspeicher, Kasse, Signalweiterleitung (der Einwurfeiner Münze soll ein Signal erzeugen, das die Ausgabe einesKekses triggert)

Nach: “Petrinetze – Modellierungstechnik, Analysemethoden,Fallstudien” von W. Reisig

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetz-Beispiel: Keksautomat

Münze einwerfen

Einwurfschlitz Signal

Einwurf möglich kein Signal

Kasse

Entnahmefach

Schachtel entnehmen

Keksspeicher

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetz-Beispiel: Keksautomat

Ist der Keksautomat so in Ordnung?

Problem: Sobald der Keksspeicher leer ist, kann immer noch eineMünze eingeworfen werden, die dann nicht zurückgegeben wird.

Es gibt verschiedene Lösungen für dieses Problem: Rückgabe derMünze, Keks-Zähler, . . .

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Wir betrachten nun Begriffe wie Lebendigkeit und Deadlock (=Verklemmung).

(Starke) Lebendigkeit

Ein Petrinetz N heißt (stark) lebendig, wenn es für jede Transitiont und für jede erreichbare Markierung m eine Markierung m′ gibt,die von m erreichbar ist und unter der t aktiviert ist.Für den Erreichbarkeitsgraph bedeutet dies: von jedem Knoten desGraphen aus ist ein Übergang erreichbar, der mit der Transition tbeschriftet ist.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Schwache LebendigkeitEin Petrinetz N heißt schwach lebendig, wenn es für jede Transitiont eine erreichbare Markierung m gibt, unter der t aktiviert ist.Für den Erreichbarkeitsgraph bedeutet dies: für jede Transition gibtes mindestens einen Übergang, der mit der Transition t beschriftetist.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

VerklemmungEin Petrinetz N enthält ein Deadlock oder eine Verklemmung, wennes eine erreichbare Markierung m gibt, unter der keine Transitionaktiviert ist.Für den Erreichbarkeitsgraph bedeutet dies: es gibt einen Knoten,von dem aus es keinen Übergang gibt.

Ein Netz, das keine Verklemmung enthält, heißt verklemmungsfrei.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Eigenschaften der (starken) Lebendigkeit

Für Netze, deren Transitionsmenge nicht leer ist, gilt: jedes (stark)lebendige Netz ist sowohl verklemmungsfrei, als auch schwachlebendig.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Beispiele für Lebendigkeit und Verklemmungen:

Ein Beispiel für ein (stark)lebendiges Netz . . .

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für einschwach lebendiges undverklemmungsfreies Netz,das jedoch nicht (stark)lebendig ist . . .

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für einverklemmungsfreies Netz,das jedoch nicht schwachlebendig ist . . .

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für einschwach lebendiges Netz,das jedoch eineVerklemmung enthält . . .

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Ein Beispiel für ein Netz,das eine Verklemmungenthält und das auch nichtschwach lebendig ist . . .

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Lebendigkeit und Verklemmungen

Überblick über die verschiedenen Netzklassen (unter derVoraussetzung, dass jedes Netz mindestens eine Transition enthält):

verklemmungs-freie Netze

schwach lebendigeNetze

Netzelebendigestark

alle Petrinetze

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Beobachtung: Ein Petrinetz ist unbeschränkt genau dann, wennsein Erreichbarkeitsgraph unendlich groß ist.

Gibt es in diesem Fall trotzdem noch eine graphische Darstellung,die “in gewisser Weise” alle erreichbaren Markierungenrepräsentiert?

Überdeckbarkeitsgraph

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Zugrundeliegende Ideen:

Das Verhalten von Petrinetzen ist “monoton”, d.h., jedeSchaltfolge ist auch dann noch möglich, wenn man zusätzlicheMarken hinzufügt.Wenn im Erreichbarkeitsgraph zwei Markierungen m,m′existieren, so dass gilt:

m ist echt kleiner als m′ (in Zeichen m < m′, d.h.,m ≤ m′ und m 6= m′) undes gibt einen Pfad von m zu m′,

dann kann man die Transitionsfolge von m zu m′ noch einmalschalten und erhält wiederum eine größere Markierung m′′.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Konstruktion des ÜberdeckbarkeitsgraphenFühre zunächst wie gewohnt die Konstruktion desErreichbarkeitsgraphen aus.Sobald eine neue Markierung m′ hinzugefügt wird, wobei eseine Vorgängermarkierung m mit m < m′ gibt . . .

m0 m′m

. . . ersetze m′ durch eine (ω-)Markierung m̂ mit folgendenEigenschaften:

m̂(s) = m′(s), falls m(s) = m′(s), undm̂(s) = ω, falls m(s) < m′(s), wobei s ∈ S .

Mache dann mit der Konstruktion weiter, solange bis keineMarkierungen mehr hinzugefügt werden können.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Bemerkungen:

Die neu erzeugten besonderen ω-Markierungen ordnen einerStelle “unendlich” viele Marken (repräsentiert durch ω).Dies nimmt das wiederholte Schalten der Transitionsfolge vonm zu m′ vorweg, die in den ω-Stellen beliebig viele Markenproduzieren kann.Für ω-Markierungen gilt beim Schalten von Transitionen:ω + k = ω und ω − k = ω. Außerdem gilt ω als größer als jedenatürliche Zahl.

Der englische Name für Überdeckbarkeitgraphen ist coverabilitygraphs.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Beispiel:

s1

t2

t1

s3

s2

t3

Reihenfolge der Stellen:s1, s2, s3

��

(1, 0, 0)t3 //

t1��

(0, 0, 0)

(0, 1, 0)

t2��

(1, 0, ω)t3 //

t1��

(0, 0, ω)

(0, 1, ω)

t2

ZZ

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Eigenschaften des Überdeckbarkeitsgraphen (I)

Die Konstruktion des Überdeckbarkeitsgraphen terminiertimmer nach endlich vielen Schritten.ω-Markierungen treten genau dann auf, wenn das Netzunbeschränkt ist. (D.h., der Überdeckbarkeitsgraph kann auchdazu verwendet werden, um zu überprüfen, ob ein Netzunbeschränkt ist.)

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Eigenschaften des Überdeckbarkeitsgraphen (II)

Sei N ein Netz und G der dazugehörige Überdeckbarkeitsgraph.Dann gilt:

Für jede erreichbare Markierung m von N gibt es einen Knotenm′ in G , mit m ≤ m′.Für jeden Knoten m′ in G und jedes i ∈ N0 gibt es eineerreichbare Markierung m in N, so dass für alle Stellen s gilt:

m(s) = m′(s), falls m′(s) 6= ωm(s) ≥ i , falls m′(s) = ω.

Frage: Ist für eine ω-Markierung m′ in G vielleicht sogar jedeMarkierung m von N mit m ≤ m′ erreichbar?

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Überdeckbarkeitsgraph

Nein! Gegenbeispiel:

s1

t1

s2

2

Reihenfolge der Stellen:s1, s2

��

(1, 0)

t1��

(1, ω)

t1

HH

Die Markierung (1, 1) ist kleiner als (1, ω), ist aber in dem Netznicht erreichbar.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Wichtige Begriffe bei Petrinetzen sind Nebenläufigkeit, Konflikt undKausalität. Wir beschäftigen uns damit etwas genauer.

KausalitätIn einem Petrinetz N ist die Transition t1 notwendige Bedingung fürdas Schalten von t2 genau dann, wenn für alle Schaltfolgen t̃ gilt:

falls m0[t̃t2〉m für eine Markierung m, dann enthält t̃ die Transitiont1.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiel für Kausalität:

t1

t2

t3

t4

t1 ist eine notwendige Bedingung für t4,aber t2 ist keine notwendige Bedingung für t4. Denn nicht jedeSchaltfolge, die zu t4 führt, enthält t2 (z.B. t̃ = t1t3).Das gleiche gilt für t3.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Eigenschaften der KausalitätWenn t1 eine notwendige Bedingung für t2 ist, und t2 einenotwendige Bedingung für t3 ist, dann ist t1 eine notwendigeBedingung für t3. (Transitivität)

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Nebenläufigkeit

Eine Menge T ′ = {t1, . . . , tn} ⊆ T von Transitionen heißtnebenläufig aktiviert unter der Markierung m, wenn

•t1 ⊕ · · · ⊕ •tn ≤ m.

D.h., die Markierung m enthält genug Marken, um alle Transitionen“gleichzeitig” zu feuern.

Eigenschaften der Nebenläufigkeit

Wenn die Transitions-Menge T ′ unter der Markierung mnebenläufig ist, so ist auch jede Teilmenge von T ′ unter mnebenläufig.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiele für Nebenläufigkeit:

t1

t2

t3

t4

Die Menge {t2, t3} ist nebenläufig unter der Anfangsmarkierung.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

t2t1 t3

Die Menge T ′ = {t1, t2, t3}ist nebenläufig unter derAnfangsmarkierung.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

t2t1 t3

Die Mengen {t1, t2} {t2, t3}und {t1, t3} sind allenebenläufig unter derAnfangsmarkierung. Dies giltjedoch nicht für {t1, t2, t3}.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

t1 t3t2

Die Mengen {t1, t3} und{t2, t3} sind alle nebenläufigunter der Anfangsmarkierung.Dies gilt jedoch nicht für dieMengen {t1, t2} und{t1, t2, t3}.

Dieses Beispiel zeigt auch, dass Nebenläufigkeit nicht transitiv ist:t1 ist nebenläufig zu t3, t3 ist nebenläufig zu t2, jedoch sind t1 undt2 nicht nebenläufig.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Nebenläufigkeit (Konsequenzen)

Wenn eine Menge T ′ von Transitionen nebenläufig ist, so ist jedebeliebige Anordnung dieser Transitionen eine Schaltfolge ausgehendvon m.Das heißt, für jede Sequenz t̃, in der jede Transitionen aus T ′

genau einmal vorkommt, gibt es eine Markierung m′ mit m[t̃〉m′.Die Markierung m′ ist durch T ′ eindeutig bestimmt.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Nebenläufige Transitionen führen daher in Erreichbarkeitsgraphenzu Strukturen, die die Form eines Quadrats (Diamond) oder(höherdimensionalen) Würfels haben.

Beispiel für ein Quadrat:

t1 t2

s1 s2 (1, 1)t1 //

t2��

(0, 1)

t2��

(1, 0)t1 // (0, 0)

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiel für einen Würfel:

t1 t2

s2s1 s3

t3

(1, 1, 1)t1 //

t2

��

t3 %%

(0, 1, 1)

t2

��

t3 %%

(1, 1, 0)t1 //

t2

��

(0, 1, 0)

t2

��

(1, 0, 1)t1 //

t3 %%

(0, 0, 1)

t3 %%

(1, 0, 0)t1 // (0, 0, 0)

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Frage: Wenn jede Anordnung von Transitionen in T ′ eineSchaltfolge darstellt, ist dann T ′ automatisch nebenläufig (untereiner Markierung m)?

Nein! Gegenbeispiel:

t1 t2

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Schlinge

Ein Schlinge (oder Schleife) in einem Netz N besteht aus einerTransition t und einer Stelle s mit •t(s) > 0 und t•(s) > 0.

Graphisch:t s

n

m

Für schlingenfreie Netze gilt:

Sei N ein schlingenfreies Netz, sei m eine Markierung und T ′ eineMenge von Transitionen, so dass jede Anordnung der Transitionenin T ′ von m aus schaltbar ist. Dann ist T ′ nebenläufig.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

KonfliktZwei Transitionen t, t ′ ∈ T stehen unter der Markierung m inKonflikt genau dann wenn:

t und t ′ sind beide unter m aktiviert unddie Menge {t, t ′} ist unter m nicht nebenläufig.

Anschaulich: nur eine der beiden Transitionen kann schalten.Das liegt immer daran, dass sie eine gemeinsame Stelle in denVorbedingungen haben. D.h., es gibt eine Stelle s mit •t(s) ≥ 1und •t ′(s) ≥ 1.

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Beispiel für einen Konflikt:

t1 t2 t3

Unter der Anfangsmarkierung steht t1 in Konflikt mit t2. Außerdemsteht t2 in Konflikt mit t3.Jedoch steht t1 nicht in Konflikt mit t3 (keine Transitivität derKonfliktrelation).

ModellierungPetrinetzeEigenschaften von Petrinetzen, Überdeckbarkeitsgraphen

Petrinetze: Kausalität, Nebenläufigkeit, Konflikt

Bemerkung: auf bestimmten Arten von azyklischen Netzen(sogenannte Occurrence-Netze) kann man Begriffe wie Kausalität,Nebenläufigkeit und Konflikt noch klarer herausarbeiten.

Zwei Transitionen sind in solchen Netzen immer entweder kausalabhängig, nebenläufig oder in Konflikt, unabhängig von derMarkierung.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Kurze Einführung in Matrizen und Vektorrechnung:

MatrixSeien m, n ∈ N0. Eine m×n-Matrix C (über den ganzen Zahlen Z)besteht aus m · n Einträgen

Ci ,j ∈ Z für i ∈ {1, . . . ,m}, j ∈ {1, . . . , n}

Sie wird folgendermaßen dargestellt:

C =

C1,1 . . . C1,n...

. . ....

Cm,1 . . . Cm,n

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bemerkungen:Eine m×n-Matrix besteht also aus m Zeilen der Länge n, oder –anders ausgedrückt – aus n Spalten der Länge m.

Dabei heißt m Zeilendimension und n Spaltendimension der Matrix.

Eine Matrix, für die m = n gilt, heißt quadratisch. Die Matrizen,die wir im Folgenden betrachten werden, sind nichtnotwendigerweise quadratisch.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Spaltenvektor

Ein Spaltenvektor (oder Vektor) ~u der Dimension n ist einen×1-Matrix, d.h., er hat folgendes Aussehen.

~u =

u1...un

Wir betrachten im Folgenden immer Spaltenvektoren mit Einträgenaus Z.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bemerkungen:

Gegeben sei eine Markierung m = (m(s1), . . . ,m(sn)). Dannentspricht dieser Markierung der Spaltenvektor

~m =

m(s1)...

m(sn)

Spaltenvektoren kann man – wie Markierungen – addieren.Dabei werden die Komponenten paarweise addiert:u1

...un

+

v1...vn

=

u1 + v1...

un + vn

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Matrizen können miteinander multipliziert werden. Wir betrachtenzunächst die Multiplikation einer Matrix mit einem Spaltenvektor.

Multiplikation einer Matrix mit einem SpaltenvektorSei C eine m×n-Matrix und ~u ein Spaltenvektor der Dimension n.Dann ist C · ~u folgender Spaltenvektor:

C ·~u =

C1,1 . . . C1,n...

. . ....

Cm,1 . . . Cm,n

·u1

...un

=

C1,1 · u1 + · · ·+ C1,n · un. . .

Cm,1 · u1 + · · ·+ Cm,n · un

Das heißt, in der i-ten Zeile des Spaltenvektors steht der Eintrag∑n

j=1 Ci ,j · uj .

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

ZeilenvektorEin Zeilenvektor u der Dimension n ist eine 1×n-Matrix, d.h., erhat folgendes Aussehen.

u =(u1 . . . un

)Wir betrachten im Folgenden immer Zeilenvektoren mit Einträgenaus Z.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Zeilenvektoren und Tupel:Im folgenden werden wir Zeilenvektoren im wesentlichen mitn-Tupeln gleichsetzen. Eine Markierung m = (m(s1), . . . ,m(sn)),d.h., ein Tupel aus Nn

0 schreiben wir auch als folgendenZeilenvektor:

m =(m(s1) . . . m(sn)

)

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Multiplikation einer Matrix mit einem ZeilenvektorSei C eine m×n-Matrix und u ein Zeilenvektor der Dimension m.Dann ist u · C folgender Zeilenvektor der Dimension n:

u · C =(u1 . . . um

C1,1 . . . C1,n...

. . ....

Cm,1 . . . Cm,n

=(u1 · C1,1 + · · ·+ um · Cm,1 . . . u1 · C1,n + · · ·+ um · Cm,n

)Das heißt, in der j-ten Spalte des Zeilenvektors steht der Eintrag∑n

i=1 ui · Ci ,j .

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Merkregel:

Die Multiplikation einer m×n-Matrix mit einer n×1-Matrix(Spaltenvektor der Dimension n) ergibt eine m×1-Matrix(Spaltenvektor der Dimension m).Die Multiplikation einer einer 1×m-Matrix (Zeilenvektor derDimension m) mit einer m×n-Matrix ergibt eine 1×n-Matrix(Zeilenvektor der Dimension n).

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Wir betrachten nun die Inzidenzmatrix (oder einfach Matrix) einesPetrinetzes.

Sei S = {s1, . . . , sm} die Stellenmenge, T = {t1, . . . , tn} dieTransitionsmenge des Petrinetzes N.Die Inzidenzmatrix C von N ist eine m × n-Matrix mit Einträgender Form:

Ci ,j = tj•(si )− •tj(si ) ∈ Z

Dabei handelt es sich um die herkömmliche Subtraktion (nicht diemodifizierte) und das Ergebnis liegt in den ganzen Zahlen.

Der Eintrag Ci ,j gibt an, wie sich die Anzahl der Marken in Stelle siändert, wenn die Transition tj geschaltet wird.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Beispiel für eine Matrix:

s1 s2

t1

2

t3

s3

t2

Berechnung der Matrix-Einträge:

t1 t2 t3s1 C1,1 = 0 − 1 C1,2 = 1 − 0 C1,3 = 0 − 0s2 C2,1 = 0 − 1 C2,2 = 0 − 0 C2,3 = 1 − 0s3 C3,1 = 2 − 0 C3,2 = 0 − 1 C3,3 = 0 − 1

Resultierende Matrix:

C =

−1 1 0−1 0 12 −1 −1

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

s2

s1

s3

t1 s2

s1

s3

t1

Die beiden Netze sind verschieden, haben aber dieselbeInzidenzmatrix:

C =

−101

Dieses Phänomen kann nicht auftreten, wenn wir nur schlingenfreieNetze betrachten.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Angenommen, es gibt eine Schaltfolge, bei der die Transition tjuj -mal geschaltet wird (uj ∈ N0). Wie kann man die dadurchverursachte Änderung der Markierung mit Hilfe der Inzidenzmatrixbestimmen?

Man multipliziert die Spalte j , die für die Transition tj steht,mit uj .Damit erhält man den Effekt des uj -maligen Schaltens von tjfür jede einzelne Stelle.Man addiert alle Werte der Zeile i , die für die Stelle si steht,auf.Damit erhält man den Effekt des Schaltens aller Transitionenfür eine einzelne Stelle.

Multiplikation der Matrix mit einem Vektor!

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Sei

~u =

u1...un

der sogeannte Schaltvektor, der angibt, wie oft jede Transitiongeschalten werden soll.

Schaltvektor für das Beispielnetz: t1 und t2 werden zweimalgeschaltet, t3 einmal (dieser Schaltvektor ist von derAnfangsmarkierung aus realisierbar, z.B. durch die Schaltfolget1t2t3t1t2).

~u =

221

C · ~u =

2 · (−1) + 2 · 1+ 1 · 02 · (−1) + 2 · 0+ 1 · 1

2 · 2+ 2 · (−1) + 1 · (−1)

=

0−11

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

D.h., die Schaltfolge hat den Effekt, die Anzahl der Marken inStelle s1 gleichzulassen, in s2 um eins zu verringern und in s3 umeins zu erhöhen.

Wenn wir diese Änderung zu dem Spaltenvektor addieren, der derAnfangsmarkierung entspricht, ergibt sich:

~m0 + C · ~u =

120

+

0−11

=

111

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

MarkierungsgleichungFür jede erreichbare Markierung m gibt es einen Schaltvektor ~u mit

~m = ~m0 + C · ~u

Das heißt, jede erreichbare Markierung kann in obiger Formdargestellt werden.

Aber: nicht jede Markierung, die so dargestellt werden kann, istauch erreichbar.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

s2

s1

s3

t1

C =

−101

100

+

−101

· (1) =001

Diese Markierung ist jedochnicht erreichbar, da t1 nichtaktiviert ist.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

t1

s1

s3

s2

t2

C =

−1 0−1 11 −1

100

+

−1 0−1 11 −1

·(11

)=

000

Diese Markierung ist jedochnicht erreichbar, da dieSchaltfolgen t1t2 und t2t1beide nicht möglich sind.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Die Markierungsgleichung kann also nicht dazu genutzt werden, umzu zeigen, dass eine bestimmte Markierung erreichbar ist.

Aber: man kann damit manchmal zeigen, dass eine Markierungnicht erreichbar ist.

Beispiel: Ist in folgendem Netz die Markierung m = (2, 2, 0)erreichbar?

s1 s2

t1

2

t3

s3

t2

Wir überprüfen, ob die Gleichung220

=

120

+

−1 1 0−1 0 12 −1 −1

·u1u2u3

eine Lösung in den natürlichenZahlen hat.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Lösen eines Gleichungssystems

Hier sieht man leicht durch Addition aller Gleichungen, dass dasGleichungssystem keine Lösung hat.

2 = 1 −u1 +u22 = 2 −u1 +u30 = 2u1 −u2 −u3

4 = 3 Widerspruch!

Das heißt, die Markierung m = (2, 2, 0) ist nicht erreichbar.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Achtung: Als Lösungen des Gleichungssystem interessieren uns hierLösungen in den in den natürlichen Zahlen.

Daher ist das zum Lösen von Gleichungssystemen üblicherweiseverwendete Gaußsche Eliminationsverfahren nur begrenzteinsetzbar. In manchen Fällen muss es noch durch andereTechniken (z.B. Lösungsverfahren für diophantische Gleichungen)erweitert werden.

In unserem Fall werden wir die Beispiele jedoch immer so wählen,dass die entstehenden Gleichungssysteme einfach zu lösen sind.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Stelle die Markierungsgleichung für folgendes(unbeschränkte) Netz auf.

s1

2

t1

t2

s3s2

Kann man mit Hilfe der Markierungsgleichung überprüfen,dass die Markierung (1, 20, 0) nicht erreichbar ist?Kann das gleiche Ergebnis auch mit demÜberdeckbarkeitsgraph erzielt werden?

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Wir kommen nun zu einer weiteren Verwendung vonInzidenzmatrizen: sogenannte T- und S-Invarianten.

T-InvarianteGegeben sei ein Netz N und seine m×n-Inzidenzmatrix C . EinSpaltenvektor ~u der Dimension n heißt T-Invariante, falls

C · ~u = ~0

Dabei ist ~0 ein Spaltenvektor, der nur Einträge der Form 0 hat.

Bedeutung: eine T-Invariante beschreibt mögliche Schaltfolgen, dieeine Markierung unverändert lassen. Im Erreichbarkeitsgraph ergibtsich dann ein Kreis.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bemerkung zu T-Invarianten:

Wie bei der Markierungsgleichung müssen solche Schaltfolgennicht notwendigerweise realisierbar sein.Wenn es einen Kreis im Erreichbarkeitsgraphen gibt, soentspricht dieser aber auf jeden Fall einer T-Invariante.Wie bei der Markierungsgleichung interessieren uns hier nurT -Invarianten mit Einträgen aus N0.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Bestimme die T-Invarianten des folgenden Netzes:

s1 s2

t1

2

t3

s3

t2

Welche Bedeutung haben die T-Invarianten für denErreichbarkeitsgraph?

Erreichbarkeitsgraph

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

S-InvarianteGegeben sei ein Netz N und seine m×n-Inzidenzmatrix C . EinZeilenvektor v der Dimension m heißt S-Invariante, falls

v · C =(0 . . . 0

)

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bedeutung: sei ~m eine erreichbare Markierung. Dann gilt nach derMarkierungsgleichung, dass es einen Schaltvektor ~u gibt mit:

~m = ~m0 + C · ~u

Wenn man die Gleichung auf beiden Seiten von links mit vmultipliziert, so erhält man:

v · ~m = v · ~m0 + v · C · ~u = v · ~m0 + 0 = v · ~m0

Also gilt v · ~m = v · ~m0 für jede S-Invariante v und für jedeerreichbare Markierung m.

Eine Markierung, die diese Gleichung nicht erfüllt, kann daher nichterreichbar sein!

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Bestimme die S-Invarianten des folgenden Netzes:

s1 s2

t1

2

t3

s3

t2

Kann man mit Hilfe der S-Invarianten überprüfen, ob dieMarkierung (2, 2, 0) erreichbar ist?

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Löse die Gleichung(v1 v2 v3

−1 1 0−1 0 12 −1 −1

=(0 0 0

).

Es ergibt sich folgendes Gleichungssystem:

−v1 −v2 +2v3 = 0v1 −v3 = 0

v2 −v3 = 0

Durch Vereinfachung erhalten wir v1 = v2 = v3, d.h., die Lösungensind genau die Zeilenvektoren, bei denen alle Einträge gleich sind.Sie sind also alle von der Form

v =(v1 v1 v1

)= v1 ·

(1 1 1

)All diese Vektoren ergeben äquivalente S-Invarianten, wirbetrachten daher nur die S-Invariante v =

(1 1 1

).

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Für eine allgemeine Markierung m = (m1,m2,m3) desBeispielnetzes gilt also:

v · ~m = m1 +m2 +m3 = 3 = v · ~m0

Die Gleichung besagt, dass die Summe der Marken in den dreiStellen konstant bzw. invariant ist und immer drei beträgt.

Im allgemeinen haben Invarianten die Form

v1 ·m1 + · · ·+ vm ·mm = k ,

wobei v1, . . . , vm, k ∈ Z Konstanten sind.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Für die spezielle Markierung m = (2, 2, 0) ergibt sich:

2+ 2+ 0 = 4 6= 3

D.h., diese Markierung ist in dem Netz auf jeden Fall nichterreichbar (ausgehend von der Anfangsmarkierung).

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bemerkungen:

Bei der Lösung des Gleichungssystems zur Berechnung vonS-Invarianten sind prinzipiell auch Lösungen außerhalb dernatürlichen Zahlen (negative Zahlen, Brüche, etc.) interessant.Da es sich jedoch um ein homogenes Gleichungssystem handelt(auf der rechten Seite steht der Nullvektor), kann man durchMultiplikation mit dem Hauptnenner (kleinstes gemeinsamesVielfaches der Nenner) zumindest immer eine Darstellung allerLösungen als Vielfaches von ganzzahligen Vektoren erhalten.Es gibt im allgemeinen unendlich viele S-Invarianten:insbesondere sind alle Vielfache einer S-Invariante wiederS-Invariante. Diese Vielfachen liefern jedoch keine zusätzlichenInformationen über das Netz.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Bestimme die S-Invarianten des folgenden Netzes:

s2

t1

3

2

s1

Kann man mit Hilfe der S-Invarianten überprüfen, ob dieMarkierung (0, 5) erreichbar ist?

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Löse die Gleichung(v1 v2

)·(−23

)=(0).

Es ergibt sich folgendes Gleichungssystem:

−2v1 +3v2 = 0

Durch Vereinfachung erhalten wir v1 = 32 · v2.

D.h., die Lösungen sind von der Form v = v2 ·(3

2 1)

Wenn man nur Lösungen in den ganzen Zahlen betrachten will, somultipliziert man mit dem Hauptnenner 2 und erhält:

v = ` ·(3 2

), für ` ∈ Z.

Im Folgenden betrachten wir nur die S-Invariante, die man erhält,wenn man ` = 1 setzt.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Für eine erreichbare Markierung m = (m1,m2) des Beispielnetzesgilt also:

v · ~m = 3 ·m1 + 2 ·m2 = 12 = v · ~m0

Für die spezielle Markierung m = (0, 5) erhalten wir:

v · ~m = 3 · 0+ 2 · 5 = 10 6= 12

und damit ist diese Markierung nicht erreichbar.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Bestimme die S-Invarianten des folgenden Netzes:

s4

t4s3

t1

s1

t2 t3

s2

s5

Kann man mit Hilfe der S-Invarianten überprüfen, ob dieMarkierung (0, 0, 1, 1, 1) erreichbar ist?

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Mit Hilfe des folgenden Beispiels soll gezeigt werden, dassInvarianten auch für unbeschränkte Netze sehr nützlich sein können.Bestimmen Sie dazu die S-Invarianten des folgenden Netzes:

s1

s3

t1

s2

2

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Aufgabe: Wir hatten mit Hilfe der Markierungsgleichung gezeigt,dass die Markierung (1, 20, 0) in folgendem Netz nicht erreichbarist.

s1

2

t1

t2

s3s2

Kann man das gleiche Ergebnis auch mit Hilfe von S-Invariantenerzielen?

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bemerkungen:

Für beschränkte Netze sind folgende Techniken zum Testen derNicht-Erreichbarkeit geeignet. Sie werden der Reihe nachaufwändiger und exakter:

1 S-Invarianten2 Markierungsgleichung3 Erreichbarkeitsgraph

(exakt, kann auch zur Überprüfung der Erreichbarkeitverwendet werden).

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Bemerkungen:

Auch für unbeschränkte Netze ist die Markierungsgleichungaufwändiger und exakter als S-Invarianten.

Der Überdeckbarkeitsgraph ist jedoch, im Gegensatz zumErreichbarkeitsgraph, keine exakte Technik und erlaubt nurbegrenzt Aussagen über die Erreichbarkeit von Markierungen.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Für unbeschränkte Petrinetze haben wir also bisher nurapproximative, unvollständige Methoden für dasErreichbarkeitsproblem. Es gilt jedoch:

Entscheidbarkeit des Erreichbarkeitsproblems

Es gibt ein Verfahren, das für ein gegebenes (unbeschränktes) NetzN und eine Markierung m entscheidet, ob m in N erreichbar ist.(Mayr, 1984)

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Invarianten

Dieses Verfahren ist jedoch extrem aufwändig und in derPraxis derzeit nicht einsetzbar.Die obige Aussage bedeutet jedoch auch, dass Petrinetze nichtzu den mächtigsten Berechnungsmodellen gehören. Es gibtnämlich Berechnungsmodelle, für die dasErreichbarkeitsproblem nicht entscheidbar ist.Anders ausgedrückt: Petrinetze sind nicht Turing-mächtig ( Vorlesung “Berechenbarkeit und Komplexität”).Das liegt vor allem daran, dass Petrinetze keine Nulltestsfolgender Form erlauben: “Die Transition t kann nur feuern,wenn in der Stelle s keine Marken liegen.”

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Wir betrachten nun noch einige größere Fallstudien . . .

Zunächst behandeln wir das Konzept des wechselseitigenAusschlusses (engl. mutual exclusion oder mutex).

Wir betrachten zwei Akteure, die jeweils einen kritischenBereich haben.Beide Akteure dürfen nicht gleichzeitig in ihren kritischenBereich kommen, da sie sich dort gegenseitig behindern undunerwünschtes Verhalten auslösen würden (z.B. indem beideAkteure in dieselbe Datei schreiben).Es darf sich also immer höchstens ein Akteur im kritischenBereich befinden.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Ursprüngliches System:

K1NK 1

nk1

k1

kritischer Bereich

NK 2K2

nk2

k2

Bedeutung der Stellen: K1 (krit. Bereich Akteur 1), NK 1(nicht-krit. Bereich Akteur 1), K2 (krit. Bereich Akteur 2), NK 2(nicht-krit. Bereich Akteur 2)

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Erweitertes System mit Mechanismen zum wechselseitigen Aus-schluss:

K1NK 1

nk1

k1

NK 2K2

k2

nk2

S

Bedeutung der Stellen: K1 (krit. Bereich Akteur 1), NK 1(nicht-krit. Bereich Akteur 1), K2 (krit. Bereich Akteur 2), NK 2(nicht-krit. Bereich Akteur 2), S (Hilfsstelle, sog. Semaphor)

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Wir möchten zeigen, dass in den Stellen K1, K2 niemals gleichzeitigMarken liegen.

Reihenfolge der Stellen: K1, NK 1, K2, NK 2, SReihenfolge der Transitionen: k1, nk1, k2, nk2

Inzidenzmatrix:

C =

1 −1 0 0−1 1 0 00 0 1 −10 0 −1 1−1 1 −1 1

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Wir bestimmen die S-Invarianten, nach der Gleichung

v · C =(0 . . . 0

)Entstehendes Gleichungssystem:

v1 −v2 −v5 = 0−v1 +v2 +v5 = 0

v3 −v4 −v5 = 0−v3 +v4 +v5 = 0

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Vereinfacht ergibt sich:

v1 = v2 + v5v3 = v4 + v5

Das heißt, die Lösungen haben genau die Form:(v2+v5 v2 v4+v5 v4 v5

)= v2 ·

(1 1 0 0 0

)+ v4 ·

(0 0 1 1 0

)+ v5 ·

(1 0 1 0 1

)für v2, v4, v5 ∈ Z. Die drei Vektoren bilden eine Basis desLösungsraums.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Wechselseitiger Ausschluss)

Für uns ist vor allem der letzte Vektor interessant. Für jedeerreichbare Markierung m = (m1,m2,m3,m4,m5) muss gelten:

m1 +m3 +m5 = v · ~m = v · ~m0 = 1

Angenommen, in der Stelle K1 liegt mindestens eine Marke(m1 ≥ 1) und in der Stelle K2 liegt mindestens eine Marke(m3 ≥ 1).Dann gilt:

2 ≤ m1 +m3 +m5 = 1,

was ein Widerspruch ist.

Also liegt in den Stellen K1, K2 zusammen immer höchstens eineMarke.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Wir kommen nochmal auf die speisenden Philosophen zurück:

Diesmal sitzen nur zwei Philosophen an einem Tisch (damitdas Beispiel nicht zu groß wird).Einer davon ist ein Linkshänder (und nimmt die linke Gabelzuerst), der andere ein Rechtshänder (und nimmt die rechteGabel zuerst).

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Petrinetz: links- und rechtshändige Philosophen

w1

e1

h1

F1 F2

E2

W1 E1

W2

H2

H1

h2w2

e2

Reihenfolge derStellen:F1,F2,H1,H2,W1,W2,E1,E2

Reihenfolge derTransitionen:w1, e1, h1,w2, e2, h2

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Zu zeigen: in diesem Netz gibt es keine Verklemmung, bei der beidePhilosophen im Wartezustand sind.D.h., folgende Markierung soll nicht erreichbar sein:

m = (0, 0, 0, 0, 1, 1, 0, 0)

Dazu betrachten wir die Inzidenzmatrix des Netzes:

C =

−1 0 1 −1 0 10 −1 1 0 −1 1−1 0 1 0 0 00 0 0 −1 0 11 −1 0 0 0 00 0 0 1 −1 00 1 −1 0 0 00 0 0 0 1 −1

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Fallstudien (Speisende Philosophen)

Eine S-Invariante ist

v =(1 0 0 0 1 1 1 1

)Und es gilt:

v · ~m0 = 1 v · ~m = 2

Daraus folgt v · ~m0 6= v · ~m. Damit ist m nicht erreichbar und eskann daher kein Deadlock dieser Form geben.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Fallstudie: Leser-Schreiber-Problem

Beliebig viele Prozessedürfen gleichzeitig lesenWenn geschrieben wird,darf nur ein Schreiberund keine Leser imkritischen Abschnitt seinDie Schreiber’verhungern’, solangenoch jemand lesen will

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Fallstudie: Leser-Schreiber-Problem(2)

Bessere Lösung:Sobald jemandschreiben will, müssenalle Leser warten

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Wir betrachten zuletzt noch zwei weitere Arten von Netzen:

Netze mit KapazitätenAttributierte Netzeauch bekannt unter den Namen: Netze mit individuellenMarken, Prädikat-Transitions-Netze, engl. coloured Petri nets

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Netze mit Kapazitäten

Ein Petrinetz mit Kapazitäten besteht aus einem (herkömmlichen)Petrinetz N (mit Stellenmenge S) und einer Kapazitätsfunktionk : S → N0. Für die Anfangsmarkierung m0 muss gelten: m0 ≤ k .

Intuition: die Stelle s darf höchstens k(s) Marken enthalten.Kapazitäten werden neben die Stellen geschrieben.

Schalten von Transitionen bei KapazitätenEine Transition t kann unter einer Markierung m schalten, wenngilt:

1 •t ≤ m2 und m •t ⊕ t• ≤ k .

D.h., eine Transition darf nur dann schalten, wenn dadurch dieKapazitäten nicht überschritten werden.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Beispielnetz mit Kapazitäten

s2s1

2 1

t1

t2

t3

Erreichbarkeitsgraph

// (1, 1)t3 //

t2��

(1, 0)

t1��

(2, 0)

t1

DD

(0, 1)

t2

DD

t3 // (0, 0)

Insbesondere: unter der Anfangsmarkierung (1, 1) ist die Transitiont1 nicht schaltbar.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Umwandlung eines Netzes mit Kapazitäten in ein Netz ohneKapazitäten

1 Füge zu jeder Stelle s eine sogenannte Komplementstelle shinzu. In der Anfangsmarkierung enthält s genau k(s)−m0(s)Marken.Idee: die Summe der Marken in der Stelle und derKomplementstelle ergibt immer die Kapazität.

2 Falls eine Transition in der Summe Marken aus einer Stelleherausnimmt (n = t•(s)− •t(s) < 0) füge eine Kante von tnach s mit Gewicht −n ein.

3 Falls eine Transition in der Summe Marken in eine Stellehineinlegt (n = t•(s)− •t(s) > 0) füge eine Kante von s nacht mit Gewicht n ein.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Mit dieser Konstruktion ist für jedes Paar s, s von Stellensichergestellt, dass

m(s) +m(s) = k(s) für jede erreichbare Markierung s;eine Transition t nur schaltbar ist, wenn die Kapazität derStellen in der Nachbedingung noch nicht ausgeschöpft ist. Daswird dadurch überprüfen, dass die benötigte Kapazität überdie Komplementstellen abgefragt wird.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Umgewandeltes Beispielnetz

s1 s2

s2s1 t1

t2

t3

Reihenfolge der Stellen: s1, s1, s2, s2

Erreichbarkeitsgraph

// (1, 1, 1, 0)t3 //

t2��

(1, 1, 0, 1)

t1��

(2, 0, 0, 1)

t1

DD

(0, 2, 1, 0)

t2

DD

t3 // (0, 2, 0, 1)

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Fallstudie: Erzeuger-Verbraucher-Problem

Ein Prozess erzeugt Objekte, der andere verbraucht dieseEs steht nur eine begrenzte Anzahl Speicherplätze zurVerfügung

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Fallstudie: Erzeuger-Verbraucher-Problem (2)

Ein Prozess erzeugt Objekte, der andere verbraucht dieseEs steht nur eine begrenzte Anzahl Speicherplätze zurVerfügungDas Schreiben/Lesen der Objekte muss im kritischenAbschnitt erfolgen

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Fallstudie: Erzeuger-Verbraucher-Problem (3)

Obige Lösung ignoriert, dass bei der Programmierung dieBedingungen (kritischer Abschnitt, freie Plätze/Objektevorhanden) nacheinander überprüft werden müssenVariante 1: Erst kritischer AbschnittEs kommt zum Deadlock, wenn die zweite Bedingung nichterfüllt ist

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Fallstudie: Erzeuger-Verbraucher-Problem (4)

Korrekte Lösung: Erst die Anzahl überprüfen, danach in denkritischen Abschnitt

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Bei attributierten Netzen (oder coloured nets) haben die MarkenFarben. Die Transitionen geben an, Marken welcher Farbeentnommen und erzeugt werden sollen.

Beispielsweise entnimmt folgende Transition eine blaue und einerote Marke und erzeugt zwei grüne Marken.

ModellierungPetrinetzeInzidenzmatrizen und Invarianten

Petrinetze: Weitere Arten von Netzen

Farben können dabei auch Elemente eines bestimmten Datentypssein (z.B. Zahlen). Die Transitionen werden dabei symbolischannotiert und an den Transitionen können auch Bedingungenstehen.

Beispielsweise hat folgendes Netz natürliche Zahlen als “Farben”.Die Transition entnimmt der ersten Stelle eine natürliche Zahl xund der zweiten Stelle eine Zahl y . In die Stelle der Nachbedingungwird dann die Zahl x + y gelegt. Die Transition darf nur schalten,wenn x > 3.

27

45

x + yx

yx > 3

ModellierungUnified Modeling Language (UML)

UML: Einführung

UML = Unified Modeling Language

Standard-Modellierungssprache fürSoftware Engineering.Basiert auf objekt-orientiertenKonzepten.Sehr umfangreich, enthält vieleverschiedene Typen von Modellen.Entwickelt von Grady Booch,James Rumbaugh, Ivar Jacobson(1997).

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML und Objekt-Orientierung

Was bedeutet Objekt-Orientierung?

GrundideeDie reale Welt besteht aus Objekten, die untereinander inBeziehungen stehen. Diese Sichtweise wird auch auf Modellierungund Softwareentwicklung übertragen.

Etwas genauer . . .

Daten (= Attribute) werden zusammen mit der Funktionalität (=Methoden) in Objekten organisiert bzw. gekapselt. Jedes Objekt istin der Lage Nachrichten (= Methodenaufrufe) zu empfangen,Daten zu verarbeiten und Nachrichten zu senden.Diese Objekte können – einmal erstellt – in verschiedenenKontexten wiederverwendet werden.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML und Objekt-Orientierung

Geschichte der Objekt-OrientierungEntwicklung 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: Vorläufer von UML:OOSE (Object-Oriented Software Engineering),OMT (Object Modeling Technique)Seit 1997: UMLSeit 2005: UML 2.0

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML und Objekt-Orientierung

Vorteile der objekt-orientierten Programmierung und ModellierungLeichte Wiederverwendbarkeit dadurch, dass Daten undFunktionalität zusammen verwaltet werden und es Konzeptezur Modifikation von Code (Stichwort: Vererbung) gibt.Nähe zur realen Welt: viele Dinge der realen Welt können alsObjekte modelliert werden.Verträglichkeit mit Nebenläufigkeit und Parallelität:Kontrollfluss kann nebenläufig in den Objekten ablaufen unddie Objekte können durch Nachrichtenaustausch bzw.Methodenaufrufe untereinander kommunizieren.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML und Objekt-Orientierung

Ein Beispiel für die Modellierung vonObjekten der realen Welt:

FahrkartenautomatDaten: Fahrtziele, Zoneneinteilung,FahrtkostenFunktionalität: Tasten drücken,Preise anzeigen, Münzen einwerfen,Fahrkarte auswerfen

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML und Objekt-Orientierung

KonzepteKlassen: definiert einen Typ von Objekten mit bestimmtenDaten und bestimmter Funktionalität.Beispiel: die Klasse der VRR-FahrkartenautomatenObjekte: Instanzen der Klasse.Beispiel: der Fahrkartenautomat am Duisburger Hauptbahnhof,Osteingang

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML: Einführung

Einsatzgebiete von UMLVisualisierungSpezifikationKonstruktion (z.B. zur Codegenerierung)Dokumentation

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML: Einführung

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)

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML: Einführung

Beziehungen

Abhängigkeiten (dependencies)Assoziationen (associations)Generalisierungen (generalizations)Realisierungen (realizations)

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML: Einführung

UML-Diagramme

Verhaltens-diagramme

Interaktions-diagramme

Objekt-diagramm

Kompositions-strukturdiagramm

diagrammeStruktur-

Klassen-

diagrammKomponenten-

diagramm

Verteilungs-diagramm

Paket-diagramm

Diagrammeder UML

diagramm diagramm

diagramm

Aktivitäts- Anwendungsfall-

Zustands-

diagrammdiagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-/Timing-Diagramm

Kommunikations-Sequenz-

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML: Einführung

Diagramme (I)

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

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

UML: Einführung

Diagramme (II)

VerhaltensdiagrammeAktivitätsdiagramme (activity diagrams)Zustandsdiagramme (state diagrams)Anwendungsfalldiagramm (use case diagrams)Interaktionsdiagramme

Sequenzdiagramme (sequence diagrams)Kommunikationsdiagramm (communication diagram)Zeitverlaufsdiagramm (timing diagram)Interaktionsübersichtsdiagramm (interaction overviewdiagram)

Wir werden im Folgenden einige dieser Begriffe mit Leben füllen.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Bemerkungen:

Bei den Attributen handelt es sich um sogenannteInstanzattribute, d.h., sie gehören zu den Instanzen einerKlasse (nicht zur Klasse selbst).Man kann die Sichtbarkeit eines Attributes bzw. einer Methodespezifieren, indem man + (öffentlich/sichtbar) oder −(privat/nicht sichtbar) vor den Attribut-/Methodennamenschreibt.Auch die Angabe # (geschützt/protected) ist möglich. Indiesem Fall ist das Attribut nur für Klassen sichtbar, die vonder entsprechenden Klasse erben.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Bemerkungen:

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

x: int = 0

Mehrstellige Operationen mitRückgabewert, werden mit ihren Typen folgendermaßen notiert:

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

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Graphische Darstellung einer Instanz einer Klasse

x: inty: int

get_x(): intget_y(): int

«instantiate»

x = 0y = 0

Point mypoint :Point

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Bemerkungen:

In einer solchen Situation nennt man Point Superklasse undColored_Point Subklasse.Da die Subklasse die Attribute, Methoden und Assoziationender Superklasse erbt (und diesen noch weitere hinzufügenkann), spricht man auch von Vererbung. Außerdem kann manin der Subklasse Methoden der Superklasse überschreiben unddurch neue ersetzen.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Wie kann man Beziehungen zwischen Klassen in UML darstellen?Es gibt folgende mögliche Beziehungen:

AssoziationAggregationKomposition

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Wir beginnen mit der schwächsten Relation zwischen zwei Klassen:der Assoziation.

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

es eine semantische Beziehung zwischen den Klassen gibt.

Üblicherweise werden Assoziationen durch Referenzen realisiert(d.h., eine der Klassen hat ein Attribut vom Typ der anderenKlasse).

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Beispiel für eine AssoziationEine Person besitzt ein Auto.

besitzt

Person Auto

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Bemerkungen:

Es kann eine Leserichtung der Assoziation eingeführt 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.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Multiplizitäten: an beide Enden der Assoziationen könnenMultiplizitäten in Form von Intervallen m..n (oder einfach nurm für m..m) angegeben werden. Hier besitzt eine Person biszu fünf Autos. Ein Auto ist im Besitz genau einer Person.

besitzt

Person Auto1 0..5

Falls die Multiplizität größer als eins ist, muss dies in derImplementierung durch eine Liste (oder Menge oder Array)von Referenzen realisiert werden.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Multiplizitäten allgemein: in folgendem Diagramm können iInstanzen von A (mit m ≤ i ≤ n) mit einer Instanz von Bassoziert sein. Umgekehrt können 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..∗ für “mindestenszwei”.

Die Multiplizität 0..∗ wird als Standardwert angenommen,wenn keine Angabe vorhanden ist.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

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

Haendler Kaeufer EndkundeVerkaeuferKaeuferVerkaeuferGrosshandel

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Die nächste Relation – Aggregation – ist etwas stärker.

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

Instanzen der Klasse A Instanzen der Klasse B als Teileenthalten. (Ein “Ganzes” enthält mehrere “Teile”.)

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Beispiel für eine AggregationEin Parkplatz “enthält” mehrere Autos.

AutoParkplatz

enthaelt

0..1 0..∗

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Die stärkste Relation ist die sogenannte Komposition.

KompositionEs 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 vom “Ganzen”kontrolliert. Das heißt, die Teile können (müssen) gelöschtwerden, sobald die Instanz der Klasse A gelöscht wird.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Beispiel für eine KompositionEin Auto besteht aus vier Rädern.

Auto Rad

besteht_aus

1 4

Die Räder werden zerstört, sobald das Auto zerstört wird.

Bemerkung: In diesem Fall muss die Multiplizität, die an derschwarzen Raute steht, immer 0 oder 1 sein. Jedes Teil kannhöchstens zu einem Ganzen gehören.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

In Klassendiagrammen befinden sich normalerweise nicht nur zweiKlassen mit einer Assoziationen, sondern verschiedene Klassen einesProgramms oder Moduls, mit ihren Beziehungen untereinander.

Beispiel:

AutoParkplatz

enthaelt

0..1 0..∗

besitzt

Person1

0..5

Rad

besteht_aus

1 4

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

n-äre AssoziationNeben binären (zweistelligen) Assoziationen gibt es auch n-äreAssoziationen, die eine Beziehung zwischen n Klassen beschreiben.

1..∗

0..∗

Vorspeise

0..∗ Dessert

Menue

Hauptgericht

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

GeneralisierungsgruppenKlassen können in unterschiedlicher Weise spezialisiert bzw.unterteilt werden. Daher können Generalisierungen zu Gruppenzusammengefasst werden.

Person

Frau

Mann

AlterGeschlecht

Erwachsener

Kind

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

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Den Generalisierungsgruppen können Eigenschaften (ingeschweiften Klammern) zugeordnet werden.

complete/incomplete:complete: die Generalisierungsgruppe ist vollständig, d.h.,sie überdeckt alle Instanzen der Klasse.incomplete: die Generalisierungsgruppe ist unvollständig.

disjoint/overlapping:disjoint: die spezialisierenden Klassen besitzen keinegemeinsamen Instanzen (keine Überlappung).overlapping: die spezialisierenden Klassen könnengemeinsame Instanzen besitzen.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Beispiele für die Eigenschaften complete/incomplete unddisjoint/overlapping:

{complete,disjoint}

Person

Frau

Mann

Geschlecht

{complete,disjoint}

Hier handelt es sich um eine Partitionierung der Instanzen derKlasse.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

{incomplete,disjoint}

Alter

Person

{incomplete,disjoint}

Kind

Erwachsener

Warum unvollständig? es fehlt eine Klasse Jugendlicher.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

{complete,overlapping}

Lebensraum

Tier

{complete,overlapping}

Fliegendes_Tier

Meerestier

Landtier

Schildkröten sind sowohl Land- als auch Meerestiere.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

{incomplete,overlapping}

Tier

LebensraumLandtier

Meerestier

{incomplete,overlapping}

Fliegende Tiere fehlen.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

MehrfachvererbungEs ist auch möglich, 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 Mädchen ist sowohl ein Kind als auch ein weiblicher Mensch (=Frau).

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

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

Welche Objekte und Klassen werden benötigt?Welche Merkmale haben diese Klassen und welcheBeziehungen bestehen zwischen Ihnen?Wie sollen die Klassen eingesetzt werden?Welche Methoden stellen diese Klassen zur Verfügung? Wiewirken diese Methoden zusammen?In welchen Zuständen können sich Objekte befinden undwelche Nachrichten werden wann an andere Objekte geschickt?

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Ein größeres Beispiel für objekt-orientierte Modellierung undProgrammierung: Wir modellieren eine Bank.

Folgende Anforderungen werden gestellt:Eine Bank

hat mehrere Kundenund mehrere Angestellteund führt eine Menge von Konten.

Konten könnenGiro- oder Sparkonten sein. (Ein Sparkonto wirft höhereZinsen ab, darf aber nicht ins Minus absinken.)in Euro oder in Dollar geführt werden.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Auf den Konten sollen folgende Operationen ausgeführtwerden können:

EinzahlenAbhebenVerzinsenUmbuchen

Außerdem sollen alle Objekte (inklusive der Bank) ihreDarstellung ausdrucken können. 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.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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

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

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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

Außerdem: Konto steht in einerKompositionsrelation mit Betrag,d.h., jedes Konto enthält einenBetrag (siehe Klassendiagramm).

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Klasse Girokonto:

Girokonto

Konto

zins: float = 0.005

Die Klasse Girokonto wird von Kontoabgeleitet. Typischerweise ist derZins bei Girokonten niedriger als beiSparkonten. Von daher wird dieserauf einen niedrigeren Anfangswertgesetzt.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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 für den Zins gesetztwerden.

Außerdem: es muss darauf geachtetwerden, dass das Konto nicht insMinus abgleitet. Dazu werden dieentsprechenden Methodenüberschrieben (in derImplementierung muss die Bedingungentsprechend getestet werden).

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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 im Minus;Betrag addieren, subtrahieren;Multiplikation mit einerGleitpunktzahl (zum Verzinsen!)

Beträge müssen im allgemeinen in einer Währung angegebenwerden. Daher werden von der Klasse Betrag die Unterklassen Euround Dollar abgeleitet.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Klasse Euro:

Euro

betrag_in_euro():float

Betrag

Von Betrag wird zunächst die KlasseEuro abgeleitet.

Methoden: Betrag in Euro ausgeben

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Klasse Dollar:

Betrag

Dollar

betrag_in_dollar():float

Von Betrag wird außerdem dieKlasse Dollar abgeleitet.

Methoden: Betrag in Dollar ausgeben

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Klasse Person:

Person

name: string

print()

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

Außerdem: Person steht in einerAssoziationsrelation mit einer Listevon Konten, die entweder dieserPerson gehören (Kunde) oder auf diediese Person Zugriff hat(Angestellte/r).

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Klasse Angestellter (erbt von Person):

Angestellter

zugriff_auf_konto(kto:Konto)

Methoden: Zugriff auf ein Kontoerlangen

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

Klasse Kunde (erbt von Person):

Kunde

konto_eroeffnen()

Methoden: Konto eröffnen (hierkönnte noch ein Parameter übergebenwerden, der beschreibt, ob das Kontoein Giro- oder Sparkonto sein soll undob es in Euro oder Dollar geführtwerden soll)

Außerdem: Ein Kunde steht in einerAssoziationsrelation mit seinemBetreuer.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Beispiel: Modellierung einer Bank

hat_Zugriff_aufKontotyp

Status

Waehrung

Betrag

Euro

betreut

name: string

Person

wert: float

Girokonto Sparkonto

Konto1

1

Bank

Dollar

Kunde Angestellterbesteht_aus

besitzt1

1

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Abstrakte KlasseEine Klasse heißt 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 möchte man beispielsweise nie eineInstanz der Klasse Person bilden, sondern nur von Kunde oderAngestellter.

Person{abstract}

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Wir betrachten nun Objektdiagramme. Ein Objekt ist eine Instanzoder Ausprägung 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.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

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 müssen in dem Diagramm nicht graphischdargestellt werden. Es kann aber manchmal angemessen sein,“Bauplan” und “Produkt” gemeinsam darzustellen.Nicht alle Attributbelegungen des Objekts müssen angegebenwerden.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

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

Bemerkungen:

Links sind nicht mit Multiplizitäten beschriftet, ein Linkrepräsentiert genau eine Beziehung.Es ist jedoch darauf zu achten, dass dieMultiplizitätsbedingungen des Klassendiagramms eingehaltenwerden. D.h., die Anzahl der Objekte, die miteinander inBeziehung stehen, müssen innerhalb der jeweiligen Schrankensein.

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Zurück zum Beispiel: Autos, Parkplatz, Räder

Wir betrachten zunächst noch einmal das Klassendiagramm:

AutoParkplatz

enthaelt

0..1 0..∗

besitzt

Person1

0..5

Rad

besteht_aus

1 4

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Dieses Objektdiagramm passt zum vorherigen Klassendiagramm:

:Rad

:Rad

:Rad

:Rad

enthaelt

enthaeltbesitzt

besteht_ausbesitzt

besteht_aus

peter

:Rad

:Rad

:Rad

:Rad

gruenerAudi

gabi:Person

:Person

:AutoparkplatzLBereich:Parkplatz

schwarzerVW:Auto

ModellierungUnified Modeling Language (UML)Klassen- und Objektdiagramme

Klassen- und Objektdiagramme

Bemerkungen:

Auch Aggregations- und Kompositionssymbole dürfen inObjektdiagrammen auftauchen.Achtung: Beziehungen (Assoziationen, Aggregationen,Kompositionen) zwischen Klassen werden vererbt und müssendann auch entsprechend im Objektdiagramm bei den Instanzender Unterklassen auftauchen.

Beispiel:

besitzt

besitzt

:Sparkonto

:Girokonto

klaus :Kunde

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Wir betrachten nun sogenannte Aktivitätsdiagramme (activitydiagrams), das sind UML-Diagramme mit denen man Ablaufpläne,Reihenfolgen von Aktivitäten, parallele Aktivitäten, etc. modellierenkann.

Sie werden beispielsweise verwendet, um Geschäftsprozesse (auchWorkflow-Prozesse) des Auftraggebers zu modellieren. Sie könnenebenso eingesetzt werden, um interne Systemprozesse zubeschreiben.

Aktivitätsdiagramme sind in vielen Aspekten ähnlich zuPetri-Netzen. Im Unterschied zu Petri-Netzen bieten sie zusätzlicheModellierungsmöglichkeiten, haben jedoch keine formale Semantik.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Plan einreichen

Plan erstellen

Phase parallelerAktivitäten

Bauplatz wählen

Startknoten

Architekt suchen

Arbeit im Büro

[angenommen]

Plan

[nicht angenommen]

Arbeit auf Baustelle

Aktivitätsende

Haus fertigstellen

Beispiel:

Hausbau

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Wir vergleichen nun die Bestandteile von Aktivitätsdiagrammen mitPetrinetzen (angelehnt an die Semantik von Störrle):

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

Plan erstellen Plan erstellen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

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

Architekt suchen

Bauplatz wählen

Plan erstellen

Bauplatz wählen

Architekt suchen

Plan erstellen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Objektknoten

Objektknoten beschreiben Speicher für die Übergabe 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. Siekönnen mehrere Instanzen dieser Klasse enthalten.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Entscheidungsknoten (auch: Verzweigungsknoten)

Entscheidungsknoten (decision nodes) beschreiben eineVerzweigung des Kontrollflusses, wobei aus den möglichenKontrollflüssen genau einer ausgewählt wird. Sie werden durchHilfsstellen repräsentiert, 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 eingeführt werden.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Bemerkung zu Entscheidungsknoten:

Überwachungsbedingungen (Guards), die den Kontrollfluss steuern,werden in eckigen Klammern an den ausgehenden Kontrollflüssennotiert. Ähnliche Guards existieren auch in attributierten Netzen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Verbindungsknoten

Es gibt auch sogenannte Verbindungsknoten (merge nodes), diemehrere alternative Kontrollflüsse zusammenfassen. Sie könnendurch Hilfsstellen dargestellt werden, die sich in der Nachbedingungmehrerer Transitionen befinden.

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Gabelung (auch: Parallelisierungsknoten)

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Vereinigung (auch: Synchronisationsknoten)

Analog dazu gibt es die Vereinigung (join node), die mehrereparallele Kontrollflüsse 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.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Bitte beachten:

Kontrollflüsse dürfen nur an Objektknoten, Entscheidungsknotenund Gabelungen aufgespalten und an Objektknoten,Verbindungsknoten und Vereinigungen wieder zusammengeführtwerden.

Folgendes ist nicht erlaubt:

AktionAktion

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

StartknotenEin Startknoten entspricht einer initial markierten Stelle. EinAktivitätsdiagramm darf nur einen Startknoten haben, in den keinKontrollfluss hineinführt

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

AktivitätsendeDas Aktivitätsende signalisiert, dass alle Kontrollflüsse beendetwerden. Es gibt keine Entsprechung in Petrinetzen.

Es gibt auch ein Symbol für das Flussende, das nur den in eshineinlaufenden Kontrollfluss beendet.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Plan einreichen

fork

Arbeit im BüroArbeit auf Baustelle

join

Architekt suchen

PlanPlan erstellen

Bauplatz wählen

Hilfstransition

Haus fertigstellen

ÜbersetztesPetrinetz

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Aktivitätsdiagramme enthalten noch mehr Anleihen ausPetrinetzen. Beispielsweise können auch die Kapazität 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 Kapazität einer Stelle (maximal 6Gerichte dürfen gleichzeitig fertig sein) und weight das Gewicht(immer 2 Gerichte werden gleichzeitig serviert).

In Aktivitätsdiagrammen darf noch zusätzlich spezifiziert werden, inwelcher Reihenfolge die Objekte aus dem Objektknoten genommenwerden (unordered, ordered, LIFO, FIFO).

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Vorsicht:

Die Entsprechung zwischen Aktivitätsdiagrammen undPetrinetzen ist nicht immer ganz exakt. Nicht alle Konzepteentsprechen einander.Das liegt teilweise auch daran, dass Aktivitätsdiagramme nurein semi-formales Modell sind und nicht alle Aspektevollständig spezifiziert sind.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Es gibt auch die Möglichkeit zur weiteren Strukturierung vonAktivitätsdiagrammen:

Aktivitätsbereiche (activity partitions/swimlanes)

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

Gast Kellner

Gericht bestellen

Gericht servierenGericht verspeisen

Bestellung aufnehmen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramm mit Aktivitätsbereichen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Aktivitätsdiagramme

Weitere Elemente von Aktivitätsdiagrammen:

Pins: Parameter und Parametersätze für AktionenSenden und Empfang von SignalenKontrollstrukturen: Schleifenknoten, BedingungsknotenUnterbrechungsbereiche (interruptible activity region) zurBehandlung von Ausnahmen (Exceptions)Expansionsbereiche (expansion region) zur wiederholtenAusführung von Aktivitäten für mehrere übergebene Objekte

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Zustandsdiagramme (state diagrams, auch state machine diagramsoder statecharts) genannt, sind eng verwandt mit den bereitseingeführten Zustandsübergangsdiagrammen.

Sie werden eingesetzt, wenn bei der Modellierung der Fokus auf dieZustände und Zustandsübergänge des Systems gelegt werden soll.

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Anwendungen sind die Modellierung von:

Protokolle, Komponenten verteilter SystemenBenutzeroberflächenEingebettete Systemen. . .

Zustandsdiagramme wurden 1987 von David Harel unter demNamen Statecharts eingeführt. Harel modellierte damit vollständigseine Armbanduhr.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Eigenschaften von Zustandsdiagrammen:

Zustände und Zustandsübergänge (Transitionen)Hierarchisch aufgebaute Zustände“Parallelschalten” von Zustandsdiagrammen durch RegionenHistorien, um sich früher besuchte Zustände zu merken und indiese zurückzukehren

Viele dieser Eigenschaften dienen dazu, unübersichtlicheZustandsdiagramme mit vielen Zuständen und Übergängenübersichtlicher und kompakter zu gestalten.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Wir lernen Zustandsdiagramme am Beispiel der Modellierung einerArmbanduhr kennen (stark vereinfacht gegenüber HarelsArmbanduhr).

Die Armbanduhr hat zwei Knöpfe (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 Alarmzuständen mit Hilfe von Knopf b wechseln.

ba 9:21 ba baAlarm Alarm

a

a

a

b

b

on off

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Wir beginnen zunächst mit der Modellierung der Minutenanzeige.

10 . . .

. . .

after(1 min) after(1 min)

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

2

575859

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

ZustandEin Zustand eines Zustandsdiagramms wird durch ein Rechteck mitabgerundeten Ecken dargestellt.

0

StartzustandDer Startzustand wird durch einen schwarzen ausgefüllten Kreisgekennzeichnet (ähnlich wie bei Aktivitätsdiagrammen).

0

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

EndzustandEndzustände werden wie das Aktivitätsende inAktivitätsdiagrammen gekennzeichnet.

A

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Transition (= Zustandsübergang)

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

Ereignis: Signal oder Nachricht, die die entsprechendeTransition auslösen.

10after(1 min)

Bedingung: Überwachungsbedingung (auch Guard genannt).Effekt: Effekt, der durch die Transition ausgelöst wird .

Im obigen Beispiel (Minutenanzeige) gibt es nur Ereignisse(sogennante time events), die die Zeitspanne spezifizieren, nach derdie Transition ausgelöst wird. Es gibt aber auch andere Ereignisse,beispielsweise Methodenaufrufe.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Neben den Effekten, die durch Transitionen ausgelöst werden,können in einem Zustand weitere Aktionen bei Eintritt, Verweilenoder Verlassen ausgelöst 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 ausgelöst.do: der Effekt ist eine Aktion, die nach Betreten des Zustandsausgeführt wird und die spätestens dann endet, wenn derZustand verlassen wirdexit: der entsprechende Effekt wird bei Verlassen des Zustandsausgelöst.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

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

0

entry/beep

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

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

RegionRegionen unterteilen ein Zustandsdiagramm in zwei Bereiche, dieparallel zueinander ausgeführt werden.

Dies erlaubt uns, insgesamt nur 24+ 60 = 84 Zustände, anstatt24 · 60 = 1440 Zustände zu zeichnen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

So sieht das modifizierte Zustandsdiagramm für 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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Bemerkungen:

Es gibt jetzt zwei Startzustände, die beide zu Beginn betretenwerden (Uhrzeit: 0:00).Da Stunden- und Minutenanzeige nicht vollkommenunabhängig voneinander arbeiten, ist eine Synchronisationeingebaut. Die Transition in den Minutenzustand 0 löst einenEffekt h (h für “hour”) aus.Dieser Effekt ist dann ein Trigger, der das entsprechendeEreignis triggert und den Übergang in den nächstenStundenzustand verursacht. Die beiden Transitionen werdensynchronisiert und finden gleichzeitig statt.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Bemerkungen:

Transitionen verbrauchen im allgemeinen keine Zeit (imGegensatz zum Aufenthalt in Zuständen).Neben Triggern, die direkt ausgeführt werden, gibt es auchEvents, die zunächst in einer Event Queue (= Warteschlange)abgelegt werden. Diese Warteschlange wird schrittweiseabgearbeitet, wobei die entsprechenden Ereignisse ausgelöstwerden. Damit kann asynchrone Kommunikation beschriebenwerden.Effekte können direkte Kommunikation bedeuten(beispielsweise Methodenaufrufe), können aber auchsogenannte Broadcasts (= Rundrufe) sein. Diese sind überallim Zustandsdiagramm sichtbar. (Die ursprünglicheStatecharts-Semantik von Harel verwendete nur Broadcasts.)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Nun soll noch die Möglichkeit hinzugefügt werden, das Alarmsignalzur vollen Stunden aus- und wieder einzuschalten. Dazu führen wirweitere Zustände (Alarm on, off) ein, in die man durch Drückenvon a gelangt.

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

Dafür bieten Zustandsdiagramme folgende Lösung:

Zusammengesetzte ZuständeZusammengesetzte Zustände dienen dazu, um Hierarchien vonZuständen zu modellieren und damit ein- und ausgehendeTransitionen zusammenzufassen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Um eine gewisse Flexibilität bei der Modellierung zu haben, werdenverschiedene Eintritts- und Austrittsmöglichkeiten bereitgestellt.

Eintrittsmöglichkeiten in einen Zustand (graphisch)

C

B

D E

A H H∗

Eintritt über dietiefe Historie

Eintritt über die

flache Historie

EintrittExpliziter

Standard-Eintritt

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Eintrittsmöglichkeiten:

Standard-Eintritt: dabei wird der Startzustand deszusammengesetzten Zustands angesprungen.(Forsetzung bei B , was schließlich zu einer Fortsetzung bei Dführt)Expliziter Eintritt: es wird bei dem explizit angegebenenFolgezustand fortgesetzt.(Fortsetzung bei C .)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Eintrittsmöglichkeiten (Fortsetzung):

Eintritt über die tiefe Historie: Wurde der zusammengesetzteZustand bereits früher besucht, so wird der letzte vor demVerlassen des Zustands aktive Unterzustand dertiefstmöglichen 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.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Eintrittsmöglichkeiten (Fortsetzung):

Eintritt über die flache Historie: Wurde der zusammengesetzteZustand bereits früher 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 führt.)

Außerdem: Eintritt über einen Eintrittspunkt (wird hier nichtbehandelt).

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

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

Eintrittsmöglichkeiten bei Regionen (graphisch)

A B

C D

Standard-Eintritt

ExpliziterEintritt

Eintrittüber Gabelung

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Eintrittsmöglichkeiten bei Regionen:

Standard-Eintritt: dabei werden die jeweiligen Startzuständeder 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 über Gabelung: ähnlich wie bei Aktivitätsdiagrammenwird eine Gabelung eingesetzt, um die beiden anzuspringendenZustände in den Regionen zu kennzeichnen.(Fortsetzung bei B und D.)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Austrittsmöglichkeiten aus einem Zustand (graphisch)

C

B

D E

A

Austritt aus eineminneren Zustand

Austritt auseinem zusammengesetzten Zustand

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Austrittsmöglichkeiten:

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).

Außerdem: Austritt über einen Austrittspunkt, über einenEndzustand oder Terminator (wird hier nicht behandelt).

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beispiel zu Austrittsmöglichkeiten:

B C

A

D

E

a

entspricht B C

A

D

E

a aa

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Auch für Austrittsmöglichkeiten müssen wir untersuchen, was sichbei Regionen ändert.

Austrittsmöglichkeiten bei Regionen (graphisch)

A B

C D

Austritt aus einemzusammengesetzten

Zustand

Austritt aus eineminneren Zustand

Austrittüber Vereinigung

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Austrittsmöglichkeiten bei Regionen:

Austritt aus einem zusammengesetzten Zustand: dabei wirdder zusammengesetzte Zustand verlassen, egal in welchenUnterzuständen 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 beliebigenZuständen befinden.(Austritt nur, wenn man sich in der ersten Region in Bbefindet.)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beschreibung der Austrittsmöglichkeiten bei Regionen(Fortsetzung):

Austritt über Vereinigung: ähnlich wie beiAktivitätsdiagrammen wird eine Vereinigung eingesetzt, ummehrere Regionen zusammenzuführen. Der zusammengesetzteZustand kann nur verlassen werden, wenn man sich in denZuständen befindet, von denen Pfeile in die Vereinigunghineinführen.(Austritt nur, wenn man sich in B und D befindet.)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Wieder zurück zur Arbanduhr. Es gibt ein weiteres Problem: wennman aus der Alarmeinstellung zurückkehrt, ist die Zeit auf 0:00zurückgesetzt!

Lösung: Verwendung des Eintritts über die (flache) Historie.Da man im Fall der Zeitanzeige in zwei Regionen gleichzeitigeintreten muss, verwenden wir eine Gabelung.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Weiteres Problem: wenn man längere 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 müsste deshalb entsprechend aktualisiert werden.Dieses Problem wird hier nicht gelöst.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Was fehlt noch?

Beim Wechseln zwischen den Alarm-Zuständen (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.

Außerdem betreten wir den Zustand Alarm nun nicht mehr über dieflache Historie, sondern fragen mit Hilfe von Bedingungen ab, wieal belegt ist. (Damit ist die Markierung des Anfangszustandseigentlich überflüssig geworden.)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

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

In diesem Fall will man den zusammengesetzten Zustand nicht überdie flache oder tiefe Historie betreten! Es wird also hier tatsächlichdie Zeit auf 0:00 zurückgesetzt.Außerdem setzen wir das Flag al beim Einsetzen der Batteriezurück auf den Anfangswert 1.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Ein großer Teil der Modellierungsmöglichkeiten vonZustandsautomaten dient dazu, Zustandsdiagramme kompakt undübersichtlich zu notieren.

Oft kann man Zustandsdiagramme “flachklopfen” undzusammengesetzte Zustände auflösen, wodurch man äquivalenteZustandsdiagramme erhält, die die gleichen Übergänge erlauben.Dabei erhält man jedoch im allgemeinen mehr Zustände und/oderTransitionen.

Wir sehen uns einige Beispiele an . . .

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beispiel 1: Wandeln Sie folgendes Zustandsdiagramm in ein“flaches” Zustandsdiagramm um:

A

B

C

D

a

b

e

c df

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Lösung zu Beispiel 1:

A

B

C

D

e

c d

a

b

f

e

Idee: die Transition, die von dem zusammengesetzten Zustandwegführt, durch mehrere Transitionen ersetzen, die von den innerenZuständen ausgehen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beispiel 2: Wandeln Sie folgendes Zustandsdiagramm in ein“flaches” Zustandsdiagramm um:

A B C D

E F

a b c

e

gG

h

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Lösung 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.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Beispiel 3: Wandeln Sie folgendes Zustandsdiagramm in ein“flaches” Zustandsdiagramm um:

H

A

B

C

Db

e

c da f

Xx

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Lösung 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 äußeren Zuständen muss man sich merken, auswelchem Zustand man den zusammengesetzten Zustand verlassenhat. Dies führt zu zusätzlichen Zuständen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

Weitere Elemente von Zustandsdiagrammen:

Unterscheidung zwischen verschiedenen Arten von Ereignissen:call event, signal event, change event, time event, any receiveeventVerzögern und Ignorieren von EreignissenEntscheidungen und KreuzungenRahmen und Wiederverwendung von Zustandsdiagrammen

Außerdem: Generalisierung und Spezialisierung vonZustandsdiagrammen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Zustandsdiagramme

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

UML-Zustandsdiagramme =Zustandsübergangsdiagramme + Tiefe + Orthogonalität(+ Broadcast-Kommunikation)

Dabei steht “Orthogonalität” für die Parallelität, die durchRegionen erreicht werden kann.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

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

Sie dienen dazu, um Kommunikation und Interaktion zwischenmehreren Kommunikationspartnern zu modellieren und beruhen aufdem Basiskonzept der Interaktion:

InteraktionEine Interaktion ist das Zusammenspiel von mehrerenKommunikationspartnern.Typische Beispiele: Versenden von Nachrichten, Datenaustausch,Methodenaufruf

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

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

Im Gegensatz zu Aktivitätsdiagrammen oder Zustandsdiagrammenbeschreiben sie im allgemeinen nicht alle Abläufe eines Systems,sondern nur einen oder mehrere mögliche Abläufe.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Beispiel Restaurant

Petra:Gast

Robert:Kellner

Ina:Köchin

Mustafa:Kassierer

Menü bringen

bestellenbestellen

Getränk servieren

Essen abholenEssen servieren

bezahlen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

KommunikationspartnerDie Kommunikationspartner in einem Sequenzdiagramm werdenähnlich wie in Objektdiagrammen als Rechtecke notiert.Manchmal werden die Rechtecke auch weggelassen. MenschlichePartner werden auch durch ein Strichmännchen symbolisiert:

Von jedem Kommunikationspartner führt eine gestrichelteLebenslinie nach unten.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

AusführungsbalkenAktivitäten eines Kommunikationspartners werden durchsogenannte Ausführungsbalken dargestellt.

Parallele Tätigkeiten eines Kommunikationspartners werden dabeidurch übereinander liegende Ausführungsbalken beschrieben (sieherechts oben).Während die Balken aktive Zeit anzeigen, symbolisieren diegestrichelten Linien passive Zeit.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

NachrichtenDie Nachrichten beschreiben die Kommunikationen bzw.Interaktionen der Kommunikationspartner und werden durch Pfeiledargestellt. Eine Nachricht hat einen Sender und einen Empfänger.Die Stellen, an denen die Pfeile auf den Lebenslinien auftreffen,nennt man auch Sendeereignis und Empfangsereignis.

EmpfängerSender

Name der NachrichtEmpfangs-ereignis

Sende-ereignis

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Fallstudie: Fahrkartenautomat - Klassendiagramm

FA-Controller

+F_Stufe: char

+F_Preis: float

+Einnahme: float

+F_anfordern(Stufe:char)

+Preis_ber(Stufe:char): float

+bezahlt(Einnahme:float)

FA-Display

+Betrag: float

+Text: String

+Betrag_anz(Preis:float)

+Text_anz(Text:string)

FA-Geldannahme

+Einnahme: float

+Annahme_öffnen()

+Annahme schließen()

+Einwurf(Betrag:float)

+Restgeld(Betrag:float)

FA-Drucker

+F-Stufe: char

+F-Preis: float

+F_drucken(S:char,P:float)

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Fallstudie: Fahrkartenautomat - Sequenzdiagramm

Kunde

F_anfordernPreis_ber

Betrag_anz

Annahme_öffnen

Einwurf

bezahlt

Betrag_anz

Einwurf

bezahlt

Betrag_anz

Text_anz

Annahme_schließen

Restgeld

F_drucken

C: FA-Controller G: FA_Geldannahme D: FA-DruckerA: FA-Display

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Synchrone und asynchrone NachrichtenBei synchroner Kommunikation warten Sender und Empfängeraufeinander. Der Sender macht erst dann weiter, wenn er weiß, dassder Empfänger die Nachricht erhalten hat. Sie wird durch eineschwarze ausgefüllte Pfeilspitze dargestellt.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Synchrone und asynchrone Nachrichten (Fortsetzung)

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

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

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

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

Das Überholen der Nachrichten (oben links) ist nur dann nichtmöglich, wenn man explizit einen FIFO-Kanal fordert.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Was jedoch nicht möglich ist, ist eine Nachricht, die “rückwärts” inder Zeit läuft und vor dem Senden ankommt.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Es ist jedoch möglich, eine Nachricht an sich selbst zu schicken.

:Gast

Gericht aussuchen

Bei einer synchronen Nachricht sollte man dabei paralleleAusführungsbalken verwenden, da das Sende- und Empfangsereignisparallel stattfinden müssen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Nachrichten, die als Antworten auf frühere Nachrichten gedachtsind, werden durch gestrichelte Pfeile notiert. Dabei sollte derName der ursprünglichen Nachricht wiederholt werden.

Nachfrage

Antwort auf Nachfrage

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Wir machen uns nun Gedanken über die Reihenfolge der Ereignissein einem Sequenzdiagramm. Dazu ist es nützlich sich klarzumachen,was eine (partielle) Ordnung ist.

Partielle OrdnungGegen sei eine Menge X . Eine partielle Ordnung auf X ist eineRelation R ⊆ X × X mit folgenden Eigenschaften:

Reflexivität: für jedes x ∈ X gilt (x , x) ∈ RTransitivität: aus (x1, x2) ∈ R und (x2, x3) ∈ R fürx1, x2, x3 ∈ X folgt (x1, x3) ∈ R .Antisymmetrie: aus (x1, x2) ∈ R und (x2, x1) ∈ R fürx1, x2 ∈ X folgt x1 = x2.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

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.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Totale OrdnungEine partielle Ordnung ≤ heißt total, wenn für 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 für eine partielle Ordnung, die nicht totalist, ist die Inklusionsordnung ⊆ auf Mengen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Reflexiv-transitive HülleFür eine gegebene Relation R ⊆ E × E beschreiben wir derenreflexiv-transitive Hülle R∗. Man erhält sie aus R , indem man

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

Die reflexiv-transitiv Hülle 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 enthält.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Beispiel:

Die reflexiv-transitive Hülle 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)}

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

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

In den Sequenzdiagrammen, wie wir sie bisher kennengelernt haben,sind die Ereignisse immer total geordnet, nach folgendem Schema:

(Sendeereignis der Nachricht N) < (Empfangsereignis von N)Die restlichen Ereignisse sind entsprechend dem zeitlichenVerlauf geordnet.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Petra:Gast

Robert:Kellner

Ina:Köchin

Mustafa:Kassierer

Menü bringen

bestellenbestellen

Getränk servieren

Essen abholenEssen servieren

bezahlen

R5

P1

P2

P3

P4

P5

R1

R2R3

R4

R6

I1

I2

M1

R1 < P1 < P2 <R2 < R3 < I1 < R4< P3 < I2 < R5 <R6 < P4 < P5 <M1

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

In einem einfachen Sequenzdiagramm (Erweiterungen werden nochbesprochen) werden daher die Ereignisse immer in eine Reihenfolgegebracht. Die Ordnung ist daher total. Im folgenden Diagramm giltbeispielsweise:

A1 < B1 < C1 < D1

A1

A B C D

B1

C1 D1

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Nicht so günstig sind Diagramme, aus denen die Reihenfolge vonNachrichten nicht klar hervorgeht:

A BA1

A B C D

B1 C1 D1

Insbesondere ist die Darstellung echter Parallelität inSequenzdiagrammen nicht vorgesehen.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Äquivalenz von SequenzdiagrammenZwei Sequenzdiagramme sind äquivalent, wenn sie die gleichenEreignisse enthalten und die Reihenfolge der Ereignisse identisch ist.Dabei können die Diagramme durchaus verschieden gezeichnet sein(andere Reihenfolge der Kommunikationspartner, verschiedeneAbstände zwischen den Ereignissen, . . . ).

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Bisher haben wir gesehen, wie man mit einem Sequenzdiagrammeinen möglichen Ablauf beschreiben kann. In manchen Fällenmöchte man jedoch mehrere (vielleicht sogar alle) Abläufebeschreiben.

Dazu gibt es die Möglichkeit, kombinierte Fragmente zu verwenden,bei denen mehrere (Interaktions-)Operanden (=Teil-Sequenzdiagramme) mit Hilfe von Interaktions-Operatorenzusammengesetzt werden.

Wir betrachten im folgenden einige dieser Interaktions-Operatoren.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Interaktionsoperator par (Parallelität)

Hier sind die Operanden in beliebiger Reihenfolge ausführbar. DieReihenfolge der Ereignisse in den Operanden muss aber gewahrtwerden, ansonsten gibt es keine Bedingungen.

:X :Y

par

X1 Y1

X2 Y2

X3 Y3

Dabei wird der Operator parlinks oben in der Eckeangegeben.

Eine gestrichelte waagrechteLinie trennt die verschiedenenOperanden.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Nachrichten, die von einem Operanden in einen anderen laufen,sind nicht zugelassen.

:X :Y

par

X1

Y1

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Ordnung auf den Ereignissen:X1 < Y1 < Y2 < X2 (Operand 1)X3 < Y3 (Operand 2)

Ansonsten gibt es keine weiteren Einschränkungen

Dieses Sequenzdiagramm beschreibt insgesamt fünfzehn Abläufe,beispielsweise:

X1, Y1, X3, Y3, Y2, X2X3, X1, Y1, Y2, X2, Y3. . .

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Weitere Bemerkungen: um die Ereignis-Ordnung innerhalb einespar-Operators zu bestimmen . . .

verwendet man die partiellen Ordnungen der einzelnenOperanden (≤1, ≤2)und vereinigt diese. Die Vereinigung ≤1 ∪ ≤2 ist ebenfalls einepartielle Ordnung und beschreibt alle möglichen Reihenfolgenvon Ereignissen.

Jede Ereignisreihenfolge, bei der ein Ereignis X immer vor einemEreignis Y auftritt, falls X<Y gilt, ist eine mögliche Reihenfolge.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Interaktionsoperator seq (schwache Sequenz)

Die Reihenfolge der Ereignisse in den Operanden muss wiedergewahrt werden, außerdem ist die Reihenfolge der Ereignisse aufden Lebenslinien (von oben nach unten) festgelegt.

:X

X1

:Y :Z :W

seq

Y1

Z1 Z2

Y2X2

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Ordnung auf den Ereignissen:X1 < Y1 < Z1 < Z2 (Operand 1)X2 < Y2 (Operand 2)X1 < X2 (Lebenslinie von X)Y1 < Y2 (Lebenslinie von Y)

Dieses Sequenzdiagramm beschreibt neun verschiedene Abläufe,beispielsweise:

X1, X2, Y1, Z1, Z2, Y2X1, Y1, X2, Y2, Z1, Z2. . .

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Weitere Bemerkungen: um die Ereignis-Ordnung innerhalb einesseq-Operators zu bestimmen . . .

verwendet man die partiellen Ordnungen der einzelnenOperanden (≤1, ≤2),außerdem die partiellen Ordnungen der einzelnen Lebenslinien(≤X , ≤Y , . . . ),vereinigt diese und bestimmt die reflexiv-transitive Hülle.Dabei entsteht eine partielle Ordnung, die alle möglichenReihenfolgen von Ereignissen beschreibt.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Bei Interaktions-Operanden ist es außerdem möglich, zusätzlicheOrdnungsbeziehungen einzuführe, die ansonsten nicht abgedecktsind. (Durch gestrichelte Linien mit Pfeil in der Mitte.)

:X

X1

:Y :Z :W

Y1

Z1 Z2

Y2

par

X2

Die neue partielle Ordnung kann man hier dadurch bestimmen,indem man die neuen Paare hinzufügt und die reflexiv-transitiveHülle der Gesamtrelation bildet.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Weitere Interaktions-Operatoren (Liste ist nicht vollständig):

strict (Strikte Sequenz): Die Reihenfolge der Ereignisse wirdvon oben nach unten strikt eingehalten (wie in einem einzelnenOperanden).alt (Alternative): entsprechend einer If-Then-Else-Anweisung(mit Bedingungen)neg (Negation): beschreibt eine ungültigeNachrichtenreihenfolgeloop (Schleife): beschreibt die Wiederholung eines Operanden

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Beispiel: wir modellieren ein Protokoll, bei dem einClient-Rechner S einen E-Mail an einen anderen Client R verschickt.

Weitere Beteiligte sind der Mail-Server von S, der Mail-Servervon R und der DNS-Server, der benötigt wird, um Mail-Adressen indie IP-Adressen des entsprechenden Servers umzuwandeln (DNS =domain name system).

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

par Mail ausliefern

Bestätigung Ausliefern

Bestätigung Einliefern

IP-Adresse von E2

Mail einliefernFrage nach IP-Adresse

Kontaktaufnahme

Verifiziere, ob

:ClientS1

:ServerS2

:DNS :ServerE2

:ClientE1

Name von S2 korrekt

Antwort Verifikation

Bestätigung der Kontaktaufnahme

Verschicken der Mail

Bestätigen der Mail

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Bemerkung: dieses Sequenzdiagramm ist an den Ablauf imSMTP-Protokoll angelehnt (SMTP = send mail transportprotocol), ist jedoch erheblich vereinfacht.

Sequenzdiagrammen zu vielen TCP/IP-Netzwerkprotokollen findetman unter:

http://www.eventhelix.com/Realtimemantra/Networking/

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Es gibt noch einige weitere Arten von Nachrichten:

Gefundene und verlorene NachrichtenBei gefundenen und verlorenen Nachrichten werden das Sende-bzw. das Empfangsereignis nicht explizit modelliert. DieNachrichten tauchen quasi aus der Umgebung auf undverschwinden wieder dorthin.

Solche Nachrichtenwerden benötigt, wenndie entsprechendenKommunikationspart-ner nicht mitmodelliertwerden.

:Fenster

schließen

Gefundene Nachricht

Lärm

Ruhe!

Verlorene Nachricht

:Person

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Sequenzdiagramme

Erzeugung und Dekonstruktion von ObjektenAußerdem kann es passieren, dass Objekte nicht während desganzen Ablaufs zur Verfügung stehen. Sie können während desAblaufs dynamisch erzeugt und wieder zerstört werden.

Dies erfolgt zumeist durchsogenannte Erzeugungs- undDekonstruktionsnachrichtenund wird folgendermaßendargetellt:

:Zentrale

:Filialeeröffnen

Erzeugungsnachricht

Dekonstruktionsnachricht

schließen

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Kommunikationsdiagramme

Kommunikationsdiagramme enthalten dieselbe Information wieSequenzdiagramme, werden jedoch anders dargestellt.

Während bei Sequenzdiagrammen der Fokus eher auf demzeitlichen Ablauf liegt, heben Kommunikationsdiagramme eher dieKommunikationsbeziehungen der Teilnehmer hervor.

Kommunikationsdiagramme gehören – genau wieSequenzdiagramme – zur Klasse der Interaktionsdiagramme.

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Kommunikationsdiagramme

Das Sequenzdiagramm Restaurantbesuch Diagramm wirdfolgendermaßen als Kommunikationsdiagramm dargestellt:

Robert:Kellner

Ina:Köchin

3: bestellen5: Essen abholen

Petra:Gast

Mustafa:Kassierer

7: bezahlen

1: Menü bringen2: bestellen

4: Getränk servieren6: Essen servieren

ModellierungUnified Modeling Language (UML)Verhaltensdiagramme

Kommunikationsdiagramme

Dabei werden die Kommunikationspartner wie bisher durchRechtecke oder Strichmännchen dargestellt. Es wird jedoch keinzeitlicher Ablauf mehr dargestellt.

Die Interaktionen bzw. Nachrichten werden durch Linien notiert, andenen die Namen der Nachrichten und die Senderichtung (→)stehen.

Die Nummerierung der Nachrichten (1,2,3,. . . ) gibt die Reihenfolgean. Durch Buchstaben hinter den Nummern (2a,2b,. . . ) beschreibtman parallele Nachrichten, die in beliebiger Reihenfolge angeordnetsein können.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

Wir schließen die Vorlesung mit einem kurzen Überblick über dienoch fehlenden Typen von UML-Diagrammen ab.

Zuletzt gibt es dann noch ein paar Abschlussbemerkungen.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

UML-Diagramme Liste

Verhaltens-diagramme

Interaktions-diagramme

Objekt-diagramm

Kompositions-strukturdiagramm

diagrammeStruktur-

Klassen-

diagrammKomponenten-

diagramm

Verteilungs-diagramm

Paket-diagramm

Diagrammeder UML

diagramm diagramm

diagramm

Aktivitäts- Anwendungsfall-

Zustands-

diagrammdiagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-/Timing-Diagramm

Kommunikations-Sequenz-

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

UML-Diagramme (blau: bereits behandelte Diagramme)

Objekt-diagramm

Verhaltens-diagramme

Interaktions-diagrammeKompositions-

strukturdiagramm

Struktur-

Klassen-

diagrammKomponenten-

diagramm

Verteilungs-diagramm

Paket-diagramm

Diagrammeder UML

diagramm diagramm

diagramm

Aktivitäts- Anwendungsfall-

Zustands-

diagrammdiagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-/Timing-Diagramm

Kommunikations-Sequenz-

diagramme

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

Wir beginnen zunächst mit den beiden noch fehlenden Arten vonInteraktionsdiagrammen:

Timing-Diagramme bzw. ZeitverlaufsdiagrammeInteraktionsübersichtsdiagramme

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Timing-Diagramme

Timing-Diagramme sind in der Elektrotechnik weit verbreitet undzeigen an, zu welchem Zeitpunkt welcher Kommunikationspartnerwelchen Zustand einnimmt.

Dabei wird von links nach rechts (horizontal) die Zeit aufgetragenund von oben nach unten werden die Kommunikationspartner undderen Zustände aufgetragen.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Timing-Diagramme

Beispiel: Ampelschaltung

gruen

rot

Sekunden0 10 20 30

gruen

gelbrot

gelb

rot:Autoampel

:Fussgaeng

eram

pel

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Interaktionsübersichtsdiagramme

Interaktionsübersichtsdiagramme sind im wesentlichenAktivitätsdiagramme, die – anstatt der Aktionen – hierarchischweitere Interaktionsdiagramme (Sequenzdiagramme,Kommunikationsdiagramme, Timing-Diagramme) enthalten können.

Sie werden eingesetzt, wenn es eine größere Menge verschiedenerArten von Aktionen gibt, über die man sonst nur schwer denÜberblick behalten kann.

Als Beispiel betrachten wir ein Interaktionsübersichtsdiagramm, dasden Ablauf eines Freistoßes in einem Fussballspiel modelliert.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Interaktionsübersichtsdiagramme

ref

:Torwart

sd Linkssprung

nach linksspringen

positionieren

sd Fussball positionieren

:Fussball[ruhend]

0 1 2 3sec

fliegendruhend

positionierenMauer

:Schuetze

Freistossfreigeben

0..3 sec

schiessendlaufendstehend

sd Freistoss ausfuehren

ref

springen

sd Rechtssprung

nach rechts

sd Stehenbleiben

stehenbleiben

[Fussball gerade]

[Fussball nach rechts][Fussball nach links]

:Fussball

sd Fussball fangen

:Torwart[fliegend]

fangen

:Torwart :Torwart

:Fussball

:Schuetze

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Interaktionsübersichtsdiagramme

Bemerkungen:

Interaktionsreferenzen (Schlüsselwort ref) werden verwendet,um an anderer Stelle definierte Interaktionsdiagrammewiederzuverwenden.Anstatt der Aktionen wie in Aktivitätsdiagrammen werdenganze Interaktionsdiagramme verwendet, die alle sd alsDiagrammtyp für Interaktionsdiagramme erhalten.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

In frühen Stadien der Entwicklung und bei der Kommunikation mitdem Auftraggeber spielen auch Anwendungsfalldiagramme (engl.use case diagrams) eine grosse Rolle.

Anwendungsfalldiagramme modellieren die Funktionalität desSystems

auf einem hohen Abstraktionsniveau;aus der Black-Box-Sicht des Anwenders (d.h., nur das vonaußen Sichtbare soll beschrieben werden, nicht die interneRealisierung);durch Spezifikation der Schnittstellen.

Die Anwender bzw. Nutzer tauchen als sogenannte Akteure in denDiagrammen auf.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

Beispiel: Restaurant

Gericht bestellen

Gast

Gericht verspeisen

Rechnung bezahlen

Mit Kreditkartebezahlen

Kreditkarte prüfen«include»

1

1

1..*

1..*

Kellner

Restaurant

Kreditkarten-gesellschaft

«actor»

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

Anwendungsfalldiagramme bestehen aus folgenden Komponenten:

SystemgrenzeDie Systemgrenze ist ein Rechteck, das beschreibt, was sichaußerhalb und innerhalb des zu erstellenden Systems befindet.

Restaurant

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

AkteurEin Akteur ist ein Typ oder eine Rolle, die ein externer Benutzeroder ein externes System während der Interaktion mit dem Systemeinnimmt. Menschliche Akteur werden durch Strichmännchensymbolisiert, andere Akteure durch ein Rechteck, das mit demSchlüsselwort «actor» gekennzeichnet ist

Gast

Kreditkarten-gesellschaft

«actor»

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

AnwendungsfallEin Anwendungsfall ist eine Menge von Aktionen, die von demSystem bereitgestellt werden und die einen Nutzen für einen odermehrere Akteure bringen. (D.h., es handelt sich dabei um eine Art“Service” des Systems.) Ein Anwendungsfall wird durch eine Ellipsedargestellt.

Mit Kreditkartebezahlen

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

AssoziationWie bei Klassendiagrammen gibt es Assoziationen, vor allemzwischen Akteuren und Anwendungsfällen (welcher Akteur kannwelchen Anwendungsfall nutzen?).Assoziationen dürfen die üblichen Beschriftungen besitzen(Multiplizitäten, etc.).

Gericht bestellen

Restaurant

1 1..*

Gast

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

Generalisierung/Spezialisierung

Anwendungsfälle können andere Anwendungsfälle spezialisieren,d.h., sie können von ihnen erben. Dabei werden – wie bei Klassen –auch alle Assoziationen geerbt.

Mit Kreditkartebezahlen

Rechnung bezahlen

Auch Spezialisierungsbeziehungen zwischen Akteuren sind möglich.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

Include-BeziehungBei einer Include-Beziehung wird modelliert, dass einAnwendungsfall die Funktionalität eines anderen Anwendungsfallesauf jeden Fall nutzt. D.h., der zweite Anwendungsfall wird immerals eine Art “Unterprozedur” aufgerufen.

Mit Kreditkartebezahlen

Kreditkarte prüfen«include»

Es gibt auch sogenannte Extend-Beziehungen, bei denen einAnwendungsfall nur unter bestimmten Bedingungen in einenanderen Anwendungsfall eingebunden wird.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Anwendungsfalldiagramme

Bemerkungen:

Anwendungsfalldiagramme sollten nicht zu viele Detailsenthalten.Sie sind ein einfaches Mittel, um Anwenderwünsche zudiskutieren und sollten nur eine grobe Sicht auf dieFunktionalität des Systems darstellen.Bei Bedarf müssen bestimmte Anwendungsfälle dann nochtextuell oder mit Hilfe anderer UML-Diagramme genauerbeschrieben werden.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Strukturierte, textuelle Beschreibung einesAnwendungsfalls

Af.-Nr. Name des Anwendungsfalles

Vorbedingungen:Nachbedingungen:Nicht-funktionale Anforderungen:Beschreibung: ..Variationen:Regeln:Services:Ansprechpartner:Anmerkungen / offene Fragen:Dialogbeispiele oder - muster:Diagramme:

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Beispiel: Formular zur Beschreibung einesAnwendungsfalls

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Formular zur Beschreibung eines Anwendungsfalls (2)

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Überblick über weitere UML-Diagramme

Wir sehen uns nun noch (ganz kurz) die fehlenden vier Typen vonStrukturdiagrammen an. UML-Übersicht

KompositionsstrukturdiagrammePaketdiagrammeVerteilungsdiagrammeKomponentendiagramme

Im weitesten Sinne dienen sie alle dazu die (übergeordnete)Struktur bzw. Architektur eines Systems darzustellen.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Kompositionsstrukturdiagramme

Kompositionsstrukturdiagramme (engl. composite structurediagrams) beschreiben die interne Struktur von Komponenten (z.B.Klassen) in einer White-Box-Darstellung. Instanzen von durchKomposition verbundenen Klassen werden dabei als sogenannteParts innerhalb der Klasse dargestellt.

:Fernsehgeraet

Antenneneingang

Antennenkabel

SatAusgang

:SatReceiver

SatKabel

:SatAntenne

SatEmpfangsAnlage

Part

Part

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Paketdiagramme

Ein großes Softwaresystem muss in Pakete bzw. Module gegliedertwerden. Paketdiagramme (engl. package diagrams) beschreiben diestatische Struktur eines großen Systems durch Zusammenfassenvon Klassen in Paketen.

Kunde

kundenverwaltung personalverwaltung

Angestellter

kontenverwaltung

Konto

Girokonto Sparkonto

bank

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Verteilungsdiagramme

Verteilungsdiagramme (engl. deployment diagrams) beschreiben dieHardware-Komponenten, die in einem System benutzt werden undwie diese in Beziehung stehen.

Sie können auch konkrete physische Informationseinheiten (Dateien,etc.) enthalten, die als Artefakte bezeichnet werden.

:PC0..50

:Laptop0..10

:PC0..50Host «LAN»

«Internet»

«WLAN»

1:Mehrprozessorsystem

1

1:DBClient

«deploy»

«deploy»

«deploy» «artifact»

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Komponentendiagramme

Komponentendiagramme (engl. component diagrams) beschreibenim Gegensatz dazu die Software-Architektur eines Systems. Esbeantwortet die Frage, wie Klassen zur Laufzeit zu größerenKomponenten zusammengefasst werden und welche Schnittstellenangeboten und genutzt werden.

«component»

MailEingang

«component»

MailAusgang

«component»

MailManagement

Betriebüberwachen

Mailabholen

«use»

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

UML-Vorgehensweise

a) Von den Anforderungen zu Klassendiagrammenund dann über Anwendungsfalldiagrammen zuInteraktionsdiagrammen zu Zustandsdiagrammenparallel Übergang zu OO-Design mit Hilfe vonKomponentendiagrammenAktivitätsdiagramme nahezu beliebig zurAblaufveranschaulichung

b) Von den Anforderungen zu Use Case-Diagrammenund dann Aktivitätsdiagrammen zur Detailbeschreibung vonAnwendungsfällenund dann über Klassendiagramme zu Interaktionsdiagrammenund dann zu Zustandsdiagrammenparallel Übergang zum OO-Design mit Hilfe vonKomponentendiagrammen

Beide Ansätze nur als grobe Richtlinien, nicht als Dogmen!

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Abschließende Bemerkungen

UML als semi-formale ModellierungsmethodeUML ist eine semi-formale Modellierungsmethode, d.h., nicht beijedem Sprachelement gibt es vollständige Einigkeit über dieBedeutung.Trotz dieser Kritik ist die UML ein großer Fortschritt, da sievereinheitlichte Diagramme bereitstellt, die von jedem Beteiligtenam Softwareentwicklungsprozess verstanden werden können.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Abschließende Bemerkungen

Konsistenz von ModellenBei der Beschreibung eines großen Systems durch mehrere Modelleist auch darauf zu achten, dass die Modelle untereinander konsistentsind. (Beispielsweise: Klassennamen, die in einem Sequenzdiagrammverwendet werden, tauchen auch im Klassendiagramm auf.)

Es gibt Ansätze, solche Konsistenz (halb-automatisch) zu erreichen,indem man sogenannte Modelltransformationen durchführt undverschiedene Diagramme ineinander übersetzt.

ModellierungUnified Modeling Language (UML)Überblick über weitere UML-Diagramme

Abschließende Bemerkungen

Es gibt noch viele Aspekte in der UML, die wir nicht betrachtethaben. Ein wichtiger Teil der UML ist beispielsweise die OCL(Object Constraint Language), eine formale Beschreibungssprache,in der man zusätzliche Bedingungen und Invarianten ausdrückenkann.

Weitergehende Informationen über UML gibt es in zahllosenBüchern (siehe Literaturliste) und auf den Seiten der OMG (ObjectManagement Group):

http://www.omg.org/technology/documents/formal/uml.htm

Und natürlich gibt es neben UML und Petri-Netzen noch zahlreicheandere Modellierungsmethoden!