《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種優(yōu)化的面向?qū)ο筌浖?fù)雜性度量方法
一種優(yōu)化的面向?qū)ο筌浖?fù)雜性度量方法
來源:微型機與應(yīng)用2013年第21期
謝超超,楊 柳
(中南大學(xué) 軟件學(xué)院,湖南 長沙 410000)
摘要: 首先結(jié)合面向?qū)ο蠹夹g(shù)特性,對面向?qū)ο筌浖惣墑e的CK度量方法和系統(tǒng)級別的MOOD度量方法進行了分析,并就CK度量提出了優(yōu)化的度量方法OCK。然后結(jié)合OCK度量和MOOD度量的優(yōu)點提出了較優(yōu)化的面向?qū)ο筌浖?fù)雜性度量方法OSCM。OSCM度量可以有效地彌補CK度量和MOOD度量的不足,優(yōu)化度量結(jié)果。
Abstract:
Key words :

摘  要: 首先結(jié)合面向?qū)ο?/a>技術(shù)特性,對面向?qū)ο?a class="innerlink" href="http://m.jysgc.com/tags/軟件" title="軟件" target="_blank">軟件類級別的CK度量方法和系統(tǒng)級別的MOOD度量方法進行了分析,并就CK度量提出了優(yōu)化的度量方法OCK。然后結(jié)合OCK度量和MOOD度量的優(yōu)點提出了較優(yōu)化的面向?qū)ο筌浖?fù)雜性度量方法OSCM。OSCM度量可以有效地彌補CK度量和MOOD度量的不足,優(yōu)化度量結(jié)果。
關(guān)鍵詞: 面向?qū)ο螅?a class="innerlink" href="http://m.jysgc.com/tags/軟件度量" title="軟件度量" target="_blank">軟件度量;CK度量;MOOD度量;OCK度量;OSCM度量

 軟件的應(yīng)用領(lǐng)域越來越廣,軟件的質(zhì)量也越來越受到關(guān)注和重視。軟件復(fù)雜性很大程度上影響到軟件質(zhì)量的好壞,其度量是軟件度量的重要方面。隨著面向?qū)ο筌浖夹g(shù)的廣泛應(yīng)用,面向?qū)ο筌浖?fù)雜性度量也顯得尤為重要。面向?qū)ο蠖攘康幕灸繕薣1]和已存在的傳統(tǒng)軟件度量的目標一致:即更好地理解產(chǎn)品的質(zhì)量,評估過程的效果,從而控制開發(fā)過程,以提高軟件質(zhì)量。
 當(dāng)前,已有很多面向?qū)ο筌浖攘糠椒ū惶岢觯⒃诓粩啾或炞C及成熟。這些度量方法包括LK度量[2]、CK度量[3]、Li度量[4]和MOOD度量[5]等。但是這些度量方法依然存在缺陷,需要不斷進行研究和改進,以使這些度量更易于應(yīng)用,從而更好地指導(dǎo)面向?qū)ο筌浖脑O(shè)計、開發(fā),提高軟件質(zhì)量[6]。
 本文分析了針對類層面的CK度量和針對系統(tǒng)層面的MOOD度量。這兩種度量都只是分散地針對軟件的某一個特定層面進行,在實際應(yīng)用過程中,難以讓人們同時綜合類與類之間關(guān)系和系統(tǒng)級別這兩個層次的度量,致使無法更加系統(tǒng)全面地掌握軟件系統(tǒng)的復(fù)雜度。因此本文在分析CK度量和MOOD度量的基礎(chǔ)上,對CK度量進行改進,提出優(yōu)化的度量方法OCK(Optimized CK),并與MOOD度量相結(jié)合,提出了一個較為優(yōu)化的面向?qū)ο筌浖?fù)雜性度量方法OSCM(Optimized Software Complexity Metrics),以方便人們更快捷、有效地分析面向?qū)ο筌浖到y(tǒng)的復(fù)雜度。
1 面向?qū)ο筌浖攘糠椒?/strong>
 自20世紀90年代以來,面向?qū)ο蠹夹g(shù)興起并被廣泛應(yīng)用起來,人們逐漸開始研究有關(guān)面向?qū)ο筌浖亩攘縖7]。不斷有面向?qū)ο筌浖攘糠椒ū惶岢觯壳爸饕拿嫦驅(qū)ο筌浖攘糠椒ㄓ校篖K度量、CK度量、Li度量以及MOOD度量等。本文介紹面向?qū)ο筌浖?fù)雜性度量:CK度量和MOOD度量。
