UML Stereotypen und Profile

33
Systemmodellierung mit SysML - Stereotypen und Profile Oliver Stadie 15. Juni 2010

Transcript of UML Stereotypen und Profile

Page 1: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile

Oliver Stadie

15. Juni 2010

Page 2: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 2

Gliederung● Vorwissen:

– Metamodell● Profile & Stereotypen:

– Motivation– Definition & Benutzung– Zusammenfassung

● Diskussionen & Erweiterte Konzepte

Page 3: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 3

Gliederung● Vorwissen:

– Metamodell● Profile & Stereotypen:

– Motivation– Definition & Benutzung– Zusammenfassung

● Diskussionen & Erweiterte Konzepte

Page 4: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 4

Objekte als Instanzen von Klassen

waldi

rex

Hund Instanz von

Page 5: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 5

Links als Instanzen von Assoziationen

waldi:Hund

Hund

Schaf

sven:Schaf

emilia:Schaf

Instanz von

Page 6: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 6

UML-Elemente als Instanzen des Metamodells (1)

wartend

arbeitendState

FinalState

Transition

Instanz von

Page 7: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 7

Metamodell UML UML Modell

UML-Elemente als Instanzen des Metamodells (2)

wartend

arbeitendState

FinalState

Transition

Instanzen von

Page 8: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 8

Metamodell UML UML Modell

UML-Elemente als Instanzen des Metamodells (3)

Association

Operation

Class

Actor

Hund...

wau()Schaf

...mää()

Instanzen von

Page 9: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 9

Gliederung● Vorwissen:

– Metamodell● Profile & Stereotypen:

– Motivation– Definition & Benutzung– Zusammenfassung

● Diskussionen & Erweiterte Konzepte

Page 10: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 10

unified vs. spezialisiert● Allgemein: möglichst jede OO-SW soll

beschrieben werden können.● Speziell: die Beschreibung soll möglichst

aussagekräftig sein.● Lösung: Allgemeine Sprache, welcher

spezielle Sprachelemente hinzugefügt werden können.

● Vergleichbar: Wortdefinitionen in natürlicher Sprache

Page 11: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 11

schwer- vs. leichtgewichtig

Class

Metamodell UML UML Modell

Instanzen von

ActorHund wartendState

NeuesSprachelement

Schwergewichtige Erweiterung(Ändern des Metamodells)

Leichtgewichtige Erweiterung

(ohne Ändern des Metamodells)

Page 12: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 12

Gliederung● Vorwissen:

– Metamodell● Profile & Stereotypen:

– Motivation– Definition & Benutzung– Zusammenfassung

● Diskussionen & Erweiterte Konzepte

Page 13: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 13

Benutzung eines Stereotypen (1)

Hund

Tier Vierbeiner

Page 14: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 14

Benutzung eines Stereotypen (2)

Hund«JavaClass»

Tier Vierbeiner

● Stereotypen in „Guilleme(n)ts“ angeben

Page 15: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 15

Benutzung eines Stereotypen (3)

Hund«JavaClass»

Tier Vierbeiner

«JavaClass»author=“oli“version=1.0

● Eigenschaften des Stereotyps in Kommentarsymbol

Page 16: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 16

Definition eines Stereotypen (1)● Erweiterungsbeziehung (engl. extension):

«metaclass»Class

«stereotype»JavaClass

Page 17: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 17

Definition eines Stereotypen (2)● Eigenschaften des Stereotyps (engl. tagged

values) als Attribute:

«metaclass»Class

«stereotype»JavaClass

+author:String +version:double

Page 18: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 18

Definition eines Stereotypen (3)● Semantik z.B. über OCL definieren:

«metaclass»Class

«stereotype»JavaClass

+author:String +version:double

«metaclass»Generalization

*generalization->size() <= 1

Page 19: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 19

myJavaProfile

Definition eines Profils

«metaclass»Class

«stereotype»JavaClass

● Profil: Menge von Stereotypen (als Paket):

+author:String +version:double

«metaclass»Generalization

*generalization->size() <= 1

Page 20: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 20

Benutzung eines Profils● Profil muss mittels «apply» verknüpft werden,

um Stereotypen benutzen zu dürfen:

myApplication myJavaProfile«apply»

Page 21: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 21

Gliederung● Vorwissen:

– Metamodell● Profile & Stereotypen:

– Motivation– Definition & Benutzung– Zusammenfassung

● Diskussionen & Erweiterte Konzepte

Page 22: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 22

Zusammenfassung● Definition:

– Stereotyp:● Klasse als Erweiterung ( ) einer Metaklasse● Schlüsselwort «stereotype» in der Klasse

