X perf =1.00 X loss =0.01 SDSoftware Design and Quality Flexible Graphical Editors for Extensible Modular Meta Models Master’s Thesis of B.Sc. Michael Junker at the Department of Informatics Institute for Program Structures and Data Organization (IPD) Reviewer: Prof. Dr. Ralf Reussner Second reviewer: Jun.-Prof. Dr.-Ing. Anne Koziolek Advisor: Dipl.-Inform. Misha Strittmatter Second advisor: M.Sc. Heiko Klare 12. April 2016 – 11. October 2016 Karlsruher Institut für Technologie Fakultät für Informatik Postfach 6980 76128 Karlsruhe I declare that I have developed and written the enclosed thesis completely by myself, and have not used sources or means without declaration in the text. Karlsruhe, 10.October 2016 .................................... (B.Sc. Michael Junker) Abstract In model-driven software development, graphical editors can be used to create model instances more eciently and intuitively than with pure XML code. These graphical editors rely on models created on the basis of a meta-model. If such a meta-model is extended invasively not only its code has to be re-generated but also the graphical editor needs to be adapted. When developing multiple extensions, the meta-model as well as the corresponding graphical editor tend to get complex and error-prone. One way of coping with this complexity is to use modular meta-models and extending them noninvasively. However, having multiple meta-model fragments providing extended features is only half the job as equivalent graphical editors are needed as well. This master’s thesis therefore analyzes dierent types of extensions for meta-models as well as on graphical editor level. Next, a short analysis of extension mechanisms follows. These mechanisms are used for dierent realizations of extension types. Like the extension types, the mechanisms are also analyzed for both meta-models and for graphical editors. While the classication of extensions resembles one part of this thesis’ concept, their mapping from meta-model level to graphical editor level marks the second part. This mapping is done in order to show possible impacts of a meta-model extension to its corresponding graphical editor. To validate this concept, the analyzed mappings are implemented exemplarily in two dierent frameworks. Furthermore, the two prototypes show the dierent possibilities each framework has to oer when it comes to their capabilities of extension. Therefore, this thesis can also be seen as guideline for extending a given graphical editor. i Zusammenfassung Im Bereich der modellgetriebenen Softwareentwicklung werden oftmals graphische Edi- toren eingesetzt um die Entwicklung von Modellen zu erleichtern. Diese graphischen Editoren sind dabei auf das den Modellen zugrunde liegende Metamodell angepasst. Falls dieses Metamodell invasiv erweitert wird, muss nicht nur der gesamte Code erneut gene- riert werden, der graphische Editor muss dann ebenfalls an die Erweiterung angepasst werden. Im Falle mehrerer Erweiterungen wird so nicht nur das Metamodell, sondern auch der graphische Editor komplex und fehleranfällig. Weiterhin kann es passieren, dass Endnutzer nicht alle Funktionalitäten des Metamodells und des Editors nutzen möchten, sondern nur einen Teil davon. Weitere Erweiterungen senken dann unter Umständen die Attraktivität des Gesamtprodukts. Eine Möglichkeit dieser Komplexität entgegen zu wirken, ist die Einführung von mo- dularen Metamodellen und damit einhergehend auch Erweiterungen nicht-invasiv zu gestalten. Nichtsdestotrotz sind modulare Metamodelle auch nur dann sinnvoll, wenn die graphischen Editoren auch entsprechend umgesetzt sind, da ansonsten dennoch die gesamte Funktionalität der Metamodelle in einem Editor steckt. Aufgrund dieser Faktoren beschäftigt sich diese Masterarbeit mit den verschiedenen Typen von Erweiterungen auf Metamodell-Ebene sowie auf Ebene der graphischen Editoren. Neben der Klassikation der einzelnen Erweiterungstypen wird dabei auch auf einzelne Mechanismen eingegangen, die zu bestimmten Erweiterungstypen führen können. Während die Klassikation der Erweiterungen eine große Rolle in dieser Arbeit spielt, müssen die Erweiterungen auf beiden Ebenen noch in Zusammenhang gebracht werden. Dabei werden mehrere Abbildungen geschaen, die es erlauben von einer Metamodel- lerweiterung auf mögliche Erweiterungen auf graphischer Editorenebene zu schließen. Dadurch lassen sich die verschiedenen Auswirkungen einer Erweiterung auf Metamodel- lebene auf graphische Editoren besser erkennen. Validiert wird dieses Konzept durch eine exemplarische Implementierung der Abbildungen in zwei verschiedenen Frameworks. Weiterhin zeigen die beiden implementierten Prototy- pen welche Möglichkeiten und Grenzen die beiden Frameworks aufweisen. Dadurch kann diese Arbeit auch als Richtlinie betrachtet werden, mit Hilfe derer die Entwicklung einer Erweiterung vereinfacht werden soll. iii Contents Abstract i Zusammenfassung iii 1 Introduction 1 1.1 Motivation . .1 1.2 Goals of this thesis . .2 1.3 Outline . .2 2 Foundations 5 2.1 Model-Driven Software Development . .5 2.2 Models and Meta-Models . .5 2.3 Domain-Specic Languages . .7 2.4 Modularity . .8 2.5 Extensibility . .9 2.6 Eclipse Modeling Framework . 10 2.7 Graphical Editors . 11 2.7.1 The Graphiti Framework . 12 2.7.2 The Sirius Framework . 13 3 Related Work 15 3.1 Extension of Meta-Models . 15 3.2 Modular Meta-Models . 16 3.3 Language Workbenches . 17 3.4 Extension of Graphical Editors . 18 4 Classification of Extensions 21 4.1 General Approach . 21 4.2 Extension Types and Mechanisms . 22 4.3 Extension Types on Meta-Model Level . 23 4.3.1 New Meta-Class . 25 4.3.2 New Information to Existing Classes . 27 4.4 Extension Mechanisms on Meta-Model Level . 28 4.4.1 Referencing . 28 4.4.2 Inheritance . 31 4.4.3 Realization . 31 4.4.4 Stereotyping . 32 4.4.5 Combination of Extension Mechanisms . 32 v Contents 4.5 Summary of Meta-Model Extension Types and their Realizations . 33 4.6 Extension Types for Graphical Editors . 34 4.6.1 Extend Existing Notation Element . 34 4.6.2 New Notation Element . 38 4.6.3 Add Palette Entry . 39 4.6.4 Add Properties Entry . 39 4.6.5 Extension of Outline View . 39 4.6.6 Add Toolbar Button . 40 4.6.7 Add Button to Context Dependent Menu . 41 4.6.8 Create New View . 42 4.7 Combination of Extension Types for Graphical Editors . 42 4.8 Extension Mechanisms for Graphical Editors . 43 4.8.1 Extension Mechanisms in Graphiti . 43 4.8.2 Extension Mechanisms in Sirius . 44 5 Mapping of Extensions between Meta-Models and Graphical Editors 45 5.1 Mapping of Meta-Class Instance Below Root Node to Graphical Editors . 45 5.1.1 Supported Realizations on Graphical Editor Level . 46 5.1.2 Unsupported Realizations on Graphical Editor Level . 47 5.2 Mapping of Meta-Class Instances as Part of Other Instances to Graphical Editors . 48 5.2.1 Supported Realizations on Graphical Editor Level . 49 5.2.2 Unsupported Realizations on Graphical Editor Level . 51 5.3 Mapping of Adding Attributes to Existing Classes to Graphical Editors . 52 5.3.1 Supported Realizations on Graphical Editor Level . 52 5.3.2 Unsupported Realizations on Graphical Editor Level . 55 5.4 Mapping of Adding a Containment to Existing Classes to Graphical Editors 56 5.4.1 Supported Realizations on Graphical Editor Level . 56 5.4.2 Unsupported Realizations on Graphical Editor Level . 58 5.5 Mapping of the Relation Extension Type to Graphical Editors . 59 5.5.1 Supported Realizations on GRaphical Editor Level . 59 5.5.2 Unsupported Realizations on Graphical Editor Level . 60 6 Implementation and Validation 63 6.1 Overview on Available Scenarios . 63 6.2 Smart Grid Resilience Framework . 64 6.3 Implementation of the Core Meta-Model in Graphical Editors . 66 6.3.1 Sirius Implementation . 66 6.3.2 Graphiti Implementation . 72 6.4 The Input Model Extension . 79 6.4.1 The Input Meta-Model . 80 6.4.2 Adding a Second Model to the Editor . 81 6.4.3 Implementing the Input Model with Sirius . 84 6.4.4 Implementing the Input Model with Graphiti . 90 vi Contents 6.5 The Output Model . 93 6.5.1 The Output Meta-Model . 94 6.5.2 Implementing the Output Model with Sirius . 95 6.5.3 Implementing the Output Model with Graphiti . 97 6.5.4 Problems with Two or More Active Extensions . 100 6.6 Further Extension of the Smart Grid . 101 6.6.1 The Articial Extension Meta-Model . 102 6.6.2 Mapping of the Individual Extension Types . 103 6.6.3 Implementation of a MDSD Prole . 104 6.6.4 Sirius Implementation . 106 6.6.5 Graphiti Implementation . 113 6.7 Summary of the Validated Mappings . 117 6.7.1 Summary of the Validation on Meta-Model Level . 118 6.7.2 Comparison of Extension Types on Graphical Editor Level . 118 6.7.3 Validation of the Mapping in Sirius . 119 6.7.4 Validation of the Mapping in Graphiti . 121 7 Evaluation 123 7.1 Comparison Between the Graphiti and the Sirius Framework . 123 7.1.1 Creating the core editor . 123 7.1.2 Toolbar . 124 7.1.3 Creating the extension . 124 7.1.4 Adding an extension model to the diagram . 124 7.1.5 Further drawbacks . 125 7.2 Content not Supported by the Current Graphical Editor . 125 7.3 Further Scenarios . 126 7.3.1 IntBIIS . 126 7.3.2 Security Extensions . 128 7.3.3 Architectural Data Flow Analysis . 128 8 Conclusion 131 8.1 Conclusion . 131 8.2 Future Work . 132 Bibliography 135 vii List of Figures 2.1 The four meta-levels of OMG described by Stahl et al. [54] . .6 4.1 General approach showing extensions on meta-model and graphical editor level....................................... 22 4.2 A simplied version of the ecore meta-model based on the complete meta- model in [55] . 24 4.3 An exemplary core meta-model and three fragments extending the core meta-model . 25 4.4 The extension type of adding a new meta-class .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages159 Page
-
File Size-