UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von...

170
UML 2 Tutorial Net.ObjectDays 2003 Seite 1 UML 2 Tutorial: Einführung in die neue Standardmodellierungssprache Mario Jeckle Chris Rupp Jürgen Hahn Barbara Zengler

Transcript of UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von...

Page 1: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 1

UML 2 Tutorial: Einführung in die neue Standardmodellierungssprache

Mario JeckleChris RuppJürgen HahnBarbara Zengler

Page 2: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 2

Darum geht´s

UML 2Standardi-

sierungPraktischer

Einsatz

Über-sichtlichkeit

Ideen

Präzisions-steigerung

Ausführ-barkeit

Vorschläge

Roadmap Abhängig-keiten

Meta-modell

NeueDiagramme

Ver-besserte

Diagramme

Page 3: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 3

Was ist die UML?

Requirements & Use Case-Beschreibungen

Requirements:- Das System soll mit C++ realisiert werden- Bei Anfrage durch einen Kunden muss die Funktionalität sichergestellt sein

...

Deployment - Sicht

Use Case - Sicht

Prozess - Sicht

Implemen-tierungs-Sicht

Datenmodell - Sicht

logische Sicht

Wunsch des Kunden

Notation für Modell des Systemszeigt statische und dynamische AspekteNicht jede Sicht in jedem System sinnvoll

Page 4: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 4

UML ... Geschichten von den fremden Meeren der Standardisierung

OODBooch; 1992

OOSAShlear, Mellor; 1991

OMTRumbaugh, et al.; 1991

State ChartsHarel; 1987

OBABailin; 1989

OOACoad, Yourdan; 1991

OOA&DMartin, Odell; 1992

OOAD&IHenderson-Sellers,

Macrone; 1992

HOODESA; 1990

SCOOPCherry; 1990

OMLFiresmith, Henderson-

Sellers, Page-Jones; 1998

OSAEmbley; 1991

OBARubin; 1992

BONNerson; 1992

FusionColeman, et al.;

1994

Unified Modeling Language v1.0Booch, Jacobson, Rumbaugh;

1997

Unified MethodBooch, Rumbaugh; 1995

SOMAGraham; 1994

CatalysisD’Souza, Willes; 1996

MOSESHenderson-Sellers; 1994

RDDWirfs-Brock; 1990

OOSEJacobson; 1992

Vom Methodenkrieg ...

Page 5: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 5

UML ...Geschichten von den fremden Meeren der Standardisierung

OODBooch; 1992

OMTRumbaugh, et al.; 1991

Erw

eite

rung

OOSEJacobson; 1992

Unified Modeling Language 0.9, 0.91Booch, Rumbaugh, Jacobson; 1996

Unified Modeling Language 1.0UML Partners 1/1997

Unified Modeling Language 1.1UML Partners; 9/1997

OMG Unified Modeling Language 1.3UML Partners; 1999

OMG Unified Modeling Language 1.4UML Partners; 2001

OMG Unified Modeling Language 1.5UML Partners; 2003

OMG Unified Modeling Language 2.0UML 2 Partners; unveröffentlicht

OMG Unified Modeling Language 1.2UML Partners; 1998( )

Einsatzerfahrungder Sprachschöpfer

Erfahrungender Anwender

XML MetadataInterchange

Integration derObject Constraint Language

Object Management Groupübernimmt Copyright

Unified Method 0.8Booch, Rumbaugh 1995

...

Bre

itene

insa

tzSt

anda

rdis

ieru

ngVe

rein

heitl

ichu

ngFr

agm

entie

rung

Viele arbeiten für alle

Einige arbeiten für andere

Wenige arbeiten für einige

... zum Standardisierungskrieg

Page 6: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 6

UML 2... Warum eine neue Version?

Evolution- Der Markt hat sich bewegt...