1.1 CK度量
 Chidamber和Kemerer等人于1994年提出的CK度量[3],是目前使用最為廣泛的度量體系之一,是面向?qū)ο筌浖惣墑e度量方法,其中包括6條適用于面向?qū)ο笤O(shè)計的度量準則[8]。
 (1)每類加權(quán)方法數(shù)WMC(Weighted Method per Class)。WMC是一個類方法復(fù)雜度的加權(quán)總和。類WMC越大,對子類的可能影響越大,但其通用性和可復(fù)用性越差。
 (2)繼承樹深度DIT(Depth of Inheritance Tree)。DIT指從本類節(jié)點到根節(jié)點的繼承樹中路徑的最大深度,根節(jié)點值為0,以下各級依次遞增。DIT值越大,則其可能繼承方法數(shù)越多,復(fù)用程度越高,但預(yù)測其行為將更困難,同時設(shè)計越復(fù)雜。
 (3)每類孩子數(shù)NoC(Number of Children)。NOC是繼承樹中一個類的直接孩子數(shù)。NOC越大,重用性越好,但其父類抽象性減弱,測試越困難。
 (4)對象類之間耦合度CBO(Coupling Between Object Classes)。一個類的CBO指的是和其有耦合關(guān)系的類的數(shù)目。CBO越大,則類的可重用性越弱,且修改和測試越復(fù)雜。
 (5)類響應(yīng)RFC(Response For a Class)。RFC是本類方法數(shù)加上被本類方法調(diào)用的方法的個數(shù)總和。RFC越大,類越復(fù)雜,且對該類進行測試和調(diào)試也越困難。
 (6)方法內(nèi)聚缺乏度LCOM(Lack of Cohesion in Methods)。LCOM是相似度為零的方法對數(shù)量減去相似度不為零的方法對數(shù)量,相似度是兩個方法訪問相同屬性的程度。類的LCOM越大,方法內(nèi)聚度越弱,則類可以分解為兩個或更多的子類。
1.2 MOOD度量
 MOOD度量是另一個著名的度量體系,是由Abreu等人于1994年針對軟件系統(tǒng)層次提出的[5]。MOOD度量從面向?qū)ο蟮姆庋b性、繼承性、耦合性和多態(tài)性4個方面給出面向?qū)ο筌浖?個度量指標。
 (1)封裝性度量。封裝性由類中的屬性和方法實現(xiàn),因此封裝性通過屬性隱藏因子AHF(Attribute Hiding Factor)和方法隱藏因子MHF(Method Hiding Factor)表示系統(tǒng)中所有類的屬性和方法的隱藏程度。隱藏因子的值越大,系統(tǒng)中信息隱藏得越好。
 (2)繼承性度量。繼承性通過屬性繼承因子AIF(Attribute Inheritance Factor)和方法繼承因子MIF(Method Inheritance Factor)表示系統(tǒng)中所有類的屬性和方法的繼承程度。繼承因子的值越大,系統(tǒng)中信息繼承的程度越高。
 (3)耦合性度量。耦合性通過耦合因子CF(Coupling Factor)表示系統(tǒng)中所有類之間的耦合程度,但不將繼承關(guān)系考慮進去。CF越大,類之間耦合越頻繁。
 (4)多態(tài)性度量。多態(tài)性通過多態(tài)因子PF(Polymorphism Factor)表示系統(tǒng)中所有類方法使用多態(tài)機制的程度。
2 面向?qū)ο筌浖?fù)雜性度量方法
 面向?qū)ο筌浖?fù)雜性度量方法雖已得到發(fā)展和完善,但依舊存在一定的缺陷。首先分析CK度量的不足,并在CK度量的基礎(chǔ)上提出改進的度量方法OCK。然后結(jié)合OCK度量和MOOD度量的優(yōu)點從而提出較為優(yōu)化的面向?qū)ο筌浖?fù)雜性度量OSCM。
