IEEE Access (Jan 2018)
Locating Clone-and-Own Relationships in Model-Based Industrial Families of Software Products to Encourage Reuse
Abstract
Companies often develop similar product variants that share a high degree of functionality (i.e., features) by copying and modifying code (the clone-and-own approach). In an industrial context with a large amount of variants, software reuse can become complex for engineers. Identifying the clone-and-own relationships between the same features in different product variants can encourage reuse (e.g., suggesting improvements on how features are reused or detecting feature reuse impediments). This paper presents our approach to locate the clone-and-own relationships. To do this, our approach proposes an algorithm that combines feature location and code-comparison techniques. We evaluated our approach in three model-based industrial families of two domains (firmware for induction hobs and train control software). In our evaluation, we measure the performance (in terms of precision and recall) and compare our approach with its previous version (baseline), which uses a different technique to compare the code of each feature with its variants. The results show that our approach is able to locate clone-and-own relationships in different domains of real-world environments, and it outperforms the baseline up to 65.37% in terms of precision.
Keywords