Files
16gagent/docs/factories/sf-02-requirement-engineering.md
T
2026-06-06 10:40:48 +08:00

265 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SF-02 Requirement Engineering Factory
> **Status:** ✅ Active
> **Domain:** requirement-engineering
> **Dependency:** SF-01 Product Strategy Factory
## Purpose
SF-02 Requirement Engineering Factory 将 SF-01 产出的 Product Strategy Package 自动转换为完整的 Requirement Package。
SF-02 是 SF-01(战略)→ SF-03(设计)之间的关键桥梁。它把模糊的战略意图转化为结构化、可验证、可追踪的需求体系。
**SF-02 只负责需求工程,不生成代码、不设计数据库、不设计架构、不设计 UI。**
## Domain Model
SF-02 建立了统一的需求领域模型,包含 15 个核心概念:
| # | 概念 | 类型 | 说明 |
|---|------|------|------|
| 1 | RequirementPackage | 容器 | 顶层需求包,包含全部需求产物 |
| 2 | Epic | 需求 | 史诗级需求,可分解为 Feature |
| 3 | Feature | 需求 | 功能需求,属于某个 Epic |
| 4 | UserStory | 需求 | 用户故事,As a/I want/So that 格式 |
| 5 | AcceptanceCriteria | 验证 | Given/When/Then 格式验收标准 |
| 6 | BusinessRule | 规则 | 业务约束、流程规则、审批规则等 |
| 7 | Constraint | 约束 | 技术/业务/合规/资源/时间约束 |
| 8 | NonFunctionalRequirement | NFR | 性能/安全/可靠性/可扩展性等 |
| 9 | PermissionRequirement | 权限 | RBAC/ABAC/Hybrid 权限模型 |
| 10 | IntegrationRequirement | 集成 | 支付/短信/邮件/AI等集成需求 |
| 11 | DataRequirement | 数据 | 实体需求(不设计数据库) |
| 12 | RiskRequirement | 风险 | 需求相关风险识别与管理 |
| 13 | TraceabilityLink | 追踪 | 需求元素间可追溯关系 |
| 14 | Priority | 优先级 | MoSCoW/RICE/WSJF 优先级 |
| 15 | Dependency | 依赖 | 需求间依赖关系 |
| 16 | RequirementVersion | 版本 | 需求变更版本追踪 |
## Workflow
```
SF-01 Product Strategy Package
┌─────────────────────────────────────────────────┐
│ SF-02 Factory Pipeline │
│ │
│ 1. 接收 SF-01 Strategy Package │
│ 2. Strategy → Requirement Conversion │
│ 3. Epic Generation (Part C) │
│ 4. Feature Generation (Part D) │
│ 5. User Story Generation (Part E) │
│ 6. Acceptance Criteria Generation (Part F) │
│ 7. Business Rules Generation (Part G) │
│ 8. Permission Requirements (Part H) │
│ 9. NFR Generation (Part I) │
│ 10. Integration Requirements (Part J) │
│ 11. Data Requirements (Part K) │
│ 12. Dependency Graph (Part L) │
│ 13. Priority Matrix (Part M) │
│ 14. MVP Scope (Part N) │
│ 15. Traceability Matrix (Part O) │
│ 16. Requiremente Package Assembly │
└─────────────────────────────────────────────────┘
SF-03 Product Design Factory
```
## Artifact Model
SF-02 产出 14 种 Artifact
| # | Artifact | Kind | 说明 |
|---|----------|------|------|
| 1 | requirement-package | requirement | 完整需求包(Markdown 报告) |
| 2 | epic-catalog | requirement | Epic 目录(JSON |
| 3 | feature-catalog | requirement | Feature 目录(JSON |
| 4 | user-story-catalog | requirement | User Story 目录(JSON |
| 5 | acceptance-criteria-package | requirement | 验收标准包(JSON |
| 6 | business-rules-catalog | requirement | 业务规则目录(JSON |
| 7 | permission-requirements | requirement | 权限需求(JSON |
| 8 | nfr-package | requirement | 非功能需求包(JSON |
| 9 | integration-requirements | requirement | 集成需求(JSON |
| 10 | data-requirements | requirement | 数据需求(JSON |
| 11 | dependency-graph | requirement | 依赖图(JSON |
| 12 | priority-matrix | requirement | 优先级矩阵(JSON |
| 13 | mvp-scope | requirement | MVP 范围定义(JSON |
| 14 | traceability-matrix | requirement | 追踪矩阵(JSON |
## Priority Model
SF-02 支持三种优先级方法:
### MoSCoW
- **Must Have** (30%): MVP 核心功能
- **Should Have** (30%): V1 重要功能
- **Could Have** (25%): V2 增强功能
- **Won't Have** (15%): 远期规划
### RICE
```
Score = Reach × Impact × Confidence / Effort
```
### WSJF
```
Score = (Business Value + Time Criticality + Risk Reduction) / Job Duration
```
## Traceability Model
建立完整的需求追踪链:
```
SF-01 Strategy
▼ (strategy→epic)
Epic
▼ (epic→feature)
Feature
▼ (feature→story)
User Story
├── (story→ac) ──► Acceptance Criteria
├── (story→business-rule) ──► Business Rules
├── (story→nfr) ──► NFRs
└── (story→data) ──► Data Requirements
Epic → Permission Requirements (epic→permission)
Epic → Integration Requirements (epic→integration)
```
每条需求都可以从 Strategy 追溯到最终的 Acceptance Criteria。
## Conversion Logic
### Epic 生成
从产品分类(AI平台/企业SaaS/电商平台/教育平台/通用)匹配领域模板,自动生成 5~12 个 Epic。
例如:**AI客服平台** → 8 个 Epic
| Epic | Category | Objective |
|------|----------|-----------|
| 用户管理 | 用户管理 | 建立完整的用户身份体系 |
| 知识库管理 | 内容管理 | 构建高质量可检索的知识体系 |
| Agent管理 | 智能/AI | 实现 Agent 全生命周期管理 |
| 对话管理 | 业务流程 | 提供流畅的 AI 对话体验 |
| 权限管理 | 安全合规 | 保证系统安全性 |
| 运营分析 | 运营分析 | 数据驱动的产品优化 |
| 系统设置 | 系统设置 | 灵活的系统管理能力 |
| 集成对接 | 集成对接 | 开放生态集成能力 |
### Feature 生成
每个 Epic 按标题匹配 Feature 模板。例如**知识库管理** → 7 个 Feature
- 知识库创建 (CRUD)
- 文档上传 (CRUD)
- 文档解析 (workflow)
- 知识编辑 (CRUD)
- 索引构建 (workflow)
- 版本管理 (CRUD)
- 知识分类 (configuration)
### User Story 生成
根据 Feature 类型(CRUD/workflow/analytics/configuration/integration/notification/search)自动生成标准格式的 User Story。
例如:**文档上传 (CRUD)** → 6 个 Story
```
As a 用户, I want 浏览文档管理列表, so that 查找所需的知识库信息. (Must Have)
As a 用户, I want 查看文档管理详情, so that 了解知识库的完整信息. (Should Have)
As a 用户, I want 创建新的文档, so that 添加新的知识库条目. (Should Have)
As a 用户, I want 编辑已有文档, so that 保持知识库信息准确. (Could Have)
As a 管理员, I want 删除文档, so that 清理无效的知识库数据. (Could Have)
As a 管理员, I want 批量管理文档管理, so that 高效处理大量知识库数据. (Could Have)
```
### Acceptance Criteria 生成
每个 Story 自动生成 6~10 条 AC,覆盖:
1. 正常流程
2. 数据展示
3. 空数据状态
4. 数据验证
5. 权限控制
6. 并发处理
7. 故事特定场景(创建重复/删除确认/搜索/导出等)
## Files
| File | Purpose |
|------|---------|
| `src/sf-02-requirement-engineering/domain-model.mjs` | 需求领域模型(15 个类型) |
| `src/sf-02-requirement-engineering/strategy-to-requirement.mjs` | 策略→需求转换引擎 |
| `src/sf-02-requirement-engineering/dependency-engine.mjs` | 依赖/优先级/MVP/追踪引擎 |
| `src/sf-02-requirement-engineering/index.mjs` | Factory 入口 + 注册 + 报告 |
| `test/sf-02-requirement-engineering.test.mjs` | 89 项测试 |
| `docs/factories/sf-02-requirement-engineering.md` | 本文档 |
## Integration Flow
### With SF-01
```
SF-01.analyze("AI Agent平台")
→ FactoryInput { factoryId: "SF-01" }
→ FactoryOutput { artifacts: [StrategyPackage, ...] }
→ FactoryInput { factoryId: "SF-02", upstreamArtifacts: [...] }
→ FactoryOutput { artifacts: [RequirementPackage, ...] }
```
### With PR-36 Factory Registry
```javascript
const registry = createFactoryRegistry();
registerSF01(registry);
registerSF02(registry);
const sf01Out = registry.execute("SF-01", input);
const sf02Out = registry.execute("SF-02", { upstreamArtifacts: sf01Out.artifacts });
// sf02Out.status === "passed"
// sf02Out.artifacts.length === 14
```
### With PR-35 Runtime
```javascript
const task = createTask({ id: "T-001", title: "Req Engineering" });
// Execute within runtime context...
```
## Examples
### AI 客服平台完整转换
输入:SF-01 分析的 "AI客服平台"
输出:
- **8 Epics**: 用户管理/知识库管理/Agent管理/对话管理/权限管理/运营分析/系统设置/集成对接
- **40+ Features**: 每个 Epic 3~7 个 Feature
- **120+ User Stories**: 标准 As a/I want/So that 格式
- **240+ Acceptance Criteria**: Given/When/Then 格式
- **7 Business Rules**: 验证/约束/流程/审批/状态机
- **10 NFRs**: 性能/安全/可靠性/扩展性/可观测性/国际化/兼容性
- **6 Integration Reqs**: AI模型/邮件/短信/对象存储/搜索引擎/第三方登录
- **5 Data Reqs**: 用户/角色权限/知识库/对话记录/操作日志
- **100+ Dependencies**: Epic/Feature/Story 三级依赖
- **400+ Traceability Links**: 全链追踪
## Next Step: SF-03
SF-03 Product Design Factory 将以 SF-02 的 Requirement Package 为输入,产出:
- 信息架构
- 交互流程
- 页面结构
- 原型设计
SF-02 产出的所有 Artifact 都是 SF-03 的 `upstreamArtifacts` 输入。
---
_Generated by SF-02 Requirement Engineering Factory | 2026-06-05_