Assessing the Evolution of Software Product Lines Maintainability (original) (raw)

A Study of Evolution Impact in Software Product Lines

Product-line architectures, i.e. a software architecture and component set shared by a family of products, represents a promising approach to achieving reuse of software. Several companies are initiating or have recently adopted a product-line architecture. However, little experience is available with respect to the evolution of the products, the software components and the software architecture. Due to the higher level of interdependency between the various software assets, software evolution is a more complex process. In this paper, we discuss the results of two case stud- ies concentrating on the evolution of software assets in two swedish organizations that have employed the product- line architecture approach for several years. Based on these two cases, we discuss the commonalities, presented as categorizations of the evolution of the requirements, the software architecture and the software components, and also the differences between the two cases.

Using Change Propagation Probabilities to Assess Quality Attributes of Software Architectures 1

IEEE International Conference on Computer Systems and Applications, 2006., 2006

The study of software architectures is gaining importance due to its role in various aspects of software engineering, like product line engineering, componentbased software engineering and other emerging paradigms. With the increasing emphasis on design patterns, the traditional practice of ad-hoc software construction is slowly shifting towards pattern-oriented development. Various architectural attributes like error propagation, change propagation, requirements propagation provide a wealth of information about software architectures. In this paper, we show that change propagation probability (CP) is helpful and effective in assessing the design quality of software architectures. We study two different architectures (one that employs patterns versus one that does not) for the same application. We also analyze and compare the change propagation metric with respect to other coupling-based metrics.

Using Change Propagation Probabilities to Assess Quality Attributes of Software Architectures

2006

Abstract The study of software architectures is gaining importance due to its role in various aspects of software engineering, like product line engineering, componentbased software engineering and other emerging paradigms. With the increasing emphasis on design patterns, the traditional practice of ad-hoc software construction is slowly shifting towards pattern-oriented development.

Change impact analysis for software product lines

Journal of King Saud University - Computer and Information Sciences, 2016

A software product line (SPL) represents a family of products in a given application domain. Each SPL is constructed to provide for the derivation of new products by covering a wide range of features in its domain. Nevertheless, over time, some domain features may become obsolete with the apparition of new features while others may become refined. Accordingly, the SPL must be maintained to account for the domain evolution. Such evolution requires a means for managing the impact of changes on the SPL models, including the feature model and design. This paper presents an automated method that analyzes feature model evolution, traces their impact on the SPL design, and offers a set of recommendations to ensure the consistency of both models. The proposed method defines a set of new metrics adapted to SPL evolution to identify the effort needed to maintain the SPL models consistently and with a quality as good as the original models. The method and its tool are illustrated through an example of an SPL in the Text Editing domain. In addition, they are experimentally evaluated in terms of both the quality of the maintained SPL models and the precision of the impact change management.

Characterizing evolution in product line architectures

1999

Product-line architectures present an important approach to increasing software reuse and reducing development cost by sharing an architecture and set of reusable components among a family of products. However, evolution in product-line architectures is more complex than in traditional software development since new, possibly conflicting, requirements originate from the existing products in the product-line and new products that are to be incorporated. In this paper, we present a case study of product-line architecture evolution. Based on the case study, we develop categorizations for the evolution of requirements, the product-line architecture and product-line architecture components. Subsequently, we analyze and present the relations between these categorizations. Subjects: frameworks, software engineering practices, experience with object-oriented applications and systems Contact information: email: [Mikael.Svahnberg|Jan.Bosch]@ipd.hk-r.se WWW: http://www.ipd.hk-r.se/\[\~msv|\~bosch\] postal address: Abstract

Managing evolution in software product lines

Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems - VaMoS '12, 2012

In Software Product Line (SPL) engineering, similar software products are developed in families rather than individually. Developing similar software at once leads to new challenges. In particular, the model checking problem for SPL is harder because it has to deal with potentially many products and identify exactly which ones do not work properly. In previous work, we introduced Featured Transition Systems as a compact behavioural model for SPL. We also proposed new algorithms that model check all the products of the SPL efficiently, by taking into account the commonality between them to reduce the verification time. However, our current approach does not consider that SPL can evolve. If a new feature is added to the SPL, previous verification results cannot be reused. In this paper, we define formally two particular classes of features. Using simulation relations, we show that we may anticipate the properties of some products introduced by those features. We discuss interesting perspectives and present the challenges that are still ahead.

A Model-based on Role for Software Product-Line Evolving Variability

Modeling evolving variability has always been a challenge for software Product line developers. Indeed, the most recent approaches discuss the problem with the architecture aspect through languages or models. Despite the contributions of these approaches, they have not discussed the possibility to represent the evolving Product line variability with the current UML role given that the latter was designed for a single software system. In this paper, we focused on the use of the concept of evolving role resulting from the adaptation of UML role to represent the evolving variability in the software product line.

Viewpoint for Online Evolution of Software Product Lines

Abstract This report describes an architecture viewpoint that capture the conventions for constructing and using architecture views to manage online evolution of software product lines (SPL). The viewpoint frames the multiple stakeholder concerns related to online evolution of SPL, in particular variability, versioning, traceability, availability and correctness. It defines four model kinds that show the relevant information to the stakeholders for evolving deployed SPL products.

Development/Maintenance/Reuse: Software Evolution in Product Lines

Software Product Lines, 2000

The evolution tree model is a two-dimensional model that describes how the versions of the artifacts of a software product evolve. The propagation graph is a data structure that can be used for effective control of the evolution of the artifacts of a software product. In this paper we extend the evolution tree model and propagation graph to handle the evolution of a software product line.

Guaranteeing Correct Evolution of Software Product Lines

2012

The research question that we posed ourselves and which has led to this paper is: how can we guarantee the correct functioning of products of an SPL when core components evolve? This exploratory paper merely proposes an overview of a novel approach that, by extending and adapting assume-guarantee reasoning to evolving SPLs, guarantees the resilience against changes in the environment of products of an SPL. The idea is to selectively model check and test assume-guarantee properties on those SPL components affected by the changes.