什么是系统建模语言SysML?

电子说

1.3w人已加入

描述

对复杂系统的建模是架构师的基础能力之一。从这篇文章开始,笔者介绍系统建模语言SysML(OMG System Modeling Language)。

SysML是一种通用的图形建模语言,用于定义、分析、设计和验证复杂系统。

这里需要注意一点,SysML仅仅是一种建模语言,不是建模方法。就像EEA建模软件PREEvision一样,它也只是对汽车电气系统建模的一种软件和工具,它不能告诉你实际操作层面应该如何建模。

SysML是基于UML的扩展,共定义了9种模型图,如图1所示。

建模软件

图1 SysML定义的模型图

我们首先来了解结构图,因为系统的结构是了解任何一个系统的基础。SysML结构图主要是对系统的组成结构以及组成元素间的关系进行描述,这也是架构的定义(组成+交互,见之前的文章“架构是个什么鬼”)所关心的最主要问题。

结构图包括:模块定义图、内部模块图、参数图(一种特殊的内部模块图)和包图。

模块定义图中可能会出现包、模型、模型库、视图、模块和约束模块。其中最重要和常见的是模块和约束模块。这篇文章笔者先重点介绍“模块”这个基本元素。

模块是SysML中的基本元素,它可以用于表示系统中的任意实体,我们可以使用模块对系统中的实体进行建模。

既然SysML是一种图形建模语言,那首先要解决的问题是如果通过一个图形来表达模块这个基本元素,如图2所示。

建模软件

图2 模块的图形表达方式

模块通过带有<>标识的矩形框表示,其后带有模块的Name(用户自定义),还可以通过可选的其他分隔框,用来标识模块的其他部分。如图2所示,该模块包含"值属性" 和 "操作属性"分隔框。

模块的属性包括结构属性和行为属性两个大的类别。既然模块定义图属于结构图的一种,那么模块属性的作用就要表达出与模块结构相关的属性,本质上也就是表达模块之间的关系。

模块的名称和属性其实很好理解,系统的任何实体必然需要有个名称,而不管是结构属性还是行为属性,都是表达模块之间的一种关系。

在之前的文章“架构与关系”中,笔者提出事物之间的5种主要关系:概念关系、空间关系、时间关系、行为关系和因果关系。模块的名称可类比为概念关系,名称就是概念的命名,结构属性必然也包括空间、时间和因果关系,而行为属性可以类比为行为关系。

以上只是笔者做的一种类比,因为SysML建模语言毕竟只是对现实世界中真实系统的一种抽象,模型不是系统本身,不可能表达出系统的所有方面。因此SysML中模块的属性也不可能等同于现实世界中的实体属性,模块属性只是根据建模的需要,对实体某一方面做的一种抽象表达。

结构属性包括值属性(图2中的Values就代表值属性)、约束属性、引用属性、组成属性、端口共 5 种类型。行为属性包括操作(图2中的operations就代表操作 )和 接收(receptions)。

未完待续。。。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分