一句话:提出首个完整无歧义的源代码可变性编辑分类目录,并自动验证大规模提交历史。
针对 Linux 内核等高可配置系统,源代码变更常伴随 feature-to-code 映射的引入、删除或修改,但这些可变性编辑往往缺乏文档,难以理解其对可变性的影响。论文提出首个完整且无歧义的源代码可变性编辑分类,建立可构造完整无歧义分类的 scheme,并给出编辑可变性的完备且可靠模型。为验证,作者自动分类 44 个开源系统变更历史中 170 万次提交的每个编辑,平均每提交约 21.5ms;所有具有语法正确 feature-to-code 映射的编辑均可分类,且所有编辑类在实践中均有出现。
For highly configurable software systems, such as the Linux kernel, maintaining and evolving variability information along changes to source code poses a major challenge. While source code itself may be edited, also feature-to-code mappings may be introduced, removed, or changed. In practice, such edits are often conducted ad-hoc and without proper documentation. To support the maintenance and evolution of variability, it is desirable to understand the impact of each edit on the variability. We propose the first complete and unambiguous classification of edits to variability in source code by means of a catalog of edit classes. This catalog is based on a scheme that can be used to build classifications that are complete and unambiguous by construction. To this end, we introduce a complete and sound model for edits to variability. In about 21.5ms per commit, we validate the correctness and suitability of our classification by classifying each edit in 1.7 million commits in the change histories of 44 open-source software systems automatically. We are able to classify all edits with syntactically correct feature-to-code mappings and find that all our edit classes occur in practice.
@inproceedings{paperbot6965,
title = {Classifying edits to variability in source code},
author = {Paul Maximilian Bittner and Christof Tinnes and Alexander Schultheiß and Sören Viegener and Timo Kehrer and Thomas Thüm},
booktitle = {FSE},
year = {2022},
doi = {10.1145/3540250.3549108}
}