Options
2014
Doctoral Thesis
Titel
Evolution control for software product lines: An automation layer over configuration management
Abstract
Modern software organizations increasingly aim at the development of individualized customer solutions in a cost-effective way. Product line engineering is a paradigm on the rise that addresses this goal and achieves true order of magnitude improvements in efficiency, quality and time-to-market. In order to achieve these improvements product line engineering builds on strategic software reuse. In this regard the development lifecycle is decomposed in two major parallel running activities: family and application engineering. The former develops software assets for reuse across the product line while the latter applies reusable assets in the context of particular products. In order to keep the evolution of a product line under control family and application engineering must be continuously coordinated. Software Configuration Management (SCM) is an established and mature technology for evolution control of software systems. However traditional SCM does not address explicitly the particular needs of product line engineering. When a product line evolves the number of product line members and variations increase significantly. In terms of scalability SCM systems can deal with the increased complexity. However, the execution of multiple configuration management operations becomes necessary in order to carry out evolution control scenarios within a product line. Therefore, users of SCM systems can easily get overwhelmed while trying to make use of SCM mechanisms in order to keep product line evolution under control. In this context a serious amount of effort is often spent in practice to synchronize changes between family and application engineering. In some cases the synchronization is even neglected as the additional burden is not bearable. This in turn leads to unnecessary duplication of work and other serious problems. In the long term an organization possibly faces significant deficiencies in the timely delivery of software products. Overall problem addressed by this thesis is that software configuration management requires significant effort, when used for the coordination of product line engineering processes. Main Goal of this thesis is to reduce the software configuration management effort for the coordination of product line engineering processes. This thesis introduces a virtual layer - called Customization Layer in the following - that bridges the gap between product line engineering and SCM. The layer offers a set of specialized evolution control operations for product lines, while conventional SCM operations are used behind the scenes and in an automated way. The idea of the Customization Layer is accompanied by a method that enables the specification of the product line at hand and the selection of the necessary evolution control scenarios. Subsequently the method provides guidelines for the implementation of the scenarios based on the configuration management system available within an organization. The approach has been validated through structural and usability evaluation, experimental studies as well as partially through a case study with an industrial organization. The results have shown potential for significant improvements in terms of efficiency and effectiveness of evolution control.
ThesisNote
Zugl.: Kaiserslautern, Univ., Diss., 2013