动作语言实质上是对传统过程式语言进行模式抽取,从OO的角度进行操作分类,并以UML的语法来进行具体表示,这也是动作语言成为可执行的UML的关键部分
动作语言包括包括以下操作:
1. 创建或删除对象
2. 通过引用访问对象
3. 创建或删除对象引用
4. 触发一个操作
5. 返回
6. 读取或设置属性
7. 计算表达式的值
8. 读取或修改变量的值
为了进行动作流程控制,还需要引入条件分支和条件循环操作。这些操作和流程,对于描述一般的动态建模已经足够了。在UML的动作语义规范中,每个操作还需要定义输入输出参数。
UML的动作语义规范规定的其它动作还有:
ReClassifyAction:
应该是类似于类型转换的操作。
CollectionAction:
类似于C++和Java 5.0支持的unbox/box和for each操作。严格来讲这并不是一种操作,只是一种简便的表示方法
Messaging Action:
这个动作增强对象的能力,使其能够收发消息,这里的消息可以是同步的,也可以是异步的。
Jump Action:
类似于传统过程式编程中的continue, break等
其他概念:
Pins: Action的Input和Output
DataFlow: 当一个Action的Output作为另一个Action的Input时,表示DataFlow产生了
ControlFlow: 指定了Action执行的先后次序
PrimitiveAction: 原子动作,不可再分解,一般来说指那些数学运算,内存读写等最基本的操作。
Procedure:一组Action集合。