- Neue Programmiersprachen (z.B. C#, Python, PHP)- Neue Anwendungsdomänen

(z.B. Serverprogrammierung, Echtzeitanwendungen)Erfahrung

- Für einige Einsatzgebiete bietet UML v1.x ...- Manchmal zu wenig Konstrukte- Manchmal zu viele- Machmal so viele, dass die sinnvolle

Auswahl schwerfälltEliminierung

- Einige Programmiersprachen verschwinden (z. B. C++)- Einige früher als modellierungsnah eingestufte Konzepte

entwickeln sich inzwischen getrennt von UML weiter(z. B. Entwicklungsprozesse, Codegenerierung)

Page 7: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 7

UML ...Ein Leiden am Second System Syndrom

Page 8: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 8

UML 2Die Ziele

Übersichtlichkeit- Weniger graphische Modellkonstrukte- Weniger Basiskonzepte- Wiederverwendung von Basiskonzepten

Präzisionssteigerung- Reformulierung des Meta-Modells- Weitestgehende OCL-Verwendung- Unveränderte Wiederverwendung von Basiskonstrukten soweit sinnvoll

möglich

Ausführbarkeit- Erweiterte Zustandsmaschinen- Stärkere Beziehungen zwischen statischen und dynamischen

Diagrammen- Integration erprobter Konzepte außerhalb der UML

Page 9: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 9

UML 2 Verrentung existierender Modellelemente

1. Durch UML-Werkzeuge nicht implementierte Sprachanteile

2. Durch OO-Methoden unberücksichtigte Sprachelemente

3. Programmiersprachen-spezifische Sprachelemente

4. Inpräzise UML-Sprachelemente

Page 10: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 10

UML 2Verrentung existierender Modellelemente

SWE 1System-Anforde-

rungsanalyse und-Entwurf

SWE 8

DV-Integration

SWE 2

DV-Anforderungs-analyse und -Entwurf

SWE 9

System-In-tegration

SWE 3

SW-Anforderungsanalyse

SWE 4

Grobentwurf

SWE 5

Feinentwurf

SWE 6

Implementierung

SWE 7

SW-Inte-gration

System-Ebene

Segment-Ebene

Komponenten-Ebene

Modul-/Datenbank-Ebene

System

Handbuch-informationen

DV-Segment

SWKE-Integration

Kompo-nenten-

Integration

Implementierungsdok.(SWKE)

SWKE

Implementierungsdok.(Komponente)

Komponente

Implementierungsdok.(Modul)

Implementierungsdok.(Datenbank)

ModulDatenbank

Konfigurations-einheits-

Ebene

SystemanforderungenSystemarchitekturSystemintegrationsplan

DV-AnforderungenDV-ArchitekturDV-Integrationsplan

SW-Anforderungen

SW-ArchitekturSchnittstellenentwurfSWKE-Integrationsplan

DatenkatalogSW-Entwurf

Abb. 2.7 Funktionsüberblick Submodell SWE

Legende:Prüf-aktivitäten(siehe QS)

1. Durch UML-Werkzeuge nicht implementierte Sprachanteile

2. Durch OO-Methoden unberücksichtigte Sprachelemente

3. Programmiersprachen-spezifische Sprachelemente

4. Inpräzise UML-Sprachelemente

Page 11: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 11

UML 2 Verrentung existierender Modellelemente

1. Durch UML-Werkzeuge nicht implementierte Sprachanteile

2. Durch OO-Methoden unberücksichtigte Sprachelemente

3. Programmiersprachen-spezifische Sprachelemente

4. Inpräzise UML-Sprachelemente

KlasseAirgend : intein : boolwichtiges : floatElement : byte

KlasseB

noch : Stringviel : shortwichtiger : float

«friend»

Page 12: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 12

UML 2 Verrentung existierender Modellelemente

Objekt1 : KlasseAirgend = 1ein = truewichtiges = 3.1Element = 42

Objekt2 : KlasseA«copy»irgend = 1ein = truewichtiges = 3.1Element = 42

«become»

1. Durch UML-Werkzeuge nicht implementierte Sprachanteile

2. Durch OO-Methoden unberücksichtigte Sprachelemente

3. Programmiersprachen-spezifische Sprachelemente

4. Inpräzise UML-Sprachelemente

Page 13: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 13

UML 2 Neu: UML Schichten

CompleteEbene 3

IntermediateEbene 2

BasicEbene 1

FoundationEbene 0

Die Idee entstammt der SQL-Standardisierung

Operationalisiert den Begriff der UML-Unterstützung

Auch weniger UML ist immer noch UML

Page 14: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 14

...

...

...

...

Use-Case Akivitätsdiagramm Sequenzdiagramm

complete

intermediate

foundation

basic

Grundlagen Use-Cases

GrundlagenSequenzen

GrundlagenAktivitäten

EinfacherAblaufplan

Parallelität

Gewichtete Kan-ten, Streaming

Anwendungsfall Ablaufdiagramm

(noch nichteingeteilt)

(noch nichteingeteilt)

(noch nichteingeteilt)

(noch nichteingeteilt)

x

x

x

x

x

x

x

x

x

x

Page 15: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 15

Struktur und Einbettung von UML 2

MOF2 Infrastructure

StatischeAnteile Dynamische

Anteile

Unified Modeling Language 2.0

DiagramInterchange

OCL

Super-structure

nutzt

überträgt

UML ist nicht mehr eine monolithische SpracheVier seperate Entwicklungsgruppen werden vier seperate Weiterentwicklungen mit starken inneren Zusammenhang erzeugen

Page 16: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 16

Struktur und Einbettung von UML 2

Verschiedene Weiterentwicklungsvorschläge:- Infrastructure: 36 Lettern of Intents (LOIs);

5 Einreichungen durch 28 Firmen- Superstructure: 37 LOIs;

5 Einreichungen durch 28 Firmen- OCL: 30 LOIs; 4 Einreichungen durch 10 Firmen- Diagram Interchange: 6 LOIs;

3 Einreichungen durch 6 Firmen

Eingereicht durch Einzelfirmen und Konsortien

Bezugnehmend auf einzelne Sprachaspekte der UML v1.x um diese neu zu erweitern; Vorschläge für vollständig neue Diagrammtypen oder die Abschaffung Existierender

Page 17: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 17

Der Weg zu UML 2

0.91.0

IntelliCorpi-LogixIBMObjecTimePlatinum TechnologyPtech TaskonReich TechnologiesSOFTEAM

MicrosoftHewlett-PackardOracleSterling SoftwareMCI SystemhouseUnisysICON ComputingRational Software

1.1/2

MCI Systemhouse

OMGEDS

1.3

Computer Associates

1.4

Sterling SoftwareICON ComputingObjecTimePlatinum Technology

AlcatelKabiraKennedy Carter

1.5

EricssonIONAMotorolaTelelogicBoldsoftAdaptiveFinancial System ArchitectsSUNGentlewareDaimlerChrylser

2.0

MicrosoftHewlett-PackardICON ComputingIntelliCorpPtech TaskonReich Technologies

Page 18: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 18

Vorschläge zur UML 2

Einige komplexe Dinge sollten einfacher werden ...

Page 19: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 19

Vorschläge zur UML 2

Manchmal sagen Bilder einfach zu wenig ...

Page 20: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 20

Vorschläge zur UML 2

Superstructure und Infrastructure:Ausgereiftester und mit breiter Unterstützung bedachter Vorschlag durch die sog. „UML2 Partners“:

- Mitglieder:Alcatel, Computer Associates, Ericsson, Hewlett-Packard, IONA, Kabira Technologies, Motorola, Oracle, Rational Software, SOFTEAM, Telelogic, and Unisys

- Unterstützer:Advanced Concepts Center, Ceira Technologies, Compuware, Commisariat à L´Energie Atomique, DaimlerChrysler, Embarcardero Technologies, Enea Business Software, France Telecom, ...

Page 21: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 21

UML 2.0 Ablaufplan

Ziel: Ein UML 2.0 Standard

Erste Einreichung ÜberarbeiteteEinreichung Annahme

Erste Einreichung ÜberarbeiteteEinreichung Annahme

Infrastructure RFP

Superstructure RFP

Sep 00 Apr 01 Jun 01 Aug 01 Okt 01 Dez 01 Feb 02

Jan 03 Apr 03 Sep 03

Page 22: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 22

UML 2.0 Standardisierungsablauf

Komplexer Annahmeprozess

Bestätigung durch dasOMG Architecture Board

Jun 03

Sep 03 ?

Okt 03 ?

Jun 04 ?

Sep 04 ?

Okt 04 ?

angenommeneSpezifikation

gültigeSpezifikation

OMGMitgliedsabstimmung

Bestätigung durch dasOMG Board of Directors

UML 2.0 FinalizationTask Force (FTF)

OMGMitgliedsabstimmung

Bestätigung durch dasOMG Board of Directors

Ab diesem Zeitpunkt sind UML 2Artikel, Bücher, Tools, ...

Wahrscheinlich zu erwarten

„offizieller“ Standard(bis Oktober 2004 änderbar)

Page 23: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 23

Diagramme der UML 2

Kommunikations-diagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-diagramm

Sequenz-diagramm

Interaktions-diagramme

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

ZustandsautomatUse-Case-Diagramm

Aktivitäts-diagramm

Verhaltens-diagramme

Diagramme derUML 2

Klassendiagramm

Kompositions-strukturdiagramm

Page 24: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 24

Wie hätten Sie´s denn gern?

Rational Unified Process Agiles VorgehenArte

XPCrystal EOS

OEP ASDLean SoftwareDevelopment Spiralmodell

V-Modell Unified Process SCRUM

Page 25: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 25

Entscheidungshilfe (1): Gibt es Vorschriften?

Es gibt Vorschriften

Was wird durch Ihre Umwelt erzwungen?- Standardkonformität erforderlich zwecks

Freigabe des Systems (TÜV it, FDA,...)?- Standard/Vorgehensmodell schreibt

gewisse Notation vor- Zertifizierbarkeit des Systems

erforderlich?

Es haben freie Wahl

Machen Sie dasBeste daraus!

Sie haben keine Wahl!Allenfalls ergänzende Informationenin anderen Notationen hinzufügen und auf Vorschriften abbilden!

Page 26: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 26

Entscheidunghilfe (2): Akzeptanz von Formalität

Leser akzeptiert keinerleiFormalismus

Prototypen jeglicher Art (Lo-fi, Hi-fi)

Leser akzeptiert Formalismus

Was wünschen/ akzeptieren dieStakeholder?

- Wie hoch ist die Motivation, sich in Dokumente des Entwicklungsprozesses zu vertiefen?

- Welche Grundausbildung haben die Betroffenen?

- Aufgeschlossenheit gegenüber neuen Notationen vorhanden?

- Starke Fixierung auf die alt bekannte Methode?

Entscheiden Sie zwischen „Lesbarkeit“, „Verständlichkeit“auf der einen Seite und „Prüfbarkeit“, „Automatisier-barkeit“ auf der anderen Seite.

Page 27: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 27

Entscheidungshilfe (3):Eignung für die Problemstellung

.... Jetzt kommt endlich die Fragen nach dem fachlichen Inhalt, den ein Modell darstellt

Page 28: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 28

Diagramme der UML und ihre Anwendung I

Diagrammtyp Diese zentrale Frage beantwortet das Diagramm

Stärken

Klassendiagramm Aus welchen Klassen besteht mein System und wie stehen diese untereinander in Beziehung?

Beschreibt die statische Struktur des Systems.Enthält alle relevanten Struktur-zusammenhänge/Datentypen.Brücke zu dynamischen Diagrammen.Normalerweise unverzichtbar.

Paketdiagramm Wie kann ich mein Modell so schneiden, dass ich den Überblick bewahre?

Logische Zusammenfassung von Modellelementen.Modellierung von Abhängigkeiten/ Inklusion möglich.

Objektdiagramm Welche innere Struktur besitzt mein System zu einem bestimmten Zeitpunkt zur Laufzeit (Klassendiagramm-schnappschuss)?

Zeigt Objekte u. Attributbelegungen zu einem bestimmten Zeitpunkt.Verwendung beispielhaft zur Veranschaulichung Detailniveau wie im Klassen-diagramm.Sehr gute Darstellung von Mengenverhältnissen.

Page 29: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 29

Diagramme der UML und ihre Anwendung II

Diagrammtyp Diese zentrale Frage beantwortet das Diagramm

Stärken

Kompositionsstruktur-diagramm

Wie sieht das Innenleben einer Klasse, einer Komponente,eines Systemteils aus?

Ideal für die Top-Down-Modellierung des Systems (Ganz-Teil-Hierarchien).Zeigt Teile eines „Gesamtelements“und deren Mengenverhältnisse.Präzise Modellierung der Teile-Beziehungen über spezielle Schnittstellen (Ports) möglich.

Komponentendiagramm Wie werden meine Klassen zu wieder verwendbaren, verwaltbaren Komponenten zusammengefasst und wie stehen diese in Beziehung?

Zeigt Organisation und Abhängig-keiten einzelner technischer Systemkomponenten.Modellierung angebotener und benötigter Schnittstellen möglich.

Verteilungsdiagramm Wie sieht das Einsatzumfeld (Hardware, Server, Datenbanken, …) des Systems aus? Wie werden die Komponenten zur Laufzeit wohin verteilt?

Zeigt das Laufzeitumfeld des Systems mit den „greifbaren“ Systemteilen.Darstellung von „Softwareservern“möglich.Hohes Abstraktionsniveau, kaum Notationselemente.

Page 30: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 30

Diagramme der UML und ihre Anwendung III

Diagrammtyp Diese zentrale Frage beantwortet das Diagramm

Stärken

Use-Case-Diagramm Was leistet mein System für seine Umwelt (Nachbarsysteme, Stakeholder)?

Außensicht auf das System.Geeignet zur Kontextabgrenzung.Hohes Abstraktionsniveau, einfache Notationsmittel.

Aktivitätsdiagramm Wie läuft ein bestimmter fluss-orientierter Prozess oder ein Algorithmus ab?

Sehr detaillierte Visualisierung von Abläufen mit Bedingungen, Schleifen, Verzweigungen.Parallelisierung und Synchronisation.Darstellung von Datenflüssen.

Zustandsautomat Welche Zustände kann ein Objekt, eine Schnittstelle, ein Use Case, …bei welchen Ereignissen annehmen?

Präzise Abbildung eines Zustands-modells mit Zuständen, Ereignissen, Nebenläufigkeiten, Bedingungen, Ein- und Austrittsaktionen.Schachtelung möglich.

Wer tauscht mit wem welche Informationen in welcher Reihenfolge aus?

Darstellung d. Informationsaustauschs zwischen Kommunikationspartnern Sehr präzise Darstellung der zeitlichen Abfolge auch mit Nebenläufigkeiten.

Page 31: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 31

Diagramme der UML und ihre Anwendung IV

Diagrammtyp Diese zentrale Frage beantwortet das Diagramm

Stärken

Kommunikations-diagramm

Wer kommuniziert mit wem? Wer „arbeitet“ im Systemzusammen?

Stellt den Informationsaustausch zwischen Kommunikationspartnern dar.Überblick steht im Vordergrund (Details und zeitliche Abfolge weniger wichtig).

Timingdiagramm Wann befinden sich verschiedene Interaktionspartner in welchem Zustand?

Visualisiert das exakte zeitliche Verhalten von Klassen,Schnittstellen,..Geeignet für die Detailbetrachtungen, bei denen es wichtig ist, dass ein Ereignis zum richtigen Zeitpunkt eintritt.

Interaktionsübersichts-diagramm

Wann läuft welche Interaktion ab? Verbindet Interaktionsdiagramme (Sequenz-, Kommunikation- undTimingdiagramme) auf Top-Level-Ebene.Hohes Abstraktionsniveau.

Page 32: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 32

UML 2 –Die Strukturdiagramme

Barbara ZenglerMario Jecklewww.uml-glasklar.de

Page 33: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 33

Zwei Dinge sind zu unserer Arbeit nötig: Unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen.

Albert Einstein

Page 34: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 34

Diagramme der UML 2

Kommunikations-diagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-diagramm

Sequenz-diagramm

Interaktions-diagramme

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

ZustandsautomatUse-Case-Diagramm

Aktivitäts-diagramm

Verhaltens-diagramme

Diagramme derUML 2

Klassendiagramm

Kompositions-strukturdiagramm

Page 35: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 35

Die StrukturdiagrammeKlassendiagrammEine Zusammenstellung deklarativ-statischer Modellelemente (d.h. Klassen, Typen, ihre Inhalte und Beziehungen)ObjektdiagrammEnthält Objekte und BeziehungsausprägungenPaketdiagrammStellt die logische Organisation von Modellelementen und deren Abhängigkeiten darKomponentendiagrammZeigt die Organisation und Abhängigkeiten von KomponentenKompositionsstrukturdiagrammZeigt die interne Struktur eines classifiers sowie seine Möglichkeiten zu Interaktion mit anderen SystemkomponentenVerteilungsdiagrammZeigt die Ausführungssicht des Systems

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

Page 36: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 36

Warum neue oder geänderte Strukturdiagramme?Hintergrund

Statische Modellierung seit Mitte der 1970er Jahre gängig und hinreichend erforscht(z.B. Entity-Relationship)Darstellung nicht ausführbarer statischer Zusammenhänge durch die ersten OO-Modellierungssprachen (u.a. Boochs OOSE, Rumbaughs OMT) weidlich bearbeitetStrukturdiagramme (insbesondere Klassendiagramme) ausgereiftester und stabilster Teil der UML v1.x

Jüngere Entwicklungstrends, die eine Neufassung rechtfertigenMetamodellierungKonzeptionelle BereinigungWiederverwendung von bestehenden Konstrukten

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

Page 37: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 37

Änderungen an den Strukturdiagrammen!?Statische Diagramme besitzen in der UML und ihrerAnwendung eine hervorgehobene Bedeutung

Bekanntester DiagrammtypMeistverwendester DiagrammtypBasis des UML-MetamodellsBasis des UML-Metametamodells (Meta Object Facility)

Änderungen„automatisch“ sehr sichtbarfür den UML-Anwender „spürbar“beeinflussen u.U. gesamtes Sprachkonzeptwirken sich auf andere (Meta-)Sprachen ausInhärente Bedeutung für den Modellaustausch zwischen Werkzeugen (XMI-Format wird aus Metamodell generiert)

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

Page 38: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 38

Statische Diagramme der UML 2

45%

9%7%

19%

15% 5%

Klassendiagramm

Komponentendiagramm

Objektdiagramm

Kompositionsstrukturdiagramm

Verteilungsdiagramm

Paketdiagramm

Kommunikations-diagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-diagramm

Sequenz-diagramm

Interaktions-diagramme

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

ZustandsautomatUse-Case-Diagramm

Aktivitäts-diagramm

Verhaltens-diagramme

Diagramme derUML 2

Klassendiagramm

Kompositions-strukturdiagramm

„wichtigster“ Diagrammtyp

neuer Diagrammtyp

meist-geänderter Diagrammtyp

Page 39: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 39

Basiskonzepte

Die UML-Basiskonzepte sindAbstraktionTypisierung und IdentitätStrukturierung (d.h. gekapselte Eigenschaften und vielfältige Beziehungen)Erweiterbarkeit der Sprache

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

Page 40: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 40

Basiskonzepte

Die UML-Basiskonzepte sindAbstraktionTypisierung und IdentitätStrukturierung (d.h. gekapselte Eigenschaften und vielfältige Beziehungen)Erweiterbarkeit der Sprache

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Erweitert die Nutzung der ClassifierVereinheitlicht ähnliche Konzepte unter gemeinsamen OberbegriffenBietet neue Diagrammtypen und -sichten

Page 41: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 41

Basiskonzepte -- Abstraktion

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Erweitert die Nutzung der ClassifierVereinheitlicht ähnliche Konzepte unter gemeinsamen OberbegriffenBietet neue Diagrammtypen und -sichten

Classifier

DataType

PrimitiveType Enumeration

Association

CommunicationPath AssociationClass Interface

Class(from Kernel)Signal

Artifact

BehavioredClassifier StructuredClassifierInformationItemActor

Behavior Class(from Communications) UseCase Collaboration EncapsulatedClassifier

Activity Interaction StateMachine

ProtocolStateMachine

Class(from StructuredClasses)

Node

Device ExecutionEnvironment

Page 42: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 42

Basiskonzepte -- Abstraktion

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Erweitert die Nutzung der Classifier

Beziehungen (Assoziationen) werden zwischen ihnen geknüpft... können Charakteristika (Attribute) besitzen... können Verhaltensspezifikationen (Operationen) besitzen... können generalisiert werden... können autonom auf Signale reagieren... können ausschließlich der Strukturierung dienen (abstract)

Classifier

DataType

PrimitiveType Enumeration

Association

CommunicationPath AssociationClass Interface

Class(from Kernel)Signal

Artifact

BehavioredClassifier StructuredClassifierInformationItemActor

Behavior Class(from Communications) UseCase Collaboration EncapsulatedClassifier

Activity Interaction StateMachine

ProtocolStateMachine

Class(from StructuredClasses)

Node

Device ExecutionEnvironment

Page 43: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 43

Basiskonzepte -- Abstraktion

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Erweitert die Nutzung der ClassifierVereinheitlicht ähnliche Konzepte unter gemeinsamen OberbegriffenBietet neue Diagrammtypen und -sichten

Beispiel:Artefakt kann beliebige paktierbare Elemente „manifestieren“

myWebApp

.xml

.class

.html

.jsp

«artifact»

myApp.war«manifest»

Anwendung:Deployment von Webapplikationen

Page 44: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 44

Basiskonzepte -- Abstraktion

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Erweitert die Nutzung der ClassifierVereinheitlicht ähnliche Konzepte unter gemeinsamen OberbegriffenBietet neue Diagrammtypen und -sichten

Beispiel:KompositionsstrukturdiagrammZeigt die interne Struktur eines Classifiers sowie seine Möglichkeiten zu Interaktion mit anderen Systemkomponenten

Page 45: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 45

Basiskonzepte

Die UML-Basiskonzepte sindAbstraktionTypisierung und IdentitätStrukturierung (d.h. gekapselte Eigenschaften und vielfältige Beziehungen)Erweiterbarkeit der Sprache

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Verhältnis zwischen Classifier und typisierten Elementen klarer gefasstUnterschied zwischen „typisiert sein“ und „Typ sein“ verwirklichtIdentitätsverhalten geklärt(Insbesondere bei dynamischer Verarbeitung statischer Daten)

Page 46: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 46

Basiskonzepte –Typisierung und Identität

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Verhältnis zwischen Classifier undtypisierten Elementen klarer gefasstUnterschied zwischen „typisiert sein“ und „Typ sein“ verwirklichtIdentitätsverhalten geklärt(Insbesondere bei dynamischer Verarbeitung statischer Daten)

Element ElementUML 1.x UML 2

ModelElementname

Namespace GeneralizableElement

NamedElementname

TypedElement Type

Classifier Classifier

Page 47: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 47

Basiskonzepte –Typisierung und Identität

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Verhältnis zwischen Classifier undtypisierten Elementen klarer gefasstUnterschied zwischen „typisiert sein“ und „Typ sein“ verwirklichtIdentitätsverhalten geklärt(Insbesondere bei dynamischer Verarbeitung statischer Daten)

UML 2 ...Identitätsbesitz ist nicht mehr statisch über die gesamte LebensdauerIdentitätsbehaftete Objekte können durch dynamische Aktivitäten ihre Identität verlieren oder wechselnTeilweise (beispielsweise in Kollaborationen) ist sie sogar unerheblich

Page 48: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 48

Basiskonzepte

Die UML-Basiskonzepte sindAbstraktionTypisierung und IdentitätStrukturierung (d.h. gekapselte Eigenschaften und vielfältige Beziehungen)Erweiterbarkeit der Sprache

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Assoziationen zur Formulierung von Beziehungen zwischenClassifier-Ausprägungen (viele (unnötige) Einschränkungen) entfallen (z.B. Anwendung auf Use-Cases))

