事件管理器創建一個OXFTimeout對象并將其交由一個定時管理器管理。定時管理器可以管理多個定時事件,它運行于自己的獨立線程內且聚合了一個定時器對象。定時器對象每衛固定的時間片會向定時管理器發通知信號,這時定時管理器檢查它管理的定時事件集合中是否有定時事件到時,并將到時的定時事件添加到事件管理器(活動對象)的事件隊列中(通過調用queueEvent),之后事件管理器再將這些定時事件投遞給對應的響應對象。定時事件本身是被動的,它不包含定時器。
(4)狀態機
Rhapsody支持UML狀態機(State Machines),包括層次狀態分解、帶參事件、定時事件、偽狀態、完成轉移、入口和出口動作等功能。Rhapsody也包含了UML中定義的異步事件處理模型:帶有狀態圖的類都是響應類,因此都與一個事件管理器(活動類)關聯。事件管理器使用一個隊列緩沖收到的事件,然后將事件投遞給響應對象。響應對象按照狀態圖處理收到的事件。
OXF框架使用OXFEvent Consumer、OXFState、OXFLeafState等實現UML狀態機的語義。限于篇幅,本文對此不作介紹。
(5)并發控制
Rhapsody的OXF框架使用如下兩個類實現對實時系統資源的并發控制(Concurrency Control)。
*OXFOSMutex:包裝了實時操作系統的互斥量對象,支持lock()和free()操作;コ饬坑糜诠芾愍氄夹再Y源。
*OXFOSSemaphore:包裝了實時操作系統的信號量對象,支持wait()和signal()操作。信號量用于管理共享資源。
UML類的方法可以聲明為guarded。這時類被稱為protected。protected類用于對獨占性資源進行建模,在任何時刻只可有一份guarded方法執行,OXF框架以OXFProtected定義UML protected類,它充當所有用戶protected類的父類。
(6)模型的調試及分析
文章來源于領測軟件測試網 http://www.kjueaiud.com/