265 lines
9.8 KiB
Markdown
265 lines
9.8 KiB
Markdown
# 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_
|