一線架構師實踐指南閱讀筆記03

本次閱讀我主要關注書裏面講的一些方法以及書中的體會。書中提到了ADMEMS矩陣方法ADMEMS (Architecture Design Method has been Extended to Method System)貫穿本書的架構設計的方法體系,看到這個可以影響架構走向的方法,我進一步對其做了深入的研究。

ADMEMS方法體系將軟件架構的過程分爲三個階段和一個貫穿環節,進而覆蓋“需求進,架構出”的架構設計的完整工作內容。基中Pre-Architecture階段,意在全面理解需求,從而把握需求特點,進而確定架構設計驅動力。而Conceptual Architecture階段所關注的是如何通過關鍵功能、關鍵質量及業務需求和約束來塑造概念架構。Refined Architecture階段,則主要通過5視圖方法進行細化架構的設計。而非功能需求不可能“速戰速決”,因此,對於非功能需求的關注會貫穿架構設計的整個過程。

Pre-Architecture,是架構設計的最前期階段,其工作目標包括:理解需求、建議需求大局觀、確認架構設計方向等。其對於整個架構設計的意義在於,着眼於全局把握需求、降低架構失敗的風險、儘早地開始架構設計、明確架構設計的驅動力。需要注意的是,不同需求影響架構的不同原理,關鍵需求決定架構,而其他需求用來來驗證架構。ADMEMS將Pre-Architecture階段分爲四個步驟,即需求結構化、分析約束影響、確定關鍵質量、確定關鍵功能。

“ADMEMS矩陣”是Pre-Architecture階段的核心方法。 “ADMEMS矩陣”又稱爲“需求層次-需求方面矩陣”,幫助架構師告別需求列表的陳舊方式,順利過渡到二維需求觀,藉此避免遺漏需求、並進一步理清需求間關係和發現衍生需求。

Conceptual Architecture,即概念架構。概念架構不是理想架構,同樣概念架構也不是概念視圖,概念架構作爲架構設計的一個階段,必須在細化架構設計階段之前,針對重大需求、特色需求、高風險需求的要求,給出高層的解決方案,形成穩定的高層架構設計成果。ADMEMS將Conceptual Architecture階段分爲三個步驟,即:

初步設計:基於關鍵功能,藉助魯棒圖進行以發現職責爲目的的初步設計;

高層分割:對系統這個黑盒進行高層切分,如切分複雜系統爲多個二級系統,或者直接切分系統爲具體子系統;實踐中最常用的系統切分方式爲分層,有Layer(邏輯層)、Tier(物理層)、按通用性分層生技術堆疊等流派。

考慮非功能需求:概念架構並非理想化架構,因此不僅要考慮功能,也必須考慮非功能,通常採用的方法爲,目標-場景-決策表。

Refined Architecture是相對於Conceptual Architecture而言的,即細化架構。ADMEMS主要通過5視圖法對細化架構階段進行實踐。5視圖法的主要思想爲:錯落有致地將衆多技術關注點劃分“羣落”,“羣落”內高聚合,“羣落”間松耦合。應用5視圖方法,便於架構師設計思維的“有序”展開。不同視圖源於不同的思維角度及不同的技術關注點,即:

邏輯架構:關注如何劃分子系統、如何定義接口、如何運用質疑驅動的思維套路等;

物理架構:關注硬件選擇與物理拓撲、軟件到硬件的映射關係、方案優化;

運行架構:關注確定引入哪些控制流、確定每條控制流的任務、處理相關問題、進一步考慮控制流之間的同步關係等;

開發架構:關注將“邏輯職責”映射爲“程序單元”、開發技術選型、“程序單元”間的關係等;

數據架構:關鍵是確定數據分佈方案。數據分佈的6種策略:獨立、集中、分區、複製、子集、重組;

非功能目標的設計環節。非功能目標的設計是以場景技術爲核心手段、以目標-場景-決策表爲思維工具致力於支撐非功能目標的理性設計過程。經過非功能目標的設計,將使得架構設計更有針對性、可操作性更強、避免過度設計,同時便於系統升級時參考。

目標-場景-決策表方法,可以幫助架構師快速建議非功能目標的設計思維,更理性地應對架構師普遍感到棘手的非功能支持問題,提升自己的核心競爭力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章