Generalisierungen zur Hierarchisierung von Classifiern(Damit sind z.B. Pakete nicht mehr naiv generalisierbar, hierfür existiert ein separiertes „merge“-Konzept)

Abhängigkeitsbeziehungen dokumentieren logische Wechselwirkungen

Page 49: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 49

Basiskonzepte -- Strukturierung

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Assoziationen zur Formulierung vonBeziehungen zwischen Classifier-Ausprägungen (viele (unnötige) Einschränkungen) entfallen (z.B. Anwendung auf Use-Cases))

Generalisierungen zur Hierarchisierung von Classifiern(Damit sind z.B. Pakete nicht mehr naiv generalisierbar, hierfür existiert ein separiertes „merge“-Konzept)

Abhängigkeitsbeziehungen dokumentieren logische Wechselwirkungen

Konstrukteur

Kundenbetreuer

Konstruktion

Änderungswunsch entgegennehmen

Page 50: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 50

Basiskonzepte -- Strukturierung

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Assoziationen zur Formulierung vonBeziehungen zwischen Classifier-Ausprägungen (viele (unnötige) Einschränkungen) entfallen (z.B. Anwendung auf Use-Cases))

Generalisierungen zur Hierarchisierung von Classifiern(Damit sind z.B. Pakete nicht mehr naiv generalisierbar, hierfür existiert ein separiertes „merge“-Konzept)

Abhängigkeitsbeziehungen dokumentieren logische Wechselwirkungen

Konstrukteur

Kundenbetreuer

KonstruktionKundenbetreuer

Änderungswunsch entgegennehmen

Page 51: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 51

Basiskonzepte -- Strukturierung

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Assoziationen zur Formulierung vonBeziehungen zwischen Classifier-Ausprägungen (viele (unnötige) Einschränkungen) entfallen (z.B. Anwendung auf Use-Cases))

Generalisierungen zur Hierarchisierung von Classifiern(Damit sind z.B. Pakete nicht mehr naiv generalisierbar, hierfür existiert ein separiertes „merge“-Konzept)

Abhängigkeitsbeziehungen dokumentieren logische Wechselwirkungen

Classifier

Generalization1 general

specific*

isSubstitutable

Alle Classifier-Spezialisierungen sind nun spezialisierbarSubstituierbarkeit expliziert

Page 52: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 52

Der Classifier-ZooClassifier

DataType

PrimitiveType Enumeration

Association

CommunicationPath AssociationClass Interface

Class(from Kernel)Signal

Artifact

BehavioredClassifier StructuredClassifierInformationItemActor

Behavior Class(from Communications) UseCase Collaboration EncapsulatedClassifier

Activity Interaction StateMachine

ProtocolStateMachine

Class(from StructuredClasses)

Node

Device ExecutionEnvironment

Alle Classifier-Spezialisierungen sind nun spezialisierbar

Page 53: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 54

Basiskonzepte -- Strukturierung

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

UML 2 ...Assoziationen zur Formulierung vonBeziehungen zwischen Classifier-Ausprägungen (viele (unnötige) Einschränkungen) entfallen (z.B. Anwendung auf Use-Cases))

Generalisierungen zur Hierarchisierung von Classifiern(Damit sind z.B. Pakete nicht mehr naiv generalisierbar, hierfür existiert ein separiertes „merge“-Konzept)

Abhängigkeitsbeziehungen dokumentieren logische Wechselwirkungen

Neue Notation (genaugenommen gibt es erstmals eine)

Programmiersprachenspezifische Abhängigkeiten entfallenz.B. C++-spezifisches „friend“

«metaclass»Klasse «stereotype»

persistent

«persistent, xml»Partyteilnehmer

«persistent»Gastgeber

«stereotype»xml

Page 54: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 55

Klassendiagramm ---Das „wichtigste“ Diagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagrammKlassendiagramm

Page 55: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 56

Klassendiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagrammKlassendiagramm

Funktion:Zusammenstellung deklarativ-statischer Modellelemente (d.h. Klassen, Typen, ihre Inhalte und Beziehungen)

Aufgabe im Projekt:Variierend ...

von der ersten Darstellung konzeptueller Dateninhalteüber plattformunabhängige logische Modellebis hin zu „Implementierungsbauplänen“(„Bilder-für-Java“, „Kästchen-und-Strichchen-statt-C++“)

