SE3-6-UML-Erweiterungen

Transcrição

SE3-6-UML-Erweiterungen
SE – Vertiefung
Beuth-Hochschule Berlin
Thema 4
…mehr, als die UML erlaubt:
UML-Erweiterungen
UML ist nicht immer ideal:
 Modellierung von komplexen realen Systemen
(mit oder ohne Softwareanteil)
 Nicht-OO-Sprachen und –Konzepte
– Javascript
– HTML-Seiten, Navigation
 Plattformabhängige Modellaspekte
 Zusätzliche oder Querschnittkonzepte
–
–
–
–
Berechtigungsstrukturen
Timeout-Verbindungen
Broker-Strukturen
Zeitabhängige Systemzustände
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
2
UML-Profil
Profil
 in der Sprache vorgesehener Erweiterungsmechanismus
 keine Veränderung der Sprache UML:
– keine neuen Sprachelemente, sondern Ergänzung der bestehenden
– wichtigster Mechanismus: Kategorienbildung
 werkzeugverträglich
Kurzübersicht:
 ein Profil ergänzt die UML um eine Menge von Stereotypen
 Profile werden in der UML definiert (als Pakete)
 Sie werden auf UML-Pakete, typischerweise Modelle, angewendet
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
3
Einstiegsbeispiel MVC 2
(Turnier)
FrontController
Turnier
Spiel
SpieleListe
Spiele
Teilnehmerliste
NeuesSpiel
Spielerwahl
TN_Wahl
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
4
Turnier MVC 2:
Verschiedenartige Komponenten
FrontController
Turnier
Spiel
SpieleListe
Spiele
Teilnehmerliste
NeuesSpiel
Spielerwahl
TN_Wahl
Webseite
Servlet
JSP
Bean
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
5
Turnier MVC 2:
Verschiedenartige Assoziationen
FrontController
Turnier
Spiel
SpieleListe
Spiele
Teilnehmerliste
NeuesSpiel
Spielerwahl
TN_Wahl
link
request
response
call
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
6
UML-Lösung: Stereotypen
<<request>>
<<Webpage>>
Turnier
<<link>>
<<Bean>>
SpieleListe
<<request>>
<<link>>
<<Webpage>>
Spiel
<<link>>
<<Servlet>>
FrontController
<<link>>
<<Webpage>>
Spielerwahl
<<response>>
<<JSP>>
Spiele
<<response>>
<<JSP>>
NeuesSpiel
<<response>>
(c) schmiedecke 14
<<Bean>>
Teilnehmerliste
SE3-4-UML-Erweiterungen
<<JSP>>
TN_Wahl
7
UML-Profil
 Stereotypen erweitern die UML
 Kategorisierung und Differenzierung beliebiger Modellelemente
 bezogen auf einen bestimmten Kontext
 UML-Sprachmittel zur Stereotypdefinition:
UML-Profil
 Ein Profil ist ein Paket zusammengehöriger Stereotypen
 Zur Verwendung der Stereotypen muss das M1-Modell
