1. 程式人生 > >架構之美第十二章-好的架構

架構之美第十二章-好的架構

        我們曾提到,架構師玩的是折中的遊戲。對於一組給定的功能需求和品質需求,沒有唯一的正確架構和唯一的“正確答案”。我們從經驗中得知,應該對架構進行評估,確定它是否滿足其需求,然後再投入資金來構建、測試和部署這個系統。評估試圖回答前面小節中討論的一個或多個一般關注點問題,或回答特定系統的具體關注問題。

       架構評估有兩種常見的方式(Clements、Kazman和Klein 2002)。

第一種評估方式是確定架構的屬性,通常通過建模或模擬系統的一個或多個方面。例如,通過效能建模來評估吞吐量和伸縮性,通過失效樹模型來評估可靠性和可訪問性。其他型別的模型包括複雜性和耦合指標,用於評估可變性和可維護性。第二種評估方式,也是最廣泛使用的方式,就是通過對架構師提出質詢來評估該架構。

有許多結構化的質詢方法。例如,貝爾實驗室提出的軟體架構複查委員會(Software Architecture Review Board,SARB)過程利用了組織機構之內的專家,以及他們在電信和相關應用中的深厚領域經驗(Maranzano等2005)。質詢方法的另一種變體是架構折中分析方法(Architecture Trade-off Analysis Method,ATAM)(Clements、Kazman和Klein 2002),它尋找架構不能滿足品質關注點的風險。ATAM使用了場景分析,每種場景都描述了特定的利益相關人對系統的品質關注點。架構師然後解釋該架構如何支援每一種場景。主動複審是另一種質詢方法,它改變了複審過程的開始方式,要求架構師向複審者提供架構師認為重要而需要回答的問(Hoffman和Weiss 2000,第17章)。然後,複查者利用已有的架構文件和描述來回答這些問題。

最後,在網路上找“softwarearchitecture review checklist(軟體架構複審檢查清單)”,可以得到幾十份檢查清單,其中某些清單非常通用,另一些則是針對具體的應用領域或技術框架。