PublicaHier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.
VITAL - Reengineering variability specifications and realizations in software product lines
urn:nbn:de:0011-n-3452523 (4.5 MByte PDF)
MD5 Fingerprint: 7881880420397e32574b0009cc0207a4
Created on: 17.06.2016
|Stuttgart: Fraunhofer Verlag, 2015, XVII, 209 pp.|
Zugl.: Kaiserslautern, TU, Diss., 2015
PhD Theses in Experimental Software Engineering, 53
| Dissertation, Electronic Publication|
|Fraunhofer IESE ()|
| software product line; reengineering; variability|
Nowadays successful software product lines are often developed incrementally, and variability artifacts evolve both in space and in time. During product line evolution, an increasing number of variable features and their interdependencies are documented as variability specifications (e.g., a feature model) and implemented as variability realizations (e.g., variability code using Conditional Compilation). These variability artifacts are developed to support different (usually increasing) product variants and their different releases. However, practical challenges exist due to increasing variability complexity and inconsistency between variability specifications and realizations.
On the one hand, feature interdependencies are incompletely documented in the variability model. This impairs product line configurability in terms of both efficiency and effectiveness because the manual product configuration process is effort-consuming and prone to misconfigurations. On the other hand, the variability code becomes overly complex during product line evolution (which is called code erosion), and the code is usually inconsistent with the variability model. This impairs the maintainability of the variability code in terms of assessing the impact of code changes as well as change propagation. These two challenges diminish the reuse advantages of a product line and put the product line investment at risk.
In order to solve the challenges in variability specifications and realizations, a variability reengineering method called VITAL (Variability Improvement Analysis) is presented in this thesis. The VITAL method includes a variability improvement process model and a variability reflection model, and can be applied to improve both variability specifications and realizations. On the one hand, complex feature correlations can be extracted from existing product configurations using data-mining techniques. These extracted correlations are integrated into the variability model and used for providing feature recommendations automatically in new product configuration processes. On the other hand, a variability reflection model is extracted automatically from preprocessor-based variability code, which is used for detecting and fixing eroded code in an existing product line as well as for forecasting and preventing variability code erosion in the future.
The VITAL method can be used to improve variability specifications and realizations semi-automatically, which has been validated by empirical studies done in the context of this thesis. First, an S&B case study was conducted to extract complex feature correlations in an industrial product line, which are used to improve product line configurability by providing correct feature recommendations in 25% of configured features. Second, a Danfoss case study was conducted to analyze the evolution history of an industrial product line with 31 code versions over four years. Based on the code measurement result, eroded variability code elements were detected, and variability code elements that tend to erode in the future product line were predicted. Third, a controlled experiment was conducted to validate the improvement of change impact assessments of variability code based on Variation Point Groups.