天天看點

軟體架構的5視圖法

5視圖法可以幫助軟體架構師以不同的視角對軟體的各個方面的屬性:功能需求,限制,運作期品質屬性,開發期品質屬性。

1、  邏輯架構:邏輯架構關注功能,不僅包括使用者可見的功能,還包括為實作使用者功能而必須提供的“輔助功能子產品”——。

2、  開發架構:開發架構關注程式包,不僅包括要編寫的源程式,還包括可以直接使用的第三方SDK 和現場架構、類庫,以及開發的系統将運作于其上的系統軟體或中間件。關注編譯時刻的靜态依賴關系。

3、  運作架構:運作架構關注程序、線程、對象等運作時概念,以及相關的并發,同步,通信等問題。運作架構關注運作期間各個單元的互動。

4、  實體架構:實體架構關注“目标程式及其依賴的運作庫和系統軟體”最終如何安裝或部署到實體機器,以及如何部署機器和網絡來配合軟體系統的可靠性,可伸縮性等要求。

5、  資料架構:資料架構關注持久化資料的存儲方案,不僅包括實體及實體關系的存儲格式、還包括資料傳遞,資料複制,資料同步等政策。

開發的政策。

1、邏輯架構的設計着重考慮功能需求——系統應該向使用者提供什麼樣的服務。

架構視圖

着重考慮

關注點

工具

邏輯架構

功能需求——系統應答向使用者提供什麼樣的服務

行為和職責的劃分

UML :靜态——包圖,類圖,對象圖;動态——序列圖,協作圖,狀态圖,活動圖。

開發架構

開發期的品質屬性——可擴充性,可重用性,可移植性,易了解性,易測試性

軟體開發環境中軟體子產品實際組織方式——具體涉及源程式檔案,配置檔案,源程式包,編譯後的目标檔案和第三方庫檔案

UML:包圖,類圖,元件圖

運作架構

運作期品質屬性——性能,可伸縮性,持續可用性,安全性

系統的并發和同步,涉及程序和線程技術

UML:包圖類圖對象圖來說明運作時的關鍵的概念;序列圖,協作圖等來描述互動機制。

實體架構

安裝和部署的需求——包括計算機,網絡,硬體設施情況,以及如何部署

軟體單元如何映射到硬體,以及硬體相關的可靠性,可伸縮性,性能和安全性等

UML:部署圖,元件圖

資料架構

資料需求

持久化資料的組織,資料傳遞,資料複制和資料同步政策

E-R圖

每種架構視圖都包含動态方面和靜态方面

對于架構視圖的選擇和架構視圖的數目,可以根據實際的需要決定,并不是所有的架構設計要使用全部的架構視圖,也不是所有的架構視圖隻有5 個——根據具體的需要可以增加,這裡隻是作者概況的最常見的 5 種視圖。