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