一、SysML介绍
1 SysML的由来
长期以来系统工程师使用的建模语言、工具和技术种类很多,如行为图、IDEF0、N2图等,这些建模方法使用的符号和语义不同,彼此之间不能互操作和重用。系统工程正是由于缺乏一种强壮的标准的建模语言,从而限制了系统工程师和其他学科之间关于系统需求和设计的有效通信,影响了系统工程过程的质量和效率。
为了支持基于模型的系统工程(Model Based Systems Engineering,MBSE),国际系统工程学会(INCOSE)以及对象管理组织(OMG)在对统一模型语言UML进行重用和扩展的基础上,推出一种标准的系统建模语言SysML(Systems Modeling Language),消除了不同模型语言在表达法及术语上的不同,规范了符号和语义。与统一建模语言(unified modeling language,UML)主导了软件工程设计一样,SysML也将是统一系统工程的建模语言。
SysML在一定程度上重用了UML部分元模型,同时针对系统工程对UML进行扩展,增加了诸如需求、块、限制之类描述系统的元素和相关图形支持,最终确保它支持诸如DoDAF/C4ISR在内的体系结构框架标准。如下图所示。UML中被SysML重用的部分称为UML4SysML,SysML Profile是扩展的部分。
2 SysML基本概念
SysML是一种支持复杂系统分析、规范、设计、验证和确认的通用图形化建模语言。这些系统可能包括硬件设备、软件数据、人员、规程、设施,以及其他人造和自然系统元素。SysML能够帮助实现系统的规范定义和架构设计,并定义组件的规范。这些组件可以使用其他领域语言进行设计,比如UML进行软件设计,VHDL进行电气设计,3维几何建模进行机械设计。SysML有助于MBSE方法论的应用,创造一个内聚的、一致的系统模型。
SysML能够表示系统、组件和其他对象的如下方面:
- 1)结构组成,关联关系,和分类
- 2)基于流、基于消息和基于状态的行为
- 3)物理和性能属性的约束
- 4)行为、结构和约束之间的分配关系
- 5)需求,以及需求到其他需求、设计元素和测试用例之间的关系
3 SysML图概览
SysML为支持从结构、行为模型、需求和参数四个方面来构建系统模型:
- 1)结构模型强调系统的层次以及对象之间的相互连接关系;
- 2)行为模型强调系统中对象的行为,包括它们的活动、交互和状态历史;
- 3)需求模型强调需求之间的追溯关系以及设计对需求的满足关系;
- 4)参数模型强调系统或部件的属性之间的约束关系。
SysML提供了9种图来支持用户进行系统建模。
- 1)包图:
- 包图(Package Diagram)是用来组织模型的图形,它可以按照层次关系、图表类型和视点将模型进行分类。
- 2)需求图
- 需求是指系统必须满足的能力或条件,一个需求能够分解成多个子需求。需求图(Requirements Diagram)能够描述需求和需求之间以及需求和其他建模元素之间的关系。需求的描述可以有图形、表格和树形结构等各种形式。
- 3)活动图
- 活动图(Activity Diagram)用于描述工作流、业务流程,或者是将执行流分解为一系列活动和子活动的算法。活动图可以是简单活动的序列,或带有条件分支和并发的复杂系列的并行活动。泳道可以添加到活动图以显示负责执行每个活动的实体。活动图强调活动的输入输出、顺序和条件。
- 4)序列图
- 序列图(Sequence Diagram)用于描述对象间的消息交互序列。
- 5)状态机图
- 状态机图(State Machine Diagram)通过状态以及状态之间的转移对离散行为建模,它把行为表示为对象的状态历史。在状态的转移、进入和退出过程中会调用活动,并指定相关的事件和守卫条件。
- 6)用例图
- 用例图(Use Case Diagram)描述了外部参与者对系统的使用,这是通过系统向参与者提供一系列服务来实现的。用例图包括用例、参与者以及它们之间的通信,参与者可能是用户、外部系统或其他环境实体,它们和系统直接或间接交互。
- 7)块定义图
- 块定义图(Block Definition Diagram)显示系统和系统的基本结构元素(模块,Block),以及它们之间的关系/依赖性。但是,它一般用来描述复杂系统的层次结构,而不显示模块内部的连接关系。
- 8)内部块图
- 内部块图(Internal Block Diagram)显示了块定义图所定义的系统结构的实现。它包含了一组套件的部件(即模块的实例),这些部件是由端口和接口彼此连接在一起的。
- 9)参数图
- 参数图(Parametric Diagram)定义了一组系统属性以及属性之间的参数关系。参数关系用来表示系统的结构模型中属性之间的依赖关系,说明了一个属性值的变化怎样影响其他的属性值,参数关系是没有方向的,可以是基本的数学操作符,也可以是和物理系统的性质有关的数学表达式如F=m*a等。参数模型是分析模型,把行为模型和结构模型与工程分析模型如性能模型和可靠性模型等结合在一起,能用来支持权衡分析,评价各种备选的解决方案。