2011年軟考系統(tǒng)架構(gòu)設(shè)計(jì)師學(xué)習(xí)筆記第五章_第1頁
2011年軟考系統(tǒng)架構(gòu)設(shè)計(jì)師學(xué)習(xí)筆記第五章_第2頁
2011年軟考系統(tǒng)架構(gòu)設(shè)計(jì)師學(xué)習(xí)筆記第五章_第3頁
2011年軟考系統(tǒng)架構(gòu)設(shè)計(jì)師學(xué)習(xí)筆記第五章_第4頁
2011年軟考系統(tǒng)架構(gòu)設(shè)計(jì)師學(xué)習(xí)筆記第五章_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2011年軟考系統(tǒng)架構(gòu)設(shè)計(jì)師學(xué)習(xí)筆記第五章軟件架構(gòu)設(shè)計(jì)

SoftwareArchitecture簡稱SA

5.1.1軟件架構(gòu)設(shè)計(jì)與生命周期

1、需求分析階段

需求和SA設(shè)計(jì)面臨的是不同的對象:一個(gè)是問題空間;另一個(gè)是解空間。保持二者的可跟蹤性和轉(zhuǎn)換。

2、設(shè)計(jì)階段

1.傳統(tǒng)的設(shè)計(jì)概念只包括構(gòu)件,隨著研究的深入,構(gòu)件間的互聯(lián)機(jī)制逐漸獨(dú)立出來,成為與構(gòu)件同等級別的實(shí)體,稱為連接子。

2.體系結(jié)構(gòu)描述語言(ArchitectureDescriptionLanguageADL)對連接子的重視成為區(qū)分ADL和其他建模語言的重要特征之一。

3.不同的視角得到多個(gè)視圖,組織起來以描述整體的SA模型;不同側(cè)面的視圖反映所關(guān)注的系統(tǒng)的特定方面,體現(xiàn)了關(guān)注點(diǎn)分離的思想。

3、實(shí)現(xiàn)階段

團(tuán)隊(duì)的結(jié)構(gòu)應(yīng)該和體系結(jié)構(gòu)模型有一定的對應(yīng)關(guān)系,提高軟件開發(fā)效率和質(zhì)量。

分析和記錄不同版本構(gòu)件和連接子之間的演化。

填補(bǔ)高層SA模型和底層實(shí)現(xiàn)之間的鴻溝,典型的方法如下:

1.引入實(shí)現(xiàn)階段的概念。

2.SA模型逐步精化。

3.封裝底層稱為較大粒度構(gòu)件。

4、構(gòu)件組裝階段

可復(fù)用構(gòu)件組裝可以在較高層次上實(shí)現(xiàn)系統(tǒng),研究內(nèi)容包括:

1.如何互聯(lián)。

2.如何檢測并消除體系結(jié)構(gòu)失配問題。

中間件跨平臺交互。

產(chǎn)品化的中間件更好地保證最終系統(tǒng)的質(zhì)量,中間件導(dǎo)向的體系結(jié)構(gòu)風(fēng)格。

失配是指復(fù)用過程中,待復(fù)用構(gòu)件對最終系統(tǒng)的體系結(jié)構(gòu)和環(huán)境的架設(shè)(Assumption)與實(shí)際狀況下不同而導(dǎo)致的沖突。

5、部署階段

軟件構(gòu)件的互聯(lián)性、硬件的拓?fù)浣Y(jié)構(gòu)、硬件資源占用。

6、后開發(fā)階段

實(shí)現(xiàn)中的軟件往往具有動態(tài)性,一類是軟件內(nèi)部執(zhí)行所導(dǎo)致的體系結(jié)構(gòu)改變,另一類變化是軟件系統(tǒng)外部的請求對軟件進(jìn)行的重配置。

升級或進(jìn)行其他修改時(shí)不能停機(jī)。

SA重建是指從已實(shí)現(xiàn)的系統(tǒng)中獲取體系結(jié)構(gòu)的過程。

5.2基于架構(gòu)的軟件開發(fā)方法

5.2.1體系結(jié)構(gòu)的設(shè)計(jì)方法概述

基于體系結(jié)構(gòu)的軟件設(shè)計(jì)(Architecture-BasedSoftwareDesignABSD)方法。

體系結(jié)構(gòu)驅(qū)動,指構(gòu)成體系結(jié)構(gòu)的商業(yè)、質(zhì)量、功能需求的組合驅(qū)動。

