Java靜態檢測工具的簡單介紹(3)

發表于:2015-03-26來源:uml.org.cn作者:yeyongna點擊數: 標簽:
Sonar 2.1的新特性: 1)一個全新的Libraries頁面,顯示了項目中所有的程序庫和依賴,該特性要求使用Maven來構建項目。一旦在Sonar站點的主頁上選擇了一個項

  Sonar 2.1的新特性:

  1)一個全新的“Libraries”頁面,顯示了項目中所有的程序庫和依賴,該特性要求使用Maven來構建項目。一旦在Sonar站點的主頁上選擇了一個項目,該服務就會以可視化的樹形結構展示出項目依賴。此外,還有一個可選的動態過濾器,可以根據名稱過濾程序庫以便在應用的依賴間導航。

  2)用于搜索程序庫使用情況的“Dependencies”頁面。比如說,可以搜索到使用了第三方框架如Commons Logging 1.1的所有項目。

  3)可以使用各種插件擴展Sonar的功能?,F在有一個全新的“System Info”頁面顯示了系統屬性、已裝插件和Java虛擬機內存統計信息。該頁面還給出了關于Sonar配置和數據庫統計的詳細信息。

  4)一個用于管理已裝插件和系統信息的管理控制臺。最新版的Sonar為這些插件引入了一個測試框架和一個客戶化的Maven生命周期管理工具。它還帶有一個用于集成項目事件的Web Service并在項目的size widget中增加了一個新的度量模塊。

  JDepend

  1.JDepend一個開放源代碼的可以用來評價Java程序質量的優秀工具,它遍歷Java class的文件目錄,以Java包(package)為單位,為每一個包/類自動生成 包的依賴程度,穩定性,可靠度等的評價報告,根據這些報告,我們可以得到包或類之間的依賴關系,并分析出包的穩定程度,抽象程度,是否存在循環依耐關系等 ??梢愿鶕﨡Depend給出的報告數據,分析出我們的包是否是可靠的,穩定的,健壯的包,是否符合面向對象的設計原則。

  2.特點:

  1)評價設計質量

  2)翻轉依賴性

  3)支持并行開發和極限編程

  4)獨立的發布模塊

  5)識別package的循環依賴

  3.Depend生成的Java包的質量評價報告主要包括:

  1)Number of Classes and Interfaces:實現類與抽象接口的數目

  2)Abstractness (A):包的抽象度。指一個包內包含的抽象類或接口占整個包中的類的比重。

  3)Afferent Couplings (Ca):向心耦合。依賴該包(包含的類)的外部包(類)的數目(i.e. incoming dependencies),該數值越大,說明該包的擔當的職責越大,也就越穩定。

  4)Efferent Couplings (Ce):離心耦合。被該包依賴的外部包的數目(i.e. outgoing dependencies),該數值越大, 說明該包越不獨立(因為依賴了別的包),也越不穩定。

  5)Instability (I):衡量一個包的不穩定程度。I=Ce/(Ce+Ca)。它的值處于[0,1]之間。I=0時說明包是最穩定的,反之I=1則說明包極不穩定。

  6)Distance from the Main Sequence (D): 該指標主要用來評價包的抽象程度與穩定程度的平衡關系,它可以用二維直線圖 A + I = 1 來表示。

  7)Package Dependency Cycles:包的循環依賴度。

  8. IBM Checking Tool for Bugs Errors and Mistakes(簡稱BEAM)

  1. 定義:是 IBM 開發的一個靜態分析工具,可以用于分析并查找出 C, C++ 和 Java代碼中的一些不容易發現的潛在錯誤,從而達到提高代碼質量的目的。同動態分析工具和其它靜態分析工具相比,它擁有一些可貴的特性。

  2.特點:

  1)對代碼進行語法掃描,通過算法對代碼進行檢查分析

  2)和一些 bug 模式進行比較,最終標明問題區域,輸出分析結果

  3)使用了額外的定理證明(theorem proving)技術來判斷一個潛在的錯誤是否是真正的錯誤,從而減輕了程序員判斷錯誤真偽所需的工作量

  9. LDRA Testbed

  1.定義:LDRA Testbed為應用軟件的確認和驗證提供強大的源代碼測試和分析功能,是獨特的質量控制工具。 它有助于提高計算機軟件必需的可靠性,健壯性和盡可能的零缺陷,它的使用帶來時間、成本和效率上真實的節省,這些都是無法衡量其價值的。它是強大和完整的集成工具包,使先進的軟件分析技術應用在開發生命周期的關鍵階段。

  2.LDRA Testbed提供強大的分析功能,用于兩個主要的測試領域,靜態分析和動態分析。

  1)靜態分析: 分析代碼,并且提供對代碼結構的理解。

  2)動態分析: 利用源代碼的插裝版本,使用測試數據執行,在運行時發現軟件

  缺陷

  3) 使用LDRA testbed 的好處

  軟件開發和測試過程的成本效率分析工具

  單元、集成和系統測試的理想工具

  貫穿于軟件開發的整個生命周期

原文轉自:http://www.uml.org.cn/Test/201208245.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97