软件架构设计 ADMEMS方法体系
ADMEMS是Architecture Design Method has been Extended to Method System的簡稱,是由CSAI顧問團架構設計專家組于2009年11月在第六屆中國軟件大會上公開發布的一個軟件架構設計方法。作為方法體系,ADMEMS通過3個階段和1個貫穿環節,來覆蓋“需求進,架構出”的架構設計完整工作內容。其中“3個階段”是指預備架構階段(PA階段:把握需求特點,確定架構驅動力)、概念架構階段(CA階段:根據重大需求,確定概念架構)、細化架構階段(RA階段:細化架構設計,關注不同視圖),“1個貫穿環節”是指對非功能目標的考慮。
《一線架構師實踐》一書詳細的介紹了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種策略:獨立、集中、分區、復制、子集、重組;
非功能目標的設計環節。非功能目標的設計是以場景技術為核心手段、以目標-場景-決策表為思維工具致力于支撐非功能目標的理性設計過程。經過非功能目標的設計,將使得架構設計更有針對性、可操作性更強、避免過度設計,同時便于系統升級時參考。
目標-場景-決策表方法,可以幫助架構師快速建議非功能目標的設計思維,更理性地應對架構師普遍感到棘手的非功能支持問題,提升自己的核心競爭力。
總結
以上是生活随笔為你收集整理的软件架构设计 ADMEMS方法体系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 热血江湖追魂五星枪3转任务怎么接
- 下一篇: 军事新闻的保密要求有哪些?