「4+1」視圖,是指從5個不一樣視角來描述軟件體系結構。
「4+1」分別指:編程
邏輯架構的描述能夠圍繞前四個視圖進行組織,而後結合用例或場景進行說明,造成第五個視圖。
每一個視圖只關心繫統的一個側面,5個視圖結合起來,才能反映系統的所有內容。安全
軟件設計能夠從不一樣的概念角度進行描述和記錄,這些角度一般被稱爲視圖。網絡
「視圖表示軟件體系結構的一部分,它顯示軟件系統的特定屬性」架構
不一樣的視圖涉及與軟件相關的不一樣問題。併發
總之,軟件設計是由設計過程產生的多方面的產物,一般由相對獨立的正交視圖組成,能夠結合建築視圖理解。異步
當使用面向對象的設計方法時,邏輯視圖對應設計的對象模型,經常使用描述方法有UML類圖、E-R圖。編程語言
邏輯架構主要支持功能需求,即系統應該爲用戶提供什麼樣的服務。
系統被分解成一組關鍵抽象,以對象或對象類的形式從問題中表述。分佈式
類的設計遵循抽象、封裝和繼承的原則,這種分解不只是爲了進行功能分析,也是爲了理清系統各個部分的通用機制和設計元素。工具
過程架構關注設計的併發和同步方面,考慮了一些非功能性需求,好比性能和可用性。
過程視圖能夠在幾個抽象層次上進行描述,每一個抽象層次處理不一樣的關注點:性能
主要任務是經過一組定義良好的任務間通訊機制進行通訊:基於同步和異步消息的通訊服務、遠程過程調用、事件廣播等。
次要任務是能夠經過集合或共享內存進行通訊,避免重大任務在同一過程或處理節點上進行配置假設。
物理視圖描述軟件到硬件的映射,主要反映在分佈式方面。
物理架構主要考慮系統的非功能性需求,如可用性、可靠性(容錯性)、性能(吞吐量)和可擴展性。
常見物理配置:
開發視圖描述軟件在其開發環境中的靜態組織。
開發架構的重點:
系統的開發架構由模塊和子系統圖表示,表示成「導出」和「導入」關係。只有當軟件的全部元素都被識別以後,才能描述完整的開發架構。
在很大程度上,開發架構考慮發展的便利性、軟件管理、重用或通用性,以及工具集或編程語言施加的約束。
開發視圖是需求分配的基礎,便於開發團隊分配工做,有助於成本評估和提早計劃、監控項目進度、軟件重用、可移植性和安全性的推理。經過開發視圖,容易得出項目開發人員的分工配置。
實際應用中,開發視圖會在邏輯視圖的基礎上增長大量內容,好比大量接口、輔助類等。
架構的描述決策能夠圍繞前四個視圖進行組織,而後由一些選定的用例或場景(成爲第五個視圖)進行說明。
其餘四個視圖中的元素,能夠經過一些重要的場景或用例進行更好的展現,好比:
並不是全部的軟件架構都須要完整的「4+1」視圖。
無用的視圖能夠從架構描述中省略,例如:
場景視圖在任何狀況下都有用。