1. 邏輯架構
邏輯架構的重點是考慮軟件功能性需求。數據庫
No.安全 |
考慮的方面網絡 |
產出物架構 |
工具併發 |
說明框架 |
1異步 |
系統功能劃分爲幾個子系統與功能模塊?分佈式 |
系統功能樹工具 |
樹型結構圖性能 |
|
2 |
向什麼用戶提供什麼樣的功能? |
用例模型 |
UML用例圖 |
體現用戶和行爲 |
3 |
每一個功能都是怎樣的操做流程與分支? |
用例描述 |
用例描述表
|
含輸入輸出、事件流分析; 不要有界面描述 |
UML活動圖 |
進行業務流程分析,包括泳道圖 |
|||
4 |
如何經過界面與用戶交互?怎樣交互? |
魯棒分析 |
魯棒圖 |
經過對「用例描述表」進行原文分析法揀出名詞和動詞 |
5 |
應當設計哪些類與界面?怎樣設計? |
領域模型 |
UML類圖 |
|
6 |
與哪些外部系統接口?怎樣接口? |
接口描述 |
UML類圖 |
|
2. 開發架構
開發架構重點關注的是開發編碼實現方面的問題。
No. |
考慮的方面 |
產出物 |
工具 |
說明 |
1 |
分層結構設計 |
分層架構圖(開發架構圖) |
各類繪圖工具 |
好的分層結構支持自動化測試 |
2 |
開發技術選項 |
開發語言 開發框架 開發工具 |
|
考慮商用產品、開源框架、自研框架 |
3 |
模塊劃分 |
源碼工程;Project目錄結構; 分包(分庫) |
|
|
4 |
開發規範 |
開發/編碼規範文檔; |
|
|
5 |
軟件質量屬性 |
分析和決策結果 |
|
考慮運行期和開發期軟件質量屬性,並權衡利弊進行決策。 |
3. 數據架構
數據架構不單單要考慮開發中涉及到的數據庫,實體模型,也要考慮物理架構中數據存儲的設計。
No. |
考慮的方面 |
產出物 |
工具 |
說明 |
1 |
數據是集中仍是分佈存儲的?如何考慮分佈式存儲? |
數據架構圖 |
|
|
2 |
領域模型到數據庫表的轉換?表結構關係的設計? |
邏輯模型 物理模型 ER圖 |
Power Designer Visio |
|
3 |
實體如何設計?充血模型和貧血模型? |
UML類圖 |
|
|
4 |
使用什麼數據庫?關係型仍是非關係型? |
選型結果 |
|
|
關係型數據庫 |
非關係型數據庫(NoSQL) |
Oracle(首次發行:1980年) MySQL(首次發行:1995) MS SQL Server(首次發行:1989) PostgreSQL(首次發行:1989) IBM DB2(首次發行:1983) Microsoft Access(首次發行:1992) Sybase ASE(首次發行:1987) SQLite(首次發行:2000) …… |
MongoDB(首次發行:2009) Cassandra(首次發行:2008) Apache CouchDB Hbase Redis db4o BaseX …… |
4. 運行架構
運行架構關注的再也不是全局而是局部,着重關注那些關鍵點與難點,經常須要技術攻關與預研。主要考慮控制流、通信機制、資源爭用、鎖機制、同步異步、併發、串行,同時也要考慮質量屬性。
No. |
考慮的方面 |
產出物 |
工具 |
說明 |
1 |
運行:同步vs.異步;併發vs.串行 |
考慮開發架構中代碼的實現。 |
|
|
2 |
交互:對象間交互;狀態轉換 |
考慮開發架構的合理性,到類、到接口、到代碼。 |
|
|
3 |
質量:安全;可靠;可伸縮 |
考慮開發架構的合理性 |
|
|
4 |
性能:響應時間;吞吐量 |
估算: 在線人數、併發人數; 每秒事務量; 響應時間。 |
|
|
5. 物理架構
物理架構主要考慮硬件選擇和拓撲結構,軟件到硬件的映射,軟硬件的相互影響。
|
考慮的方面 |
產出物 |
工具 |
說明 |
1 |
網絡方面:網絡拓撲;網絡設備;安全機制 |
拓撲圖 安全規範 |
|
|
2 |
性能方面:可靠性、可伸縮性 |
須要什麼樣設備性能 |
|
|
3 |
部署方面:集中式仍是分佈式;組件部署 |
部署圖
|
|
|
實際在執行時有兩種觀念:一是五種視圖按邏輯架構、開發架構、數據架構、運行架構、物理架構順序進行;二是五種視圖穿插進行設計,尤爲是複雜系統,五種視圖穿插進行思考更有利於思考的全局性和完整性。