設(shè)計(jì)活動的開始并不意味著需求抽取和分析活動就可以終止,而應(yīng)該并行,快速開始設(shè)計(jì)至關(guān)重要。

ABSD方法有三個(gè)基礎(chǔ),功能分解、選擇體系結(jié)構(gòu)風(fēng)格、軟件模板的使用。

5.2.2概念與術(shù)語

1、設(shè)計(jì)元素

ABSD方法是一個(gè)自頂向下,遞歸細(xì)化的方法。

2、視角與視圖

重要的是從不同的視角(perspective)來檢查,考慮體系結(jié)構(gòu)的不同屬性。

3、用例和質(zhì)量場景

在使用用例捕獲功能需求時(shí),通過定義特定場景來捕獲質(zhì)量需求,稱為質(zhì)量場景。捕獲變更、性能、可靠性、交互性,質(zhì)量場景必須包括預(yù)期的和非預(yù)期的。

5.2.3體系結(jié)構(gòu)需求

可以從需求庫中取出,加以利用和修改。

獲取需求,體系結(jié)構(gòu)需求一般來自三個(gè)方面:系統(tǒng)的質(zhì)量目標(biāo)、系統(tǒng)的商業(yè)目標(biāo)、開發(fā)人員的商業(yè)目標(biāo)。

5.2.4體系結(jié)構(gòu)文檔化

體系結(jié)構(gòu)規(guī)格說明和測試體系結(jié)構(gòu)需求的質(zhì)量設(shè)計(jì)說明書。

需求模型構(gòu)件的精確形式化描述,作為用戶和開發(fā)者之間的一個(gè)協(xié)約。

從使用者的角度進(jìn)行編寫,必須保證開發(fā)者手上的文檔是最新的。

5.2.5體系結(jié)構(gòu)復(fù)審

根據(jù)架構(gòu)設(shè)計(jì),搭建一個(gè)可運(yùn)行的最小化系統(tǒng)用于評估和測試體系架構(gòu)是否滿足需要。是否存在可識別的技術(shù)和協(xié)作風(fēng)險(xiǎn)。

復(fù)審的目的是標(biāo)識潛在風(fēng)險(xiǎn),及早發(fā)現(xiàn)缺陷和錯(cuò)誤。

5.2.6體系結(jié)構(gòu)實(shí)現(xiàn)

分割成規(guī)定的構(gòu)件,按規(guī)定方式互相交互。

5.3軟件架構(gòu)風(fēng)格

體系結(jié)構(gòu)設(shè)計(jì)核心目標(biāo)是重復(fù)的體系結(jié)構(gòu)模式,體系結(jié)構(gòu)級的軟件重用。

5.3.1軟件架構(gòu)風(fēng)格概述

一個(gè)體系結(jié)構(gòu)定義一個(gè)詞匯表和一組約束。詞匯表中包含構(gòu)件和連接件類型約束指出如何組合起來。

體系結(jié)構(gòu)風(fēng)格反映了共有的結(jié)構(gòu)和語義特性,并指導(dǎo)如何組織成一個(gè)完整的系統(tǒng)。

5.3.2經(jīng)典軟件體系結(jié)構(gòu)風(fēng)格

每個(gè)構(gòu)件都有一組輸入和輸出,數(shù)據(jù)輸入構(gòu)件,經(jīng)過內(nèi)部處理,然后產(chǎn)生數(shù)據(jù)輸出。這里的構(gòu)件稱為過濾器。

構(gòu)件是對象。

分層系統(tǒng),每一層為上層提供服務(wù),并作為下層的客戶。除一些精心挑選的輸出函數(shù)外,內(nèi)部的層接口只對相鄰層可見。由于一層最多只影響兩層,為軟件重用提供了強(qiáng)大的支持。

倉庫風(fēng)格中,兩種不同的構(gòu)件:中央數(shù)據(jù)結(jié)構(gòu)、獨(dú)立構(gòu)件。

若構(gòu)件控制共享數(shù)據(jù),則倉庫是一傳統(tǒng)型數(shù)據(jù)庫;若中央數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是一黑板系統(tǒng)。

C2體系結(jié)構(gòu)通過連接件綁定在一起按照一組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。構(gòu)件與構(gòu)件之間的連接是不允許的。

5.3.3客戶/服務(wù)器風(fēng)格

