目录
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-l