Software Product Lines (SPLs) are a successful approach to software reuse in the large. Even though tools exist to create SPLs, their evolution is widely unexplored. Evolving an SPL manually is tedious and error-prone as it is hard to avoid unintended side-effects that may harm the consistency of the SPL. In this thesis, the conceptual basis of a system for the evolution of model-based SPLs is presented, which maintains consistency of models and feature mapping. As basis, a novel classification is introduced that distinguishes evolutions by their potential to harm the mapping of an SPL. Furthermore, multiple remapping operators are presented that can remedy the negative side-effects of an evolution. A set of evolutions is complemented with appropriate remapping operations for the use in SPLs. Finally, an implementation of the evolution system in the SPL tool FeatureMapper is provided to demonstrate the capabilities of the presented approach when co-evolving models and feature mapping of an SPL.:1 Introduction
1.1 Motivation for Evolving Software Product Lines
1.2 Outline of the Thesis
2 Background and Scope
2.1 Concepts and Terminology
2.1.1 Software Product Lines
2.1.2 Model-Driven Software Development
2.1.3 FeatureMapper
2.2 Scope
2.3 Related Work
3 Evolution of Software Product Lines
3.1 Evolutions
3.1.1 Evolutions in the Problem Space
3.1.2 Evolutions in the Solution Space
3.2 Classification Systems for Evolutions
3.2.1 Classification by Behavior Preservation
3.2.2 Classification Systems in the Literature
3.2.3 Classification by Semantical Extent of Model Changes
3.3 Remapping Operations
3.3.1 Remapping in the Problem Space
3.3.2 Remapping in the Solution Space
3.4 Classification and Remapping of Evolutions
3.4.1 Classification and Remapping of Problem Space Evolutions
3.4.2 Classification and Remapping of Solution Space Evolutions
4 A Framework for Evolutions in FeatureMapper
4.1 Relevant Technology
4.1.1 Refactory
4.1.2 EMFText
4.2 Implementation
4.2.1 Implementation of the Evolutions System
4.2.2 Implementation of the Remapping System
4.2.3 Implementation of the User Interface System
4.2.4 Implementation of the Test Suite
4.3 Possibilities for Extension
4.3.1 Adding New Evolutions
4.3.2 Adapting Existing Evolutions
5 Example Project
5.1 Initial Situation in 2001
5.2 First Revision in 2006
5.2.1 Removing the Cassette Player
5.2.2 Adding an MP3 CD Player
5.2.3 Adding a Personal Navigation Device
5.2.4 Changing the Implementation of the UI Builder
5.2.5 Summary of the Changes of the First Revision in 2006
5.3 Second Revision in 2011
5.3.1 Creating a Multi-Format CD Player
5.3.2 Enhancing Voice Recognition to Control the Audio Player
5.3.3 Restructuring Personal Navigation Maps
5.3.4 Changing the Implementation of the CD Player
5.3.5 Summary of the Changes of the Second Revision in 2011
5.4 Conclusion of the Example Project
6 Conclusion
6.1 Summarized Findings
6.2 Limitations and Drawbacks
6.3 Possibilities for Future Work
6.4 Theoretical and Practical Contributions
A Object Remapping Specification (*.orspec)
A.1 Object Remapping Specification Model
A.2 Object Remapping Specification Syntax
B DocBooklet (*.docbooklet)
B.1 DocBooklet Model
B.2 DocBooklet Syntax
C NavMap (*.navmap)
C.1 NavMap Model
C.2 NavMap Syntax
List of Figures
List of Tables
List of Listings
Bibliography
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:25866 |
Date | 29 September 2011 |
Creators | Seidl, Christoph |
Contributors | Heidenreich, Florian, Aßmann, Uwe, Technische Universität Dresden |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | English |
Detected Language | English |
Type | doc-type:masterThesis, info:eu-repo/semantics/masterThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.002 seconds