宿主機(jī)應(yīng)用程序既負(fù)責(zé)與用戶的交互(前端),又負(fù)責(zé)對數(shù)據(jù)的管理(后端)。

C/S體系結(jié)構(gòu)定義了工作站如何與服務(wù)器相連,實(shí)現(xiàn)部分?jǐn)?shù)據(jù)和應(yīng)用分布到多個(gè)處理機(jī)上。

C/S三個(gè)主要組成部分:服務(wù)器、客戶機(jī)、網(wǎng)絡(luò)。

易于對系統(tǒng)進(jìn)行擴(kuò)充和縮小。

功能構(gòu)件充分隔離,客戶應(yīng)用程序的開發(fā)集中于數(shù)據(jù)的顯示和分析,數(shù)據(jù)庫服務(wù)器的開發(fā)集中于數(shù)據(jù)的管理,將大應(yīng)用處理任務(wù)分布到許多通過網(wǎng)絡(luò)連接的低成本計(jì)算機(jī)上,模型思想簡單。

開發(fā)成本高,尤其是軟件不斷升級,客戶端變得越來越臃腫。

信息內(nèi)容和形式單一,用戶獲得的只是單純的字符和數(shù)字。

軟件移植困難,維護(hù)升級困難。

5.3.4三層C/S結(jié)構(gòu)風(fēng)格。

三層C/S體系結(jié)構(gòu)中,可以將整個(gè)應(yīng)用邏輯駐留在應(yīng)用服務(wù)器上,只有表示層存在于客戶機(jī)上,稱為“瘦客戶機(jī)”。表示層、功能層、數(shù)據(jù)層。

表示層一般要使用圖形用戶界面GUI。

功能層之間的數(shù)據(jù)交互要盡可能簡潔,一次性傳輸。

數(shù)據(jù)層不同層構(gòu)件相互獨(dú)立,層間接口簡潔,適合復(fù)雜事務(wù)處理。

5.3.5瀏覽器/服務(wù)器風(fēng)格

瀏覽器/服務(wù)器風(fēng)格就是三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn)方式。瀏覽器/web服務(wù)器/數(shù)據(jù)庫服務(wù)器。

系統(tǒng)安裝、修改、維護(hù)全在服務(wù)器端解決。僅僅需要一個(gè)瀏覽器就可運(yùn)行全部模塊。

B/S體系結(jié)構(gòu)還提供了異種機(jī)、異種網(wǎng)、異種應(yīng)用服務(wù)的連機(jī)、聯(lián)網(wǎng)等。

擴(kuò)展能力差。響應(yīng)速度慢。交互性不強(qiáng),不利于在線事務(wù)處理OLTP。

5.4.1特定領(lǐng)域軟件體系結(jié)構(gòu)

主要目的在一組相關(guān)的應(yīng)用中共享體系結(jié)構(gòu)。

DSSA的必備特征:

1、一個(gè)嚴(yán)格定義的問題域和解域。

2、具有普遍性。

3、對整個(gè)領(lǐng)域的構(gòu)件組織模型其當(dāng)抽象。

4、具備該領(lǐng)域固定的、典型的可重用元素。

5.4.2DSSA的基本活動

1、領(lǐng)域分析

主要目標(biāo)是獲得領(lǐng)域模型,描述領(lǐng)域中系統(tǒng)之間的共同需求,定義領(lǐng)域的邊界。從而明確分析的對象,識別信息源,確定哪些需求是領(lǐng)域中的系統(tǒng)廣泛共享的,從而建立領(lǐng)域模型。

2、領(lǐng)域設(shè)計(jì)

目標(biāo)是獲得DSSA,DSSA描述在領(lǐng)域模型中表示的需求的解決方案。不是單個(gè)系統(tǒng)的表示,而是能夠適應(yīng)領(lǐng)域中多個(gè)系統(tǒng)的需求的一個(gè)高層次設(shè)計(jì)。

3、領(lǐng)域?qū)崿F(xiàn)

主要目標(biāo)是依據(jù)領(lǐng)域模型和DSSA開發(fā)和組織可重用信息。領(lǐng)域模型和DSSA定義了這些可重用信息的重用時(shí)機(jī)。

以上過程是反復(fù)的、逐漸求精的過程。

5.4.3參與DSSA的人員

4種角色:領(lǐng)域?qū)<摇㈩I(lǐng)域分析師、領(lǐng)域設(shè)計(jì)人員、領(lǐng)域?qū)崿F(xiàn)人員。

