C2-軟件體系結(jié)構(gòu)建模_第1頁(yè)
C2-軟件體系結(jié)構(gòu)建模_第2頁(yè)
C2-軟件體系結(jié)構(gòu)建模_第3頁(yè)
C2-軟件體系結(jié)構(gòu)建模_第4頁(yè)
C2-軟件體系結(jié)構(gòu)建模_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、,1,2020/7/9,體系結(jié)構(gòu)描述方法,軟件開發(fā)過程中各種角色之間交流設(shè)計(jì)思想的媒介 進(jìn)行上層分析的基礎(chǔ)。此基礎(chǔ)上可以驗(yàn)證體系結(jié)構(gòu)設(shè)計(jì)方案,精煉或改變必要的方案 讓別人理解系統(tǒng)的第一手資料,2,2020/7/9,假定你是Module Designer,你最近加盟一家公司,并被安排在一個(gè)新項(xiàng)目的開發(fā)組中。雖然你富有經(jīng)驗(yàn),但是對(duì)此項(xiàng)目所涉及的領(lǐng)域還是一個(gè)新手。系統(tǒng)的高層體系結(jié)構(gòu)設(shè)計(jì)已經(jīng)完成。 你的老板(項(xiàng)目經(jīng)理)讓你預(yù)計(jì)你將要完成的幾個(gè)模塊的開發(fā)時(shí)間。 你怎么辦?,3,2020/7/9,假定你是Module Designer,你來開發(fā)A2和A3,怎么開始?,4,2020/7/9,與Module

2、Designer交流,基本想法是什么? 我該做什么 (如,實(shí)現(xiàn)哪些需求) ? 我該在哪做 (如,這項(xiàng)功能實(shí)現(xiàn)在哪里) ? 我和誰交互?接口是什么? 有什么可以重用的代碼? 必須遵從什么約定(質(zhì)量目標(biāo)、舊體系/接口、預(yù)算等)? 有哪些硬性規(guī)定(設(shè)計(jì)、接口、約束等)?,5,2020/7/9,與顧問交流,體系結(jié)構(gòu)的必要需求(driving requirement)是什么(如,performance,reliability, availability, security, modifiability, interoperability)? 各種體系結(jié)構(gòu)視圖是如何描述的? 抽象出來什么? 功能怎樣分解?

3、 功能怎樣分配? 使用什么硬件以及軟件怎樣布置在硬件上? 采用了哪些體系結(jié)構(gòu)風(fēng)格?,6,2020/7/9,這是什么?,7,2020/7/9,上圖的毛病,很多事情沒有說: 組件類型 連接件類型 圓圈和箭頭代表什么? 這種布局的意義是什么? 為什么CP要放在上層? 只畫出方框和線條不是體系結(jié)構(gòu),只是體系結(jié)構(gòu)的開始,8,2020/7/9,好的體系結(jié)構(gòu)描述的必要元素(1),需求陳述 商業(yè)環(huán)境、產(chǎn)品的背景、領(lǐng)域 描述環(huán)境 必須和什么系統(tǒng)交互、外部接口 使用體系結(jié)構(gòu)圖 用恰當(dāng)?shù)木€框 簡(jiǎn)潔的說明,9,2020/7/9,好的體系結(jié)構(gòu)描述的必要元素(2),考慮實(shí)現(xiàn)時(shí)的限制 僅在它們能影響體系結(jié)構(gòu)設(shè)計(jì)的范圍內(nèi) 被

4、限定的下層結(jié)構(gòu)、處理器需求 通常包含其他結(jié)構(gòu)圖 體系結(jié)構(gòu)設(shè)計(jì)的原理 它怎樣去符合需求與約束 其他的設(shè)計(jì),10,2020/7/9,其他方面,風(fēng)格/產(chǎn)品線問題 設(shè)計(jì)可變的尺度 體系結(jié)構(gòu)的那個(gè)方面必須不被改變? 管理問題 暗含開發(fā)團(tuán)隊(duì)的組織結(jié)構(gòu) 體系結(jié)構(gòu)評(píng)審情況 其他設(shè)計(jì)問題 代碼重用、標(biāo)準(zhǔn)的運(yùn)用 風(fēng)險(xiǎn)分析 運(yùn)作、管理和維護(hù),11,2020/7/9,好描述,線和框有不同的形狀/顏色,并有圖例說明 用表格總結(jié)方案選擇等等各種問題 圖并不試圖去表達(dá)很多信息:把信息分散到需要表達(dá)它的各個(gè)視圖中 每個(gè)體系結(jié)構(gòu)視圖必須在一頁(yè)內(nèi)完成 清晰地區(qū)分出哪些是體系結(jié)構(gòu)視圖,哪些不是,12,2020/7/9,壞描述,所有

