Concepedia

Publication | Closed Access

Variant-preserving refactoring in feature-oriented software product lines

63

Citations

19

References

2012

Year

TLDR

Software product lines manage families of programs, and maintenance—especially refactoring—must preserve the behavior of all variants, not just individual programs. This paper focuses on the specific requirements for applying refactorings in feature‑oriented SPLs. We propose a variant‑preserving refactoring approach that extends the traditional refactoring definition to apply to feature‑oriented SPLs, ensuring all variants remain valid. We applied the approach to remove code clones in feature‑oriented SPLs and found it generalizable to other SPL implementation techniques.

Abstract

A software product line (SPL) is an advanced concept to manage a family of programs under one umbrella. As with stand-alone programs, maintenance is an important challenge within SPL engineering. One pivotal activity during software maintenance is refactoring; that is, restructuring a program's source code while preserving its external behavior. However, for SPLs, this definition is not sufficient because it does not take into account the behavior of a set of programs. In this paper, we focus on the specific requirements for applying refactorings in feature-oriented SPLs. We propose variant-preserving refactoring for such SPLs to ensure the validity of all SPL variants after refactoring. Furthermore, we present a first approach how the traditional refactoring definition can be extended so that it can be applied to SPLs based on feature-oriented programming. Finally, we state our experiences of applying such refactorings for the removal of code clones in feature-oriented SPLs and discuss the generalizability for other SPL implementation techniques.

References

YearCitations

Page 1