Ersetzt oftmals das klassische, in Entity Relationship-Notation abgefasste, Datenmodell

Page 56: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 57

Klassendiagramm

Gast

feiere()

Feier

+termin : Datum

abbrechen()

Gastgeber

hektisch : Boolean = true

begruesse(in g : Gast)verabschiede (in g : Gast)treibeAn(in b : Barmixer)

Cocktail

Zutaten : Zutat [1..*]

Barmixer

+mixe(in z : Zutat [1..*], out c:Cocktail)

Zutat

+name : String

Häppchen

empfängt{unique}1..*

besucht

verabschiedet{unique}1..*

mixt

1..*

treibt an

isst {ordered}0..*

unterhält

*

1 mixt für

1..1

«enumeration»Begeisterung

ekstatischverzücktneutralgelangweiltüberdrüssig

Partyteilnehmer

/betrunken : Boolean = false~intus : Cocktail [1..*]#begeistert : Begeisterung

«interface»Esser

iss(in h : Häppchen; return satt:Boolean)

Esser Esser

#überdenkeBegeisterung()~trinke(in c : Cocktail)

Klasse

Klassenname

Attribut

AggregationKomposition

Assoziation

Multiplizität

Rolle

Operation

GeneralisierungSchnittstelle

abstrakte Klasse

gerichtete Assoziation

Stereotyp

Eigenschaftswert

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagrammKlassendiagramm

Page 57: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 58

Klassendiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagrammKlassendiagramm

Gast

feiere()

Feier

+termin : Datum

abbrechen()

Gastgeber

hektisch : Boolean = true

begruesse(in g : Gast)verabschiede (in g : Gast)treibeAn(in b : Barmixer)

Cocktail

Zutaten : Zutat [1..*]

Barmixer

+mixe(in z : Zutat [1..*], out c:Cocktail)

Zutat

+name : String

Häppchen

empfängt{unique}1..*

besucht

verabschiedet{unique}1..*

mixt

1..*

treibt an

isst {ordered}0..*

unterhält

*

1 mixt für

1..1

«enumeration»Begeisterung

ekstatischverzücktneutralgelangweiltüberdrüssig

Partyteilnehmer

/betrunken : Boolean = false~intus : Cocktail [1..*]#begeistert : Begeisterung

«interface»Esser

iss(in h : Häppchen; return satt:Boolean)

Esser Esser

#überdenkeBegeisterung()~trinke(in c : Cocktail)

Klasse

Klassenname

Attribut

AggregationKomposition

Assoziation

Multiplizität

Rolle

Operation

GeneralisierungSchnittstelle

abstrakte Klasse

gerichtete Assoziation

Stereotyp

EigenschaftswertKlasse

Sichtbarkeit / name : Typ [Multiplizität] = Vorgabewert {Eigenschaft=Wert}

Klasse

Sichtbarkeit name (Richtung Name : Typ [Multiplizität]=Vorgabe {Eigenschaft=Wert}) : Rückgabetyp {Eigenschaft=Wert}

[1..3]

Page 58: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 59

Klassendiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagrammKlassendiagramm

Neu in UML 2:

Klasse1 Klasse2«Abhängigkeitsname»

Klasse3

Klasse4

Klasse5

Klasse6

Kommentar zurAbhängigkeitsbeziehung

Page 59: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 60

Klassendiagramm

Neu in UML 2:- Attribute besitzen Ordnung- Graphische Assoziationsnotation

(Nutzung des „großen leeren Diamanten“auch für binäre Assoziationen)- Kommentarnotation „mit Punkt“

Geändert in UML 2:- Graphische Schnittstellennotation (Lollipops) jetzt Standard- Spezifikation von Sichtbarkeit, Name, Typ und Multiplizität für Operationen

und Attribute vereinheitlicht- Multiplizitätsdefinition schärfer formuliert - Attribute sind keine implizite Kompositionsassoziation mehr

Entfällt in UML 2:- Programmiersprachenmanifestationsspezifische Eigenschaften

(z.B. friend)- Eigenschaften und Stereotypen unklarer Semantik

(z.B. become und copy)

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagrammKlassendiagramm

Page 60: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 61

Kompositionsstrukturdiagramm ---Ein neues Diagramm in UML 2

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

Kompositionsstrukturdiagramm

Page 61: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 62

Kompositionsstrukturdiagramm

Funktion:Zeigt die interne Struktur eines Classifiers sowie seine Möglichkeiten zu Interaktion mit anderen Systemkomponenten

Aufgabe im Projekt:Beschreibung von extern angebotenen SchnittstellenAbstraktion der Operationen und des Signals

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagramm

Page 62: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 63

Kompositionsstrukturdiagramm

Basiskonzepte:PartPortKollaborationKonnektorRollenverwendung

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagramm

Page 63: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 64

Kompositionsstrukturdiagramm

Basiskonzepte:PartObjekte oder RollenausprägungenPortÖffentlich sicht- und zugreifbarer Interaktionspunkt, der auf einen Operationsaufruf oder den Empfang eines Signals reagiertKollaborationZusammenspiel von Operationen oder ClassifiernKonnektorAssoziationsinstanz (Link), die Kommunikation zwischen (allgemeinen) Instanzen ermöglichtRollenverwendungBindet realisierende Classifier an Kollaborationsinstanz

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagramm

Page 64: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 65

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammNeu in UML 2:

Port: Definiert einen öffentlich sicht-und zugreifbaren Interaktionspunkt, der auf einen Operationsaufruf oder den Empfang eines Signals reagiert.

Klasse

bereitgestellteSchnittstelle

benötigteSchnittstelle

Stereoanlage

partybeschallung

strom, medium

Page 65: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 66

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammNeu in UML 2:

Port: Werden durch andere Classifieroder Ports angesprochen.

Musikerzeugung

Stereoanlage : Steckdosekabel

Musikerzeugung

: HamsterradStereoanlagetransformator

Konnektor

Konnektor

Page 66: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 67

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammNeu in UML 2:

Behavior Port:Wie Port, allerdingsmit der Einschränkung, dass der definierende Classifier das Verhalten selbst manifestieren muss, andernfalls ist die empfangende Botschaft oder das empfangene Signal verloren.Kann Sichtbarkeits- und Zugriffsbeschränkt sein.

Stereoanlage

partybeschallung

strom, medium

Page 67: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 68

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammÜberarbeitet in UML 2:

Kollaboration: Visualisiert das Zusammenspiel von Operationen oder Classifiern

Page 68: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 69

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammÜberarbeitet in UML 2:

Kollaboration: Visualisiert das Zusammenspiel von Operationen oder Classifiern

Page 69: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 70

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammÜberarbeitet in UML 2:

Beispiel:

Page 70: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 71

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammÜberarbeitet in UML 2:

Beispiel:

Page 71: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 72

Kompositionsstrukturdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

KompositionsstrukturdiagrammKompositionsstrukturdiagrammNeu in UML 2:

- Der gesamte Diagrammtyp- Ports als gemeinsame Abstraktion

von Operationen und Signalen- Auffassung von Kollaborationen als Teile von

Kompositionsstrukturen

Geändert in UML 2:- Schnittstellennotation- Möglichkeiten zur Darstellung von Kollaborationen

Page 72: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 73

Verteilungsdiagramm ---Das Diagramm mit den meisten Änderungen

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

Verteilungsdiagramm

Page 73: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 74

Verteilungsdiagramm

Funktion:Zeigt die Ausführungssicht des Systems

Aufgabe im Projekt:Beschreibung der SystemarchitekturErweitert Systemsicht um an der Ausführung beteiligte oder zur Ausführung benötigte Hardwarekomponenten

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

VerteilungsdiagrammVerteilungsdiagramm

Page 74: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 75

Verteilungsdiagramm

Basiskonzepte:ArtefaktPhysische Informationseinheit, die währenddes Entwicklungsprozesses erzeugt oderverwendet wird.(z.B. Modelle, Quellcode, Objekdateien, ...)KnotenClassifier, der eine zur Ausführungszeit verfügbare Ressourcedarstellt.Einsatzspezifikation (Deployment Specification)Paramtermenge, die Laufzeitverhalten festlegt

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

VerteilungsdiagrammVerteilungsdiagramm

Page 75: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 76

Verteilungsdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

VerteilungsdiagrammVerteilungsdiagramm

«device»: Application Server

J2EE Server«execution environment»: J2EE Server

entry.jspconfig.xmlMyBean.class

«artifact»

application.jar«deploy»

Artefakt

Knoten

Deployment-Beziehung

«device»: DB Server

1..*

1..*

Assoziation«deployment spec»

appDesc.xml

Deployment-Spezifikation

execution : threadtransaction : false

Page 76: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 77

Verteilungsdiagramm

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

Klassendiagramm

Kompositions-strukturdiagramm

VerteilungsdiagrammVerteilungsdiagrammNeu in UML 2:

- Aktuelle Ausführungs- und Laufzeitumgebungen wie J2EE und .NET werden besser berücksichtigt

Geändert in UML 2:- Knoten können hinsichtlich ihrer Rollen zum Ausführungszeitpunkt

feinspezifiziert werden- Ausdetaillierung der Abhängigkeitsbeziehungen

Entfällt in UML 2:- Unpraktikable graphische Darstellung des Knotens

Page 77: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 78

Fazit ---statische Diagramme in UML 2

Absichtsvoll wenig „spürbar“ Neues- Im Hintergrund

- Klarere Basiskonzepte- Deutlich mehr Wiederverwendung- Fast vollständig neues Metamodell

Modifizierte Semantik vieler (Meta-)ModellelementeEinige neue graphische PrimitiveReichhaltigeres Angebot an Abhängigkeiten und „eingebauten“ Modellerweiterungen (Stereotypen)Behutsame Verrentung „problematischer“ Modellelemente

Page 78: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 79

UML 2 –Die Verhaltensdiagramme

Chris RuppJürgen Hahnwww.uml-glasklar.de

Page 79: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 80

Diagramme der UML 2

Kommunikations-diagramm

Interaktionsüber-sichtsdiagramm

Zeitverlaufs-diagramm

Sequenz-diagramm

Interaktions-diagramme

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

ZustandsautomatUse-Case-Diagramm

Aktivitäts-diagramm

Verhaltens-diagramme

Diagramme derUML 2

Klassendiagramm

Kompositions-strukturdiagramm

Page 80: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 81

Use-Case-Diagramm

„Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will.“

Galileo Galilei

Page 81: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 82

Use-Case-DiagrammAnwendung im Projekt

