- 相關(guān)推薦
面向方面的數(shù)字視頻監(jiān)控系統(tǒng)軟件質(zhì)量度量研究與應(yīng)用
摘要:以一個數(shù)字視頻監(jiān)控信息系統(tǒng)為基礎(chǔ),分析了面向?qū)ο蟮能浖_發(fā)方法在橫切關(guān)注點分離上的缺陷,采用 對系統(tǒng)進行面向方面建模結(jié)合C&K軟件質(zhì)量度量方法,對基于面向?qū)ο箝_發(fā)的軟件系統(tǒng)和面向方面架構(gòu)的軟件系統(tǒng)進行了簡單的質(zhì)量度量。結(jié)果表明,面向方面的數(shù)字視頻信息系統(tǒng)在可擴展性、可復(fù)用性、降低類之間的耦合度以及增強類的內(nèi)聚上具有一定優(yōu)勢。

關(guān)鍵詞:AOSD;關(guān)注點;視頻監(jiān)控;軟件質(zhì)量度量
引 言
在數(shù)字視頻監(jiān)控系統(tǒng)的實現(xiàn)中,發(fā)現(xiàn)存在跨越多個模塊的關(guān)注點,稱之為橫切關(guān)注點_1。].一個模塊可能與多個類相關(guān)聯(lián)。在面向?qū)ο蟮木幊讨,橫切關(guān)注點是一種跨越多個類的關(guān)注點,如果按照傳統(tǒng)面向?qū)ο蟮脑O(shè)計方法將橫切關(guān)注點硬性地劃分到某個類中必然會影響系統(tǒng)的模塊性、可讀性、測試性能、維護性和可重用性 J.針對該問題,我們在數(shù)字視頻監(jiān)控系統(tǒng)中引進了面向方面的軟件開發(fā)方法(AOSD),它的基本構(gòu)成元素是aSpect和cl嬲s.一個aspect包含了消息(Advice)、連接點(oinpoim)、切點(poinceut)等模塊。
1 面向?qū)ο筌浖_發(fā)方法的缺陷面向?qū)ο蟮能浖_發(fā)方法(00SD)采用分解的方式將完整的軟件系統(tǒng)劃分為相對較小的、易于分析和理解的模塊,從而方便地進行各個功能模塊的設(shè)計和編碼|3‘引。通過分析可以看出,上述分散在功能模塊中的功能與行為之間形成了一種橫向的方面(Aspect),即方面與模塊形成了橫切(crosseutting),造成傳統(tǒng)的編程技術(shù)無法將方面模塊化,從而出現(xiàn)兩種代碼糾結(jié)(Tangling)在一起的情況,其原因是,在傳統(tǒng)的編程技術(shù)中軟件系統(tǒng)中非業(yè)務(wù)功能實現(xiàn)的代碼無法模塊化。
2 面向方面建模的數(shù)字視頻監(jiān)控系統(tǒng)面向方面建模(Asped—Oriented ModeIjng,AOM)是在軟件開發(fā)的設(shè)計階段對方面進行建模,AOM利用建模語言(如uML)標識、分析、管理和表示軟件設(shè)計和構(gòu)架中的橫切關(guān)注點,使所設(shè)計的軟件具有更好的模塊化設(shè)計,從而保持需求、設(shè)計和實施的連續(xù)性。
通常,數(shù)字視頻監(jiān)控系統(tǒng)中存在橫切系統(tǒng)核心關(guān)注點的日志記錄、安全性驗證、異常處理等非功能需求,以及實時視頻監(jiān)控、監(jiān)控點配置、用戶管理、音視頻錄象等功能性需求。通過采用AOsD可有效地分離并模塊化這些關(guān)注點。如以功能性需求中的監(jiān)控點配置為例,其在功能性需求建模中會出現(xiàn)一種特定的用例類型,這種用例與其他用例之間并沒有特定的關(guān)系,但用例的實現(xiàn)通常會調(diào)用一些相同的類,例如,會調(diào)用系統(tǒng)的基礎(chǔ)類(M0nitorPoiIlt),它不是任何用例的特定的類。這種用例被稱為對等用例(peer use case),比如,“添加監(jiān)控點”、“更改監(jiān)控點”,“刪除監(jiān)控點”用例,它們在實現(xiàn)中都共享了一些類。下面以“添加監(jiān)控點”為例對該用例做進一步分析(見圖2)。
考慮了多個類實例之間的交互后,就可以比較用例上下文中各個類的職責(zé)及其之間的關(guān)系。基本上,每個傳送給實例的消息都可以轉(zhuǎn)換成參與通信的類職責(zé)。據(jù)此,我們可以得到該用例的類圖。
3 A0SD和OOSD軟件度量的比較為了驗證基于AOSD所獲得的軟件系統(tǒng)的質(zhì)量是否得到了提高,可以使用軟件質(zhì)量度量的方法對系統(tǒng)進行評估 ],對此,我們選用C&K度量方法。C&K度量方法由Chidarr】ber等于l994年提出,它從類級別提出了6個度量元:WMC、DⅡ1、N0C、LC0M、RFC、cBO。其主要針對軟件的特性進行度量,如繼承、耦合、可復(fù)用性等,并提出了對類的復(fù)雜性計算方法。
度量的數(shù)據(jù)來源于系統(tǒng)的分析設(shè)計文檔和源代碼文件,并選定系統(tǒng)中的某些類為例子進行度量比較,以反映系統(tǒng)可維護性、可復(fù)用性、可擴展性、可移植性、可靠性等性能的變化'4 ].
3.1 每個類的加權(quán)方法數(shù)(wMC)通過00sD和A0SD所得到的類圖比較可知:
A0sD存在0OSD中分析出的所有類,所以權(quán)重是相等的,差別在于方法的數(shù)上。以類“Monif0rP0int”為例,在采用A0SD分析系統(tǒng)對等用例時,將類“Mo試一沁 )0int”中定義的方法放在“MonitorI)0int Aspect”方面內(nèi)進行定義,因此類“M0nitorPoint”的方法大大減少。
經(jīng)測試得,wMCA0sD為l2,wMC㈣為17,說明AOSD開發(fā)類所需時間和精力要少些,系統(tǒng)的可維護性得到了一定的提高。
3.2 繼承樹的深度(DIT)DT]r指對象所屬類在繼承樹中的深度(層次),其中,樹根為0.Drr是當前結(jié)點至根的最大長度。
Drr在沒有父類的情況下為0,其余情況下D rIl=max(DIT( ))+1.
以類“Monitod)oint”為例,根據(jù)oosD和AOsD比較分析可知:在00SD中,D珥 =1;而在A0sD中,不僅抽象了類,而且抽象了方面,Drr 鵬。=2(抽象的日志記錄方面)。Drr越大表明設(shè)計復(fù)雜性越大,同時系統(tǒng)的可復(fù)用性越高。
3.3 孩子數(shù)目(N0C)NOC定義為繼承類中直接孩子的數(shù)目,在A0SD中,增加了繼承與抽象方面的子方面而在O0SD中,NOC㈣=4.NOC值越大說明可復(fù)用性越高;同時,由于N0C值越大,父類的影響就越大,所以需要更多的測試。N0c值表明,A0SD可復(fù)用性好于OOsD,但是可測試性較低。
3.4 類之間的耦合(CBO)cB0提供了類的耦合程度的度量依據(jù)。cB0越大,說明該類和其他類的關(guān)系越密切,不僅降低了可重用性,而且使測試變得復(fù)雜。DBO的計算公式如下:CBo: A * DlT+ B * NoC + C * NosC + D *DAc+E*PpC+ F*MPC前面已取得了類“M0nit0rP0int”的DIrr值、N0C值。父類數(shù)目N0sc易知,N0scA惦D>NOsco0sD.根據(jù)0oSD和AOSD類圖中類的相互關(guān)聯(lián)和依賴的情況,以及類中函數(shù)及屬性的情況計算得知:在0OsD設(shè)計的系統(tǒng)中,屬性耦合DAco0S。:2;而在A0sD設(shè)計的系統(tǒng)中,成員函數(shù)不再包括這些抽象的類,方法對抽象的類的調(diào)用是通過與類相關(guān)的抽象方面實現(xiàn),所以DAc =O.同理,AOsD的PPc(參數(shù)耦合)較O0SD會大幅減少。對于MPC(消息耦合),在AOSD中,類與類之間的直接通信減少了,他們之間的聯(lián)系是通過“方面”來進行。所以,AOsD的MPC將遠低于O0SD.
根據(jù)上述分析結(jié)果,從類的耦合度來看,基于A0SD設(shè)計的類的耦合度遠小于0OSD所設(shè)計的類。
3.5 類的響應(yīng)集合(RFC)對象類的響應(yīng)集合={所有可以被調(diào)用的對消息響應(yīng)的方法的集合}.類的RFc越大,該類測試和調(diào)試將更復(fù)雜,其復(fù)雜度越大。通常,用表示該類的響應(yīng)集合,冗s= 】,(U尺 ), ∈其中, 為該類的方法的集合, 為方法 調(diào)用的方法的集合。
在基于AOSD設(shè)計的類中,因為增加了對等的方面和擴展的方面,可以通過pointcut調(diào)用擴展的類中的方法,這樣激勵做出反應(yīng)的消息個數(shù)將增多,所以, ℃ 惦D>RFCo0sD.此表明,基于AOSD得到的系統(tǒng)的維護性、可理解性降低。
3.6 類內(nèi)聚缺乏度(LCOM)在基于AOSD的設(shè)計中,由于方面的出現(xiàn),將類中的部分方法有效剝離出來,因此無共享實例變量的成員函數(shù)對的個數(shù)出現(xiàn)明顯的降低。刪值越小,表明AOSD設(shè)計的系統(tǒng)類之問內(nèi)聚更大,封裝性較好,可復(fù)用性和效率更高。
綜上所述,可以得出AOSD對軟件質(zhì)量特性的影響。表l表示度量元與其所影響的軟件質(zhì)量特性的關(guān)系。
根據(jù)表1的度量元各指標值以及度量指標與內(nèi)部質(zhì)量關(guān)系可知,基于AOSD的軟件開發(fā)方法提高了軟件的可擴展性、可復(fù)用性,降低了類之間的耦合度,增強了類的內(nèi)聚,但軟件的可測試性、可靠性等有所降低。
4 結(jié)論
由于AOsD技術(shù)還處于發(fā)展的初級階段,至今還沒有一個類似于OOSD那樣成熟的標準。同時,面向?qū)ο缶幾g的特性造成了方面代碼在編織后的效率比理論上有一定的降低。因此,在橫切關(guān)注點較少的軟件架構(gòu)中使用面向方面的設(shè)計方法往往會使得軟件的質(zhì)量特性有所下降,只有在橫切關(guān)注點較多、涉及的面較廣的軟件架構(gòu)中使用面向方面的設(shè)計方法才能使得軟件質(zhì)量特性得到比較明顯的提高。
參考文獻:
[1]Ivar Jacobson.A0sD中文版—— 基于用例的面向方面的軟件開發(fā)[M].北京:電子工業(yè)出版社,2o05.
[2] b}m clarke.面向方面的分析與設(shè)計方法[M].北京:機械工業(yè)出版社。
[3]張玉宏;赨ML的軟件度量工具的實現(xiàn)研究[D].南京:南京航天大學(xué),2()06.
[4]宋維平;诿嫦?qū)ο笙到y(tǒng)的質(zhì)量度量的研究[D].重慶:重慶大學(xué),2oo5.
[5]牛家豪。面向?qū)ο筌浖|(zhì)量度量的研究與應(yīng)用[D].南京:南京航天大學(xué),20o4.
【面向方面的數(shù)字視頻監(jiān)控系統(tǒng)軟件質(zhì)量度量研究與應(yīng)用】相關(guān)文章:
淺談面向云服務(wù)信息安全質(zhì)量評估的度量模型分析論文10-08
SNMP協(xié)議在系統(tǒng)監(jiān)控方面的應(yīng)用10-05
兒科臨床醫(yī)學(xué)質(zhì)量監(jiān)控評價體系的研究論文10-08
電腦監(jiān)控系統(tǒng)軟件銷售合同書10-07
流媒體編碼和應(yīng)用層組播技術(shù)在視頻監(jiān)控系統(tǒng)的應(yīng)用研究報告10-07
質(zhì)量方面的個人總結(jié)02-25
管理系統(tǒng)軟件在旅游教育教學(xué)改革中的應(yīng)用論文10-08