新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 基于面向對象程序切片的軟件度量

        基于面向對象程序切片的軟件度量

        作者: 時間:2018-09-12 來源:網絡 收藏

        的概念是在考慮各個方法、變量之間的依賴關系并在依賴圖的基礎上構造的。舉一個簡單的C++程序對上述公式進行應用,程序如下:

        本文引用地址:http://www.104case.com/article/201809/388955.htm


        所定義的類是Cuboid,它有5個變量,2種方法,V_Uion={a,b,c,A,V},M_Uion={Area,Volume }。
        構造面向依賴圖,利用可達算法得到數據切片如下:


        利用式(1)~(3)進行計算,具體過程如下:
        (1)內聚值是一個3元組,分從屬性之間、方法之間、屬性和方法之間3個層面進行內聚
        (2)DataSliee(L,a)∩V_Uion={a};同樣,DataSliee(L,b)∩V_Uion={b},DataSlice(L,c)∩V_Uion={c},進行勢操作后取值均為1:
        (3)DataSliee(L,V)∩V_Uion={a,b,c},DataSlice(L,A)∩V_Uion={a,b,c},進行勢操作后取值均為3;
        (4)DataSliee(L,A)∩DataSlice(L,V)={a,b,c},進行勢操作后取值為3;
        (5)根據式(4)計算得到:Cohesion(V_V)=(1+1+3+3)/4×5=2x5;
        (6)DataSlie(L,Area)∩M_Uion={Area};同樣,DataSliee(L,Volume)∩M_Uion={Volume},進行勢操作后取值均為1。
        計算得出Cohesion(M_M)=(1+1)/2x1=1。兩個方法之間不存在調用、繼承等關系,它們是獨立的,所以內聚度為1;DataSlice(L,Area)∩DataSlice(L,Volume)∩M_Uion進行勢操作后取值均為1。
        計算得出Cohesion(M_V)=1/5。所以Cuboid的內聚度為一個3元組Cohesion(Cuboid)={Cohesion(V_V),Cohesion(M_M),Cohesion(M_V)}={2/5,1,1/5}。

        5 結束語
        利用技術,將度量粒度縮小到語句級別。而這里的度量粒度更是小到變量級別,在更小的級別上進行度量。基于內聚度和耦合度度量從的基本粒度一變量出發,跳躍了面向過程和面向程序的區別,就其度量方法和公式考慮是沒有局限性的,是普適的。
        一個優良的內聚度度量準則應滿足Briand的4個性質,即非負性及標準化、最小值和最大值、單調性、模塊合并后內聚度不會增大。后續工作就是證明基于面向程序切片的內聚度度量方法符合Brland的4個性質。


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 济南市| 措勤县| 邢台市| 海淀区| 江城| 临潭县| 垫江县| 灵川县| 华安县| 吕梁市| 金川县| 宝清县| 六枝特区| 桃江县| 察雅县| 台中市| 杭州市| 监利县| 柯坪县| 酒泉市| 石河子市| 浦东新区| 平果县| 天门市| 长汀县| 宁波市| 紫阳县| 南木林县| 潼南县| 舞阳县| 和顺县| 五家渠市| 铜梁县| 沛县| 泾阳县| 交城县| 漯河市| 稷山县| 田阳县| 丹巴县| 玛曲县|