5、的線看起來都一樣 箭頭不代表任何涵義 箭頭代表很多涵義 實(shí)現(xiàn)與文檔沖突 沒有圖例 太多的必要需求,研究軟件體系結(jié)構(gòu)的首要問題是如何表示軟件體系結(jié)構(gòu),即如何對(duì)軟件體系結(jié)構(gòu)建模。根據(jù)建模的側(cè)重點(diǎn)不同,可以將軟件體系結(jié)構(gòu)的模型分為5種:,第2章 軟件體系結(jié)構(gòu)建模,2.1 軟件體系結(jié)構(gòu)建模概述, 結(jié)構(gòu)模型 框架模型 動(dòng)態(tài)模型 過程模型 功能模型,13,2020/7/9,14,2020/7/9, 軟件體系結(jié)構(gòu)建模的種類,第2章 軟件體系結(jié)構(gòu)建模,2.1 軟件體系結(jié)構(gòu)建模概述, 結(jié)構(gòu)模型 這是一個(gè)最直觀、最普遍的建模方法。這種方法以體系結(jié)構(gòu)的構(gòu)件、連接件和其他概念來刻畫結(jié)構(gòu),并力圖通過結(jié)構(gòu)來反映系統(tǒng)的重要

6、語(yǔ)義內(nèi)容,包括系統(tǒng)的配置、約束、隱含的假設(shè)條件、風(fēng)格、性質(zhì)等。 研究結(jié)構(gòu)模型的核心是體系結(jié)構(gòu)描述語(yǔ)言。, 軟件體系結(jié)構(gòu)建模的種類,第2章 軟件體系結(jié)構(gòu)建模,2.1 軟件體系結(jié)構(gòu)建模概述, 框架模型 框架模型與結(jié)構(gòu)模型類似,但它不太側(cè)重描述結(jié)構(gòu)的細(xì)節(jié)而更側(cè)重于整體的結(jié)構(gòu)。 框架模型主要以一些特殊的問題為目標(biāo)建立只針對(duì)和適應(yīng)該問題的結(jié)構(gòu)。,15,2020/7/9, 軟件體系結(jié)構(gòu)建模的種類,第2章 軟件體系結(jié)構(gòu)建模,2.1 軟件體系結(jié)構(gòu)建模概述, 動(dòng)態(tài)模型 動(dòng)態(tài)模型是對(duì)結(jié)構(gòu)或框架模型的補(bǔ)充,研究系統(tǒng)的“大顆?!钡男袨樾再|(zhì)。例如,描述系統(tǒng)的重新配置或演化。動(dòng)態(tài)可以指系統(tǒng)總體結(jié)構(gòu)的配置、建立或拆除通信通

7、道或計(jì)算的過程。,16,2020/7/9, 軟件體系結(jié)構(gòu)建模的種類,第2章 軟件體系結(jié)構(gòu)建模,2.1 軟件體系結(jié)構(gòu)建模概述, 過程模型 過程模型研究構(gòu)造系統(tǒng)的步驟和過程。 結(jié)構(gòu)是遵循某些過程腳本的結(jié)果。,17,2020/7/9, 軟件體系結(jié)構(gòu)建模的種類,第2章 軟件體系結(jié)構(gòu)建模,2.1 軟件體系結(jié)構(gòu)建模概述, 功能模型 功能模型認(rèn)為體系結(jié)構(gòu)是由一組功能構(gòu)件按層次組成,下層向上層提供服務(wù)。 功能模型可以看作是一種特殊的框架模型。,18,2020/7/9, “4+1”模型概述,第2章 軟件體系結(jié)構(gòu)建模,2.2 “4+1”視圖模型,以上五種模型各有所長(zhǎng),將五種模型有機(jī)的統(tǒng)一在一起,形成一個(gè)完整的模型

