SysML 需求图(Requirements Diagram)
SysML提供了需求图(Requirements Diagram)用于对系统需求,以及需求与需求及其他元素的追溯关系进行建模,而在UML中则没有需求图。
1、SysML中的需求概念
SysML规范对需求的定义如下:
需求规定必须(或应该)满足的能力或条件。需求可以规定系统必须执行的功能或系统必须达到的性能条件。
用例可以有效地捕获功能需求,但不适合表达非功能需求。将基于文本的需求合并到SysML中可有效适应各种需求。
- 1)标准SysML需求
- 标准SysML需求包括用于指定其唯一性的标识符和需求文本两个属性,如图1所示。其他属性(例如,验证状态,优先级等)也可以由用户指定。
- 2)需求子类
- 建模人员可以通过定义需求原型的附加子类来定制需求分类。例如,建模人员可能希望定义需求类别,以表示操作、功能、接口、性能、物理、存储、激活/停用、设计约束和其他专门需求,例如可靠性和可维护性,或者代表高层涉众需求。原型使建模者能够添加约束,限制为满足需求而分配的模型元素的类型。例如,功能需求可能受到约束,因此只能由SysML行为(如活动、状态机或交互)来满足。
- 3)需求包
- 需求可以组织成一个包结构。典型的结构可能包括满足所有需求的顶层程序包。此顶级软件包中的每个嵌套软件包都可能包含来自不同规范(系统,子系统,组件等)的需求。每个规范包都包含该规范的基于文本的需求。此包结构对应于典型的规范树,这是描述项目要求范围的有用工件。
2、需求关系
在系统模型中捕获需求非常有用。但是,更大的价值在于在需求和其他模型元素之间创建的关系。
SysML规定了七个需求关系,使建模者能够将需求彼此关联以及与其他模型元素关联。这些关系包括定义需求层次结构、派生需求、满足需求、验证需求和细化需求的关系。然而,这些关系的语义并不是在形式上定义的,而是可以解释的。因此,有必要定义一些关于如何使用这些关系的启发式、指南和实践,以便有一个一致的模型。
- 1)复合关系
- 复合需求可以包含需求层次结构中的子需求。复合需求可以声明系统应执行A和B,可以将其分解为系统应执行A和系统应进行B的子需求(如图2所示)。
- 将复合需求划分为更简单的需求有助于建立完全的可追溯性,并显示单个需求如何成为进一步推导的基础,以及如何满足和验证它们。
- 2)派生关系
- 派生的需求通常对应于系统层次结构下一级的需求。一个简单的例子是车辆加速需求,该需求被分析以导出发动机动力等方面的需求,如图3所示。
- 它还被用于表示在同一层级但不同的抽象级别之间的需求之间的关系。例如,由系统工程团队最初指定的硬件或软件需求可以由硬件或软件团队分析,以获得更详细的要求,该更详细的要求反映额外的实施考虑或约束。硬件或软件团队的更详细的要求可能与系统团队指定的原始要求相关,通过导出关系。
- 3)细化关系
- 细化关系可用于描述如何使用模型元素或元素集进一步细化需求。例如,可以使用用例或活动图来细化基于文本的功能需求,如图4所示。或者,可以使用它来显示基于文本的需求如何细化模型元素。在这种情况下,可以使用一些阐述的文本来细化不太精细的模型元素。
- 细化应阐明需求的含义或上下文。与派生关系的区别在于,需求与任何其他模型元素之间可以存在细化关系,而派生关系只能存在于需求之间。另外,派生关系旨在基于分析施加其他约束。
- 4)满足关系
- 满足关系描述了设计或实现模型如何满足一个或多个需求。然后,系统建模者可以指定旨在满足要求的系统设计元素,如图5所示。
- 但是,重要的一点是断言不构成证明。满足关系只是将需求分配给结构的一种机制。证明确实满足了要求的证据来自测试用例
- 5)验证关系
- 验证关系定义了测试用例或其他模型元素如何验证需求,如图6所示。在SysML中,测试用例或其他元素可以用作表示任何标准检验方法的通用机制,分析,演示或测试。
- 6)复制关系
- 真正需要跨产品系列和项目重用需求。典型的方案是适用于产品和/或产品系列中重复使用的项目和要求的法定法规或合同要求。SysML引入了从属需求的概念,如图7所示。
- 复制的需求的text属性是源需求的text属性的只读副本,但是复制的需求具有不同的ID,并且可以包含在不同的命名空间中。
- 7)追溯关系
- 追溯关系提供了需求和任何其他模型元素之间的通用关系,如图8所示。追溯的语义不包含任何实际约束,因此非常弱。但是,追溯关系对于将需求与源文档相关联或在规范树中的规范之间建立关系可能很有用。
3、需求图和表格
SysML提供了建模构造来表示基于文本的需求,并将其与其他建模元素相关联。需求图可以图形,表格或树形结构格式描述需求。需求也可以出现在其他图表上,以显示其与其他建模元素的关系。
当查看大量需求时,需求图有一个明显的缺点。与在图表中查看需求相比,查看文本需求的传统方法是一种更为紧凑的表示形式。
SysML包含在表中显示模型查询结果以及将表用作数据输入机制的概念,但是生成表的细节留给工具实现者。该表格格式可以用来表示需求,它们的属性和关系,如图9所示,并且可以包括:
- 1)需求的属性列
- 2)依赖关系(派生、验证、优化、追溯)列
- 3)满足要求的模型元素的列
实际上,高效的建模工具可以生成需求跟踪和验证矩阵,并在需求发生变化时执行自动影响分析,能够极大的节省时间。
4、总结
需求模型可以提供有助于确定需求是否满足其期望属性的信息(例如,明确,可理解,正确,简洁,可追溯,与设计无关,可验证,唯一,完整,一致等)。此外,需求图是SysML的主要介质,用于传达需求之间的可追溯性以及系统模型中从需求到结构和行为的可追溯性。当您向模型中添加新元素时,您将创建从这些元素到对应的需求之间的关系。以这种方式建立需求可追溯性是贯穿设计和开发的一项持续活动。您可能需要创建一个需求图,以在此工作中的任何时候显示这些关系。
需求管理工具(如DOORS,Polarion Requirements等)被广泛用于管理需求及其之间的关系。需求通常存储在数据库中。这些工具旨在有效地管理需求信息,即处理属性,过滤数据以及建立和分析需求可追溯性。
SysML包括需求建模功能,可以在需求管理工具中维护的文本需求与系统模型之间建立桥梁。工具自动化,需求管理过程和配置管理过程的组合用于在需求管理工具和模型之间同步需求。此功能旨在通过在基于文本的需求和代表系统分析,设计,实现和测试用例的模型元素之间进行严格的可追溯性,来显着改善整个系统生命周期中的需求管理。