# FSD 模板（功能设计说明书 / Functional Spec）

| 项 | 值 |
|---|---|
| 文档类型 | FSD（功能设计说明书） |
| 定位 | 承接 **PRD**（`requirements/`，What/Why）→ 细化**功能如何运转**（逐功能：说明/流程/界面/字段/规则/异常/权限）→ 供技术设计（SDD/TDD）与开发落地 |
| 命名 | 每模块三件套：`docs/fsd/Mx-<模块名>-FSD.md`（主）+ `docs/fsd/业务流程图-Mx.txt`（状态流转+泳道）+ `docs/fsd/测试用例-Mx.md`（用例） |
| 上级 | [需求分析总纲](../需求分析总纲.md) |

> **四层文档**：PRD（`requirements/`，What/Why）→ **FSD（本层，功能如何运转）** → **LDD 逻辑设计**（`ldd/`，数据模型/状态机/机制/算法）+ 数据字典（`ldd/数据字典.md`，字段单一事实源）→ SDD 技术设计（架构/物理库表/API/部署，待将来 `docs/sdd/`）。
>
> **不复制原则**：数据模型/状态机/算法口径已在 LDD（`ldd/`）、字段定义已在数据字典的，FSD **引用不复制**，只补其上的 **界面 / 精确字段规格（校验/来源/可编辑）/ 交互 / 异常文案 / 权限** 层。
>
> **颗粒度基准**：**逐功能**成节（§4.x）；字段定义须到「校验规则 + 数据来源 + 可编辑性 + 禁用项」；异常须带「提示文案 + 处理」；核心对象须有状态流转图；关键功能须有测试要点。类型用**逻辑类型**（文本/枚举/数值/引用/日期/布尔），物理类型留待 SDD。

---

## 标准章节

### 1. 概述与范围
- 模块功能一句话定位。
- **PRD 覆盖追溯表**：逐条 FR 编号 → 对应 §4.x 功能，保证 PRD→FSD 不断链。
- 明确不在本模块范围的部分（指向其它模块）。

### 2. 角色与权限点
- 「**角色 × 操作**」矩阵：各角色对本模块功能点的可见/可操作/数据范围（引用 M2 RBAC/ABAC，不复制模型）。

### 3. 状态流转与业务流程图（独立文档）
- 核心对象状态机图 + 关键功能泳道流程图，**另立** `docs/fsd/业务流程图-Mx.txt`（ASCII）。本节仅给索引与一句话说明，图见该文档。

### 4. 功能规格（逐功能，每个功能一节 §4.x）
> 每个 §4.x `<功能名>` 固定含以下 7 小节：

- **4.x.1 功能说明** — 一段话讲清该功能做什么、触发与结果。
- **4.x.2 业务流程** — 步骤或泳道图（复杂时引用 `业务流程图-*.txt`）；标出关键校验点与状态迁移。
- **4.x.3 界面设计** — 涉及页面/区域、关键控件、交互（分步向导/表单/列表/弹窗）、空态；线框可文字描述。
- **4.x.4 字段定义** — 表：`字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注（禁用项/展示）`。
- **4.x.5 业务规则** — 明细规则（引用 PRD `D-*`/`FR-*`），含边界、优先级、冲突处理。
- **4.x.6 异常处理** — 表：`异常场景 | 提示文案 | 处理`。
- **4.x.7 权限控制** — 各角色在本功能可做/不可做。

### 5. 接口与集成
- 表：`接口 | 方向 | 触发/频率 | 字段映射 | 失败处理`。引用总纲 `INT-*` 与相关 `OQ`。

### 6. 测试用例（独立文档）
- **另立** `docs/fsd/测试用例-Mx.md`：`编号 | 场景 | 前置条件 | 操作步骤 | 预期结果 | 优先级`，按 **正常 / 边界 / 异常**（有合规/性能诉求再加两类）分类，覆盖关键路径 + 主要异常。本节仅给索引与覆盖率目标。

### 7. 风险与依赖
- 表：`风险/依赖 | 影响 | 缓解 | 责任方`。

### 8. 遗留 / 待详设（TBD）
- 本模块 FSD 层未定项（依赖的 OQ、待业务/UX 细化项）。
