lyyb2001

          只是為方便自己找記錄而已
          posts - 57, comments - 27, trackbacks - 0, articles - 5
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理

          JDepend學習

          Posted on 2015-03-20 09:40 skycity 閱讀(219) 評論(0)  編輯  收藏 所屬分類: J2EE技術J2SE技術
          JDepend 一個開放源代碼的可以用來評價Java程序質量的優秀工具,它遍歷Java class的文件目錄,以Java包(package)為單位,為每一個包/類自動生成 包的依賴程度,穩定性,可靠度等的評價報告,根據這些報告,我們可以得到包或類之間的依賴關系,并分析出包的穩定程度,抽象程度,是否存在循環依賴關系 等。
          我們可以根據JDepend給出的報告數據,分析出我們的包是否是可靠的,穩定的,健壯的包,是否符合面向對象的設計原則。
          JDepend 一個開放源代碼的可以用來評價Java程序質量的優秀工具,它遍歷Java class的文件目錄,以Java包(package)為單位,為每一個包/類自動生成 包的依賴程度,穩定性,可靠度等的評價報告,根據這些報告,我們可以得到包或類之間的依賴關系,并分析出包的穩定程度,抽象程度,是否存在循環依賴關系 等。
          我們可以根據JDepend給出的報告數據,分析出我們的包是否是可靠的,穩定的,健壯的包,是否符合面向對象的設計原則。
          一個具有穩定性,擴展性,可維護性的軟件系統要求系統設計遵循面向對象的設計原則。一般來說,面向對象的設計原則要求滿足高聚合,低耦合,禁止循環依賴等基本原則。
          JDepend生成的Java包的質量評價報告主要包括:
          Number of Classes and Interfaces(TC):實現類與抽象接口的數目
          CC:包內具體的實現類的數目
          AC:包內抽象類和接口類的數目
          Abstractness (A):包的抽象度。指一個包內包含的抽象類或接口占整個包中的類的比重。即A=AC/TC,該值處于0,1之間,若A=0,說明包內不包含任何抽象類或接口;若A=1,說明包內全部是抽象類或接口。
          Efferent Couplings (Ce):離心耦合。被該包依賴的外部包的數目(i.e. outgoing dependencies),該數值越大,說明該包越不獨立(因為依賴了別的包),也越不穩定。
          Afferent Couplings (Ca):向心耦合。依賴該包(包含的類)的外部包(類)的數目(i.e. incoming dependencies),該數值越大,說明該包的擔當的職責越大,也就越穩定。
          Instability (I):衡量一個包的不穩定程度。I=Ce/(Ce+Ca)。它的值處于[0,1]之間。I=0時,沒有依賴外部包,此時包是最穩定的,反之I=1,沒有外部依賴“我”,則說明包極不穩定。
          Distance from the Main Sequence (D): 該指標主要用來評價包的抽象程度與穩定程度的平衡關系,它可以用二維直線圖 A + I = 1 來表示。D=abs((A + I) - 1),也就是說D為 一個包的抽象度 + 包的不穩定程度 - 1 的絕對值。一個理想的包是:完全抽象的(A=1,I=0),非常穩定的(I=0),這時D=0;或者是:完全具體類構成的包(A=0,I=1),非常不穩定的 (I=1),這時同樣也有D=0。D=0說明包的抽象程度與穩定程度是平衡的,反之D=1說明包的平衡程度被嚴重破壞。D值越大,越需要受到關注。                                       
          面向的設計原則之一The Stable Abstractions Principle (SAP):穩定抽象等價原則指出了包的穩定程度與它的抽象程度(接口的數目)成正比,也就是說,一個包內包含的接口所占的比重越大,這個包就越穩定。


          Lyyb2001
          主站蜘蛛池模板: 萨嘎县| 克拉玛依市| 大余县| 通城县| 陈巴尔虎旗| 建水县| 花莲市| 怀柔区| 利津县| 石家庄市| 古丈县| 鄄城县| 石楼县| 普安县| 武鸣县| 通州区| 枝江市| 阿拉善右旗| 花莲县| 上杭县| 噶尔县| 法库县| 雷波县| 大埔区| 芦溪县| 枣阳市| 曲靖市| 富川| 麻城市| 夹江县| 蒲城县| 韩城市| 阿克| 沙雅县| 北川| 广南县| 罗甸县| 衡东县| 绥滨县| 西藏| 封开县|