MBSE实践之建模语言SysML
引言
系统工程是一种多学科和整体的方法,为复杂的工程问题开发解决方案。随着系统复杂性的不断增长,需要更加严格和形式化的系统工程实践。为了满足这种需求,以及计算机技术的进步,系统工程实践正在经历从基于文档的方法到基于模型的方法的根本性转变。在基于模型的方法中,重点从生成和控制关于系统的文档转移到生成和控制系统的一致模型。基于模型的系统工程(MBSE)可以帮助管理复杂性,同时提高设计质量和周期时间,增强不同开发团队之间的沟通,并促进知识获取和设计演进。
MBSE实践的三大构成为:建模语言+方法论+建模工具。其中,标准化和健壮的建模语言被认为是实现MBSE的关键因素。系统建模语言(OMG SysML™ System modeling language)就是这样一种通用建模语言,是UML在系统工程应用领域的延续和扩展,它支持系统的规范、设计、分析和验证,这些系统可能包括硬件和设备、软件、数据、人员、过程和设施。SysML是一种图形化建模语言,为建模系统需求、行为、结构和参数提供了语义基础,用于与其他工程分析模型集成。它是MBSE实践者在创建系统模型时“说”的语言,可以把他们的系统设计观点可视化,并与利益相关者沟通。
一、SymML与UML的区别与联系
SysML是统一建模语言(UML 2.0)的扩展,其扩展需要满足UML™对系统工程征询方案( UML for Systems Engineering Request For Proposal)的需求,由对象管理组织(OMG)和国际系统工程委员会(INCOSE)联合开发,并由OMG在2003年3月发布。SysML规范是根据工具供应商、最终用户、学术界和政府代表的不同团体的需求而开发的。对象管理组在2006年7月6日宣布采用OMG SysML™v1.0,并在2007年9月宣布了OMG SysML™v1.0的可用性。目前,最新的版本是2019年12月份发布的Sysml 1.6。
如下图所示,SysML与UML之间有交集,即SysML中的部分图与UML是一致的,例如用例图、序列图、状态机图。有一部分图是在UML基础上进行扩展而得,如活动图。另外,SysML还增加了一些特有的图,如需求图等。
图1 SysML与UML的关系
二、Sysml图种类划分
图2 SysML图种类划分
图3 SysML的9种图
如上两幅图所示,SysML总共包含9种图,可以划分为4大类。分别为:
结构类:内部模块图、包图、模块定义图
需求类:需求图
行为类:活动图、序列图、状态机图、用例图
参数类:参数图
三、SysML的通用图形化表示
每个SysML 图都代表一种模型元素,且每个图都需要有一个图框,由Header和Contents两部分组成,如下图所示。
图4 SysML Diagram
(1) Header包括:
1) DiagramKind:表示图类型的缩写。9类SysML图的缩写分别为:
u 活动图:act
u 模块定义图:bdd
u 内部模块图:ibd
u 包图:pkg
u 参数图:par
u 需求图:req
u 序列图:sd
u 状态机图:stm
u 用例图:uc
2) Model element type:图框架所对应的模型元素的类型。不同的图类型具有对应不同的模型元素类型的图表框架。图类型与可表示的模型元素类型对应关系如下:
表1 Sysml图类型与可表示的模型元素类型
图类型 |
可表示的模型元素类型 |
活动图act |
activity |
模块定义图bdd |
block, constraint block, package, model, model library |
内部模块图ibd |
block |
包图pkg |
package, model, model library, profle, view |
参数图par |
activity, block, constraint block |
需求图req |
package, model, model library, requirement |
序列图sd |
interaction |
状态机图stm |
state machine |
用例图uc |
package, model, model library |
3) Model element name-与图框相对应的模型元素的名称
4) Diagram name:图的名称,常用来表示图的目的
5) Diagram usage:一个关键字,表示图表的特殊用法。
(2) Diagram description 图的描述
图描述是一个可选的注释,附加在图框的内部或外部。它的目的是使建模者能够捕获关于图的附加信息,比如版本、完成状态、描述、引用、用户自定义域等;
(3) Diagram Content 图的内容
图内容区域(有时称为画布)包含以图形方式表示模型元素的元素。内容区域包括表示感兴趣的模型片段的关系图元素(符号)。如上所述,图的类型限制了可以显示哪种模型元素以及它们如何显示。在图的约束中,建模人员决定要显示哪些模型元素以及要隐藏哪些模型元素来实现图的意图。
四、SysML 9种图的含义及示例:
1. 模块定义图bdd
用于表示模块和值类型之类的元素(定义能够在可操作的系统中存在的事物类型)以及那些元素之间的关系。bdd的通常用法包括显示系统层级关系树以及分类树。
图5 bdd示例图
2. 内部模块图ibd
用于指定单个模块的内部结构。更精确的说法是,IBD会显示模块内部组成部分之间的关系,以及它们之间的接口。
图6 ibd示例图
3. 包图pkg
用于显示模型以包相互包含的层级关系形式组织的方式。包图可能还会显示包所包含的模型元素,以及包之间的依赖关系和它们包含的模型元素。
图7 pkg示例图
4. 参数图par
用于表示一种或多种约束——特别是等式和不等式——如何与系统的属性绑定。参数图支持工程分析,包括性能、可靠性、电力、人力和成本。参数图还可以用于支持候选物理架构的优劣势研究。
图8 par示例图
5. 需求图req
用于表示基于文字的需求、需求之间的关系(包含关系、继承关系以及复制关系),以及满足、验证和改善它们的其他模型元素。
图9 req示例图
6. 活动图
用于指定一种行为,主要关注控制流程,以及输入通过一系列动作转换为输出的过程。活动图一般用作一种分析工具,以理解和表达系统所需要的行为。
图10 act示例图
7. 序列图sd
用于指定一种行为,主要关注模块的组成部分如何通过操作调用和异步信号交互。序列图通常用作详细设计工具。以精确地把一种行为指定为生命周期开发阶段的输入项。序列图也是指定测试案例的一种优秀机制。
图11 sd示例图
8. 状态机图stm
用于指定一种行为,主要关注模块的一系列状态,以及响应事件时,状态之间的可能转换。状态机图和序列图一样,都可以精确说明一个模块的行为,可以作为生命周期开发阶段的输入项。
图12 stm示例图
9. 用例图uc
用于表达系统执行的用例,以及引起用例的行为者和其中的参与者。用例图是系统在行为者的协作下所执行服务的黑盒视图。
小结
本文主要介绍了系统工程建模语言SysML,包括SysML的由来,与UML的区别联系,SysML的四大支柱:需求、行为、结构和参数;以及SysML 9种图的含义和表示方法。希望通过本文能让您对SysML有个初步的认识,协助您更好地进行系统工程实践。
图12 uc示例图
参考资料:
1、http://www.omg.org
2、《OMG Systems Modeling Language》Version 1.6 formal/2019-11-01
3、《A Practical Guide to SysML-The Systems Modeling Language》,Third edition, Sanford Friedenthal ,Alan Moore ,Rick Steiner.
文章来源:blingbling从业感悟