Vorlesung Software Engineering 6 Unified Modeling Language: Einführung Prof. Dr. Dirk Müller
Übersicht Einführung Software-Entwicklungsprozesse Anforderungsanalyse Prozessanalyse und -modellierung Objekt-orientierte Analyse UML Ziele, Grenzen, Geschichte, Metamodellierung, Bewertung Anwendungsfalldiagramm Klassendiagramm Aktivitätsdiagramm Zustandsdiagramm 2/18
Ziele Unified Modeling Language: vereinheitlichte Modellierungssprache Vereinheitlichte Modellierung, Dokumentation, Spezifizierung und Visualisierung komplexer (Software-)Systeme Notationen für statische und dynamische Elemente Notationsübersicht auf 4 DIN-A4-Seiten [5] besonders für objektorientiertes Vorgehen geeignet Quelle: [3], S. 4 3/18
nicht perfekt (Beabsichtigte) Grenzen der UML nicht vollständig keine Programmiersprache keine rein formale Sprache It is important to note that the current description is not a completely formal specification of the language because to do so would have added significant complexity without clear benefit. [1], S. 21 nicht dediziert für eine Domäne kein vollständiger Ersatz für textuelle Beschreibungen keine Methode, kein Entwicklungsprozess Quelle: [3], S. 4 4/18
Geschichte Quelle: http://commons.wikimedia.org/wiki/file:oo-historie-2.svg Download am 27.05.2014, Lizenz: CC-BY-SA-3.0 5/18
Diagrammarten in der UML 2.4.1 statische Elemente Generalisierung dynamische Elemente Quelle: http://upload.wikimedia.org/wikipedia/de/5/53/uml-diagrammhierarchie.png Download am 27.05.2014 6/18
Metamodellierung meta in relativer, nicht absoluter Bedeutung M3 hat sich selbst als Metamodell, sonst unendlicher Regress Meta Object Facility (MOF): von der Object Management Group (OMG) propagierte Metadaten- Architektur Quelle: http://upload.wikimedia.org/wikipedia/commons/9/93/m0-m3.png Download am 27.05.2014 7/18
Metamodell der Generalisierung Klassendiagramm Paketdiagramm Quelle: [1], S. 49 8/18
Ziele der Metamodellierung Formalisierung mit MOF-Konformität ermöglicht: Austausch von Modellen Modellgetriebene Softwareentwicklung (MDSD) mit automatischer Codegenerierung Modelltransformationen Modell-Refactoring [4] M2M, M2T Anwendung: Austausch von Diagrammen Dozent name nummer adresse Hauptanwendung: MDSD Student name matrikelnummer Extrahiere Oberklasse AkademischerUniangehoeriger name Dozent nummer adresse Student matrikelnummer 9/18
Repräsentation von UML-Elementen Konkrete Syntax Datenaustausch mit Menschen Datenaustausch mit anderer Software Quelle: [3], S. 14 10/18
Austausch von Modellen und Diagrammen XML Metadata Interchange (XMI) sollte Interoperabilität gewährleisten in UML 1.x nur für abstrakte Syntax realisiert konkrete Syntax (z.b. Diagrammlayout) erst ab UML 2.0 über UML 2.0 Diagram Interchange Versionswirrwarr; Studie ergab, dass kleines Klassendiagramm nur in 5 von 42 Fällen erfolgreich transportiert wurde (7 Tools) Umsetzung durch Tool-Hersteller sehr schleppend problemloser Wechsel zu anderem Tool widerspricht ganz und gar wirtschaftlichen Interessen (Lock-in-Effekt) Ausweg sind M2M-Transformationen mit der MOF QVT (Query View Transformation), da so Anpassung an Implementierung der UML im konkreten Werkzeug möglich Quelle: [3], S. 19 f. 11/18
Ziele der Spezifikation der UML Korrektheit Wohlgeformtheitsregeln sollen helfen, Probleme/Fehler in der abstrakten Syntax zu finden Genauigkeit Ausnahmen: Semantic Variation Point und Presentation Option Syntax und Semantik so genau, dass keine Mehrdeutigkeiten für Implementierer (Werkzeuge) oder Nutzer auftreten Prägnanz nicht zu detailliert, keine L'art pour l'art, nichts Überflüssiges Konsistenz Komplementierung des Metamodell-Ansatzes durch Hinzufügen wesentlicher Details in widerspruchsfreier Weise Verständlichkeit natürliche Sprache zur Beschreibung der Semantik Currently, the semantics are not considered essential for the development of tools; however, this will probably change in the future. [1], S. 21 Quelle: [1], S. 21 f. 12/18
Freiheitsgrad: Semantic Variation Point Semantik manchmal mit Lücken, um mehr Flexibilität zu gewährleisten (Erweiterbarkeit mit Stereotypen und Profilen) Changeable default: Standardsemantik ist angegeben, kann aber in einem Profil überschrieben werden z.b. Regeln für einen Automaten im Zustandsdiagramm Multiple choice: explizit mehrere gleichberechtigte Varianten z.b. Behandlung unerwarteter Ereignisse im Zustandsautomaten (a) ignorieren (b) explizit ablehnen (c) zurückstellen Undefined: völlige Freiheit bei Implementierung z.b. Auswahl einer Methodenimplementierung bei Polymorphie vgl. Sprache C Quelle: [1], S. 23 f. 13/18
Freiheitsgrad: Presentation Option konkrete Syntax häufig mit Varianten der Visualisierung prinzipiell Geschmackssache aber: kein Wechsel der Varianten innerhalb eines Projekts Beispiel: Generalisierungsbeziehung zwischen Klassen Quelle: [1], S. 52 14/18
Anwendung und Erfolge UML wird in der Industrie genutzt Kommunikation standardisiert und vereinfacht Produktivität steigt nicht alle 14 Diagrammarten populär Klassen-, Anwendungsfall- und Aktivitätsdiagramm grundlegend Erfolgsgeschichten z. B. unter http://www.uml.org/uml_success_stories/index.htm 15/18
Kritik zu umfangreich somit auch schwer (vollständig) erlernbar mit dem Anspruch einer allgemeinen Modellierungssprache muss sie umfangreich sein exzessiver Einsatz zur Modellierung jedes kleinen Details unpassende Anwendung der Sprache, Missbrauch nicht präzise genug formale Semantik war nicht Ziel Kompromiss mit Lesbarkeit It is important to note that the specification of UML as a metamodel does not preclude it from being specified via a mathematically formal language (e. g., Object-Z or VDM) at a later time. [1], S. 11 16/18
Zusammenfassung UML dominierende Sprache für die Softwaresystem- Modellierung 14 Diagrammarten: 7 statische und 7 dynamische keine Programmiersprache, keine rein formale Sprache abstrakte und konkrete Syntax Formalisierung der Syntax durch Metamodellierung ermöglicht Anwendung in der MDSD Semantik meist natürlichsprachlich erklärt Lücken (Semantic Variation Point, Presentation Option) ermöglichen Anpassung an Domäne mittels Stereotypen oder Profilen 17/18
Literatur [1] OMG Unified Modeling Language (OMG UML), Infrastructure Version 2.4.1, August 2011, Download am 27.05.2014, http://www.omg.org/spec/uml/2.4.1/infrastructure/pdf/ [2] OMG Unified Modeling LanguageTM (OMG UML), Superstructure Version 2.4.1, August 2011, Download am 27.05.2014, http://www.omg.org/spec/uml/2.4.1/superstructure/pdf/ [3] Chris Rupp, Stefan Queins: UML 2 glasklar, Hanser Verlag, 2012, 4. Auflage [4] T. Mens, G. Taentzer, D. Müller: Model-Driven Software Refactoring. In: Model-Driven Software Development: Integrating Quality Assurance, Hrsg.: J. Rech & C. Bunse, IGI Global, Hershey, pp. 170-203, ISBN13: 978-1-60566-006-6, 2008 [5] OOSE, UML-2.5-Notationsübersicht, 2013, Download am 20.11.2016, http://www.oose.de/wp-content/uploads/2012/05/uml-notationsübersicht-2.5.pdf 18/18