# FRD 模板(pmassist-v3) > **使用说明**:聚焦"可实现的功能规格"。需求条目使用 FR-xxx 编号,采用 WHEN/IF ... SHALL ... 语句。 > 每条 FR 需对应 `outputs/acceptance.md` 中的 AC-xxx 验收标准。 --- ## 0. 文档信息 | 字段 | 内容 | |---|---| | 版本 | v1.0 | | 状态 | 草稿 / 评审中 / 定稿 | | 作者 | | | 创建日期 | | | 最后更新 | | | 适用范围 | | ### 变更记录 | 版本 | 日期 | 变更编号 | 变更说明 | 影响 FR | |---|---|---|---|---| | v1.0 | | CHG-000 | 初稿 | 全部 | --- ## 1. 引言 ### 1.1 目的 ### 1.2 范围 ### 1.3 术语与缩写 | 术语 | 说明 | |---|---| | | | ### 1.4 参考资料 > 引用 `materials_index.md` 中的 SRC-xxx --- ## 2. 总体描述 ### 2.1 产品视角(系统边界) ```mermaid graph LR subgraph 本系统 A[模块A] --> B[模块B] end C[上游系统] --> A B --> D[下游系统] ``` ### 2.2 功能概览 | 模块 | 功能 | 优先级 | 依赖 | |---|---|---|---| | | | P0/P1/P2 | | ### 2.3 用户特征 | 用户角色 | 权限级别 | 典型操作 | |---|---|---| | | | | ### 2.4 约束条件 ### 2.5 假设与依赖 --- ## 3. 功能需求(核心) > **编号规则**:主功能 FR-001;子场景 FR-001-1。每条 FR 须有对应 AC。 ### 3.1 功能需求列表 | FR 编号 | 标题 | 优先级 | 状态 | AC 引用 | |---|---|---|---|---| | FR-001 | | P0 | 待确认 | AC-001-1, AC-001-2 | | FR-002 | | P1 | 待确认 | | ### 3.2 功能需求详细说明 --- #### FR-001:{功能名称} - **优先级**:P0 / P1 / P2 - **角色/主体**: - **触发条件**:WHEN/IF {条件} - **需求**:系统 SHALL {做什么} - **业务规则**: 1. {规则1} 2. {规则2} - **边界条件/异常**: - WHEN {异常条件} → 系统 SHALL {处理方式} - **优先级**:P0 - **依据/来源**:[SRC-001] / [CODEMAP:...] / [ASSUMPTION] - **验收标准**:AC-001-1, AC-001-2 --- #### FR-002:{功能名称} (同上格式) --- ## 4. 外部接口需求 ### 4.1 用户界面 | 页面/组件 | 输入字段 | 输出/展示 | 规则 | FR 引用 | |---|---|---|---|---| | | | | | | ### 4.2 软件接口 | 接口名称 | 请求方法 | 说明 | FR 引用 | 证据 | |---|---|---|---|---| | POST /api/xxx | POST | | FR-001 | | #### 接口详细说明 **接口:POST /api/{path}** - **描述**: - **请求参数**: ```json { "field1": "string, 说明", "field2": 0, "field3": true } ``` - **响应**: ```json { "code": 200, "msg": "success", "data": {} } ``` - **错误码**: | 错误码 | 说明 | |---|---| | 400 | 参数校验失败 | | 403 | 无权限 | ### 4.3 通信接口/协议 --- ## 5. 数据需求 ### 5.1 数据实体/字段定义 | 字段名 | 类型 | 必填 | 默认值 | 说明 | FR 引用 | |---|---|---|---|---|---| | | | | | | | ### 5.2 数据库 DDL ```sql -- 新建表 CREATE TABLE `{表名}` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', `code` VARCHAR(64) NOT NULL COMMENT '编号,格式:前缀+yyyyMMdd+6位顺序号', -- 业务字段... `status` TINYINT NOT NULL DEFAULT 0 COMMENT '状态:0=xxx,1=xxx,2=xxx', `create_by` VARCHAR(64) COMMENT '创建人', `create_time` DATETIME COMMENT '创建时间', `update_by` VARCHAR(64) COMMENT '更新人', `update_time` DATETIME COMMENT '更新时间', `del_flag` CHAR(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0=存在,1=删除)', PRIMARY KEY (`id`), UNIQUE KEY `uk_code` (`code`), KEY `idx_status` (`status`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='{表注释}'; -- 字段变更 ALTER TABLE `{表名}` ADD COLUMN `{字段}` {类型} DEFAULT {值} COMMENT '{说明}' AFTER `{前一字段}`; ``` ### 5.3 数据校验规则 | 字段 | 校验规则 | 错误提示 | FR 引用 | |---|---|---|---| | | | | | ### 5.4 存储与迁移要求 --- ## 6. 非功能需求 ### 6.1 性能 | 指标 | 要求 | 说明 | |---|---|---| | 响应时间 | < 200ms (P95) | | | 并发 | | | | 吞吐 | | | ### 6.2 安全与权限 | 功能/接口 | 权限代码 | 角色 | 说明 | |---|---|---|---| | | | | | ### 6.3 可靠性/可用性 ### 6.4 可维护性/可扩展性 --- ## 7. 追踪与验收 ### 7.1 需求追踪矩阵 | FR 编号 | 设计文档 | 实现位置 | 测试用例/AC | 状态 | |---|---|---|---|---| | FR-001 | | | AC-001-1~3 | | ### 7.2 验收用例清单 > 详细 AC 见 `outputs/acceptance.md` --- ## 8. 风险与开放问题 | 风险/问题 | 类型 | 等级 | 应对措施 | 状态 | |---|---|---|---|---| | | 风险/待决问题 | 高/中/低 | | 开放/已关闭 | --- ## 9. 差异点清单 | 维度 | 现状 | 目标 | 影响 FR | 证据 | |---|---|---|---|---| | | | | | | --- ## 10. 证据映射表(强制) | 章节 | 关键结论 | 证据 | 状态 | |---|---|---|---| | 功能需求 | | | | | 接口需求 | | | | | 数据需求 | | | | | 非功能需求 | | | | --- ## 11. FR → AC 覆盖矩阵(强制) | FR 编号 | FR 标题 | AC 数量 | AC 列表 | 覆盖状态 | |---|---|---|---|---| | FR-001 | | | AC-001-1, AC-001-2 | ✅ 已覆盖 | | FR-002 | | 0 | — | ⚠️ 待补充 | --- ## 12. 系统资产引用(强制) | 资产类型 | 路径 | 用途 | |---|---|---| | CodeMap | | | | DomainMap | | | | Runtime | | | --- ## 13. 参考资料与索引 - 引用 `materials_index.md` 的来源 ID - CODEMAP/DOMAINMAP/RUNTIME 引用:见第 12 章 --- ## 图表要求(强制检查) - [ ] 至少 1 个 mermaid 图(系统边界/流程/时序任选) - [ ] 至少 1 张表(需求条目清单/接口列表/字段定义等) - [ ] FR→AC 覆盖矩阵已填写(第 11 章)