Characterizing evolution in product line architectures (original) (raw)

Evolution of product line architectures

2003

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. We identified characterization of software product lines based on dimensions of primary assets, views on the organization and on assets life cycle stages and after that introduced categorizations of the evolution of the requirements, the software architecture and the software components. Our work is focused on analyzing different ways of managing modifications during architecture evolution.

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.

Architectural Evolution of a Software Product Line: an experience report

Proceedings of the 27th International Conference on Software Engineering and Knowledge Engineering, 2015

This work presents an experience report on the architectural decisions taken in the evolution of a Software Product Line (SPL) of Model-based Testing tools (PLeTs). This SPL was partially designed and developed with the intention of minimizing effort and time-to-market during the development of a family of performance testing tools. With the evolution of our research and the addition of new features to the SPL, we identified limitations in the initial architectural design of PLeTs' components, which led us to redesign its Software Product Line Architecture (SPLA). In this paper, we discuss the main issues that led to changes in our SPLA, as well as present the design decisions that facilitate its evolution in the context of an industrial environment. We will also report our experiences on architecture modifications in the evolution of our SPL with the intention of allowing easier maintenance in a volatile development environment. 1 www.cepes.pucrs.br

Maturity and evolution in software product lines: Approaches, artefacts and organization

2002

Software product lines have received considerable adoption in the software industry and prove to be a very successful approach to intra-organizational software reuse. Existing literature, however, often presents only a single approach towards adopting and evolving a software product line. In this paper, we present an overview of different approaches to architecture-centric, intraorganizational reuse of software artefacts. We relate these to maturity levels for product line artefacts and organizational models. use to expand its market with. Each case has an associated risk level and benefits. For instance, in general, the revolutionary approach involves more risk, but higher returns compared to the evolutionary approach. In table 1, the characteristics of each case are briefly described.

Product-line architectures

1998

Today's software design methodologies are aimed at one-of-a-kind applications, designs are expressed in terms of objects and classes, and software must be coded manually. We argue that future software development will be very different and will center around product-line architectures (i.e., designs for families of related applications), refinements (a generalization of today's components), and software plug-and-play (a codeless form of programming).

Workshop on Variability in Software Product Line Architectures (VARI-ARCH 2010)

2010

A software product line is a collection of similar software systems that are constructed from a shared set of assets in a prescribed way. Software product lines are valued by industry as they increase productivity and enable strategic, planned reuse of assets among multiple products. The product line architecture is key to the success of a software product line. In contrast to single system architectures, a product line architecture is designed to underpin multiple systems.

Codifying architecture knowledge to support online evolution of software product lines

Sharing and Reusing …, 2011

A company's architecture knowledge is often personalized across specific people that share experience and knowledge in the field. However, this knowledge may be important for other stakeholders. Omitting the codification of the architecture knowledge may result in ad-hoc practices, which is particularly relevant for software evolution. In a collaboration with Egemin, an industrial manufacturer of logistic systems, we faced the problem with a lack of codified architecture knowledge in the context of the evolution of a software product line (SPL). In particular, maintainers lack the architecture knowledge that is needed to perform the evolution tasks of deployed products correctly and efficiently. Ad-hoc updates increase costs and harm the company's reputation. To address this problem, we developed an automated approach for evolving deployed systems of a SPL. Central in this approach are (1) a meta-model that codifies the architecture knowledge required to support evolution of a SPL, and (2) and algorithm that uses the architecture knowledge harvested from a deployed system based on the meta-model to generate the list of tasks maintainers have to perform to evolve the system. Evaluation of the approach demonstrates a significant improvement of the quality of system updates with respect to the correct execution of updates and the availability of services during the updates.

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.

Product Instantiation in Software Product Lines: A Case Study

Lecture Notes in Computer Science, 2001

Product instantiation is one of the less frequently studied activities in the domain of software product lines. In this paper, we present the results of a case study at Axis Communication AB on product instantiation in an industrial product line, i.e. five problems and three issues. The problems are concerned the insufficiency of functional commonality, features spanning multiple components, the exclusion of unwanted features, the evolution of product line components and the handling of initialisation code. The issues discuss architectural compliance versus product instantiation effort, quick-fixes versus properly engineered extensions and component instantiation support versus product instantiation effort. The identified problems and issues are based on the case study, but have been generalized to apply to a wider context. handled late in the configuration process.