如何評估架構(gòu)_第1頁
如何評估架構(gòu)_第2頁
如何評估架構(gòu)_第3頁
如何評估架構(gòu)_第4頁
如何評估架構(gòu)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、關(guān)注軟件架構(gòu)的系列主題 -如何評估架構(gòu) Overview2022.3.2一、引言一、引言二二、ATAMATAM三、三、CBAMCBAM提綱四四、架構(gòu)編檔與評估、架構(gòu)編檔與評估時間參與者收益技巧前置條件結(jié)果為什么要評估軟件架構(gòu)? 我們需要了解軟件架構(gòu)設(shè)計的原因,因為很多事情都依賴于架構(gòu),并且我們能夠?qū)軜?gòu)進(jìn)行評估。 在每個基于架構(gòu)的開發(fā)方法中都應(yīng)該進(jìn)行架構(gòu)評估。時間參與者收益技巧前置條件結(jié)果時間 在軟件的生命期內(nèi)近可能早的評估軟件架構(gòu)幾乎總是經(jīng)濟高效的。 可以在系統(tǒng)生命周期的許多個點上進(jìn)行架構(gòu)評估。參與者項目負(fù)責(zé)人、架構(gòu)師有經(jīng)驗的評估團隊其他涉眾時間參與者收益技巧前置條件結(jié)果經(jīng)濟性 在8年的時間

2、內(nèi)對架構(gòu)進(jìn)行評估的經(jīng)驗表明,進(jìn)行全面的架構(gòu)評估平均可以節(jié)約10%的成本促進(jìn)編檔 向被評審人員說明架構(gòu)評估的重點并要求他們在評估前表述構(gòu)架,意味著被評審人員必須對架構(gòu)進(jìn)行編檔了解原理 架構(gòu)評估通常側(cè)重于需要回答的一些具體問題的某幾個特定的方面,回答這些問題通常需要解釋設(shè)計選擇及其基本原理驗證需求討論和檢查架構(gòu)滿足其需求的情況可以展開對需求的討論,結(jié)果是能更清楚的理解需求,通常還能夠知道需求的優(yōu)先級架構(gòu)改進(jìn)架構(gòu)評估不僅在評估后得到了更好的架構(gòu),隨著時間的推移,組織就培養(yǎng)了一種提倡優(yōu)秀的架構(gòu)設(shè)計的文化時間參與者收益技巧前置條件結(jié)果提問技巧 ATAM和CBAM方法就是“提問技巧”的示例,在假定的架構(gòu)上

3、就可以很好的應(yīng)用它,并且可以在生命期的早期應(yīng)用。度量技巧 提問技巧的補充是度量技巧,它依賴于對某些類似的定量度量,使用度量技巧時,必須有已經(jīng)存在的、可以被度量的工作產(chǎn)品。時間參與者收益技巧前置條件結(jié)果前置條件表述清晰的架構(gòu)目標(biāo)與需求,只有需求明確,才能評估一個架構(gòu)是好還是壞;可控制的范圍,列出幾個明確的目標(biāo),數(shù)量最少應(yīng)該有3-5個;經(jīng)濟高效,ATAM與CBAM方法適用于大中型項目,對于小項目可能就不是經(jīng)濟高效的了;關(guān)鍵人員參與,務(wù)必確保能夠系統(tǒng)、清晰表述架構(gòu)的人能參與;稱職的評估團隊,在理想狀態(tài)下,評估團隊?wèi)?yīng)該是公司內(nèi)的一個獨立實體,它們必須公正、客觀并受人尊重。時間參與者收益技巧前置條件結(jié)果

4、結(jié)果(應(yīng)該包含,但不限于)一個簡潔清晰的架構(gòu)表述一個簡潔清晰的業(yè)務(wù)目標(biāo)表述代表質(zhì)量需求的場景集合架構(gòu)決策到質(zhì)量需求的映射確定的敏感點和權(quán)衡點集合有風(fēng)險決策和無風(fēng)險決策風(fēng)險主題的集合根據(jù)ROI(投資回報率)對架構(gòu)策略的排序(僅限于CBAM)一、引言一、引言二二、ATAMATAM三、三、CBAMCBAM提綱四四、架構(gòu)編檔與評估、架構(gòu)編檔與評估ATAM,架構(gòu)權(quán)衡分析法,是評估軟件架構(gòu)的一種綜合全面的方法,它不僅可以揭示出架構(gòu)滿足特定質(zhì)量目標(biāo)的情況,而且可以使我們更清楚的認(rèn)識到質(zhì)量目標(biāo)之間的聯(lián)系-即如何權(quán)衡諸多質(zhì)量目標(biāo)。第0階段通常是評估小組的負(fù)責(zé)人與項目決策者進(jìn)行溝通,做好評估前的準(zhǔn)備工作第1階段通

