title: Reuse of Model Transformations for Propagating Variability Annotations in Annotative Software Product Lines
Creators: name: Greiner, Sandra
Publisher: name: University of Bayreuth
Year: 2022
Subjects: subject: Software Evolution
subject: Model-Driven Software Engineering
subject: Variability
subject: Sofware Product Line Engineering
subject: 004

description: Model-Driven Software Product Line Engineering (MDPLE) is a discipline that bespeaks increased productivity when developing variability-intense software by combining the benefits of both disciplines, model-driven software engineering (MDSE) and software product line engineering (SPLE): SPLE grounds on the principles of organized reuse and explicit variability to build a (multi-variant) platform from which customized software products can be derived automatically. In contrast, MDSE raises the level of abstraction by employing models of different kinds throughout the development process and eventually represents the software system with executable models. Model transformations serve to create not only different model representations from a given model but also to derive executable source code automatically. While MDPLE should take advantage of the positive effects of each discipline when combining them, several problems, such as the following, threaten these effects: Annotative product lines build the multi-variant platform by superimposing single variants of the software. For deriving a customized product, developers map annotations onto elements of the platform and provide a configuration of the distinguishing features of the product line. These annotations are Boolean expressions over the common and distinguishing features of the product line. A filter mechanism will remove elements from the platform if their annotations are not satisfied by the configuration. Since multiple artifacts, such as models, build scripts, and source code, form the platform, still annotating each of these artifacts is a manual process which is tedious and prone to errors. Few approaches automate this task by manipulating the execution semantics of model transformations. This requires exclusive access and, in the worst case, to consider variability explicitly in the trans- formation which increases the level of cognitive complexity and may require to learn new syntax. Therefore, in this thesis we develop a solution which acknowledges the existing and mature technology of (single-variant) model transformations which automate the creation of new models or source code but are unaware of the variability present in form of annotations in multi-variant product line artifacts. In contrast to existing approaches, our contribution does not modify the execution semantics of existing model transformation languages but reuses them and their generated artifacts to propagate annotations generically (i.e., independent of the transformation language and of the transformed instances of metamodels) and automatically. Specifically, the thesis contributes the informal and formal concepts and implementation of 1) an a posteriori bytecode model analysis, 2) an a posteriori propagation of annotations based on transformation trace, as well as 3) a propagation during the execution based on a generic aspect. Furthermore, the thesis examines the strengths and weaknesses of employing a propagation DSL and model matching of instances of different metamodels to reconstruct trace information. The evaluation confirms a significant reduction in manual efforts to annotate the product line: We examine the trace-based propagation of annotations based on traces of different completeness-levels and the generic aspect in a controlled setting with small to medium academic product lines. The aspect-oriented approach assigns 95 − 100% of the annotations correctly. Furthermore, even if the trace completeness is insufficient and does not record all target elements, our approaches compute more than 90% of the annotations correctly whereas the propagation based on generation-complete traces determines all target annotations correctly. In summary, the thesis solves the problem of diminished productivity in MDPLE by providing the concepts, realization, and evaluation of automated techniques to propagate annotations in annotative product lines without the need to change established technologies.