| name | review-logic |
| description | 设计与代码逻辑一致性校验。当用户需要检查代码实现是否与设计文档一致、验证功能是否正确实现,或询问"校验代码是否符合设计"、"对比设计和实现"时使用。 |
设计与代码逻辑一致性校验
语言要求
所有输出内容必须使用中文,包括校验报告、问题描述、修正建议、总体评价等。
功能说明
校验代码实现的逻辑是否与设计文档一致,确保代码正确实现了系统设计方案,避免实现偏离设计。
文档依赖
进行逻辑一致性校验时,参考以下文档:
使用方式
当用户提供设计文档路径以及需要校验的代码时,执行逻辑一致性校验并生成报告。
输入要求
设计文档(必需):
- 设计文档:
/projectdocs/design/{需求名称}_design.md
- 设计文档是逻辑校验的主要依据
需求/用户故事文档(可选):
- 需求分析文档:
/projectdocs/require/{需求名称}_requirements_{时间戳}.md
- 用户故事文档:
/projectdocs/require/{需求名称}_userstory_{时间戳}.md
- 仅作为理解设计背景的辅助,不作为校验标准
待校验代码:
校验流程
1. 读取设计文档
- 从设计文档中提取关键设计点和功能点
- 识别业务流程、业务规则、约束条件
- 提取预期的输入输出、边界条件
- 理解核心业务逻辑与数据流
2. 分析代码实现
- 理解代码的业务逻辑流程
- 识别关键的业务处理点
- 分析输入验证、数据处理、输出结果
- 查找边界条件处理
3. 逐项对比
- 将设计文档中的逻辑与代码实现逐一对应
- 检查每个设计点是否被正确实现
- 验证业务规则是否被遵守
- 检查边界条件是否处理完整
4. 生成报告
- 列出需求与实现的对应关系
- 指出缺失的需求实现
- 标注实现有误的部分
- 提供修正建议
校验维度
1. 功能完整性
- 需求覆盖:所有需求功能是否都已实现
- 功能缺失:是否有需求功能未实现
- 多余功能:是否实现了需求之外的功能
2. 业务逻辑正确性
- 业务流程:是否按照需求的业务流程实现
- 业务规则:是否正确实现了所有业务规则
- 计算逻辑:计算公式、算法是否符合需求
- 状态转换:状态流转是否符合需求定义
3. 数据处理一致性
- 输入验证:输入参数验证是否符合需求要求
- 数据转换:数据格式转换是否正确
- 输出格式:输出结果是否符合需求定义
- 数据范围:数据取值范围是否符合需求约束
4. 边界条件处理
- 异常场景:异常情况处理是否符合设计要求
- 极值处理:最大值、最小值处理是否正确
- 空值处理:空值、null 处理是否符合设计要求
- 并发处理:并发场景处理是否符合设计要求
5. 权限与安全
- 权限控制:权限验证是否符合设计要求
- 数据安全:敏感数据处理是否符合要求
- 操作审计:审计日志是否按设计要求记录
校验报告格式
# 设计与代码逻辑一致性校验报告
## 概览
- 设计文档:xxx_design_20241230_100000.md
- 校验代码:UserService.java
- 校验时间:2024-xx-xx
- 一致性评分:xx%
- 问题总数:xx 个
## 设计覆盖情况
### ✅ 已实现的设计点(x 项)
1. **[设计编号/用例编号] 设计标题/用例名称**
- 设计说明:...
- 实现位置:UserService.createUser() (Line 25-50)
- 实现方式:...
- 一致性:✅ 完全一致
### ⚠️ 实现有偏差的设计点(x 项)
1. **[设计编号/用例编号] 设计标题/用例名称**
- 设计说明:...
- 实现位置:UserService.updateUser() (Line 60-80)
- 问题描述:...
- 偏差影响:...
- 修正建议:...
### ❌ 未实现的设计点(x 项)
1. **[设计编号/用例编号] 设计标题/用例名称**
- 设计说明:...
- 影响范围:...
- 建议:补充实现该设计点
### 🔍 多余的实现(x 项)
1. **UserService.extraMethod()**
- 实现位置:Line 100-120
- 问题:该功能不在需求范围内
- 建议:确认是否需要保留
## 总体评价
- 设计覆盖率:xx%
- 逻辑一致性:xx%
- 主要问题:...
- 修复建议:...
校验清单
功能完整性
业务逻辑
数据处理
边界条件
权限安全
校验原则
- 以设计为准:设计文档是校验的主要标准
- 全面覆盖:检查所有设计点,不遗漏
- 细致对比:仔细对比设计与实现的差异
- 客观公正:基于事实,不掺杂主观判断
- 建设性意见:提供可操作的改进建议
注意事项
- 设计文档必须:必须提供设计文档,否则无法进行校验
- 理解设计意图:不仅检查表面实现,还要理解设计背后的业务意图
- 关注隐性设计要求:一些隐含的设计要求也要考虑(如性能、安全等非功能性要求)
- 考虑业务场景:结合实际业务场景判断实现是否合理
- 提供具体建议:不仅指出问题,还要提供修复建议
- 分段处理大文档:如果设计文档过大,采用分段读取策略