xUML - executable UML
180 likes | 285 Vues
xUML - executable UML. Vortrag im Rahmen des Seminars zum Thema Modellgetriebene Softwareentwicklung René Heilmann. Inhalt. Motivation Was ist xUML? Ablauf der Modellierung Zusammenfassung Ausblick. Motivation. Experteneinsatz in ihren Fachgebieten unterstützen Domainexperten
xUML - executable UML
E N D
Presentation Transcript
xUML - executable UML Vortrag im Rahmen des Seminars zum Thema Modellgetriebene Softwareentwicklung René Heilmann
Inhalt • Motivation • Was ist xUML? • Ablauf der Modellierung • Zusammenfassung • Ausblick René Heilmann
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
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
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
Annahme Anforderung Domäne1 Bridge Domäne2 Anforderung Annahme 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 René Heilmann
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
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
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
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
Überblick René Heilmann
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
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
xUML Anwendungsmodelle Quelltext Zusammenfassung I xUML-Metamodell Systemarchitektur Metamodell Compiler „weaving“ Abstraktionsebene René Heilmann
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
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
Quellen • Mellor, Stephen, Balcer, Marc: Executable UML – A Foundation for Model-Driven Architecture. Addison-Wesley, 1. Auflage 2002 • http://www.pafis.shh.fi/graduates/leogal01.pdf • http://www.bptrends.com/publicationfiles/06-04%20COL%20Agile%20MDA%20-%20Frankel%20-%20Mellor.pdf • http://www.embedded.com/story/OEG20030115S0043 • http://www.sigs.de/publications/os/2005/MDD/Buehler_MDA_OS_2005.pdf • http://www.acceleratedtechnology.com/embedded/nuc_xtuml.html • http://www.informit.com/articles/article.asp?p=28274&seqNum=3&rl=1 • http://www.stsc.hill.af.mil/crosstalk/2004/09/0409Mellor.html René Heilmann
Vielen Dank für Ihre Aufmerksamkeit René Heilmann