Darstellung der funktionalen Dienstleistungen eines SystemsAbgrenzung des Systems gegenüber seiner UmweltAufteilen des Systems aus einer AußensichtErstellung planbarer EinheitenSchaffen einer Kommunikationsgrundlage zwischen Stakeholdern

Page 82: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 83

Use-Case-DiagrammDie Elemente im Überblick

«include» «extend»

Anwendungsfall

Use-Case Subject Akteur

System

Benutzer

Beziehung «include»-Beziehung «extend»-Beziehung Generalisierungs-beziehung

Page 83: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 84

Use-Case-Diagramm

Use-Case:- spiegelt ein funktionales Verhalten wieder- wird durch Akteur angestoßen- liefert ein für den Akteur sichtbares Ergebnis

Akteur:- beschreibt eine Rolle - steht außerhalb des Systems- interagiert mit dem System- kann eine Person, ein Nachbarsystem, .... sein

Page 84: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 85

Use-Case-Diagramm

System (Betrachtungsgegenstand):- Umgrenzt die Einheit, welche die Use-Cases realisiert- Darstellung ist nicht zwingend notwendig

Assoziationen:- beschreiben die Beziehungen zwischen Akteuren und Use-

Cases- «Extend»-Beziehung: Verhalten eines Use-Case kann durch

einen anderen erweitert werden- «Include»-Beziehung: Verhalten eines Use-Case ist

vollständig in einem anderen enthalten

Page 85: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 86

Use-Case-DiagrammDie Anwendung

Extend-Beziehung

Verkauf

Systemname Systemgrenze

Akteur

Verkaufsposteneingeben

Kreditwürdigkeitprüfen

Kunde nichtgefunden

«include»

«extend»

AssoziationInclude-

Beziehung

Use-Case

Kundendateneinsehen

extension points:fehlender KundeVerkäufer

Page 86: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 87

Use-Case-DiagrammDie Anwendung

Bürger

Finanzamt

Steuern zahlen

Auskunft über Finanzen geben- Einkommen- Vermögen+ Belege zeigen()+ Einkommensbeleg vorlegen()

Steuern hinterziehen- Einkommen- Vermögen+ Belege fälschen()+ Privat-/Geschäftskosten vermischen()

Lohnsteuerkartebeantragen- Familienstand- Steuerklasse+ Formular ausfüllen()+ Karte ausdrucken()

Page 87: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 88

Use-Case-DiagrammKontextabgrenzung

Abgrenzung von Systemen zu ihren Nachbarsystemen

Fast Food RestaurantBestellung

Rechnung

Bestellung

Waren

Geld

Nahrung

Geld

Rechnung

Richtlinien

BestätigungZinsen

Geld

Amt

Kunde

Zulieferer

Bank

Page 88: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 89

Use-Case-DiagrammDie wichtigsten Änderungen

UML 1.x UML 2

Ein Akteur darf unbenannt sein Ein Akteur muss einen Namen haben

Nur Pakete können Use-Cases besitzen. Classifier im Allgemeinen können Use-Cases besitzen.

Als Realisierer von Use-Cases werden (Sub-) Systeme impliziert, obwohl jeder Classifier einen Use-Case realisieren darf.

Es wird deutlich herausgestellt, dass alle Classifier Use-Cases realisieren können.

Bei der «extend»-Beziehung werden die Vorbedingungen nur in der Nähe der entsprechenden Relation angetragen:

Die Vorbedingung und die entsprechenden extension points werden als Notiz an die Erweiterungsbeziehung angehängt:

«Vorbedingung»{Benutzer ruft Hilfefunktion auf}

«extend»

extension point: Hilfethema

«extend»

Benutzer ruft Hilfefunktion auf

Page 89: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 90

Use-Case-DiagrammVorsicht: Fehler die vermieden werden sollten

Bezeichnung des Akteursfehlt

Verkauf

Kundendateneinsehen

Kreditwürdigkeitprüfen

Kunde nichtgefunden

Use-Case Name fehltAkteur muss außerhalb des

Systems stehen

Zwischen Use-Cases des selben Systems dürfenkeine Assoziationen vorhanden sein

Assoziationen dürfen nurbinär sein

Bürgen finden«extend»

Angabe desErweiterungspunktes fehlt

Verkäufer

Page 90: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 91

Aktivitätsdiagramm

„Wenn du etwas so machst, wie du es seit zehn Jahren gemacht hast, dann sind die Chancen recht groß, daßdu es falsch machst.“

Charles Kettering

Page 91: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 92

AktivitätsdiagrammAnwendung im Projekt

Aktivitätsdiagramme visualisieren mögliche Abläufemit veränderbarem Detaillierungsgrad

vielfache Anwendungsgebiete

GeschäftsprozessmodellierungBeschreibung von Use-CasesImplementieren einer Operation

Page 92: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 93

AktivitätsdiagrammDas Tokenkonzept

Das Tokenkonzept wurde den Petrinetzen entnommenDer Ablauf in einer Aktivität wird durch den Tokenfluss gesteuertErmöglicht die präzise Beschreibung des VerhaltensDie Token sind nur ein Gedankenkonstrukt (keine explizite Modellierung)

Achtung! Tokenkonzept bewirkt semantische Änderungen zu UML 1.x Aktion 1 Aktion 2

Aktion 3

Aktion 1 Aktion 2

Aktion 3

UML 1.x UML 2

ODER UND

Aktion 1 Aktion 2

Page 93: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 94

AktivitätsdiagrammeDie wichtigsten Elemente im Überblick

Eingangsparameter Ausgangsparameter

Objekttyp

Objektknoten

Aktionsname

Aktion

Aktivität

Name

Startknoten

Endknoten

Verzweigungsknoten

Verbindungsknoten Synchronisationsknoten

Parallelisierungsknoten

Kontrollelemente

Kante

StrukturierteKnoten

Page 94: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 95

AktivitätsdiagrammAktivität - Aktion

Aktivität beschreibt das komplette DiagrammKann Ein- und Ausgangsparameter haben

Aktionen sind VerhaltensaufrufeSumme der Aktionen realisiert die Aktivität

Zutaten mischen

Eis zerkleinern

in Gläser füllen

Cocktail mixen

Zutaten Cocktail

AktivitätAktion

EingangsparameterAusgangsparameter

Page 95: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 96

AktivitätsdiagrammObjektknoten

Objektknoten repräsentierennicht das Objekt selber, sondernden Typ des ObjektsDarstellung als Objektknotenoder durch Pin-Notation

Objektknoten als Datenspeicher

Cocktail mixen Cocktail

Cocktail mixenCocktail

Cocktail trinkenCocktail

«centralBuffer»

«datastore»Name

[Zustand]

Page 96: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 97

AktivitätsdiagrammKontrollelemente I

Kontrollelemente steuern den Ablauf der AktivitätKontrollelemente

- starten und beenden Abläufe- ermöglichen parallele Abläufe- können mehrere Abläufe

synchronisieren- lassen alternative Abläufe zu

[Lustvorhanden]

Einladung bekommen

Einladung Datum prüfen

Lust auf Feierprüfen

Feier absagen Zur Feierzusagen

[keine Zeit]

[Zeitvorhanden]

[keine Lust]

Kante

Bedingung

Kontrollknoten

möglicher Ablauf

Page 97: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 98

AktivitätsdiagrammKontrollelemente II

Startknoten:- Starten den Ablauf- Mehrere Startknoten initiieren parallele Abläufe

Endknoten:- Beenden die Aktivität oder- einen einzigen Ablauf

Kanten:- Übergänge zwischen zwei Knoten- Beschreiben die Ablaufrichtung

Startknoten

Endknoten

Kante

Page 98: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 99

AktivitätsdiagrammKontrollelemente III

Verzweigungsknoten:- Ermöglichen alternative Abläufe- Bedingungen geben Ablaufrichtung vor

Verbindungsknoten:- Vereinigen mehrere Abläufe

Parallelisierungsknoten:- Aufteilen in parallele Abläufe

Synchronisationsknoten:- Zusammenführen paralleler Abläufe

Verzweigungsknoten

Verbindungsknoten

Parallelisierungsknoten

Synchronisationsknoten

Page 99: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 100

AktivitätsdiagrammUnterbrechungsbereich und Exception-Handler

Unterbrechungsbereich:- Umfasst ein oder mehrere Aktionen- Kann über Unterbrechungskante

verlassen werden- Alle Aktionen im Bereich werden

dann gestoppt

Exception-Handler:- Ermöglicht die Beschreibung von Ausnahmen- Exception-Handler substituiert eine Aktion

Unterbrechungsbereich Unterbrechungskante

Aktion

Exception-Typ

Exception-Handler

Page 100: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 101

Strukturierte Knoten

Umfassen mehrere Elemente einer AktivitätAblauf startet erst dann, wenn an allen eingehenden kanten Token anliegenObjektknoten als Ein- und Ausgangsparameter möglich

Schlüsselwort

Page 101: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 102

Strukturierte KnotenEntscheidungsknoten

Visualisierung komplexer Entscheidungenif: prüfen der Bedingungthen: auszuführende

Elementeelse: möglicher Ablauf,

wenn kein if-Bereichzutrifft

else if: wie if-Bereich nur mit vorgegebenerPrüfreihenfolge

if

then

else

schmackhaft?

Schlechte Kritikerstellen

Gute Kritikerstellen

Restaurant Bewertung

Speise

Speise bewerten

Page 102: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 103

Strukturierte KnotenMengenverarbeitung

Einzelne Betrachtung der Elemente welche in der restlichen Aktivität nur als Sammlung betrachtet werden z.B. Vektorkomponenten, hashtable, verkettete Listen....

Elemente werden als Objektknoten (Pin) übergeben

Bierkistebesorgen Flasche öffnen Flasche leeren leere Bierkiste

zurückgeben

iterative

Page 103: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 104

Strukturierte KontenSchleifenknoten

Visualisieren den Ablauf komplexer Schleifen

for: initiale Aufgabenwhile: prüfen der Bedingung

für einen Durchlaufdo: Schleifenrumpf

Reihenfolge do – while ist optional

for

while

do

X = Zahl 1 Y = Zahl 2

A = X+ Zähler A < Y

Zähler = Zähler +1

Zähler = 0

Zahl 1 Zahl 2

Page 104: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 105

AktivitätsdiagrammAktivitätsbereiche

Einteilen des Diagramms in Bereiche mit gemeinsamen EigenschaftenHierarchische und mehrdimensionaleAufteilung möglich

PKW parken

Menü bestellen Menüzusammenstellen

KassierenMenü verzehren

PKW ausparken

Fastfood-Restaurant besuchen

Kunde Bedienung

Par

kpla

tzR

esta

uran

t

Ort

Person

Bere

ichs

nam

e

Page 105: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 106

AktivitätsdiagrammDie wichtigsten Änderungen

UML 1.x UML 2

