4. Systemmodellierung mit SysML - Stereotypen und Profile 4
Objekte als Instanzen von
Klassen
waldi
rex
Hund Instanz von
5. Systemmodellierung mit SysML - Stereotypen und Profile 5
Links als Instanzen von
Assoziationen
waldi:Hund
Hund
Schaf
sven:Schaf
emilia:Schaf
Instanz von
6. Systemmodellierung mit SysML - Stereotypen und Profile 6
UML-Elemente als Instanzen des
Metamodells (1)
wartend
arbeitendState
FinalState
Transition
Instanz von
7. Systemmodellierung mit SysML - Stereotypen und Profile 7
Metamodell UML UML Modell
UML-Elemente als Instanzen des
Metamodells (2)
wartend
arbeitendState
FinalState
Transition
Instanzen von
8. 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
10. 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
11. Systemmodellierung mit SysML - Stereotypen und Profile 11
schwer- vs. leichtgewichtig
Class
Metamodell UML UML Modell
Instanzen von
Actor
Hund wartend
State
Neues
Sprachelement
Schwergewichtige
Erweiterung
(Ändern des
Metamodells)
Leichtgewichtige
Erweiterung
(ohne Ändern des
Metamodells)
14. Systemmodellierung mit SysML - Stereotypen und Profile 14
Benutzung eines Stereotypen (2)
Hund
«JavaClass»
Tier Vierbeiner
● Stereotypen in „Guilleme(n)ts“ angeben
15. 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
16. Systemmodellierung mit SysML - Stereotypen und Profile 16
Definition eines Stereotypen (1)
● Erweiterungsbeziehung (engl. extension):
«metaclass»
Class
«stereotype»
JavaClass
17. 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
18. 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
19. 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
20. 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»
22. 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.
23. 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]
25. 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
26. 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
27. 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
28. 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?
29. 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
MetaModell
Referenzieren
30. 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»
…
…
Farbe
31. 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
32. 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
33. 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)