当前位置: X-MOL 学术J. Comput. Lang. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Guiding feature model evolution by lifting code-level dependencies
Journal of Computer Languages ( IF 1.7 ) Pub Date : 2021-03-29 , DOI: 10.1016/j.cola.2021.101034
Kevin Feichtinger , Daniel Hinterreiter , Lukas Linsbauer , Herbert Prähofer , Paul Grünbacher

Feature models are a de facto standard for representing the commonalities and variability of product lines and configurable software systems. Requirements-level features are commonly implemented in multiple source code artifacts, resulting in complex dependencies at the code level. As developers add and evolve features frequently, it is challenging to keep feature models consistent with their implementation. This article thus presents an approach combining feature-to-code mappings and code dependency analyses to inform engineers about possible inconsistencies. We focus on code-level changes requiring updates in feature dependencies and constraints. Our approach uses static code analysis and a variation control system to lift complex code-level dependencies to feature models. We present the suggested dependencies to the engineer in two ways: directly as links between features in a feature model and as a heatmap visualizing the dependency changes of all features in a model. We evaluate our approach by analyzing the evolution history of two case study systems: the Pick-and-Place Unit and the KePlast product line of our industry partner KEBA AG. We present results of evaluating the utility (RQ1) and performance (RQ2) of our approach, as well as the quality of the suggestions (RQ3).



中文翻译:

通过解除代码级依赖性来指导要素模型的演变

特征模型是用于表示产品线和可配置软件系统的共性和可变性的事实上的标准。需求级功能通常在多个源代码工件中实现,从而导致代码级的复杂依赖关系。随着开发人员频繁添加和发展功能,使功能模型与其实现保持一致是一项挑战。因此,本文提出了一种结合特征到代码的映射以及代码依赖性分析的方法,以告知工程师可能存在的不一致之处。我们专注于代码级更改,这些更改要求对功能依赖性和约束进行更新。我们的方法使用静态代码分析和变化控制系统将复杂的代码级依赖关系提升到特征模型。我们通过两种方式向工程师提出建议的依赖关系:直接作为要素模型中要素之间的链接,以及作为可视化模型中所有要素的依存关系变化的热图。我们通过分析两个案例研究系统的演进历史来评估我们的方法:贴装单元和我们的行业合作伙伴KEBA AG的KePlast产品线。我们介绍了评估我们方法的效用(RQ1)和性能(RQ2)以及建议质量(RQ3)的结果。

更新日期:2021-04-09
down
wechat
bug