針對架構的自動化
JDepend 還有哪些魔力?
存在多種方法通過 JDepend 添加主動檢查。實際上,JDepend 建議使用其 DependencyConstraint 類。盡管使用 DependencyConstraint 非常簡單,但我還是不選擇它,因為它只具有使用 API 執行架構規則這么一種途徑,而且不能可靠地根據我的需求工作。還有其他一些工具支持包依賴關系遵從性;可參閱 參考資料 以了解更多細節。
現在您能夠用自己的構建過程主動發現與期望架構的設計違背了。此外,我已向您展示了幾個可能的示例之一 —— 您一定能夠獲得創造性的方法并分析類似 Instability 包這樣的度量,從而便于判定架構的整體健壯性。
我所介紹的這個方法是一種簡單的方式,可以減少為判定架構遵從性而不斷反向設計代碼并分析圖表的需求。如果您在使用持續集成系統(Continuous Integration system),您可將這些測試用作一個安全網絡,確保檢查版本控制系統的代碼傳遞這些架構規則 —— 每當進行了一次改動時。如果您改變了架構,只要改變您的 JUnit 測試規則,就可確保您的團隊遵守了項目標準。這就是我所稱的使用主動方式斷言架構可靠性。
參考資料
學習
您可以參閱本文在 developerWorks 全球站點上的 英文原文 。
“用 JDepend 管理依賴性”(Glen Wilcox,OnJava,2004 年 1 月):在這篇文章中,Glen Wilcox 介紹了免費工具 JDepend,它能夠提供軟件架構的質量分析。
Separation of Concerns:按照此原則構建架構被視為最佳實踐。
“ 追求代碼質量 :軟件架構的代碼質量”(Andrew Glover,developerWorks,2006 年 4 月):使用耦合度量支持系統架構。
“使用簡單閾值執行構建失敗”(TestEarly):自動構建系統(如 Ant)非常適于使用主動質量檢測。
“JDepend”(Mike Clark,Clarkware Consulting):請參看 Dependency Constraint Tests with JUnit 章節。
“架構復雜性”(Grady Booch,IBM Rational):“(您)能對不同軟件密集型系統的架構復雜性做有意義的比較嗎?”
讓開發自動化 (Paul Duvall,IBM developerWorks):請閱讀完整的系列。
developerWorks Java 技術專區:數百篇關于 Java 編程各方面的文章。
文章來源于領測軟件測試網 http://www.kjueaiud.com/