Sonar 2.1的新特性:
1)一個(gè)全新的“Libraries”頁(yè)面,顯示了項目中所有的程序庫和依賴(lài),該特性要求使用Maven來(lái)構建項目。一旦在Sonar站點(diǎn)的主頁(yè)上選擇了一個(gè)項目,該服務(wù)就會(huì )以可視化的樹(shù)形結構展示出項目依賴(lài)。此外,還有一個(gè)可選的動(dòng)態(tài)過(guò)濾器,可以根據名稱(chēng)過(guò)濾程序庫以便在應用的依賴(lài)間導航。
2)用于搜索程序庫使用情況的“Dependencies”頁(yè)面。比如說(shuō),可以搜索到使用了第三方框架如Commons Logging 1.1的所有項目。
3)可以使用各種插件擴展Sonar的功能?,F在有一個(gè)全新的“System Info”頁(yè)面顯示了系統屬性、已裝插件和Java虛擬機內存統計信息。該頁(yè)面還給出了關(guān)于Sonar配置和數據庫統計的詳細信息。
4)一個(gè)用于管理已裝插件和系統信息的管理控制臺。最新版的Sonar為這些插件引入了一個(gè)測試框架和一個(gè)客戶(hù)化的Maven生命周期管理工具。它還帶有一個(gè)用于集成項目事件的Web Service并在項目的size widget中增加了一個(gè)新的度量模塊。
JDepend
1.JDepend一個(gè)開(kāi)放源代碼的可以用來(lái)評價(jià)Java程序質(zhì)量的優(yōu)秀工具,它遍歷Java class的文件目錄,以Java包(package)為單位,為每一個(gè)包/類(lèi)自動(dòng)生成 包的依賴(lài)程度,穩定性,可靠度等的評價(jià)報告,根據這些報告,我們可以得到包或類(lèi)之間的依賴(lài)關(guān)系,并分析出包的穩定程度,抽象程度,是否存在循環(huán)依耐關(guān)系等 ??梢愿鶕﨡Depend給出的報告數據,分析出我們的包是否是可靠的,穩定的,健壯的包,是否符合面向對象的設計原則。
2.特點(diǎn):
1)評價(jià)設計質(zhì)量
2)翻轉依賴(lài)性
3)支持并行開(kāi)發(fā)和極限編程
4)獨立的發(fā)布模塊
5)識別package的循環(huán)依賴(lài)
3.Depend生成的Java包的質(zhì)量評價(jià)報告主要包括:
1)Number of Classes and Interfaces:實(shí)現類(lèi)與抽象接口的數目
2)Abstractness (A):包的抽象度。指一個(gè)包內包含的抽象類(lèi)或接口占整個(gè)包中的類(lèi)的比重。
3)Afferent Couplings (Ca):向心耦合。依賴(lài)該包(包含的類(lèi))的外部包(類(lèi))的數目(i.e. incoming dependencies),該數值越大,說(shuō)明該包的擔當的職責越大,也就越穩定。
4)Efferent Couplings (Ce):離心耦合。被該包依賴(lài)的外部包的數目(i.e. outgoing dependencies),該數值越大, 說(shuō)明該包越不獨立(因為依賴(lài)了別的包),也越不穩定。
5)Instability (I):衡量一個(gè)包的不穩定程度。I=Ce/(Ce+Ca)。它的值處于[0,1]之間。I=0時(shí)說(shuō)明包是最穩定的,反之I=1則說(shuō)明包極不穩定。
6)Distance from the Main Sequence (D): 該指標主要用來(lái)評價(jià)包的抽象程度與穩定程度的平衡關(guān)系,它可以用二維直線(xiàn)圖 A + I = 1 來(lái)表示。
7)Package Dependency Cycles:包的循環(huán)依賴(lài)度。
8. IBM Checking Tool for Bugs Errors and Mistakes(簡(jiǎn)稱(chēng)BEAM)
1. 定義:是 IBM 開(kāi)發(fā)的一個(gè)靜態(tài)分析工具,可以用于分析并查找出 C, C++ 和 Java代碼中的一些不容易發(fā)現的潛在錯誤,從而達到提高代碼質(zhì)量的目的。同動(dòng)態(tài)分析工具和其它靜態(tài)分析工具相比,它擁有一些可貴的特性。
2.特點(diǎn):
1)對代碼進(jìn)行語(yǔ)法掃描,通過(guò)算法對代碼進(jìn)行檢查分析
2)和一些 bug 模式進(jìn)行比較,最終標明問(wèn)題區域,輸出分析結果
3)使用了額外的定理證明(theorem proving)技術(shù)來(lái)判斷一個(gè)潛在的錯誤是否是真正的錯誤,從而減輕了程序員判斷錯誤真偽所需的工作量
9. LDRA Testbed
1.定義:LDRA Testbed為應用軟件的確認和驗證提供強大的源代碼測試和分析功能,是獨特的質(zhì)量控制工具。 它有助于提高計算機軟件必需的可靠性,健壯性和盡可能的零缺陷,它的使用帶來(lái)時(shí)間、成本和效率上真實(shí)的節省,這些都是無(wú)法衡量其價(jià)值的。它是強大和完整的集成工具包,使先進(jìn)的軟件分析技術(shù)應用在開(kāi)發(fā)生命周期的關(guān)鍵階段。
2.LDRA Testbed提供強大的分析功能,用于兩個(gè)主要的測試領(lǐng)域,靜態(tài)分析和動(dòng)態(tài)分析。
1)靜態(tài)分析: 分析代碼,并且提供對代碼結構的理解。
2)動(dòng)態(tài)分析: 利用源代碼的插裝版本,使用測試數據執行,在運行時(shí)發(fā)現軟件
缺陷
3) 使用LDRA testbed 的好處
軟件開(kāi)發(fā)和測試過(guò)程的成本效率分析工具
單元、集成和系統測試的理想工具
貫穿于軟件開(kāi)發(fā)的整個(gè)生命周期
原文轉自:http://www.uml.org.cn/Test/201208245.asp