CODE INSIGHT

设计文档逆向生成

设计文档,可以从正在运行的代码重新生成。

OUTPUT #1
重新生成的设计文档

读取正在运行系统的源代码,按原有设计文档相同的章节结构与相同的格式重新生成。记载的值全部取自代码,原有的记载一字不抄。

OUTPUT #2
差异指摘报告

把“文档中如此记载,代码却并非如此运行”之处连同证据查出,并判定应由哪一侧修正。

领域

AI 品质保证(成果物是否正确,用证据说明)

适用对象

正在运行的业务系统(已有 Java / Spring Boot / MyBatis / Thymeleaf 架构的实测案例)

关键词
设计文档的重新生成规格与实现的差异检出代码解析运维与交接
01 ISSUE

系统运行越久,设计文档与代码就相距越远

每次改动只有代码得到更新,文档追不上。这很常见,但作为经营判断的材料,这种状态会以下面三种形态显现。

RISK 01
估算出现偏差

着手之后才发现文档与实现有出入,追加工时的协商空间随之消失。

RISK 02
影响排查依赖特定个人

只有读得懂代码的人才查得动,那个人的离任本身即构成风险。

RISK 03
不一致作为缺陷长期保留

未按设计文档运行之处,由于无人做过比对,便一直搁置。

02 PROCESS

AI 与资深工程师的分工

先由 AI 自我检验,资深工程师只确认存在分歧之处与抽检部分。

STEP 01 解析格式 章节结构・列的构成 STEP 02 解析代码 自界面至 SQL 逐层 STEP 03 重新生成设计文档 + 记录不一致 AI 自查 证据与覆盖度 可就地修正的当即修正 品质判定 合格・需返工・例外 STEP 04 资深工程师评审 仅例外・高风险・抽检 STEP 05 定责与严重度 应由哪一侧修正 提交 设计文档 + 差异指摘报告 需返工 ── 由 AI 修正后重新生成,无需人工介入 指摘 ── 撤回或改写记述 合格(低风险) 例外・高风险 评审结果进入下一次的生成条件 ── 同类漏检逐次减少

由 AI 自我检验:它写下的每一处记述在代码上能否找到依据、有没有遗漏,可就地修正的当即修正。

在此之上,只把判断有分歧、影响较大以及抽检的部分交由资深工程师。按工程师的指摘改过之后,待内容不再变动,才确定责任归属与严重度。

这些指摘同时进入下一次的生成条件,因此同类的遗漏会逐次减少。

03 STRENGTH

采用“重写一份”,而不是“更新”

原有的设计文档一字不动,只借用它的格式另写一份 —— 以下各点全部由此而来。

POINT 01
记载的值全部取自代码

从原有设计文档接收的只有章节结构与格式,其中写了什么一概不参照。

采用“更新”的做法,错误的记述会保留下来;正因为不抄录,两者的出入才会作为不一致显现出来。

仅从原有设计文档借用格式,记载的值全部取自源代码,据此重新生成设计文档的图
POINT 02
保持 Excel 的格式,以 Markdown 返还

章节结构、各列的含义与记载的粒度,都对齐客户现在使用的 Excel 设计文档,两份可以并列按相同顺序阅读。

返还的是纯文本的 Markdown,可以按行取差异,检索、评审与机器处理都能直接使用。

原有设计文档与重新生成的设计文档,章节结构与列构成完全对齐的图
POINT 03
不依赖特定语言专用的工具

不依靠各语言的解析器,因此公司自研语言、各类定义文件、代码生成器的输出与旧世代的 4GL 也都在范围之内。

只要层结构与格式能够对应,即可沿用同一套步骤。清单中没有的语言,提供少量代码也能判断。

各类语言的源代码,只要层结构与格式能够对应,即可沿用同一套步骤的图
适用的前提
文档不齐也能做,而且不触碰生产环境即可着手

有 1 种样本即可整理出规范;若一份都没有留存,则由我们确定格式。

我们接收的只有静态副本,既不连接正在运行的系统也不连接数据库,因此对运行没有影响,带出的范围也很明确。

客户无需事先准备任何材料。

做不到什么
代码中没有写明的内容,无法重新生成

由于记载的值全部取自代码,运营步骤、与外部系统之间的约定这类不会出现在代码中的内容,不在范围之内;仅在运行时才确定的配置值也是同样。

仅凭现有信息无法判定应由哪一侧修正的出入会保留下来。下面这个案例中,101 处里有 14 处属于此类 —— 我们不作推测、不下断言,而是作为“待确认”返还。

04 RESULT

实际做一遍,检出的件数

对象为 Java / Spring Boot 架构、约 52 万行的在运行系统。件数全部为实际输出值,案例已做匿名化。

重新生成的设计文档,与检出的不一致

重新生成的设计文档 不一致 高 不一致 中 不一致 低 不一致 合计
8 份134642101

于 2026 年度实施,成果物已通过客户验收。件数为实际输出值。

应由哪一侧修正(全部 101 处的分布)

每一处都会判定应由哪一侧修正;无法判定的不作推测,而是作为“待确认”保留。

50 代码有误
14 待确认
37 设计文档有误
代码有误 ── 设计文档正确,需要修正代码一侧 待确认 ── 仅凭现有信息无法判断的部分 设计文档有误 ── 代码正确,文档的记述过时或有误

本次实施所得到的成果

8
基于实现的设计文档 —— 可作为运维与交接的基准文件使用。
101
肉眼难以发现的不一致 —— 连同引用与证据列成清单。
13
数据缺失、误登记与未实现 —— 放置不管会影响真实数据的部分,已提前定位。
全部 101 处
应由哪一侧修正已判定完毕 —— 可直接作为改造对象清单使用。

NEXT

咨询请联络相关负责人。

只要指定一个对象,我们就会把成果物及其验证报告作为实物呈现出来。

这套方式是否有效,与其听我们讲件数,不如直接看从实际系统中跑出的结果 —— 这是最快的办法。

查看联系方式 →

只需告知选定哪一个对象,即可开始。