<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JDependJava 代碼質(zhì)量評價

          聯(lián)合創(chuàng)作 · 2023-10-01 21:20

          JDepend一個開放源代碼的可以用來評價Java程序質(zhì)量的優(yōu)秀工具,它遍歷Java class的文件目錄,以Java包(package)為單位,為每一個包/類自動生成 包的依賴程度,穩(wěn)定性,可靠度等的評價報告,根據(jù)這些報告,我們可以得到包或類之間的依賴關(guān)系,并分析出包的穩(wěn)定程度,抽象程度,是否存在循環(huán)依耐關(guān)系 等。

          我們可以根據(jù)JDepend給出的報告數(shù)據(jù),分析出我們的包是否是可靠的,穩(wěn)定的,健壯的包,是否符合面向?qū)ο蟮脑O(shè)計原則。

          一個具有穩(wěn)定性,擴展性,可維護性的軟件系統(tǒng)要求系統(tǒng)設(shè)計遵循面向?qū)ο蟮脑O(shè)計原則。一般來說,面向?qū)ο蟮脑O(shè)計原則要求滿足高聚合,低耦合,禁止循環(huán)依賴等基本原則。

          如果存在包與面向?qū)ο蟮脑O(shè)計原則有抵觸,則有必要對這些包加以重新設(shè)計或抽象。

          JDepend的主要功能

          JDepend生成的Java包的質(zhì)量評價報告主要包括:
           Number of Classes and Interfaces:實現(xiàn)類與抽象接口的數(shù)目
          面向的設(shè)計原則之一The Stable Abstractions Principle (SAP):穩(wěn)定抽象等價原則指出了包的穩(wěn)定程度與它的抽象程度(接口的數(shù)目)成正比,也就是說,一個包內(nèi)包含的接口所占的比重越大,這個包就越穩(wěn)定。
           Abstractness (A):包的抽象度。指一個包內(nèi)包含的抽象類或接口占整個包中的類的比重。該值處于0,1之間,若A=0,說明包內(nèi)不包含任何抽象類或接口;若A=1,說明包內(nèi)全部是抽象類或接口。包的抽象度與穩(wěn)定性之間的關(guān)系上面已經(jīng)作了說明。
           Afferent Couplings (Ca):向心耦合。依賴該包(包含的類)的外部包(類)的數(shù)目(i.e. incoming dependencies),該數(shù)值越大,說明該包的擔(dān)當(dāng)?shù)穆氊?zé)越大,也就越穩(wěn)定。
           Efferent Couplings (Ce):離心耦合。被該包依賴的外部包的數(shù)目(i.e. outgoing dependencies),該數(shù)值越大,說明該包越不獨立(因為依賴了別的包),也越不穩(wěn)定。
           Instability (I):衡量一個包的不穩(wěn)定程度。I=Ce/(Ce+Ca)。它的值處于[0,1]之間。I=0時說明包是最穩(wěn)定的,反之I=1則說明包極不穩(wěn)定。
           Distance from the Main Sequence (D): 該指標(biāo)主要用來評價包的抽象程度與穩(wěn)定程度的平衡關(guān)系,它可以用二維直線圖 A + I = 1 來表示。D=abs((A + I) - 1),也就是說D為 一個包的抽象度 + 包的不穩(wěn)定程度 - 1  的絕對值。一個理想的包是:完全抽象的(A=1),非常穩(wěn)定的(I=0),這時D=0;或者是:完全具體類構(gòu)成的包(A=0),非常不穩(wěn)定的 (I=1),這時同樣也有D=0。D=0說明包的抽象程度與穩(wěn)定程度是平衡的,反之D=1說明包的平衡程度被嚴(yán)重破壞。
           Package Dependency Cycles:包的循環(huán)依賴度。
          面向?qū)ο蟮脑O(shè)計原則之一:The Acyclic Dependencies Principle (ADP) - OO設(shè)計的無環(huán)依賴原則要求包之間不能有循環(huán)依賴關(guān)系。

          JDepend為我們提供了上述許多高級功能,為我們設(shè)計健壯的包/類提供了重要的參考數(shù)據(jù),是一個不可多得的優(yōu)秀工具。

          瀏覽 20
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产乱人伦久久免费 | 无码_免费在线视频网站入口_第1页 | 啊啊啊额在线视频 | 欧美插逼视频 | 日韩一级在线免费观看 |