-
4+1視圖模型概況 Kruchten 提出了一個"4+1"視圖模型,從5個不同的視角包括包括邏輯試圖、進程視圖、物理視圖、開發視圖、場景視圖來描述軟件體系結構。每一個視圖只關心系統的一個側面,5個試圖結合在一起才能反映系統的軟件體系結構的全部內容。如下圖:
-
邏輯試圖主要是用來描述系統的功能需求,即系統提供給最終用戶的服務. 在邏輯視圖中,系統分解成一系列的功能抽象、功能分解與功能分析,這些主要來自問題領域(Problem Definition)。 在面向對象技術中,通過抽象、封裝、繼承,可以用對象模型來代表邏輯視圖,可以用類圖(Class Diagram)來描述邏輯視圖。如下圖: 構件(Components):類、類服務、參數化類、類層次 連接件(Connectors):關聯、包含聚集、使用、繼承、實例化
-
開發視圖(Development/Module View) 開發視圖主要用來描述軟件模塊的組織與管理(通過程序庫或子系統)。服務於軟件編程人員, 方便后續的設計與實現。它通過系統輸入輸出關系的模型圖和子系統圖來描述。要考慮軟件的內部需求:開發的難易程度、重用的可能性,通用性,局限性等等。開發視圖的風格通常是層次結構,層次越低,通用性越好(底層庫:Java SDK,圖像處理軟件包)。如下圖: 構件:模塊、子系統、層 連接件:參照相關性、模塊/過程調用
-
進程視圖 進程試圖側重系統的運行特性,關注非功能性的需求(性能,可用性)。服務於系統集成人員,方便后續性能測試。強調並發性、分布性、集成性、魯棒性(容錯)、可擴充性、吞吐量等。定義邏輯視圖中的各個類的具體操作是在哪一個線程(Thread)中被執行。 如下圖: 構件:進程、簡化進程、循環進程 連接件:未指定,消息、遠程過程調用(RPC)、雙向消息、事件廣播
-
物理視圖 物理試圖主要描述硬件配置。服務於系統工程人員,解決系統的拓撲結構、系統安裝、通信等問題。主要考慮如何把軟件映射到硬件上,也要考慮系統性能、規模、可靠性等。可以與進程視圖一起映射。如下圖: 構件:處理器、計算機、其它設備 連接件:通信協議等
-
場景(Scenarios) 場景用於刻畫構件之間的相互關系,將四個視圖有機地聯系起來。可以描述一個特定的視圖內的構件關系,也可以描述不同視圖間的構件關系。文本、圖形表示皆可。
-
小結 邏輯視圖、開發視圖,都主要是用來描述系統的靜態結構。 進程視圖、物理視圖,主要是用來描述系統的動態結構。