Christian Kästner, Sven Apel, Martin Kuhlemann. LJAR: A Model of Refactoring Physically and Virtually Separated Features. Technical Report 08, School of Computer Science, University of Magdeburg, Germany, MAY 2009.
Physical separation with class refinements and method refinements ? la AHEAD and virtual separation using annotations ? la #ifdef or CIDE are two competing groups of implementation approaches for software product lines with complementary advantages. Although both groups have been mainly discussed in isolation, we strive for an integration to leverage the respective advantages. In this paper, we provide the basis for such an integration by providing a model that supports both, physical and virtual separation, and by describing refactorings in both directions. We prove the refactorings complete, such that every virtually separated product line can be automatically transformed into a physically separated one (replacing annotations by refinements) and vice versa. To demonstrate the feasibility of our approach, we have implemented the refactorings in our tool CIDE and conducted four case studies.