Abstract

Software product line (SPL) approach has been widely adopted to achieve systematic reuse in families of software products. Despite its benefits, developing an SPL from scratch requires high up-front investment. Because of that, organizations commonly create product variants with opportunistic reuse approaches (e.g., copy-and-paste or clone-and-own). However, maintenance and evolution of a large number of product variants is a challenging task. In this context, a family of products developed opportunistically is a good starting point to adopt SPLs, known as extractive approach for SPL adoption. One of the initial phases of the extractive approach is the recovery and definition of a product line architecture (PLA) based on existing software variants, to support variant derivation and also to allow the customization according to customers’ needs. The problem of defining a PLA from existing system variants is that some variants can become highly unrelated to their predecessors, known as outlier variants. The inclusion of outlier variants in the PLA recovery leads to additional effort and noise in the common structure and complicates architectural decisions. In this work, we present an automatic approach to identify and filter outlier variants during the recovery and definition of PLAs. Our approach identifies the minimum subset of cross-product architectural information for an effective PLA recovery. To evaluate our approach, we focus on real-world variants of the Apo-Games family. We recover a PLA taking as input 34 Apo-Game variants developed by using opportunistic reuse. The results provided evidence that our automatic approach is able to identify and filter outlier variants, allowing to eliminate exclusive packages and classes without removing the whole variant. We consider that the recovered PLA can help domain experts to take informed decisions to support SPL adoption.

Highlights

  • Software product line (SPL) is a widely adopted approach for developing and managing a family of software products

  • Since the extracting process is based on the games’ source code, we focus on the development view of the 4+1 architectural model for representing the recovered product line architecture (PLA) and identifying the architectural variability

  • In 8, we present the outputs of the PLA recovery approach: metrics, report, design structure matrix (DSM), development view, and concept lattice

Read more

Summary

Introduction

Software product line (SPL) is a widely adopted approach for developing and managing a family of software products. By adopting SPLs, companies achieve benefits such as reduced time-to-market, planned delivery of products, homogenization of the quality of the products, easier maintenance, and evolution of Despite its benefits, SPL adoption requires high upfront investments, the return-on-investment is usually conditioned to a deep knowledge of the domain/market segment, and its evolution in the mid- and long-term. This makes SPLs more suitable for mature domains where the variability of the systems is well established. Further details of Apo-Games variants are described in the section “Study design.”

Objectives
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call