5、常是評估小組與項目決策者聯(lián)合工作,收集有價值的資料并對其進(jìn)行整理分析第2階段通常是評估小組、項目決策者以及架構(gòu)涉眾聯(lián)合工作,繼續(xù)第一階段的分析,并最終給出評估結(jié)果第3階段通常是評估小組和評估的客戶,是對前兩個階段工作的總結(jié)以及進(jìn)行自我反省與改進(jìn)評估小組,由3-5個有經(jīng)驗的架構(gòu)師組成項目決策者,項目經(jīng)理、開發(fā)經(jīng)理等對項目決策負(fù)責(zé)的人架構(gòu)涉眾,高級主管,開發(fā)人員、測試人員、運維人員等分析階段第1階段與第2階段合起來又稱為ATAM的分析階段,一共有9步組成,其中第16步在第1階段執(zhí)行,第79步在第2階段執(zhí)行。 由評估負(fù)責(zé)人向參加會議的項目負(fù)責(zé)人介紹ATAM,要將整個流程做一個全面的介紹并回答問題第一

6、步 由項目負(fù)責(zé)人從商業(yè)的角度向評估小組介紹系統(tǒng)的概況,包括:系統(tǒng)最重要的功能,任何相關(guān)的技術(shù)、管理、經(jīng)濟和政治限制,與該項目相關(guān)的商業(yè)目標(biāo)和上下文,主要的涉眾,構(gòu)架的驅(qū)動因素(即促使形成該架構(gòu)的主要質(zhì)量屬性目標(biāo))第二步 由項目架構(gòu)師向評估小組介紹整個架構(gòu),這里有一些具體的方法第三步描述驅(qū)動架構(gòu)形成的需求,以及現(xiàn)在已采用的標(biāo)準(zhǔn)/模型/方法(23張幻燈片)重要的架構(gòu)信息(48張幻燈片) 上下文圖:系統(tǒng)將存在的上下文,該系統(tǒng)將與之交互的人或其他系統(tǒng); 模塊或分層視圖:描述系統(tǒng)功能分解的模塊(可以是子系統(tǒng)或?qū)樱?,以及作為其具體內(nèi)容; 組件-連接器視圖:進(jìn)程、線程及其同步關(guān)系、數(shù)據(jù)流及將其連接起來的事件

7、; 部署視圖:CPU、存儲器、外設(shè)/傳感器以及連接它們的網(wǎng)絡(luò)和通信設(shè)備;還顯示了在各個處理器上執(zhí)行的進(jìn)程。架構(gòu)方法、模式或所采用的戰(zhàn)術(shù),包括它們實現(xiàn)了什么質(zhì)量屬性以及這些方法如何實現(xiàn)這些屬性的描述(68張幻燈片) 商業(yè)產(chǎn)品的使用及其選擇/集成(12張幻燈片); 對13個最重要的用例場景的介紹。如果有可能的話,包括對每個場景的運行時資源使用情況的介紹(13張幻燈片); 對13個最重要的變更場景的介紹。如果有可能的話,根據(jù)所變更的模塊或接口來描述變更的影響,即預(yù)計的變更的規(guī)模/難度(13張幻燈片); 與實現(xiàn)促使形成該架構(gòu)的需求相關(guān)的架構(gòu)問題/風(fēng)險(23張幻燈片) 術(shù)語表(1張幻燈片)第三步需要項目

8、架構(gòu)師介紹項目的架構(gòu),下面這個20頁PPT的提綱是很好的參考。 評估小組對項目構(gòu)架中很明顯的模式和方法進(jìn)行記錄和分類,便于后續(xù)的分析第四步 評估小組通過“質(zhì)量屬性效用樹”的方式對系統(tǒng)的質(zhì)量屬性進(jìn)行梳理與場景對應(yīng),分為三層,分別是質(zhì)量屬性、屬性求精以及場景描述第五步 評估小組要對其中的場景進(jìn)行細(xì)致的分析,目的是為了找出這些架構(gòu)在支持這些場景的實現(xiàn)時存在哪些風(fēng)險,哪些敏感點,哪些權(quán)衡點第六步質(zhì)量屬性屬性求精場景性能交易響應(yīng)時間在系統(tǒng)處于峰期負(fù)載時,為對地址變更通知作出響應(yīng),用戶更新病人的賬戶,交易要在0.75秒內(nèi)完成(H,M)吞吐量在峰期負(fù)載下,系統(tǒng)每秒能夠完成150次范式化的事務(wù)可配置性醫(yī)院提高

