Visualisation of variability in software product line engineering

Abstract Using a product line approach allows companies realize significant improvements in time-to-market, cost, productivity, and quality. One fundamental problem in software product line engineering is related to the fact that a product line of industrial size can easily incorporate several thousand variation points. This makes variability management and product derivation tasks extremely difficult. This paper elaborates on the idea of using visualisation techniques to support and improve the effectiveness of these tasks. A reference model that helps to frame the visualisation research and important areas that affect the use of visualisation techniques in software product line engineering are presented. 1. Introduction In software product line engineering similarities between products are exploited to reduce the amount of work involved in product derivation. Software product line engineering has rapidly emerged as an important software development paradigm during the last few years. Developing products based on a product line approach allows companies to build a variety of systems with a minimum of technical diversity and to realize significant improvements in time-to-market, cost, productivity, and quality [1]. One fundamental problem with many software product line engineering approaches is that they do not scale well for industrial size product lines. This is due to the fact that industrial size product lines can easily incorporate thousands of variation points and configuration parameters for product customization (see e.g., [2]). Managing this amount of variability is extremely complex and requires sophisticated modelling techniques. Current variability modelling techniques have proven useful to represent product variation in various application domains (e.g., [3] [4] [5] [6]). However, these techniques have mainly been applied in prototypical settings in which relatively few variation points and variants had to be managed. Consequently, there is a need for appropriate techniques for “industry-size” software product lines with a high number of variants which can support product line stakeholders in performing their tasks. This paper elaborates on the idea of using information and software visualisation techniques to achieve the economies of scale required to support variability management in industrial product lines. Information visualisation is the use of computer-supported, interactive, visual representations of abstract data to amplify cognition [7]. Software visualisation is a sub-area of information visualisation that focuses on both the human understanding and effective use of computer software [8]. Visualisation has proven useful to amplify cognition in a number of ways, for example, by increasing the “memory” and “amount of processing” available to users, by supporting the search for information, and by encoding information in a manipulable medium [7]. The authors are convinced that visualisation techniques can also amplify the cognition about the large and complex data sets created and used in industrial software product line engineering. The exploration of the potential of visual representations such as trees and graphs combined with the effective use of human interaction techniques such as dynamic queries, direct manipulation, and details-on-demand when applied in a software product line context is a challenging research task. Improving the effectiveness of significant product line activities such as variability management and product derivation is a major goal of this research. The remainder of this paper is organised as follows: Section 2 introduces variability modelling approaches and discusses representation techniques commonly used in product line engineering. Section 3 explains some of the limitations of current variability