Authors:
Heiko Klare
;
Timur Saglam
;
Erik Burger
and
Ralf Reussner
Affiliation:
Institute for Program Structures and Data Organization, Karlsruhe Institute of Technology and Germany
Keyword(s):
Model-driven Engineering, modelling – Programming Gap, Reverse Engineering, Model Extraction.
Related
Ontology
Subjects/Areas/Topics:
Domain-Specific Modeling and Domain-Specific Languages
;
Frameworks for Model-Driven Development
;
Languages, Tools and Architectures
;
MetaModeling
;
Methodologies, Processes and Platforms
;
Model-Driven Software Development
;
Models
;
Paradigm Trends
;
Software Engineering
Abstract:
Model-driven development processes mainly from the capabilities of modelling frameworks, since these offer an explicit representation of model elements and features, as well as reusable tooling, such as transformation languages or editor frameworks. Nevertheless, most software systems are not developed in a model-driven way although they do contain implicit models encoded in their object-oriented design. Adaptation to model-driven tooling imposes high manual effort and easily breaks compatibility with dependent code and existing tooling. We present an automated and minimally intrusive approach that makes implicit models in software systems explicit. We adapt existing object-oriented code so that it provides an explicit model representation, while preserving its original API. As a result, capabilities of modelling frameworks, such as persistence and change notifications, can be integrated into object-oriented code, and enable the application of reusable tools. We provide a classificat
ion of requirements that existing code has to fulfill, usable as an indicator for the applicability of modelling tools to them. An evaluation based on one artificial and two open-source case study systems shows the correct preservation of the API, as well as the ability to apply tooling to the modified code.
(More)