需求图:元素与关系

需求图:元素与关系

puml.online

简介 / Introduction

需求图(Requirement Diagram)用于描述系统需求与设计元素之间的追溯关系。它将业务需求映射到具体的接口、类和模块,帮助团队验证每条需求是否被正确实现。本文对比 PlantUML 与 Mermaid 两种引擎绘制需求图的语法与特性。

PlantUML 版

PlantUML 通过 requirement、interface、requirementdiagram 等关键字绘制需求图,支持嵌套属性、分组与元素关联。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@startuml
requirement Req_Login "用户必须能够登录" {
id = 1
status = approved
verification = test
}

interface IAuthService {
+authenticate(user, pass): boolean
+logout()
}

element LoginForm
element AuthService

LoginForm -> IAuthService : uses
IAuthService -right-> Req_Login : satisfies
AuthService ..> IAuthService : implements

package "业务层" {
requirement Req_Data "数据必须持久化" {
id = 2
}
element DataStore
DataStore --> Req_Data
}

@enduml

Mermaid 版

Mermaid v11 内置 requirementDiagram,语法结构为 requirement + element + relationships,简洁直观。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
requirementDiagram
requirement Req_Login {
id: 1
text: "用户必须能够登录"
status: approved
verification: test
}

requirement Req_Data {
id: 2
text: "数据必须持久化"
status: approved
}

interface IAuthService {
type: interface
}

element LoginForm {
type: user interface
}

element AuthService {
type: component
}

element DataStore {
type: database
}

LoginForm --> IAuthService
IAuthService --> Req_Login
AuthService ..> IAuthService
DataStore --> Req_Data

对比 / Side-by-side

特性 PlantUML Mermaid
关键字 requirement, interface, element, package requirement, interface, element
属性块写法 { id = 1; status = approved } { id: 1; text: "..."; status: approved }
包/分组 package "Name" { ... } 不支持(需手动组织 element)
关系箭头 ->, --->, ..> -->
嵌套关系 支持多层嵌套 扁平列表,通过 relationships 连接
图表方向 默认左→右,支持 left to right direction 默认上→下

小结 / Wrap-up

PlantUML 需求图灵活性更高,适合复杂系统的多层嵌套与包组织;Mermaid 需求图更轻量,声明式语法上手快。两者均可完成需求→元素的追溯映射,实际选用可根据团队现有工具链决定。

  • 标题: 需求图:元素与关系
  • 作者: puml.online
  • 创建于 : 2026-09-23 08:30:00
  • 更新于 : 2026-09-29 01:06:38
  • 链接: https://puml.online/blog/requirement-diagram-elements/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。