向架構(gòu)師進軍:如何編寫軟件架構(gòu)文檔
問:為什么要編寫軟件架構(gòu)文檔,它的好處是什么?
答:
有文檔的架構(gòu)有助于不同利益相關(guān)者之間進行有效的溝通。
有文檔的架構(gòu)可以提供追溯其他工作產(chǎn)品的上下文。
有文檔的架構(gòu)可以傳達可供選擇的架構(gòu)解決方案。
有文檔的架構(gòu)有助于從一個現(xiàn)有架構(gòu)轉(zhuǎn)換到一個新架構(gòu)計劃的計劃編制。
有文檔的架構(gòu)通常能通過識別組成架構(gòu)的元素及它們之間的依賴性來幫助編制計劃。
有文檔的架構(gòu)可以提醒架構(gòu)師在其所作的某些決定背后的基本原理。
有文檔的架構(gòu)有助于識別哪些資源可重用以及可重用的時機。
有文檔的架構(gòu)有助于架構(gòu)的評估。
問:編寫軟件架構(gòu)文檔的步驟是什么?
答:
識別利益相關(guān)者組。
選擇視點。
創(chuàng)建工作產(chǎn)品。
給架構(gòu)描述打包。
問:編寫軟件架構(gòu)文檔的視點有哪些?
答:
視點分為兩類,分別是基礎視點和交叉視點。其中基本視點的類型有四種,分別為:
(1)功能性視點:它關(guān)注支持系統(tǒng)功能性的元素。
(2)部署視點:它關(guān)注支持系統(tǒng)分布的元素。
(3)需求視點:為形成架構(gòu)的系統(tǒng)需求提供說明,它包括功能性需求、品質(zhì)和約束。
(4)確認視點:為系統(tǒng)提供必需的功能、展示必需的品質(zhì)和適應定義的約束提供說明。
交叉視點是從某一特定功能的視點出發(fā),與基礎視點交叉綜合關(guān)注的元素,下圖為一交叉視點的例子。
問:軟件架構(gòu)通常要描述框架,應該從哪些角度去描述?
答:
多重視圖和場景視圖的使用。
實現(xiàn)層級。
交叉關(guān)注。
問:軟件架構(gòu)的4+1視圖模型是什么?
答:
軟件架構(gòu)的4+1視圖是指邏輯視圖、開發(fā)視圖、過程視圖、物理視圖和場景(視圖)。
邏輯視圖是設計的對象模型。
過程視圖獲取設計的并發(fā)和同步方面的信息。
開發(fā)視圖描述的是軟件開發(fā)環(huán)境中的軟件靜態(tài)組織。
物理視圖描述了軟件與硬件之間的映射,還反映了它在分布式方面的信息。