← 最新论文
💻 computer science

Towards Automated Identification of Violation Symptoms of Architecture Erosion

本文提出了一种通过比较传统机器学习、深度学习和大型语言模型,在代码审查中自动识别架构侵蚀违规症状的方法,并证明了基于大语言模型的分类器优于其他模型,且在受控实验中显著提高了开发者的检测率。

原作者: Ruiyin Li, Peng Liang, Paris Avgeriou, Yifei Wang

发布于 2026-07-07
📖 1 分钟阅读☕ 轻松阅读

原作者: Ruiyin Li, Peng Liang, Paris Avgeriou, Yifei Wang

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在建造一座宏伟而复杂的城堡。你拥有一份主蓝图(即架构),上面写着:“厨房必须在地面层,图书馆必须在顶层。”这份计划确保了城堡的稳固、易于导航,并且不会因自身重量而坍塌。

然而,随着不同的建造者不断添加房间或修理漏水处,他们可能会不小心建造了一段直接连接厨房与图书馆的楼梯,或者把一个沉重的保险库放在了阁楼里。城堡依然屹立不倒,但它已不再遵循蓝图。这种缓慢且悄然发生的偏差被称为架构侵蚀(Architecture Erosion)。这就像是设计中的白蚁灾害:你无法在结构开始摇晃之前察觉到它的存在。

问题所在:寻找白蚁

通常情况下,要发现这些设计错误,你需要雇佣一支专家建筑师团队,让他们将蓝图与实际建筑进行并排对比。这既缓慢又昂贵,而且容易遗漏。

在软件世界中,开发者会通过**代码审查(Code Reviews)*来讨论这些错误。当一名程序员提交更改时,其他人会阅读代码并留下评论,例如:“嘿,你不能在这里调用数据库;这违反了我们的规则!”* 这些评论就是“侵蚀”的症状。但评论成千上万,人类会感到疲劳,也可能错过那些微妙的警告。

解决方案:自动化的“白蚁检测器”

研究人员提出了一个问题:我们能否构建一个智能计算机程序,通过阅读这些评论,自动标记出那些听起来像是架构违规的评论?

他们将这视为一场使用三种不同类型“大脑”进行的“找不同”游戏:

  1. 传统大脑(机器学习/深度学习): 这些就像经过训练的猎犬。你向它们展示数千个“坏评论”和“好评论”的例子,它们就会学会嗅出其中的坏评论。

    • 他们测试了许多种不同的“嗅探”技术。
    • 获胜者: 一种被称为 SVM(支持向量机)且经过特定词汇表(word2vec)训练的特定类型的“狗”表现最好。它的准确率约为 80%
    • 团队协作技巧: 他们发现,如果你让五只不同的狗对一条评论是否为“坏评论”进行投票,集体决策的效果甚至比任何一只单体犬都要好。
  2. 超级大脑(大语言模型 - LLMs): 这些就像博学多才的通才(想象一位读遍了宇宙中所有书籍的超级聪明图书管理员)。它们不需要针对你的特定数据进行“训练”;你只需询问它们:“这条评论是否属于设计违规?”

    • 他们测试了三款最强大的模型:GPT-4oQwen-3DeepSeek-R1
    • 获胜者: GPT-4o 是其中的明星。它的正确率约为 85%,击败了传统的“猎犬”。它比其他模型能更好地理解评论中的上下文和细微差别。

现实世界测试:它真的有用吗?

构建一个检测器是一回事;确保人类真正觉得它有用则是另一回事。研究人员通过两项工作来验证这一点:

  1. 调查(询问建造者): 他们询问真实的软件开发者:“如果有一个工具能指出这些设计错误,会对你们有帮助吗?”

    • 结果: 大多数人回答说 “是”。他们觉得这能帮助他们更快地发现问题,并优先处理需要修复的问题。这就像是在黑暗的房间里拿着一把能照亮松动砖块的手电筒。
  2. 实验(“有 vs 无”测试): 他们设置了一个受控测试,分为两组开发者。

    • A 组(对照组): 必须在代码审查中自行寻找设计错误。
    • B 组(实验组): 承担相同的任务,但计算机工具会高亮显示那些听起来像违规行为的评论。
    • 结果: B 组的表现好得多。他们在发现错误方面的成功率从 26% 大幅跃升至 65%。该工具不仅能找到错误,还能帮助人类更好地发现它们。

核心结论

这篇论文证明了我们可以利用 AI 在代码审查过程中充当“第二双眼睛”。

  • 传统 AI 运行良好且速度快。
  • 超级 AI (LLMs) 效果更好,但运行成本可能更高。
  • 最棒的部分是: 当开发者使用这些工具时,他们实际上能捕捉到更多的架构错误,从而保持“城堡”(软件系统)的强韧并忠于其原始蓝图。

研究人员不仅开发了一个工具;他们还证明了给予开发者关于潜在设计错误的“提示”,能显著提升他们的工作水平。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →