2.1 Example of a feature tree with annotated edges. . . 8
2.2 The Meta Object Facility layers including example content. . . 10
2.3 Example of a cardinality-based feature tree. . . 12
2.4 UML diagram of the different types of mappings in FeatureMapper. . . 13
3.1 Example of the evolutions for the variation type of features. . . 22
3.2 Example of a feature tree before and after the Insert Feature evolution. . . 22
3.3 Example of a feature tree before and after the Duplicate Feature evolution. . . . 23
3.4 Example of a feature tree before and after the Split Feature evolution. . . 24
3.5 Example of a feature tree before and after the Merge Features evolution with both types of merge. . . 25
3.6 Example of a feature tree before and after the Pull Up Feature evolution. . . 26
3.7 Example of a feature tree before and after the Remove Feature evolution. . . 26
3.8 Example of a feature tree and UML model before the Remove Feature and Owned Assets evolution. . . 27
3.9 Example of a feature tree and UML model after the Remove Feature and Owned Assets evolution. . . 28
3.10 Example of a feature tree before and after the Transform to Or Group evolution. 29 3.11 Example of a feature tree before and after the Transform to And Group evolution. 29 3.12 Example of a feature tree before and after the Transform to Alternative Group evolution. . . 29
3.13 Example of a feature tree before and after the Duplicate Group evolution. . . 30
3.14 Example of a feature tree before and after the Merge Groups evolution. . . 31
3.15 Example of a UML diagram before and after the Duplicate Class evolution. . . . 32
3.16 Example of a UML diagram before and after the Extract Super Class evolution. . 33
3.17 Example of a UML diagram before and after the Replace Method with Method Object evolution. . . 33
3.18 Example of a UML diagram before and after the Inline Method Object evolution. 34 3.19 Example of a UML diagram before and after the Remove Class evolution. . . 34
3.20 Visualization of intraspatial evolution types. . . 47
3.21 Visualization of interspatial evolution types of the first degree. . . 48
3.22 Visualization of interspatial evolution types of the second degree. . . 49
3.23 Decision diagram to find the appropriate group for evolutions in the classifcation by semantical extent of model changes. . . 51
167
3.24 UML diagram as example of a solution space model for Split Feature Mapping. . 57
4.1 Architectural overview of the major systems of the implementation. . . 79
4.2 UML diagram of the most common classes for evolution. . . 80
4.3 UML diagram showing a subset of the evolutions with their respective evolution adapters. . . 81
4.4 UML diagram of the classes for evolutions in the problem space. . . 83
4.5 Parameter pages for the problem space evolutions requiring user input. . . 84
4.6 UML diagram of the classes for generic evolutions in the solution space. . . 86
4.7 UML diagram of the classes for evolutions of UML models in the solution space. 88 4.8 UML diagram of the classes for evolutions of Java source code in the solution space. 89 4.9 UML diagram of the classes for evolutions of DocBooklet documents in the solu-tion space. . . 90
4.10 UML diagram of remapping plan and remapping step with its specializations for the separate spaces. . . 90
4.11 UML diagram of the classes affected by remapping in the problem space. . . 92
4.12 UML diagram of the feature remapping steps used for remapping in the problem space. . . 93
4.13 UML diagram of the object remapping steps used for remapping in the solution space. . . 96
4.14 Overview of the classes involved in translating and executing an ORSpec. . . 100
4.15 UML diagram of the essential classes of the user interface subsystem. . . 102
4.16 Visualization of the regions of a remapping dialog created by the specializations of AbstractRemappingPlanUIBuilder and AbstractRemappingStepUIBuilder. 103 4.17 UML diagram of the classes used for test cases. . . 104
5.1 Feature tree of the automotive multimedia product line in 2001. . . 115
5.2 UML diagram for the automotive multimedia product line in 2001. . . 117
5.3 Applying Remove Feature and Owned Assets to the feature CassettePlayer. . . 121
5.4 Remapping dialog after applying Remove Feature and Owned Assets to the feature CassettePlayer. . . 122
5.5 Applying Replace Method with Method Object to the method readCDText() of the class CDPlayer in the UML diagram. . . 123
5.6 Remapping dialog after applying Replace Method with Method Object to the method readCDText() of the class CDPlayer in the UML diagram. . . 123
5.7 Applying Duplicate Section to the section “CD Playback” in the user manual. . . 124
5.8 Remapping dialog after applying Duplicate Section to the section “CD Playback” in the user manual. . . 125
5.9 Applying Split Feature to the feature CDPlayer. . . 126
5.10 Remapping dialog after applying Split Feature to the feature CDPlayer. . . 127
5.11 Applying Transform to Alternative Group to the group of the specialized CD players. . . 127
5.12 Applying Duplicate Feature to the feature AudioPlayer. . . 130
5.13 Remapping dialog after applying Duplicate Feature to the feature AudioPlayer. . 131
5.14 Excerpt from the feature model showing the newly created features VoiceRecognition
and Maps. . . 131
5.15 Excerpt from the UML diagram showing the elements relevant to the personal navigation system. . . 132
5.16 Applying Extract Method to the code fragments in the createUI() method of the class UIBuilder in Java source code. . . 134
5.17 The feature model of the automotive multimedia product line at the end of the 2006 revision. . . 135
5.18 The complete UML diagram of the automotive multimedia product line at the end of the 2006 revision. . . 137
5.19 Applying Remove Class to the class CDTextReader of the UML diagram. . . 139
5.20 Remapping dialog after applying Remove Class to the class CDTextReader of the UML diagram. . . 139
5.21 Applying Merge Features to the features AudioCDPlayer and MP3CDPlayer. . . . 140
5.22 Remapping dialog after applying Merge Features to the features AudioCDPlayer and MP3CDPlayer. . . 141
5.23 Applying Extract Super Class to the method receiveVoiceCommand() of the class PersonalNavigation in the UML diagram. . . 142
5.24 Remapping dialog after applying Extract Super Class to the method receive-VoiceCommand() of the class PersonalNavigation in the UML diagram. . . 143
5.25 Applying Pull Up Feature to the feature VoiceRecognition. . . 144
5.26 Applying Split Feature to the feature Maps. . . 145
5.27 Remapping dialog after applying Split Feature to the feature Maps. . . 146
5.28 Applying Transform to Optional Feature to the features Europe, NorthAmerica, CentralAmerica, SouthAmerica and Asia. . . 147
5.29 Applying Transform to Or Group to the group containing the refined mapping modules. . . 147
5.30 Applying Inline Method Object to the class MP3Decoder in the UML model. . . . 148
5.31 Remapping dialog after applying Inline Method Object to the class MP3Decoder in the UML diagram. . . 149
5.32 The feature model of the automotive multimedia product line at the end of the 2011 revision. . . 150
5.33 The complete UML diagram of the automotive multimedia product line at the end of the 2011 revision. . . 150