论文

规范的保真探针——代码对齐

Fidelity Probes for Specification--Code Alignment

摘要

软件现代化通常依赖于从现有实现中恢复的自然语言规范。不正确或缺失的需求可能会导致现代化系统出现缺陷。我们引入保真度探针来根据代码检查规范并指导其修订。每个探测都会将一个有关程序行为的问题与从代码中派生的参考答案配对。语言模型仅使用规范来回答问题,而一致答案的比例定义了保真度。分歧标记出相互冲突的主张或缺失的信息,并指导对要求提出的更正和补充。 LLM 直接根据通过控制流、数据流和调用图分析选择的代码或短语事实生成探针。我们使用可观察性规则将探究问题集中在现代化系统旨在保留的行为上,包括用户可见的输出、存储的业务数据的更改以及与其他系统的交互。我们使用新的探针修改规范,并在固定的保留集上评估每个版本。修复回归模型描述了新故障如何抵消修复带来的收益。在 CardDemo 上,保留保真度从 0.59 提高到 0.89,超过了源代码的自由形式修订。我们还评估工业系统和公共文档的方法,并通过人工审查和与独立需求审计的比较来评估探针质量和报告的缺陷。