一句话:提出整合意图与IDE工具INCLINE,以声明/撤销意图的方式将克隆变体整合为可配置平台,实验表明可减少整合错误。
克隆是创建系统变体的便捷方式,但长期维护成本高,最终需整合为可配置平台。该整合不同于传统软件合并:既要合并变体间的常规代码改进,又要将可变代码组织进平台,需多轮探索并进行细粒度编辑,而现有工具支持匮乏。本文提出用一小组“整合意图”来减轻编辑负担;开发者可对代码元素声明或撤销意图,交互式探索整合空间。作者实现 IDE 工具 INCLINE 及五个可编辑视图,并给出“保留功能”等意图。实验评估意图完备性、INCLINE 的正确性与性能及使用收益;结果表明其能处理复杂整合、视图有助于导航并减少整合错误。
Cloning is a simple way to create new variants of a system. While cheap at first, it increases maintenance cost in the long term. Eventually, the cloned variants need to be integrated into a configurable platform. Such an integration is challenging: it involves merging the usual code improvements between the variants, and also integrating the variable code (features) into the platform. Thus, variant integration differs from traditional soft- ware merging, which does not produce or organize configurable code, but creates a single system that cannot be configured into variants. In practice, variant integration requires fine-grained code edits, performed in an exploratory manner, in multiple iterations. Unfortunately, little tool support exists for integrating cloned variants. In this work, we show that fine-grained code edits needed for integration can be alleviated by a small set of integration intentions-domain-specific actions declared over code snippets controlling the integration. Developers can interactively explore the integration space by declaring (or revoking) intentions on code elements. We contribute the intentions (e.g., 'keep functionality' or 'keep as a configurable feature') and the IDE tool INCLINE, which implements the intentions and five editable views that visualize the integration process and allow declaring intentions producing a configurable integrated platform. In a series of experiments, we evaluated the completeness of the pro- posed intentions, the correctness and performance of INCLINE, and the benefits of using intentions for variant integration. The experiments show that INCLINE can handle complex integration tasks, that views help to navigate the code, and that it consistently reduces mistakes made by developers during variant integration.
@inproceedings{LillackSHBW20,
title = {Intention-Based Integration of Software Variants},
author = {Max Lillack and Stefan Stanciulescu and Wilhelm Hedman and Thorsten Berger and Andrzej Wasowski},
booktitle = {ICSE},
year = {2019},
doi = {10.1109/icse.2019.00090}
}