您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
MBSE建模学习之三:系统功能--行为(Behavior)的说明
 
作者:gsuner
 
  336  次浏览      6 次
2022-11-15
 
编辑推荐:
本文主要介绍了MBSE建模学习中的系统功能--行为(Behavior)的说明。望对您有所帮助。
本文来源于智睿思维,由火龙果软件Linda编辑,推荐。

MBSE的模型中,行为(Behavior)是一个重要的概念。前面我们主要介绍的模块、模块的属性是系统的结构模型,描述系统是如何构成的,各部分之间有什么关系。而行为是系统的功能模型,或称之为动态模型,它描述的是系统及其各组成部分是如何动态变化的。

“行为”(Behavior)的概念

“行为”(Behavior)是一种通用的动态模型元素。具体的行为元素主要包括“活动”(Activity)、“状态机”(StateMachine)和“交互”(Interaction),它们分别以“活动图”、“状态机图”和“序列图”的方式说明一个行为的过程。这三种图的具体说明我们将在后期的文章中进行说明,这里先讲讲通用行为的概念,以及行为和作为系统结构说明的元素“模块”、需求说明的元素“需求”之间的关系。

“行为”是系统状态随时间变化过程的描述。“行为”代表系统的一种功能,它有输入、输出,它的功能就是把输入转换为输出。在这个转换过程中,可能伴随系统本身状态参数的变化。在设计一个系统的时候,很重要的工作就是设计系统有什么功能、怎么实现这些功能。所以,进行系统行为模型的分析是建模工作的关键内容之一。在对一个新产品进行建模的时候,一般是遵从“需求分析”—“功能分析”(行为分析)--“架构设计”这个大的基本过程。“需求分析”阶段,通过建立系统“功能需求”元素(FunctionalRequirement,它是SysML标准中一个扩展的需求元素)确定功能目标。然后通过建立相应的行为元素及其图形细化这些功能需求(功能需求只能通过一个行为元素来满足)。最后在确定系统架构模型时,将这些行为分配给具体的“模块”(作为模块的“拥有行为”)。

“行为”元素可以放在模型中专用的一个包下面,也可以直接放在具体的某个“模块”下面。

在UML语言中,“行为”也是一个“类”(Class)。相应的在SysML语言中,具体的行为元素(活动、交互和状态机)都是类的扩展元素“模块”(Block)。UML\SysML标准遵循了面向对象的设计概念,这世界上一切都是“对象”(Object)。“对象”是类的实例,也就是说世界上的一切对象都是某个类的实例。“行为”也是一个类,行为的一次“执行”就是这个类的实例。当然,行为是一种特殊的类,它有类的基本特征:可以有属性和操作,而且它还多出来很多描述动态过程的东西(具体的行为元素描述动态过程的方法不同,具有的子元素不同)。可以说“行为”元素是在“类”的基础上增加了描述动态过程的内容。

在SysML标准中,三种具体的行为元素“活动”、“状态机”和“交互”都是“模块”,所以它们可以像模块一样进行分解,把一个复杂的行为分解成小的、局部的或共用行为元素。这个过程也可以对应为设计分析中的“功能分解”过程。上层的行为元素和下层的行为元素都有各自的图形,例如在一个上层“活动图”中,通过一个“调用行为动作”,调用下层的活动元素(或其它行为元素)。

“行为”(Behavior)的语法

前面我们说了,“行为”代表一种功能,有输入、输出,好似软件中的一个“函数”或“过程”(UML本来是用于软件建模的,在UML中一个行为确实对应编程语言中的一个函数或过程)。在定义一个行为元素的时候(例如,在模块的拥有行为分区或类目行为分区中增加一个行为),它遵从以下语法:

<name>‘(’[<parameter-list>]‘)’[‘:’ [<return-type-list>]][<behavior-constraint>]

用中文把上面的语法翻译一下如下:

<名称>‘(’ [<参数列表>] ‘)’ [‘:’ [<返回参数列表> ] ] [ <行为约束>]

上面语法中各部分说明如下:

<name>:行为的名称,不能为空。行为元素也是有命名空间的,如果行为直接定义在一个包下面,这个包就是它的命名空间;如果定义在一个模块下面,模块的名称就是它的命名空间。

