架構設計:"4+1"視圖

概念

「4+1」視圖,是指從5個不一樣視角來描述軟件體系結構。
「4+1」分別指:編程

  1. 邏輯視圖
  2. 過程視圖
  3. 物理視圖
  4. 開發視圖
  5. 場景/用例 視圖

邏輯架構的描述能夠圍繞前四個視圖進行組織,而後結合用例或場景進行說明,造成第五個視圖。
在這裏插入圖片描述
每一個視圖只關心繫統的一個側面,5個視圖結合起來,才能反映系統的所有內容。安全

關於視圖

軟件設計能夠從不一樣的概念角度進行描述和記錄,這些角度一般被稱爲視圖。網絡

「視圖表示軟件體系結構的一部分,它顯示軟件系統的特定屬性」架構

不一樣的視圖涉及與軟件相關的不一樣問題。併發

在這裏插入圖片描述

總之,軟件設計是由設計過程產生的多方面的產物,一般由相對獨立的正交視圖組成,能夠結合建築視圖理解。異步

邏輯視圖

當使用面向對象的設計方法時,邏輯視圖對應設計的對象模型,經常使用描述方法有UML類圖、E-R圖。編程語言

邏輯架構主要支持功能需求,即系統應該爲用戶提供什麼樣的服務。
系統被分解成一組關鍵抽象,以對象或對象類的形式從問題中表述。分佈式

類的設計遵循抽象、封裝和繼承的原則,這種分解不只是爲了進行功能分析,也是爲了理清系統各個部分的通用機制和設計元素。工具

過程視圖

過程架構關注設計的併發和同步方面,考慮了一些非功能性需求,好比性能和可用性。
過程視圖能夠在幾個抽象層次上進行描述,每一個抽象層次處理不一樣的關注點:性能

  • 在最高層次上關注進程,進程分佈在由LAN或WAN鏈接的一組硬件資源上,做爲一組獨立執行的通訊程序邏輯網絡。
  • 多個邏輯網絡能夠同時存在,共享相同的物理資源。

主要任務是經過一組定義良好的任務間通訊機制進行通訊:基於同步和異步消息的通訊服務、遠程過程調用、事件廣播等。

次要任務是能夠經過集合或共享內存進行通訊,避免重大任務在同一過程或處理節點上進行配置假設。

物理視圖

物理視圖描述軟件到硬件的映射,主要反映在分佈式方面。

物理架構主要考慮系統的非功能性需求,如可用性、可靠性(容錯性)、性能(吞吐量)和可擴展性。

常見物理配置:

  • 測試
  • 爲不一樣站點或不一樣客戶部署系統

開發視圖

開發視圖描述軟件在其開發環境中的靜態組織。

開發架構的重點:

  • 對軟件開發環境中實際軟件模塊進行組織
  • 將軟件打包成小的程序庫,或者打包成能夠由一個或少許開發人員開發的子系統

系統的開發架構由模塊和子系統圖表示,表示成「導出」和「導入」關係。只有當軟件的全部元素都被識別以後,才能描述完整的開發架構。

在很大程度上,開發架構考慮發展的便利性、軟件管理、重用或通用性,以及工具集或編程語言施加的約束。

開發視圖是需求分配的基礎,便於開發團隊分配工做,有助於成本評估和提早計劃、監控項目進度、軟件重用、可移植性和安全性的推理。經過開發視圖,容易得出項目開發人員的分工配置。

實際應用中,開發視圖會在邏輯視圖的基礎上增長大量內容,好比大量接口、輔助類等。

場景/用例 視圖

架構的描述決策能夠圍繞前四個視圖進行組織,而後由一些選定的用例或場景(成爲第五個視圖)進行說明。

其餘四個視圖中的元素,能夠經過一些重要的場景或用例進行更好的展現,好比:

  • 構造更符合用例的實例
  • 描述一些關聯腳本,如對象之間或進程之間的交互

總結

並不是全部的軟件架構都須要完整的「4+1」視圖。

無用的視圖能夠從架構描述中省略,例如:

  • 若是隻有一個處理器,則不須要物理視圖
  • 若是隻有一個進程或程序,則不須要進程視圖
  • 對於很是小的系統,有可能邏輯視圖和開發視圖很是類似,不須要單獨描述

場景視圖在任何狀況下都有用。

相關文章
相關標籤/搜索