Publication | Closed Access
Extending the Reflexion Method for Consolidating Software Variants into Product Lines
39
Citations
69
References
2007
Year
Software MaintenanceEngineeringComputer ArchitectureSoftware EngineeringSoftware ReuseProduct LinesSoftware AnalysisFormal VerificationSocial SciencesSystems EngineeringSoftware Re-engineeringSoftware ComponentSoftware VariantsDesignComputer EngineeringConsolidating Software VariantsFeature ModelingSoftware Product LineComputer ScienceStatic Architectural ViewSoftware Product LinesSoftware DesignCode RefactoringIndustrial DesignProgram AnalysisSoftware TestingFormal MethodsSoftware Architecture RecoveryReusabilityProduct Line EngineeringCode ReuseSystem SoftwareReflexion Method
Software variants emerge from ad-hoc copying in- the-large with adaptations to a specific context. As the number of variants increases, maintaining such software variants becomes more and more difficult and expensive. In contrast to such ad-hoc reuse, software product lines offer organized ways of reuse, taking advantage of similarities of different products. To re-gain control, software variants may be consolidated as organized software product lines. In this paper, we describe a method and supporting tools to compare software variants at the architectural level extending the reflexion method to software variants. Murphy's reflexion method allows one to reconstruct the module view, a static architectural view describing the static components, their interfaces and dependencies and their grouping as layers and subsystems. The method consists of the specification of the module view and the mapping of implementation components onto the module view. An automatic analysis determines differences between the module view and its implementation. We extend the reflexion method from single systems to software variants. Because software variants share a very large amount of code, we use clone detection techniques to identify corresponding implementation components between variants. The correspondence is then used to transfer as much of the mapping for the analyzed variants to the next variant to be analyzed.
| Year | Citations | |
|---|---|---|
Page 1
Page 1