Aktivitätsdiagramm als „Sonderform“ des Zustandsdiagramms.

Aktivitäten sind unabhängig von Zustandsautomaten.

Aktivitätsdiagramme entsprechen in der Struktur den Zustandsdiagrammen.

Aktivitäten verwenden eine den Petri-Netzen ähnlich Semantik (Token-Konzept).

Diagramm heißt Aktivitätsdiagramm. Diagramm wird als Aktivität bezeichnet.

Es ist nur ein Anfangszustand erlaubt. Es sind mehrere Startknoten erlaubt.

Notationssymbole für Zustand und Aktivität unterschiedlich:

Die Notation von Aktionen entspricht der Notation von Zuständen der UML 1.x

Aktivitätsdiagramme haben keine Ein- und Ausgabeparameter.

Aktivitäten können Ein- und Ausgabeparameter enthalten.

Parallele Stränge müssen zusammengeführt werden.

Parallel Abläufe müssen nicht wieder zusammengeführt werden.

Swimlanes sind immer eindimensional Aktivitätsbereiche können hierarchisch oder multidimensional sein.

ZustandAktionszustand1 Aktion Zustand

Page 106: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 107

AktivitätsdiagrammVorsicht: Fehler die vermieden werden sollten

Biergartenbetreten

Bier bestellen Bier trinken

Sitzplatz suchen

Biergarten

bezahlenBiergartenverlassen

FehlenderAktionsname

FehlendeBedingungen

Fehlender Pin

Durch vorherigeVerzweigung ist hier eine

Synchronisation nichtmöglich

Page 107: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 108

Zustandsautomaten

„Take your chance while you still got a choice.“

Scott/Young/Young

Page 108: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 109

ZustandsautomatEinfaches Beispiel

sm Scheibenwischer

Ausgangsstellung

Waschengewählt

Wischengewählt

after(3seconds) /Waschen beenden

Wischenbeendet

Waschengewählt

after(3seconds) /Waschen beenden

[Wischer inParkposition]

[Wischer inParkposition]

[Wischer inParkposition]

Nachwischen Wi

entry / in Parkposition bringen

Nachwischen Wa

entry / in Parkposition bringen

Fertigwischen

entry / in Parkpositionbringen

Wischendo / normal wischen

Wischen [schnell] / schnell wischenWischen [Intervall] / Intervall wischen

Waschendo / Waschen

Waschen Wido / Waschen

Page 109: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 110

ZustandsautomatAnwendung im Projekt

Zustandsautomaten bilden Verhalten ab:- in welchem Zustand kann - unter welcher Bedingung - bei welchem eingehenden Ereignis - welche Transition ausgeführt werden

Anwendungsgebiete- Zustandsbeschreibung von Classifiern, u. a.- Detaillierung von Use-Cases- Verhaltensbeschreibung von Interfaces und Ports- Detailbeschreibung von Signal- und Ereignisempfang

Page 110: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 111

ZustandsautomatDie wichtigsten Elemente im Überblick

sm Zustandsautomat

TerminatorVereinigungGabelung

Hflache Historie

H*

tiefe Historie

KreuzungEntscheidungStartzustand EintrittspunktAustrittspunkt

Pseudozustände

zusammengesetzter Zustand

Trigger [Guard] / Aktivität

Transition inVerhaltenszustandsautomaten

Transition inProtokollzustandsautomaten

[Vorbedingung] Operation / [Nachbedingung]

Zustandsname

einfacher Zustand

Unterzustandsautomatenzustand : sm Unterzustandsautomat

Unterzustandsautomatenzustand

Endzustand

Zustandsname

Page 111: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 112

ZustandsautomatZustandsautomat

Unterscheidung:- Verhaltenszustandsautomaten- Protokollzustandsautomaten

Ein Verhaltenszustandsautomatbildet das diskrete Verhalten einer Instanz eines Classifiers ab.

Ein Protokollzustandsautomatbeschreibt die erlaubte Aufrufsab-folge der Instanz eines Classifiers.

sm Zustandsautomatenname

sm Zustandsautomatenname{protocol}

Page 112: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 113

ZustandsautomatProtokollzustandsautomat

sm Ampel

rot

gelb

grünrot-gelbschalte(grün) /

gelb(an) /

schalte(gelb) /

schalte(rot) /

rot(an) /

[reset]schalte(rot) /

[aus] /

Page 113: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 114

Zustandsautomateinfacher Zustand und Transition

Ein Zustand beschreibt eine bestimmte Ausprägung:

- eine statische Situation- auf ein externes Ereignis wartend

Kann Aktivitäten enthalten:- entry, do und exit activity- interne Transitionen- verzögerte Ereignisse

Eine Transition ist der Übergang von einem Quell- zu einem Zielzustand

Zustandsnameentry / Aktivitätexit / Aktivitätdo / AktivitätTrigger [Guard] / AktivitätTrigger [Guard] / defer

Zustandsname

[Vorbedingung] Operation / [Nachbedingung]Trigger [Guard] / Aktivität

Transitionen inVerhaltenszustandsautomaten Protokollzustandsautomaten

Page 114: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 115

ZustandsautomatZustandsübergänge

Verschiedenste Möglichkeiten einen Zustandsübergang anzustoßen

listen

closed

[passiv offen]TCB erstellen

[geschlossen]TCB löschen

Ausgangsstellung

[Wischer inParkposition]

Fertigwischen

entry / in Parkpositionbringen

Stufe 1

do / langsam drehen

Stufe 2

do / schnell drehen

Stufe1 gewählt /schalte 1

Stufe2 gewählt /schalte 2

angemeldetPKW neu

PKW gebraucht

do/ benutzen

aktiv standbyafter(60 seconds)

Page 115: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 116

Zustandsautomatzusammengesetzter Zustand

Zustandsnameentry / Aktivitätexit / Aktivitätdo / AktivitätTrigger / AktivitätTrigger / defer

Setzt sich aus Zuständen, Pseudozuständen und Transitionen zusammen

Zustandsnameentry / Aktivitätexit / Aktivitätdo / AktivitätTrigger / AktivitätTrigger / defer

A

B

aktiv

abgebrochen

gedrückt[anykey]

Startort eingegeben

Zielort eingegeben

rück-gängig

Zielgewählt Termin gewählt

rück-gängig

Termingewählt

gedruckt

bestätigt /drucken

Page 116: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 117

ZustandsautomatUnterzustandsautomatenzustand

Steht stellvertretend für einen ZustandsautomatenKann Ein- und Austrittspunkte besitzen

sm Bezahlung

BezahlenBargeld : sm BB

BezahlenGeldkarte : sm BG

[Z_art = GK]

abgebrochen

[Z_art = BG]

abgebrochen

Abbruch

[ok] /abbuchen

[ok] /abbuchen

Abbruch

abwickelnBezahlung : sm Bezahlung

Auswahlbestätigt

/ ausgebenGetränk

Page 117: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 118

ZustandsautomatRegion

Verwendung von Regionen impliziert ParallelitätErreichbar durch Verwendung von:

- Gabelungszuständen, oder- Startzuständen (einer pro Region)

kalt

warm

sprudelnd

still

after(Zeit)

after(Zeit)

Flaschegeöffnet

Temperatur Blubbereffekt

offen

kalt

warm

sprudelnd

still

after(Zeit)

after(Zeit)

Flaschegeöffnet

Temperatur Blubbereffekt

offen

Page 118: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 119

ZustandsautomatPseudozustände I

Startzustand:- Verweist auf den ersten Zustand- Einer pro Region

Entscheidung:- Ausgehende Transition wird während

der Ausführung der Transition bestimmtKreuzung:

- Ausgehende Transition ist vor der Ausführung der Transition bekannt

Ein- und Austrittspunkt:- Zum Betreten und Verlassen von

Unterzustandsautomaten

Startzustand

Entscheidung

Kreuzung

Austrittspunkt

Eintrittspunkt

Page 119: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 120

ZustandsautomatPseudozustände II

Gabelung und Vereinigung:- Teilen eine Transition auf mehrere

parallele Zustände auf bzw. fügen mehrere Transitionen zu einer zusammen

Flache Historie:- Speichert den zuletzt aktiven Unterzustand

eines komplexen ZustandsTiefe Historie:

- Speichert den zuletzt aktiven Unterzustand eines in einem komplexen Zustandenthaltenen Zustand

Terminator: - Bei Erreichen endet die Lebensdauer der Instanz

des beschriebenen Classifiers

Gabelung

Vereinigung

Hflache Historie

H*

tiefe Historie

Terminator

Page 120: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 121

ZustandsautomatBeispiele Pseudozustände

Zustand3

Zustand2

Zustand1

H

Betriebsmodi Autoradio

ausge-schalten

einge-schalten

manuellumschalten

[CD-Kassettedrin]

manuellumgeschaltet

manuellumgeschaltet

[keine Kassettedrin]

[Kassetteausgeworfen]umschalten

Kassetteeingelegt

manuellumgeschaltet[Kassette drin]

getrunken

[ist ok = ja]trinken

[ist ok = nein]wegschütten

probiert TrinkbarkeitgeprüftPrüfung Trinkbarkeit

do / Trinkbarkeit prüfen

A

B C

do / x = 1

Trigger / x = -1*x

[>=0][<0]x

A

B C

do / x = 1

Trigger / x = -1*x

[x>=0][x<0]

Page 121: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 122

ZustandsautomatExplicit und default entry

Default entry:Eine eingehende Transition endet am Rand des zusammengesetzten Zustands.

Explicit entry:Eine eingehende Transition endet an einem Unterzustand des zusammengesetzten Zustands

Adefault entry

B

explicit entry

A

A

explicit entry

B

explicit entry

A Bdefault entry

Page 122: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 123

ZustandsautomatVerlassen von Zuständen

Das Verlassen von zusammengesetzten Zuständen und Zustandsautomaten kann auf verschiedene Arten erfolgen

B

A

ZC

Y

X

Trigger2 [Guard] /Aktivität

Trigger1 [Guard] /Aktivität

sm Authentifizierung

authentifiziert

Pin eingeben /Eingabe# = 0

[Pin =richtig]

[Pin = falsch] /Eingabe#++

Pinunterdrückt

