版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 內(nèi) 容 軟件重用與構(gòu)件技術(shù) 軟件體系結(jié)構(gòu)概論 軟件體系結(jié)構(gòu)的風(fēng)格 軟件體系結(jié)構(gòu)描述 軟件體系結(jié)構(gòu)設(shè)計 基于體系結(jié)構(gòu)的軟件開發(fā)過程 軟件體系結(jié)構(gòu)評估 Web服務(wù)體系結(jié)構(gòu) 特定領(lǐng)域的軟件體系結(jié)構(gòu) 軟件體系結(jié)構(gòu)集成開發(fā)環(huán)境體系結(jié)構(gòu)的選擇是一個軟件系統(tǒng)設(shè)計成敗的關(guān)鍵,但是,怎樣才能知道為軟件系統(tǒng)所選用的體系結(jié)構(gòu)是否恰當(dāng)?如何確保按照所選用的體系結(jié)構(gòu)能順利地開發(fā)出成功的軟件產(chǎn)品呢?要回答這些問題,需要使用專門的方法對軟件體系結(jié)構(gòu)進(jìn)行評估。 體系結(jié)構(gòu)評估可以只針對一個體系結(jié)構(gòu),也可以針對一組體系結(jié)構(gòu)。在體系結(jié)構(gòu)評估過程中,評估人員所關(guān)注的是系統(tǒng)的質(zhì)量屬性,所有評估方法所普遍關(guān)注的質(zhì)量屬性有以下幾個
2、:可用性、性能、可修改性、可靠性、安全性、可測試性、易用性、可重用性、可集成性等。第7章 軟件體系結(jié)構(gòu)評估 7.1 體系結(jié)構(gòu)評估概述第7章 軟件體系結(jié)構(gòu)評估 7.1 體系結(jié)構(gòu)評估概述 評估的必要性(1)軟件體系結(jié)構(gòu)反映了系統(tǒng)最初始的設(shè)計決策,對同樣一個問題,在初始階段糾正所帶來的花費和在測試或部署階段糾正導(dǎo)致的開銷不在一個數(shù)量級。在體系結(jié)構(gòu)視圖上一個符號改動比后期大規(guī)模的代碼改動工作量要少得多,這樣,巨大的額外開銷就避免了。有了對體系結(jié)構(gòu)的完整描述,退一步講即使是部分描述,就能模擬系統(tǒng)運行時行為,對一些設(shè)計思想進(jìn)行探討,并推斷體系結(jié)構(gòu)應(yīng)用于系統(tǒng)時的潛在影響。而所有這些工作只不過需要整個項目周期
3、中的幾天時間。 第7章 軟件體系結(jié)構(gòu)評估 7.1 體系結(jié)構(gòu)評估概述 評估的必要性(2)評估是挖掘隱性需求并將其補充到設(shè)計中的最后機會。由于缺乏充分的交流和不能對軟件項目透徹理解,許多涉眾并不知道自己到底想要什么。在需求獲取階段,他們會列出自認(rèn)為最重要的幾項要求。但是評估之后,這些觀點可能會變動很大。有些起初重視的方面可能并不是那么重要,而另一些本來看上去無關(guān)緊要的東西卻被發(fā)現(xiàn)需要花更多精力來處理。體系結(jié)構(gòu)評估清除了涉眾的溝通障礙。其最直接的結(jié)果就是得到各方滿意的系統(tǒng)藍(lán)圖,而這至少意味者項目成功的一半。 第7章 軟件體系結(jié)構(gòu)評估 7.1 體系結(jié)構(gòu)評估概述 評估的必要性(3)體系結(jié)構(gòu)是開發(fā)過程的中
4、心,它決定了團(tuán)隊組織,任務(wù)分配,配置管理,文檔組織,管理策略,還有開發(fā)進(jìn)程安排。不良體系結(jié)構(gòu)往往帶來不良的效果,因為它在被使用過程中必須被修改來適應(yīng)新的考量,或者去彌補那些在開發(fā)早期階段沒考慮到的缺陷,在這些方面進(jìn)行修改需要花費大量成本。如果在這些發(fā)生之前充分分析一下體系結(jié)構(gòu)就可以部分避免這些問題的發(fā)生。 第7章 軟件體系結(jié)構(gòu)評估 7.2 SA評估的主要方式 主要的評估方式 基于調(diào)查問卷或檢查表的評估方式 基于場景的評估方式 基于度量的評估方式 第7章 軟件體系結(jié)構(gòu)評估 基于調(diào)查問卷或檢查表的評估方式(1) CMU/SEI的軟件風(fēng)險評估過程采用了這一方式。 調(diào)查問卷是一系列可以應(yīng)用到各種體系結(jié)
5、構(gòu)評估的相關(guān)問題,其中有些問題可能涉及到體系結(jié)構(gòu)的設(shè)計決策;有些問題涉及到體系結(jié)構(gòu)的文檔,有的問題針對體系結(jié)構(gòu)描述本身的細(xì)節(jié)問題。 檢查表中包含一系列比調(diào)查問卷更細(xì)節(jié)和具體的問題,它們更趨向于考察某些關(guān)心的質(zhì)量屬性。7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基于調(diào)查問卷或檢查表的評估方式(2) 這一評估方式比較自由靈活,可評估多種質(zhì)量屬性,也可以在軟件體系結(jié)構(gòu)設(shè)計的多個階段進(jìn)行。但是由于評估的結(jié)果很大程度上來自評估人員的主觀推斷,因此不同的評估人員可能會產(chǎn)生不同甚至截然相反的結(jié)果,而且評估人員對領(lǐng)域的熟悉程度、是否具有豐富的相關(guān)經(jīng)驗也成為評估結(jié)果是否正確的重要因素。 盡管基于調(diào)查問卷
6、與檢查表的評估方式相對比較主觀,但由于系統(tǒng)相關(guān)的人員的經(jīng)驗和知識是評估軟件體系結(jié)構(gòu)的重要信息來源,因而它仍然是進(jìn)行軟件體系結(jié)構(gòu)評估的重要途徑之一。7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基于場景的評估方式(1) 場景是一系列有序的使用或修改系統(tǒng)的步驟。基于場景的方式由SEI首先提出并應(yīng)用在體系結(jié)構(gòu)權(quán)衡分析方法(ATAM)和軟件體系結(jié)構(gòu)分析方法(SAAM)中。 這種軟件體系結(jié)構(gòu)評估方式分析軟件體系結(jié)構(gòu)對場景也就是對系統(tǒng)的使用或修改活動的支持程度,從而判斷該體系結(jié)構(gòu)對這一場景所代表的質(zhì)量需求的滿足程度。例如,用一系列對軟件的修改來反映易修改性方面的需求,用一系列攻擊性操作來代表安全性方
7、面的需求等。7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基于場景的評估方式(2) 這一評估方式考慮到了包括系統(tǒng)的開發(fā)人員、維護(hù)人員、最終用戶、管理人員、測試人員等在內(nèi)的所有與系統(tǒng)相關(guān)的人員對質(zhì)量的要求?;趫鼍暗脑u估方式涉及到的基本活動包括確定應(yīng)用領(lǐng)域的功能和軟件體系結(jié)構(gòu)的結(jié)構(gòu)之間的映射,設(shè)計用于體現(xiàn)待評估質(zhì)量屬性的場景以及分析軟件體系結(jié)構(gòu)對場景的支持程度。 7.2 SA評估的主要方式 不同的應(yīng)用系統(tǒng)對同一質(zhì)量屬性的理解可能不同,例如,對操作系統(tǒng)來說,可移植性被理解為系統(tǒng)可在不同的硬件平臺上運行,而對于普通的應(yīng)用系統(tǒng)而言,可移植性往往是指該系統(tǒng)可在不同的操作系統(tǒng)上運行。由于存在這種不一
8、致性,對一個領(lǐng)域適合的場景設(shè)計在另一個領(lǐng)域內(nèi)未必合適,因此基于場景的評估方式是特定于領(lǐng)域的。這一評估方式的實施者一方面需要有豐富的領(lǐng)域知識以對某一質(zhì)量需求設(shè)計出合理的場景,另一方面,必須對待評估的軟件體系結(jié)構(gòu)有一定的了解以準(zhǔn)確判斷它是否支持場景描述的一系列活動。第7章 軟件體系結(jié)構(gòu)評估 基于場景的評估方式(3) 7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基于度量的評估方式(1) 度量是指為軟件產(chǎn)品的某一屬性所賦予的數(shù)值,如代碼行數(shù)、方法調(diào)用層數(shù)、構(gòu)件個數(shù)等。傳統(tǒng)的度量研究主要針對代碼,但近年來也出現(xiàn)了一些針對高層設(shè)計的度量,軟件體系結(jié)構(gòu)度量即是其中之一。代碼度量和代碼質(zhì)量之間存在著重
9、要的聯(lián)系,類似地,軟件體系結(jié)構(gòu)度量應(yīng)該也能夠作為評判質(zhì)量的重要的依據(jù)。 7.2 SA評估的主要方式 赫爾辛基大學(xué)提出的基于模式挖掘的面向?qū)ο筌浖w系結(jié)構(gòu)度量技術(shù)、Karlskrona和Ronneby提出的基于面向?qū)ο蠖攘康能浖w系結(jié)構(gòu)可維護(hù)性評估、西弗吉尼亞大學(xué)提出的軟件體系結(jié)構(gòu)度量方法等都在這方面進(jìn)行了探索,提出了一些可操作的具體方案。我們把這類評估方式稱作基于度量的評估方式。第7章 軟件體系結(jié)構(gòu)評估 基于度量的評估方式(2) 7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基于度量的評估方式(3) 基于度量的評估技術(shù)都涉及三個基本活動:首先需要建立質(zhì)量屬性和度量之間的映射原則,即確定怎
10、樣從度量結(jié)果推出系統(tǒng)具有什么樣的質(zhì)量屬性;然后從軟件體系結(jié)構(gòu)文檔中獲取度量信息;最后根據(jù)映射原則分析推導(dǎo)出系統(tǒng)的某些質(zhì)量屬性。7.2 SA評估的主要方式 基于度量的評估方式提供更為客觀和量化的質(zhì)量評估。這一評估方式需要在軟件體系結(jié)構(gòu)的設(shè)計基本完成以后才能進(jìn)行,而且需要評估人員對待評估的體系結(jié)構(gòu)十分了解,否則不能獲取準(zhǔn)確的度量。自動的軟件體系結(jié)構(gòu)度量獲取工具能在一定程度上簡化評估的難度,例如MAISA可從文本格式的UML圖中抽取面向?qū)ο篌w系結(jié)構(gòu)的度量。第7章 軟件體系結(jié)構(gòu)評估 基于度量的評估方式(4) 7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 三種評估方式的比較 7.2 SA評估的主要
11、方式第7章 軟件體系結(jié)構(gòu)評估 基本概念 (1) 敏感點和權(quán)衡點 敏感點是一個或多個構(gòu)件(和/或構(gòu)件之間的關(guān)系)的特性。研究敏感點可使設(shè)計人員或分析員明確在搞清楚如何實現(xiàn)質(zhì)量目標(biāo)時應(yīng)注意什么。 權(quán)衡點是影響多個質(zhì)量屬性的特性,是多個質(zhì)量屬性的敏感點。例如,改變加密級別可能會對安全性和性能產(chǎn)生非常重要的影響。提高加密級別可以提高安全性,但可能要耗費更多的處理時間,影響系統(tǒng)性能。如果某個機密消息的處理有嚴(yán)格的時間延遲要求,則加密級別可能就會成為一個權(quán)衡點。7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基本概念 (2)風(fēng)險承擔(dān)者 系統(tǒng)的體系結(jié)構(gòu)涉及到很多人的利益,這些人都對體系結(jié)構(gòu)施加各種影響,
12、以保證自己的目標(biāo)能夠?qū)崿F(xiàn)。 7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 基本概念 (3)場景 在進(jìn)行體系結(jié)構(gòu)評估時,一般首先要精確地得出具體的質(zhì)量目標(biāo),并以之作為判定該體系結(jié)構(gòu)優(yōu)劣的標(biāo)準(zhǔn)。我們把為得出這些目標(biāo)而采用的機制叫做場景。場景是從風(fēng)險承擔(dān)者的角度對與系統(tǒng)的交互的簡短描述。在體系結(jié)構(gòu)評估中,一般從刺激源、刺激、環(huán)境、制品、響應(yīng)和響應(yīng)度量這六個方面來對場景進(jìn)行描述。7.2 SA評估的主要方式第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法SAAM方法是最早形成文檔并得到廣泛使用的軟件體系結(jié)構(gòu)分析方法,最初是用來分析體系結(jié)構(gòu)的可修改性的,但實踐證明,SAAM方法也可用于對許多質(zhì)量屬
13、性(例如可移植性、可擴充性、可集成性等)及系統(tǒng)功能進(jìn)行快速評估。SAAM比較簡單,這種方法易學(xué)易用,進(jìn)行培訓(xùn)和準(zhǔn)備的工作量都比較少。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法SAAM是一種直觀的方法,它試圖通過場景來測量軟件的質(zhì)量,而不是泛泛的不精確的質(zhì)量屬性描述。SAAM也比較簡單,僅僅考慮場景和體系結(jié)構(gòu)的關(guān)系,也不涉及太多的步驟和獨特的技術(shù)。于是,它成為體系結(jié)構(gòu)評估初學(xué)者的理想入門方法。SAAM最初是為了評估體系結(jié)構(gòu)的可修改性而設(shè)計,不過經(jīng)過演化和實際應(yīng)用,在許多其它常見的質(zhì)量屬性評估方面也展現(xiàn)了威力,并成為其它一些評估方法的基礎(chǔ),比如ATAM。利用預(yù)先定義的場景,SAAM可以檢查
14、出被評估體系結(jié)構(gòu)的潛在風(fēng)險,并對幾個候選體系結(jié)構(gòu)進(jìn)行比較。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法另外,SAAM可以為很多涉眾進(jìn)行(可能是項目啟動后的第一次)討論提供平臺。這樣大家就有機會用人人都懂的語言來說出各自關(guān)心的問題,了解別人所關(guān)心的,并看到這些問題又是如何在藍(lán)圖中處理的。在此過程中,理解上的偏差和不正確的設(shè)計都將被發(fā)現(xiàn)。 下圖給出了SAAM評估的步驟,每個階段能得到什么,各個階段的關(guān)系如何。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 1、形成場景2、描述體系結(jié)構(gòu)3、對場景進(jìn)行分類和確定優(yōu)先級4、對間接場景進(jìn)行單個評估5、評估場景的相互作用6、形成
15、總體評估為了開始評估,必須提供一個體系結(jié)構(gòu)描述,該描述可以是所有參與者能接受并理解的任何形式。根據(jù)特定評估的對象和關(guān)注點,描述的詳細(xì)程度和范圍可能不同,有時也需要進(jìn)行更新或補充。多種不同的候選體系結(jié)構(gòu)的描述都可以拿來評估以便對比和選擇。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 場景是體系結(jié)構(gòu)描述之外的另一個關(guān)鍵輸入。基于場景的評估方法的基本要點就是檢查當(dāng)前的體系結(jié)構(gòu)能否直接滿足期望的質(zhì)量需求,并在不能滿足時看看可以怎樣改動。我們幾乎不可能對質(zhì)量屬性進(jìn)行精確測量,可又希望質(zhì)量屬性對評估有意義,所以必須以一種更實在的形式來表述它。這就是場景為什么這么重要的原因。有些
16、場景可能可以在功能性需求中提取出來,不過大多數(shù)都是源自涉眾的討論和頭腦風(fēng)暴。當(dāng)然,待評估的體系結(jié)構(gòu)起碼得支持需求說明中的所有功能。而評估過程的關(guān)鍵是搞清楚體系結(jié)構(gòu)是否能在滿足需求的情況下?lián)碛辛己玫馁|(zhì)量屬性。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 SAAM主要是以評估報告的形式輸出。如果是評估單個體系結(jié)構(gòu),那么報告的內(nèi)容將包括該體系結(jié)構(gòu)設(shè)計不能滿足質(zhì)量需求的缺陷;多個體系結(jié)構(gòu)情況下將報告哪個候選體系結(jié)構(gòu)能最好地滿足場景。由不適當(dāng)分解或過分復(fù)雜導(dǎo)致不良設(shè)計也會在報告中被指出。最后,SAAM可以估計修改導(dǎo)致的費用和范圍,以避免盲目的修改。第7章 軟件體系結(jié)構(gòu)評估 7
17、.3 SAAM評估方法 SAAM評估的步驟 除此之外,SAAM還有一些優(yōu)點。它增強了涉眾對體系結(jié)構(gòu)的理解,強制對體系結(jié)構(gòu)更好的編檔,澄清系統(tǒng)將來演化最可能的方向。通過涉眾廣泛的討論,業(yè)務(wù)目標(biāo)的優(yōu)先級和潛在的場景也得以澄清。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 1、形成場景 在形成場景的過程中,要注意全面捕捉系統(tǒng)的主要用途、系統(tǒng)用戶類型、系統(tǒng)將來可能的變更、系統(tǒng)在當(dāng)前及可預(yù)見的未來必須滿足的質(zhì)量屬性等信息。只有這樣,形成的場景才能代表與各種風(fēng)險承擔(dān)者相關(guān)的任務(wù)。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 形成場景的過程也是集中討論的
18、過程。集體討論能夠使風(fēng)險承擔(dān)者在一個友好的氛圍中提出一個個場景,這些場景反映了他們的需求,也體現(xiàn)了他們對體系結(jié)構(gòu)將如何實現(xiàn)他們的需求的認(rèn)識。某一個場景可能只反映一個風(fēng)險承擔(dān)者的需求,也可能反映多個風(fēng)險承擔(dān)者的需求。例如,對于某個變更,開發(fā)人員關(guān)心的是實現(xiàn)該變更的難度和對性能的影響,而系統(tǒng)管理員則關(guān)心此變更對體系結(jié)構(gòu)的可集成性的影響。在評估過程中,隨著場景的不斷提出,記錄人員要把它們都記錄在冊,形成文檔,供所有參加評估的人員查閱。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 提出和收集場景的過程經(jīng)常要重復(fù)兩次或多次。形成場景和描述體系結(jié)構(gòu)的工作是相關(guān)聯(lián)的,這兩個步驟可重
19、復(fù)進(jìn)行,是一個迭代的過程。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 2、描述體系結(jié)構(gòu) 在這一步,體系結(jié)構(gòu)設(shè)計師應(yīng)該采用參加評估的所有人員都能充分理解的形式,對待評估的體系結(jié)構(gòu)進(jìn)行適當(dāng)?shù)拿枋?。這種描述必須要說明系統(tǒng)中的運算和數(shù)據(jù)構(gòu)件,也要講清它們之間的聯(lián)系。除了要描述這些靜態(tài)特性外,還要對系統(tǒng)在某段時間內(nèi)的動態(tài)特征做出說明。描述既可采用自然語言,也可采用形式化的手段。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 場景的形成和對體系結(jié)構(gòu)的描述通常是相互促進(jìn)的。一方面,對體系結(jié)構(gòu)的描述使風(fēng)險承擔(dān)者考慮針對所評估的體系結(jié)構(gòu)的某些具體特征的場景;
20、另一方面,場景也反映了對體系結(jié)構(gòu)的需求,因此必須體現(xiàn)在體系結(jié)構(gòu)的描述中。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 3、對場景進(jìn)行分類和確定優(yōu)先級 在SAAM評估中,場景就是對所期望的系統(tǒng)中某個使用情況的簡短描述。體系結(jié)構(gòu)可能直接支持該場景,即這一預(yù)計的使用情況不需要對體系結(jié)構(gòu)做任何修改即可實現(xiàn)。這一般可以通過演示現(xiàn)有的體系結(jié)構(gòu)在執(zhí)行此場景時的表示來確定。在SAAM評估方法中稱這樣的場景為直接場景。即直接場景是按照現(xiàn)有體系結(jié)構(gòu)開發(fā)出來的系統(tǒng)能夠直接實現(xiàn)的場景。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 如果所評估的體系結(jié)構(gòu)不能直接支持某
21、一場景,就必須對所描述的體系結(jié)構(gòu)做些修改??赡芤獙?zhí)行某一功能的一個或多個構(gòu)件進(jìn)行更改、為實現(xiàn)某一功能而增加一個構(gòu)件,為已有構(gòu)件建立某種新的聯(lián)系、刪除某個構(gòu)件或某種聯(lián)系、更改某一接口,或者是以上多種情況的綜合,這樣的場景叫做間接場景。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 間接場景就是需要對現(xiàn)有體系結(jié)構(gòu)做些修改才能支持的場景,間接場景對于衡量體系結(jié)構(gòu)對系統(tǒng)在演化過程中將出現(xiàn)的變更的適應(yīng)情況十分關(guān)鍵。通過各種間接場景對體系結(jié)構(gòu)的影響,可以確定出體系結(jié)構(gòu)在相關(guān)系統(tǒng)的生命周期內(nèi)對不斷演化的使用的適應(yīng)情況。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估
22、的步驟 評估人員通過對場景設(shè)置優(yōu)先級,可保證在評估的優(yōu)先時間內(nèi)考慮最重要的場景。這里的“重要”完全是由風(fēng)險承擔(dān)者及其所關(guān)心的問題確定的。風(fēng)險承擔(dān)者們通過投票表達(dá)出所關(guān)心的問題。每個參加評估的風(fēng)險承擔(dān)者都將拿到固定數(shù)量的選票,向每個風(fēng)險承擔(dān)者發(fā)放的選票數(shù)一般是待評估場景數(shù)量的30%,他們可以用自己認(rèn)為合適的方式投票,可把這些票全部投給某一個場景,或者每個場景投2-3張票,還可以一個場景一張票等。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 只要每個人投票總數(shù)不超過手中的選票總數(shù),他可以為任何場景投任何數(shù)目的票。然后按照得到選票數(shù)目的順序?qū)λ袌鼍斑M(jìn)行排序,并根據(jù)具體情況
23、選擇一定數(shù)目的排序靠前的場景。有時候,排序后的列表可能會有一個涇渭分明的分界,一邊是得到很多票的場景,另一邊得票數(shù)很少(如圖7-2所示),那么直接選擇得票多的場景即可。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 其它時候,可以計算一下評估多少場景比較適合,或者估計一下評估時間內(nèi)能完成多少。典型的比如說,一整天可以評估完8個場景而你計劃兩天的時間進(jìn)行場景的單個評估,那么選擇15或16個比較合適。要注意的是即使根據(jù)預(yù)先定好的規(guī)則某些場景是應(yīng)該放棄的,但如果它們的提出者仍然堅持而其它人又不反對的話,那
24、么也可以添加到“關(guān)鍵”列表中。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 4、對間接場景進(jìn)行單個評估 一旦確定了要考慮的一組場景,就要把這些場景與體系結(jié)構(gòu)的描述對應(yīng)起來。對于直接場景而言,體系結(jié)構(gòu)設(shè)計師需要講清所評估的體系結(jié)構(gòu)將如何執(zhí)行這些場景;對于間接場景而言,體系結(jié)構(gòu)設(shè)計師應(yīng)說明需要對體系結(jié)構(gòu)做哪些修改才能適應(yīng)間接場景的要求。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 對每一個間接場景,必須列出為支持該場景而需要對體系結(jié)構(gòu)所做的改動,并估計出這些變更的代價。對體系結(jié)構(gòu)的更改意味著引入某個新構(gòu)件或新聯(lián)系,或者需要對已有構(gòu)件或聯(lián)系的描述
25、進(jìn)行修改。在這一步快結(jié)束時,應(yīng)該給出全部場景的總結(jié)性列表。對每個間接場景,都應(yīng)描述出要求做的更改,并由記錄人員記錄下來,形成文檔。在描述中應(yīng)包括對完全實現(xiàn)每個更改的代價的估計(包括測試和調(diào)試的時間)。(表7-2)第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 表7-2 SAAM間接場景單個評估表場景編號場景描述所需改動需改動元素數(shù)估計工作量F4允許同其它系統(tǒng)交換數(shù)據(jù)數(shù)據(jù)序列化模塊,數(shù)據(jù)交換接口212個工作日F8加入上下文相關(guān)的幫助上下文相關(guān)的UI控制,幫助文檔230個工作日F9支持多個DBMS數(shù)據(jù)管
26、理抽象13個工作日 5、評估場景的相互作用 當(dāng)兩個或多個間接場景要求更改體系結(jié)構(gòu)的同一個構(gòu)件時,我們就稱這些場景在這一組構(gòu)件上相互作用。那么,為什么要強調(diào)場景的相互作用呢? 首先,場景的相互作用暴露了設(shè)計方案中的功能分配。場景相互作用的多少與結(jié)構(gòu)復(fù)雜性、耦合度、內(nèi)聚性等有關(guān)。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 例如,如果場景1和場景2是屬于不同類別的,并且都影響構(gòu)件X,那末構(gòu)件X在結(jié)構(gòu)劃分方面可能存在著耦合問題。這時場景1和場景2的交互體現(xiàn)出系統(tǒng)結(jié)構(gòu)沒有很好地劃分構(gòu)件。另一方面,如果場景1和場景2是同一類的,那么它們在構(gòu)件X內(nèi)部的交互反映出該模塊具有良好的內(nèi)
27、聚性。第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 其次,場景的相互作用能夠暴露出體系結(jié)構(gòu)設(shè)計文檔未能充分說明的結(jié)構(gòu)分解。如果場景在某一構(gòu)件內(nèi)相互作用,但該構(gòu)件實際上又分解成未表現(xiàn)出場景相互作用的子構(gòu)件,就會出現(xiàn)這種文檔描述不當(dāng)?shù)那闆r。如果真的出現(xiàn)了這種情況,則必須重新審核第2步(描述體系結(jié)構(gòu))的工作。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 6、形成總體評估 SAAM的最后一步是形成總結(jié)報告。如果候選體系結(jié)構(gòu)只有一個,那么總體評估要做的就是審查前面步驟的結(jié)果并總結(jié)成報告。修改計劃將基于此報告。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAA
28、M評估方法 SAAM評估的步驟 如果有多個候選體系結(jié)構(gòu),就需要進(jìn)行一番比較。為此需要根據(jù)各個關(guān)鍵場景和商務(wù)目標(biāo)的關(guān)系來決定每個關(guān)鍵場景的權(quán)重。比較體系結(jié)構(gòu)時會發(fā)現(xiàn),某個體系結(jié)構(gòu)在某些場景下表現(xiàn)突出,而另一個體系結(jié)構(gòu)在另一些場景下最好。有時簡單的根據(jù)候選體系結(jié)構(gòu)在哪些場景下具有優(yōu)勢很難做出最好的選擇。而事實上,即使同樣叫做關(guān)鍵場景,場景的重要性也是不同的。這可以通過設(shè)置權(quán)重來體現(xiàn)。多年來,出現(xiàn)了幾種決定權(quán)重的策略。其中一種方式是利用涉眾的討論,有時是爭論來得到相對權(quán)重。或者,如果有歷史記錄,則是很好的參考資料。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 直接場景也影
29、響總體評估結(jié)果。不同的候選體系結(jié)構(gòu)幾乎總是有各自不同的直接場景?;貞浺幌拢苯訄鼍笆遣唤?jīng)修改就被體系結(jié)構(gòu)支持的那些場景。所以支持更多直接場景的體系結(jié)構(gòu)也暗示著這是一個更好的候選。有時,也會把直接場景的重要性放到總體評估這里一起考慮。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 最后,架構(gòu)師對每個關(guān)鍵場景下各個候選體系結(jié)構(gòu)打分。一般來說,打分采用相對值的方法,比如“1,0,-1”(或“2,1,0”、“+,0,-”等)。1表示體系結(jié)構(gòu)在該場景下表現(xiàn)很好;-1相反;0則表示體系結(jié)構(gòu)對該場景無關(guān)緊要。根據(jù)需要把范圍定到5或者10也沒問題。有了場景權(quán)重和體系結(jié)構(gòu)的得分,就可以
30、畫一個類似表7-3的表格。然后把該表格和獨立場景評估、場景關(guān)聯(lián)評估和直接場景分析的結(jié)果結(jié)合起來,選擇一個最好的體系結(jié)構(gòu)作為下一步開發(fā)的基礎(chǔ)。 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法 SAAM評估的步驟 第7章 軟件體系結(jié)構(gòu)評估 7.3 SAAM評估方法表7-3 SAAM總體評估示例場景編號權(quán)重候選1候選2F481-1F581-1F8510F107-11F131001F14601總體評估得分4567使用ATAM方法對軟件體系結(jié)構(gòu)進(jìn)行評估的目標(biāo)是理解體系結(jié)構(gòu)關(guān)于軟件系統(tǒng)的質(zhì)量屬性需求決策的結(jié)果。ATAM方法不但揭示了體系結(jié)構(gòu)如何滿足特定的質(zhì)量目標(biāo)(例如性能和可修改性),而且還提供了這些
31、質(zhì)量目標(biāo)是如何交互的,即它們之間是如何權(quán)衡的。這些設(shè)計決策很重要,一直會影響到整個軟件生命周期,并且在軟件實現(xiàn)后很難修改這些決策。第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法最初的ATAM分成4個階段內(nèi)的6個步驟,如圖7-3所示。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法圖7-3把評估集成到了整個設(shè)計過程中。6個步驟,即收集場景,收集需求、限制和環(huán)境,描述體系結(jié)構(gòu)視圖,屬性特定分析,識別敏感點和權(quán)衡點,構(gòu)成了一輪迭代。完成上述步驟后如果評估結(jié)果表明當(dāng)前體系結(jié)構(gòu)能滿足期望的質(zhì)量需求,就可以進(jìn)行詳細(xì)設(shè)計或?qū)崿F(xiàn)了。否則,可以制定修改計劃更新已有設(shè)計,新的設(shè)計將進(jìn)入第二輪ATAM的迭代
32、。值得注意的是,這些步驟并不需要按照線性順序操作。每個步驟都可能會觸發(fā)任何其它步驟的改進(jìn)。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法改進(jìn)版ATAM1999年,ATAM在幾個實際項目中應(yīng)用后,有了升級和增強。ATAM的原有步驟有的進(jìn)行了合并,另外又補充了幾個其它的步驟(如圖7-4所示)。比如,增加了“場景分組和設(shè)置優(yōu)先級”,這個步驟和SAAM中類似。有幾個步驟被濃縮成一個,如“體系結(jié)構(gòu)介紹”。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法對比兩個版本的ATAM,可以看到一個趨勢,就是更多實際的技術(shù)和關(guān)注點被加入進(jìn)來。第一版建立在螺
33、旋開發(fā)模型之上,理論的味道很濃。在第二版,步驟進(jìn)行了重新調(diào)整以更好地符合實際需要。除此之外,也引入了一些需要的輔助技術(shù)。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法當(dāng)前ATAM的完整過程包括4個階段,共9個主要步驟。在此,步驟仍然不必是線性執(zhí)行的。實踐中,評估負(fù)責(zé)人可以決定應(yīng)該執(zhí)行哪些步驟,或者直接跳到本應(yīng)在若干步之后才實施的步驟。這些都視情況而定。步驟僅僅表明評估中間制品的生成順序。順序靠后的步驟總需要靠前步驟的制品作為輸入。因此,如果評估團(tuán)隊已經(jīng)有了某一步驟生成的信息,或者這些信息對此次評估沒有用處,就可以跳過這一步。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法ATAM的一
34、般過程如圖7-5所示。階段I和II是評估的核心。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法階段0是準(zhǔn)備階段。考慮到ATAM評估的范圍、時間和費用,有必要就評估時間表、費用計劃、參與者組織等問題進(jìn)行討論甚至簽署嚴(yán)格的合同協(xié)定。打算評估的人首先應(yīng)該搞清楚進(jìn)行評估是否可行、誰參與評估、評估的對象是什么、評估結(jié)果提交給誰、評估后又該做什么。為了避免核心評估階段中斷,上面提到的每個問題都需要仔細(xì)考慮和計劃。然后,需要建立一個評估團(tuán)隊,負(fù)責(zé)接下來的工作。該團(tuán)隊中需要定義幾個角色,包括團(tuán)隊領(lǐng)導(dǎo)、評估領(lǐng)導(dǎo)、書記員、計時者、提問者、監(jiān)督員等。同一個人可以扮演多個角色。通常,在階段0會開一個評估團(tuán)隊會議
35、以明確責(zé)任并為下一階段做好準(zhǔn)備。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法階段III是評估收尾階段。這時有兩項任務(wù)必須要做。首先就是要產(chǎn)生最終報告,記錄核心評估階段的過程、信息和基于此的結(jié)論。另一項任務(wù)是進(jìn)行總結(jié)以便改進(jìn)今后的評估。一方面,可以問問評估成員或者其他參與者感覺哪些活動好,哪些不好,為什么??梢允占P(guān)于本次評估的花費和受益的信息。這種數(shù)據(jù)挖掘可能會有利于找到各種活動的可改進(jìn)之處。另一方面,可以整理本次的場景和相關(guān)的問題,以備下次評估類似項目。在領(lǐng)域特定的開發(fā)中,這項活動因其強大的可重用性而非常有效。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評
36、估 7.4 ATAM評估方法 ATAM評估的步驟 整個ATAM評估過程包括九個步驟,按其編號順序分別是描述ATAM方法、描述商業(yè)動機、描述體系結(jié)構(gòu)、確定體系結(jié)構(gòu)方法、生成質(zhì)量屬性效用樹、分析體系結(jié)構(gòu)方法、討論和分級場景、分析體系結(jié)構(gòu)方法(是第六步的重復(fù))、描述評估結(jié)果。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法 ATAM評估的步驟 這些步驟又進(jìn)一步分為如下4個子階段: 1、介紹(1)介紹ATAM:介紹ATAM的步驟、活動和技術(shù)。(2)介紹商業(yè)動機:介紹商業(yè)目標(biāo)以識別主要質(zhì) 量需求。(3)介紹體系結(jié)構(gòu):解釋當(dāng)前體系結(jié)構(gòu)如何滿足 商業(yè)動機。第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方
37、法 ATAM評估的步驟 2、研究和分析(4)識別體系結(jié)構(gòu)方法:找到建立體系結(jié)構(gòu)所用 的方法。(5)生成質(zhì)量屬性效用樹:以樹的形式產(chǎn)生反映 系統(tǒng)效用的帶有優(yōu)先級的場景。(6)分析體系結(jié)構(gòu)方法:對支持關(guān)鍵場景的體系 結(jié)構(gòu)方法進(jìn)行分析,并識別風(fēng)險、非風(fēng)險、 敏感點和權(quán)衡點。 第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法 ATAM評估的步驟 3、測試(7)頭腦風(fēng)暴和給場景指定優(yōu)先級:由更多的涉 眾生成更多的場景。(8)分析體系結(jié)構(gòu)方法:同步驟(6),不過采用 的場景來自步驟(7)。 4、報告(9)報告結(jié)果:產(chǎn)生評估報告。 子階段評估步驟主要階段I主要階段II介紹(1)介紹ATAM (2)介紹商業(yè)
38、動機(3)介紹體系結(jié)構(gòu)研究和分析(4)識別體系結(jié)構(gòu)方法(5)生成質(zhì)量屬性效用樹(6)分析體系結(jié)構(gòu)方法測試(7)頭腦風(fēng)暴和設(shè)定場景優(yōu)先級無(8)分析體系結(jié)構(gòu)方法報告(9)提供評估結(jié)果第7章 軟件體系結(jié)構(gòu)評估 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (1)描述ATAM方法(1) ATAM評估的第一步要求評估小組負(fù)責(zé)人向參加會議的風(fēng)險承擔(dān)者介紹ATAM評估方法。在這一步,要解釋每個人將要參與的過程,并預(yù)留出解答疑問的時間,設(shè)置好其他活動的環(huán)境和預(yù)期結(jié)果。關(guān)鍵是要使每個人都知道要收集哪些信息,如何描述這些信息,將要向誰報告等。特別是要描述以下事項:7.4 ATAM評估方法(1)ATAM方法步
39、驟簡介;(2)獲取和分析技術(shù):效用樹的生成,基于體系結(jié)構(gòu)方法的獲取/分析,場景的映射等;(3)評估結(jié)果:所得出的場景及其優(yōu)先級,用戶理解/評估體系結(jié)構(gòu)的問題,描述驅(qū)動體系結(jié)構(gòu)的需求并對這些需求進(jìn)行分類,所確定的一組體系結(jié)構(gòu)方法和風(fēng)格,一組所發(fā)現(xiàn)的風(fēng)險點和無風(fēng)險點、敏感點和權(quán)衡點。第7章 軟件體系結(jié)構(gòu)評估 描述ATAM方法(2) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (2)描述商業(yè)動機 參加評估的所有人員必須理解待評估的系統(tǒng),在這一步,項目經(jīng)理要從商業(yè)角度介紹系統(tǒng)的概況。商業(yè)環(huán)境/驅(qū)動描述(約12張幻燈片,45分鐘)(1)描述商業(yè)環(huán)境、歷史、市場劃分、驅(qū)動需求、風(fēng)險承擔(dān)者、當(dāng)前需要以
40、及系統(tǒng)如何滿足這些需要(3-4張幻燈片)。(2)描述商業(yè)方面的約束條件(例如:推向市場的時間、客戶需求、標(biāo)準(zhǔn)和成本等)(1-3張幻燈片)。(3)描述技術(shù)方面的約束條件(例如:COTS、與其他系統(tǒng)的互操作、所需要的軟硬件平臺、遺留代碼的重用等)(1-3張幻燈片)。(4)質(zhì)量屬性需求(例如:系統(tǒng)平臺、可用性、安全性、可修改性、互操作性、集成性和這些需求來自的商業(yè)需要)(2-3張幻燈片)。(5)術(shù)語表(1張幻燈片)。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (3)描述體系結(jié)構(gòu)(1) 在這一步中,首席設(shè)計師或設(shè)計小組要對體系結(jié)構(gòu)進(jìn)行詳略適當(dāng)?shù)慕榻B,這里的“詳略適當(dāng)”取決于多個因素,例如有多少信
41、息已經(jīng)決定了下來,并形成了文檔;可用時間是多少;系統(tǒng)面臨的風(fēng)險有哪些等。這一步很重要,將直接影響到可能要做的分析及分析的質(zhì)量。在進(jìn)行更詳細(xì)的分析之前,評估小組通常需要收集和記錄一些額外的體系結(jié)構(gòu)信息。 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 描述體系結(jié)構(gòu)(2) 體系結(jié)構(gòu)描述(約20張幻燈片,60分鐘)(1)驅(qū)動體系結(jié)構(gòu)的需求(例如:性能、可用性、安全性、可修改性、互操作性、集成性等),以及與這些需求相關(guān)的可度量的量和滿足這些需求的任何存在的標(biāo)準(zhǔn)、模型或方法(2-3張幻燈片)。(2)高層體系結(jié)構(gòu)視圖(4-8張幻燈片)。 功能:函數(shù)、關(guān)鍵的系統(tǒng)抽象、領(lǐng)域元素及其依賴關(guān)系、數(shù)據(jù)流; 模塊/
42、層/子系統(tǒng):描述系統(tǒng)功能組成的子系統(tǒng)、層、模塊,以及對象、過程、函數(shù)及它們之間的關(guān)系(例如:過程調(diào)用、方法使用、回調(diào)和包含等); 進(jìn)程/線程:進(jìn)程、線程及其同步,數(shù)據(jù)流和與之相連的事件; 硬件:CPU、存儲器、外設(shè)/傳感器,以及連接這些硬件的網(wǎng)絡(luò)和通信設(shè)備。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 描述體系結(jié)構(gòu)(3) (3)所采用的體系結(jié)構(gòu)方法或風(fēng)格,包括它們所強調(diào)的質(zhì)量屬性和如何實現(xiàn)的描述(3-6張幻燈片)。(4)COTS的使用,以及如何選擇和集成(1-2張幻燈片)。(5)介紹1-3個最重要的用例場景,如果可能,應(yīng)包括對每個場景的運行資源的介紹(1-3張幻燈片)。(6)介紹1-3個最
43、重要的變更場景,如果可能,應(yīng)描述通過變更構(gòu)件、連接件或接口所帶來的影響(1-3張幻燈片)。(7)與滿足驅(qū)動體系結(jié)構(gòu)需求相關(guān)的體系結(jié)構(gòu)問題或風(fēng)險(2-3張幻燈片)。(8)術(shù)語表(1張幻燈片)。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (4)確定體系結(jié)構(gòu)方法 識別體系結(jié)構(gòu)方法的原因是這些信息提供了體系結(jié)構(gòu)構(gòu)建背后的基本原則。一個體系結(jié)構(gòu)方法是指根據(jù)功能或質(zhì)量屬性需求而做的設(shè)計決定。軟件體系結(jié)構(gòu)風(fēng)格和模式包含了大量有用信息,這些信息與進(jìn)行特定設(shè)計的原理緊密相關(guān)。體系結(jié)構(gòu)模式描述了必要的抽象元素、這些元素的結(jié)構(gòu)和相關(guān)的一些約束。但并不是所有的體系結(jié)構(gòu)方法都可以用體系結(jié)構(gòu)風(fēng)格或模式的形式表達(dá)。架
44、構(gòu)師應(yīng)該能講清楚使用的每個體系結(jié)構(gòu)方法,這樣其他評估參與者也有機會理解。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (5)生成質(zhì)量屬性效用樹(1) 評估小組、設(shè)計小組、管理人員和客戶代表一起確定系統(tǒng)最重要的質(zhì)量屬性目標(biāo),并對這些質(zhì)量目標(biāo)設(shè)置優(yōu)先級和細(xì)化。這一步很關(guān)鍵,它對以后的分析工作起指導(dǎo)作用。即使是體系結(jié)構(gòu)級的分析,也并不一定是全局的,所以,評估人員需要集中所有相關(guān)人員的精力,注意體系結(jié)構(gòu)的各個方面,這對系統(tǒng)的成敗起關(guān)鍵作用。這通常是通過構(gòu)建效用樹的方式來實現(xiàn)的。 7.4 ATAM評估方法 效用樹的輸出結(jié)果是對具體質(zhì)量屬性需求(以場景形式出現(xiàn))的優(yōu)先級的確定,這種優(yōu)先級列表為ATAM
45、評估方法的后面幾步提供了指導(dǎo),它告訴了評估小組該把有限的時間花在哪里,特別是該在哪里去考察體系結(jié)構(gòu)方法與相應(yīng)的風(fēng)險、敏感點和權(quán)衡。 第7章 軟件體系結(jié)構(gòu)評估 生成質(zhì)量屬性效用樹(2) 7.4 ATAM評估方法 質(zhì)量屬性效用樹(Quality Attribute Utility Tree,QAUT)以樹的形式表現(xiàn)質(zhì)量屬性的細(xì)化。QAUT的根是效用,接下來是質(zhì)量屬性層,典型的有可用性、可修改型和安全性等。再接著下一層是質(zhì)量屬性具體描述分類,也就是把某個質(zhì)量屬性分成幾個主題。第四層也是最后一層,是具體的場景,精確定義了質(zhì)量需求以允許后續(xù)分析。一般來說,QAUT把系統(tǒng)的期望效用翻譯成了場景。 第7章
46、軟件體系結(jié)構(gòu)評估 生成質(zhì)量屬性效用樹(3) 7.4 ATAM評估方法每個場景有兩維度量: (1)此場景對系統(tǒng)成功的重要程度。 (2)架構(gòu)師所估計的支持此場景的開發(fā)難度。測量所用的標(biāo)度可以定為類似高、中、低這樣范圍為3的序數(shù)尺度,范圍為5或者10等也可以。標(biāo)記好度量后,場景就可以排出優(yōu)先級了,最上面的是參與者希望得到的最關(guān)鍵的質(zhì)量屬性目標(biāo)。 第7章 軟件體系結(jié)構(gòu)評估 生成質(zhì)量屬性效用樹(4) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 生成質(zhì)量屬性效用樹(5) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (6)分析體系結(jié)構(gòu)方法(1) 一旦有了效用樹的結(jié)果,評估小組可以對實現(xiàn)重要質(zhì)量屬
47、性的體系結(jié)構(gòu)方法進(jìn)行考察。這是通過注意文檔化這些體系結(jié)構(gòu)決策和確定它們的風(fēng)險、敏感點和權(quán)衡點等來實現(xiàn)的。在這一步中,評估小組要對每一種體系結(jié)構(gòu)方法都考察足夠的信息,完成與該方法有關(guān)的質(zhì)量屬性的初步分析。這一步的主要結(jié)果是一個體系結(jié)構(gòu)方法或風(fēng)格的列表,與之相關(guān)的一些問題,以及設(shè)計師對這些問題的回答。通常產(chǎn)生一個風(fēng)險列表、敏感點和權(quán)衡點列表。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 分析體系結(jié)構(gòu)方法(2) 風(fēng)險是已經(jīng)做出的但是在特定可能情況下會出現(xiàn)潛在問題的決策。而非風(fēng)險正相反。可能有人會說風(fēng)險應(yīng)該受到更多關(guān)注,因為它們是將來的問題之源。不過,非風(fēng)險一樣重要,因為它們暗示了哪些體系結(jié)構(gòu)方法
48、值得保留和堅持。更重要的是,當(dāng)上下文變化的時候,非風(fēng)險可能會轉(zhuǎn)變成風(fēng)險。因此,顯式地列出非風(fēng)險是有用的。 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 分析體系結(jié)構(gòu)方法(3) 敏感點是指會被某些體系結(jié)構(gòu)元素顯著影響的系統(tǒng)模型的屬性值。研究敏感點可使設(shè)計人員或分析員明確在搞清楚如何實現(xiàn)質(zhì)量目標(biāo)時應(yīng)注意什么。權(quán)衡點是系統(tǒng)內(nèi)與幾個敏感點都相關(guān)的地方。權(quán)衡點是影響多個質(zhì)量屬性的特性,是多個質(zhì)量屬性的敏感點。例如,改變加密級別可能會對安全性和性能產(chǎn)生非常重要的影響。提高加密級別可以提高安全性,但可能要耗費更多的處理時間,影響系統(tǒng)性能。如果某個機密消息的處理有嚴(yán)格的時間延遲要求,則加密級別可能就會成為
49、一個權(quán)衡點。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 分析體系結(jié)構(gòu)方法(4) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 分析體系結(jié)構(gòu)方法(5) 7.4 ATAM評估方法看門狗:采用一個獨立于CPU的定時器周期性地產(chǎn)生復(fù)位脈沖,而CPU則必須在這個周期內(nèi)對這個定時器進(jìn)行清零處理(所謂的“喂狗”),讓其重新計時。如果CPU不能在規(guī)定的時間內(nèi)去喂狗,有可能是死機,則定時器可以讓CPU重新復(fù)位回到正常程序中來。 心跳:是雙機容錯系統(tǒng)的一種故障診測方法,使用備用機對主用機進(jìn)行診測,通過主用機按一定的間隔通過監(jiān)控線往備用機發(fā)送心跳信息,以備用機收不到主機的信息為診測失敗的依據(jù)。 第7章 軟
50、件體系結(jié)構(gòu)評估 (7)討論和分級場景(1) 風(fēng)險承擔(dān)者需進(jìn)行兩項相關(guān)的活動:集體討論用例場景(描述風(fēng)險承擔(dān)者期望使用系統(tǒng)的方式)和改變場景(描述風(fēng)險承擔(dān)者所期望的系統(tǒng)在將來變更的方式)。用例場景是場景的一種,在用例場景中,風(fēng)險承擔(dān)者是一個終端用戶,使用系統(tǒng)執(zhí)行一些功能。改變場景代表系統(tǒng)的變更,可分為成長場景和考察場景兩類。 7.4 ATAM評估方法 成長場景描述的是體系結(jié)構(gòu)在中短期的改變,包括期望的修改、性能或可用性的變更、移植性、與其他軟件系統(tǒng)的集成等。考察場景描述的是系統(tǒng)成長的一個極端情形,即體系結(jié)構(gòu)由下列情況所引起的改變:根本性的性能或可用性需求(例如數(shù)量級的改變)、系統(tǒng)基礎(chǔ)結(jié)構(gòu)或任務(wù)的
51、重大變更等。成長場景能夠使評估人員看清在預(yù)期因素影響系統(tǒng)時,體系結(jié)構(gòu)所表現(xiàn)出來的優(yōu)缺點,而考察場景則試圖找出敏感點和權(quán)衡點,這些點的確定有助于評估者評估系統(tǒng)質(zhì)量屬性的限制。 第7章 軟件體系結(jié)構(gòu)評估 討論和分級場景(2) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 討論和分級場景(3) 一旦收集了若干個場景后,必須要設(shè)置優(yōu)先級。評估人員可通過投票表決的方式來完成,每個風(fēng)險承擔(dān)者分配相當(dāng)于總場景數(shù)的30%的選票,且此數(shù)值只入不舍。例如,如果共有17個場景,則每個風(fēng)險承擔(dān)者將拿到6張選票,這6張選票的具體使用則取決于風(fēng)險承擔(dān)者,他可以把這6張票全部投給某一個場景,或者每個場景投2-3張票,還
52、可以一個場景一張票等。一旦投票結(jié)果確定,所有場景就可設(shè)置優(yōu)先級。設(shè)置優(yōu)先級和投票的過程既可公開也可保密。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 討論和分級場景(4) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 討論和分級場景(5) 7.4 ATAM評估方法最初的效用樹是由架構(gòu)設(shè)計師和關(guān)鍵開發(fā)人員創(chuàng)建的。在對場景進(jìn)行集體討論的過程和設(shè)置優(yōu)先級的過程中,有很多風(fēng)險承擔(dān)者參與其中,與最初的效用樹相比,兩者之間的不匹配可以揭露架構(gòu)設(shè)計師未曾注意到的方面,從而使得我們發(fā)現(xiàn)架構(gòu)中的重大風(fēng)險。第7章 軟件體系結(jié)構(gòu)評估 討論和分級場景(6) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (
53、8)分析體系結(jié)構(gòu)方法 在收集并分析了場景之后,設(shè)計師就可把最高級別的場景映射到所描述的體系結(jié)構(gòu)中,并對相關(guān)的體系結(jié)構(gòu)如何支持實現(xiàn)該場景做出解釋。在這一步中,評估小組要重復(fù)第6步中的工作,把新得到的最高優(yōu)先級場景與尚未得到的體系結(jié)構(gòu)工作產(chǎn)品對應(yīng)起來。在第7步中,如果未產(chǎn)生任何在以前的分析步驟中都沒有發(fā)現(xiàn)的高優(yōu)先級場景,則在第8步就是測試步驟。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 (9)描述評估結(jié)果(1) 最后,要把ATAM分析中所得到的各種信息進(jìn)行歸納,并反饋給風(fēng)險承擔(dān)者。這種描述一般要采用輔以幻燈片的形式,但也可以在ATAM評估結(jié)束之后,提交更完整的書面報告。 7.4 ATAM評估
54、方法在描述過程中,評估負(fù)責(zé)人要介紹ATAM評估的各個步驟,以及各步驟中得到的各種信息,包括商業(yè)環(huán)境、驅(qū)動需求、約束條件和體系結(jié)構(gòu)等。最重要的是要介紹ATAM評估的結(jié)果:(1)已文檔化了的體系結(jié)構(gòu)方法/風(fēng)格;(2)場景及優(yōu)先級;(3)基于屬性的問題;(4)效用樹;(5)所發(fā)現(xiàn)的風(fēng)險決策;(6)已文檔化了的無風(fēng)險決策;(7)所發(fā)現(xiàn)的敏感點和權(quán)衡點。第7章 軟件體系結(jié)構(gòu)評估 描述評估結(jié)果(2) 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 ATAM評估的階段 第一個階段以體系結(jié)構(gòu)為中心,重點是獲取體系結(jié)構(gòu)信息并進(jìn)行分析。第二個階段以風(fēng)險承擔(dān)者為中心,重點是獲取風(fēng)險承擔(dān)者的觀點,驗證第一個階段的結(jié)
55、果。 7.4 ATAM評估方法 之所以要分為兩個階段,是因為評估人員要在第一個階段收集信息。在整個ATAM評估過程中,評估小組中的部分人(通常是1-3人)要與體系結(jié)構(gòu)設(shè)計師和1-2個其他關(guān)鍵的風(fēng)險承擔(dān)者(例如,項目經(jīng)理,客戶經(jīng)理,市場代表)一起工作,收集信息。對支持分析而言,在大多數(shù)情況下,這種信息是不完整的或不適當(dāng)?shù)?,所以,評估小組必須與體系結(jié)構(gòu)設(shè)計師一起協(xié)作引導(dǎo)出必須的信息,這種協(xié)作通常要花幾周的時間。當(dāng)評估人員覺得已經(jīng)收集了足夠的信息,并已把這些信息記錄成文檔,則就可進(jìn)入第二個階段了。第7章 軟件體系結(jié)構(gòu)評估 ATAM評估的階段 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 第一階段
56、(1) ATAM評估小組要與提交待評估的體系結(jié)構(gòu)的小組見面(或許這是雙方第一次會見),這一會議有兩方面的目的,一是組織和安排以后的工作,二是收集相關(guān)信息。從組織角度來看,體系結(jié)構(gòu)小組負(fù)責(zé)人要保證讓合適的人選參加后續(xù)會議,還要保證這些人為參加相關(guān)會議做了充分的準(zhǔn)備,抱著正確的態(tài)度。第一天通常作為整個ATAM過程的一個縮影,主要關(guān)注1-6步的工作。第一次會議所收集的信息意味著要保證體系結(jié)構(gòu)能得到正確的評估。同時,在第一次會議也會收集和分析一些初步的場景,作為理解體系結(jié)構(gòu)、需要收集和提交的信息、所產(chǎn)生的場景的含義的一種途徑。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 第一階段(2)例如,在第一
57、天,體系結(jié)構(gòu)設(shè)計師可能提交部分體系結(jié)構(gòu),確定部分體系結(jié)構(gòu)風(fēng)格或方法,創(chuàng)建初步的效用樹,就選定的一組場景進(jìn)行工作,展示每個場景是如何影響體系結(jié)構(gòu)的(例如可修改性),體系結(jié)構(gòu)又是如何作出響應(yīng)的(例如:對質(zhì)量屬性而言,可以是性能、安全性和可用性)。其他的風(fēng)險承擔(dān)者(例如:關(guān)鍵開發(fā)人員、客戶、項目經(jīng)理等)可以描述商業(yè)環(huán)境、效用樹的構(gòu)建,以及產(chǎn)生場景的過程。7.4 ATAM評估方法第一個階段是一個小型會議,評估小組需要盡可能多地收集有關(guān)信息,這些信息用來決定:(1) 后續(xù)評估工作是否可行,能否順利進(jìn)行;(2) 是否需要更多的體系結(jié)構(gòu)文檔。如果需要,則應(yīng)明確需要哪些類型的文檔,如何提交這些文檔;(3) 哪
58、些風(fēng)險承擔(dān)者應(yīng)參與第二個階段的工作。第7章 軟件體系結(jié)構(gòu)評估 第一階段(3)7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 第一階段(4) 在這一天的最后,評估人員將對項目的狀態(tài)和環(huán)境、驅(qū)動體系結(jié)構(gòu)需求,以及體系結(jié)構(gòu)文檔都有較清晰的認(rèn)識。在第一次會議和第二次會議之間有一段中斷時間,其長短取決于第一個階段完成的情況。在這段時間內(nèi),體系結(jié)構(gòu)設(shè)計小組和要評估小組協(xié)作,做一些探索和分析工作。前面已經(jīng)提到過,在第一個階段中評估小組并不構(gòu)建詳細(xì)的分析模型,而是構(gòu)建一些初步模型,以使評估人員和設(shè)計人員能對體系結(jié)構(gòu)有更充分的認(rèn)識,從而保證第二個階段的工作更有效率。另外,在這段時間內(nèi),還要根據(jù)評估工作的需要、
59、可用人員的狀況和計劃來決定評估小組的最終人選。例如,如果待評估的系統(tǒng)對安全性的要求很高,則需要讓安全專家參與評估工作;如果待評估的系統(tǒng)是以數(shù)據(jù)為中心的,則需要讓數(shù)據(jù)庫設(shè)計方面的專家參與評估。7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 第二階段這時,體系結(jié)構(gòu)已經(jīng)被文檔化,且有足夠的信息來支持驗證已經(jīng)進(jìn)行的分析和將要進(jìn)行的分析。已經(jīng)確定了參與評估工作的合適的風(fēng)險承擔(dān)者,并且給他們提供了一些書面閱讀材料,如對ATAM方法的介紹,某些初步的場景,包括體系結(jié)構(gòu)、商業(yè)案例和關(guān)鍵需求的系統(tǒng)文檔等。這些閱讀材料有助于保證風(fēng)險承擔(dān)者建立對ATAM評估方法的正確期望。 7.4 ATAM評估方法 因為將有更多
60、的風(fēng)險承擔(dān)者參與第二次會議,且因為在第一次會議和第二次會議之間,可能還要間隔幾天或幾個星期,所以第二個階段首先有必要重新簡單介紹ATAM方法,以使所有與會者達(dá)成共同的理解。另外,在每一步進(jìn)行之前,簡單扼要地介紹該步的工作,也是很有好處的。第7章 軟件體系結(jié)構(gòu)評估 第二階段7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 ATAM各步驟中相關(guān)的風(fēng)險承擔(dān)者 7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 ATAM評估日程安排(1)7.4 ATAM評估方法第7章 軟件體系結(jié)構(gòu)評估 ATAM評估日程安排(2) 7.4 ATAM評估方法在本節(jié)介紹一個使用SAAM方法的實例,使用SAAM方法對第3章介紹
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年長期股權(quán)投資協(xié)議
- 2024年簡單煤炭買賣合同范本
- 2024年正規(guī)規(guī)范家具銷售合同范本
- 河北行政職業(yè)能力2014年
- 2024年工廠設(shè)備轉(zhuǎn)讓合同范本
- 四川行政職業(yè)能力2011年(本碩類)
- 江西申論模擬81
- 2024年停車場租賃合同
- 2024年軟件系統(tǒng)的銷售合同范本
- 個人連帶擔(dān)保合同書2024年
- 水泥市場調(diào)研報告模板
- 水泵行業(yè)分析報告
- 物業(yè)滿意度分析報告
- 餐飲投標(biāo)書完整版本
- 酒店客房敲門進(jìn)門程序
- 《可靠性管理》課件
- 消防救援裝備與技術(shù)創(chuàng)新
- 釣蝦活動策劃方案
- 路基排水工程施工-地表排水設(shè)施施工
- 簡約現(xiàn)場急救之中暑的急救知識培訓(xùn)
- 2022軟件代碼開源成分與安全檢測指南
評論
0/150
提交評論