Definition komplexer Editieroperationen. 4. Dezember 2012

Ähnliche Dokumente
Definition von visuellen Sprachen

Model-Driven Software Engineering (HS 2011)

Software-Refactoring. 29. Mai 2013

Die abstrakte Syntax der Unified Modeling Language

Software-Refactoring. 27. Mai 2015

Visuelle DSLs Trends in der Softwaretechnik: Domänenspezifische Sprachen (Seminar WS 2010/11) Thorsten Arendt

Validation und Quick Fixing mit Xtend. 3. Dezember 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Modellbasiertes manuelles Testen: Techniken und Tücken

COPE COuPled Evolution of metamodels and models

Visuelle Sprachen und Ihre Ausdrucksmittel

Henshin: Modelltransformationen in EMF. Dr. Thorsten Arendt Marburg, 29. Oktober 2015

Softwarequalität: Zusammenfassung und Ausblick. 17. Juli 2013

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme

Klausur zur Vorlesung Grundbegriffe der Informatik 14. September 2015 Lösungsvorschläge

Vorlesung Software Engineering

Modellgetriebene Entwicklung eingebetteter Systeme mit Eclipse

Softwaretechnik Model Driven Architecture Metamodellierung

Buchvorstellung Domain-Driven Design

Vorlesung "Software-Engineering"

Systemmodellierung mit SysML - Stereotypen und Profile

Kapitel 5: Syntaxdiagramme und Grammatikregeln

MDA-Praktikum, Einführung

Struktur der UML-Spezifikationen

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Software-Evolution im Staged Lifecycle Model

HdM-Stuttgart, FB1, MI Probeklausur 1, Informatik 4 Prof. Dr. Edmund Ihler. Fachhochschule Stuttgart Hochschule der Medien.

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert Vgl. Kapitel 4/5 aus Basiswissen Requirements Engineering, Klaus Pohl,

Konzeption und Implementierung eines Generators für visuelle Sprachumgebungen in Eclipse basierend auf Graphtransformationen.

Modellgetriebene Softwareentwicklung. 31. Januar 2013

Vorlesung Software Engineering I

Was ist Wartung und welche vier Arten der Wartung unterscheidet die Norm ISO/IEC 12207? Wie lautet die Regel von Boehm? (ein Beispiel ausrechnen)

Rückblick. Bisher: Semantische Sicht der Logik KNF, Horn, Erfüllbarkeit

Der deterministische, endliche Automat. Formale Grundlagen der Informatik 1 Kapitel 3 Mehr zu regulären Sprachen

Comparing Software Factories and Software Product Lines

Kollaboratives, leichtgewichtiges Erzeugen von Modellskizzen und zugehörigen Notationen im Rahmen von RE Workshops

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Was bisher geschah: Formale Sprachen

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Einführung in das Eclipse Modeling Framework (EMF)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Eclipse Modeling Framework

Design Patterns. 3. Juni 2015

Entwicklung einer domänenspezifischen Modellierungssprache. 12. November 2014

SigmaPlots Gleichungsplotter und Solver

WhiteStarUML Tutorial

Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme)

FACHHOCHSCHULE MANNHEIM

Übungsaufgaben zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 6

7. Syntax: Grammatiken, EBNF

Kapitel 4: Syntaxdiagramme und Grammatikregeln

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 7. Februar 2013

Thema 2 Acceleo-MTL- Sprachmittel

Modellgetriebene Softwareentwicklung: Zusammenfassung und Ausblick. 11. Februar 2015

Codegenerierung mit Xtend. 21. Januar 2015

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Einschub - Die Object Constraint Language in UML Oder: Wie man Zusicherungen in UML angibt

Language Workbench. Aktuelle Themen der Softwaretechnologie. Vortrag von: Arthur Rehm Steven Cardoso. Betreut von: Prof. Dr.

Grundbegriffe für dreiwertige Logik

Einführung in das Eclipse Modeling Framework (EMF)

BABOK Knowledge Area Requirements Analysis Modeling Techniques - Process Models - - State Diagrams - Holger Dexel,

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Nichtmonotones Schließen

Die Grundsätze können durch Modellierungskonventionen ausgestaltet werden

