URN to cite this document: urn:nbn:de:bvb:703-epub-6805-3
Title data
Greiner, Sandra:
Reuse of Model Transformations for Propagating Variability Annotations in Annotative Software Product Lines.
Bayreuth
,
2022
. - vii; 326 P.
(
Doctoral thesis,
2022
, University of Bayreuth, Faculty of Mathematics, Physics and Computer Sciences)
|
|||||||||
Download (16MB)
|
Related research data
10.5281/zenodo.7367986Abstract
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.
Abstract in another language
Die Disziplin modell-getriebene Software Produktlinienentwicklung (MDPLE) verspricht, die Produktivität beim Entwickeln hochvariabler Software zu steigern, indem sie von den positiven Effekten der beiden Disziplinen modell-getriebene Softwareentwicklung und Software Produktlinienentwicklung profitiert. Organisierte Wiederverwendung und Variabilität bilden die Kernprinzipien der Software Produktlinienentwicklung. Beide Konzepte werden benutzt, um kundenspezifische Produkte anhand einer konfigurierten Plattform abzuleiten. Die modell-getriebene Softwareentwicklung hingegen verwendet während des Entwicklungsprozesses unterschiedliche Arten von Modellen. Am Ende dieses Prozesses stehen ausführbare Modelle, die das Softwaresystem repräsentieren. Modelltransformationen stellen eine Automatisierungstechnik dar, die es ermöglicht, anhand eines gegebenen Modells weitere Repräsentationen und schließlich den ausführbaren Quellcode des Programms automatisch zu generieren. Obwohl MDPLE von den positiven Eigenschaften beider Disziplinen bei deren Kombination profitieren sollte, ergeben sich verschiedene Probleme, die die Vorteile konterkarieren, unter anderem das Folgende: In annotativen Produktlinien entsteht die Plattform durch das Überlagern aller erlaubten Softwarevarianten. Entwickler weisen den Elementen der Plattform Annotationen zu und geben eine Konfiguration der auswählbaren Eigenschaften an, um ein kundenspezifisches Produkt abzuleiten. Annotationen sind Boolesche Ausdrücke über Literale, die die gemeinsamen und unterschiedlichen Eigenschaften der Produktlinie repräsentieren. Sobald eine Annotation nicht durch die gegebene Konfiguration erfüllt ist, entfernt ein Filter die entsprechenden Modellelemente von der Plattform, um so das Produkt abzuleiten. Bei der Plattform handelt es sich jedoch nicht um ein einzelnes Artefakt: verschiedene Modelle, Buildskripte, Quellcode, etc., sind darin enthalten, deren variablen Elemente alle meist händisch annotiert werden müssen. Wenige Ansätze automatisieren das Annotieren bislang und manipulieren dabei die Ausführungssemantik bestehender Einzelvariantentransformationen. Dies verlangt jedoch den Zugriff und die Erlaubnis, die Ausführungsumgebung zu ändern. Mitunter muss Variabilität explizit in der Modelltransformation berücksichtigt werden, was wiederum die kognitive Komplexität beim Erstellen und Warten einer solchen Transformationsdefinition erhöht. Aus diesem Grund entwickelt die vorliegende Arbeit Lösungsansätze, die auf dem Wissen aufbauen, dass Modelltransformationen eine bereits ausgereifte Technik darstellen, um neue Modelle oder Quellcode zu generieren, der jedoch der Umgang mit Variabilität in Form von Annotationen nicht bekannt ist. Im Gegensatz zu den bisher publizierten Ansätzen, ändern die beigetragenen Lösungen nicht die Ausführungssemantik. Stattdessen benutzen sie die Transformationswerkzeuge und deren generierte Artefakte, um Annotationen generisch (d.h., unabhängig von einer Transformationssprache oder Transformationsdefinition) und automatisch in das Zielmodell zu übertragen. Insbesondere trägt die vorliegende Arbeit die informellen und formellen Konzepte sowie die Implementierung 1) einer a posteriori Analyse von Bytecodeinstruktionen, 2) einer a posteriori Übertragung von Annotationen anhand von Traceinformation sowie 3) einen aspekt-orientierten Ansatz, der die Annotationen während der Ausführung in generierten Quellcode einbettet, bei. Des Weiteren untersucht die Arbeit die Vor- und Nachteile einer Propagations-DSL und des Vergleichs von Instanzen unterschiedlicher Metamodelle bezüglich der Möglichkeit Traceinformation zu rekonstruieren. Die Evaluierung der beigetragenen Ansätze bestätigt eine signifikante Reduktion des händischen Annotationsaufwands. Dazu wird die Annotationsübertragung anhand von unterschiedlich vollständigen Traces und bei der Verwendung eines generischen Aspekts in kontrollierten Experimenten mit kleinen und mittelgroßen akademischen Produktlinien untersucht. Es zeigt sich, dass der aspektorientierte Ansatz 95 − 100% der Annotationen richtig ermittelt. Außerdem berechnet die trace-basierte Übertragung über 90% der Annotationen korrekt, selbst wenn die Vollständigkeit des Traces nicht hinreichend genau ist. Bei der Berechnung von Annotationen anhand von erzeugungsvollständigen Traces werden sogar alle Annotationen korrekt bestimmt. Insgesamt löst die vorliegende Arbeit damit ein Problem der minimierten Produktivität in der modell-getriebenen Software Produktlinienentwicklung, indem sie die theoretische Konzepte, deren Realisierung und Evaluierung beiträgt, um Annotationen in annotativen Produktlinien automatisch und ohne die Veränderung bewährter Technologien auf weitere Artefakte zu übertragen.