Publication | Closed Access
Variant-preserving refactoring in feature-oriented software product lines
63
Citations
19
References
2012
Year
Unknown Venue
Software MaintenanceSpl EngineeringEngineeringSoftware EngineeringSoftware AnalysisFormal VerificationProgram TransformationSoftware Re-engineeringDesignFeature ModelingSoftware Product LineComputer ScienceSoftware DesignCode RefactoringSoftware EvolutionVariant-preserving RefactoringProgram AnalysisSoftware TestingFormal MethodsProduct Line EngineeringCode ReuseSystem SoftwareRefactoring
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.
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1