Kapitel 8: Zugriffskontrolle

Webbasiert und kollaborativ: ein Requirements Editor auf Basis von ReqIF

Einschub: Erkennung durch Monoide

Evolution vs. semantische Konsistenz

U4 Arbeiten mit eigenen PSpice-Modellen

Institut für Informatik Betriebliche Informationssysteme Graph-basiertes Reengineering

Anforderungsmanagement und modelbasierte Entwicklung

Software- und Systementwicklung

Dipl.-Inform. Lars Ebrecht

Software Engineering II

Probeklausur 2. Name: Vorname: Matrikelnr.: Datum:

Kiwi. Modellkonsistenz. Themenbereich Modellmanagement und Qualität

Klassifikation von Modelltransformationen

Von IPSEN zu mechatronischen Entwurfsumgebungen

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Kapitel 1: Endliche Automaten Gliederung 1. Endliche Automaten

Einführung in Android (2) 16. Dezember 2014

Programmverstehen 3: Detailliertes Verständnis. Dr. Thorsten Arendt Marburg, 10. Dezember 2015

Untersuchung zur Verständlichkeit von Prozessmodellen

LabVIEW. 1.Einleitung

6 F O R M A L E S P R A C H E N. 6.1 formale sprachen

Programmieren in C/C++ und MATLAB. Programmieren in C/C++ und MATLAB. Sebastian Bauer Sven Willert Sabine Schmidt

Modellbasierte Softwareentwicklung

Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. Einführung, XML-Grundlagen und -Konzepte. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Einführung in UML. Überblick. 1. Was ist UML??? 2. Diagrammtypen. 3. UML Software. Was ist ein Modell??? UML Geschichte,...

Syntax von Programmiersprachen

Anleitungen zu den Übungen mit CIP Tool

Thomas Behr. 17. November 2011

2.3 Spezifikation von Abstrakten Datentypen

Warum Programme Verträge schließen sollten

Grundlagen von MOF. Alexander Gepting 1

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010

Transkript:

Definition komplexer Editieroperationen 4. Dezemer 2012 169

Üerlick Metamodellierung und Graphtransformation Was unterscheidet die Syntaxdefinition mit Graphgrammatiken von der üer Metamodelle? Wie kann man eide Welten gewinnringend vereinen? Wie kann man mit Hilfe von Graphtransformation komplexe Editieroperationen spezifizieren? Welche Editieroperationen werden enötigt? Wie können wir die Qualitätssicherung von visuellen Modellen unterstützen? Modellmetriken, Model-Smells Modell-Refactoring Taentzer Visuelle Sprachen 170

Sprachentwicklungsprozess Anforderungserfassung: Informell Sprachdesign Mit Metamodellierung Graphgrammatiken hilfreich Editordesign Grundeditor durch Metamodell Optimierung durch Graphtransformation Requirements elicitation Language elements and relations Visual alphaet Alphaet operations Language design Editor design constraints in natural language and/or patterns OCL constraints Complex edit operations Taentzer Visuelle Sprachen 171

Astrakte Syntaxdefinition von einfachen Aktivitätendiagrammen Metastrukturen/Typgraph: Taentzer Visuelle Sprachen 172

Wohlgeformtheitsregeln 1. Genau eine Start- und eine Endaktivität. context diagram inv: activities-> select( oclistypeof(startactivity)) -> size() = 1 and activities-> select( oclistypeof(endactivity)) -> size() = 1 2. Genaue Anzahl von einkommenden und ausgehenden Transitionen pro A.typ. context Next inv: not (egin.oclistypeof(endactivity)) egin.oclistypeof(startactivity) egin.oclistypeof(simpleactivity) egin.oclistypeof(decisionactivity) egin.oclistypeof(mergeactivity) not (end.oclistypeof(startactivity)) end.oclistypeof(endactivity) end.oclistypeof(simpleactivity) end.oclistypeof(decisionactivity) end.oclistypeof(mergeactivity) 3. Nur von Decision ausgehende Transitionen haen Texte. context Next inv: egin.oclistypeof(decisionactivity) implies inscr <> Taentzer Visuelle Sprachen 173

