事件管理器创建一个OXFTimeout对象并将其交由一个定时管理器管理。定时管理器可以管理多个定时事件,它运行于自己的独立线程内且聚合了一个定时器对象。定时器对象每卫固定的时间片会向定时管理器发通知信号,这时定时管理器检查它管理的定时事件集合中是否有定时事件到时,并将到时的定时事件添加到事件管理器(活动对象)的事件队列中(通过调用queueEvent),之后事件管理器再将这些定时事件投递给对应的响应对象。定时事件本身是被动的,它不包含定时器。
(4)状态机
Rhapsody支持UML状态机(State Machines),包括层次状态分解、带参事件、定时事件、伪状态、完成转移、入口和出口动作等功能。Rhapsody也包含了UML中定义的异步事件处理模型:带有状态图的类都是响应类,因此都与一个事件管理器(活动类)关联。事件管理器使用一个队列缓冲收到的事件,然后将事件投递给响应对象。响应对象按照状态图处理收到的事件。
OXF框架使用OXFEvent Consumer、OXFState、OXFLeafState等实现UML状态机的语义。限于篇幅,本文对此不作介绍。
(5)并发控制
Rhapsody的OXF框架使用如下两个类实现对实时系统资源的并发控制(Concurrency Control)。
*OXFOSMutex:包装了实时操作系统的互斥量对象,支持lock()和free()操作。互斥量用于管理独占性资源。
*OXFOSSemaphore:包装了实时操作系统的信号量对象,支持wait()和signal()操作。信号量用于管理共享资源。
UML类的方法可以声明为guarded。这时类被称为protected。protected类用于对独占性资源进行建模,在任何时刻只可有一份guarded方法执行,OXF框架以OXFProtected定义UML protected类,它充当所有用户protected类的父类。
(6)模型的调试及分析
文章来源于领测软件测试网 https://www.ltesting.net/