如何有序、高效、全面做好軟體架構設計呢?作為一名軟體架構師,應該具備的基本素質是:掌握架構設計的基本步驟,且清晰每個步驟的工作內容。本文結合實際項目經驗,將對軟體架構設計的步驟及工作內容進行介紹。
在整個軟體架構設計過程中,筆者結合自身項目經驗將架構設計步驟羅列為6個大步驟,依次是需求分析、領域建模、確定關鍵需求、概念架構設計、細化架構設計、架構驗證。在實際項目過程中,也是遵循這6個大步驟進行軟體架構設計的。軟體架構設計步驟如下圖所示:
架構設計的6個步驟
那麼,每一個步驟具體工作內容包含哪些呢?
(1)需求分析
我們知道,需求分析的目標是找出功能、質量和約束這三個方面的要求。首要工作是溝通以獲取需求,然後是確定非功能性需求、確定系統目標、建立用例模型等,最終以需求說明書的形式作為產出物。
(2)領域建模
領域建模的目標是構建業務領域模型,業務決定功能,功能決定模型。領域建模主要工作是與業務領域專家一起,整理和掌握軟體功能和非功能要求的業務數據、業務流程等。
(3)確定關鍵需求
具體而言,確定關鍵需求工作包括:為了確定關鍵功能而進行的功能需求和約束需求的研究;為了確定關鍵質量而進行的質量需求和約束需求研究。
(4)概念架構設計
具體包含五項工作:決定如何劃分頂級子系統、架構風格選型、開發技術選型、二次開發技術選型、集成技術選項。
(5)細化架構設計
從邏輯架構、開發架構、運行架構、物理架構、數據架構五個方面出發,對模塊劃分、接口定義、領域模型、技術選型、控制流程、硬體分布、軟體部署、存儲格式等內容進行詳細設計。
(6)架構驗證
對後續工作產生重大影響且造成返工代價很高的任何工作,都應該安排原型測試和評審工作。同時,進行必要的軟體技術選型驗證工作。