Beispiele: Graph Constraints (1) :StartActivity :StartActivity :StartActivity :EndActivity :EndActivity :EndActivity (2a) 1:StartActivity 1:StartActivity 1:StartActivity 1:StartActivity e (2) 1:Decision 1:Decision e 1:Decision Taentzer Visuelle Sprachen 174 e 1:Decision e

Beispiele: Graph Constraints (4) 1 1 2:Decision 2:Decision inscr<> 1 Inscr= 1 :StartActivity 1 :SimpleActivity 1 :Merge (5) e 1:SimpleActivity 1:SimpleActivity 1:SimpleActivity e 1:SimpleActivity e Taentzer Visuelle Sprachen 175

Graphgrammatik für Aktivitätendiagramme Startgraph: Regeln: Taentzer Visuelle Sprachen 176

Alphaetoperationen Für jedes knotenartige Symol: :StartActivity :Decision :EndActivity Für jedes kantenartige Symol: :Merge 1:Activity 1:Activity 2:Activity 2:Activity e Für jedes Attriut: 1 1 Inscr=x 1:SimpleActivity 1:SimpleActivity name=x Taentzer Visuelle Sprachen 177

Komplexe Editieroperationen Editierschritte können durch Graphtransformationsregeln spezifiziert werden. Graphgrammatikregeln geen Hinweise auf sinnvolle Editieroperationen. Einfachere Editieroperationen lassen flexiles Editieren zu, erlauen aer auch inkonsistente Diagramme. QuickFix- Operationen wären sinnvoll, um wieder zu konsistenten Diagrammen zu gelangen. Komplexere Editieroperationen können sinnvoll sein, um größere Änderungen (z.b. für Refactoring) in einem Schritt durchzuführen. Taentzer Visuelle Sprachen 178

Definition von Editoroperationen Definition einer Editiergrammatik GG E Die Menge der Syntaxregeln ist in der Menge der Editierregeln enthalten, d.h. P C P E Die Gleichheit der erzeugten Sprachen ist zu zeigen, d.h. L(GG E ) = L(GG C ) GG E = (T C, S C, P E ) GG C = (T C, S C, P C ) Taentzer Visuelle Sprachen 179

Syntaxgesteuertes Editieren von Aktivitätendiagrammen Einfügen: Einfügen von einfachen Aktivitäten nach der Startaktivität Einfügen von einfachen Aktivitäten nach einfachen Einfügen von Entscheidungsstrukturen Verändern: Umenennen von Aktivitäten und Bedingungen Löschen: inverse Einfügeregeln mit weniger Parametern Taentzer Visuelle Sprachen 180

Sprachgleichheit Nur syntaxgesteuertes Editieren: Grammatikregeln, inverse Regeln, renameactivity, renamecondition L(GG C ) L(GG E ):da P C P E L(GG E ) L(GG C ): Für jede Transformation mit GG E git es eine mit GG C. Einfügen: Graphgrammatikregeln für das Einfügen von Symolen Verändern: renameactivity ist nur anwendar, wenn vorher eine Aktivität erzeugt wurde. moveactivity verändert nur das Layout. Löschen: deletesimpleactivity kann nur angewendet werden, wenn vorher insertsequentialactivity angewendet wurde. Das Resultat ist wie vor dieser Sequenz. ähnlich für Decision und SimpleActivityAfterStart Taentzer Visuelle Sprachen 181

Weitere Editieroperationen Komplexe Operationen: Zusammengesetzt aus den Grundoperationen Verändert die editierte Sprache nicht Kürzt Editierprozesse a Implementiert Modellierungskonventionen QuickFix-Operationen: Stellt korrekte Syntax her Können aus den Grammatikregeln hergeleitet werden: Einettung von (kominierten) Grundregeln in Syntaxregeln Bestimmung aller möglichen Restregeln Diese spezifizieren Quick- Fixes. Taentzer Visuelle Sprachen 182

Beispiel: Komplexe Editieroperation Komination der Regeln insertsimpleactivityafterstart und insertdecision Taentzer Visuelle Sprachen 183

Beispiel: Quick-Fix-Operation Nach dem Einfügen einer simplen Aktivität muss diese in den vorhandenen Kontrollfluss integriert werden. Taentzer Visuelle Sprachen 184

