Flexible Views for View-Based Model-Driven Development
Total Page:16
File Type:pdf, Size:1020Kb
The Karlsruhe Series on Software Design and Quality 15 Flexible Views for View-based Model-driven Development Erik Burger Flexible Views for View-based Model-driven Development Erik Burger 15 Erik Burger Flexible Views for View-based Model-driven Development The Karlsruhe Series on Software Design and Quality Volume 15 Chair Software Design and Quality Faculty of Computer Science Karlsruhe Institute of Technology and Software Engineering Division Research Center for Information Technology (FZI), Karlsruhe Editor: Prof. Dr. Ralf Reussner Flexible Views for View-based Model-driven Development by Erik Burger Dissertation, Karlsruher Institut für Technologie (KIT) Fakultät für Informatik Tag der mündlichen Prüfung: 17. Juli 2014 Referenten: Prof. Dr. Ralf H. Reussner Prof. Dr. Colin Atkinson (Universität Mannheim) Impressum Karlsruher Institut für Technologie (KIT) KIT Scientific Publishing Straße am Forum 2 D-76131 Karlsruhe KIT Scientific Publishing is a registered trademark of Karlsruhe Institute of Technology. Reprint using the book cover is not allowed. www.ksp.kit.edu This document – excluding the cover – is licensed under the Creative Commons Attribution-Share Alike 3.0 DE License (CC BY-SA 3.0 DE): http://creativecommons.org/licenses/by-sa/3.0/de/ The cover page is licensed under the Creative Commons Attribution-No Derivatives 3.0 DE License (CC BY-ND 3.0 DE): http://creativecommons.org/licenses/by-nd/3.0/de/ Print on Demand 2014 ISSN 1867-0067 ISBN 978-3-7315-0276-0 DOI: 10.5445/KSP/1000043437 Flexible Views for View-based Model-driven Development zur Erlangung des akademischen Grades eines Doktors der Ingenieurwissenschaften der Fakultät für Informatik des Karlsruher Instituts für Technologie genehmigte Dissertation von Erik Burger aus Mosbach (Baden) Tag der mündlichen Prüfung: 17. Juli 2014 Erster Gutachter: Prof. Dr. Ralf H. Reussner Zweiter Gutachter: Prof. Dr. Colin Atkinson (Universität Mannheim) Abstract Modern software development faces growing size and complexity of the systems that are being developed. To cope with this complexity, several languages and modelling formalisms are used during the development of a system in order to describe it from various view points and at multiple levels of abstraction. These languages and modeling formalisms are specific to the domain of the system under development, to the paradigms that are followed, and to the developer tools being used. For example, in a component-based process, the software architecture may be defined using a component meta- model, while class diagrams are used for the object-oriented design of the system; performance and reliability models express the extra-functional prop- erties; program code in a general-purpose programming language defines the execution semantics, and is used for the implementation of the system. Although all these artefacts follow different concepts and formalisms, they express the same system from various view points and can thus be under- stood as views on the system under development. The entirety of these views can be identified as a complete definition of the system. Although the usage of multiple formalisms offers the advantage that different developers can describe the system from different view points, and in languages and models that are specially designed for this purpose, it introduces the problem of fragmentation of information across heterogeneous artefacts in differ- ent formats, concepts, and languages. With increasing complexity of the systems, this makes navigation through the system description difficult for developers and other roles in the development process. Furthermore, since the concepts and formalisms are managed independently, they can share semantic overlaps, so that a piece of information about the system under i Abstract development can be expressed in several ways and contexts. For example, while a component model may be used to express the prescriptive software architecture of a system, the implementation in a general-purpose program- ming language also determines an implicit architecture of the system, which leads to redundancies in the system descriptions. The independent evolution of these artefacts can lead to inconsistencies, which cannot be identified automatically if the semantic correspondances between the artefacts are not modelled explicitly. View-based software development processes offer two fundamental prin- ciples of adressing this problem: While synthetic approaches integrate the information of heterogeneous models to form a complete system description, projective approaches introduce a common formalism in which all view points of the system can be represented, and generate the views from this central model. While the pure synthetic approach suffers from a quadratic increase of interdependencies between the view types, which become very numerous with a growing number of formalisms that have to be supported, the projective approach faces the problem of providing a common formalism that is able to cover all the view points of the development process, while at the same time providing compatibility to existing formalisms. The VITRUVIUS approach for view-based software development is based on model-driven technologies and combines the advantages of the projective and synthetic approach, while aiming to reduce the disadvantages. It is based on the concept of Orthographic Software Modeling and its core idea that all information about the system under development is represented in a single underlying model (SUM). This concept is refined in the VITRUVIUS approach by constructing metamodels for SUMs as virtual, modular entities that are composed of existing metamodels, and concepts for the semantic correspondances between them. The contribution of this dissertation is an approach for view-based engineering with VITRUVIUS. To that end, this thesis contains a conceptual foundation and a development process for the single underlying model. The development process presented in this ii Abstract dissertation contains a method for the systematic construction of such a modular SUM metamodel for specific development scenarios. The view types, which are used for retrieval and modification of informa- tion in a SUM, hide the modular structure and offer a uniform way of access that makes modifications to the structure of the SUM metamodel possible without having to change the view type structure. The focus of this work and the main contribution is the declarative definition of these view types. This thesis contains the definition of the flexible views concept and the supporting ModelJoin language. Flexible views offer a compact definition of views at the metamodel and at the instance level, together with information about the editability of elements in the views. The modular nature of the SUM and the decoupling of view definitions and the underlying model is also beneficial for the evolution of the modular SUM metamodel and the view type definitions, since the impact of changes can be describe in a fine-granular way for sub-metamodels, correpondences, transformations, and existing instances. One contribution of this dissertation is a change metamodel for the description of changes at the metamodel level as well as at the instance level. Based on this metamodel, we have developed a change impact analysis method for changes to Ecore-based metamodels. The method is agnostic of the way in which the change is applied to the metamodel, since it uses a state-based differencing approach to determine deltas between two metamodels, which serve as the basis for a rule-based analysis of change severity. The view-based VITRUVIUS approach and the flexible view type concept have been validated using a two-step approach: The completeness of the flexible view definition method is demonstrated by showing that the elements of the Ecore metamodel are covered, as well as all possible change operations that can be applied to these elements. The concept of flexible views has been realised in the ModelJoin language, for which a prototypical implementation based on EMF, Xtext and QVT-O has been created. In the second step, the VITRUVIUS approach as a whole was validated using case studies in the field iii Abstract of model-driven software development, which combine several established standards in the field of component-based development, such as the Palladio Component Model, UML, and the Java programming language, as well as in the field of automotive and embedded software, using the standards SysML, EAST-ADL, and MATLAB/Simulink. iv Kurzfassung Moderne Software-Systeme weisen eine hohe Komplexität und eine umfang- reiche Größe auf. Daher werden in der Entwicklung solcher Systeme mehre- re Sprachen und Modelle verwendet, um unterschiedliche Gesichtspunkte und Abstraktionsebenen der Systeme zu beschreiben. Diese Sprachen und Formalismen unterscheiden sich je nach der Domäne des zu entwickelnden Systems, dem jeweiligen Entwicklungsparadigma, sowie den eingesetzten Entwicklungswerkzeugen. Zum Beispiel werden in komponentenbasierten Entwicklungsprozessen Komponentenmodelle zur Beschreibung der Soft- ware-Architektur verwendet, Klassendiagramme für den objektorientiertem Entwurf, Performance- und Zuverlässigkeitsmodelle für nichtfunktionale Eigenschaften, und schließlich Programmcode für die Beschreibung der Ausführungssemantik der Software. Obwohl all diesen Artefakten unter- schiedliche Konzepte und Formalismen zugrunde liegen, beschreiben sie dasselbe System aus unterschiedlichen Blickwinkeln, und können daher als Sichten auf das Software-System verstanden