Title data
Schwägerl, Felix:
Version Control and Product Lines in Model-Driven Software Engineering.
Bayreuth
,
2018
. - XIV, 414 P.
(
Doctoral thesis,
2018
, University of Bayreuth, Faculty of Mathematics, Physics and Computer Sciences)
|
|||||||||
Download (12MB)
|
Abstract
Diese Arbeit behandelt Anforderungen, die formale Ausgestaltung, die Implementierung sowie Anwendungen eines konzeptionellen Rahmenwerks zur Integration der modellgetriebenen Softwareentwicklung (MGSE), der Versionskontrolle (VK) und der Softwareproduktlinienentwicklung (SPLE). Die allermeisten Softwareprojekte sehen sich mit drei Phänomenen konfrontiert: Abstraktion, Evolution und Variabilität. Abstraktion wird durch Modelle erzielt. Diese beschreiben Softwaresysteme auf einer höheren konzeptionellen Ebene und erleichtern somit die Durchführung und Kommunikation von Entwurfsentscheidungen. MGSE hat ausführbare Modelle und letztendlich eine Reduktion handgeschriebenen Quelltexts zum Ziel. Softwareevolution wird von Versionskontrollsystemen unterstützt, die zum Zwecke der Organisation gemeinschaftlich entwickelter Software unverzichtbar geworden sind. SPLE erfreut sich als Ansatz zur organisierten Verwaltung von Variabilität zunehmender Beliebtheit. Dabei wird das Softwaresystem in so genannte Features dekomponiert. Diese sind wiederum Merkmale, anhand derer sich Mitglieder der Produktlinie unterscheiden. Gewöhnlich werden Abstraktion, Evolution und Variabilität durch voneinander unabhängige Werkzeuge erzielt. Dies führt einerseits zu unerwünschten Kontextwechseln zwischen Modellierungswerkzeugen, Versionskontrollsystemen und Produktlinienunterstützung. Andererseits wird eine lose Werkzeugkombination nicht den offensichtlichen Überschneidungen zwischen den Disziplinen gerecht. Beispielsweise beschäftigten sich MGSE und SPLE gleichermaßen mit (Domänen- bzw. Feature-) Modellen. Auch verwalten VK und SPLE verschiedene Arten von Versionen, nämlich Revisionen und Varianten. Im Vorfeld der Ausgestaltung des Rahmenwerks werden seine Anforderungen mit dem Stand der Forschung in den Schnittbereichen modellgetriebene Produktlinienentwicklung, Modellversionierung und Produktlinienversionierung abgeglichen. Die Eigenschaften der verglichenen Systeme werden bei der Identifikation und Auflösung von Entwurfsentscheidungen im Bezug auf das Rahmenwerk bewertet und berücksichtigt. Den Kern des Rahmenwerks stellt eine Hybridarchitektur dar, die sich aus drei Dimensionen zusammensetzt: Einem Revisionsgraphen, der die Evolution der beiden anderen Dimensionen beschreibt, sowie einem Featuremodell, das die Variabilität des Domänenmodells verwaltet. Letzteres unterliegt also der Evolution genauso wie der Variabilität. Das Rahmenwerk setzt das so genannte gefilterte Edieren ein. Dabei werden die Inhalte des Software-Repositorys vom Endbenutzer nicht direkt, sondern in mehreren Iterationen in einem getrennt verwalteten Einzelvarianten-Arbeitsbereich (Workspace), bearbeitet. Eine Iteration beginnt mit dem Kommando Check-Out. Dieses verlangt eine Benutzerauswahl im Revisionsgraphen und darauf folgend die Konfiguration der gewünschten Workspace-Variante durch eine vollständige Auswahl im Featuremodell. Die Inhalte des Workspace können daraufhin beliebig bearbeitet werden, bevor die Iteration mit dem Kommando Commit abgeschlossen wird. Hierbei gibt der Benutzer eine so genannte Feature-Ambition an. Diese entspricht einer Menge von Varianten, auf die sich die vollzogenen Änderungen beziehen. Die Inhalte des Repositorys werden automatisch unter Berücksichtigung der historischen und logischen Komponente der Änderung aktualisiert. Die Ausgestaltung des Rahmenwerks erfolgt auf Basis eines der Literatur entnommenen Formalismus, des Uniform Version Model. Die komplementäre strukturelle Perspektive wird mit modellgetriebenen Mitteln beschrieben. Die Inhalte des Repositorys sind Instanzen mehrerer Metamodelle, die die spezifischen Anforderungen der jeweiligen Dimension berücksichtigen. Beispielsweise darf das Domänenmodell wie in gängigen Modellierungsprojekten aus mehreren miteinander verknüpften modell- oder textbasierten Ressourcen bestehen. Das in dieser Arbeit entwickelte Bedienmodell zum gefilterten Edieren unterscheidet sich von herkömmlichen Ansätzen durch seine dynamische Natur. Beispielsweise ist es möglich, Features innerhalb ein und derselben Iteration zu definieren und zu realisieren. Auch die mit einer Änderung verknüpfte Feature-Ambition unterliegt der Evolution. Jedoch kann es durch dynamisches gefiltertes Edieren zu neuen Arten von Problemen kommen. Um diesen gerecht zu werden, werden mehrere Konsistenzbedingungen sowie konsistenzerhaltende Algorithmen für Check-Out und Commit definiert. Außerdem wird eine neue Operation namens Migration eingeführt, die wiederholte Check-Outs überflüssig macht und somit einen unaufdringlichen Arbeitsfluss entstehen lässt. Die gemeinschaftliche Bearbeitung modellgetriebener Produktlinien wird durch eine verteilte Replikationsstrategie ermöglicht. Private Transaktionen, die von Check-Out und Commit umschlossen sind, werden hierzu um öffentliche Transaktionen ergänzt. Letztere werden mit den Operationen Pull und Push gestartet bzw. beendet. Aufgrund gleichzeitiger Bearbeitung können Konflikte auftreten; diese werden zunächst durch nicht-interaktives kontextfreies Drei-Wege-Modellverschmelzen aufgelöst. Sowohl durch die Zusammenarbeit mehrerer Entwickler als auch durch die Kombination von optionalen Features kann die syntaktische Wohlgeformtheit der gewählten Produktversion beeinträchtigt werden. Im hier betrachteten Rahmenwerk werden solche Situationen mittels einer produktbasierten A-Posteriori-Analyse behandelt. Vor dem Export konfliktbehafteter Inhalte wird deren syntaktische Wohlgeformtheit zunächst durch vorgegebene Auflösungsentscheidungen wiederhergestellt. Im Rahmen der darauf folgenden Iteration hat der Benutzer die Möglichkeit, auch die semantische Korrektheit wiederherzustellen. Mit dem Werkzeug SuperMod wird eine modellgetriebene Implementierung des Rahmenwerks, basierend auf der Entwicklungsumgebung Eclipse und dessen Modellierungsrahmenwerk EMF, beigetragen. Die Client-Server-Kommunikation, die gemeinschaftliche SPLE ermöglicht, ist mit Hilfe eines REST-basierten Webservice realisiert worden. Um letztendlich Rückschlüsse auf die Eigenschaften des Rahmenwerks zuzulassen, wurde das Werkzeug in drei akademischen Fallstudien angewendet: zwei Lehrbuch-Produktlinien, darunter eine Graph-Bibliothek und ein Haustechnik-Automatisierungs-System, sowie ein Bootstrapping-Experiment, in dem SuperMod auf Basis einer domänenspezifischen Sprache neuentworfen wird. Wie daraus gewonnene Ergebnisse zeigen, lässt sich eine SPL mit deutlich weniger Aufwand als mit ungefiltertem Edieren erstellen; außerdem liegt der Bedienaufwand des dynamischen Ediermodells unter dem des statischen Gegenstücks. Insgesamt zeichnet sich das Rahmenwerk durch mehrere praktische Vorzüge aus: einheitliche Versionierung, uneingeschränkte Variabilität, Werkzeugunabhängigkeit und eine Reduktion der kognitiven Komplexität. Der Ansatz bietet ein unaufdringliches und automatisiertes Versionsmanagement und eignet sich daher für reaktiv adaptierte Softwareproduktlinien sowie für agile SPLE-Prozesse. Jedoch ergeben sich durch das gefilterte Ediermodell auch neue konzeptionelle Einschränkungen. Zum einen zwingt das Konzept der Feature-Ambitionen den Benutzer zu ungewohnt feingranularen Commits. Zum anderen kann das gefilterte Edieren Multivarianten-Architekturentscheidungen erschweren. Insgesamt trägt diese Arbeit die erste integrierte und automatisierte Lösung zur Kombination von MGSE, SPLE und VK bei. Das konzeptionelle Rahmenwerk wurde vollständig implementiert. Die ersten Experimente vermögen einige wünschenswerte Eigenschaften zu bestätigen, motivieren gleichzeitig aber weitere Forschung an diesem Thema.
Abstract in another language
This thesis addresses the requirements, the formal elaboration, the implementation, and applications of a conceptual framework for the integration of model-driven software engineering (MDSE), version control (VC), and software product line engineering (SPLE). The majority of software engineering projects are faced with three phenomena: abstraction, evolution, and variability. Abstraction is achieved through models, which provide a higher-level description of a software system that facilitates the enforcement and the communication of design decisions. MDSE aims at making models executable, reducing the amount of manually written source code. Software evolution is addressed by version control systems, which have become indispensable for the organization of collaboratively developed software. Last, an increasingly popular approach dedicated to the organized management of variability is SPLE. Corresponding approaches assume a decomposition of the software system into features, by which different members of the product line are distinguished. Traditionally, abstraction, evolution, and variability are addressed by independent tools. This, on the one hand, causes undesirable context switches between modeling tools, version control systems, and product line technology. On the other hand, a combination of mutually unaware tools ignores overlaps between the disciplines. For instance, both MDSE and SPLE deal with models - domain models and variability models, respectively. Likewise, VC and SPLE deal with the management of different kinds of versions - revisions and variants. In advance to the elaboration of the integrating conceptual framework, its requirements are aligned with the current state of research in model-driven product line engineering, model version control, and product line version control. The properties of existing systems are taken into consideration during the exploration of the design choices and decisions. The core of the framework is a hybrid architecture consisting of three dimensions: a revision graph that controls the evolution of the other two dimensions, and a feature model that manages the variability of the domain model, which is subject to both evolution and variability. The framework relies on filtered editing; repository contents are not modified directly by the designated user, but in a single-version workspace in several iterations. An iteration is begun by the operation check-out, which requests a selection in the revision graph, before the desired variant to be presented in the workspace is defined as a configuration of the feature model. Then, workspace contents may be modified arbitrarily. The operation commit concludes an iteration, requesting a so called feature ambition from the user. This corresponds to the definition of a set of variants to which the performed modifications are relevant. Repository contents are updated automatically such that they consider both the historical and the logical scope of the change. For elaborating the conceptual framework, we instrumentalize an established theoretical formalism, the Uniform Version Model. The structural perspective is designed by model-driven utilities; repository contents conform to several metamodels that consider the specific requirements of its three dimensions. E.g., the domain model may comprise heterogeneous interconnected model or text-based resources as usual in realistic model-driven projects. The filtered editing model contributed here distinguishes from related approaches by a high amount of dynamism. For instance, features can be defined and realized within the same iteration, and the logical scope of a change may evolve. Dynamic filtered editing may, however, cause new kinds of problems. To this end, several consistency constraints and consistency-preserving definitions of the operations check-out and commit are formally provided. Moreover, a new operation, migrate, is introduced, which obviates the need for the majority of check-outs and therefore enables an unobtrusive workflow. Collaborative editing of model-driven product lines is achieved by a distributed replication strategy. Private transactions, embraced by check-out and commit, are complemented by public transactions, started with the operation pull and finalized with push. Conflicts, which may occur due to concurrent modifications, are preliminarily resolved by means of a context-free non-interactive three-way model merging strategy. Both collaboration and the combination of optional features may cause product well-formedness violations. In the here considered conceptual framework, these are resolved by an a-posteriori product-based analysis strategy. Before being exported to the workspace, default resolution strategies are applied to conflicting contents. To restore semantical correctness, the user may revise the effects in a subsequent iteration. With SuperMod, a model-driven implementation of the conceptual approach is contributed. The tool relies on the development environment Eclipse and its modeling framework~EMF. Client/server communication, which enables collaboration, has been realized as a REST-based web service. In order to allow for conclusions referring to the underlying framework, the tool has been applied to three academic case studies: two textbook product lines, a Graph Library and a Home Automation System, as well as a bootstrapping experiment, where SuperMod is re-engineered based on a domain-specific language. Results indicate a lower development effort when compared to unfiltered editing; moreover, the amount of user interactions is lower than the one implied by the static counterpart. Altogether, the framework offers benefits such as uniform versioning, unconstrained variability, tool independence, and reduced cognitive complexity. By offering lightweight and automated version management, the approach is suitable for reactive adoption paths and for agile SPLE processes. On the downside, the filtered editing model creates new conceptual limitations. First, the concept of feature ambition forces potential users into unusually fine-grained commits. Second, filtered editing reduces awareness of other variants, which potentially hampers multi-variant architectural decisions. Overall, the thesis contributes the first integrated and automated solution to the combination of MDSE, SPLE, and VC. The conceptual framework has been fully implemented. Initial experiments confirm many desirable properties, but also motivate future research.
Further data
Item Type: | Doctoral thesis (No information) |
---|---|
Keywords: | Modellgetriebene Softwareentwicklung; Softwarekonfigurationsverwaltung; Versionskontrolle; Variabilität; Softwareevolution; Gefiltertes Edieren; Softwareproduktlinien;
model-driven software engineering; software configuration management; version control; variability; software evolution; filtered editing; software product lines |
DDC Subjects: | 000 Computer Science, information, general works > 004 Computer science |
Institutions of the University: | Faculties > Faculty of Mathematics, Physics und Computer Science > Department of Computer Science > Chair Applied Computer Science I Graduate Schools > University of Bayreuth Graduate School Faculties Faculties > Faculty of Mathematics, Physics und Computer Science Faculties > Faculty of Mathematics, Physics und Computer Science > Department of Computer Science Graduate Schools |
Language: | English |
Originates at UBT: | Yes |
URN: | urn:nbn:de:bvb:703-epub-3554-3 |
Date Deposited: | 14 Feb 2018 07:39 |
Last Modified: | 14 Feb 2018 07:39 |
URI: | https://epub.uni-bayreuth.de/id/eprint/3554 |