Nach Mohagheghi et.al.: Modellqualität Korrektheit: Die richtigen Elemente und Relationen Die richtigen Aussagen üer die Domäne Keine Regel- und Konventionsverletzungen Vollständigkeit: Alle relevanten und notwendigen Informationen Detailliert genug für den Modellierungszweck Konsistenz: Keine Widersprüchlichkeiten Verständlichkeit: für die intendierten Benutzer verständlich Beschränktheit: Relevante Informationen auf der richtige Astraktionseene Veränderarkeit: Schnelle und kontinuierliche Modelländerungen werden ermöglicht. Taentzer Visuelle Sprachen 185

Modellqualitätssicherung Modellmetriken: Modellmetriken messen quantifizierare Modellaspekte. Modellierungskonventionen: Standardisierung der Modelle Best Practices Vermeidung von Fehlern Model Smells: Model Smells zeigen verdächtige Modellteile auf. Modell-Refactoring: Refactorings können Model Smells eliminieren (aer auch neue erzeugen). Taentzer Visuelle Sprachen 186

Beispiele für Modellmetriken Größe eines Modells: Anzahl der Modellelemente Halstead-Metrik: Anzahl der Verzweigungen im Kontrollfluss Wie komplex ist ein Aktivitätendiagramm? Hierarchietiefe ei hierarchischen Aktivitäten Anzahl der Aktivitäten in einer Aktivität Anzahl der Aktivitäten in einem Zweig Spezifikation von Modellmetriken: OCL Graph Patterns Taentzer Visuelle Sprachen 187

Genügt das Modell den Modellierungskonventionen? Namenskonventionen Z.B: Es kommt ein Ver vor. Z.B: Kleingeschrieen, CamelCase Kommentare Größe eines Diagramms Anzahl der Modellelemente Hierarchietiefe Layoutkonventionen Z.B.: Von oen nach unten oder von links nach rechts laufender Kontrollfluss spezielle Modellierungspraktiken Z.B. Bedingungen an einer Decision: Bedingung und sonst Modell Konventionenchecker Liste der Konventionsverletzungen Taentzer Visuelle Sprachen 188

Kann die Modellstruktur optimiert werden? Modell Model Smell Verdächtiges Modellmuster wird erkannt. Quick Fix Modellveresserung wird vorgeschlagen Modell-Refactoring Optimierung der Modellstruktur ohne Semantikänderung Definition von Modellmustern Modelloptimierer Liste von Warnungen Bad Model Smell + Quick Fix restrukturiertes Modell Taentzer Visuelle Sprachen 189

Beispiele: Refactoring von Aktivitätendiagrammen Vereinigen: Hat eine Entscheidung zwei gleiche Anfänge, werden diese vereinigt und hochgezogen. (Pull out) Implizite Entscheidung (Implizites Zusammenführen): Zwei aus einer Aktivität ausgehende Transitionen mit Bedingungen werden durch das Einfügen einer Entscheidungsaktivität explizit gemacht. Entscheidung ohne späteres Zusammenführen: Zwei aus einer Entscheidung ausgehende Transitionspfade werden mit einem Merge zusammengeführt. Einkapseln (Entkapseln): Modellelemente in einem Zweig werden in eine neue Aktivität gekapselt. Taentzer Visuelle Sprachen 190

Beispiel: Refactoring von Aktivitätendiagrammen Taentzer Visuelle Sprachen 191

Zusammenfassung Aus Metamodellen ageleitet: Alphaetoperationen: Grundoperationen zum Einfügen, Löschen und Verändern von Modellelementen und -relationen Aus Graphgrammatiken ageleitet: Editieroperationen zum syntaxgesteuerten Editieren Die aus einer Grammatik ageleiteten Editieroperationen verändern die durch die Grammatik definierte Sprache nicht. Weitere Editieroperationen lassen sich eenfalls durch Graphregeln spezifizieren. Komplexere Editieroperationen fassen mehrere Editierschritte zu größeren zusammen. Quick-Fix-Operationen stellen die syntaktische Konsistenz von Modellen wieder her. Taentzer Visuelle Sprachen 192