5視圖法可以幫助軟體架構師以不同的視角對軟體的各個方面的屬性:功能需求,限制,運作期品質屬性,開發期品質屬性。
1、 邏輯架構:邏輯架構關注功能,不僅包括使用者可見的功能,還包括為實作使用者功能而必須提供的“輔助功能子產品”——。
2、 開發架構:開發架構關注程式包,不僅包括要編寫的源程式,還包括可以直接使用的第三方SDK 和現場架構、類庫,以及開發的系統将運作于其上的系統軟體或中間件。關注編譯時刻的靜态依賴關系。
3、 運作架構:運作架構關注程序、線程、對象等運作時概念,以及相關的并發,同步,通信等問題。運作架構關注運作期間各個單元的互動。
4、 實體架構:實體架構關注“目标程式及其依賴的運作庫和系統軟體”最終如何安裝或部署到實體機器,以及如何部署機器和網絡來配合軟體系統的可靠性,可伸縮性等要求。
5、 資料架構:資料架構關注持久化資料的存儲方案,不僅包括實體及實體關系的存儲格式、還包括資料傳遞,資料複制,資料同步等政策。
開發的政策。
1、邏輯架構的設計着重考慮功能需求——系統應該向使用者提供什麼樣的服務。
架構視圖
着重考慮
關注點
工具
邏輯架構
功能需求——系統應答向使用者提供什麼樣的服務
行為和職責的劃分
UML :靜态——包圖,類圖,對象圖;動态——序列圖,協作圖,狀态圖,活動圖。
開發架構
開發期的品質屬性——可擴充性,可重用性,可移植性,易了解性,易測試性
軟體開發環境中軟體子產品實際組織方式——具體涉及源程式檔案,配置檔案,源程式包,編譯後的目标檔案和第三方庫檔案
UML:包圖,類圖,元件圖
運作架構
運作期品質屬性——性能,可伸縮性,持續可用性,安全性
系統的并發和同步,涉及程序和線程技術
UML:包圖類圖對象圖來說明運作時的關鍵的概念;序列圖,協作圖等來描述互動機制。
實體架構
安裝和部署的需求——包括計算機,網絡,硬體設施情況,以及如何部署
軟體單元如何映射到硬體,以及硬體相關的可靠性,可伸縮性,性能和安全性等
UML:部署圖,元件圖
資料架構
資料需求
持久化資料的組織,資料傳遞,資料複制和資料同步政策
E-R圖
每種架構視圖都包含動态方面和靜态方面
對于架構視圖的選擇和架構視圖的數目,可以根據實際的需要決定,并不是所有的架構設計要使用全部的架構視圖,也不是所有的架構視圖隻有5 個——根據具體的需要可以增加,這裡隻是作者概況的最常見的 5 種視圖。