< parameter-list>:输入参数的列表,每个参数用“,”分隔。每个参数的语法如下:

<parameter>::=[<direction>] <parameter-name> ’:’<type-expression> [’[’<multiplicity-range>’]’] [’=’<default>][’{’ <parm-property> [’,’ <parm-property>]* ’}’]

对应中文,每个参数用“方向 名称:类型[多重性]=默认值{参数属性}”这样的格式。

<direction>:’in’ | ’out’ | ’inout’ (默认’in’),表示参数是传入、传出或同时是,“无”的话默认是传入。

<parameter-name>:参数名称。

<type-expression>:参数类型。

<multiplicity-range>:集合参数的话参数的数量最少、最多多少个。

= <default>:参数默认值。

<parm-property>:参数属性,有以下选项:

<param-prop> ::= ‘ordered’ |‘unordered’ | ‘unique’ | ‘nonunique’ | ‘seq’ | ‘sequence’

‘ordered’ | ‘unordered’:表示返回的集合参数中是否是有顺序的;

‘unique’ | ‘nonunique’:表示集合中每个参数是否是唯一、不唯一的;

‘seq’| ‘sequence’:这两个选项意义相同,‘seq’ 是 ‘sequence’的缩写,表示参数是一个有序的“袋”(bag),既有序但不唯一。

此外,参数还有以下属性:

isStreaming:是否是“流”。如果是流,则在行为执行期间,这个参数可能一直有数据传入、传出,而不仅仅是在调用或完成时。

isException:是否异常值,只用于是“传出”的参数。如果“是”,则如果这个参数有值,则其它参数不会有值。

effect:影响,取值范围为“生成、读取、更新、删除”中的一种。

< return-type-list>:返回参数列表,每个返回参数用“,”分隔,每个返回参数的语法定义如下:

<return-type-mult-prop> :=<return-type> [‘[‘ <multiplicity-range> ‘]’] [‘{‘<param-prop-list> ‘}’] ]

对应中文,每个返回参数用“类型[多重性]参数属性”这样的格式。

<return-type>:返回类型。和输入参数不同,返回参数没有名称,直接“类型”开头;

<multiplicity-range>:多重性,表示这个参数是个集合的话,集合中每个参数最少、最多的个数;

<param-prop-list>:参数的属性,有以下选项:

<param-prop> ::= ‘ordered’ |‘unordered’ | ‘unique’ | ‘nonunique’ | ‘seq’ | ‘sequence’

‘ordered’ | ‘unordered’:表示返回的集合参数中是否是有顺序的;

‘unique’ | ‘nonunique’:表示集合中每个参数是否是唯一的;

‘seq’ | ‘sequence’:这两个选项意义相同,‘seq’ 是 ‘sequence’的缩写,表示参数是一个有序的“袋”(bag),既有序但不唯一。

<behavior-constraint>:行为的约束,一般是“{}”中一个约束表达式。

另外,行为的属性“isReentrant”(是否可重入)表示这个行为在执行的时候,是否可以再次被调用。

在表示行为的语法前面,可能会有表示具体行为类型的构造型,如果«活动»、«状态机»或«交互»。

在MBSES(智睿思维基于模型的系统工程软件)中,行为的参数可以通过一个弹出窗口进行定义。参数的属性通过属性框定义。但是也可以直接在模块的行为分区中按照简化的语法“名称( 参数名称: 参数类型) 返回参数类型”定义一个行为。

行为和模块的关系

在前面的文章中,我们说过“模块”有两种有关行为的分区,“拥有行为”分区和“类目行为”分区。“拥有行为”是当前这个模块中定义的行为,这些“拥有行为”是这个模块的功能,这个模块是这些行为执行时候的语境(也叫上下文,Context)。在一个行为执行的时候,除了可以使用和修改行为的输入、输出参数,还可以使用或改变作为上下文的这个模块的各种属性。例如,一个柴油发电机,具有一个“发电”的行为,在这个行为中,消耗作为输入参数的“柴油”,输出作为输出参数的“交流电”,同时会发热,改变发电机的温度。