9、某項服務(wù)的費用。配置小組在一個工作日內(nèi)完成該改變,不需要改變原代碼(H,M)易用性熟練度培訓(xùn)讓有2年及以上行業(yè)經(jīng)驗的員工能在1周內(nèi)掌握該系統(tǒng)的核心功能(M,L)質(zhì)量屬性:不必過分追求質(zhì)量屬性的命名,按照涉眾能夠接受的名字即可,其含義主要還是取決于場景。場景:一個場景中不能包含過多的質(zhì)量屬性,并且每個場景都應(yīng)該有自己的優(yōu)先級和難易度的定義(例如H、M和L分別對應(yīng)了高、中、低)。有敏感點架構(gòu)A有風(fēng)險場景A分析記錄架構(gòu)A為有風(fēng)險決策有敏感點架構(gòu)B有風(fēng)險場景B分析有敏感點架構(gòu)A有風(fēng)險場景C分析記錄架構(gòu)B為有風(fēng)險決策記錄架構(gòu)A為權(quán)衡點有敏感點架構(gòu)D無風(fēng)險場景D分析記錄架構(gòu)D為無風(fēng)險決策 第一階段結(jié)束后,

10、評估小組將得到一份關(guān)于架構(gòu)的記錄與分析文檔,其中包括質(zhì)量屬性效用樹、敏感點、有風(fēng)險決策、無風(fēng)險決策以及權(quán)衡點,這些內(nèi)容將作為第二階段的輸入物。 在第二階段啟動之前,評估小組應(yīng)該拿出1-2周的時間來與項目組成員進(jìn)行一些非常正式的溝通,使得了解能夠更加的徹底,當(dāng)涉眾被召集到一起后,第二階段就開始了,在其正式步驟開始之前,評估小組還需要向涉眾介紹一遍ATAM的評估方法。 涉眾集中討論已經(jīng)給出的質(zhì)量屬性效能樹中的場景,可以為其進(jìn)行優(yōu)先級排序,并可以補充新的場景。第七步 按照第六步的方法對涉眾評選出來的部分最優(yōu)先的場景再進(jìn)行一次架構(gòu)分析。第八步 形成最后的ATAM文檔(在引言中已經(jīng)描述)第九步 讓他們通

11、過投票表決來確定哪些場景是最重要的。在分配選票時,每個涉眾都會拿到相當(dāng)于總場景數(shù)的30%的選票,并且此數(shù)值只入不舍。在投票時,涉眾可以隨意使用這些選票:可以把這6張選票都投給1個場景,也可以給1個場景投1張選票,或者是介于以上兩者之間的其他方式。 最終,我們可以選擇“在某得票數(shù)之上”的場景,例如,評估小組可能只考慮得票數(shù)最多的前5個場景。質(zhì)量屬性需求的優(yōu)先級劃分所有架構(gòu)方法的編目針對方法或質(zhì)量屬性的分析問題架構(gòu)方法與質(zhì)量屬性的對應(yīng)有風(fēng)險決策和無風(fēng)險決策敏感點和權(quán)衡點(1)ATAM方法表述(2)商業(yè)動機的表述*(3)架構(gòu)的表述*(4)確定架構(gòu)方法*(5)生成質(zhì)量屬性效用樹*(6)分析架構(gòu)方法*(

12、7)集體討論并確定場景優(yōu)先級*(8)分析架構(gòu)方法*(9)結(jié)果的表述*表示該步驟是該結(jié)果的次要提供者*表示該步驟是該結(jié)果的主要提供者結(jié)果步驟 它只會告訴你在當(dāng)前給定的條件下,總體需求是否得到了滿足,并且是足夠好的滿足ATAM不是需求評估 因為它在開發(fā)之前就可以啟動ATAM不是代碼評估 因為它在開發(fā)之前就可以啟動ATAM不是系統(tǒng)測試 ATAM所發(fā)現(xiàn)的敏感點、權(quán)衡點,有風(fēng)險決策、無風(fēng)險決策都是由參與者的能力決定的ATAM不是精確方法總體來說,ATAM是一個重量級的架構(gòu)健壯性評估方法,它通過對場景的分析,挖掘出架構(gòu)設(shè)計中的問題及風(fēng)險點,以便項目組進(jìn)行改進(jìn)。一、引言一、引言二二、ATAMATAM三、三、

13、CBAMCBAM提綱四四、架構(gòu)編檔與評估、架構(gòu)編檔與評估 ATAM遺漏了一個重要的考慮事項:在大型復(fù)雜系統(tǒng)中最大的權(quán)衡通常必須考慮經(jīng)濟性。我們需要一個考慮成本、收益、風(fēng)險和進(jìn)度的軟件的“經(jīng)濟”模型。 CBAM,成本收益分析方法,它構(gòu)建在ATAM之上,提供了對技術(shù)的經(jīng)濟問題以及構(gòu)架決策的評估。效用-響應(yīng)曲線分析場景對應(yīng)場景設(shè)計架構(gòu)策略計算每個策略產(chǎn)生的收益根據(jù)策略成本計算ROI1000效用質(zhì)量屬性響應(yīng)abBi = (bi,j Wj)jRi = Bi / Ci 規(guī)劃效用-響應(yīng)曲線通??梢圆捎靡韵滤牟絹韺崿F(xiàn)。1000效用質(zhì)量屬性響應(yīng)ab 對從ATAM中繼承過來的場景進(jìn)行整理,可以選擇讓涉眾重新投票來

