内容概览:
- 信号事件、调用事件、时间事件和变化事件
- 对信号族建模
- 对异常建模
- 处理发生在主动对象或被动对象中的事件
在现实世界中,事情在发生。不仅事情在发生,许多事情可以都在同一时间发生,而且发生在最意想不到的时间。“发生的事情”称为事件,每个事件表示一个在时间和空间上占据一定位置的有意义的发生的规约。
在状态机语境中,使用事件对能够触发状态转移的激励建模。事件包括信号、调用、时间推移或状态改变。
事件可以是同步的,也可以是异步的,因此对事件的建模涉及对进程和线程的建模。
1. 入门
完全静态地系统是极端无趣的,因为没有事情发生。所有真实系统自身都含有某些动态特性,并且这些动态特性是由内部或外部发生的事情所触发的。在一个ATM机上,动作是由一个用户按下按钮来启动一个事务而引发的。在一个自主机器人中,动作是由机器人碰上一个物体而引发的。在一个网络路由器中,动作是由检测到消息缓冲区溢出而引发的。在一个化工厂中,动作是由化学反应所需要的时间段用满而引发的。
在UML中,每件发生的事情都被建模为一个事件。事件是对在时间和空间上占据一定位置的有意义的发生的规约。信号、时间推移和状态改变是异步事件,表示能在任何时间发生的事件。调用一般是同步事件,表示对一个操作的引用。
UML提供了对事件的图形化表示,如图所示。