8、來刻畫軟件體系結(jié)構(gòu)更加合適。,19,每個(gè)視圖模型可看成對(duì)系統(tǒng)不同方面一個(gè)投影,一個(gè)構(gòu)架的不同視圖其實(shí)反映的是同一個(gè)系統(tǒng)。 各個(gè)不同的視圖是可以融合在一起的,而且也只有將不同的視圖融合在一起才能獲得關(guān)于一個(gè)系統(tǒng)構(gòu)架的全面信息。, “4+1”模型概述,第2章 軟件體系結(jié)構(gòu)建模,2.2 “4+1”視圖模型,Rational公司的Philippe Kruchten在1995年提出了用于體系結(jié)構(gòu)描述的“4十l”模型。該模型建立在體系結(jié)構(gòu)的PerryWolf定義和Berry Boehm定義的基礎(chǔ)上。 “4+1”視圖模型從5個(gè)不同的視角包括邏輯視圖、進(jìn)程視圖、物理視圖、開發(fā)視圖和場(chǎng)景視圖來描述軟件體系結(jié)構(gòu)。

9、每一個(gè)視圖只關(guān)心系統(tǒng)的一個(gè)側(cè)面,5個(gè)視圖結(jié)合在一起才能夠處理富于挑戰(zhàn)性的、大規(guī)模的軟件系統(tǒng)。,20,2020/7/9,21,2020/7/9,u邏輯視圖 當(dāng)采用面向?qū)ο蟮脑O(shè)計(jì)方法時(shí),邏輯視圖即是對(duì)象模型。 u進(jìn)程視圖 描述系統(tǒng)的并發(fā)和同步方面的設(shè)計(jì)。 u物理視圖 描述軟件到硬件之間的映射關(guān)系,反映系統(tǒng)在分布方面的設(shè)計(jì)。,22,u開發(fā)視圖 描述軟件在開發(fā)環(huán)境下的靜態(tài)組織。 u場(chǎng)景視圖 通過選擇出地一些用例對(duì)體系結(jié)構(gòu)加以說明。這些用例稱作場(chǎng)景。 四個(gè)視圖反映的是同一個(gè)系統(tǒng),所以用了第五個(gè)視圖,“+1”視圖,它是由一系列重要的案例組成。用這些重要的案例將前面的四個(gè)視圖聯(lián)系 到一起,從而組成第五個(gè)視圖

10、。,23,2020/7/9,對(duì)體系結(jié)構(gòu)進(jìn)行的描述是圍繞著以上4個(gè)視圖展開的。然后,通過選擇出的一些用例對(duì)體系結(jié)構(gòu)加以說明。這些用例被稱作場(chǎng)景(scenarios),它們構(gòu)成了第5個(gè)視圖。實(shí)際上,體系結(jié)構(gòu)在某種程度上是由場(chǎng)景演化而來的。,24,體系結(jié)構(gòu)的概念在每個(gè)視圖里面都可以獨(dú)立應(yīng)用,即可以在每個(gè)視圖里面定義體系結(jié)構(gòu)的各種組成元素,如構(gòu)件、連接件等。 對(duì)于不同的視圖,還可以選擇不同的體系結(jié)構(gòu)風(fēng)格,因此在同一個(gè)系統(tǒng)結(jié)構(gòu)中可以使用多種風(fēng)格。 在每一種視圖里,我們使用該視圖特定的符號(hào)。這避免了符號(hào)用法和意義的混亂。,25,2020/7/9,“4十1”模型實(shí)際上使得有不同需求的人員能夠得到他們對(duì)于軟件

11、體系結(jié)構(gòu)想要了解的東西。 系統(tǒng)工程師先從物理視圖,然后從進(jìn)程視圖靠近體系結(jié)構(gòu)。最終使用者、客戶、數(shù)據(jù)專家從邏輯視圖看體系結(jié)構(gòu);項(xiàng)目經(jīng)理、軟件配置人員從開發(fā)視圖看體系結(jié)構(gòu)。,26,2020/7/9,不是所有的軟件體系結(jié)構(gòu)都需要完整的“4十1”視圖。沒有用的視圖在體系結(jié)構(gòu)描述中可以被省略。例如對(duì)于非常小的系統(tǒng),邏輯視圖和開發(fā)視圖有可能非常相似以至于沒有必要把它們分開描述。場(chǎng)景視圖在各種環(huán)境下都是有用的。,27,2020/7/9,2.2 邏輯視圖:面向?qū)ο蟮姆纸?邏輯視圖主要支持系統(tǒng)的功能需求,即系統(tǒng)提供給最終用戶的服務(wù)。在邏輯視圖中,系統(tǒng)分解成一系列的功能抽象,這些抽象主要來自問題領(lǐng)域。這種分解不

