软件架构设计 ADMEMS方法体系
ADMEMS是Architecture Design Method has been Extended to Method System的簡稱,是由CSAI顧問團(tuán)架構(gòu)設(shè)計專家組于2009年11月在第六屆中國軟件大會上公開發(fā)布的一個軟件架構(gòu)設(shè)計方法。作為方法體系,ADMEMS通過3個階段和1個貫穿環(huán)節(jié),來覆蓋“需求進(jìn),架構(gòu)出”的架構(gòu)設(shè)計完整工作內(nèi)容。其中“3個階段”是指預(yù)備架構(gòu)階段(PA階段:把握需求特點,確定架構(gòu)驅(qū)動力)、概念架構(gòu)階段(CA階段:根據(jù)重大需求,確定概念架構(gòu))、細(xì)化架構(gòu)階段(RA階段:細(xì)化架構(gòu)設(shè)計,關(guān)注不同視圖),“1個貫穿環(huán)節(jié)”是指對非功能目標(biāo)的考慮。
《一線架構(gòu)師實踐》一書詳細(xì)的介紹了ADMEMS體系。它將軟件架構(gòu)的過程分為三個階段和一個貫穿環(huán)節(jié),進(jìn)而覆蓋“需求進(jìn),架構(gòu)出”的架構(gòu)設(shè)計的完整工作內(nèi)容。基中Pre-Architecture階段,意在全面理解需求,從而把握需求特點,進(jìn)而確定架構(gòu)設(shè)計驅(qū)動力。而Conceptual Architecture階段所關(guān)注的是如何通過關(guān)鍵功能、關(guān)鍵質(zhì)量及業(yè)務(wù)需求和約束來塑造概念架構(gòu)。Refined Architecture階段,則主要通過5視圖方法進(jìn)行細(xì)化架構(gòu)的設(shè)計。而非功能需求不可能“速戰(zhàn)速決”,因此,對于非功能需求的關(guān)注會貫穿架構(gòu)設(shè)計的整個過程。
Pre-Architecture,是架構(gòu)設(shè)計的最前期階段,其工作目標(biāo)包括:理解需求、建議需求大局觀、確認(rèn)架構(gòu)設(shè)計方向等。其對于整個架構(gòu)設(shè)計的意義在于,著眼于全局把握需求、降低架構(gòu)失敗的風(fēng)險、盡早地開始架構(gòu)設(shè)計、明確架構(gòu)設(shè)計的驅(qū)動力。需要注意的是,不同需求影響架構(gòu)的不同原理,關(guān)鍵需求決定架構(gòu),而其他需求用來來驗證架構(gòu)。ADMEMS將Pre-Architecture階段分為四個步驟,即需求結(jié)構(gòu)化、分析約束影響、確定關(guān)鍵質(zhì)量、確定關(guān)鍵功能。
“ADMEMS矩陣”是Pre-Architecture階段的核心方法。 “ADMEMS矩陣”又稱為“需求層次-需求方面矩陣”,幫助架構(gòu)師告別需求列表的陳舊方式,順利過渡到二維需求觀,借此避免遺漏需求、并進(jìn)一步理清需求間關(guān)系和發(fā)現(xiàn)衍生需求。
Conceptual Architecture,即概念架構(gòu)。概念架構(gòu)不是理想架構(gòu),同樣概念架構(gòu)也不是概念視圖,概念架構(gòu)作為架構(gòu)設(shè)計的一個階段,必須在細(xì)化架構(gòu)設(shè)計階段之前,針對重大需求、特色需求、高風(fēng)險需求的要求,給出高層的解決方案,形成穩(wěn)定的高層架構(gòu)設(shè)計成果。ADMEMS將Conceptual Architecture階段分為三個步驟,即:
初步設(shè)計:基于關(guān)鍵功能,借助魯棒圖進(jìn)行以發(fā)現(xiàn)職責(zé)為目的的初步設(shè)計;
高層分割:對系統(tǒng)這個黑盒進(jìn)行高層切分,如切分復(fù)雜系統(tǒng)為多個二級系統(tǒng),或者直接切分系統(tǒng)為具體子系統(tǒng);實踐中最常用的系統(tǒng)切分方式為分層,有Layer(邏輯層)、Tier(物理層)、按通用性分層生技術(shù)堆疊等流派。
考慮非功能需求:概念架構(gòu)并非理想化架構(gòu),因此不僅要考慮功能,也必須考慮非功能,通常采用的方法為,目標(biāo)-場景-決策表。
Refined Architecture是相對于Conceptual Architecture而言的,即細(xì)化架構(gòu)。ADMEMS主要通過5視圖法對細(xì)化架構(gòu)階段進(jìn)行實踐。5視圖法的主要思想為:錯落有致地將眾多技術(shù)關(guān)注點劃分“群落”,“群落”內(nèi)高聚合,“群落”間松耦合。應(yīng)用5視圖方法,便于架構(gòu)師設(shè)計思維的“有序”展開。不同視圖源于不同的思維角度及不同的技術(shù)關(guān)注點,即:
邏輯架構(gòu):關(guān)注如何劃分子系統(tǒng)、如何定義接口、如何運用質(zhì)疑驅(qū)動的思維套路等;
物理架構(gòu):關(guān)注硬件選擇與物理拓?fù)洹④浖接布挠成潢P(guān)系、方案優(yōu)化;
運行架構(gòu):關(guān)注確定引入哪些控制流、確定每條控制流的任務(wù)、處理相關(guān)問題、進(jìn)一步考慮控制流之間的同步關(guān)系等;
開發(fā)架構(gòu):關(guān)注將“邏輯職責(zé)”映射為“程序單元”、開發(fā)技術(shù)選型、“程序單元”間的關(guān)系等;
數(shù)據(jù)架構(gòu):關(guān)鍵是確定數(shù)據(jù)分布方案。數(shù)據(jù)分布的6種策略:獨立、集中、分區(qū)、復(fù)制、子集、重組;
非功能目標(biāo)的設(shè)計環(huán)節(jié)。非功能目標(biāo)的設(shè)計是以場景技術(shù)為核心手段、以目標(biāo)-場景-決策表為思維工具致力于支撐非功能目標(biāo)的理性設(shè)計過程。經(jīng)過非功能目標(biāo)的設(shè)計,將使得架構(gòu)設(shè)計更有針對性、可操作性更強、避免過度設(shè)計,同時便于系統(tǒng)升級時參考。
目標(biāo)-場景-決策表方法,可以幫助架構(gòu)師快速建議非功能目標(biāo)的設(shè)計思維,更理性地應(yīng)對架構(gòu)師普遍感到棘手的非功能支持問題,提升自己的核心競爭力。
總結(jié)
以上是生活随笔為你收集整理的软件架构设计 ADMEMS方法体系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 热血江湖追魂五星枪3转任务怎么接
- 下一篇: AMD正式公布第七代桌面级APU AM4