“类目行为”是当前这个模块从开始工作到停止工作过程的一个行为过程描述。一般用一个状态机来描述。例如一个设备的“开机”、“运行”、“待机”、“停机”这些状态形成的一个设备工作过程状态机作为设备的“类目行为”。

当一个模块向其它模块提供功能的时候,必须通过这个模块的“行为特征”(BehavioralFeature)来提供,而不是直接提供行为的调用。模块的“行为特征”有“操作”(Operation)和“接收”(Reception)两种。但是在UML/SysML语言中,行为特征本身没有说明行为过程的能力,它的行为过程说明必须通过一个具体的行为元素的图形来说明。说明“操作”或“接收”具体行为过程的行为元素称为它们的“方法”(Method),同时,这个“操作”或“接收”称为对应行为元素的“定义”(specification)。一个行为元素也可以没有对应的行为特征,这时候它只能被当前这个模块的其它行为调用,不能被外部模块调用。行为和它对应的“操作”或“接收”必须参数完全对应。

下面用一个三综合试验箱功能分析的例子说明“行为”的定义和应用。

(以下图形使用“智睿思维基于模型的系统工程软件--MBSES”制作,此软件可以在www.zhiruisiwei.com网站或本论坛下载,支持国产软件,免费、免注册试用)

首先定义一个“三综合试验箱”的模块,这个试验箱有“震动”、“加热”、“加湿”、“冷却”的功能,当然主要的功能还是进行“三综合试验”这个功能。这些功能我们都定义为它的“拥有行为”。同时定义了一个“开始三综合试验”的操作,这个操作的“方法”对应“三综合试验”行为,它们都有一个参数“试验程序号”。当人工的方式开始试验,或者通过远程控制的方式调用这个操作开始试验,则试验箱根据“试验程序号”参数开始对应的试验程序。“三综合试验箱”模块定义如下:

“三综合试验”行为的流程用一个活动图来说明。首先根据“试验程序号”找到对应的试验程序。正式开始试验前,设备要先进行预试验步骤,把箱内温度、湿度控制到试验程序规定的起始条件。然后根据试验程序中的定义,进行“震动”、“加热”、“加湿”,“保持”一定时间,根据程序定义可能进行“冷却”。这个过程可能是个循环过程,用一个“循环节点”来表示。活动图如下所示:

   
336 次浏览       6
 
相关文章

用户手册:EA Helper
自然语言自动化生成图
使用iSpace进行多人协作建模
基于模型的软件复用(MBSR)
 
相关文档

AUTOSAR_TR_BSW UML模型建模指南
UML时间图建模(基于EA)
UML 模型框架(基于EA)
UML序列图编写规范
 
相关课程

UML+EA+面向对象分析设计
UML + 嵌入式系统分析设计
业务建模与业务分析
基于UML和EA进行系统分析设计

最新活动计划
PowerBI 数据分析与可视化 2-15[北京]
MBSE(基于模型的系统工程) 2-23[北京]
图数据库与知识图谱 2-25[北京]
人工智能+python+大数据 2-27[北京]
自动驾驶系统软件架构设计 3-9[北京]
基于SysML和EA系统分析设计 3-27[北京]
 
最新文章
在EA中内嵌文档- Artifact
EA中模型视图
EA中的实体关系图
使用EA进行风险建模
EA中的项目词汇表
EA的模型导出或导入csv文件
自定义表格(Custom Table)在EA中的使用
Gap Analysis Matrix(差距分析矩阵)
更多...   
MBSE工具
MBSE平台
建模工具 EA
模型库-Model Center
需求管理-ReqManager
自动建模-Modeler
多级仿真-Sys Simulator
代码工程-Code Engineer
文档生成器-DocGenerator
更多...   
成功案例
广汽研究院 SysML+EA+软件分析设计
高合汽车研发部门 建模工具EA、WebEA、学习视频
国汽智联 建模工具EA、模型库、WebEA和iSpace
亿咖通 MBSE工程体系与工具链咨询
中航无人机 MBSE工具链
吉利汽车 购买EA工具
华科汽车零部件 购买EA工具
东风岚图汽车 购买EA工具 以及EA定制开发
更多...