Software product-line engineering has gained considerable momentum in recent years, both in industry and in academia. Companies and institutions such as NASA, Hewlett Packard, General Motors, Boeing, Nokia, and Philips apply product-line technology with great success to sustain their development by broadening their product portfolio, improving software quality, shorting time to market, and being able to react faster to market changes. However, pursuing a product-line approach implies often an up-front investment for future benefits. Product-line developers have to anticipate which features will be desired by customers in the future. So, prediction models play an important role to avoid uneconomic developments. However, contemporary prediction models largely ignore structural and behavioral properties of the architecture and implementation assets of a product line. For example, modifying the transaction management of a database system is by far more expensive and risky than modifying its command-line interface. We propose to rethink contemporary prediction models and to employ state-of-the-art analysis techniques to create a richer knowledge base for predictions based on implementation knowledge, including software metrics, static analysis, mining techniques, measurements of non-functional properties, and feature-interaction analysis.
The main goal of Pythia is to utilize various sources of information obtained from product-line analysis to improve the predictive power of state-of-the-art prediction models for product-line engineering. Beside being a basic research project, the envisioned results will have an impact on the practice of product-line engineering. Based on information from architecture and asset code base, we aim at supporting decisions whether to add a feature, remove a feature, or alter the architecture or the implementation of existing features (refactoring). For example, we might discourage to add a feature, when we can predict that it requires high implementation effort and high risks due to many feature interactions, or we might recommend refactoring a feature with a scattered implementation that does not align with the architecture and that was responsible for several bugs recently.
Contemporary scoping methods and prediction models do not incorporate knowledge obtained from architecture and code base of a product line. In some sense, these models treat every feature and asset equally with respect to its influence on implementation effort, maintainability, and evolvability. A central argument is that information on the structure, behavior, and history of architecture and implementation assets can provide additional information for scoping decisions and can make the prediction more useful and reliable. If we can determine that a certain feature, such as transaction management in a database system, is challenging to implement, extract, or maintain, we can align our scoping and development decisions. For example, we may include transaction management only as a mandatory feature and save the effort of separating and maintaining it as optional feature (we trade variability for stability). If already separated and modularized, we could decide to abandon the feature or merge it again with the base code to reduce maintenance effort and the danger of defects. Alternatively, we could be warned to pay additional attention when adding further interacting features or we could just price the feature differently.
The underlying hypothesis of Pythia is that scoping decisions and contemporary prediction models can benefit significantly from information obtained from the analysis of the architecture and implementation assets of a product line. From this hypothesis we derive a set of research question to be answered during the project:
Copyright Notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these publications may not be reposted without the explicit permission of the copyright holder.
Pythia is funded by the German Research Foundation (DFG) within the Priority Programme 1593 (Design for Future – Managed Software Evolution). The funding period is from October 2012 until September 2017.