国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于調(diào)用環(huán)境樹的軟件度量研究

2014-08-24 09:00:47王鳳琴
關(guān)鍵詞:類間結(jié)點調(diào)用

王鳳琴

(湖北師范學(xué)院 物理與電子科學(xué)學(xué)院, 湖北 黃石 435002)

基于調(diào)用環(huán)境樹的軟件度量研究

王鳳琴

(湖北師范學(xué)院 物理與電子科學(xué)學(xué)院, 湖北 黃石 435002)

通過對調(diào)用環(huán)境樹的擴展,并針對方法的類內(nèi)和類間度量,在提出新的度量公式的基礎(chǔ)上,證明了相關(guān)的度量可行性需滿足的性質(zhì)。

調(diào)用環(huán)境樹;方法度量;軟件度量

0 前言

軟件度量是一個研究非?;钴S的領(lǐng)域。Stevens提出了面向過程開發(fā)領(lǐng)域中的聚合,指出聚合為一個模塊的元素屬于另外一個模塊的度量值。Eder[1]提供了一個以高聚合為目標的框架,并提出了可理解的面向?qū)ο笙到y(tǒng)的聚合標準。他們采用已有的基于過程的和基于對象的度量框架,區(qū)分了面向?qū)ο蟮娜N類型聚合:方法,類和繼承聚合。Chidamber和Kemerer[2,3]定義相似為共同的屬性集合,并以此來定義類的聚合為它的方法的相似度。方法集合M的相似度是所有屬性中的共同被使用的屬性的數(shù)量。

1 基于擴展調(diào)用環(huán)境樹的方法聚合度量

Atanas Rountev[4]認為調(diào)用環(huán)境樹是方法體中方法互相調(diào)用的上下文。本文在此基礎(chǔ)上進行了擴展:1)增加“方法的所屬類”關(guān)系進而對類進行相關(guān)度量;2)擴展注釋信息以加強程序理解;3)增加方法調(diào)用線性鏈以進行更精確的度量。擴展調(diào)用環(huán)境樹考慮系統(tǒng)中類的方法之間的消息傳遞關(guān)系,是一種可以加強程序理解的可視化圖形。它既顯現(xiàn)出同一個類中方法之間的調(diào)用關(guān)系,也顯現(xiàn)出不同類的方法之間的調(diào)用。擴展調(diào)用環(huán)境樹的形式定義:

定義1 擴展調(diào)用環(huán)境樹是一個帶根星型總線圖G=(root,V,E,Order).其中:root是系統(tǒng)的入口方法。V表示結(jié)點集合。V=(header,comment),結(jié)點包括頭信息header和注釋comment.頭信息中定義了消息傳遞格式style.E表示邊的集合,可以看作調(diào)用方和被調(diào)用方的偏序關(guān)系,E=,callout表示調(diào)用結(jié)點,callin表示被調(diào)用結(jié)點。Order是一個簡單的整數(shù),表示一個非葉子結(jié)點中的調(diào)用順序。

定義2 header=style1∨style2∨style3∨style4。 “∨ ”表示析取關(guān)系。style1=方法名M(參數(shù)列表) in 類對象名C,表示類C中的結(jié)點所表示的方法/模塊M.style2=方法名M(參數(shù)列表) in style1.Style3=方法名M(參數(shù)列表) in 類對象名C:對象名V;表示賦值語句。sytle4=style3 of[返回類型],返回類型是style3中的對象名V的返回類型。

定義3 總線結(jié)構(gòu),有兩種情況采用總線結(jié)構(gòu),第一種情況是共享數(shù)據(jù)依賴,兩個方法中引用相同的參數(shù)或者全局變量。第二種情況是方法調(diào)用依賴。記為:DirectlylineStructure(V)表示直接相連方法鏈,結(jié)點在整個系統(tǒng)中引出的線性結(jié)構(gòu)記為lineStructure(V).顯然DirectlylineStructure(V) ?lineStructure(V).

定義4 星型結(jié)構(gòu):星型和總線是圖的拓撲結(jié)構(gòu),是方法的無相關(guān)調(diào)用關(guān)系。記為:starStructure(V).

定義5 類內(nèi)鏈出度數(shù):?vi∈V,vi∈linStructure.V記number(ei|vi→vi+1)(inClass)表示在結(jié)點vi所引出的鏈中直接關(guān)聯(lián)并在同一個類中的結(jié)點連接的邊的個數(shù)。

定義6 類內(nèi)出度數(shù):?vi∈V,記number( ei|vi→vi+1)(DirectlyinClass)表示結(jié)點vi所引出的邊中兩個在同一個類中的結(jié)點直接連接的邊的個數(shù)。