– Profil: Als Paket welches Stereotyp-Definitionen enthält● Benutzung:

– Stereotyp: UML-Element mit Name des Stereotypen in Guillemets («,») beschriften

– Profil: Paket welches Stereotypen benutzt bindet Profil-Paket mittels «apply» ein.

Page 23: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 23

Quellen● Weilkiens, Tim: System Engineering mit SysML/UML.

Modellierung, Analyse, Design. 2. Auflage. Heidelberg: dpunkt.verlag GmbH, 2008.

● Born, Marc / Holz, Eckhardt / Kath, Olaf: Softwareentwicklung mit UML 2. Die neuen Entwurfstechniken UML 2, MOF 2 und MDA. München: Addison-Wesley Verlag, 2004.

● Hausding, Peer: Systemmodellierung mit SysML. Studienarbeit. Berlin: 9. März 2010.

● UML Profile Diagrams, Internet: http://uml.kirfa.com/profile-diagrams.html [12.06.2010]

Page 24: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 24

Gliederung● Vorwissen:

– Metamodell● Profile & Stereotypen:

– Motivation– Definition & Benutzung– Zusammenfassung

● Diskussionen & Erweiterte Konzepte

Page 25: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 25

Gliederung● Diskussionen & Erweiterte Konzepte

– Warnung!– Hinweis– Was können Stereotypen?– Leichtgewichtig oder nicht?– Required extensions– Mehrere Stereotypen– Icons

Page 26: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 26

Warnung!● Achtung: Guillemets heißt nicht immer Stereotyp!● Beispiele aus bisherigen Vorträgen:

– Klassendiagramm: «active», «datatype», «enumeration», «interface», «primitive», «signal»

– Aktivitätsdiagramm: «precondition», «postcondition», «subsystem», «Transformation»

– Anwendungsfalldiagramm: «include», «extend»● Nur ein Stereotyp dabei («subsystem»)● Unklarheit in der Sprache UML

Page 27: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 27

Hinweis● „die drei großen Tugenden eines Programmierers

[...]: Faulheit, Ungeduld und Hybris.“ - Larry Wall in Programmieren mit Perl

● Es gibt fertige standardisierte Profile● Bsp:

– StandardProfileL2– UML Testing Profile– SysML

Page 28: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 28

Was können Stereotypen?● Stereotypen haben keine eigene Semantik, auch nicht

mit tagged values● Semantik wird erst durch Tools hinzugefügt, z.B.:

– tagged value „author“ in Code-Kommentare einfügen

– Auswertung der OCL-Constraints● Erinnerung aus „unified vs. spezialisiert“:

– Speziell heißt die Beschreibung soll möglichst aussagekräftig sein. ← Ziel erreicht?

Page 29: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 29

Leichtgewichtig oder nicht? (1)● Leichtgewichtig := keine Erweiterung im Metamodell● Metamodell in Blau, UML-Modell in Orange:

myApplication myProfile«apply»

«metaclass»Class

«stereotype»myStereo01

«metaclass»State

«stereotype»myStereo02

MetaModellReferenzieren

Page 30: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 30

Leichtgewichtig oder nicht? (2)● Nachteil schwergewichtiger Erweiterung:

– UML Metamodell ist in UML definiert– → UML Metamodell kann als SW implementiert

werden, z.B. von Tools wie MagicDraw– → Änderung des Metamodells würde Änderung

des Tools erfordern● Nachteil leichtgewichtiger Erweiterung:

– Nicht alles möglich– z.B. grafische Notation:

MyButton«GUI»

……

Farb

e

Page 31: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 31

Required extensions● {requires} sagt, dass eine UML-Komponente einem

Stereotyp angehören muss:myProfile

«apply»

«metaclass»State

«stereotype»myStereo01

{requires}

myStateMachine

wartend Arbeitend«myStereo01»

Fehler, wenn „wartend“ nicht dem Stereotyp myStereo01 angehört

Page 32: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 32

Mehrere Stereotypen● Stereotypen durch Komma abtrennen● Im Kommentar nacheinander auflisten

myProfile

«apply»

«metaclass»State

«stereotype»myStereo01

myStateMachine

Arbeitend«myStereo01, myStereo02»

+author:String

«stereotype»myStereo02+date:Date

«myStereo01»author=“hugo“«myStereo02»date=15.06.2010

Page 33: UML Stereotypen und Profile

Systemmodellierung mit SysML - Stereotypen und Profile 33

Icons● Definition von Icons:

● Alternative Notationen:

● Nicht möglich: Strukturierte Icons (z.B. mit Attributen an definierten Positionen)