代码生成平台 FRD(Functional Requirement Document)
Functional Requirement Document Version 1.0
1. 文档目的(Purpose)
本 FRD 明确定义“代码生成平台”的全部功能需求,结构化说明各模块的功能边界、场景、流程、输入/输出、前置条件、异常处理以及非功能补充,以保障研发、架构、测试团队对齐认知并顺利实施。
与 SRS 的区别:
- SRS = 全量需求(功能 + 非功能)
- FRD = 明确“Each function must do what”
- 更关注 功能行为描述、流程、用例化
2. 产品背景与范围(Scope)
2.1 产品定位
统一的模型驱动代码生成平台,结合模板、DSL、生成引擎,可生成多语言、多结构的工程代码、模块代码、文件片段。
2.2 总体功能范围
- 模型中心(Model Center)
- 模板中心(Template Center)
- DSL 引擎
- 代码生成器(Generator Engine)
- 工程脚手架生成
- Git 集成
- 权限控制与审计
- 插件扩展机制
- 平台管理
3. 功能需求列表(Functional Requirement Summary)
功能按照模块分组,编号方式为: FR-[模块编号].[内部编号]
| 模块 | 编号区间 |
|---|---|
| 模型中心 | FR-1.x |
| 模板中心 | FR-2.x |
| DSL 引擎 | FR-3.x |
| 代码生成器 | FR-4.x |
| 脚手架生成 | FR-5.x |
| Git 集成 | FR-6.x |
| 权限系统 | FR-7.x |
| 审计系统 | FR-8.x |
| 插件机制 | FR-9.x |
| 平台管理 | FR-10.x |
4. 功能需求详细说明(Detailed Functional Requirements)
4.1 模型中心(Model Center)
FR-1.1 领域模型创建
描述:用户可创建“实体模型(Entity)”,包含字段、类型、约束。 输入:模型名称、字段列表、校验规则。 输出:模型定义 JSON/DSL。 前置条件:用户拥有模型创建权限。 异常处理:重复字段名 → 显示错误。
FR-1.2 API 模型定义
用户可以定义 API(method、path、request、response)。
FR-1.3 导入外部模型
支持以下导入:
- Swagger/OpenAPI JSON
- 数据库 DDL
- JSON Schema
流程:
- 上传/输入来源文件
- 系统解析
- 显示预览
- 用户确认导入
FR-1.4 模型版本管理
- 每次保存自动生成版本号
- 支持版本 Diff
- 支持版本回滚
4.2 模板中心(Template Center)
FR-2.1 模板包上传
用户上传 zip 模板包(目录结构 + 配置文件 + 模板文件)。
FR-2.2 模板元信息配置
模板包 metadata 包含:
- 模板类型(工程、模块、文件)
- 语言(Java、TS、Go 等)
- 描述、适配范围
- 版本号
系统需要解析并展示。
FR-2.3 在线编辑模板
用户可在平台中编辑模板内容(通过 Monaco Editor)。
FR-2.4 模板预览与调试
用户可输入 mock 模型/变量,用于实时渲染模板并查看结果。
FR-2.5 模板禁用与发布流程
支持模板的审批 → 发布 → 禁用 → 下线。
4.3 DSL 引擎(DSL Engine)
FR-3.1 DSL 解析能力
支持读取 DSL 并转换为 AST,提供错误提示,包括:
- 语法错误
- 类型错误
- 未定义变量
FR-3.2 模板 DSL 运行规则
支持:
- 变量
- 条件
- 循环
- 自定义函数
- 文件路径表达式
FR-3.3 DSL 扩展机制
用户可以注册自定义函数库(Java/JS)。
4.4 代码生成器(Generator Engine)
FR-4.1 代码生成执行
流程:
- 选择模板
- 选择模型
- 生成文件
- 提供下载或直接推送 Git
FR-4.2 文件合并策略
- 覆盖
- 跳过
- 智能合并(diff3)
FR-4.3 生成历史记录
每次生成需记录:
- 模型 ID
- 模板版本 ID
- 文件数
- 用户
- 耗时
- Git 目标
FR-4.4 生成预览
用户可在执行前预览所有将要生成/修改/覆盖的文件。
4.5 工程脚手架生成(Project Scaffolding)
FR-5.1 工程初始化
- 用户选择工程类型(Spring Boot、Vue、React 等)
- 系统加载模板
- 一键生成初始工程
FR-5.2 工程插件选择
支持选择如:
- DB
- MQ
- Redis
- APM 自动生成对应目录与依赖注入代码。
4.6 Git 集成
FR-6.1 Git 仓库配置
支持配置:
- Git URL
- Token / SSH Key
FR-6.2 Git Push
代码生成后可提交至:
- 指定分支
- 新建分支
FR-6.3 合并请求(PR/MR)创建
自动创建:
- GitLab Merge Request
- GitHub Pull Request
- Gitea Pull Request
4.7 权限系统(IAM 集成)
FR-7.1 资源权限
资源包括:
- 模型
- 模板
- 生成记录
- Git 凭证
权限类型:
- 创建
- 编辑
- 删除
- 查看
- 发布
FR-7.2 数据隔离
支持按团队 / 项目维度隔离数据。
4.8 审计系统
FR-8.1 操作审计
记录以下行为:
- 模型 CRUD
- 模板管理行为
- Git 操作
- 生成行为
FR-8.2 审计查询
支持按时间、用户、对象进行筛选。
4.9 扩展插件机制
FR-9.1 插件注册
插件可扩展:
- DSL 函数
- 模板 Helper
- 文件生成后置处理
- 代码质量检测
FR-9.2 插件生命周期
- Install
- Enable
- Disable
- Update
- Uninstall
4.10 平台管理
FR-10.1 系统配置
系统管理员可管理:
- 模板审批流程
- Git 全局配置
- 全局变量
- DS 配置
FR-10.2 使用统计分析
提供报表:
- 模板使用次数排名
- 生成文件规模
- 生成失败率
- 人员使用统计
5. 功能流程图(Flow Diagrams)
如你需要,我可以继续输出以下内容:
- 模型创建流程图
- 模板调试流程图
- 生成器执行流程图
- Git 推送流程图
- 模板发布审批流程
(按需要生成 Mermaid 图)
6. 功能用例(Use Cases)
可输出详细 UC(Use Case Specification),示例:
UC-1:创建模型
UC-2:生成工程代码
UC-3:创建模板
UC-4:执行 Git Push
(如需我可以全部列满)
7. 验收标准(Acceptance Criteria)
基于功能需求定义验收点,例如:
- 模型能导入 Swagger 文件并正确解析
- 模板调试可实时预览
- 生成器可在 5 秒内生成 200 文件
- Git Push/PR 能正常执行
- 模板禁用后不可使用
- 审计记录不可删除
8. 附录(Appendix)
- 代码生成平台 FRD(Functional Requirement Document)
- 1. 文档目的(Purpose)
- 2. 产品背景与范围(Scope)
- 3. 功能需求列表(Functional Requirement Summary)
- 4. 功能需求详细说明(Detailed Functional Requirements)
- 5. 功能流程图(Flow Diagrams)
- 6. 功能用例(Use Cases)
- 7. 验收标准(Acceptance Criteria)
- 8. 附录(Appendix)
