什麼是概念架構
概念性架構界定系統的高層組件,以及它們之間的關係。概念性架構意在對系統進行適當分解,而不陷入細節。藉此,可以與管理人員、市場人員、用戶等非技術人員交流架構。概念性架構規定了每個組件的非正式規約及架構圖,但不涉及接口細節。
實際意義
1.不同系統的架構,爲什麼不同?
需求不同,所以架構不同。這裏需求包括了功能、質量、約束等方面。
2.架構設計中,應何時確立架構大方向的不同?
進行概念架構設計時應確立架構大方向。架構設計貴在有針對性,概念架構針對重大需求、特色需求、高風險需求的要求,給出高層次的解決方案——這就是概念架構的最重要意義。
實踐要領
重大需求塑造概念架構
ADMEMS方法Conceptual Arch階段核心理念:重大需求塑造概念架構,這裏重大需求應涵蓋功能需求、質量及約束3類需求的關鍵部分。
概念架構階段的3個步驟
1.初步設計。基於關鍵功能,藉助魯棒圖進行以發現職責爲目的的初步設計。
2.高層分割。對系統這個黑盒子進行高層切分,例如切分複雜系統爲多個二級系統,或者直接切分系統爲具體子系統。
3.考慮非功能需求
初步設計
初步設計對複雜系統的意義
1.架構師只有在設計複雜系統(或涉及不熟悉的領域,感受“挺複雜”)時才需要初步設計。
2.初步設計的目標:發現職責。無須展開架構設計細節。
後續的架構實際工作必然以初步設計爲基礎。
魯棒圖簡介
魯棒圖包括3種元素,分別是邊界對象、控制對象、實體對象:
邊界對象對模擬外部環境和未來系統之間的交互進行建模。邊界對象負責接收外部輸入,處理內部內容的解釋,並表達或傳遞響應的結果。
控制對象對行爲進行封裝,描述用例中事件流的控制行爲。
實體對象對信息進行描述。
高層分割
高層分割的兩種實踐套路:
“高層分割”的兩種實踐討論:切系統爲系統;切系統爲子系統
切系統爲系統
1)系統比較複雜,需要進行兩級高層切分。
2)首先,把系統切成更小一級的系統,每個更小一級的系統都可以有單獨的需求、設計、實現…
3)之後,針對每個“更小一級的系統”,進行“切系統爲子系統”…
切系統爲子系統
最常見就是分層,比如常見的MVC,MVVM模式
分層式概念架構
分層“3+1種”流派
-
Layer:邏輯層
邏輯層重視職責的劃分,職責之間常常是上層使用下層的關係——但是不關心上層和下層是否能分佈在不同的機器。
-
Tier:物理層
物理層指能分佈在不同機器上的軟件單元,不同物理層之間必須有跨機器訪問的能力——可以通過遠程條用、或通信協議等方式。
-
按通用性分層
通用性不同的部分劃歸不同的層,以此作爲系統的總體切分方式一般而言,通用程度越大,所處的層次越靠下。例如嵌入式系統分層架構通用性越強的層,位於中間,硬件相關部分,以及應用特定部分分別位於下層和上層
-
技術堆疊
技術堆疊不是獨立的架構模式,而是基於分層架構(或其他架構模式)提供的進一步說明。