1. 程式人生 > >如何對軟體架構建模

如何對軟體架構建模

# 如何對軟體架構建模
根據側重點不同可分為5種模型

結構模型
--
以架構的構件、連線件和其他概念來刻畫結構,併力圖通過結構來反映系統的重要語義內容,包括系統的配置、約束、隱含的假設條件、風格、性質等。

框架模型
--
不太側重描述結構的細節而更側重於整體的結構。主要以一些特殊的問題為目標建立只針對和適應該問題的結構。

動態模型
--
對結構或框架模型的補充,研究系統的“大顆粒”的行為性質。例如描述系統的重新配置或演化。系統總體結構的配置、建立或拆除通訊通道或計算的過程。

過程模型
--
研究構造系統的步驟和過程。

功能模型
--
認為架構是由一組功能構件按層次組成,下層向上層提供服務。可看作一種特殊的框架模型。

最常用的是結構模型和動態模型。將5種有機地結合形成一個完整的模型來刻畫軟體架構更合適。


## 4+1檢視模型

從5個不同的視角來描述軟體架構。

邏輯檢視
--
終端使用者:功能需求

可以用物件模型來代表邏輯檢視,用類圖來描述邏輯檢視。設計中要注意的主要問題是要保持一個單一的、內聚的物件模型貫穿整個系統。

程序檢視
--
系統整合人員:效能、可擴充性、吞吐量等

側重於系統的執行特性,主要關注一些非功能性的需求,例如系統的效能和可用性。強調併發性、分佈性、系統整合性和容錯能力,以及邏輯檢視中的主要抽象如何適合程序結構。它也定義邏輯檢視中的各個類的操作具體是在哪一個執行緒中被執行的。可以描述成多層抽象,每個級別分別關注不同的方面。

物理檢視
--
系統工程人員:系統拓撲、安裝、通訊等。

主要考慮如何把軟體對映到硬體上,它通常要考慮解決系統拓撲結構、系統安裝、通訊等問題。當然間運行於不同的結點上時,各檢視中的構件都直接或間接地對應於系統的不同結點上。因此,從軟體到結點的對映要有較高的靈活性,當環境改變時,對系統其他檢視的影響最小。


開發檢視
--
程式設計人員:軟體管理

也稱模組檢視。主要側重於軟體模組的組織和管理。軟體可通過程式庫或子系統進行組織,這樣對於一個軟體系統就可以由不同的人進行開發。開發檢視要考慮軟體的內部需求,如軟體開發的容易性、軟體的重用和軟體的通用性。要具體考慮開發工具的不同而帶來的侷限性。開發檢視通過系統輸入輸出關係的模型圖和子系統圖來描述。

場景檢視
--
可以看作是那些重要系統活動的抽象,它使四個檢視有機聯絡起來,從某種意義上說場景是最重要的需求抽象。在開發架構時,它可以幫助設計者找到架構的構件和它們之間的作用關係。同時,也可以用場景來分析一個特定的檢視,或描述不同檢視構件間時如何互相作用的。場景可以用文字表示,也可以用圖形表示。

邏輯檢視和開發檢視描述系統的靜態結構,
而程序檢視和物理檢視描述系統的動態結構。
對於不同的軟體系統來說,
側重點也有鎖不同。
例如,對於管理資訊系統來說,比較側重從邏輯檢視和開發檢視來描述系統。
而對於實時控制系統來說,則比較注重於從程序檢視和物理檢視來描述系統。