Recording Feature Mappings During Evolution of Cloned Variants
Clone-and-Own and software product lines are often used approaches when developing variational software products. Nevertheless, both approaches have negative points which are inevitable when developing variants. While clone-and-own often is not feasible in terms of synchronizing changes into other variants, software product lines are costly when developing only a small amount of variants. In this thesis, we tackle these problems through the creation of an annotation-based approach. Our approach uses line-based feature mappings to implement variability language independent in any textual documents. Feature mappings are recorded automatically during a source edit with as few developer interactions as possible. As automatically feature mapping is hard without knowing the intentions of developers, they select a feature context and a feature context mode which are then used by in the feature mapping calculation. With the feature mapping assigned, developers can also select patches to be synchronized to variants which also implement the calculated feature mapping. In total, our approach mixes elements from clone-and-own and software product lines and enables developer to work as efficient as possible with an acceptable cost-benefit ratio.