需求图
需求图提供了对需求及其相互连接以及其他文档元素的可视化。建模规格遵循 SysML v1.6
所定义的规范。
渲染需求很简单。
代码:
```mermaid
requirementDiagram
requirement “测试需求” {
id: 1
text: “测试文本”
risk: High
verifymethod: test
}
element “测试实体” {
type: “模拟”
}
“测试实体” - satisfies -> “测试需求”
```
语法
一个需求图包含三种组件:需求、元素和关系。
定义每个组件的语法如下所述。用尖括号标记的单词,例如
,是列举出具有在表中详细说明的选项的关键字。user_defined_… 用于任何需要用户输入的地方。
关于用户文本的重要说明:所有输入都可以用引号括起来,也可以不用。例如,Id: “这是一个示例” 和 Id: 这是一个示例 都是有效的。但是,用户必须小心输入没有加引号的情况。如果解析器检测到另一个关键字,它将会失败。
需求
一个需求定义包含一个type
(需求类型
)、用户定义名称
、id
(用户定义ID
)、text
(用户定义文本
)、risk
(风险
)和verifymethod
(验证方法
)。语法如下:
<type> <用户定义名称> {
id: <用户定义ID>
text: <用户定义文本>
risk: <risk>
verifymethod: <method>
}
type
(需求类型
)、risk
(风险
)和verifymethod
(方法
)是 SysML
中定义的枚举:
关键字 | 选项 |
---|---|
type(需求类型) | requirement(需求), functionalRequirement(功能需求), interfaceRequirement(接口需求), performanceRequirement(性能需求), physicalRequirement(物理需求), designConstraint(设计约束) |
risk(风险等级) | Low(低风险), Medium(中风险), High(高风险) |
verifymethod(验证方法) | Analysis(分析), Inspection(检验), Test(测试), Demonstration(演示) |
元素
一个元素定义包含用户定义元素名称
、type
(用户定义类型
)和docref
(用户定义文档参考
), 这三个都是用户定义的。该元素特性旨在轻量化,但允许将需求连接到其他文档的部分。
element <用户定义元素名称> {
type: <用户定义类型>
docref: <用户定义文档参考>
}
关系
关系由源名称
、目标名称
和关系类型
组成。
每个都遵循以下定义格式:
<源名称> - <关系类型> -> <目标名称>
或
<目标名称> <- <关系类型> - <源名称>
源名称
和目标名称
必须是前面定义的需求
或元素
节点的名称。
关系类型可以是contains
、copies
、derives
、satisfies
、verifies
、refines
或traces
中的一种:
关键字 | 选项 |
---|---|
关系类型 | contains(包含), copies(拷贝), derives(衍生), satisfies(满足), verifies(验证), refines(细化), traces(追踪). |
每个关系在图表中都标有标签。
示例
此示例使用图表的所有特性。
代码
```mermaid
requirementDiagram
requirement “需求” {
id: 1
text: “需求文本”
risk: high
verifymethod: test
}
functionalRequirement “功能需求” {
id: 1.1
text: “功能需求文本”
risk: low
verifymethod: inspection
}
performanceRequirement “性能需求” {
id: 1.2
text: “性能需求文本”
risk: medium
verifymethod: demonstration
}
interfaceRequirement “接口需求” {
id: 1.2.1
text: “接口需求文本”
risk: medium
verifymethod: analysis
}
physicalRequirement “物理需求” {
id: 1.2.2
text: “物理需求文本”
risk: medium
verifymethod: analysis
}
designConstraint “设计约束” {
id: 1.2.3
text: “设计约束文本”
risk: medium
verifymethod: analysis
}
element “测试实体1” {
type: “模拟”
}
element “测试实体2” {
type: “word文档”
docRef: chenlu5201314/article/details/131262648
}
element “测试实体3” {
type: “测试用例”
docRef: chenlu5201314/category_12347841
}
“测试实体1” - satisfies -> “功能需求”
“需求” - traces -> “功能需求”
“需求” - contains -> “性能需求”
“性能需求” - contains -> “接口需求”
“接口需求” - derives -> “物理需求”
“物理需求” - refines -> “设计约束”
“测试实体3” - verifies -> “物理需求”
“需求” <- copies - “测试实体2”
```