das Profil importieren.
 Mehrere Profile können nebeneinander verwendet werden.
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
8
Definition der Stereotypen als UML-Profil
PapyrusDiagrammtyp
UML-Profil
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
9
Mockup der Webpage "Turnier"
Das Turnier 2020
Label
Selektierbare Liste
Spiel 22
Spiel 23
Spiel 24
Spiel 25
Spiel 26
Spiel 27
C 12
C8
B5
B3
C8
C 12
Spieldetails
Neues Spiel
Knopf
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
10
Stereotypen für die JSP-Properties
<<JSP>>
Turnier.
<<Label>>+String titel
<<SelectableList>>+List spiele
<<Button>>+Action Spieldetails
<<Button>>+Action NeuesSpiel
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
11
M1-Eigenschaften der Properties
<<JSP>>
Turnier.
<<Label>>+String titel
<<SelectableList>>+List spiele
<<Button>>+Action Spieldetails
<<Button>>+Action NeuesSpiel
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
max. 11
anzeigen
Länge 8,
Höhe 2
12
Eigenschaften als Stereotyp-Attribute:
"Tagged Values"
TaggedValues:
• Attribute der Stereotypen
• Werden im M1-Modell
mit Werten versehen.
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
13
Beziehungen zwischen Class-Members:
Stereotyp-Assoziationen
<<Servlet>>
FrontController
<<Bean>>
Teilnehmerliste
t>>
onse>>
In M1 wird festgelegt,
welcher Handler zu
welchem Button gehört.
<<Bean>>
SpieleListe
<<JSP>>
Spiele
+spielHinzufuegen()
+spielAendern()
+spielLoeschen()
<<response>>
<<JSP>>
NeuesSpiel
<<JSP>>
TN_Wahl
<<Button>>+neuesSpiel
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
14
Das komplette Profil für Java-WebGUIs
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
15
Profil in Papyrus erstellen
spezielles Papyrus-Projekt:
nicht UML, sondern Profil anklicken
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
16
Profil in Papyrus verwenden
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
17
Stereotyp verwenden
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
18
Was können andere UML-Werkzeuge
 Stereotypen verwenden (informell):
alle Case-Tools
 Profile importieren (formalisiert):
alle "größeren" Case-Tools
 Profile definieren:
MDA-Werkzeuge
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
19
OMG-Definition: UML-Profil
A UML profile is a specification that does one or more of the following:


Identifies a subset of the UML metamodel.
Specifies “well-formedness rules” beyond those specified by the identified
subset of the UML metamodel.
“Well-formedness rule” is a term used in the normative UML metamodel
specification to describe a set of constraints written in UML’s Object Constraint
Language (OCL) that contributes to the definition of a metamodel element.

Specifies “standard elements” beyond those specified by the identified
subset of the UML metamodel.
“Standard element” is a term used in the UML metamodel specification to describe
a standard instance of a UML stereotype, tagged value or constraint.


Specifies semantics, expressed in natural language, beyond those
specified by the identified subset of the UML metamodel.
Specifies common model elements, expressed in terms of the profile.
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
20
Profil - Praktische Definition
Ein Profil



wird im Modell als Paket mit dem Schlüsselwort «profile» dargestellt.
ist eine Spezialisierung von Paket
umfasst zwei Arten von Elementen:
– eine Menge von Stereotypen (elementaren Erweiterungen des Metamodells)
– eine Menge von Paketimporten (Pakete aus dem Metamodell)

Die entscheidenden Elemente sind Stereotypen.
Quelle: Wikipedia
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
21
Profil anwenden



Ein Profil wird auf ein Paket angewendet
Typische Anwendung auf ein Modell (Spezialisierung von Paket)
Profilanwendung ist Spezialisierung des Paketimports
– spezielle Abhängigkeitsbeziehung
– Paket importiert alle Elemente aus dem Profil (z.B. Datentypen)
– Paket kann alle Stereotypen, die im Profil definiert sind, einsetzen.

Eine Profilanwendung Abhängigkeit gezeichnet und trägt das
Schlüsselwort «apply».
Quelle: Wikipedia
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
22
Beispielkontexte für Profilen:
 Anpassung an bestimmte Plattformen
–
–
–
–
–
Java
.Net
EJB
Android
…
 Anpassung an Anwendungsgebiete
–
–
–
–
–
Realzeitsteuerungen
Geschäftsanwendungen
Medizinanwendunngen
Systemmodellierung
…
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
23
Beispiel SysML


SysML represents a subset of UML 2 with extensions […]
SysML leverages the OMG XML Metadata Interchange (XMI®) to
exchange modeling data between tools
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
24
SysML






Strukturdiagramme für Systeme
Anforderungsdiagramm
Zusicherungsdiagramm
Datenaustauschformat ISO AP-233
Modellierung kontinuierlicher Abläufe
Enhanced Functional Flow Block
Diagrams (-kompatibel)
25
Beispiel: ein Android-Profil
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
26
Beispiel: ein DB-Profil
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
27
Beispiel: ein Android-Layout-Profil
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
28
Beispiel EJB 3.0 - Profil
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
29
Quelle: www.uml-diagrams.org/profile-diagrams-examples.html
Beispiel SoaML
Paket Contracts
Quelle: www.uml-diagrams.org/profile-diagrams-examples.html
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
30
Erläuterungen zu SoaML