14、確定優(yōu)先級(經(jīng)濟性評估可能會導(dǎo)致優(yōu)先級變化),取取1/3的場景進(jìn)行后續(xù)評估的場景進(jìn)行后續(xù)評估。第一步 對場景的響應(yīng)目標(biāo)進(jìn)行求精,定義出每個場景最壞、最好、當(dāng)前最壞、最好、當(dāng)前以及期望以及期望的響應(yīng)目標(biāo)第二步 再次確定優(yōu)先級,這次的不同是在確定了響應(yīng)目標(biāo)的前提下,當(dāng)然我們可以采用投票的方式,取取1/2的場景進(jìn)行后續(xù)評估的場景進(jìn)行后續(xù)評估。第三步 根據(jù)每個場景的四個響應(yīng)值,來確定其相對應(yīng)的效用,這里只是給出一個效用得分。需要注意的時,最壞的響應(yīng)目標(biāo)也未必對應(yīng)著0分,當(dāng)然最好的也未必就是100分,要根據(jù)實際情況給出。第四步響應(yīng)目標(biāo)場景描述票數(shù)最壞當(dāng)前期望最好1減少手工干預(yù)導(dǎo)致的分配請求掛起的數(shù)據(jù)分配

15、故障1010%掛起5%掛起1%掛起0%掛起3減少在訂單提交過程中失敗的訂單數(shù)量1510%失敗5%失敗1%失敗0%失敗5減少會導(dǎo)致丟失訂單的訂單故障1510%丟失1%以下丟失0%丟失0%丟失效用得分場景描述票數(shù)最壞當(dāng)前期望最好1減少手工干預(yù)導(dǎo)致的分配請求掛起的數(shù)據(jù)分配故障101080951003減少在訂單提交過程中失敗的訂單數(shù)量152570951005減少會導(dǎo)致丟失訂單的訂單故據(jù)最壞、當(dāng)前、期望、最好四個基本點,構(gòu)造整個效用-響應(yīng)曲線 每一個架構(gòu)策略都有可能對應(yīng)一到多個場景,每一個場景也有可能對應(yīng)一道多個架構(gòu)策略。為了能夠計算架構(gòu)策略的收益,因此必須給出每個場景在采用了

16、架構(gòu)之后能夠達(dá)到的新響應(yīng)情況,如下表所示。策略名稱描述影響的場景當(dāng)前的響應(yīng)架構(gòu)達(dá)到的響應(yīng)1訂單提交的持續(xù)性訂單一到達(dá)系統(tǒng)就存儲該訂單35%失敗2%失敗51%以下丟失0%丟失5訂單的重新分配允許操作人員重新分配訂單15%掛起2%掛起7被迫的完成訂單允許操作人員跳過由于數(shù)據(jù)質(zhì)量限制導(dǎo)致的系統(tǒng)不可用15%掛起3%掛起 根據(jù)效用-響應(yīng)曲線,代入架構(gòu)達(dá)到的響應(yīng),計算出架構(gòu)達(dá)到的響應(yīng)效用。 根據(jù)每個場景架構(gòu)達(dá)到的效用與其當(dāng)前的效用的差值,我們可以得出效用提升的大小,再乘以票數(shù)(暨權(quán)重)就可以得到這個場景的收益。 一個架構(gòu)策略對應(yīng)的所有場景的收益和就是這個架構(gòu)策略的總收益。策略名稱影響的場景票數(shù)當(dāng)前的效用架構(gòu)達(dá)到的效用收益1訂單提交的持續(xù)性315709015*20=3005157010015*30=4505訂單的重新分配110809010*10=1007被迫的完成訂單110808510*5=50架構(gòu)策略1總收益:300+450=750架構(gòu)策略5總收益:100架構(gòu)策略7總收益:50 估算成本的方式通常以人天為單位,因此如果我們要估算一個架構(gòu)策略的成本就應(yīng)該考察實現(xiàn)它所需要的人天數(shù),一般來說這由提出它的架構(gòu)師給出,如果最終這個架構(gòu)策略被采納,那么項目組就應(yīng)該將其視為一個任務(wù),并按照其估算監(jiān)督它的執(zhí)行。策略名稱總收

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論