亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于AOP的實(shí)時系統(tǒng)關(guān)注點(diǎn)分離方法

        2011-07-25 06:49:02汪千松安徽工程大學(xué)現(xiàn)代教育技術(shù)中心安徽蕪湖241000
        關(guān)鍵詞:關(guān)注點(diǎn)連接點(diǎn)連接件

        鮑 陳, 汪千松(安徽工程大學(xué)現(xiàn)代教育技術(shù)中心,安徽蕪湖241000)

        0 引 言

        實(shí)時系統(tǒng)[1-2]是計(jì)算機(jī)應(yīng)用領(lǐng)域中的一個重要分支,它廣泛應(yīng)用于國防、航空、自動化控制等領(lǐng)域。實(shí)時系統(tǒng)要求在確定的時間內(nèi)執(zhí)行計(jì)算或處理事務(wù)并對外部事件做出響應(yīng)的計(jì)算機(jī)系統(tǒng),它的正確性不僅依賴于計(jì)算結(jié)果的邏輯正確性而且與結(jié)果的完成時間有關(guān)。關(guān)注點(diǎn)分離[3-4]是軟件工程中一個重要的原則。傳統(tǒng)實(shí)時系統(tǒng)軟件中,始終存在一些關(guān)注點(diǎn)的實(shí)現(xiàn)代碼難以模塊化,和其它關(guān)注點(diǎn)的實(shí)現(xiàn)代碼彼此橫切,最終的程序呈現(xiàn)“代碼分散”和“代碼糾纏”,使得系統(tǒng)變得復(fù)雜、難以擴(kuò)展和難以重用。針對上述問題,本文首先分析并識別了實(shí)時系統(tǒng)中的關(guān)注點(diǎn),將非功能性關(guān)注從系統(tǒng)核心功能關(guān)注中分離出來,在此基礎(chǔ)上,提出基于方面連接件的組裝模型,該模型方法將AOP引入到連接件中,從而保證了功能關(guān)注與非功能關(guān)注綁定或組合過程的透明性,功能關(guān)注中不包含對非功能關(guān)注的代碼引用,達(dá)到關(guān)注點(diǎn)模塊化獨(dú)立重用目的。點(diǎn),使其模塊化。一個關(guān)注點(diǎn)就是一個特定的目的,實(shí)現(xiàn)某種特定功能的模塊。任何一個軟件系統(tǒng)都可以被分為核心業(yè)務(wù)模塊和系統(tǒng)級模塊,也即核心關(guān)注點(diǎn)和系統(tǒng)級關(guān)注點(diǎn)。核心業(yè)務(wù)關(guān)注點(diǎn)是指系統(tǒng)的核心業(yè)務(wù)邏輯(功能邏輯);系統(tǒng)級關(guān)注點(diǎn)就是一些與每個業(yè)務(wù)子系統(tǒng)都關(guān)聯(lián)的公共模塊,這些關(guān)注點(diǎn)也稱為橫切關(guān)注點(diǎn)。這種橫切關(guān)注點(diǎn)橫跨了多個核心功能業(yè)務(wù)模塊。AOP通過需求分析將需求分解為一系列核心模塊級需求和系統(tǒng)級需求,在設(shè)計(jì)層采用一般關(guān)注點(diǎn)和橫切關(guān)注點(diǎn)(CrosscuttingConcerns)分別為核心模塊級需求和系統(tǒng)級需求設(shè)計(jì)解決模型(SolutionModel),然后在實(shí)現(xiàn)層實(shí)現(xiàn)這些關(guān)注點(diǎn)的模塊化,一般關(guān)注點(diǎn)實(shí)現(xiàn)為組件(Component,可能為對象,方法,過程或API),橫切關(guān)注點(diǎn)實(shí)現(xiàn)為方面(Aspect),最后通過AOP環(huán)境提供的織入器(Weaver)將這些組件和方面組合起來以實(shí)現(xiàn)一個完整的系統(tǒng)。

        AOP的主要構(gòu)造元素包括:①連接點(diǎn)(Join Pointer):程序執(zhí)行中的明確定義的點(diǎn),用以表明可以插入橫切行為的位置。②切入點(diǎn)(Pointcut):用以捕獲程序執(zhí)行中特定連接點(diǎn),并搜索該連接點(diǎn)上下文的程序結(jié)構(gòu)。③通知(Advice):當(dāng)程序到達(dá)某些連接點(diǎn)需要執(zhí)行的操作,通知通常有3種類型:before

        1 面向方面編程技術(shù)AOP[5-8]

        AOP是一種新的編程范型,其基本思想使分離橫切關(guān)注通知、after通知和around通知,分別表示在連接點(diǎn)之前、之后和代替連接點(diǎn)執(zhí)行的操作。④方面(Aspect):是將切入點(diǎn)和通知結(jié)合在一起的模塊單元,類似于OOP中類的概念。⑤編織(Weaving):是把特定連接點(diǎn)的實(shí)現(xiàn)代碼(Advice)插入到相應(yīng)的連接點(diǎn)代碼上。通過編織工具,通知會被“插入”到通知對應(yīng)的連接點(diǎn)的前面、后面或連接點(diǎn)所在的代碼中。

        2 基于AOP的實(shí)時系統(tǒng)關(guān)注點(diǎn)分離方法

        實(shí)時系統(tǒng)軟件通常是對任務(wù)的調(diào)度、對時間的調(diào)度及管理上述兩類控制的應(yīng)用邏輯。實(shí)時系統(tǒng)軟件是一個并發(fā)狀態(tài)機(jī)(concurrentstatetransition machine,CSTM)集合。在實(shí)時系統(tǒng)中,傳統(tǒng)面向?qū)ο蠹夹g(shù)無法完美地模塊化,系統(tǒng)里有很多非功能關(guān)注,這些非功能關(guān)注散布整個系統(tǒng)的功能關(guān)注里,帶來了“代碼分散”和“代碼糾纏”的問題。本文提出了一種基于方面連接件的組裝模型,該模型將AOP引入到軟件連接件中,達(dá)到分離關(guān)注點(diǎn)簡化系統(tǒng)中的代碼復(fù)雜度的目的,并實(shí)現(xiàn)了功能關(guān)注與非功能關(guān)注綁定或組合過程的透明性,保證了功能關(guān)注中不包含對非功能關(guān)注的代碼引用,達(dá)到關(guān)注點(diǎn)模塊化獨(dú)立重用目的。

        2.1 實(shí)時系統(tǒng)關(guān)注點(diǎn)分離

        在實(shí)時系統(tǒng)軟件開發(fā)中,經(jīng)常需要用多個狀態(tài)來描述系統(tǒng)的行為。這些狀態(tài)的狀態(tài)變化和狀態(tài)遷移形成了狀態(tài)機(jī)。我們采用狀態(tài)機(jī)模型來描述實(shí)時系統(tǒng)。對橫切關(guān)注點(diǎn)我們從兩個角度進(jìn)行分類:體系結(jié)構(gòu)和域獨(dú)立性的關(guān)注點(diǎn)。將關(guān)注點(diǎn)從體系結(jié)構(gòu)角度劃分為系統(tǒng)級橫切關(guān)注點(diǎn)(GlobalConcerns)和模塊級橫切關(guān)注點(diǎn)(LocalConcerns),再將模塊級橫切關(guān)注點(diǎn)從獨(dú)立性的角度做深入細(xì)分。系統(tǒng)級橫切關(guān)注點(diǎn)是指跨越系統(tǒng)所有核心模塊組件的全局關(guān)注點(diǎn),如狀態(tài)遷移和并發(fā)性是系統(tǒng)級橫切關(guān)注點(diǎn)屬于這類關(guān)注點(diǎn),而模塊級橫切關(guān)注點(diǎn)是指跨越幾個系統(tǒng)核心功能模塊的局部關(guān)注點(diǎn),如實(shí)時處理和故障處理則屬于這類關(guān)注點(diǎn)。

        2.2 組件 (CSTM)結(jié)構(gòu)模型

        實(shí)時系統(tǒng)軟件是一個并發(fā)狀態(tài)機(jī)(concurrentstatetransition machine,CSTM)集合,它是由實(shí)時系統(tǒng)建模語言ROOM[9-10](real-timeobject-orientedmodeling)中的Actor演變而來,代表了系統(tǒng)中已封裝的并行執(zhí)行的對象,并行狀態(tài)遷移機(jī)CSTM組成結(jié)構(gòu)模型如圖1所示。CSTM組成結(jié)構(gòu)模型實(shí)現(xiàn)了對實(shí)時系統(tǒng)關(guān)于并發(fā)對象的靜態(tài)結(jié)構(gòu)和動態(tài)行為的封裝,具有以下性質(zhì):CSTM始終代表系統(tǒng)中的活動對象,在系統(tǒng)中可以同時有多個對象并行執(zhí)行。CSTM封裝了內(nèi)部的一切細(xì)節(jié),對所有的外部對象而言,CSTM提供了統(tǒng)一的對象交互接口,所有消息是通過接口接收和發(fā)送來實(shí)現(xiàn)的,通過統(tǒng)一外部接口封裝特定功能,可以自主決定自身行為可復(fù)用軟件模塊。

        圖1 CSTM組成結(jié)構(gòu)模型

        本文對實(shí)時系統(tǒng)軟件系統(tǒng)進(jìn)行關(guān)注點(diǎn)分離,將分離后關(guān)注點(diǎn)模塊化為組件。組件類型可分為兩類:①簡單組件(Primitive Component),其服務(wù)集中的服務(wù)都已經(jīng)實(shí)現(xiàn),這種組件在進(jìn)行體系結(jié)構(gòu)描述時,不需要細(xì)化描述,在組件層次定義中處于葉子結(jié)點(diǎn)位置;②復(fù)合組件(Composite Component),它是為描述和實(shí)現(xiàn)軟件系統(tǒng)的高層次組織關(guān)系而引入,其服務(wù)集中的服務(wù)一般需要若干抽象度相對較低的組件來細(xì)化描述。復(fù)合組件用于組件層次定義,它表示了OR聚合關(guān)系。在一般的情況下,至少有一個子組件在運(yùn)行時被選中,且子組件作為請求功能的代表運(yùn)行。在特殊的情況下,所有子組件可以是活動的。配置組件(ConfigurationCSTM)與策略組件(PolicyCSTM)之間是聚合關(guān)系如圖2所示。

        圖2 配置CSTM與策略CSTM

        復(fù)合組件(Composite Component)在樹形結(jié)構(gòu)的層次定義中,它表示了OR聚合關(guān)系。至少有一個子組件在運(yùn)行時被選中,且子組件作為請求功能的代表運(yùn)行。在特殊的情況下,所有子組件可以是活動的。配置控制策略組件(CCPolicyCSTM)管理配置組件1(ConfigurationCSTM1)和配置組件2(ConfigurationCSTM2)的狀態(tài)是激活A(yù)ctive還是休眠Sleep,如圖3所示。

        圖3 配置復(fù)合組件

        在實(shí)時系統(tǒng)中,我們定義了一組CSTM來完成系統(tǒng)的功能,它包括通常機(jī)能CCPolicyCSTM,實(shí)時處理并行狀態(tài)遷移機(jī) (Real-Time CSTM,RTCSTM),故障處理并行狀態(tài)遷移機(jī)(Fault Handle CSTM,F(xiàn)HCSTM),異常處理并行狀態(tài)遷移機(jī)(Error Handle CSTM,EHCSTM)。

        依據(jù)CSTM組成結(jié)構(gòu)模型,將分離后的模塊級橫切關(guān)注點(diǎn)模塊化為一個模塊級橫切組件中。圖4作為被模塊化為一個復(fù)合組件中的實(shí)時性關(guān)注點(diǎn)的示例,如圖4所示,在實(shí)時處理配置復(fù)合CSTM中存在4個子組件:配置控制策略、定時器、正常配置以及異常CSTM。所有子組件依次由4個方面組成:并發(fā)性(Concurrency)、狀態(tài)遷移(State Trans)、業(yè)務(wù)邏輯(AppLo-gic)和面向方面連接件(IAD)。在圖4中給出了子組件的動態(tài)行為。它動態(tài)顯示了“超時”情況。首先,除了異常CSTM之外各組件都處于活動狀態(tài)。然后,同時啟動定時器和正常配置CSTM。當(dāng)超時事件發(fā)生,在獲得請求處理之前,配置更改為異常。圖4還顯示了正常的處理過程。

        圖4 復(fù)合組件實(shí)時性關(guān)注點(diǎn)

        2.3 基于方面連接件的組裝模型

        目前實(shí)時系統(tǒng)軟件開發(fā)中,把重點(diǎn)都放在了系統(tǒng)的軟件結(jié)構(gòu)和功能分解上,而忽略了實(shí)時系統(tǒng)環(huán)境下非功能性屬性的實(shí)現(xiàn)?;陉P(guān)注點(diǎn)分離思想,對實(shí)時系統(tǒng)進(jìn)行功能關(guān)注和非功能關(guān)注的分離,將分離后的關(guān)注點(diǎn)模塊化為組件,如果就這樣將功能組件和橫切組件綁定或組合到一起,勢必造成分離后的功能組件和橫切組件又一次糾纏到系統(tǒng)中。為了避免這個問題的出現(xiàn),本文將AOP引入到軟件連接件中,然后提出了一種基于方面連接件的組裝模型,實(shí)現(xiàn)功能組件和橫切組件綁定或組合過程的透明性,使得功能組件中不包含對模塊級橫切組件的代碼引用,達(dá)到組件模塊獨(dú)立重用目的?;诜矫孢B接件的組裝模型主要組成元素有:核心功能組件、模塊級組件和方面連接件,如圖5所示。圖5描述基于方面連接件的組裝模型,該模型利用面向方面的通知機(jī)制,在連接件的接口處加入切入點(diǎn)和通知,同時使用通知類型在連接點(diǎn)調(diào)用通知執(zhí)行模塊級橫切組件提供的功能,在面向方面連接件中進(jìn)行編織[11-12],從而保證了功能組件中不包含對橫切組件的代碼引用,達(dá)到組件模塊獨(dú)立重用目的。

        2.4 方面代碼的轉(zhuǎn)換

        本文通過方面間描述文件 (inter aspect description,IAD)來描述面向方面連接件,方面間文件是一種類似于AspectJ的方面編程語言ACV,采用基于ANSI C語言AOP擴(kuò)展的編譯器[13]進(jìn)行源程序級的程序轉(zhuǎn)換,變換成C語言編譯器能編譯的C代碼,然后和其它非方面模塊一起編譯得到系統(tǒng)的可執(zhí)行文件。通過基于ANSI C語言AOP擴(kuò)展的編譯器對以上已經(jīng)模塊化的組件模塊進(jìn)行編織,從而構(gòu)建一個完整的系統(tǒng)。

        圖5 基于方面連接件的組裝模型

        3 實(shí)例與分析

        為了說明上述基于AOP的實(shí)時系統(tǒng)關(guān)注點(diǎn)分離方法在實(shí)時系統(tǒng)軟件開發(fā)中的應(yīng)用,下面以仿真門控系統(tǒng)為例來說明。在仿真門控系統(tǒng)中,進(jìn)行關(guān)注點(diǎn)分離如下:①核心關(guān)注點(diǎn)分離,本系統(tǒng)核心主要包括用戶對系統(tǒng)通常機(jī)能狀態(tài)為待機(jī)、開鎖、開門、關(guān)門、關(guān)鎖的處理狀態(tài)進(jìn)行實(shí)時控制;②橫切關(guān)注點(diǎn)分離,本系統(tǒng)要正常的實(shí)現(xiàn)其功能必須考慮實(shí)時性和故障性等側(cè)面非功能關(guān)注。下面給出了系統(tǒng)的用例圖,如圖6所示。

        圖6 系統(tǒng)用例

        本文應(yīng)用基于方面連接件的組裝模型在連接件的接口處加入切入點(diǎn)和通知,使用通知類型在連接點(diǎn)調(diào)用通知執(zhí)行模塊級橫切組件提供的功能,實(shí)現(xiàn)了組件綁定或組合過程中透明性,功能組件中不包含對橫切組件的代碼引用,達(dá)到組件模塊獨(dú)立重用目的。

        3.1 State模式的應(yīng)用

        在實(shí)時系統(tǒng)軟件開發(fā)中,經(jīng)常需要用多個狀態(tài)來描述系統(tǒng)的行為。這些狀態(tài)的狀態(tài)變化和狀態(tài)遷移形成了狀態(tài)機(jī)。采用基于State模式[14-15]的狀態(tài)機(jī)模型來描述實(shí)時系統(tǒng)。通常機(jī)能狀態(tài)機(jī),定義一個StateManager類(CLoadSTM類),它定義了用戶程序需要的接口,并維護(hù)一個表示當(dāng)前狀態(tài)的具體狀態(tài)的實(shí)例。外界只與此類的對象打交道,而不關(guān)心具體的狀態(tài)及其轉(zhuǎn)換。定義一個State抽象類(CLoadState類),規(guī)定了處理各外部事件的共同接口(每個事件對應(yīng)一個虛函數(shù))。CLoadState類中的方法要對應(yīng)CLoadSTM類中的CLoadSTM_Trans()函數(shù)。

        3.2 基于方面連接件的組裝模型的應(yīng)用

        3.2.1 通常機(jī)能

        如圖6所示,通常機(jī)能是系統(tǒng)正常載入模塊,其擁有5個子狀態(tài),每個狀態(tài)形成一個子類,每個狀態(tài)只關(guān)心它的下一個可能狀態(tài),從而形成了狀態(tài)遷移的規(guī)則。在業(yè)務(wù)層對狀態(tài)遷移時,采用AOP技術(shù),應(yīng)用基于方面連接件的組裝模型在連接件的接口處加入切入點(diǎn)和通知,使用通知類型在連接點(diǎn)調(diào)用通知執(zhí)行模塊級橫切組件提供的功能,實(shí)現(xiàn)組件間的綁定或組合,功能組件中不包含對橫切組件的代碼引用,達(dá)到了組件模塊獨(dú)立重用的目的。

        (1)待機(jī)子狀態(tài)機(jī)核心功能的實(shí)現(xiàn)如下所示:

        CLoadState*_original_CLockerWaitState_Open_Lock_Trans(CLockerWaitState*this,US mLockerID){}

        (2)面向方面連接件(IAD)方面間描述文如下件所示:

        /*lockerwait.acv*/

        typeid CLockerWaitState;

        typeid US;

        typeid CLoadState;

        /*連接點(diǎn)(JoinPoint)定義:待機(jī)狀態(tài)到開鎖狀態(tài)遷移方法*/

        CLoadState*CLockerWait_Open_Lock_Trans(CLokerWait-State*this,US mLockerID)in LoadLockerWaitState;

        /*方面(Aspect)定義 */

        aspect asptLoadAction{

        /*切入點(diǎn)(Pointcut)定義:待機(jī)狀態(tài)到開鎖狀態(tài)遷移時,故障處理PolicyCSTM通知Open_Lock*/

        pointcut pCLockerWaitState_Open_Lock_Trans(

        CLockerWaitState*this, US mLockerID):CLockerWait_Open_Lock_Trans(this,mLockerID);

        /*通知(Advice)定義:待機(jī)狀態(tài)到開鎖狀態(tài)遷移時,故障處理PolicyCSTM通知Open_Lock*/

        before(CLockerWaitState*this,US mLockerID):

        pCLockerWaitState_Open_Trans(this,mLockerID){CLoadAction_NotifyFaultPolicy_OpenLock(mLockerID);}

        }

        (3)經(jīng)ACV方面代碼編譯器編排后C代碼如下所示:

        /*lockerwait.c*/

        #include"LoadAction.h"http://需要手工添加

        #include"LoadLockerWaitState.h"

        /*方面文件轉(zhuǎn)換的函數(shù)宏的定義*/

        #define_asptLoadAction_before_1(this,mLockerID){CLoad-Action_NnotifyFaultPolicy_OpenLock(mLockerID);}

        /*核心功能組件函數(shù)*/

        CLoadState*_original_CLockerWaitState_Open_Lock_Trans(CLockerWaitState*this,US mLockerID);

        /*編織后的核心功能組件函數(shù)中加入業(yè)務(wù)功能函數(shù)和advice函數(shù)宏*/

        CLoadState*CLockerWaitState_Open_Lock_Trans(Clocker WaitState*this,US mLockerID){

        CLoadState*_around_ret_val_;

        _asptLoadAction_before_1(this,mLockerID);

        _around_ret_val_=_original_CLockerWaitState_Open_Lock_Trans(this,mLockerID);

        return_around_ret_val_;

        }

        3.2.2 實(shí)時處理機(jī)能

        仿真門控系統(tǒng)是一個復(fù)雜且具有實(shí)時性要求的實(shí)時系統(tǒng),其邏輯正確性不僅依賴于計(jì)算結(jié)果的正確性,還取決于系統(tǒng)輸出結(jié)果的時間。圖7實(shí)時處理復(fù)合組件,當(dāng)系統(tǒng)處于從開鎖狀態(tài)到開門狀態(tài)遷移時,起動定時器的Time_start()方法,當(dāng)從開門狀態(tài)到關(guān)門狀態(tài)遷移時,起動定時器Time_cancel()方法,如果在一段規(guī)定的時間閾值內(nèi)沒有關(guān)門事件發(fā)生,則實(shí)時處理PolicyCSTM的子狀態(tài)類CRealTimePolicyStartState執(zhí)行Time_Up_Trans()方法,在該方法中通知實(shí)時異常配置組件激活,通常機(jī)能功能組件模塊休眠。

        圖7 實(shí)時處理復(fù)合組件

        通常ConfigurationCSTM從開鎖狀態(tài)到開門狀態(tài)遷移,通知實(shí)時處理PolicyCSTM啟動定時器Timer面向方面連接件方面間描述文件。通過ACV方面代碼編織器編排為C代碼。

        3.2.3 故障處理機(jī)能

        系統(tǒng)處于待機(jī)狀態(tài),發(fā)現(xiàn)鎖故障,則在通常機(jī)能CSTM子狀態(tài)類CLockerWaitState核心功能函數(shù)_original_CLockerWait-State_Open_Lock_Trans()中連接點(diǎn)織入故障性處理Composite-CSTM,故障處理PolicyCSTM以事件形式通知硬件,此時故障處理CompositeCSTM在子狀態(tài)類CFaultPolicyOpenLockState執(zhí)行方法Open_Door_Trans()中,通過全局變量GlockerOpenLock-Error進(jìn)行判斷硬件是否發(fā)生故障,如果發(fā)生了故障則在該方法中激活故障異常處理功能模塊,將通常機(jī)能組件模塊休眠;如果未發(fā)生硬件故障,則激活通常機(jī)能組件模塊,觸發(fā)開鎖事件。故障處理復(fù)合組件如圖8所示。

        圖8 故障處理復(fù)合組件

        通常ConfigurationCSTM組件,從關(guān)門狀態(tài)到關(guān)鎖狀態(tài)遷移時通知故障處理 PolicyCSTM的面向方面連接件方面間描述文件。通過ACV方面代碼編織器編排為C代碼。

        3.3 系統(tǒng)實(shí)現(xiàn)效果討論

        本仿真系統(tǒng)的開發(fā)利用了VisualC++6.0IDE集成開發(fā)環(huán)境。我們通過此仿真界面來模擬和展示系統(tǒng)運(yùn)行效果,其界面上的 OpenLock、OpenDoor、CloseDoor、CloseDoorLock 按鈕分別代表不同的功能操作,還模擬了故障發(fā)生情況設(shè)定。在MFC對話框類ClockerDlg中添加了定時器中斷消息WM_TIMEER,并在其對應(yīng)的定時器事件OnTimer()中實(shí)時器的Timer_Clock(),這樣就可以按照Windows系統(tǒng)的時鐘模擬實(shí)現(xiàn)在實(shí)時控制系統(tǒng)中,對計(jì)時器鏈表中的每個計(jì)時器進(jìn)行相應(yīng)的加1或減1操作。本系統(tǒng)使用State模式解決了狀態(tài)管理的問題,同時使用基于方面連接件的組裝模型解決了模塊級橫切問題也取得了令人滿意的效果。

        4 結(jié)束語

        本文提出了一種基于AOP的實(shí)時系統(tǒng)關(guān)注點(diǎn)分離方法,該方法包括把實(shí)時系統(tǒng)中的狀態(tài)遷移、并發(fā)性、實(shí)時性和故障性等非功能關(guān)注從功能關(guān)注分離出來,較好地分離應(yīng)用邏輯(功能性問題的解決)與橫切關(guān)注點(diǎn)(非功能性問題的解決)之間的干擾;將AOP引入到軟件連接件中,提出了基于方面連接件的組裝模型,應(yīng)用該模型在連接件的接口處加入切入點(diǎn)和通知,使用通知類型在連接點(diǎn)調(diào)用通知執(zhí)行模塊級橫切組件提供的功能,實(shí)現(xiàn)了組件綁定或組合過程中透明性,且功能組件中不包含對橫切組件的代碼引用,達(dá)到了組件模塊獨(dú)立重用的目的;使用State模式解決了實(shí)時系統(tǒng)軟件開發(fā)中的狀態(tài)管理問題,闡述了State模式在實(shí)例系統(tǒng)中的具體實(shí)現(xiàn)。最后通過對一個實(shí)時系統(tǒng)實(shí)例分析與實(shí)現(xiàn),說明該方法在實(shí)際項(xiàng)目開發(fā)中的應(yīng)用價值。

        [1]Douglass B.Real-time UML:Developing efficient objects for embedded system[M].New York:Pearson Education,2003.

        [2]楊林,李小堅(jiān).基于UML實(shí)時系統(tǒng)的分析和設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(20):5035-5038.

        [3]何麗莉,金淳兆,馮鐵,等.關(guān)注分離問題研究綜述[J].計(jì)算機(jī)科學(xué),2005,32(2):129-132.

        [4]Dijkstra E W.A discipline of programming[M].Englewood Cliffs,NJ:Prentice-Hall,1976.

        [5]曹東剛,梅宏.面向Aspect的程序設(shè)計(jì)——一種新的編程范型[J].計(jì)算機(jī)科學(xué),2003,30(9):5-10.

        [6]鄧阿群,厲小軍,俞歡軍,等.一種新型軟件設(shè)計(jì)方法AOP的研究[J].系統(tǒng)與電子技術(shù),2004,26(7):970-975.

        [7]Ivar Jacobson,Pan-Wei Ng.Aspect-oriented software development with user cases[M].Addison Wesley Professional,2004.

        [8]莊巧莉,吳國華,冉宇瑤.面向AOP構(gòu)建健壯可擴(kuò)展的系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24(8):77-78.

        [9]湛輝來.基于UML的實(shí)時系統(tǒng)并行對象模型[D].重慶:重慶大學(xué),2003.

        [10]溫昱.軟件架構(gòu)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007.

        [11]李慧,張京軍,李福榮.基于AOP的軟件體系結(jié)構(gòu)適應(yīng)性研究[J].微計(jì)算機(jī)信息,2008,24(3):273-274.

        [12]SHENG Jin-fang,WANG Bin,CHEN Song-qiao.Aspectual component model and its assembly approaches[J].Computer Engineering,2006,32(5):39-40.

        [13]GE Feng,ZHANG Yun-hua,ZHAO Guo-ping.Design and implementation of AOP weaver based on C language[J].Computer Applications and Software,2008,25(12):161-163.

        [14]張玲.基于狀態(tài)機(jī)模型設(shè)計(jì)協(xié)作式工作流系統(tǒng)[J].北京機(jī)械工業(yè)學(xué)院學(xué)報,2007,22(3):16-18.

        [15]XU Xiao-liang,WANG Le-yu,ZHOU Hong.Implemetation framework of finite state machines[J].Journal of Engineering Design,2003,10(5):251-255.

        猜你喜歡
        關(guān)注點(diǎn)連接點(diǎn)連接件
        冬奧關(guān)注點(diǎn)
        新體育(2022年2期)2022-02-09 07:04:32
        基于有限元法改進(jìn)螺栓連接剛度模型*
        尋找關(guān)注點(diǎn) 提高復(fù)習(xí)效率——以初中教學(xué)中“0”為關(guān)注點(diǎn)為例
        甘肅教育(2020年14期)2020-09-11 07:58:44
        基于A3航攝儀的小基高比影像連接點(diǎn)精提取技術(shù)研究
        下半年尿素市場四大關(guān)注點(diǎn)
        如何分析一組數(shù)據(jù)的集中和分散——數(shù)據(jù)分析的兩個關(guān)注點(diǎn)
        基于彈性厚粘膠層的結(jié)構(gòu)性連接點(diǎn)響應(yīng)建模和預(yù)測
        汽車文摘(2016年6期)2016-12-07 00:23:38
        鋼-混凝土組合梁開孔板連接件抗剪承載力計(jì)算研究
        基于相關(guān)性篩選原理的公共連接點(diǎn)諧波畸變量的分層量化
        電測與儀表(2015年3期)2015-04-09 11:37:22
        顏學(xué)海:把握投資創(chuàng)新與模式創(chuàng)新的連接點(diǎn)
        日韩有码中文字幕av| 久久精品国产亚洲av蜜臀| 亚洲人成人影院在线观看| 国产chinese在线视频| 亚洲一区二区三区精彩视频| 中文字幕女同系列在线看一| 国产精品久久久国产盗摄| 欧美va亚洲va在线观看| 亚洲欧洲无码精品ⅤA| 一区二区高清视频免费在线观看| 亚洲色图片区| 国产性一交一乱一伦一色一情| 婷婷一区二区三区在线| 久久久精品少妇—二区| 99久久久无码国产精品性| 无码手机线免费观看| 99久久精品一区二区三区蜜臀 | 亚洲中文字幕在线精品2021| 操风骚人妻沉沦中文字幕| 欧美大屁股xxxx| 亚洲国产午夜精品乱码| 极品少妇在线观看视频| 白白白在线视频免费播放| 国产精品免费看久久久8| 人妻丰满熟妇AV无码片| 东京热日本道免费高清| 豆国产96在线 | 亚洲| 人妻无码一区二区三区四区| 无码91 亚洲| 久久久麻豆精亚洲av麻花| 久久久久亚洲av成人网人人网站| 日韩欧美区| 国产亚洲精品高清视频| 国产成人综合久久久久久| 久久夜色精品国产噜噜麻豆| 日韩欧美在线观看成人| 国产av精选一区二区| 乱码丰满人妻一二三区| 欧美日韩亚洲成人| 亚洲码无人客一区二区三区 | 日本女优五十路中文字幕|