Präsentation herunterladen
Veröffentlicht von:Otto Dressler Geändert vor über 9 Jahren
1
xUML - executable UML Vortrag im Rahmen des Seminars zum Thema Modellgetriebene Softwareentwicklung René Heilmann
2
Inhalt Motivation Was ist xUML? Ablauf der Modellierung
Zusammenfassung Ausblick René Heilmann executable UML
3
Motivation Experteneinsatz in ihren Fachgebieten unterstützen
Domainexperten Softwareentwicklungsexperten Funktionale Verhalten der Software auf Basis des Modells verifizierbar Agile Softwareentwicklung auf neuer Abstraktionsebene Abtrennung der Anforderungen durch die Plattform von der Anwendung Austauschbarkeit der Hardware- und Softwareplattform erreichen René Heilmann executable UML
4
Was ist xUML? auch x(t)UML, für executable and translatable UML
Integration von Modell und Programmiersprache für gleiche Semantik stehen grafische und textbasierte Notation zur Verfügung UML-Profil eingegrenzte UML Modellmenge + präzisere Elementbeschreibung, entfernte Doppelbelegung „Stützpfeiler“ der MDA Nutzermodelle gemäß xUML entsprechen PIMs Abgrenzung von der MDA PSM als entbehrliche grafische Zwischenstufe zum Code angesehen René Heilmann executable UML
5
Ablauf der Modellierung
externe Sicht auf Systemverhalten Domainspezifikation USE-CASEs Erkennen der Anforderungen interne Sicht Klassen Constraints Lebenszyklus Kommunikation / Synchronisation der Objekte Domänenverifikation Modellkompilierung / -verbund René Heilmann executable UML
6
Ablauf: Domains und USE-CASEs
Domain (realer, abstrakter, hypothetischer Problemraum): voneinander eindeutig abgrenzbaren Teile des System Darstellung: grafisch - Domain Chart + textbasierte Beschreibung Verknüpfung über „Join Points“, Umsetzung über Bridges USE-CASE: dienen Modellgründung und Testfallermittlung, keine Ausführbarkeit Aktivitätsdiagramme zur Verdeutlichung der Abfolge Annahme Anforderung Domäne Bridge Domäne2 Anforderung Annahme René Heilmann executable UML
7
Ablauf: Klassen I Modellierung mithilfe von Klassendiagrammen
Attribute: core type, domain type (nutzerdefiniert, sind zu bevorzugen) Operationen / Methoden definiert über klasseneigene Zustandsmaschine Signale ist nicht mit Operation gleichzusetzen, sondern Auslöser Parametrisierung möglich Assoziationen Generalisierung, Spezialisierung, ... analog UML Klassenmodellierung erzwingt keine objektorientierte Umsetzung René Heilmann executable UML
8
Ablauf: Klassen II Action Language: bildet Umgang mit (konkreten) Instanzen ab Erstellen, Löschen, Zugriff auf Attribute, Iterationen, Auswahl, Datenmanipulation, Berechnungen (allgemein) abstrahiert Details der Softwareplattform (Datenstrukturen) Basis bildet „Precise Action Semantics for UML“, mit eigens für xUML definierten Syntax Constraints: Regeln zur Festlegung gültiger Werte Umsetzung mittels OCL (Object Constraint Language) ausführbar, definiert berechenbare Werte, unterstützt Laufzeittests René Heilmann executable UML
9
Ablauf: Lebenszyklus I
Abbildung von Ereignis – Zustandsrelation der Instanzen einer Klasse mittels Zustandsmaschine Abbildungsmittel: Zustandsdiagramm Elemente: Zustände, Ereignisse Transition (Regel zur Festlegung welcher neue Zustand durch welches Ereignis eintritt) Prozeduren (notwendige, zu vollendende Aktivität / Operation bei Erlangung eines neuen Zustandes Action Language) initiale, finale Pseudozustände ergänzend: Zustandsübergangstabelle Matrix aus Ereignisse X Zustände finden verborgener Übergänge, Kombinierbarkeit René Heilmann executable UML
10
Ablauf: Lebenszyklus II
Kommunikation / Synchronisation von Objekten Abbildungsmittel Interaktionsdiagramme: Kollaborationsdiagramme - Kommunikation zwischen Klassen Sequenzdiagramme – zeitl. Verlauf eines Szenarios, bei bekannten Zuständen und Attributwerten Informationsaustausch als Signale zwischen den nebenläufigen Instanzen der jeweiligen Zustandsmaschinen Modellierer hat korrekte Reihenfolge und Datenkonsistenz zu garantieren René Heilmann executable UML
11
Überblick René Heilmann executable UML
12
Ablauf: Domänenverifikation
Testfälle für einzelnen Use-Case betrachtet eine Aktivität: precondition, initiales Signal, postcondition Basis = Szenario: Kombination aus initialem Systemzustand (Zustandsmaschine), festgelegter Wertebereich für Signalparameter und Attributwerte Menge der Testfälle durch Anfangszustände und Signalparameterwerte bestimmt Testvektoren bestimmen ein bestehen / fehlschlagen des Tests Automatisierung mithilfe der Action Language René Heilmann executable UML
13
Ablauf: Modellcompiler
Compiler trifft HW- / SW-Entscheidungen allein Compiler entscheidet wie die einzelnen Modellelemente in Quelltext umgesetzt werden Verflechtung der Nutzermodelle: Regelwerk aufgebaut aus Urtypen (archetypes) Urtypen: Fragment aus Datenzugriff und Textmanipulation, welches formal eine Überführung in Text beschreibt Datenzugriff – Repository aus xUML Modellen Textmanipulation – mögliche Anpassung der Textausgabe René Heilmann executable UML
14
Zusammenfassung I Compiler Quelltext „weaving“ Abstraktionsebene
xUML-Metamodell Systemarchitektur Metamodell xUML Anwendungsmodelle Quelltext Compiler „weaving“ Abstraktionsebene René Heilmann executable UML
15
Zusammenfassung II möglicher Einsatz von Experten aus Anwendungsgebiet
Plattformunabhängigkeit, vereinfachte Technologiewechsel erhöhte Wiederverwendbarkeit und Qualität debuggen auf Modellebene UML versierte Anwender kaum Einarbeitung fördert konkurrierende Entwicklung René Heilmann executable UML
16
Ausblick Ergebnisse der OMG QVT Standardisierung könnte nochmals zu Veränderungen führen (Metamodellmapping untereinander) OMG RFP für Standard um Metamodell nach Text zu mappen Entwickler nur noch Modellierung und Modellkompileranpassung darunterliegende Ebene (höhere Programmiersprache) bleibt unangetastet, wie heutzutage Assemblerebene René Heilmann executable UML
17
Quellen Mellor, Stephen, Balcer, Marc: Executable UML – A Foundation for Model-Driven Architecture. Addison-Wesley, 1. Auflage 2002 René Heilmann executable UML
18
Vielen Dank für Ihre Aufmerksamkeit
René Heilmann executable UML
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.