项目背景

API文档所描述的内容也会存在缺陷,此类缺陷在传统的开发过程中没有较好的检测和修复方式。

  • 现有的静态代码扫描,只能针对接口文档中缺失的部分进行告警,不能提供修复建议。
  • 现有的静态代码扫描无法识别接口文档中描述错误,即和代码不一致的地方。

    项目目标

    | 目标描述 | 实现阶段 | | —- | —- | | 分析API文档与代码的一致性,识别文档中的两类缺陷 | 第1阶段、第2阶段 | | 针对缺陷提供修复建议 | 第3阶段 |

关键事项

项目计划 - 图1

阶段1

  • 文档自然语言解析
    • 解析出自然语言表达的意图
    • 将分析结果用FOL表示(记为 FOLdoc)
  • 代码抽象语法树解析

    • 解析出代码的抽象语法树结构
    • 用FOL表示得到的AST(记为 FOLcode)

      阶段2

  • 对比FOLdoc和FOLcode

    • 使用数学方式比较两个FOL是否等价
  • 对不等价的情况生成缺陷报告

    • 以代码实现为依据,报告文档中不一致的部分

      阶段3

  • 推荐缺陷修复方案