12、但可以用來進(jìn)行功能分析,而且可用作標(biāo)識(shí)在整個(gè)系統(tǒng)的各個(gè)不同部分的通用機(jī)制和設(shè)計(jì)元素。 在面向?qū)ο蠹夹g(shù)中,通過抽象、封裝和繼承,可以用對(duì)象模型來代表邏輯視圖,用類圖來描述邏輯視圖。,28,2020/7/9,2.2.1 邏輯視圖的符號(hào)表示法,可以從Booch標(biāo)記法中導(dǎo)出邏輯視圖的標(biāo)記法,只是從體系結(jié)構(gòu)級(jí)的范疇來考慮這些符號(hào),用Rational Rose進(jìn)行體系結(jié)構(gòu)設(shè)計(jì)。,關(guān)聯(lián):表示兩個(gè)類之間存在某種語(yǔ)義上的聯(lián)系,真正含義由附加在橫線上的短語(yǔ)說明。 包含:實(shí)心圓一端表示整體,另一端表示部分。 使用:空心圓一端連接在請(qǐng)求服務(wù)的類,另一端連接在提供服務(wù)的類。 繼承:箭頭由子類指向基類。,29,2020/

13、7/9,2.2.2 邏輯視圖的風(fēng)格,邏輯視圖也可以采用面向?qū)ο蟮娘L(fēng)格。 邏輯視圖設(shè)計(jì)的主要準(zhǔn)則是,要設(shè)法在整個(gè)系統(tǒng)中保持一個(gè)單一的、連貫的對(duì)象模型,避免類和相關(guān)機(jī)制出現(xiàn)按照?qǐng)龅鼗蛱幚砥鬟^早的分化。,30,2020/7/9,2.2.3 邏輯視圖的例子,左圖顯示了一個(gè)專用自動(dòng)交換分機(jī)(ACS)的例子。專用自動(dòng)交換分機(jī)用于在通信終端之間建立連接。 通信終端可能是電話機(jī)、中繼線(連接到中心室的線路)、專用線(專用自動(dòng)交換分機(jī)和一般的交換分機(jī)之間的線路)、數(shù)據(jù)線、ISDN線等。不同的線路需要不同的線路接口卡的支持。終端對(duì)象負(fù)責(zé)維護(hù)終端的狀態(tài),并代表所在的線路提供通信服務(wù)。 線路控制器對(duì)象負(fù)責(zé)從線路接口卡

14、接受信號(hào),以及向它發(fā)送信號(hào),并完成信號(hào)和一系列的事件(如開始、結(jié)束、計(jì)數(shù)等)之間的轉(zhuǎn)換??刂破鬟€必須受到嚴(yán)格的實(shí)時(shí)要求的約束。為了適應(yīng)不同的接口,這個(gè)類有許多的子類。 會(huì)話對(duì)象代表在一個(gè)對(duì)話中涉及的終端的集合。會(huì)話對(duì)象使用轉(zhuǎn)換服務(wù)(邏輯地址和物理地址之間的映射、路由等)和連接服務(wù)建立兩個(gè)終端之間的語(yǔ)音連接。,31,2020/7/9,對(duì)于規(guī)模更大的系統(tǒng)來說,體系結(jié)構(gòu)級(jí)中包含數(shù)十甚至數(shù)百個(gè)類 。左圖是空中交通管制系統(tǒng)的頂級(jí)類圖,該圖包含了8個(gè)類種屬(即類的分組)。,2.2.3 邏輯視圖的例子,32,2020/7/9,2.3 進(jìn)程視圖:過程分解,進(jìn)程視圖(process view,也稱過程視圖)側(cè)重

15、于系統(tǒng)的運(yùn)行特性,主要考慮的是一些非功能性的需求,諸如性能、可用性等。 它所要面對(duì)的問題有并發(fā),分布,系統(tǒng)的完整性,容錯(cuò)能力等。它還要考慮怎樣把進(jìn)程體系結(jié)構(gòu)與邏輯視圖體系結(jié)構(gòu)的要點(diǎn)相適應(yīng)對(duì)某個(gè)對(duì)象的某個(gè)操作實(shí)際上是在哪個(gè)控制線程上發(fā)生的。,33,2020/7/9,2.3 進(jìn)程視圖:過程分解,可以把進(jìn)程體系結(jié)構(gòu)分為幾個(gè)抽象層次來描述,每個(gè)層次關(guān)注不同的方面。 在最高層次上,進(jìn)程體系結(jié)構(gòu)可以被視為是一個(gè)邏輯網(wǎng)絡(luò)的集合。 每個(gè)獨(dú)立執(zhí)行的邏輯網(wǎng)絡(luò)都是由通信程序(即“過程”)構(gòu)成的。這些邏輯網(wǎng)絡(luò)分布在一個(gè)通過局域網(wǎng)或廣域網(wǎng)連接起來的硬件資源集合上。 多個(gè)邏輯網(wǎng)絡(luò)可能同時(shí)存在,并共享同樣的物理資源。,34