1、領(lǐng)域?qū)<铱赡馨ㄓ薪?jīng)驗(yàn)的用戶、從事該領(lǐng)域中系統(tǒng)的需求分析、設(shè)計(jì)、實(shí)現(xiàn)以及項(xiàng)目管理的有經(jīng)驗(yàn)的軟件工程師等。

主要任務(wù)提供需求規(guī)約和實(shí)現(xiàn)的知識,組織規(guī)范的、一致的領(lǐng)域字典,選擇樣本系統(tǒng),復(fù)審領(lǐng)域模型、DSSA。

應(yīng)該熟悉該領(lǐng)域軟件設(shè)計(jì)和實(shí)現(xiàn)、硬件限制、未來的用戶需求、技術(shù)走向等。

2、領(lǐng)域分析人員應(yīng)由系統(tǒng)分析員來擔(dān)任。

知識獲取組織到領(lǐng)域模型中,根據(jù)現(xiàn)有系統(tǒng)、標(biāo)準(zhǔn)規(guī)范等驗(yàn)證模型的準(zhǔn)確性和一致性。

應(yīng)熟悉軟件重用和領(lǐng)域分析方法,具有一定的該領(lǐng)域經(jīng)驗(yàn),較高的抽象、關(guān)聯(lián)、類比能力,較高的交互合作能力。

3、領(lǐng)域設(shè)計(jì)人員控制整個(gè)軟件設(shè)計(jì)過程,根據(jù)領(lǐng)域模型和現(xiàn)有系統(tǒng)開發(fā)出DSSA,對DSSA的準(zhǔn)確性和一致性進(jìn)行驗(yàn)證,建立領(lǐng)域模型和DSSA之間的聯(lián)系。

應(yīng)熟悉軟件重用和領(lǐng)域設(shè)計(jì)方法,熟悉軟件設(shè)計(jì)方法,有一定的該領(lǐng)域經(jīng)驗(yàn)。

4、領(lǐng)域?qū)崿F(xiàn)人員根據(jù)領(lǐng)域模型和DSSA,從頭開發(fā)可重用構(gòu)件,或利用再工程技術(shù)從現(xiàn)有系統(tǒng)中提取可重用構(gòu)件。

5.4.4DSSA的建立過程

一般情況下,需要用開發(fā)者習(xí)慣使用的工具和方法建立DSSA模型。

DSSA建立過程分為5個(gè)階段,過程是并發(fā)的、遞歸的、反復(fù)的,可能每個(gè)階段經(jīng)歷幾遍,每次增加更多的細(xì)節(jié)。

1、定義領(lǐng)域范圍,一系列用戶的需求。

2、定義領(lǐng)域特定的元素,編譯領(lǐng)域字典、領(lǐng)馭屬于的同義詞詞典。

3、定義特定的設(shè)計(jì)和實(shí)現(xiàn)需求約束,不僅要識別出約束,并且要記錄約束對設(shè)計(jì)和實(shí)現(xiàn)造成的后果,還要記錄對處理這些問題時(shí)所產(chǎn)生的所有問題的討論。

4、定義領(lǐng)域模型和體系結(jié)構(gòu),產(chǎn)生一般的體系結(jié)構(gòu),并說明構(gòu)成它們的模塊或構(gòu)件的語法、語義。

5、搜集可重用的產(chǎn)品單元,為DSSA增加構(gòu)件。

5.5.1系統(tǒng)架構(gòu)的評估

評估可以只針對一個(gè)體系結(jié)構(gòu),也可以針對一對一組體系結(jié)構(gòu)。關(guān)注的是質(zhì)量屬性。

1、性能,是指系統(tǒng)的響應(yīng)能力,多長時(shí)間對某個(gè)事件做出響應(yīng),或者某段時(shí)間內(nèi)系統(tǒng)所能處理的事件的個(gè)數(shù)。

2、可靠性,是最重要的軟件特性,平均失效等待時(shí)間MTTF,平均失效間隔時(shí)間MTBF

1.容錯(cuò),內(nèi)部修復(fù)。

2.健壯性,不受錯(cuò)誤使用和錯(cuò)誤輸入的影響。

3、可用性,正常運(yùn)行的時(shí)間比例。經(jīng)常用兩次故障之間的時(shí)間長度或恢復(fù)正常的速度來表示。

4、安全性,阻止非授權(quán)用戶。分為機(jī)密性、完整性、不可否認(rèn)性、可控性等特性。

