利用信息流估计开发者对同一方法的贡献之间的干扰
软件工程
2024-04-15 v1
摘要
本研究的主要目标是理解信息流控制(Information Flow Control, IFC)这一用于发现软件中泄漏的安全技术,是否可用于指示合并场景下开发者贡献之间动态语义冲突的存在。然而,由于定义动态语义冲突是否存在涉及理解系统的预期行为,而此类行为规范往往难以捕获、形式化和推理,我们转而尝试在代码层面检测 Goguen 和 Meseguer 提出的干扰概念的一种适应性实现。我们将范围限定于由开发者对同一方法的贡献所引起的干扰。因此,我们进行评估以理解信息流是否可用于估计干扰。具体而言,我们使用 Java 对象敏感分析(Java Object-sensitive Analysis, JOANA)对 Java 程序进行 IFC。JOANA 通过使用系统依赖图(System Dependence Graph, SDG)——一种表示程序中信息流的有向图——来实现 Java 程序的 IFC。此外,我们提供的证据表明,在我们评估的约 64% 的场景中,开发者对同一方法的贡献之间发生了信息流。最后,我们对 35 个存在开发者同一方法贡献间信息流的场景进行了人工分析,以理解使用信息流估计同一方法贡献间干扰的局限性。在这 35 个分析场景中,我们仅认为其中 15 个确实存在干扰。我们发现了检测到信息流但无干扰的三大主要原因:与变更性质相关的案例、我们策略导致的过度标注,以及 JOANA 识别的流的保守性。我们得出结论,信息流可用于估计干扰,但理想情况下应减少误报数量。
引用
@article{arxiv.2404.08619,
title = {Using Information Flow to estimate interference between developers same method contributions},
author = {Roberto Souto Maior de Barros Filho and Paulo Borba},
journal= {arXiv preprint arXiv:2404.08619},
year = {2024}
}