16、,2020/7/9,2.3 進(jìn)程視圖:過程分解,通過進(jìn)程視圖可以估計(jì)出消息流和過程負(fù)荷,也可以從過程測(cè)量一個(gè)目標(biāo)系統(tǒng)最終執(zhí)行情況。 例如在以計(jì)算機(jī)網(wǎng)絡(luò)作為運(yùn)行環(huán)境的圖書管理系統(tǒng)中,服務(wù)器對(duì)來自各個(gè)不同的客戶機(jī)的過程管理,決定某個(gè)特定過程(如查詢子過程、借還書子過程)的喚醒、啟動(dòng)、關(guān)閉等操作,從而控制整個(gè)網(wǎng)絡(luò)協(xié)調(diào)有序地工作。,2.3.1 進(jìn)程視圖的符號(hào)表示法,在輔助工具的選擇上,可以考慮使用TRW提供的UNAS(Universal Network Architecture Services)產(chǎn)品。它可用于把各種過程和任務(wù)構(gòu)建并實(shí)現(xiàn)為過程的邏輯網(wǎng)絡(luò)。UNAS里面包含的一個(gè)工具SALE(Softwa

17、re Architecture Lifecycle Environment)支持這樣的符號(hào)表示法。SALE允許進(jìn)程體系結(jié)構(gòu)的圖形化描述,包括對(duì)可能的任務(wù)間通信路徑的規(guī)格說明。然后,從這種規(guī)格說明可以自動(dòng)生成相應(yīng)的Ada或C十十語(yǔ)言源代碼。,36,2020/7/9,2.3.2 進(jìn)程視圖的風(fēng)格 有多種風(fēng)格適合進(jìn)程視圖。例如管道和過濾器、客戶服務(wù)器及其變體(多客戶單服務(wù)器,多客戶多服務(wù)器)等。2.3.3 進(jìn)程視圖的例子(ACS系統(tǒng)局部進(jìn)程視圖),37,2020/7/9,(1)在圖中,所有終端均由同一個(gè)終端進(jìn)程進(jìn)行處理,由其輸入隊(duì)列中的消息驅(qū)動(dòng)。 (2)控制器對(duì)象在組成控制器進(jìn)程的3個(gè)任務(wù)之一中執(zhí)行。

18、,38,2020/7/9,(3)慢循環(huán)周期(200ms)任務(wù)掃描所有掛起的終端,把任何一個(gè)活動(dòng)的終端置入快循環(huán)周期(10ms)任務(wù)的掃描列表。(4)快循環(huán)周期任務(wù)檢測(cè)任何顯著的狀態(tài)改變,并把改變的狀態(tài)傳遞給主控制器任務(wù)。,39,2020/7/9,(5)主控制器任務(wù)解釋改變,通過消息與相應(yīng)的終端進(jìn)行通信。(6)通過共享內(nèi)存來實(shí)現(xiàn)在控制器進(jìn)程中傳遞的消息。,40,2020/7/9,2.4 開發(fā)視圖:子系統(tǒng)分解,(1) 開發(fā)視圖也稱為模塊視圖,側(cè)重的是在軟件開發(fā)環(huán)境中軟件模塊的實(shí)際組織和管理。軟件被打包成可以由單個(gè)或少量程序員開發(fā)的各種小的部分:程序庫(kù)或子系統(tǒng)。子系統(tǒng)被組織成層次化的體系,每一層為上

