Assessing the Evolution of Software Product Lines Maintainability

Abstract — Software Product Lines SPL are gaining importance in the software development field. Evaluating the quality attributes for SPL architectures is very crucial especially architecture maintainability as SPL are expected to have longer lifetime span. In this paper, we show that change propagation probability CP is helpful and effective in assessing the design quality of SPL architectures. We propose to use the CP to assess the evolution of the maintainability of the architecture of software product lines through different releases. predict the quality of the software products instan Index Terms — Software Architecture, Architectural Attributes, Change Propagation Probabilities, Software Evoultion. I. I NTRODUCTION Product-line engineering (PLE) has become known to be one of the most commonly used paradigms for software development in varied domains where commonality and variability plays a crucial role in determining the reusability, flexibility, adaptability, evolvability, maintainability and quality of service (QoS) provided by the product variants to the end users [13]. The commonality is shared by various products of the product line whereas variability distinguishes individual product variants. The variability may manifest itself in terms of functionality or configurability or both. Software product line (SPL) is a set of software-intensive systems that share a general set of features for satisfying a particular market segment’s needs. SPLs can reduce development costs, shorten time-to-market, and improve product quality by reusing core assets for project-specific customizations [3], [5]. To enable reuse on a large scale, SPL Engineering (SPLE) identifies and manages commonalities and variations across a set of system artifacts such as requirements, architectures, code components, and test cases. A sound architecture is the key to build a software system with high quality attributes. Software architecture explicates the structure of the system in terms of components and interactions among them to accomplish the desired requirements. Furthermore, it supports many software development paradigms such as COTS-based software development, product line engineering and component based software engineering. As architecture became a more significant artifact in developing software systems, the need to quantitatively analyze the architecture has become eminent. The architecture quantitative analysis should reflect its pertinent quality attributes and help us to tiated from it. The definition for software architecture (naturally) does not completely describe the entire aspects associated with product line architecture. The main difference lies in the intended life span of the architectures. The life span of software product line architecture is much longer than an ordinary software product [12]. Therefore, the architecture of the product line should be more robust and adaptive to evolution. In contrast to ordinary software product architecture, SPLE should support a number of different instantiations. These instantiations help in commonalities as well as variability within software product line. Hence, the product line architecture provides a common structure of the software system while capturing the variabilities and commonalities of the products contained in the product line [12]. One of the main concepts behind Product line architecture is software reuse through managing variability between the products in the PL. In this paper, we mostly focus on a specific architectural attribute, namely, Change Propagation (CP) probability [1]. CP reflects the probability of a change to be made in one or more of the components of an architecture as a result of introducing a change in one of the components. Our main objective is to show the role and use of CP in assessing the design quality attributes mainly the maintainability evolution in SPL through different releases. We will illustrate how, in our view, the perspective and insights offered by CP is different from the information provided by traditional object-oriented metrics.