对复杂系统的建模是架构师的基础能力之一。从这篇文章开始,笔者介绍系统建模语言SysML(OMG System Modeling Language)。
SysML是一种通用的图形建模语言,用于定义、分析、设计和验证复杂系统。
这里需要注意一点,SysML仅仅是一种建模语言,不是建模方法。就像EEA建模软件PREEvision一样,它也只是对汽车电气系统建模的一种软件和工具,它不能告诉你实际操作层面应该如何建模。
SysML是基于UML的扩展,共定义了9种模型图,如图1所示。
图1SysML定义的模型图
我们首先来了解结构图,因为系统的结构是了解任何一个系统的基础。SysML结构图主要是对系统的组成结构以及组成元素间的关系进行描述,这也是架构的定义(组成+交互,见之前的文章“架构是个什么鬼”)所关心的最主要问题。
结构图包括:模块定义图、内部模块图、参数图(一种特殊的内部模块图)和包图。
模块定义图中可能会出现包、模型、模型库、视图、模块和约束模块。其中最重要和常见的是模块和约束模块。这篇文章笔者先重点介绍“模块”这个基本元素。
模块是SysML中的基本元素,它可以用于表示系统中的任意实体,我们可以使用模块对系统中的实体进行建模。
既然SysML是一种图形建模语言,那首先要解决的问题是如果通过一个图形来表达模块这个基本元素,如图2所示。
图2 模块的图形表达方式
模块通过带有<
模块的属性包括结构属性和行为属性两个大的类别。既然模块定义图属于结构图的一种,那么模块属性的作用就要表达出与模块结构相关的属性,本质上也就是表达模块之间的关系。
模块的名称和属性其实很好理解,系统的任何实体必然需要有个名称,而不管是结构属性还是行为属性,都是表达模块之间的一种关系。
在之前的文章“架构与关系”中,笔者提出事物之间的5种主要关系:概念关系、空间关系、时间关系、行为关系和因果关系。模块的名称可类比为概念关系,名称就是概念的命名,结构属性必然也包括空间、时间和因果关系,而行为属性可以类比为行为关系。
以上只是笔者做的一种类比,因为SysML建模语言毕竟只是对现实世界中真实系统的一种抽象,模型不是系统本身,不可能表达出系统的所有方面。因此SysML中模块的属性也不可能等同于现实世界中的实体属性,模块属性只是根据建模的需要,对实体某一方面做的一种抽象表达。
结构属性包括值属性(图2中的Values就代表值属性)、约束属性、引用属性、组成属性、端口共 5 种类型。行为属性包括操作(图2中的operations就代表操作)和 接收(receptions)。
未完待续。。。
审核编辑:汤梓红
-
UML
+关注
关注
0文章
122浏览量
30854 -
建模软件
+关注
关注
0文章
6浏览量
7071 -
结构图
+关注
关注
1文章
38浏览量
23031 -
汽车电气系统
+关注
关注
0文章
3浏览量
6324
原文标题:SysML(一)
文章出处:【微信号:汽车电子电气架构,微信公众号:汽车电子电气架构】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论