19、一層提供一個(gè)嚴(yán)密的、明確定義的接口。,41,2020/7/9,2.4 開發(fā)視圖:子系統(tǒng)分解,(2)開發(fā)視圖通過系統(tǒng)輸入輸出關(guān)系的模型圖和子系統(tǒng)圖來描述。描述開發(fā)視圖的原則是:分割、編組、可視。 (3)開發(fā)視圖要考慮軟件內(nèi)部的需求,如軟件開發(fā)的容易性、軟件的重用和軟件的通用性,要充分考慮由于具體開發(fā)工具的不同而帶來的局限性。,42,2020/7/9,2.4.1 開發(fā)視圖的符號(hào)表示法,開發(fā)視圖的符號(hào)表示法采用Booch表示法的變體,并且只考慮對(duì)于體系結(jié)構(gòu)有重要意義的元素,如圖所示。在Rationnal Rose中,可以繪制模塊層和子系統(tǒng)層的開發(fā)視圖,還可以在反向工程中從已經(jīng)開發(fā)的源代碼(Ada或C

20、十十)得出系統(tǒng)的開發(fā)視圖。,43,2020/7/9,2.4.2 開發(fā)視圖的風(fēng)格,對(duì)于開發(fā)視圖,最好采用分層風(fēng)格,定義46層的子系統(tǒng)。每一層都有明確責(zé)任。設(shè)計(jì)規(guī)則是,某一層的子系統(tǒng)只能依賴于本層或其下層的子系統(tǒng)。這樣可以使每個(gè)層次的接口既完備又精練,避免了各個(gè)模塊之間很復(fù)雜的依賴關(guān)系,并使得系統(tǒng)可以采用逐層的策略完成釋放。 設(shè)計(jì)時(shí)要充分考慮,對(duì)于各個(gè)層次,層次越低,通用性越強(qiáng),這樣,可以保證應(yīng)用程序的需求發(fā)生改變時(shí),所做的改動(dòng)最小。,44,2020/7/9,2.4.3 開發(fā)視圖的例子,下圖用5個(gè)層次表示了航空交通管制系統(tǒng)產(chǎn)品線的開發(fā)組織。此開發(fā)視圖24中描述的邏輯視圖相對(duì)應(yīng)的。,45,2020/

21、7/9,2.4.3 開發(fā)視圖的例子,(1)第1層和第2層組成了一個(gè)領(lǐng)域無關(guān)的分布式基礎(chǔ)結(jié)構(gòu),貫穿于整個(gè)產(chǎn)品線中。這兩層獨(dú)立于應(yīng)用域,并將上層系統(tǒng)遮蔽起來,防止其受到與硬件平臺(tái)、操作系統(tǒng)或數(shù)據(jù)庫(kù)等變化的影響。,46,2020/7/9,2.4.3 開發(fā)視圖的例子,(2)第3層增加了空中交通管制系統(tǒng)的框架,以形成一個(gè)用于特定應(yīng)用領(lǐng)域的軟件體系結(jié)構(gòu)。 (3)第4層使用該框架構(gòu)造了一個(gè)功能平臺(tái)。,47,2020/7/9,2.4.3 開發(fā)視圖的例子,(4)第5層則依賴于具體客戶和產(chǎn)品,包含了大部分用戶界面和與外部系統(tǒng)的接口。,48,2020/7/9,2.5 物理視圖:從軟件到硬件的映射,物理視圖主要考慮如

22、何把軟件映射到硬件上,它通常要考慮到系統(tǒng)的可用性、可靠性(容錯(cuò)性)、性能(信息吞吐量)和可擴(kuò)展性。 解決系統(tǒng)拓?fù)浣Y(jié)構(gòu)、系統(tǒng)安裝、通訊等問題。,49,2020/7/9,2.5 物理視圖:從軟件到硬件的映射,當(dāng)軟件運(yùn)行于不同的節(jié)點(diǎn)上時(shí),各視圖中的構(gòu)件(如網(wǎng)絡(luò)、過程、任務(wù)和對(duì)象)都直接或間接地對(duì)應(yīng)于系統(tǒng)的不同節(jié)點(diǎn)上。因此,從軟件到節(jié)點(diǎn)的映射要有較高的靈活性,當(dāng)環(huán)境改變時(shí),對(duì)系統(tǒng)其他視圖的影響最小。 大型系統(tǒng)的物理視圖可能會(huì)變得十分混亂,因此可以與進(jìn)程視圖的映射一道,以多種形式出現(xiàn),也可單獨(dú)出現(xiàn)。,50,2020/7/9,2.5.1 物理視圖的符號(hào)表示法,TRW公司的UNAS允許使用者采用數(shù)據(jù)驅(qū)動(dòng)的方

