活动(Activity)

活动(Activity)是一种行为(Behavior)元素,它是行为元素的子类。首先活动是一个“类”(class。SysML中,它也是一个模块block),所以它有“类”的特征,可以有属性、方法,还可以有下层的“行为”元素,形成一个多层嵌套的行为模型。其次,活动是一个“行为”元素,有输入参数和输出参数。活动元素的特殊之处在于它可以包含各种可以说明一个行为过程的元素,包括“动作”(Action)、控制流(ControlFlow)和对象流(ObjectFlow),以及其它说明控制逻辑的节点。

活动可以用来说明系统的功能,活动以及它包含的子活动元素、活动中的动作元素,可以形成一个系统的功能结构树。在进行系统的功能分析的时候,它是重要的说明元素。

作为一个行为元素,活动可以作为一个模块(Block)的拥有行为,用于说明一个模块的功能。此外,活动也可以作为其它行为元素的更具体的说明。如,对一个用例(UseCase)进行更详细的说明,可以把活动元素作为用例的拥有行为(用例也是一种行为类BehavioredClassifier,可以拥有行为)进行说明;活动也可以作为状态机中的状态(State)的内部行为,或系统处于某个状态时进行的工作;活动也可以作为状态转移(Transition)的影响(effect),说明状态转移时发生的行为。

在MBSES中,你可以为一个模块增加拥有行为的时候,增加一个活动元素。也可以直接在一个包中增加一个活动元素。

UML\SysML是面向对象的语言,活动是一个说明具体行为过程的元素。可以说活动和它的活动图是用UML\SysML语言写的一段系统运行过程的“程序”。这段“程序”要有运行的语境(Context),也就是活动的过程可以读写的变量的范围。这个语境就是活动所属的模块。如果活动没有所属模块,那它自己就是自己的语境。在活动的过程中,可以读写它的语境中的属性(Property)、可以调用所属语境的其它行为(通过一个调用行为动作)。当然也可以调用(通过一个“调用操作动作”)另外一个模块的操作(Operation)、接收(Reception),但必须通过当前模块的一个部件(part)属性或引用(reference)属性。这是面向对象语言的“封装”性原则所规定的,这个原则使我们定义的系统模型中功能调用关系是清晰的、可控的。

把活动分配给模块(功能分配结构)

在建模工作中,按照系统工程的工作原则,一般架构模型的分析和功能模型的分析是分离的,作为功能的活动和作为活动语境的模块是分别放在不同的包中的。这和上述面向对象的原则又是不统一的(按照面向对象语言规则,活动元素应该放在模块下面,而不是单独的放在一个包中)。为了建立两者之间的关系,MBSES中,如果建立了“活动”到“模块”(或部件)的分配关系,则这个活动元素的语境就不是活动元素的父元素,而是这个分配的“模块”(或作为部件属性类型的模块)。同样,如果把一个“调用行为动作”分配个一个“模块”(或部件)(一般通过建立一个分配活动分区),则这个调用行为动作调用的行为元素(如活动,或者交互、状态机)的“语境”(Context)也会自动设置为这个部件。

活动参数设置

通过窗口设置参数

在模型浏览器上选择活动节点,右键“添加编辑参数”,弹出参数编辑窗口,如下所示:

窗口中工具栏说明如下:

Picture 17添加:添加新的参数,会弹出一个增加参数的窗口输入参数。

Picture 16编辑:选择一个参数,编辑它。

Picture 15上移、图片 245下移:移动参数的位置。参数的位置对活动来说很重要,参数位置不同表示行为的接口不同,就表示是不同的行为了。

Picture 14删除:删除选择的参数。

 

定义行为的表达式时定义参数

在模块定义图中,为模块增加一个行为(Behavior)的时候,在相应的行为分区中按照行为的语法定义行为的名称、参数、返回参数等。活动作为一种行为,它的定义符合行为定义的语法。行为定义的语法参见行为(Behavior)