定義7 類外出度數(shù):?vi∈V,記number(ei|vi→vi+1)(DirectlyoutClass)表示結(jié)點vi所引出的邊中兩個不在同一個類中的結(jié)點直接連接的邊的個數(shù)。

定義8 結(jié)點鏈層數(shù):

|lineStructure|(layer)=number(ei|vi→vi+1)(inClass)+number(ei|vi→vi+1)(outClass)

定義9 相關(guān)節(jié)點個數(shù):鏈上所有節(jié)點之和|M|,在圖中顯示為從特定節(jié)點所能到達的所有節(jié)點之和。為|M|=number(ei:callout):(vi)+|lineStructure|(layer)

定義10 度量公式:

類內(nèi)直接連接方法的相對數(shù)(類內(nèi)緊密類內(nèi)聚度):

類內(nèi)直接或者間接連接方法的相對數(shù)(類內(nèi)松散類內(nèi)聚度):

類間直接連接方法的相對數(shù)(類間緊密類內(nèi)聚度):

類間直接或者間接連接方法的相對數(shù)(類間松散類內(nèi)聚度):

2 相關(guān)性質(zhì)證明

本節(jié)中給出在文獻[5]中所描述的聚合度量應(yīng)該滿足的性質(zhì)(非負和正規(guī)性,空值和最大值,單調(diào)性,無關(guān)結(jié)點聯(lián)合)的證明。

性質(zhì)1 非負和正規(guī)性:度量值都在[0.0..1.0]區(qū)間范圍之內(nèi)。

證明 從度量公式中可以看出,公式的分子小于分母,因此,此結(jié)論成立。

性質(zhì)2 空值和最大值:如果關(guān)聯(lián)為空,聚合值為0,最大關(guān)聯(lián)時聚合值為最大。

證明 沒有關(guān)聯(lián),度量值為0(根據(jù)聚合公式)。當所有的關(guān)聯(lián)都表示要度量的聚合時,聚合值為最大,值為1.

下面的x表示對應(yīng)公式分子,y表示對應(yīng)公式的分母,z表示引出的線性個數(shù)。

性質(zhì)3 單調(diào)性:從一個類中,移除關(guān)聯(lián)應(yīng)該比沒有移去之前更少類內(nèi)聚合。

性質(zhì)4 單調(diào)性:增加關(guān)聯(lián)后比沒有增加關(guān)聯(lián)之前更多的聚合。

性質(zhì)5 無關(guān)結(jié)點聯(lián)合:合并無關(guān)結(jié)點后,得到的聚合度量值不會增加。

證明 采用數(shù)學(xué)歸納法,只需證明合并兩個結(jié)點的情況。再使用窮舉法,分為下列幾種情況:第一是當合并的結(jié)點都為葉子結(jié)點時,由于合并前后的度量值都為0,也就是說合并后的聚合度量值沒有增加;第二種情況時合并的結(jié)點都為孤立結(jié)點,合并前后的度量值也為0;第三種情況是合并的結(jié)點之一為葉子結(jié)點或者為孤立結(jié)點,由于葉子結(jié)點和孤立結(jié)點沒有分支,度量的結(jié)果為非葉子結(jié)點的度量值;第四種情況是合并的結(jié)點都是非葉子結(jié)點,此時也就證明如下不等式:

注意:上面的不等式同時取等號的情況是:y1≥1∧y2≥1 ∧(z1=0∨z2=0)這是由于分母不為0,因此就不能取等號。取等號的情況是上面討論的三種情況。

性質(zhì)6 兩個類或者方法除非完全相同,采用相同的度量產(chǎn)生的度量值可能相同。

證明 有兩種情況:第一種情況是:由于本文的度量是基于方法間的消息傳遞而產(chǎn)生的調(diào)用環(huán)境圖,如果由兩個結(jié)點產(chǎn)生的圖形是同態(tài)的,也就是說,這兩個結(jié)點的消息傳遞關(guān)系在數(shù)值上會產(chǎn)生相同的值。從而會產(chǎn)生相同的值,但是這也可以說:它們之間有相同的聚合/耦合度量。第二種情況是:考察的兩個結(jié)點的度量公式的分子分母的比值相同,此時應(yīng)該借助經(jīng)驗系統(tǒng)來判斷。

性質(zhì)7 對于關(guān)聯(lián)的重新排列,緊密類聚合不變。

證明 邊的計數(shù)是決定什么測量,邊的數(shù)值沒有變化,由度量公式可以看出,此結(jié)論是正確的。

