-- 寫(xiě)在前面,軟件架構(gòu)評(píng)估是一個(gè)大型項(xiàng)目成功的保證,不管是否完全按照書(shū)中的操作來(lái)完成,但這總是一個(gè)必須的過(guò)程。老外的技術(shù)方面的書(shū)一般都很實(shí)在,在提出一定的事實(shí)和相應(yīng)的理論基礎(chǔ)后,一般就會(huì)列出些很具體的方法,可操作性都比較強(qiáng),當(dāng)然,其實(shí)其理論在我們看來(lái)也沒(méi)什么高深之處,可能是思維方式和長(zhǎng)期教育環(huán)境的不同造成的,在我看來(lái),他們的理論就是對(duì)自己的觀點(diǎn)或者方法的一個(gè)形而上的邏輯證明,但恰恰這就是最重要的,如果在邏輯上就不具有可推導(dǎo)性,具體的方法再怎么說(shuō)得天花亂墜也沒(méi)有可信度,另外翻譯得也不錯(cuò),不象有些書(shū),根本就是外行瞎折騰,翻譯出來(lái)只有鬼才看得懂,不如直接去看原版。
建議有空詳讀原文,我把這些摘錄下來(lái)是希望能有所參照。
《軟件架構(gòu)評(píng)估》學(xué)習(xí)筆記
〈Evluating Software Architectures〉 Authors: Paul Clements, Rick Kazman, Mark Klein
清華大學(xué)出版社 孫學(xué)濤 朱衛(wèi)東 趙凱 譯
概念:
架構(gòu)方法: 就是一組架構(gòu)決策,各個(gè)架構(gòu)決策互相協(xié)調(diào),共同實(shí)現(xiàn)所期望的質(zhì)量屬性目標(biāo)。
架構(gòu)評(píng)估: 架構(gòu)來(lái)自許多離散的決策,而這些決策是可以被分析和審查的。
ATAM: 架構(gòu)權(quán)衡分析方法
Architectures Trade-off Analysis Method
ATAM方法步驟:
共4大部分,9個(gè)步驟
以上步驟并不是固定的, 有時(shí)必須對(duì)評(píng)估規(guī)劃做某些動(dòng)態(tài)的更改,以容許人員或架構(gòu)信息的改變。
ATAM評(píng)估方法的的階段:
評(píng)估小組各成員的角色及其職責(zé)
商業(yè)目標(biāo)分析結(jié)果表:
系統(tǒng)質(zhì)量屬性列表:
第一階段獲得的帶優(yōu)先級(jí)的效用樹(shù):
第1層: 效用
場(chǎng)景分析表:
1. 場(chǎng)景描述:
ARID評(píng)估方法
---- Active Reviews for Intermediate Design
ATAM和SAAM都是適用于對(duì)軟件的完整架構(gòu)進(jìn)行評(píng)估的方法。但是,架構(gòu)經(jīng)常是要經(jīng)歷很長(zhǎng)時(shí)間,階躍式地逐漸完善,而不是一開(kāi)始就以最終確定的完美形式 出現(xiàn)的。
在架構(gòu)設(shè)計(jì)過(guò)程中,對(duì)已經(jīng)完成的部分逐步進(jìn)行評(píng)審,及時(shí)發(fā)現(xiàn)某些部分的錯(cuò)誤,不一致性或者是考慮不周的地方,而且在大多數(shù)項(xiàng)目開(kāi)發(fā)中經(jīng)常需要對(duì)系統(tǒng)的每個(gè) 大組件或子系統(tǒng)進(jìn)行這種評(píng)審。這一階段需要的是一種簡(jiǎn)單易用的評(píng)估方法,應(yīng)該重點(diǎn)關(guān)注適宜性,以一種風(fēng)險(xiǎn)承擔(dān)者能夠接受的方式展示設(shè)計(jì)方案,并能在缺少詳 細(xì)文檔的情況下進(jìn)行架構(gòu)評(píng)估,這時(shí)就要用到ARID方法,active reviews for Intermediate Design。ARID最適合于對(duì)尚不完善的架構(gòu)進(jìn)行評(píng)估,在這一階段,設(shè)計(jì)人員就是想搞清楚從要求使用該設(shè)計(jì)架構(gòu)的其他部分的角度來(lái)看,所采用的設(shè)計(jì)方 案是否合適。或許設(shè)計(jì)中的這個(gè)框架的潛在采用者/重用者想要搞清楚該怎樣使用這一框架。
傳統(tǒng)設(shè)計(jì)評(píng)審和積極設(shè)計(jì)評(píng)審中所用的指令對(duì)比
ATAM,SAAM,ARID的比較
所有的評(píng)估方法至少要用下列兩種技巧:
-- 提問(wèn)技巧。 用問(wèn)卷、檢查列表或場(chǎng)景來(lái)調(diào)查某個(gè)架構(gòu)滿足其質(zhì)量屬性需求的方式。架構(gòu)評(píng)估中所用的提問(wèn)技巧通常涉及到要做某些“思維實(shí)驗(yàn)”,以預(yù)期系統(tǒng)的表現(xiàn),因?yàn)榇藭r(shí) 系統(tǒng)還不存在。
-- 度量技巧。 要用某個(gè)工具對(duì)軟件產(chǎn)品進(jìn)行度量。度量技巧包括要運(yùn)行所評(píng)估架構(gòu)對(duì)應(yīng)系統(tǒng)的模擬程序,以搞清系統(tǒng)的某些情況。要選擇恰當(dāng)?shù)膯挝弧?duì)復(fù)雜性、耦合度和內(nèi)聚性 的度量通常用來(lái)得出可修改性的結(jié)論。對(duì)數(shù)據(jù)流的度量(即度量沿通信通道的數(shù)據(jù)量的大小及其頻率)則可用來(lái)對(duì)系統(tǒng)性能或性能瓶頸做出預(yù)測(cè)。
應(yīng)注意的危險(xiǎn)信號(hào):
風(fēng)險(xiǎn)承擔(dān)者列表:
建議有空詳讀原文,我把這些摘錄下來(lái)是希望能有所參照。
《軟件架構(gòu)評(píng)估》學(xué)習(xí)筆記
〈Evluating Software Architectures〉 Authors: Paul Clements, Rick Kazman, Mark Klein
清華大學(xué)出版社 孫學(xué)濤 朱衛(wèi)東 趙凱 譯
概念:
架構(gòu)方法: 就是一組架構(gòu)決策,各個(gè)架構(gòu)決策互相協(xié)調(diào),共同實(shí)現(xiàn)所期望的質(zhì)量屬性目標(biāo)。
架構(gòu)評(píng)估: 架構(gòu)來(lái)自許多離散的決策,而這些決策是可以被分析和審查的。
ATAM: 架構(gòu)權(quán)衡分析方法
Architectures Trade-off Analysis Method
ATAM方法步驟:
共4大部分,9個(gè)步驟
部
分 |
步
驟 |
主
要活動(dòng)者 |
活 動(dòng) | 目
的 |
1.
表述 |
1> ATAM方法的表述; |
評(píng)估負(fù)責(zé)人 |
向評(píng)估參與者介紹ATAM方法并回答問(wèn)題。 a. 評(píng)估步驟介紹 b. 用于獲取信息或分析的技巧:效用樹(shù)的生成、基于架構(gòu)方法的獲取和分析、對(duì)場(chǎng)景的集體討論及優(yōu)先級(jí)的劃分 c. 評(píng)估的結(jié)果:所得出的場(chǎng)景及其優(yōu)先級(jí),用以理解和評(píng)估架構(gòu)的問(wèn)題、描述架構(gòu)的動(dòng)機(jī)需求并給出帶優(yōu)先級(jí)的效用樹(shù)、所確定的一級(jí)架構(gòu)方法、所發(fā)現(xiàn)的有風(fēng)險(xiǎn)決 策、無(wú)風(fēng)險(xiǎn)決策、敏感點(diǎn)和權(quán)衡點(diǎn)等 |
使參與者對(duì)該方法形成正確的預(yù)期 |
2> 商業(yè)動(dòng)機(jī)的表述; |
項(xiàng)目發(fā)言人 (項(xiàng)目經(jīng)理或系統(tǒng)客戶) |
闡述系統(tǒng)的商業(yè)目標(biāo) a. 系統(tǒng)最重要的功能 b. 技術(shù)、管理、政治、經(jīng)濟(jì)方面的任何相關(guān)限制 c. 與項(xiàng)目相關(guān)的商業(yè)目標(biāo)和上下文 d. 主要的風(fēng)險(xiǎn)承擔(dān)者 e. 架構(gòu)的驅(qū)動(dòng)因素(即促使形成該架構(gòu)的主要質(zhì)量屬性目標(biāo)) |
說(shuō)明采用該架構(gòu)的主要因素 (如:高可用性,極高的安全性或推向市場(chǎng)的時(shí)機(jī)) |
|
3> 架構(gòu)的表述; |
架構(gòu)設(shè)計(jì)師 |
對(duì)架構(gòu)做出描述 a. 技術(shù)約束條件,諸如要使用的操作系統(tǒng),硬件,中間件之類的約束 b. 該系統(tǒng)必須要與之交互的其他系統(tǒng) c. 用以滿足質(zhì)量屬性的架構(gòu)方法 d. 對(duì)最重要的用例場(chǎng)景及生長(zhǎng)場(chǎng)景的介紹 |
重點(diǎn)強(qiáng)調(diào)該架構(gòu)是怎樣適應(yīng)商業(yè)動(dòng)機(jī)的 |
|
2.
調(diào)查和分析 |
4> 確定架構(gòu)方法 |
架構(gòu)設(shè)計(jì)師 |
確定所用的架構(gòu)方法,但不進(jìn)行分析 |
|
5> 生成質(zhì)量屬性效用樹(shù) |
生成質(zhì)量屬性效用樹(shù),詳細(xì)的 根結(jié)點(diǎn)為效用,一直細(xì)分到位于葉子節(jié)點(diǎn)的質(zhì)量屬性場(chǎng)景, 質(zhì)量屬性場(chǎng)景的(優(yōu)先級(jí),實(shí)現(xiàn)難度)用高(H)、中(M)、低(L)描述;不必精確 |
得出構(gòu)成系統(tǒng)效用的質(zhì)量屬性(性能、可用性、安全性、可修改性、使用性
等); 具體到場(chǎng)景--刺激--響應(yīng)模式,并劃分優(yōu)先級(jí) |
||
6> 分析架構(gòu)方法 |
根據(jù)上一步得到的高優(yōu)先級(jí)場(chǎng)景,得出應(yīng)對(duì)這一場(chǎng)景的架構(gòu)方法并對(duì)其進(jìn)行
分析 要得到的結(jié)果包括: a. 與效用樹(shù)中每個(gè)高優(yōu)先級(jí)的場(chǎng)景相關(guān)的架構(gòu)方法或決策; b. 與每個(gè)架構(gòu)方法相聯(lián)系的待分析問(wèn)題; c. 架構(gòu)分析師對(duì)問(wèn)題的解答; d. 有風(fēng)險(xiǎn)決策,無(wú)風(fēng)險(xiǎn)決策、敏感點(diǎn)和權(quán)衡點(diǎn)的確認(rèn)。 |
確定架構(gòu)上的有風(fēng)險(xiǎn)決策、無(wú)風(fēng)險(xiǎn)決策、敏感點(diǎn)、權(quán)衡點(diǎn)等 |
||
3.
測(cè)試 |
7> 集體討論,確定場(chǎng)景優(yōu)先級(jí) |
根據(jù)所有風(fēng)險(xiǎn)承擔(dān)者的意見(jiàn)形成更大的場(chǎng)景集合 場(chǎng)景分類: a. 用例場(chǎng)景: 描述風(fēng)險(xiǎn)承擔(dān)者對(duì)系統(tǒng)使用情況的期望。 b. 生長(zhǎng)場(chǎng)景: 描述期望架構(gòu)能在較短時(shí)間內(nèi)允許的擴(kuò)充與更改。 c. 探察場(chǎng)景: 描述系統(tǒng)生長(zhǎng)的極端情況,即架構(gòu)在某些更改的重壓的情況。 注: 最初的效用樹(shù)是由架構(gòu)設(shè)計(jì)師和關(guān)鍵開(kāi)發(fā)人員創(chuàng)建的。在對(duì)場(chǎng)景進(jìn)行集體討論的過(guò)程和設(shè)置優(yōu)先級(jí)的過(guò)程中,有很多風(fēng)險(xiǎn)承擔(dān)者參與其中,與最初的效用樹(shù)相比,兩 者之間的不匹配可以揭露架構(gòu)設(shè)計(jì)師未曾注意到的方面,從而使得我們發(fā)現(xiàn)架構(gòu)中的重大風(fēng)險(xiǎn)。 |
由所有風(fēng)險(xiǎn)承擔(dān)者通過(guò)表決確定這些場(chǎng)景的優(yōu)先級(jí) |
|
8> 分析架構(gòu)方法 |
對(duì)第6步重復(fù),使用的是在第7步中得到的高優(yōu)先級(jí)場(chǎng)景,這些場(chǎng)景被認(rèn)為
是迄今為止所做分析的測(cè)試案例 |
發(fā)現(xiàn)更多的架構(gòu)方法,有風(fēng)險(xiǎn)決策、無(wú)風(fēng)險(xiǎn)決策、敏感點(diǎn)、權(quán)衡點(diǎn)等 |
||
4.
形成報(bào)告 |
9> 結(jié)果的表述 |
評(píng)估小組 |
根據(jù)在ATAM評(píng)估期間得到的信息(方法、場(chǎng)景、針對(duì)質(zhì)量屬性的問(wèn)題、
效用樹(shù)、有風(fēng)險(xiǎn)決策、無(wú)風(fēng)險(xiǎn)決策、敏感點(diǎn)、權(quán)衡點(diǎn)等),向與會(huì)的風(fēng)險(xiǎn)承擔(dān)者報(bào)告評(píng)估結(jié)果。 最重要的是如下ATAM結(jié)果: a. 已經(jīng)編寫(xiě)了文檔的架構(gòu)方法; b. 若干場(chǎng)景及其優(yōu)先級(jí); c. 基于質(zhì)量屬性的若干問(wèn)題; d. 效用樹(shù); e. 所發(fā)現(xiàn)的有風(fēng)險(xiǎn)決策; f. 已編寫(xiě)文檔的無(wú)風(fēng)險(xiǎn)決策; e. 所發(fā)現(xiàn)的敏感點(diǎn)和權(quán)衡點(diǎn)。 |
以上步驟并不是固定的, 有時(shí)必須對(duì)評(píng)估規(guī)劃做某些動(dòng)態(tài)的更改,以容許人員或架構(gòu)信息的改變。
ATAM評(píng)估方法的的階段:
第0階段 |
建立評(píng)估小組, 建立評(píng)估組織和待評(píng)估組織間的合作關(guān)系 |
|
第1階段 |
以架構(gòu)為中心,重點(diǎn)獲取架構(gòu)信息并對(duì)其進(jìn)行分析。 |
評(píng)估階段,上面的9
個(gè)步驟 在這時(shí)完成 |
第2階段 |
以風(fēng)險(xiǎn)承擔(dān)者中心,重點(diǎn)為獲取風(fēng)險(xiǎn)承擔(dān)者的觀點(diǎn),并對(duì)第1階段的結(jié)果進(jìn)
行驗(yàn)證。 |
|
第3階段 |
后續(xù)階段,形成最終報(bào)告,對(duì)后續(xù)活動(dòng)做出規(guī)劃,評(píng)估組織在此階段實(shí)現(xiàn)文
檔和經(jīng)驗(yàn)的更新。 |
評(píng)估小組各成員的角色及其職責(zé)
角色 |
職責(zé) |
理想的
人員素質(zhì) |
評(píng)估小組負(fù)責(zé)人 |
準(zhǔn)備評(píng)估;與評(píng)估客戶協(xié)調(diào);保證滿足客戶的需要;簽署評(píng)估合同; 組建評(píng)估小組;負(fù)責(zé)檢查最終報(bào)告的生成和提交; |
善于協(xié)調(diào)、安排,有管理技巧。善于與客戶交流;能按時(shí)完成任務(wù)。 |
評(píng)估負(fù)責(zé)人 |
負(fù)責(zé)評(píng)估工作;促進(jìn)場(chǎng)景的得出;管理場(chǎng)景的選擇及設(shè)置優(yōu)先級(jí)的過(guò)程;促
進(jìn)對(duì)照架構(gòu)的場(chǎng)景評(píng)估;為現(xiàn)場(chǎng)評(píng)估提供幫助 |
能在眾人面前表現(xiàn)自如。善于指點(diǎn)迷津。對(duì)架構(gòu)問(wèn)題有深刻的理解,富有架
構(gòu)評(píng)估的實(shí)踐經(jīng)驗(yàn)。能夠從冗長(zhǎng)的討論中得出有價(jià)值的發(fā)現(xiàn),或能夠判斷出何時(shí)討論已無(wú)意義、應(yīng)進(jìn)行調(diào)整。 |
場(chǎng)景書(shū)記員 |
在得到場(chǎng)景的過(guò)程中負(fù)責(zé)將場(chǎng)景寫(xiě)到活動(dòng)掛圖或白板上,務(wù)必用以達(dá)成一致
的措辭來(lái)描述,未得到準(zhǔn)確措辭就繼續(xù)討論 |
寫(xiě)一手好字,能夠在未搞清楚某個(gè)問(wèn)題之前堅(jiān)持要求繼續(xù)討論,能夠快速理 解所討論的問(wèn)題并提取出其要點(diǎn) |
進(jìn)展書(shū)記員 |
以電子形式記錄評(píng)估的進(jìn)展情況。捕獲原始場(chǎng)景。捕獲促成場(chǎng)景的每個(gè)問(wèn)
題。捕獲與場(chǎng)景對(duì)應(yīng)的架構(gòu)解決方案。打印出要分發(fā)給各參與人員所采用場(chǎng)景的列表 |
打字速度快,質(zhì)量高。工作條理性好。從而能夠快速查找信息。對(duì)架構(gòu)問(wèn)題
理解透徹。能夠融會(huì)貫通地快速搞清技術(shù)問(wèn)題。勇于打斷正在進(jìn)行的討論以驗(yàn)證對(duì)某個(gè)問(wèn)題的理解,從而保證所獲取信息的正確性 |
計(jì)時(shí)員 |
幫助評(píng)估負(fù)責(zé)人保證評(píng)估工作按進(jìn)度進(jìn)行。在評(píng)估階段幫助控制用在每個(gè)場(chǎng)
景上的時(shí)間 |
敢于不顧情面地中斷討論,宣布時(shí)間已到。 |
過(guò)程觀察員 |
記錄評(píng)估工作的哪些地方有待改進(jìn)或偏離了原計(jì)劃。通常不發(fā)表意見(jiàn),也可
能偶爾在評(píng)估過(guò)程中向評(píng)估負(fù)責(zé)人提出基于過(guò)程的建議。在評(píng)估完成后,負(fù)責(zé)匯報(bào)評(píng)估過(guò)程,指出應(yīng)該吸取哪些教訓(xùn),以便在未來(lái)的評(píng)估中加以改進(jìn)。還負(fù)責(zé)向整個(gè)
評(píng)估小組匯報(bào)某次評(píng)估的實(shí)踐情況 |
善于觀察和發(fā)現(xiàn)問(wèn)題,熟悉評(píng)估過(guò)程,曾參加過(guò)采用該架構(gòu)評(píng)估方法進(jìn)行評(píng)
估 |
過(guò)程監(jiān)督者 |
幫助評(píng)估負(fù)責(zé)人記住并執(zhí)行評(píng)估方法的每個(gè)步驟 |
對(duì)評(píng)估方法的各個(gè)步驟非常熟悉。愿意并能夠以不連續(xù)的方式向評(píng)估負(fù)責(zé)人
提供指導(dǎo) |
提問(wèn)者 |
提出風(fēng)險(xiǎn)承擔(dān)者或許未曾想到的關(guān)于架構(gòu)的問(wèn)題 |
對(duì)架構(gòu)和風(fēng)險(xiǎn)承擔(dān)者的需求具有敏銳的觀察力。了解同類系統(tǒng)。勇于提出可
能有爭(zhēng)議的問(wèn)題,并能不懈地尋求其答案。熟悉相關(guān)的質(zhì)量屬性。 |
商業(yè)目標(biāo)分析結(jié)果表:
內(nèi)容列表 |
詳細(xì)備注 |
|
主要商業(yè)目標(biāo) |
為跨學(xué)科的地球科學(xué)研究提供支持 |
|
大批量數(shù)據(jù)的并發(fā)攝入、處理和分配 |
||
次要商業(yè)目標(biāo) |
為外部開(kāi)發(fā)的科學(xué)算法/應(yīng)用程序提供支持 |
|
科學(xué)數(shù)據(jù)再處理 |
||
其他商業(yè)目標(biāo) |
采用自動(dòng)化操作,以盡可能減少操作成本 |
系統(tǒng)質(zhì)量屬性列表:
質(zhì)量屬性目標(biāo) |
標(biāo)識(shí)號(hào)(數(shù)字表示效用樹(shù)中的子序號(hào)) |
針對(duì)質(zhì)量屬性的要求 |
可維護(hù)性 |
M1 |
更改某個(gè)子系統(tǒng)時(shí)不要求改動(dòng)其他子系統(tǒng) |
M2 |
把子系統(tǒng)的部署要求分別降到最低 |
|
M3 |
把回歸測(cè)試時(shí)間從5天減少到1天 |
|
可靠性 |
R1 |
不至于因?yàn)閿?shù)據(jù)輸入輸出而導(dǎo)致某個(gè)系統(tǒng)資源崩潰或等待較長(zhǎng)時(shí)間,如超過(guò)
10分鐘 |
R2 |
請(qǐng)求(輸入出)中的某一部分?jǐn)?shù)據(jù)錯(cuò)誤不會(huì)妨礙其他部分的正常使用 |
|
R6 |
因系統(tǒng)崩潰或備份造成的無(wú)法提供服務(wù)的時(shí)間不能超過(guò)1小時(shí) |
|
可操作性 |
O10 |
系統(tǒng)應(yīng)該能在20分鐘內(nèi)根據(jù)用戶類型、數(shù)據(jù)類型、介質(zhì)類型、目的地或用
戶對(duì)1000項(xiàng)定單重新設(shè)置優(yōu)先級(jí) |
O14 |
應(yīng)該能在不需要操作干涉的情況下,通過(guò)V0網(wǎng)關(guān)為1000個(gè)并發(fā)請(qǐng)求提
供服務(wù) |
|
可擴(kuò)展性 |
S2 |
能同時(shí)支持50個(gè)場(chǎng)站 |
S3 |
能夠支持來(lái)自100個(gè)數(shù)據(jù)源的輸入 |
|
性能 |
P1 |
在某種查詢算法下,對(duì)Landsat
L-7查詢可使響應(yīng)速度能提高5倍 |
第一階段獲得的帶優(yōu)先級(jí)的效用樹(shù):
第1層: 效用
第2層:質(zhì)量屬性 |
第3層:質(zhì)量屬性求精 |
第4層:質(zhì)量屬性場(chǎng)景 |
重要性 |
難度 |
累加和 |
可維護(hù)性 |
M1:對(duì)一個(gè)子系統(tǒng)的更改不要求改動(dòng)其他子系統(tǒng) |
M1.1:部署下一個(gè)科學(xué)數(shù)據(jù)服務(wù)器版本,實(shí)現(xiàn)對(duì)當(dāng)前版本的更新。升級(jí)
應(yīng)該在8小時(shí)以內(nèi)完成,并且不應(yīng)影響其他子系統(tǒng)及查找、瀏覽或預(yù)定功能的使用。 |
30 |
30 |
60 |
M2:獨(dú)立地回退子系統(tǒng)的部署 |
M2.1:使科學(xué)數(shù)據(jù)服務(wù)器從M1回退 |
20 |
20 |
40 |
|
可操作性 |
O10:系統(tǒng)應(yīng)該能在20分鐘內(nèi)根據(jù)用戶類型、數(shù)據(jù)類型、介質(zhì)類型、目 的地或用戶對(duì)1000項(xiàng)定單重新設(shè)置優(yōu)先級(jí) | O10.1:積壓任務(wù)管理--
在系統(tǒng)連續(xù)24小時(shí)不能正常工作后,應(yīng)在30分鐘內(nèi)為所積壓的任務(wù)設(shè)置優(yōu)先級(jí),以保證各任務(wù)能夠按優(yōu)先級(jí)得以處理且正常的操作能夠得以維持,不會(huì)在恢復(fù)正
常操作狀態(tài)后降低吞吐量 |
30 |
20 |
50 |
O14:應(yīng)該能在不需要操作干涉的情況下,通過(guò)V0網(wǎng)關(guān)為1000個(gè)并 發(fā)請(qǐng)求提供服務(wù) | O14.1:MODAPS連續(xù)24小時(shí)不能正常工作,恢復(fù)并請(qǐng)求2天的
數(shù)據(jù);按優(yōu)先級(jí)進(jìn)行處理 |
20 |
20 |
40 |
|
O14.2:接收100個(gè)并發(fā)查詢請(qǐng)求,不拒絕高優(yōu)先級(jí)的請(qǐng)求,在性能
允許的情況下完成處理,不使系統(tǒng)過(guò)載 |
20 |
20 |
40 |
||
可靠性/可用性 |
Ra1:失敗的或掛起時(shí)間超過(guò)10分鐘的數(shù)據(jù)輸入輸出不占用系統(tǒng)資源 |
Ra1.1:L-7按預(yù)定用FTP方式把數(shù)據(jù)推到某個(gè)FTP服務(wù)器已經(jīng)
崩潰的節(jié)點(diǎn),在第一個(gè)請(qǐng)求未能成功處理的10分鐘內(nèi)系統(tǒng)被掛起,在請(qǐng)求被掛起期間內(nèi)所有資源可用,不影響其他節(jié)點(diǎn)的分配。 |
30 |
10 |
40 |
可擴(kuò)展性 |
Sc2:系統(tǒng)能夠支持50個(gè)節(jié)點(diǎn) |
Sc2.1:跨節(jié)點(diǎn)訂單可記錄50個(gè)節(jié)點(diǎn),跨5節(jié)點(diǎn)訂單歷時(shí)2分鐘。 Sc2.2:跨節(jié)點(diǎn)用戶注冊(cè)在24個(gè)小時(shí)內(nèi)經(jīng)歷50個(gè)節(jié)點(diǎn)。 |
20 20 |
30 30 |
50 50 |
性能 |
P1:把Landsat L-7搜索的響應(yīng)速度提高5倍 |
P1.1:正常情況下Landsat
L-7搜索100次命中的時(shí)間不超過(guò)30秒 |
30 |
20 |
50 |
注:這些難度等級(jí)只是粗粒度的劃分,不必過(guò)于認(rèn)真 |
場(chǎng)景分析表:
1. 場(chǎng)景描述:
場(chǎng)景號(hào):M1.1 |
場(chǎng)景:(M1.1)部署下一個(gè)科學(xué)數(shù)據(jù)服務(wù)器版本,實(shí)現(xiàn)對(duì)當(dāng)前版本的更 新。升級(jí)應(yīng)該在8小時(shí)以內(nèi)完成,并且不應(yīng)影響其他子系統(tǒng)及查找、瀏覽或預(yù)定功能的使用。 |
質(zhì)量屬性 |
可維護(hù)性 |
環(huán)境 |
常規(guī)維護(hù) |
刺激 |
部署下一個(gè)科學(xué)數(shù)據(jù)服務(wù)器版本,實(shí)現(xiàn)對(duì)當(dāng)前版本的更新,并添加對(duì)經(jīng)緯度 的支持。 |
響應(yīng) |
升級(jí)應(yīng)該在8小時(shí)以內(nèi)完成,并且不應(yīng)影響其他子系統(tǒng)及查找、瀏覽或預(yù)定 功能的使用。 |
架構(gòu)決策 |
有風(fēng)險(xiǎn)決策 |
敏感點(diǎn) |
權(quán)衡點(diǎn) |
無(wú)風(fēng)險(xiǎn)決策 |
AD1:接口的向后兼容性 |
R1 |
|||
AD2:客戶占位程序在服務(wù)器中的靜態(tài)連接 |
R2 |
|||
AD3:關(guān)鍵運(yùn)行數(shù)據(jù)庫(kù)的單個(gè)副本 |
R3 |
S1 |
T1,T2 |
|
AD4:關(guān)于分布在整個(gè)系統(tǒng)中的數(shù)據(jù)類型的信息 |
R4,R5,R6 |
S2 |
||
AD5:獨(dú)立于子系統(tǒng)的名稱 |
T3 |
|||
AD6:采用穩(wěn)定、簡(jiǎn)單API的分布式對(duì)象 |
NR1 |
|||
AD7:源文件間末受控制的依賴性 |
R7 |
|||
推理:定性的或量化的關(guān)于為什么這組架構(gòu)決策能夠滿足此場(chǎng)景所表達(dá)的每個(gè)質(zhì)量屬
性要求的基本原理。 |
||||
架構(gòu)圖:
一個(gè)或多個(gè)表示架構(gòu)視圖的圖形,標(biāo)注出支持上述推理的架構(gòu)信息,必要的可加上解釋性文字描述。 |
ARID評(píng)估方法
---- Active Reviews for Intermediate Design
ATAM和SAAM都是適用于對(duì)軟件的完整架構(gòu)進(jìn)行評(píng)估的方法。但是,架構(gòu)經(jīng)常是要經(jīng)歷很長(zhǎng)時(shí)間,階躍式地逐漸完善,而不是一開(kāi)始就以最終確定的完美形式 出現(xiàn)的。
在架構(gòu)設(shè)計(jì)過(guò)程中,對(duì)已經(jīng)完成的部分逐步進(jìn)行評(píng)審,及時(shí)發(fā)現(xiàn)某些部分的錯(cuò)誤,不一致性或者是考慮不周的地方,而且在大多數(shù)項(xiàng)目開(kāi)發(fā)中經(jīng)常需要對(duì)系統(tǒng)的每個(gè) 大組件或子系統(tǒng)進(jìn)行這種評(píng)審。這一階段需要的是一種簡(jiǎn)單易用的評(píng)估方法,應(yīng)該重點(diǎn)關(guān)注適宜性,以一種風(fēng)險(xiǎn)承擔(dān)者能夠接受的方式展示設(shè)計(jì)方案,并能在缺少詳 細(xì)文檔的情況下進(jìn)行架構(gòu)評(píng)估,這時(shí)就要用到ARID方法,active reviews for Intermediate Design。ARID最適合于對(duì)尚不完善的架構(gòu)進(jìn)行評(píng)估,在這一階段,設(shè)計(jì)人員就是想搞清楚從要求使用該設(shè)計(jì)架構(gòu)的其他部分的角度來(lái)看,所采用的設(shè)計(jì)方 案是否合適。或許設(shè)計(jì)中的這個(gè)框架的潛在采用者/重用者想要搞清楚該怎樣使用這一框架。
傳統(tǒng)設(shè)計(jì)評(píng)審和積極設(shè)計(jì)評(píng)審中所用的指令對(duì)比
傳統(tǒng)設(shè)
計(jì)評(píng)審問(wèn)題 |
積極設(shè)
計(jì)評(píng)審中所用的指令 |
每個(gè)程序是否都定義了例外情況 |
寫(xiě)出每個(gè)程序可能出現(xiàn)的例外情況。 |
每個(gè)程序是否都定義了正確的例外情況? |
寫(xiě)出每個(gè)參數(shù)合法值的范圍或集合,寫(xiě)出在哪些狀態(tài)下調(diào)用程序是非法的。 |
是否定義了數(shù)據(jù)類型? |
對(duì)每個(gè)數(shù)據(jù)類型,請(qǐng)寫(xiě)出: 1. 該數(shù)據(jù)類型直接量的表示; 2. 該類型變量的聲明; 3. 該數(shù)據(jù)類型的最大值和最小值。 |
這些程序是否充分? |
編寫(xiě)按該方案實(shí)現(xiàn)某已定義任務(wù)的一小段偽代碼。 |
是否對(duì)某個(gè)應(yīng)用程序的性質(zhì)都做了足夠詳細(xì)的說(shuō)明? |
對(duì)每個(gè)應(yīng)用程序,寫(xiě)出其最長(zhǎng)執(zhí)行時(shí)間,并列出它可能消耗的共享資源。 |
ATAM,SAAM,ARID的比較
ITEM |
ATAM |
SAAM |
ARID |
涉及的質(zhì)量屬性 |
不面向任何具體的質(zhì)量屬性,但據(jù)其歷史,它更側(cè)重于可修改性,安全性,
可靠性和性能。 |
主要是可修改性和功能。 |
設(shè)計(jì)方法和適宜性。 |
分析的對(duì)象 |
架構(gòu)方法或樣式;闡述過(guò)程、數(shù)據(jù)流、使用、物理或模塊視圖的架構(gòu)文檔。 |
架構(gòu)文檔,特別是闡述邏輯或模塊視圖的部分。 |
組件的接口規(guī)范。 |
適用階段 |
在架構(gòu)設(shè)計(jì)方法已經(jīng)選定之后。 |
在架構(gòu)已經(jīng)將功能分配到各個(gè)模塊中以后。 |
在架構(gòu)設(shè)計(jì)期間。 |
采用的方法 |
利用效用樹(shù)和對(duì)場(chǎng)景的集體討論來(lái)搞清楚質(zhì)量屬性需求。通過(guò)對(duì)架構(gòu)方法的
分析確定出敏感點(diǎn)、權(quán)衡點(diǎn)和風(fēng)險(xiǎn)。 |
利用對(duì)場(chǎng)景的集體討論搞清楚質(zhì)量屬性需求。通過(guò)來(lái)驗(yàn)證功能或?qū)Ω某杀?
作出估計(jì)。 |
積極評(píng)審設(shè)計(jì),對(duì)場(chǎng)景進(jìn)行集體討論。 |
資源需求 |
一般用3天的時(shí)間,另外還有預(yù)先的準(zhǔn)備時(shí)間和之后的總結(jié)時(shí)間。參評(píng)人員
有客戶、架構(gòu)設(shè)計(jì)師、風(fēng)險(xiǎn)承擔(dān)者和4人評(píng)估小組。 |
一般用2天時(shí)間,另外還有之后的總結(jié)時(shí)間,參評(píng)人員有客戶、架構(gòu)設(shè)計(jì)
師、風(fēng)險(xiǎn)承擔(dān)者和3人評(píng)估小組。 |
一般用2天時(shí)間,另外還有預(yù)先的準(zhǔn)備時(shí)間和之后的總結(jié)時(shí)間。參評(píng)人員有
架構(gòu)設(shè)計(jì)師、設(shè)計(jì)人員、風(fēng)險(xiǎn)承擔(dān)者和2人評(píng)估小組。 |
所有的評(píng)估方法至少要用下列兩種技巧:
-- 提問(wèn)技巧。 用問(wèn)卷、檢查列表或場(chǎng)景來(lái)調(diào)查某個(gè)架構(gòu)滿足其質(zhì)量屬性需求的方式。架構(gòu)評(píng)估中所用的提問(wèn)技巧通常涉及到要做某些“思維實(shí)驗(yàn)”,以預(yù)期系統(tǒng)的表現(xiàn),因?yàn)榇藭r(shí) 系統(tǒng)還不存在。
-- 度量技巧。 要用某個(gè)工具對(duì)軟件產(chǎn)品進(jìn)行度量。度量技巧包括要運(yùn)行所評(píng)估架構(gòu)對(duì)應(yīng)系統(tǒng)的模擬程序,以搞清系統(tǒng)的某些情況。要選擇恰當(dāng)?shù)膯挝弧?duì)復(fù)雜性、耦合度和內(nèi)聚性 的度量通常用來(lái)得出可修改性的結(jié)論。對(duì)數(shù)據(jù)流的度量(即度量沿通信通道的數(shù)據(jù)量的大小及其頻率)則可用來(lái)對(duì)系統(tǒng)性能或性能瓶頸做出預(yù)測(cè)。
應(yīng)注意的危險(xiǎn)信號(hào):
- 架構(gòu)必須與當(dāng)前的組織結(jié)構(gòu)相對(duì)應(yīng)。因?yàn)橛邢鄳?yīng)的組織而添加 不必要的部分。
- 最頂層的架構(gòu)組件超過(guò)了25個(gè)。過(guò)于復(fù)雜,架構(gòu)設(shè)計(jì)師可能 難以進(jìn)行明智的控制,負(fù)責(zé)實(shí)現(xiàn)架構(gòu)的設(shè)計(jì)人員那當(dāng)然也無(wú)法做到這一點(diǎn)。
- 設(shè)計(jì)方案的剩余部分受某一項(xiàng)需求的左右。架構(gòu)是以滿足極高的可用性需求為目標(biāo)的。如果降低這一需求,整個(gè)架構(gòu)就會(huì)顯得過(guò)于復(fù)雜。過(guò)分強(qiáng)調(diào)某一 需求可能會(huì)使其他需求得不到重視。
- 架構(gòu)信賴操作系統(tǒng)中的可變部分。這樣使架構(gòu)受到操作系統(tǒng)升級(jí)的影響;這一明顯的設(shè)計(jì)缺陷在實(shí)際中經(jīng)常出現(xiàn),其頻度令人驚訝。
- 在可用標(biāo)準(zhǔn)組件的地方卻使用了專用組件,使整個(gè)架構(gòu)信賴于某個(gè)供應(yīng)商。
- 組件的定義是根據(jù)硬件劃分確定的。硬件會(huì)隨著系統(tǒng)的演進(jìn)而變化,硬件組件可能會(huì)合并成更通用的處理器,或分解成專用的設(shè)備。如果軟件獨(dú)立于硬 件結(jié)構(gòu),就可使其免受硬件變化的影響。
- 有超出可靠性要求之外的冗余。這表明設(shè)計(jì)人員意見(jiàn)不一,導(dǎo)致不必要的復(fù)雜性,也會(huì)使系統(tǒng)維護(hù)的難度加大。
- 設(shè)計(jì)方案受例外情況的左右;重點(diǎn)強(qiáng)調(diào)的是可擴(kuò)充性而不是共核部分。
- 開(kāi)發(fā)組織不能確定出誰(shuí)是系統(tǒng)架構(gòu)設(shè)計(jì)師。
- 構(gòu)架設(shè)計(jì)師或項(xiàng)目經(jīng)理在確定該架構(gòu)的風(fēng)險(xiǎn)承擔(dān)者時(shí)感到很困難,這可能意味著他們根本就沒(méi)有考慮關(guān)于風(fēng)險(xiǎn)承擔(dān)者的問(wèn)題。
- 開(kāi)發(fā)人員在對(duì)某兩個(gè)組件的組件的交互進(jìn)行編程時(shí)有過(guò)多的選擇余地。出現(xiàn)這種情況的原因可能是架構(gòu)上提供了太大的選擇自由,或者沒(méi)有考慮這一問(wèn) 題。意味著架構(gòu)還要進(jìn)一步完善。
- 當(dāng)要求架構(gòu)設(shè)計(jì)師提供文檔時(shí),除了類圖外,拿不出任何其他材料。
- 當(dāng)要求架構(gòu)設(shè)計(jì)師提供文檔時(shí),拿出的是大量的由某一工具自動(dòng)生成的文檔,但這些文檔根本沒(méi)人看過(guò)。
- 所提供的架構(gòu)文檔陳舊,顯然已經(jīng)過(guò)時(shí)。
- 當(dāng)要求對(duì)架構(gòu)做出表述時(shí),設(shè)計(jì)人員或編程人員或者不能做出表述,或者所做的表述與架構(gòu)設(shè)計(jì)師所講的內(nèi)容存在很大的差別。
- there must be more as the process progressed.
- 沒(méi)有清楚地確定出風(fēng)險(xiǎn)承擔(dān)者
- 項(xiàng)目開(kāi)發(fā)中沒(méi)有相關(guān)領(lǐng)域?qū)<业膮⑴c
- 項(xiàng)目資金沒(méi)有真正落實(shí)
- 沒(méi)有指定項(xiàng)目經(jīng)理或項(xiàng)目負(fù)責(zé)人
- 沒(méi)有制定出項(xiàng)目計(jì)劃或規(guī)劃
- 部署日期不實(shí)際
- 沒(méi)有明確的衡量?jī)?yōu)劣的標(biāo)準(zhǔn)
- 沒(méi)有選定軟件的架構(gòu)
- 雖然在每個(gè)層面上都有一位架構(gòu)設(shè)計(jì)師,但沒(méi)有人對(duì)總體架構(gòu)負(fù)責(zé)
- 沒(méi)有編寫(xiě)總體架構(gòu)計(jì)劃
- 沒(méi)有獨(dú)立的負(fù)責(zé)編寫(xiě)需求的小組存在
- 沒(méi)有硬件和安裝規(guī)則
- 沒(méi)有合適而獨(dú)立的性能研究計(jì)劃
- 沒(méi)有合適的質(zhì)量保證組織
- 沒(méi)有制定出系統(tǒng)測(cè)試計(jì)劃
- more
- 最終用戶沒(méi)有確定出性能需求
- 未收集與性能相關(guān)的數(shù)據(jù)
- 沒(méi)有確定性能開(kāi)銷
- 所期望的通信速率未能得到證實(shí)
- 未采用任何用以度量處理時(shí)間的機(jī)制或處理數(shù)量未得到證實(shí)
- 未采用任何評(píng)估手段來(lái)保證能夠處理所要求的吞吐量
- 未采用任何評(píng)估手段來(lái)保證硬件上能夠滿足處理的需要
- 沒(méi)有性能模型
- more
風(fēng)險(xiǎn)承擔(dān)者列表:
風(fēng)險(xiǎn)承
擔(dān)者 |
定義 |
所關(guān)心
的問(wèn)題 |
系統(tǒng)的生產(chǎn)者 |
||
軟件架構(gòu)設(shè)計(jì)師 |
負(fù)責(zé)系統(tǒng)的架構(gòu)以及在相互競(jìng)爭(zhēng)的質(zhì)量需求間進(jìn)行權(quán)衡的人 |
對(duì)其他風(fēng)險(xiǎn)承擔(dān)者提出的質(zhì)量需求所要進(jìn)行的解釋和調(diào)停 |
開(kāi)發(fā)人員 |
設(shè)計(jì)或編程人員 |
架構(gòu)描述的清晰和完整、 各部分的內(nèi)聚性和受限耦合、 清楚的交互機(jī)制 |
維護(hù)人員 |
系統(tǒng)初次布署完成后對(duì)系統(tǒng)進(jìn)行更改的人 |
可維護(hù)性、確定某個(gè)更改發(fā)生后必須對(duì)系統(tǒng)中哪些地方進(jìn)行改動(dòng)的能力 |
集成人員 |
負(fù)責(zé)組件集成或者組裝的人員 |
與開(kāi)發(fā)人員相同 |
測(cè)試人員 |
負(fù)責(zé)系統(tǒng)測(cè)試的開(kāi)發(fā)人員 |
集成、一致的錯(cuò)誤處理協(xié)議; 受限的組件耦合、組件的高內(nèi)聚性、概念完整性 |
標(biāo)準(zhǔn)專家 |
負(fù)責(zé)搞清所開(kāi)發(fā)軟件必須滿足的標(biāo)準(zhǔn)(現(xiàn)有的或未來(lái)的)細(xì)節(jié)的開(kāi)發(fā)人員 |
對(duì)所關(guān)心問(wèn)題的分離、可修改性、互操作性 |
性能工程師 |
分析系統(tǒng)的工作產(chǎn)品以確定系統(tǒng)是否滿足其性能及吞吐量需求的人員 |
易理解性、概念完整性、性能、可靠性 |
安全專家 |
負(fù)責(zé)保證系統(tǒng)滿足其安全性需求的人士 |
安全性 |
項(xiàng)目經(jīng)理 |
負(fù)責(zé)為各小組配置資源、保證開(kāi)發(fā)進(jìn)度、保證不超出預(yù)算的人士,負(fù)責(zé)與客
戶打交道 |
架構(gòu)層次上結(jié)構(gòu)清楚,便于組建小組;任務(wù)劃分結(jié)構(gòu)、進(jìn)度標(biāo)志和最后期限
等 |
產(chǎn)品線經(jīng)理或“擁有重用權(quán)的人” |
設(shè)想該架構(gòu)和相關(guān)資產(chǎn)怎樣在該組織的其他開(kāi)發(fā)中得以重復(fù)利用的人 |
可重用性、靈活性 |
系統(tǒng)的消費(fèi)者 |
||
客戶 |
系統(tǒng)的購(gòu)買者 |
開(kāi)發(fā)進(jìn)度、總體預(yù)算、系統(tǒng)的有用性、滿足用戶(或市場(chǎng))需求的情況 |
最終用戶 |
所實(shí)現(xiàn)系統(tǒng)的使用者 |
功能性、可用性、沒(méi)有易用性? |
應(yīng)用開(kāi)發(fā)者(對(duì)產(chǎn)品架構(gòu)而言) |
利用該架構(gòu)及其他已有可重用組件,通過(guò)將其實(shí)例化而構(gòu)建產(chǎn)品的人 |
架構(gòu)的清晰性、完整性、簡(jiǎn)單交互機(jī)制、簡(jiǎn)單剪裁機(jī)制 |
任務(wù)專家、任務(wù)規(guī)劃者 |
知道系統(tǒng)將會(huì)怎樣使用以實(shí)現(xiàn)戰(zhàn)略目標(biāo)的客戶代表,視野比最終用戶更為開(kāi)
闊 |
功能性、可用性、靈活性 |
系統(tǒng)服務(wù)人員 |
||
系統(tǒng)管理員 |
負(fù)責(zé)系統(tǒng)運(yùn)行的人(如果區(qū)別于用戶的話) |
容易找到可能出現(xiàn)問(wèn)題的地方 |
網(wǎng)絡(luò)管理員 |
管理網(wǎng)絡(luò)的人員 |
網(wǎng)絡(luò)性能、可預(yù)測(cè)性 |
服務(wù)代表 |
為系統(tǒng)在該領(lǐng)域中的使用和維護(hù)提供支持的人 |
使用性、可服務(wù)性、可剪裁性 |
接觸系統(tǒng)或與系統(tǒng)交
互的人 |
||
該領(lǐng)域或團(tuán)體的代表 | 類似系統(tǒng)或所考察系統(tǒng)將要在其中運(yùn)行的系統(tǒng)的構(gòu)建者或擁有者 |
可互操作性 |
系統(tǒng)架構(gòu)設(shè)計(jì)師 |
整個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì)師;負(fù)責(zé)在軟硬件之間進(jìn)行權(quán)衡并選擇硬件環(huán)境的人 |
可移植性、靈活性、性能和效率 |
設(shè)備專家 |
熟悉該軟件必須與之交互的硬件的人;能夠預(yù)測(cè)硬件技術(shù)的未來(lái)發(fā)展趨勢(shì)的
人 |
可維護(hù)性、性能 |
以上就是所有的風(fēng)險(xiǎn)
承擔(dān)者的角色及其關(guān)注的問(wèn)題。 軟件架構(gòu)評(píng)估的質(zhì)量在很大程度上取決于為評(píng)估召集起來(lái)的風(fēng)險(xiǎn) 承擔(dān)者的素質(zhì)。 |
||