2.1 CK度量的分析與改進
 (1)WMC只考慮方法成員,沒有考慮屬性成員對類復(fù)雜性的影響[9],也沒有根據(jù)類成員可見性的不同區(qū)別看待各成員對類復(fù)雜性的影響,類公有成員,保護成員和私有成員各自對類復(fù)雜性影響程度大小不同。因此,在WMC的基礎(chǔ)上提出類的復(fù)雜性CPC(Complexity Per Class)度量指標。

 (4)CBO只是計算和本類耦合的類的數(shù)目,沒有對不同類型耦合的強度進行區(qū)分,而是假設(shè)所有的耦合關(guān)系強度是相同的,而且忽略了最強的耦合關(guān)系即繼承耦合。為了考慮到不同的耦合關(guān)系,包括關(guān)聯(lián)、繼承和實現(xiàn)耦合,提出了類型間所有耦合ACBT(All Coupling Between Type)度量指標。
 定義 ACBT=aNAC+bNIC+cNRC
 式中a、b、c為調(diào)節(jié)因子,是度量實踐中獲取的經(jīng)驗值,可反映出關(guān)聯(lián)耦合、繼承耦合和實現(xiàn)耦合在ACBT計算中的權(quán)值。關(guān)聯(lián)耦合數(shù)NAC(Number of Association Coupling)是系統(tǒng)中所有被本類關(guān)聯(lián)的類型(類或接口)的數(shù)目,繼承耦合數(shù)NIC(Number of Inheritance Coupling)是系統(tǒng)中類型(類或接口)所繼承的所有類型(類或接口)的數(shù)目,實現(xiàn)耦合數(shù)NRC(Number of Realization Coupling)是系統(tǒng)中本類所實現(xiàn)的所有接口的數(shù)目。ACBT越大,類的可重用性可能越弱。
 (5)RFC沒有考慮本類方法和被本類方法調(diào)用的方法分別對類復(fù)雜性的影響程度,只是簡單地計算它們的總和。因此,提出類加權(quán)響應(yīng)WRFC(Weighted Response For a Class)度量指標。
定義 WRFC=aNMC+bNCMC
式中a、b為調(diào)節(jié)因子,是度量實踐中獲取的經(jīng)驗值,可表現(xiàn)出本類方法和被本類方法調(diào)用的方法對類加權(quán)響應(yīng)值的影響程度的大小。NMC(Number of Methods a Class)是本類方法數(shù),NCMC(Number of Called Methods a Class)是被本類方法調(diào)用的方法數(shù)。
 (6)LCOM存在一定的缺陷,沒有將類的實例變量數(shù)計算進來,但實際上類的實例變量數(shù)對類內(nèi)聚性有一定的影響。假設(shè)一個類的LCOM較小,甚至為0,根據(jù)CK可以推斷出該類具有較好的內(nèi)聚性,但實際上可能因為該類擁有大量的實例變量,所以其內(nèi)聚性及封裝性不容樂觀。因此,在LCOM的基礎(chǔ)上提出類內(nèi)聚缺乏度LCOC(Lack of Cohesion in Class)度量指標。

 根據(jù)上述對CK度量方法的分析與改進,提出優(yōu)化的CK度量方法OCK,其包括CPC、CMIT、NOAC、ACBT、WRFC、LCOC等6個相對應(yīng)的度量指標,每個度量指標針對性地彌補每點缺陷。例如,采用OCK度量的CPC能綜合考慮一個類的屬性和方法以及不同可見性成員對該類復(fù)雜性的影響;CMIT度量指標解決了多重繼承的度量問題,消除歧義;NOAC值涵蓋了一個類的所有子孫;ACBT依據(jù)耦合類型的不同分配不同的權(quán)值從而度量類的耦合性等等。
2.2 面向?qū)ο筌浖?fù)雜性度量方法OSCM
 OCK度量方法雖在CK度量的基礎(chǔ)上進行了改進,但仍存在一些缺陷。首先OCK度量沒有對多態(tài)性進行度量,多態(tài)對整個系統(tǒng)的復(fù)雜性有很大影響;其次OCK與CK度量一樣主要是針對類層面,在系統(tǒng)層面沒有很好的度量指標。MOOD度量也存在一定的不足。比如,MOOD度量沒有對類方法和屬性以及類之間的關(guān)系進行研究,也沒有完整定義抽象性和復(fù)雜性[10]。
 此外,繼承性和耦合性也是面向?qū)ο蟮幕咎匦裕瑢④浖悓用婧拖到y(tǒng)層面的繼承性、耦合性度量結(jié)合起來可以更好地反映軟件整體的復(fù)雜度。但單獨的OCK度量和MOOD度量都只考慮了繼承和耦合的單個方面的復(fù)雜性,不能可靠地對軟件進行整體評價。因此針對這兩種度量方法進行改進,補充每個度量方法缺少的方面,從而提出新的面向?qū)ο筌浖?fù)雜性度量方法OSCM如下,與OCK度量和MOOD度量的比較如表1所示。

 度量1 使用CPC度量指標對類復(fù)雜性進行度量。
 度量2 使用AIF,MIF,CMIT和NOAC等4個度量指標對繼承性進行度量。既有對系統(tǒng)級別繼承性的度量,又有對類級別繼承性的度量。
 度量3 使用AHF,MHF和LCOC等3個度量指標對封裝性進行度量。既有對系統(tǒng)級別封裝性的度量又有對類級別封裝性的度量。
 度量4 使用PF度量指標對多態(tài)性進行度量。
 度量5 使用CF,ACBT和WRFC等3個度量指標對耦合性進行度量。CF的度量粒度不夠細[6],加上類級別的ACBT和WRFC就能更好得衡量整體耦合性。
 上述5條度量法則即為改進提出的OSCM度量方法。OSCM度量綜合考慮了OCK度量和MOOD度量的優(yōu)缺點,可同時針對軟件類級別和系統(tǒng)級別進行度量,有效地彌補CK度量和MOOD度量的不足。
