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