[#<3]

[#>=3] gesperrt

Pincodegeprüft

Fehleingabe

do / Eingabe# prüfen

Pincodeabfrage

do / Pincode prüfen

Authentifizierung : sm Authentifizierung

gesperrt

Pinunterdrückt

[else] / ein-schalten

[Pin unterdrückt] /einschalten

Page 123: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 124

ZustandsautomatVererbung

Spezialisierung von Zustandsautomaten durch- Erweiterung um Regionen, Zustände und Transitionen- Erweiterung von Regionen und Zuständen- Erweiterung von Transitionen

Transaktion nichtbestätigen

sm Geldautomat {extended}

Betrag einlesen {extended}

Betrag eingeben

Betrag wählen

Transaktionbestätigen {final}

anderer Betraggewählt

ok

Karte prüfen{final}

Betrag wählendefekt{final}

Transaktionbestätigen {final}

defekt

Karteangenommen

Betraggewählt

Karte ausgegeben{final}

sm Geldautomat

Page 124: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 125

ZustandsautomatDie wichtigsten Änderungen

UML 1.x UML 2

- Ports können nun Protokollzustandsautomaten besitzen.

- Ein-, Austrittspunkte und Terminatorenwurden eingeführt.

Tiefe Historien können nur eingehende Transitionen von außerhalb des enthaltenden Zustands haben.

Tiefe Historien können auch Ziel einer Transition innerhalb des enthaltenen Zustands sein (also nicht nur von außen).

- Regeln zur Ergänzung und Ersetzung von Transitionen bei vererbten Zustandsautomaten wurde hinzugefügt.

Generalisierung von Zustandsautomaten wird durch eine Notiz kenntlich gemacht.

Das vererbte Verhalten wird mit einem Zustandsautomaten dargestellt.

Page 125: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 126

ZustandsautomatVorsicht: Fehlerteufel

A B C

Nur ein Startzustandpro Region gestattet

Bei Startzuständen nur eineausgehende Transition erlaubt

Ausgehende Transitionin einem Endzustand

sm Fehlerbeispiel

Transition ohne Zielzustand

DTransition ohne Quellzustand

Vereinigung nichtorthogonaler Zustände

nicht möglich

Page 126: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 127

Interaktionsmodellierungmit der UML 2

„Auch in der Kommunikation gilt das Gesetz des abnehmenden Grenznutzens: Immer mehr Aufwand bringt – ab einem gewissen Punkt – immer weniger Erfolg.“

Michael Tost

Page 127: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 128

InteraktionenDefinition und Prinzip

Interaktionen sind ein wichtiges Basiskonzept der UML-VerhaltensdiagrammeInteraktion ist der Nachrichten- und Datenaustausch zwischen zwei KommunikationspartnernGrundelemente der Interaktion:

- Kommunikationspartner (repräsentiert durch Lebenslinien)- Nachrichten

Nachrichtenaustausch verbindet Sende- und Empfangsereignisse Nachricht

Sendeereignis Empfangsereignis

Sender Empfänger

Page 128: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 129

InteraktionenWann modelliere ich Interaktionen im Projekt?

Modellierung von Interaktionen auf verschiedenen Abstraktionsebenen

vielfache Einsatzmöglichkeiten

Lokale oder verteilte Kommunikation

Beschreibung von Use-CasesDetailmodellierung im FeindesignSpezifikation von SchnittstellenTest und Simulation

Page 129: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 130

InteraktionenWelche UML 2 Diagramme gibt es zur Interaktionsmodellierung?

Kommunikations-diagramm

Interaktionsüber-sichtsdiagramm

Timing-Diagramm

Sequenz-diagramm

Interaktions-diagramme

Verteilungs-diagramm

Objektdiagramm

Paketdiagramm

Komponenten-diagramm

Struktur-diagramme

ZustandsautomatUse-Case-Diagramm

Aktivitäts-diagramm

Verhaltens-diagramme

Diagramme derUML 2

Klassendiagramm

Kompositions-strukturdiagramm

Page 130: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 131

InteraktionenSichten auf Interaktionen

Interaktionsdiagramme zeigen nur Sichten auf InteraktionenDiagrammwahl nach hervorzuhebenden Modellierungsaspekt

:Koch :Herd

Temp_einstellen

:Herd:Koch1: Temp_einstellen

Kommunikationsdiagramm

Sequenzdiagramm

:Koc

h:H

erd

Temp_einstellen

Timing-Diagramm

Lebenslinie

Nachricht

Page 131: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 132

Sequenzdiagramm

„Erst die richtige Reihenfolge macht aus klugen Gedanken ein gutes Ergebnis.“

A. van Rheyn

Page 132: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 133

Sequenzdiagramm

sd Interaktion

Nachricht2

Nachricht1(Argument)

Ok=Nachricht1

Kommunikationspartner

ZeitlicherVerlauf

K1 K2 K3

Lebenslinie

Aktions-sequenz

Nachricht

Page 133: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 134

SequenzdiagrammKontextabgrenzung

sd Waschmaschine

befüllen

Waschmittel_zugeben

Weichspüler_zugeben

Programm_wählen

einschalten

fertig

Wäsche_entnehmen

auschalten

aus

Benutzer

:Waschmaschine

{30...90}

:Stromnetz :Wasserleitung :Kanal

Abwasser

EinheitMinuten Strom

Wasser

Page 134: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 135

SequenzdiagrammBeschreibung von Use-Cases

Waschmaschine

Wäsche waschen

Wäsche trocknen

Hausmann

sd Wäsche waschen

öffnen

Wasser erhitzen(Temperatur=30°)

Hauptwaschgang

schliessen

schleudernpar

abpumpen

abpumpen

einschalten

fertig

:Benutzer :Steuerung :Wasserventil :Heizelement :Motor :Pumpe

«extend»

Benutzer

Steuerung

Wasserventil

Heizelement

Motor

Pumpe

Use-Case-Diagramm

Klassendiagramm

Sequenzdiagramm

Page 135: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 136

SequenzdiagrammDie wichtigsten Elemente im Überblick

sd Bild aufhaengen

schlagen

treffen

loop

alt

treffen

aufhaengen

[Nagelhaelt]

KombiniertesFragment

Nachricht Aktionssequenz

[gerade]

refDaumen verbinden

Interaktions-verweis

Abbruch-bedingung

Zustandsbedingung

:Person :Hammer :Nagel :Daumen :Bild

getroffen =schlagen

Lebenslinie

Page 136: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 137

SequenzdiagrammLebenslinien

Repräsentieren die Teilnehmer einer InteraktionRepräsentieren

- den Classifier selbst,- die Attribute des Classifiers,- Teile des Classifiers, z. B. Ports- die Operationen des Classifiers,- und Parameter von Operationen - (lokale) Variablen einer Operation.

Darstellung der AktionssequenzenStopp löscht die Lebenslinie

sd Internetsuche

Aktions-sequenz

:Internetbrowser :Suchmaschine

suche_starten(Keyword)

suche_starten

aktualisieren

lösche

Bestellung

Page 137: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 138

SequenzdiagrammBeispiele für Lebenslinien

Person

+ berechneAlter(int Geburtsjahr,Datum):Alter

berechneAlter:AlterGeburtsjahr:int Datum

sd berechneAlter(int Geburtsjahr,Datum):AlterOperationsname

kennzeichnetRückgabewert

Setzen desRückgabewerts

Motor

Gaspedal p:Getriebe

beschleunigen

p:Getriebe self

sd

Motor

+ Beschleunigen()

Nachname:String

Vorname[0]:String

Vorname[1]:String

sd Anschrift setzen

Adresse

Person

Nachname:String

Vorname[0]:String

Vorname[1]:String Adresse

Page 138: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 139

SequenzdiagrammZustandsinvariante-/Zustandsbedingung

„Lebenslinie“ muss Bedingung erfüllenWird zur Laufzeit überprüft

:Kunde :Pizzaservice

geöffnet

sd Pizzabestellung

bestellen

bestellen

Zustandsbedingung fürLebenslinie „Pizzaservice“

Page 139: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 140

SequenzdiagrammNachrichten

Beschreiben den Informationsfluss zwischen den Kommunikationspartnern

Synchrone Nachrichten(Sender wartet auf Antwort)Asynchrone Nachrichten(Antwort wird nicht erwartet)Abgebildet durch Pfeil und PfeilspitzeLost und Found Nachrichten:

N1N3

N2

N4

Antwortnachricht

Synchrone Nachricht

Asynchrone Nachricht

A B C

Found NachrichtLost Nachricht

Page 140: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 141

SequenzdiagrammKombinierte Fragmente

Teil einer InteraktionMit bestimmten Regeln für

- Auswahl - Reihenfolge- Häufigkeit

der Nachrichten

:A :B

alt

[x == 1]

[else]

m

n

trenntOperanden

kombiniertesInteraktionsfragment

Interaktionsbedingung

Interaktionsoperator

Interaktions-operand}

Page 141: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 142

SequenzdiagrammKombinierte Fragmente

Alternativ (alt):- Existenz von mehr als

einer Ablaufmöglichkeit- Bedingungen geben den

Ablauf vor- Immer 2 Operanden

Modellierung von - If-else-Bedingungen- Switch/case -

Anweisungen

[Partygast.Hungergefühl>normal]

[else]

alt

sd Nahrung aufnehmen

pluendern

aufessen

:Partygast :Buffet :Snacks

[Partygast.Hungergefühl== normal]

weiterfeiern

Page 142: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 143

SequenzdiagrammKombinierte Fragmente

sd Interaktion ignore {N3, N4}

A B C

N1

N2

N5

sd Interaktion consider {N3, N4}

A B C

N1

N3

N4

Ignore (ignore)- Blendet Nachrichten aus,

die für die Modellierung irrelevant sind

- Im realen System können diese jedoch vorkommen

Consider (consider)- Nur die genannten

Nachrichten sind relevant- Betont Intention des

Modellierers

Page 143: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 144

SequenzdiagrammKombinierte Fragmente

sd Spiel ignore {ziehen}

opt[keine Figur im

Feld]

loop (1,3) [Augenzahl!=6]

opt [Augenzahl==6]

loop [Augenzahl==6]wuerfeln

wuerfeln

wuerfeln

wuerfeln

:Spieler :WürfelOption (opt):- Interaktion, die nur unter

bestimmten Bedingungen durchgeführt wird

- If(...) then { ... }

Loop (loop)- Abbildung von Schleifen- Zählschleife:

loop(min, max)- Abbruch/Ausführung durch

[Bedingungen] steuerbar

Page 144: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 145

SequenzdiagrammKombinierte Fragmente

sd Party verlassen

verabschieden

assert

weggehen

:Partygast :Gastgeber

sd trinken

neg

austrinken

austrinken

:Glas:PartygastNegative (neg)

- Hebt ungültige Folgen von Einzelschritten hervor

- Zur Betonung gedacht- Modellierung von

negativen (Test-)fällen

Assertion (assert)- Legt eine bestimmte

Reihenfolge fest- Zur Betonung gedacht

Page 145: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 146

SequenzdiagrammKombinierte Fragmente

sd Unfallaufnahme

Patient Aufnahme OP

par aufnehmenoperieren

aufnehmenverlegen

aufnehmen(Herzinfarkt) operieren

Station

criticalaufnehmen(Herzinfarkt)

:Patient :Aufnahme :OP :Station

Parallel (par)- Mehrere Abläufe

sollen gleichzeitig ablaufen

- „Threading“

Critical Region (critical)- Festlegen eines

ununterbrechbaren, statischen Ablaufs

Page 146: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 147

SequenzdiagrammKombinierte Fragmente - Coregion

Alternativdarstellung zum parallel kombinierten FragmentAber nur wenn nur eine Lebenslinie betroffen istAblaufreihenfolge innerhalb der Coregion ist beliebig

sd Tankstopp

tanken(Benzin)

Scheiben putzen

Öl kontollieren

bezahlen

:Person :Auto :Kasse

Page 147: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 148

SequenzdiagrammKombinierte Fragmente

Break (break)- Unterberechen

des normalen Ablaufs

Zur Modellierung von- Exceptions- Systemfehlern- Kritischen

asynchronen Ereignissen

Fahrer

sd Drogenfahndung

Polizist Auto

anhalten

durchsuchen

Ergebnis

break [Ergebnis == Drogen gefunden]verhaften

weiterfahren

:Fahrer :Polizist :Auto

Page 148: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 149

SequenzdiagrammNotationselemente - Interaktionsverweis

sd

X Y Zref C

Aref

Bref

sd A

X Y Zsd B

Y Z

Cref

Referenziert (ref) auf eine beliebige InteraktionWiederverwendung in mehreren Diagram-men möglich„Zooming“ – GedankeAuch für Lebenslinien möglich

Page 149: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 150

SequenzdiagrammModellierung von Zeitangaben

X Y

a

c

b

t=now

t=now

t..t+5

{12.00..12.05}

Zeiteinheit für t ist ms

Einheit Uhr

X Y

Zeitpunkte beschreiben, wann ein Ereignis eintritt

Zeitdauer beschreibt,Die Dauer von Nachrichten oder Aktionssequenzen

X Y

a {2..10}

b

b {5..5}

Hilfslinien

c ÜZeit=duration

d {0..0,5*ÜZeit}

Zeitdauer-bedingung

Zeitdauer-beobachtungsaktion

X Y

ZeiteinheitSekunden

Page 150: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 151

SequenzdiagrammDie wichtigsten Änderungen

UML 1.x UML 2

Zerlegung von Lebenslinie nicht möglich, Referenzen von anderen Interaktionen nicht möglich

Innerhalb von Sequenzdiagrammen kann auf andere Interaktionen verwiesen werden (Zerlegung von Abläufen oder Lebenslinien)

Kontrollflussmöglichkeiten äußerst bescheiden: Schleifen und Nachrichtenbedingungen möglich

Alle Kontrollflussmöglichkeiten (if, switch, ...) höherer Programmiersprachen durch kombinierte Fragmente, sehr gute Unterstützung von nebenläufiger Modellierung

Nachrichtenarten:asynchron, synchron, unspezifiziert

unspezifiziert entfällt, lost und found Nachrichten eingeführt

Zustandsinvarianten können an Lebenslinien angetragen werden

Page 151: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 152

Kommunikationsdiagramm

„Auch das Chaos gruppiert sich um einen festen Punkt, sonst wäre es nicht einmal als Chaos da.“

Arthur Schnitzler

Page 152: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 153

KommunikationsdiagrammDie Elemente im Überblick

Notationselemente:- Interaktion- Lebenslinien- Nachrichten- Sequenzbezeichner

cd Gassi gehen

Hundehalter Hund

Passant Häufchen

1:Gassi gehen

1.1:machen

2:reintreten

3:entfernen

2.1:schimpfen

Name der Interaktion

Sequenzbezeichner

Nachrichtenname

Richtung derNachricht

Lebenslinie

Page 153: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 154

KommunikationsdiagrammAnwendung im Projekt

Gehört zu den InteraktionsdiagrammenZeigt das Zusammenspiel von strukturiertenKommunikationspartnern. Kontrollflüsse und zeitliche Aspekte sind weniger wichtigGut geeignet für die Modellierung von Prinzipien und Konzepten

Wenig Änderungen zur UML 1.x Version, dem Kollaborationsdiagramm

Page 154: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 155

KommunikationsdiagrammNachricht - Sequenzbezeichner

Definiert für Nachrichten- Reihenfolge- Ebene

der Abarbeitung

Reihenfolge wird durch Zahlen spezifiziert

Ausführungsbedingung in eckigen Klammern

cd Restaurantbesuch

Gast

Getraenk Essen

Rechnung

1a:bestellen

2a: [Glas voll]trinken

1b:bestellen

2b*[Teller voll]:essen

1:hinzufuegen 1:hinzufuegen

4:bezahlen(Betrag)

3:berechnen(Betrag)

Page 155: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 156

KommunikationsdiagrammNebenläufigkeit und Schleifen

Nebenläufigkeit durch Buchstaben im Sequenzbezeichner

Definition von Schleifen mit einem Stern „*“

Kennzeichnung von nebenläufigen Schleifen-durchläufen mit Doppelstrich „||“

cd Reparaturauftrag

Besitzer Auftragsannahme Mechaniker

Lager

Ersatzteil

Mietwagen

1a:beauftragen 1a.1:Auftrag

1a.1.1b*||[alle Ersatzteile vorhanden]:Ersatzteil beschaffen

1a.1.1c:[Ersatzteil nicht vorhanden]:bestellen

1a.1.1.1:erledigt1b:ausleihen

Auto

1a.1.1a:reparieren

2:fahren

Page 156: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 157

KommunikationsdiagrammDie wichtigsten Änderungen

UML 1.x UML 2Kollaborationsdiagramm Kommunikationsdiagramm

Vollständig äquivalent zum Sequenzdiagramm

Subset des Sequenzdiagramms, z. B. - keine Interaktionsverweise („ref“)- keine kombinierten Fragmente- Ereignisreihenfolge wird ignoriert

Page 157: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 158

Timing-Diagramm

„Die Neugier steht immer an erster Stelle eines Problems, das gelöst werden will.“

Galileo Galilei

Page 158: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 159

Timing-DiagrammDie Elemente im Überblick

td Fußgängerampel

rot

betriebsbereit

:Am

pel

Lebenslinien

d

Zeit-Bedingung

Zustandslinie

:Fuß

gäng

ergrün

wartend

aktiv

{d...6*d}

ZustandZeitskala

Name desDiagramms

aktivieren

gehen nichtgehen

Nachricht

Sek.0 10 3020

Page 159: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 160

Timing-DiagrammAnwendung im Projekt

Gehört zu den InteraktionsdiagrammenDarstellung des zeitlichen Veränderung eines Classifiers (Klasse, Objekt, Komponente, ...)Für die Modellierung zeitkritischer Zustands- und Wertänderungen sinnvoll

Neu in der UML 2!Bereits seit Jahren in Elektrotechnik genutzt (z. B. für elektronische Schaltvorgänge)

Page 160: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 161

Timing-DiagrammElemente – Lebenslinie - Zustandslinie

Nur eine Lebenslinie oder kommunizierende Lebenslinien möglich

Meist nur Sicht auf wenige Zustände der auf Lebenslinie

Zustandslinien beschreiben den Wechsel der Zustände im Ablauf der Zeit

Zustand

td Fahrstuhltür

offen

:Fah

rstu

hltü

r:L

icht

schr

anke

nsys

tem

unterbrochen

nichtunterbrochen

beimschliessen

beim öffnen

0 2 sek

Zeitliche Verzögerung desZustandsüberganges

Zustandslinie

Page 161: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 162

Timing-DiagrammElemente - Nachrichten

Nachrichten werden zwischen den Zustandslinien ausgetauschtBewirken häufig einen Zustandswechsel

td Autoradio

aktiv

inaktiv:Ver

kehr

sfun

k:M

usik

send

er leise

laut

EndeAnfangNachricht

Page 162: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 163

Timing-DiagrammGeneral-Value-Lifeline

Alternative Darstellungsform

td Waschstraße

:Waschstraße

:Kunde

betriebsbereit Vorreinigung Hauptwäsche Trocknen betriebsbereit

aktivwartenaktiv

{5a} {2a..6,5a} {4a}

a

Page 163: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 164

Timing-DiagrammVorsicht: Fehler die vermieden werden sollten

fehlendeLebenslinienbeschriftung

td Schweinebraten zubereiten

zubereitet

roh

:Sch

wei

nebr

aten

aktiv

warten

Empfangsereignis vorSendeereignis

Lücke in derZustandszeitlinie

fehlendeZustandsbeschriftung

Page 164: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 165

Interaktionsübersichtsdiagramm

„Wer auf morgen wartet, wird übermorgen erkennen, dass er heute versäumt hat das Notwendigste zu tun.“

Walter Scheffel

Page 165: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 166

Interaktionsübersichtsdiagrammiod Betriebsfeier

sd

:Chef :Angestellter

organisiereFeier

[Keine Hemmschwelle]

sd

:Chef :Personalchef

mitarbeiterfeuern

sd

:Chef :Mitarbeiter

bedanken

Verpflegung_organisieren

ref

Mitarbeiter_verständigen

ref

Mitarbeiter.Hemmschwelle=Feier:Alkoholkonsum

ref

Page 166: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 167

InteraktionsübersichtAnwendung im Projekt

Darstellung der Ablaufreihenfolge mehrerer InteraktionenBesonders geeignet für:

- Brückenschlag zwischen Aktivitäts- und Interaktionsdiagrammen

- Logischen Zusammenhang zwischen mehreren Interaktionsdiagrammen schaffen

Ablauf wird durch Kontrollelemente aus dem Aktivitätsdiagramm dargestellt

Neu in der UML 2!

Page 167: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 168

Fazit ---dynamische Diagramme in UML 2

Viel neu - viel geklautAktivitätsdiagramme und Sequenzdiagramme faktisch neuVerbesserte Unterstützung der CodeabbildungBessere Modellierung von Nebenläufigkeiten und Zeitverhalten möglich dennoch keine „Echtzeitsprache“Deutlich bessere Schnittstelle zu StrukturdiagrammenNotationsvielfalt erfordert TailoringInteraktionsübersichtsdiagramm, Timingdiagramm erfordern Nachbesserungen

Page 168: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 169

Damit Sie klar sehen!

Infos:•www.uml-glasklar.de•www.jeckle.de•www.sophist.de

Page 169: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 170

Modelle der Realität erstellen

Infos unter www.SOPHIST.de Wir erkennen die Struktur Ihrer Projektanforderungen!

Page 170: UML 2 Tutorial - mario-jeckle.de · DV-Anforderungen DV-Architektur ... Struktur und Einbettung von UML 2 ... Zustandsautomat Welche Zustände kann ein Objekt,

UML 2 Tutorial Net.ObjectDays 2003 Seite 171