SysML v1 标准7种需求关系(图例+定义+方向+适用场景)
SysML 需求图规定7种标准需求关联关系:Containment(包含)、Trace(跟踪)、DeriveReqt(衍生需求)、Refine(细化/精炼)、Satisfy(满足)、Verify(验证)、Copy(复制)。
除「包含」是组合聚合,其余6种均为带构造型<
一、Containment 包含关系(层级容器)
图例
- 图形:实线,父需求端画十字小方块(⊕),子需求无箭头;
- 简写标识:父需求内部嵌套子需求(嵌套表示法);
- 含义:父需求作为命名空间,只能包含子需求,构成需求分解层级(系统→子系统→部件需求)。
方向
父需求 ←实线包含→ 子需求(子属于父)
示例
顶层系统需求「整车安全」包含子需求「制动安全」「电池防护」。
特点
强层级,删除父则子需求一同移除;不属于依赖,是模型内置聚合。
二、<> 跟踪(通用弱追溯)
图例
虚线 + 空心开口箭头,线上标注构造型 <<trace>>
定义
最通用、最弱的追溯关系:仅表示两者存在关联,无明确业务语义,仅用于跨文档/跨模型兜底关联。
方向
源元素(尾端) ----<
适用场景
- 外部客户文档 ↔ 内部需求
- 功能需求 ↔ 非功能需求(无明确衍生/细化关系时)
特点
尽量优先用 derive/refine/satisfy/verify,仅无专用关系时使用 trace。
三、<> 衍生需求(派生)
图例
虚线空心箭头,标注 <<deriveReqt>>
定义
仅允许需求 ↔ 需求:从上层/源需求通过分析、分解、推导产生下级派生需求;派生需求是原需求的逻辑推论、分解项。
方向
派生需求 ----<
示例
源需求「车辆最高时速≥120km/h」→ 衍生出「电机峰值功率≥150kW」需求。
与 Refine 区分
derive 仅限需求之间,侧重逻辑推导分解;refine 可跨需求/设计/用例,侧重细节补充说明。
四、<> 细化/精炼
图例
虚线空心箭头,标注 <<refine>>
定义
任意模型元素对需求做补充、细化、解释;可用用例、活动图、约束、子需求把抽象需求具体化。
方向
细化元素 ----<
示例
用例「紧急刹车流程」refine 高层需求「车辆具备紧急制动能力」。
特点
适用范围最广:需求↔需求、需求↔用例、需求↔约束、需求↔活动。
五、<> 满足(设计实现需求)
图例
虚线空心箭头,标注 <<satisfy>>
定义
设计/实现模型元素(Block、部件、功能)实现、满足某条需求;回答:哪个系统组件落地这条需求。
方向
设计部件 ----<
示例
制动控制器 Block <
链路位置
追溯链路:需求 → satisfy → 架构设计块。
六、<> 验证(测试检验需求)
图例
虚线空心箭头,标注 <<verify>>
定义
测试用例、仿真、检查项用于验证一条需求是否达标;回答:用什么手段检验该需求。
方向
测试用例/验证活动 ----<
完整追溯链路
客户需求 → derive → 系统需求 → satisfy → 硬件/软件模块 ← verify ← 测试用例
七、<> 复制需求
图例
虚线空心箭头,标注 <<copy>>
定义
仅需求之间:副本需求完全复用主需求文本与约束,主需求变更副本同步更新;多用于多子系统复用同一规范。
方向
副本需求 ----<
示例
多个车型的「低压供电保护」需求统一复制自平台标准供电需求。
特点
工程使用频率最低;区分于 derive:copy 无推导逻辑,只是原文复用。
7种关系对比速查表
| 关系名称 | 构造型标识 | 图形样式 | 允许连接对象 | 核心语义 |
|---|---|---|---|---|
| 包含 Containment | 无(内置聚合) | 实线+父端十字方块 | 需求→子需求 | 层级分解、容器归属 |
| 跟踪 Trace | <<trace>> | 虚线空心箭头 | 任意模型元素 | 弱通用关联,兜底追溯 |
| 衍生 DeriveReqt | <<deriveReqt>> | 虚线空心箭头 | 需求 ↔ 需求 | 由源需求逻辑推导派生 |
| 细化 Refine | <<refine>> | 虚线空心箭头 | 任意模型↔需求 | 补充细节、解释抽象需求 |
| 满足 Satisfy | <<satisfy>> | 虚线空心箭头 | 设计块→需求 | 组件实现、落地需求 |
| 验证 Verify | <<verify>> | 虚线空心箭头 | 测试用例→需求 | 测试手段校验需求 |
| 复制 Copy | <<copy>> | 虚线空心箭头 | 需求 ↔ 需求 | 副本复用原版需求规范 |
完整标准追溯链路(工程常用)
客户原始需求
<<deriveReqt>> → 系统级需求
<<refine>> → 子系统需求
<<satisfy>> → 软硬件Block组件
<<verify>> ← 测试用例/仿真工况
分两段:
- 纯需求层级:包含、deriveReqt、copy
- 跨模型追溯:trace、refine、satisfy、verify
二、7种关系图例&语义对照(图内一一对应)
| 连线代码 | 关系 | 图形特征 | 流向含义 |
|---|---|---|---|
| 大括号嵌套 | Containment 包含 | 实线层级容器,无箭头连线 | 父需求包含子需求,层级分解 |
-..-> : <<deriveReqt>> | 衍生 | 虚线空心箭头 | 尾部需求 派生自 箭头端源需求 |
-..-> : <<copy>> | 复制 | 虚线空心箭头 | 副本需求 复制于 原版标准需求 |
-..-> : <<trace>> | 跟踪 | 虚线空心箭头 | 外部文档弱关联需求 |
-..-> : <<refine>> | 细化 | 虚线空心箭头 | 用例/活动图 细化解释 抽象需求 |
-..-> : <<satisfy>> | 满足 | 虚线空心箭头 | 硬件/软件Block 实现 需求 |
-..-> : <<verify>> | 验证 | 虚线空心箭头 | 测试用例 验证 需求指标 |
三、标准完整追溯链路可视化(文字链路)
外部文档 Doc_Spec
<<trace>> → 客户顶层需求 Req_Customer
包含 → 系统需求 Req_Sys
<<deriveReqt>> ← 细分指标需求 Req_Sub
<<refine>> ← 业务用例 UC_Brake
<<satisfy>> ← 硬件组件 BCU
<<verify>> ← 测试用例 TC_Brake
四、使用说明
- 打开 Mermaid Live Editor / Draw.io 粘贴代码即可渲染完整需求图;
- Draw.io 若不原生支持
requirementDiagram,可改用graph LR版本(下方备用简化版)
注意:本文归作者所有,未经作者允许,不得转载