Cost and Benefit of Embedded Feature Annotation: A Case Study
In software industry, organizations often need to develop a set of similar software-intensive systems in order to satisfy different requirements of customers. In the literature, it has been traditionally recommended that organizations adopt Product Line Engineering for developing multiple variants. However, in reality, organizations usually develop multiple variants using the clone-and-own approach, in which a new product is developed by cloning and modifying the assets of an existing product. Although the clone-and-own approach has several advantages, it can easily lead to inconsistencies and problem of control.
In both the clone-and-own and the product line engineering context, the concept of feature can be used to characterize different variants. A feature is a function unit of a software product which provides a user-observable behavior and a unit of reuse. In the clone-and-own approach, there are two key challenges when doing cloning: reuse and consistency. For both of these activities, knowing the location of features is essential. In this thesis, we propose a lightweight approach for recording and maintaining feature models and mappings between features and software assets. We evaluated this approach in a case study, by applying it retroactively to an existing set of cloned projects in a way which simulated the actual development as if the approach had been used originally. Preliminary results showed that the extra cost of creating and maintaining a feature model and feature mapping information is negligible compared to the software development cost, and the benefit of it can justify the investment provided certain amount of reuse and consistency management is required.