UML Profile for Service Oriented Architecture
described in the SoaML specification.
(contains both a SoaML metamodel and a SoaML UML profile)
The SoaML UML profile supports modeling of systems of services, individual
service interfaces, and service implementations.
A service is a value delivered to another through a well-defined interface and
available to a community.,
Collaboration, Service Contract or Services Architecture represents a pattern of
interaction between roles.
In SoaML there are three ways to specify a service interaction – a UML Interface,
a Service Interface and a Service Contract.
Consumer models the interface provided by the consumer of a service. The
consumer will normally be the one that initiates the service interaction.
Agent is autonomous entity that can interact with its environment. It can be
software, hardware, firmware, robotic, human, or other.
Port is the part or feature of a participant that is the interaction point for a service .
Quelle: www.uml-diagrams.org/profile-diagrams-examples.html
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
31
Beispiel SoaML
Paket Services
Quelle: www.uml-diagrams.org/profile-diagrams-examples.html
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
32
Beispiel SoaML
Paket Service Data
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
33
Beispiel DICOM 2009 - Standard
Digital Imaging and Communications in Medicine
Quelle: www.umldiagrams.org /profilediagrams-examples.html
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
34
DICOM-Erläuterungen





Standard which facilitates interoperability of medical imaging equipment.
A Service Class Specification defines a group of SOP Classes related to a
specific function to be accomplished by communicating Application Entities. It
also some pre-defined levels of conformance to one or more SOP Classes.
Applications may conform to SOP Classes as either a Service Class User (SCU)
or Service Class Provider (SCP).
Service-Object Pair (SOP) Class is the union of a DIMSE Service Group and one
related Information Object Definition (IOD) The SOP Class definition contains the
rules and semantics which may restrict the use of the services in the DIMSE
Service Group or the Attributes of the IOD.
A DIMSE Service Group specifies operations/notifications which are applicable to
an IOD.
Information Object Definition (IOD) is an abstraction of a real information entity
(e.g., CT Image, Structured Report, etc.) which is acted upon by one or more
DICOM Commands. An IOD does not represent a specific instance of a Real-World
Object, but rather a class of Real- World Objects which share the same properties.
Quelle: www.uml-diagrams.org/profile-diagrams-examples.html
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
35
OMG UML-Profile
















OMG Systems Modeling Language (SysML)
PIM and PSM for Smart Antenna
Service oriented architecture Modeling Language (SoaML®)
UML Profile for CORBA®
UML Profile for CORBA® Component Model (CCM)
& CORBA® Component Model (CCCMP)
UML Profile for Data Distribution
UML Profile for Enterprise Application Integration (EAI)
UML Profile for Enterprise Distributed Object Computing (EDOC)
UML Profile for Modeling and Analysis of Real-time and Embedded Systems
(MARTE)
UML Profile for Modeling QoS and Fault Tolerance Characteristics and
Mechanisms
UML Profile for Schedulability, Performance and Time
UML Profile for Software Radio
UML Profile for System on a Chip (SoCP)
UML Profile for Voice
36
UML Testing Profile (UTP)
Fazit
 Profile sind ein mächtiges Ausdrucksmittel
 Stereotypen ermöglichen Kategorisierungen, die per
OCL-Beschränkung nur schwer darstellbar und
entschlüsselbar wären
 Die Modelle bleiben nicht nur MOF-konform
 sondern UML-Modelle
 Hinweis:
Die Definition von Teilmengen der UML, also der Ausschluss von
UML-Modellelementen funktioniert nicht so elegant …
 Deswegen gibt es z.B. für SysML sowohl ein Profil als auch ein
Metamodell, das die Teilmenge beschreibt.
(c) schmiedecke 14
SE3-4-UML-Erweiterungen
37
in kleinen Schritten ist alles einfach

Nächstes Mal bauen wir eigene Metamodelle.

Documentos relacionados