方法/步驟軟件項目的需求確定後,就可以開始系統的架構設計了。架構設計不同於編寫代碼,需要遵循嚴格的語法和編程規範。它沒有規範可循,它的存在是合理的。適合系統開發和運行的架構才是最合理的系統架構。
系統的架構設計是在業務需求明確的前提下進行的。假設在系統需求分析階段已經確定了系統的功能和業務範圍,也明確了系統的運行需求。在上述需求尚未確定的情況下,不適合進行系統架構設計,需要回到需求分析階段,完善上述需求後再進行系統架構設計。
系統架構只是壹些模型圖,是人們理解系統和交流的工具。這些模型圖需要提供給系統利益相關者來了解系統,包括項目經理、產品經理、開發人員、系統運維人員、客戶、項目投資人等等。這些利益相關者有不同的知識背景,對同壹個架構模型圖有不同的認知和理解:如果妳把開發架構模型圖拿給產品經理或者客戶看,他們肯定看不懂或者理解不了;同理,如果只把邏輯架構圖展示給開發人員,也無法正確引導開發人員搭建開發環境。
因此,在設計系統架構時,架構師需要從系統的不同維度進行設計,以滿足系統涉眾理解系統架構的需求。架構設計模型主要包括五個模型圖:邏輯架構、開發架構、數據架構、物理架構和操作架構。壹般來說,需要設計的系統架構模型有三種:邏輯架構、開發架構和物理架構。數據架構模型壹般設計在數據庫中,運行架構與物理架構基本相似,只是在物理架構上增加了數據流方向,所以有些系統設計使用物理架構而不是運行架構。
設計邏輯架構模型
邏輯架構模型主要是確定系統的功能範圍和系統劃分。在設計邏輯架構模型時,可以把握兩個關鍵點:壹個關鍵點是對系統進行邏輯劃分,將壹個大系統劃分為多個子系統;另壹個重點是明確子系統之間的協作和調用關系。
邏輯架構模型圖包括系統流程圖和系統結構圖。系統流程圖描述了系統的子系統、相關文件和數據之間的關系,記錄了整個系統的架構。系統結構圖,也稱為層次圖,以層次化的方式描述系統自上而下的功能分解。
下圖分別是網絡系統的系統流程圖和系統結構圖。
以上網絡系統流程圖和結構圖是根據網絡系統需求說明書中給出的功能和業務範圍繪制的。
設計和開發架構模型
開發架構模型圖是給開發者看的,開發架構模型指導開發者如何構造系統的開發環境。開發環境包括系統開發框架的選擇、開發工具和編程語言、模塊劃分等。下圖是網絡系統開發架構的模型圖。
開發架構模型圖顯示技術體系為B/S結構,開發框架為SSM,開發語言為JavaEE。系統采用三層結構,即表示層、WEB應用層和數據層。表示層是JSP頁面,運行在瀏覽器中,表示層是MVC視圖。WEB應用層的控制層是MVC的控制器,業務邏輯層是MVC的服務,實體層是MVC的POJO。數據層由MyBaits數據庫開發框架組成。
設計物理架構模型
物理架構模型面向系統部署人員和運維人員,主要給出系統的部署環境模型,包括網絡環境、硬件環境和軟件環境。下圖是系統部署網絡環境的模型圖。
從上面的網絡環境模型圖可以看出,系統部署只需要壹臺主機,需要支持HTTP協議和遠程桌面協議。系統可以部署到阿裏雲或者騰訊雲。
系統的架構設計主要涉及三個模型圖,即邏輯架構模型、開發架構模型和物理架構模型。邏輯架構模型壹般用系統流程圖和系統結構圖建模;開發架構模型沒有標準的模型圖,可以用PPT或Visio繪圖工具繪制。物理架構模型主要由網絡環境、硬件和軟件環境組成。