官术网_书友最值得收藏!

1.2 軟件架構的分類

既然軟件架構是空間體系結構和時間決策流程的結合,我們就可以從時空視角來對軟件架構進行分類了。當然,時空是一體的,只是側重的視角不同而已。

1.2.1 體系結構上的分類

軟件架構是面向計算機系統的。因此,回顧計算機系統的體系結構有助于理解軟件架構的分類視角。盡管計算機系統的體系結構不斷演變,但基本的抽象仍然是馮·諾依曼提出的計算機體系結構,如圖1-1所示。

圖1-1 馮·諾依曼的計算機體系結構

馮·諾依曼體系的核心是將需要的程序和數據送入計算機中。計算機必須具備長期記憶程序、數據、中間結果和最終運算結果的能力。計算機能完成各種算術運算、邏輯運算和數據傳送等加工處理工作,并能根據需要控制程序的執行路徑,同時根據指令控制機器的各個部件協調工作,以便將處理結果按照要求輸出給用戶。

將指令和數據同時存放在存儲器中是馮·諾依曼計算機方案的一個特點。在計算機體系結構中,軟件架構可以分為邏輯架構、數據架構和物理拓撲架構。

1.邏輯架構

邏輯架構是由軟件(用戶)需求驅動的,是基于對用戶需求的考量形成的。軟件的邏輯架構是對整個系統進行抽象分解,將系統劃分為多個邏輯單元,每個邏輯單元都能實現自己的功能。

邏輯架構關注功能模塊的職責劃分和接口定義。其中,需要特別注意的是不同粒度的功能職責,如邏輯層、功能子系統、模塊和關鍵類等。不同通用程度的功能需要進行分離,并分別封裝到專門模塊、通用模塊或通用機制中。

2.數據架構

數據架構是根據業務功能需求的數量來設計的,所有業務都是圍繞數據展開的。數據是軟件的核心,數據架構將邏輯架構中確定的功能映射到數據處理中。數據架構明確了支持業務所需的各種數據以及這些數據之間的關系。

3.物理拓撲架構

物理拓撲架構指的是軟件具體的部署和運行環境。它描述了軟件運行所需的計算機、網絡、硬件設施等情況,以及將軟件部署到硬件資源的情況、運行期間的配置情況。換句話說,物理拓撲架構明確了程序在計算機系統上的映射方式,以及數據在計算機系統中的存儲、讀寫和傳輸方式。它同時考慮了具體業務功能在邏輯架構中的分布和數據處理功能在數據架構中的分布。

1.2.2 流程決策上的架構分類

架構的本質就是對系統進行有序化重構,不斷降低系統無序的程度,使系統不斷進化。從這個角度看,軟件架構可以分為開發架構、運行架構。

1.開發架構

開發架構明確了軟件開發流程中的重要決策。它涵蓋了具體模塊(如源代碼、程序包、編譯后的目標文件、第三方庫和配置文件等)的組織方式。開發架構確保了軟件開發期間的質量,包括代碼的可擴展性、可重用性、可移植性、易理解性和易測試性等。

2.運行架構

運行架構描述了軟件的運行狀態,如軟件中的對象交互、用戶與軟件之間的交互、系統間通信等。運行架構還涵蓋了軟件的非功能性需求,如安全性、可靠性、可伸縮性等質量相關的需求,以及系統響應時間、吞吐量等性能相關的需求。

主站蜘蛛池模板: 莒南县| 安吉县| 房产| 新竹县| 平潭县| 郸城县| 蒲城县| 房山区| 苍山县| 铜鼓县| 遵义市| 东源县| 通州区| 同仁县| 承德县| 翼城县| 疏附县| 嘉禾县| 唐河县| 宿松县| 岱山县| 右玉县| 镇巴县| 吉首市| 兰溪市| 嘉黎县| 莒南县| 江北区| 新民市| 咸阳市| 偃师市| 南投县| 浦江县| 岳阳县| 台东市| 花垣县| 库车县| 西华县| 卓尼县| 安义县| 腾冲县|