需求图
需求图提供了需求及其相互之间和其他文档化元素之间的连接的可视化。建模规范遵循 SysML v1.6 定义的规范。
渲染要求很简单。
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
element test_entity {
type: simulation
}
test_entity - satisfies -> test_req
句法
需求图包含三种类型的组件:需求、元素和关系。
定义每个的语法定义如下。尖括号中表示的单词,例如<word>
,是枚举关键字,在表格中详细说明了选项。user_defined_...
在需要用户输入的任何地方使用。
关于用户文本的重要说明:所有输入都可以用引号括起来或不括起来。例如,两者Id: "here is an example"
都Id: here is an example
有效。但是,用户必须小心未引用的输入。如果检测到另一个关键字,解析器将失败。
要求
需求定义包含一个需求
type, name, id, text, risk, and verificationmethod
. 语法如下:<type> user_defined_name {
id: user_defined_id
text: user_defined text
risk: <risk>
verifymethod: <method>
}
Type, risk, and method
是 SysML 中定义的枚举。关键词 | 选项 |
---|---|
Type | 需求、功能需求、接口需求、性能需求、物理需求、设计约束 |
Risk | 低中高 |
VerificationMethod | 分析、检验、测试、演示 |
元素
元素定义包含元素名称、类型和文档引用。这三个都是用户定义的。元素功能旨在轻量级,但允许将需求连接到其他文档的部分。
element user_defined_name {
type: user_defined_type
docref: user_defined_ref
}
关系
关系由源节点、目标节点和关系类型组成。
每个都遵循的定义格式
{name of source} - <type> -> {name of destination}
或者
{name of destination} <- <type> - {name of source}
“源名称”和“目标名称”应该是在别处定义的需求或元素节点的名称。
关系类型可以是包含、复制、派生、满足、验证、细化或跟踪之一。
每个关系都在图中标出。
更大的例子
此示例使用图表的所有功能。
requirementDiagram
requirement test_req {
id: 1
text: the test text.
risk: high
verifymethod: test
}
functionalRequirement test_req2 {
id: 1.1
text: the second test text.
risk: low
verifymethod: inspection
}
performanceRequirement test_req3 {
id: 1.2
text: the third test text.
risk: medium
verifymethod: demonstration
}
interfaceRequirement test_req4 {
id: 1.2.1
text: the fourth test text.
risk: medium
verifymethod: analysis
}
physicalRequirement test_req5 {
id: 1.2.2
text: the fifth test text.
risk: medium
verifymethod: analysis
}
designConstraint test_req6 {
id: 1.2.3
text: the sixth test text.
risk: medium
verifymethod: analysis
}
element test_entity {
type: simulation
}
element test_entity2 {
type: word doc
docRef: reqs/test_entity
}
element test_entity3 {
type: "test suite"
docRef: github.com/all_the_tests
}
test_entity - satisfies -> test_req2
test_req - traces -> test_req2
test_req - contains -> test_req3
test_req3 - contains -> test_req4
test_req4 - derives -> test_req5
test_req5 - refines -> test_req6
test_entity3 - verifies -> test_req5
test_req <- copies - test_entity2