性質(zhì)8LCC對應(yīng)的關(guān)系是相應(yīng)于TCC對應(yīng)的關(guān)系的傳遞閉包(LCCic和LCCoc相應(yīng),TCCoc和TCCic相應(yīng))。

證明 設(shè)(mi,mj) 和(mj,mk) 是類內(nèi)直接調(diào)用關(guān)系,由圖的出度和入度可以看出(mi,mk) 也存在于類內(nèi)間接調(diào)用關(guān)系的集合中。因此,由傳遞閉包的定義,LCCic是相應(yīng)于TCCic的傳遞閉包;同理可以證明:LCCoc是相應(yīng)于TCCoc的傳遞閉包。

3 實例

圖1是一個簡單的程序產(chǎn)生的調(diào)用環(huán)境圖和相應(yīng)的度量值,限于篇幅關(guān)系,本節(jié)略去了相應(yīng)的程序。從表1中可以看出:h1()的TCCic>TCCoc,且LCCic>LCCoc,h1()中很好的滿足面向?qū)ο蟮母呔酆咸匦?,因為h1()中調(diào)用的方法基本上和h1()同屬相同的類里。但是對于g2()方法,其TCCicTCCoc,它存在某些壞味道,需要進行重構(gòu),因為g2基本上只是調(diào)用了其它類的方法,它更適合放到其它類里面。

4 總結(jié)與展望

本文分析了當前在逆向工程領(lǐng)域和聚合度量領(lǐng)域的研究現(xiàn)狀,對方法度量提出了新的度量公式,但是存在如下問題未解決1)沒有進行方法交互的分類;2)方法交互的潛在線性相關(guān)關(guān)系,這將作為本文的后期工作。

圖1 產(chǎn)生的調(diào)用環(huán)境圖

表1 方法的類間和類內(nèi)度量值

[1]Eder J,Kappel G,Schrefl M.Coupleing and Cohesion in Object-Oriented Systems[R]. Technical Report,University of Klagenfurt,1994.

[2]Chidamber S R,Kemerer C F. Towards a Metrics Suit for Object Oriented design[C]. In Proc.Conference on Object Oriented Programming:System,Languages and Applications(OOPSLA'91), SIGPLAN Notices,1991, 26(11),197~211.

[3]Chidamber S R,Kemerer C F.A Metric Suit for Object-Oriented design[J]. IEEE Transactions on Software Engineering,1994, 20(6):476~493.

[4]Atanas Rountev, Scott Kagan, Michael Gibas.Static and Dynamic Analysis of Call Chains in Java[C].ISSTA'04, July 11~14, 2004, Boston, Massachusetts, USA ACM.

[5]Lieberherr K J,Xiao C.Formal Foundation for Object-Oriented Data Modeling[J].in IEEE Transactions on knowledge and Data Engineering,1993,5:462~478.

Softwaremetricsbasedoncall-contexttree

WANG Feng-qin

(College of Physics and Electronic Science,Hubei Normal University,Huangshi 435002,China)

To extend the Call Context Tree, and to measure the coherency between the in classes and outer classes, based on the new measure formulas, this paper prove the properties which need to satisfy the feasibility of software measure.

call context tree; method measure; software measure

2013—12—10

湖北師范學(xué)院青年項目

王鳳琴(1979— ),女,甘肅渭源人,碩士,講師,研究方向為數(shù)字圖像處理、軟件度量、分布式程序設(shè)計、大數(shù)據(jù)算法分析.

TP311.5

A

1009-2714(2014)02- 0001- 04

10.3969/j.issn.1009-2714.2014.02.001

猜你喜歡
類間結(jié)點調(diào)用
基于OTSU改進的布匹檢測算法研究
基于貝葉斯估計的多類間方差目標提取*
核電項目物項調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于類間相對均勻性的紙張表面缺陷檢測
Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點個數(shù)估計
基于改進最大類間方差法的手勢分割方法研究
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
基于Raspberry PI為結(jié)點的天氣云測量網(wǎng)絡(luò)實現(xiàn)
利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
广宗县| 宾阳县| 澳门| 曲沃县| 汉川市| 新宁县| 瑞金市| 博野县| 自贡市| 林州市| 南丰县| 宁蒗| 瑞金市| 永仁县| 永济市| 淮安市| 监利县| 阿坝| 长治县| 普兰店市| 自贡市| 南雄市| 安徽省| 鄂伦春自治旗| 长泰县| 齐齐哈尔市| 上犹县| 呼和浩特市| 阜宁县| 柯坪县| 凤凰县| 明溪县| 武威市| 昂仁县| 绥中县| 新龙县| 长子县| 田阳县| 若羌县| 临汾市| 巴马|