23、式將進(jìn)程體系結(jié)構(gòu)映射到物理體系結(jié)構(gòu),并允許在不修改源代碼的情況下對(duì)這種映射做出多種改動(dòng)。,51,2020/7/9,ACS系統(tǒng)的物理視圖,2.5.1 物理視圖的符號(hào)表示法,上圖顯示了大型專用自動(dòng)交換機(jī)(ACS)的一種可能的硬件配置。其中,C、F、K是3個(gè)不同容量的計(jì)算機(jī)類型,支持3個(gè)不同的可執(zhí)行文件。,下面是進(jìn)程視圖的兩個(gè)不同的物理映射,分別對(duì)應(yīng)一個(gè)小型的ACS和大型的ACS。,具有進(jìn)程分配的小型ACS系統(tǒng)的物理視圖,具有進(jìn)程分配的大型ACS系統(tǒng)的物理視圖,53,2020/7/9,2.6 場(chǎng)景視圖:匯總,通過使用一些重要場(chǎng)景,4個(gè)視圖中的元素可以協(xié)調(diào)地共同工作。盡管這些場(chǎng)景是一個(gè)小集合,但是它們

24、很重要。場(chǎng)景(scenario)是更通用的概念用例(use case)的實(shí)例。從某種意義上講,場(chǎng)景是最重要的需求的抽象。場(chǎng)景的設(shè)計(jì)使用對(duì)象場(chǎng)景圖(object scenario diagram)和對(duì)象交互圖來表示。 相對(duì)于其他的4個(gè)視圖,這個(gè)視圖是多余出來的(所以稱為“4十l”),但是它承擔(dān)著兩個(gè)目的: 在體系結(jié)構(gòu)的設(shè)計(jì)中,將以此視圖為驅(qū)動(dòng)來發(fā)現(xiàn)體系結(jié)構(gòu)元素。 在體系結(jié)構(gòu)設(shè)計(jì)結(jié)束后,此視圖承擔(dān)驗(yàn)證和描述的角色。它不僅用于書面記錄,并且是體系結(jié)構(gòu)原型測(cè)試的起始點(diǎn)。,54,2020/7/9,2.6.1 場(chǎng)景視圖的符號(hào)表示法,場(chǎng)景視圖的符號(hào)表示法中,構(gòu)件的表示與邏輯視圖非常相似,但是連接件的表示使用

25、進(jìn)程視圖中的方法。注意,對(duì)象的實(shí)例用細(xì)實(shí)線表示。在工具的使用方面,和在邏輯視圖類似,可以使用Rational Rose繪制和管理對(duì)象場(chǎng)景圖。,55,2020/7/9,2.6.2 場(chǎng)景視圖的例子, 小王的電話的控制器檢測(cè)到并證實(shí)了從掛起到取下的狀態(tài)轉(zhuǎn)變,并且發(fā)送了消息來喚醒相關(guān)的終端對(duì)象。 終端分配一些資源,并告訴控制器發(fā)出撥號(hào)音。 控制器收到數(shù)字并將它們發(fā)送給終端。 終端使用號(hào)碼規(guī)劃來分析數(shù)字流。 當(dāng)一個(gè)有效序列的輸入完成,終端打開一個(gè)對(duì)話。,圖 場(chǎng)景的雛形本地呼叫選擇階段,56,2020/7/9, 小結(jié),邏輯視圖和開發(fā)視圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),而進(jìn)程視圖和物理視圖描述系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)。 對(duì)于不同

26、的軟件系統(tǒng)來說,側(cè)重的角度也有所不同。例如,對(duì)于管理信息系統(tǒng)來說,比較側(cè)重于從邏輯視圖和開發(fā)視圖來描述系統(tǒng),而對(duì)于實(shí)時(shí)控制系統(tǒng)來說,則比較注重于從進(jìn)程視圖和物理視圖來描述系統(tǒng)。,57,2020/7/9,2.6.3 視圖間的交流 不同視圖之間并不是互相獨(dú)立或互相正交的。視圖中的元素遵循一定的規(guī)則和經(jīng)驗(yàn)法則與其他視圖中的元素形成聯(lián)系。 從邏輯視圖(最終用戶)到進(jìn)程視圖(系統(tǒng)集成人員) 邏輯視圖中認(rèn)為每個(gè)對(duì)象都是主動(dòng)的、并發(fā)的。 定義進(jìn)程體系結(jié)構(gòu)時(shí),將每個(gè)對(duì)象實(shí)現(xiàn)為獨(dú)立的控制線程是不實(shí)際的(將導(dǎo)致巨大的開銷) 另一方面,多控制線程也是需要的,在確定并發(fā)程度及過程數(shù)目時(shí),必須以潛在的物理目標(biāo)體系結(jié)構(gòu)集

