Definition of a Type System for Generic and Reflective Graph
Total Page:16
File Type:pdf, Size:1020Kb
Definition of a Type System for Generic and Reflective Graph Transformations Vom Fachbereich Elektrotechnik und Informationstechnik der Technischen Universitat¨ Darmstadt zur Erlangung des akademischen Grades eines Doktor-Ingenieurs (Dr.-Ing.) genehmigte Dissertation von Dipl.-Ing. Elodie Legros Geboren am 09.01.1982 in Vitry-le-Franc¸ois (Frankreich) Referent: Prof. Dr. rer. nat. Andy Schurr¨ Korreferent: Prof. Dr. Bernhard Westfechtel Tag der Einreichung: 17.12.2013 Tag der mundlichen¨ Prufung:¨ 30.06.2014 D17 Darmstadt 2014 Schriftliche Erklarung¨ Gemaߨ x9 der Promotionsordnung zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften (Dr.-Ing.) der Technischen Uni- versitat¨ Darmstadt Ich versichere hiermit, dass ich die vorliegende Dissertation allein und nur unter Verwendung der angegebenen Literatur verfasst habe. Die Arbeit hat bisher noch nicht zu Prufungszwecken¨ gedient. Frederiksberg (Danemark),¨ den 17.12.2013 ..................................... Elodie Legros Acknowledgment My very special thanks go to my advisor, Prof. Dr. rer. nat. Andy Schurr,¨ who has supported me during all phases of this thesis. His many ideas and advices have been a great help in this work. He has always been available every time I had questions or wanted to discuss some points of my work. His patience in reviewing and proof-reading this thesis, especially after I left the TU Darmstadt and moved to Denmark, deserves my gratitude. I am fully convinced that I would not have been able to achieve this thesis without his unswerving support. For all this: thank you! Another person I am grateful to for his help is Prof. Dr. Bernhard Westfechtel. Reviewing a thesis is no easy task, and I want to thank him for having assumed this role and helped me in correcting details I missed in my work. I had the chance to work in a friendly atmosphere with very nice colleagues in the Real-Time Systems Lab at the TU Darmstadt. It helped me in persevering in the long journey this thesis has been, and I feel very thankful for it. I would like to address a special thank to Carsten Amelunxen and Felix Klar as co-writers of pub- lications. They helped me a lot in developing ideas, concept and examples which are now integrated in this thesis. I also want to thanks Martin Wieber, not only for the cooperation on the MAJA project, but also for having been such a kind and cheerful colleague. I also want to thank Dr. Ingo Sturmer,¨ Anna Trogel¨ and Jae-Won Choi (Model Engineering Solutions) for the collaboration in the MATE/MAJA projects, i.e. the context and motivation for my work. Speaking about the MAJA project, I am grate- ful to the Federal Ministry of Education and Research (BMBF) who supported this project by providing research funding. My thanks go to the Software Engineering Research Group Kassel for having been such a great help for all questions concerning the SDM graph transformations. I am grateful to the Technische Universitat¨ Darmstadt too for the research grants which allowed me to start this thesis. Finally, I want to thank my boyfriend for his patience each time I had to say “no” to a trip or just a walk because I had to work on my thesis. Last but not least, my parents deserve my gratitude for their patience and support. They heard the word “thesis” for so many years almost every time I called them, and every time they cheered me up. Merci a` tous les deux, Papa et Maman! Abstract This thesis presents the extension of the graph transformation language SDM (Story Driven Modeling) with generic and reflective features as well as the definition of type checking rules for this language. The generic and reflective features aim at improving the reusability and expressiveness of SDM, whereas the type checking rules will ensure the type-safety of graph transformations. This thesis starts with an explanation of the relevant concepts as well as a descrip- tion of the context in order to provide the reader with a better understanding of our approach. The model driven development of software, today considered as the standard paradigm, is generally based on the use of domain-specific languages such as MATLAB Simulink and Stateflow. To increase the quality, the reliabil- ity, and the efficiency of models and the generated code, checking and elimination of detected guideline violations defined in huge catalogues has become an essen- tial, but error-prone and time-consuming task in the development process. The MATE/MAJA projects, which are based on the use of the SDM language, aim at an automation of this task for MATLAB Simulink/Stateflow models. Modeling guidelines can be specified on a very high level of abstraction by means of graph transformations. Moreover, these specifications allow for the generation of guide- line checking tools. Unfortunately, most graph transformation languages do not offer appropriate concepts for reuse of specification fragments - a MUST, when we deal with hundreds of guidelines. As a consequence we present an extension of the SDM language which supports the definition of generic rewrite rules and combines them with the reflective programming mechanisms of Java and the model reposi- tory interface standard JMI. Reusability and expressiveness are not the only aspects we want to improve. An- other fundamental aspect of graph transformations must be ensured: their correct- ness in order to prevent type errors while executing the transformations. Checking and testing the graph transformations manually would ruin the benefit obtained by the automation of the guideline checking and by the generic and reflective features. Therefore, we propose in this work a type-checking method for graph transforma- tions. We introduce a new notation for rules of inference and define a type system for SDM. We also proposed an algorithm to apply this type system. We illustrate and evaluate both contributions of our work by applying them on run- ning examples. Proposals for other additional SDM features as well as for possible improvements of our type checking open new perspectives and future research to pursue our work. Keywords: Graph transformations, SDM, generic, reflective, type checking, rules of inference Zusammenfassung Diese Arbeit stellt die Erweiterung der Graphtransformationssprache SDM (Story Driven Modeling) mit generischen und reflektiven Features sowie die Definition eines Typsystems vor. Die generischen und reflektiven Features haben zum Ziel die Verbesserung der Wiederverwendung und Ausdrucksfahigkeit¨ von SDM, wahrend¨ die Ableitungsregeln (oder Inferenzregeln) des Typsystems die Typsicherheit der Graphtransformationen gewahrleisten.¨ Diese Dissertation fangt¨ mit einer Beschreibung der relevanten Begriffe sowie des Kontextes an, um dem Leser ein besseres Verstandnis¨ unseres Ansatzes´ zu ermit- teln. Die modellgetriebene Softwareentwicklung, die heutzutage als Standard gilt, basiert generell auf domainspezifischen Sprachen wie MATLAB Simulink und Stateflow. Um die Qualitat,¨ die Verlasslichkeit¨ und die Effizienz von Modellen und von dem generierten Code zu garantieren, sind die Uberpr¨ ufung¨ und die Behe- bung der verletzten Modellierungsrichtlinien eine notwendige, aber fehleranfallige¨ und zeitaufwandige,¨ Aufgabe wahrend¨ des Entwicklungsprozesses. Das Ziel der MATE/MAJA-Projekte, die auf der Verwendung der SDM-Transformationssprache basieren, ist die Automatisierung dieser Aufgabe fur¨ MATLAB Simulink/Stateflow Modelle. Die Modellierungsrichtlinien konnen¨ auf einem hohen Abstraktionsniveau mit Hilfe von Graphtransformationen spezifiziert werden. Diese Spezifikationen ermoglichen¨ dazu die Generierung von Werkzeugen zur Richtliniensanalyse. Lei- der bieten die meisten Graphtransformationssprachen die zur Wiederverwendung geeigneten Konzepte nicht an - ein MUSS, wenn man sich mit Hunderten von Richtlinien beschaftigt.¨ Deshalb stellen wir eine Erweiterung der SDM-Sprache, die die Spezifikation von generischen Graphersetzungsregeln unterstutzt,¨ und die diese mit den reflektiven Programmierungsmechanismen von Java und dem Stan- dard JMI kombiniert, vor. Wiederverwendung und Ausdrucksfahigkeit¨ sind nicht die einzigen Aspekte, die wir verbessern mochten.¨ Ein anderer wichtiger Aspekt der Graphtransformatio- nen muss gepruft¨ werden: ihre Korrektheit, um Typfehler bei der Ausfuhrung¨ der Transformationen zu unterdrucken.¨ Eine manuelle Uberpr¨ ufung¨ der Graphtrans- formationen wurde¨ den Vorteil der automatisierten Richtliniensanalyse und der generischen und reflektiven Features zunichte machen. Deshalb schlagen wir in dieser Arbeit einen Ansatz zur Typuberpr¨ ufung¨ von Graphtransformationen vor. Wir fuhren¨ eine neue Notation fur¨ die Inferenzregeln ein und definieren ein Typ- system fur¨ SDM. Wir veranschaulichen und evaluieren die beiden Beitrage,¨ indem wir diese auf konkreten Beispielen anwenden. Vorschlage¨ fur¨ weitere SDM-Features sowie mo-¨ gliche Verbesserungen von unserem Typsystem bieten Anregungen fur¨ kunftige¨ Arbeite an. Stichworter:¨ Graphtransformationen, SDM, Generizitat,¨ Reflektivitat,¨ Typsicher- heit, Inferenzregeln Contents 1 Introduction 15 1.1 Context and Motivation . 15 1.2 Contribution . 17 1.3 Overview . 19 2 Fundamentals 21 2.1 Meta-Object Facility and Java Metadata Interface . 21 2.1.1 Model Driven Engineering . 22 2.1.2 Meta Object Facilities . 23 2.1.3 Java Metadata Interface . 25 2.2 Model Transformations based on Graph Rewriting . 27 2.2.1 Model Transformations . 27 2.2.2 Graph Rewriting Systems . 29 2.3 MOSL . 32 2.3.1 MOSL Schema and Constraint Languages . 33 2.3.2 MOSL Transformation Language . 35 2.3.3