5、可修改性,通過考察變更的代價(jià)衡量可修改性。

1.可維護(hù)性,主要體現(xiàn)在問題修復(fù)上,做局部性的修改并能使對其他否見的負(fù)面影響最小化。

2.可擴(kuò)展性,新特性來擴(kuò)展軟件系統(tǒng),改進(jìn)版本來替換構(gòu)件并刪除不需要的特性構(gòu)件,需要松散耦合的構(gòu)件。

3.結(jié)構(gòu)重組,需要精心設(shè)計(jì)構(gòu)件之間的關(guān)系。

4.可移植性。

6、功能性,完成所期望的工作的能力。

7、可變性。

8、互操作性,精心設(shè)計(jì)的軟件入口。

5.5.2評估中重要概念

敏感點(diǎn)權(quán)衡點(diǎn),是關(guān)鍵的體系結(jié)構(gòu)決策。

敏感點(diǎn)是構(gòu)件(和/或構(gòu)建之間的關(guān)系)的特性。研究敏感點(diǎn)可使人員明確在實(shí)現(xiàn)質(zhì)量目標(biāo)時(shí)應(yīng)注意什么。

權(quán)衡點(diǎn)是多個(gè)質(zhì)量屬性的敏感點(diǎn)。

風(fēng)險(xiǎn)承擔(dān)著或稱為收益相關(guān)人。

場景,首先要精確地得出具體的質(zhì)量目標(biāo),為得出這些目標(biāo)采用的機(jī)制叫做場景。從風(fēng)險(xiǎn)承擔(dān)者的角度與系統(tǒng)的交互的簡短描述。

刺激、環(huán)境、響應(yīng),三個(gè)方面描述場景。

5.5.3主要評估方法

1、SAAM非功能質(zhì)量屬性的體系結(jié)構(gòu)分析方法,是最早形式成文檔并得到廣泛使用的分析方法。最初它用于比較不同的軟件體系結(jié)構(gòu),以分析SA的可修改性。

1.特定目標(biāo),目標(biāo)是對描述應(yīng)用程序?qū)傩缘奈臋n,驗(yàn)證假設(shè)和原則,有利于評估固有的風(fēng)險(xiǎn)。

2.評估技術(shù),使用場景技術(shù),描述了各種系統(tǒng)必須支持的活動和將要發(fā)生的變化。

3.質(zhì)量屬性,可修改性是SAAM分析的主要質(zhì)量屬性。

4.風(fēng)險(xiǎn)承擔(dān)者,SAAM協(xié)調(diào)不同參與者所感興趣的方面,作為后續(xù)決策的基礎(chǔ),提供了對系統(tǒng)結(jié)構(gòu)的公共理解。

5.體系結(jié)構(gòu)描述,描述形式應(yīng)該被所有參與者理解。功能、結(jié)構(gòu)、分配,三個(gè)主要方面。

6.方法活動,SAAM的主要輸入問題是描述、需求聲明、體系結(jié)構(gòu)描述。

SAAM分析評估體系結(jié)構(gòu)過程包括5個(gè)步驟:場景開發(fā)、體系結(jié)構(gòu)描述、單個(gè)場景評估、場景交互、總體評估。

通過各類風(fēng)險(xiǎn)承擔(dān)者協(xié)商討論,開發(fā)一些任務(wù)場景,體現(xiàn)系統(tǒng)所支持的各種活動。

通過對場景交互的分析,得出系統(tǒng)中所有場景對系統(tǒng)中構(gòu)件所產(chǎn)生影響的列表??傮w的權(quán)衡和評價(jià)。

2、ATAM

體系結(jié)構(gòu)權(quán)衡分析方法,主要針對性能、實(shí)用性、安全性、可修改性。

確定多個(gè)質(zhì)量屬性之間這種的必要性。

體系結(jié)構(gòu)空間受到歷史遺留系統(tǒng)、互操作性和以前失敗的項(xiàng)目約束。

邏輯視圖被分為功能結(jié)構(gòu)和代碼結(jié)構(gòu)。這些結(jié)構(gòu)加上他們之間適當(dāng)?shù)挠成淇梢酝暾孛枋鲆粋€(gè)體系結(jié)構(gòu)。

用一組消息順序圖顯示運(yùn)行時(shí)的交互和場景。

從不同的體系結(jié)構(gòu)角度,有三種不同場景,用例、增長場景、探測場景。

ATA

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論