A prototype-based approach for managing clones in clone-and-own product lines

Daniela Rabiser, P. Grünbacher, Herbert Prähofer, Florian Angerer
{"title":"A prototype-based approach for managing clones in clone-and-own product lines","authors":"Daniela Rabiser, P. Grünbacher, Herbert Prähofer, Florian Angerer","doi":"10.1145/2934466.2934487","DOIUrl":null,"url":null,"abstract":"Feature models are commonly used in industrial contexts to guide and automate the derivation of product variants. However, in real-world product lines the derivation process goes beyond selecting and composing product features. Specifically, developers often perform clone-and-own reuse, i.e., they copy, modify, and extend existing code to provide the functionality required by customers. Clones are created at different levels of granularity, ranging from individual features to entire systems. Refactoring and reverse engineering approaches have been proposed for dealing with cloned product variants. However, managing clones has not been addressed in the context of feature models. For instance, if clones are created to address customer requirements in specific product variants, the connection to the original feature models is frequently lost. We thus present a modeling approach based on prototypes, i.e., prefabricated objects from which clones are created. Our approach allows to manage prototypes and their clones at the levels of products, components, and features. We use compliance levels to define the required level of consistency between prototypes and clones. We further adapt an existing consistency checking framework for detecting inconsistent clones when the product line evolves. Our approach uses feature-to-code mappings to determine the impact of changes on code elements. We present a case study illustrating prototypes, clones, and compliance levels in selected development scenarios of our industry partner's product line. We also discuss the use of static code analysis techniques to support engineers in determining the impact of changed prototypes on affected clones, an area we plan to address in our future work.","PeriodicalId":128559,"journal":{"name":"Proceedings of the 20th International Systems and Software Product Line Conference","volume":"59 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-09-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"12","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 20th International Systems and Software Product Line Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2934466.2934487","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 12

Abstract

Feature models are commonly used in industrial contexts to guide and automate the derivation of product variants. However, in real-world product lines the derivation process goes beyond selecting and composing product features. Specifically, developers often perform clone-and-own reuse, i.e., they copy, modify, and extend existing code to provide the functionality required by customers. Clones are created at different levels of granularity, ranging from individual features to entire systems. Refactoring and reverse engineering approaches have been proposed for dealing with cloned product variants. However, managing clones has not been addressed in the context of feature models. For instance, if clones are created to address customer requirements in specific product variants, the connection to the original feature models is frequently lost. We thus present a modeling approach based on prototypes, i.e., prefabricated objects from which clones are created. Our approach allows to manage prototypes and their clones at the levels of products, components, and features. We use compliance levels to define the required level of consistency between prototypes and clones. We further adapt an existing consistency checking framework for detecting inconsistent clones when the product line evolves. Our approach uses feature-to-code mappings to determine the impact of changes on code elements. We present a case study illustrating prototypes, clones, and compliance levels in selected development scenarios of our industry partner's product line. We also discuss the use of static code analysis techniques to support engineers in determining the impact of changed prototypes on affected clones, an area we plan to address in our future work.
一种基于原型的方法,用于管理“克隆并拥有”产品线中的克隆
特征模型通常在工业环境中用于指导和自动化产品变体的派生。然而,在现实世界的产品线中,派生过程不仅仅是选择和组合产品特性。具体来说,开发人员经常执行“克隆并拥有”的重用,也就是说,他们复制、修改和扩展现有代码,以提供客户所需的功能。在不同的粒度级别上创建克隆,范围从单个功能到整个系统。重构和逆向工程方法已被提出用于处理克隆产品变体。然而,在特性模型的上下文中还没有解决克隆的管理问题。例如,如果创建克隆是为了满足特定产品变体中的客户需求,那么与原始功能模型的连接经常会丢失。因此,我们提出了一种基于原型的建模方法,即创建克隆的预制对象。我们的方法允许在产品、组件和特性的层次上管理原型及其克隆。我们使用遵从性级别来定义原型和克隆之间所需的一致性级别。我们进一步调整现有的一致性检查框架,以便在产品线发展时检测不一致的克隆。我们的方法使用特性到代码的映射来确定更改对代码元素的影响。我们提供了一个案例研究,说明了我们的行业合作伙伴产品线的选定开发场景中的原型、克隆和遵从性级别。我们还讨论了静态代码分析技术的使用,以支持工程师确定更改原型对受影响克隆的影响,这是我们计划在未来工作中解决的一个领域。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信