27、合為前提,可以參照以下兩種策略。 自內(nèi)向外:從邏輯視圖開始的策略 自外向內(nèi):從物理體系結(jié)構(gòu)開始的策略 結(jié)果:類及其對(duì)象到進(jìn)程體系結(jié)構(gòu)的任務(wù)和過程集合的映射 為達(dá)到可接受的設(shè)計(jì)結(jié)果,需要進(jìn)行迭代,58,2020/7/9,2. 從邏輯視圖(最終用戶)到開發(fā)視圖(編程人員) 一個(gè)類通常被實(shí)現(xiàn)為一個(gè)模塊 較大的類被分解為多個(gè)包 一組相互聯(lián)系緊密的類的集合,或稱為類種屬,構(gòu)成子系統(tǒng) 定義子系統(tǒng)時(shí),必須考慮附加約束 項(xiàng)目越大,邏輯視圖和開發(fā)視圖之間的距離越遠(yuǎn) 3. 從進(jìn)程視圖(系統(tǒng)集成人員)到物理視圖(系統(tǒng)工程人員) 為了測(cè)試和部署,過程和過程組以各種配置映射到可用的物理硬件上。,59,2020/7/9,

28、模型的迭代過程和軟件過程 1.迭代過程:場(chǎng)景驅(qū)動(dòng)的方法 采用“4+1”模型進(jìn)行軟件體系結(jié)構(gòu)設(shè)計(jì)的一種推薦方法是: 在完成原型、測(cè)試、度量、分析等步驟后,重新進(jìn)入下一輪這樣的步驟,構(gòu)成迭代的過程 系統(tǒng)最關(guān)鍵的功能以場(chǎng)景的形式得到。關(guān)鍵是指,功能上最重要,或是用頻度上最高,又或存在必須克服的技術(shù)風(fēng)險(xiǎn)。 初始的體系結(jié)構(gòu)演化為最終的真實(shí)系統(tǒng)。在23次迭代后,體系結(jié)構(gòu)本身有希望穩(wěn)定下來。接下來就可以進(jìn)行軟件設(shè)計(jì)領(lǐng)域的工作了。,60,2020/7/9,2. 軟件文檔 體系結(jié)構(gòu)設(shè)計(jì)階段所形成的文檔主要有: 軟件體系結(jié)構(gòu)文檔:基本按照4+1視圖組織 軟件設(shè)計(jì)指導(dǎo):描述為了維護(hù)系統(tǒng)的體系結(jié)構(gòu)的一致性所必須遵守的

29、重要設(shè)計(jì)決定。,61,2020/7/9,2.3 體系結(jié)構(gòu)的核心模型,62,2020/7/9,軟件體系結(jié)構(gòu)的核心模型由五種元素組成:構(gòu)件、連接件、配置、端口和角色。其中構(gòu)件、連接件、配置是最基本的元素。 構(gòu)件是具有某種功能的可重用的軟件模板單元,表示了系統(tǒng)中主要的計(jì)算元素和數(shù)據(jù)存儲(chǔ)。復(fù)合構(gòu)件由其他復(fù)合構(gòu)件和原子構(gòu)件通過連接而成。原子構(gòu)件是不可再分的構(gòu)件。構(gòu)件只能通過其接口與外部環(huán)境交互,構(gòu)件的接口由一組端口組成,每個(gè)端口表示了構(gòu)件和外部環(huán)境的交互點(diǎn)。通過不同的端口類型,一個(gè)構(gòu)件可以提供多重接口。 連接件表示了構(gòu)件間的交互。連接件也有接口,其接口由一組角色組成,連接件的每一個(gè)角色定義了該連接件表示的交互的參與者,二元連接件有兩個(gè)角色。 配置表示了構(gòu)件和連接件的拓?fù)溥壿嫼图s束。,需求分析,建立體系結(jié)構(gòu),測(cè)試,實(shí)現(xiàn),設(shè)計(jì),63,2020/7/9,2.4 體系結(jié)構(gòu)的生命周期模型,軟件開發(fā)過程,2.4 體系結(jié)構(gòu)的生命周期模型,64,2020/7/9,SA的非形式化描述 一種SA在其產(chǎn)生時(shí),其思想

溫馨提示

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

評(píng)論

0/150

提交評(píng)論