299 lines
5.8 KiB
Markdown
299 lines
5.8 KiB
Markdown
# 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 章)
|