本文在CK度量和MOOD度量的基礎(chǔ)上,對CK度量進行改進完善,提出OCK度量方法。再集成OCK度量和MOOD度量的優(yōu)點,提出面向?qū)ο筌浖?fù)雜性度量OSCM。OSCM可較全面、可靠地對面向?qū)ο筌浖?fù)雜性進行度量,優(yōu)化度量結(jié)果。
參考文獻
[1] PRESSMAN R S.軟件工程實踐者的研究方法[M].梅宏譯.北京:機械工業(yè)出版社,2002.
[2] LORENZ M, KIDD J. Object-Oriented Software Metrics: A Practical Guide[M]. New Jersey: Prentice-Hall,1994.
[3] CHIDAMBER S R, KEMERER C F. A metrics suite for object oriented design[J]. IEEE Transaction on Software Engineering, 1994,20(6):476-493.
[4] Li Wei. Another metric suite for object-oriented programming[J]. Journal of Systems and Software, 1998,44(2): 155-162.
[5] ABREU F B. MOOD-metrics for object-oriented design[C]. Proc of the 9th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications. New York:ACM Press,1994.
[6] 張偉.面向?qū)ο筌浖?fù)雜性度量研究[D].武漢:武漢理工大學(xué),2007.
[7] 吳光金.面向?qū)ο筌浖?fù)雜性度量方法的研究[D].重慶:重慶大學(xué),2008.
[8] 倫立軍,丁雪梅,李英梅.面向?qū)ο筌浖攘考夹g(shù)研究[J].計算機應(yīng)用研究,2002,19(12):40-42.
[9] 馬志新,徐德啟,杜偉杰.面向?qū)ο筌浖攘緾&K方法的研究與改進[J].電子科技大學(xué)學(xué)報,2006,35(3):396-398.
[10] 李大鵬,郭平,陳新宇.一種集成類層次和系統(tǒng)層次的面向?qū)ο筌浖?fù)雜性度量集[J].計算機研究與發(fā)展(增刊),2010,47:237-242.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品72免费观看| 亚洲免费在线电影| 亚洲精品极品| 狠狠狠色丁香婷婷综合激情| 国产精品久久77777| 欧美激情综合在线| 美女亚洲精品| 久久男人资源视频| 欧美一区综合| 羞羞漫画18久久大片| 国产精品99久久久久久宅男| 亚洲裸体俱乐部裸体舞表演av| 久久av红桃一区二区小说| 亚洲欧美中文字幕| 亚洲欧美日韩天堂| 中国亚洲黄色| 亚洲大片av| 伊人久久男人天堂| 亚洲第一在线| 亚洲高清二区| 亚洲激情网址| 亚洲日本欧美日韩高观看| 亚洲国产1区| 91久久精品日日躁夜夜躁国产| 在线观看一区视频| 亚洲高清免费| 亚洲国内精品| 日韩视频在线观看一区二区| 日韩午夜在线视频| 在线亚洲一区二区| 亚洲自拍啪啪| 亚洲欧美一区二区三区久久 | 欧美在线观看你懂的| 亚洲片国产一区一级在线观看| 91久久中文| 99视频精品全部免费在线| 一区二区三区四区五区在线| 一区二区三区**美女毛片| 亚洲一级黄色av| 性伦欧美刺激片在线观看| 欧美有码在线视频| 亚洲国产小视频| 亚洲精品一区在线观看香蕉| 中文精品一区二区三区| 亚洲欧美日韩国产综合在线 | 亚洲国产成人精品久久| 亚洲精品在线看| 亚洲视频axxx| 午夜欧美精品| 亚洲日本欧美天堂| 亚洲视频在线观看三级| 欧美亚洲免费在线| 久久综合九九| 欧美日韩在线综合| 国产日韩欧美不卡在线| 激情小说亚洲一区| 99精品热6080yy久久| 亚洲尤物精选| 亚洲国产精品一区二区久| 日韩亚洲国产欧美| 性色一区二区| 欧美sm极限捆绑bd| 国产精品v片在线观看不卡| 国产日韩精品一区二区| 亚洲高清在线观看| 亚洲影院色无极综合| 亚洲二区视频在线| 在线一区二区三区四区| 久久久久久久综合| 欧美日韩国产片| 国产日韩1区| 日韩亚洲欧美在线观看| 亚洲欧美日韩国产综合| 亚洲精品久久7777| 欧美一区二区三区在线看| 欧美成人免费全部观看天天性色| 欧美另类高清视频在线| 国产伦精品一区二区三区四区免费| 亚洲福利在线视频| 一区二区三区精品国产| 久久精品国产亚洲精品| 亚洲一区二区三区精品在线观看| 久久中文字幕一区| 国产精品福利在线观看| 樱桃成人精品视频在线播放| 中文av一区特黄| 亚洲欧洲一区二区天堂久久| 欧美一级视频一区二区| 欧美好吊妞视频| 国产一区二区三区四区三区四 | 亚洲无限av看| 美国十次成人| 国产欧美一区二区三区另类精品| 亚洲黄色免费| 久久精品视频免费观看| 午夜一区不卡| 欧美日韩亚洲91| 亚洲国产经典视频| 欧美一区免费| 午夜老司机精品| 欧美日韩精品久久久| 亚洲成色777777在线观看影院| 午夜国产一区| 亚洲在线日韩| 欧美人与禽性xxxxx杂性| 激情欧美一区二区| 欧美一区二区性| 久久精品国产v日韩v亚洲 | 国产在线播精品第三| 亚洲专区在线视频| 亚洲欧美日产图| 欧美午夜精品久久久久久浪潮| 亚洲欧洲三级电影| 亚洲精品综合精品自拍| 免费视频最近日韩| 好吊妞这里只有精品| 午夜日韩在线| 欧美中文字幕第一页| 国产日韩欧美成人| 欧美一区二区三区啪啪| 欧美在线三区| 国模吧视频一区| 久久精品欧洲| 久久免费视频这里只有精品| 国产一二精品视频| 欧美一区二区三区在线看| 欧美在线日韩| 国产亚洲精品久久久久婷婷瑜伽| 亚洲曰本av电影| 亚洲欧美视频| 国产女主播一区二区| 亚洲一区二区在线免费观看视频| 一本色道精品久久一区二区三区| 欧美高清视频在线 | 午夜国产一区| 午夜欧美电影在线观看| 欧美日韩国语| 亚洲视频中文| 亚洲伊人第一页| 国产精品国产一区二区| 一区二区三区精品视频| 日韩一二在线观看| 欧美午夜不卡视频| 日韩视频精品在线| 在线亚洲欧美| 欧美午夜无遮挡| 夜夜精品视频一区二区| 亚洲女女女同性video| 欧美偷拍另类| 99日韩精品| 亚洲综合三区| 国产精品国产三级国产专播精品人| 亚洲一区二区三区在线视频| 亚洲女性裸体视频| 国产精品伦一区| 亚洲免费一在线| 欧美一级视频免费在线观看| 欧美国产在线观看| 一二三区精品福利视频| 亚洲性夜色噜噜噜7777| 国产精品v欧美精品∨日韩| 亚洲调教视频在线观看| 午夜在线电影亚洲一区| 在线成人小视频| 日韩视频二区| 国产精品高潮视频| 欧美亚洲自偷自偷| 久久乐国产精品| 亚洲国产精品热久久| 日韩一级大片| 国产精品久久夜| 久久av最新网址| 欧美性生交xxxxx久久久| 亚洲在线观看免费视频| 欧美与黑人午夜性猛交久久久| 国产日韩精品综合网站| 欧美一区二区三区婷婷月色| 欧美激情视频在线免费观看 欧美视频免费一 | 一区二区三区在线观看国产| 亚洲精品国产精品国自产观看浪潮 | 国产亚洲一级高清| 亚洲国产另类精品专区| 欧美—级a级欧美特级ar全黄| 亚洲一区二区日本| 久久久久亚洲综合| 亚洲大片一区二区三区| 制服丝袜激情欧洲亚洲| 国产精品一区久久| 99av国产精品欲麻豆| 国产精品美女一区二区| 久久超碰97中文字幕| 欧美极品在线播放| 亚洲欧美中文日韩v在线观看| 美脚丝袜一区二区三区在线观看| 亚洲美女av电影| 久久久久这里只有精品| 亚洲日本一区二区| 欧美在线资源| 欧美性淫爽ww久久久久无| 久久成人国产|