Promotionsvorhaben

A Realization Concept for Model-Integrating Software Components

Name
Mahdi Derakhshanmanesh
Status
Abgeschlossen
Abschluss der Promotion
Erstbetreuer*in
Prof. Dr. Jürgen Ebert
Gutachter*in 2
Prof. Dr. Gregor Engels
Component-based as well as model-driven approaches have become popular to support the engineering of complex software systems. In model-driven development and especially according to the model-driven architecture, models are step-wise refined using transformations and, at the end of this transformation chain, code is generated. While models are an essential part of development, the final software consists in large part of code. Furthermore, if models are used at runtime, they are usually not treated as software components.Despite all efforts (e.g., round-trip engineering), the problem arises that over time model and code artifacts may be not aligned. Additionally, valuable design-time knowledge encoded in the models may be lost after code generation, i.e., this knowledge is not part of the final product. Even if models shall be kept inside the deployed system, a guiding realization concept is missing.To avoid the steadily increasing distance between models and code, we propose the integration of (executable) models and code at the level of software components. By interpreting models directly, redundancy -- the source of inconsistencies -- is reduced. There is no redundancy between models and code, unless it is introduced willfully.In this dissertation, we introduce a realization concept for such Model-Integrating Components (MoCos) that is compatible with existing component technologies. Our work is specifically motivated by previous research on self-adaptive software, software product lines and by the use of models in both research areas.Using MoCos, adaptivity and variability can be managed by applying the services of a technological modeling space (e.g., querying/transforming/interpreting) on the embedded models. Models at runtime can be cleanly encapsulated and used like regular software components with clearly defined interfaces.The presented research advances the state of the art in software engineering by introducing the systematic combination of models and code as two possible constituents of a software component with equal rights. More specifically, we describe (i) a comprehensive discussion of design considerations, (ii) a realization concept for MoCos, (iii) a reference implementation based on Java, OSGi and TGraphs as well as (iv) two feasibility studies.Our findings show that integrating models and code in the broader context of component models is feasible. The presented approach opens up interesting new perspectives for developing flexible software systems. The MoCo concept is a first step towards model-integrating development.