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.