軟件工程-第11章第4節(jié)_第1頁
軟件工程-第11章第4節(jié)_第2頁
軟件工程-第11章第4節(jié)_第3頁
軟件工程-第11章第4節(jié)_第4頁
軟件工程-第11章第4節(jié)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

11.4系統(tǒng)設(shè)計(jì)

系統(tǒng)設(shè)計(jì)是問題求解及建立系統(tǒng)的高級(jí)策略,它包括系統(tǒng)的分解、系統(tǒng)的固有并發(fā)性、子系統(tǒng)分配給硬軟件、數(shù)據(jù)管理、資源協(xié)調(diào)及軟件控制實(shí)現(xiàn)等。11.4.1系統(tǒng)設(shè)計(jì)過程

設(shè)計(jì)階段先從高層入手,然后細(xì)化。系統(tǒng)設(shè)計(jì)要決定整體結(jié)構(gòu)及風(fēng)格,這種結(jié)構(gòu)為后面設(shè)計(jì)階段的更詳細(xì)的策略設(shè)計(jì)提供了基礎(chǔ)。1.系統(tǒng)分解系統(tǒng)中主要的組成部分稱為子系統(tǒng),子系統(tǒng)既不是一個(gè)對(duì)象也不是一個(gè)功能,而是類、關(guān)聯(lián)、操作、事件和約束的集合。每次分解的各子系統(tǒng)數(shù)目不能太多,最底層子系統(tǒng)稱為模塊。11.4.1系統(tǒng)設(shè)計(jì)過程1)子系統(tǒng)之間的關(guān)系子系統(tǒng)之間的關(guān)系可以分為“客戶/服務(wù)器”關(guān)系和同等關(guān)系兩類。在“客戶/服務(wù)器”關(guān)系中,客戶調(diào)用服務(wù)器,執(zhí)行了某些服務(wù),返回結(jié)果??蛻舯仨毩私夥?wù)器的接口,但服務(wù)器并不知道其他客戶的接口,因?yàn)樗薪换ザ际怯墒褂梅?wù)器接口的客戶來驅(qū)動(dòng)的。在同等關(guān)系中,各子系統(tǒng)都有可能調(diào)用其他子系統(tǒng),子系統(tǒng)之間的通信不一定緊跟著一個(gè)即時(shí)響應(yīng)。同等關(guān)系的交互更復(fù)雜,因?yàn)楦髯酉到y(tǒng)相互了解對(duì)方的接口。由于存在通信環(huán)路,造成理解上的困難,并容易造成不易察覺的設(shè)計(jì)結(jié)果,因此盡可能使用“客戶/服務(wù)器”關(guān)系。11.4.1系統(tǒng)設(shè)計(jì)過程2)系統(tǒng)組織從系統(tǒng)到子系統(tǒng)的分解可以組織成水平的層次結(jié)構(gòu)或垂直的塊結(jié)構(gòu)。(1)層次結(jié)構(gòu)是真實(shí)世界的有序集,上層部分建立在下層的基礎(chǔ)上,下層為上層提供了實(shí)現(xiàn)的基礎(chǔ),各層上的對(duì)象是獨(dú)立的,而不同層次上的對(duì)象常有相互關(guān)系。層次結(jié)構(gòu)又分封閉式和開放式。在封閉式結(jié)構(gòu)中,各層只根據(jù)其直接的低層來建立,這種方式減少了各層之間的依賴,修改起來更為容易。11.4.1系統(tǒng)設(shè)計(jì)過程因?yàn)槟硨哟蔚慕涌谥挥绊懢o跟的下一層,在開放式結(jié)構(gòu)中,層可以使用其任何深度的任何低層的性質(zhì)。這種方式減少了各層上重新定義操作的需求,但沒有遵守信息隱蔽原則,任何對(duì)子系統(tǒng)的變更都會(huì)影響到更高層的子系統(tǒng)。圖11.36典型應(yīng)用的塊圖通常問題陳述中只說明了頂層和底層的內(nèi)容。頂層是目標(biāo)系統(tǒng),底層是一些可用資源,如硬件、操作系統(tǒng)及數(shù)據(jù)庫等。兩者差別太大,應(yīng)引入中間層次來彌補(bǔ)不同層次之間的概念差別。11.4.1系統(tǒng)設(shè)計(jì)過程(2)塊結(jié)構(gòu)是將系統(tǒng)垂直分解成幾個(gè)獨(dú)立的或弱耦合的子系統(tǒng),一個(gè)塊提供一種類型的服務(wù),運(yùn)用層次和塊的各種可能的組合,可將系統(tǒng)成功地分解成多個(gè)子系統(tǒng),層次可以分塊,而塊也可以分層。圖11.36表示典型應(yīng)用的塊圖,涉及交互圖形的模擬,大多數(shù)的系統(tǒng)要求混合地采用層次和塊的結(jié)構(gòu)。11.4.1系統(tǒng)設(shè)計(jì)過程2.確定并發(fā)性分析模型、現(xiàn)實(shí)世界及硬件中的所有對(duì)象均是并發(fā)的。系統(tǒng)設(shè)計(jì)的一個(gè)重要目標(biāo)就是確定哪些對(duì)象必須是同時(shí)動(dòng)作的對(duì)象及哪些對(duì)象是互斥的對(duì)象,后者可放在一起,綜合成單個(gè)控制線或任務(wù)。3.處理器及任務(wù)分配各并發(fā)子系統(tǒng)必須分配給單個(gè)硬件單元,要么是一個(gè)一般的處理器,要么是一個(gè)具體的功能單元.必須完成下面的工作:11.4.1系統(tǒng)設(shè)計(jì)過程(1)估計(jì)性能要求和資源需求。(2)選擇實(shí)現(xiàn)子系統(tǒng)的硬軟件。(3)將軟件子系統(tǒng)分配給各處理器以滿足性能要求和極小化處理器之間的通信。(4)決定實(shí)現(xiàn)各子系統(tǒng)的各物理單元的聯(lián)結(jié)。4.數(shù)據(jù)存儲(chǔ)管理系統(tǒng)中的內(nèi)部數(shù)據(jù)存儲(chǔ)是子系統(tǒng)和友好性接口之間的清晰分界點(diǎn)。通常各數(shù)據(jù)存儲(chǔ)可以將數(shù)據(jù)結(jié)構(gòu)、文件及數(shù)據(jù)庫組合在一起,不同數(shù)據(jù)存儲(chǔ)在費(fèi)用、訪問時(shí)間、容量及可靠性之間作出折衷考慮。11.4.1系統(tǒng)設(shè)計(jì)過程5.全局資源的處理必須確定全局資源,并且制定訪問全局資源的策略。全局資源包括物理資源(如處理器、驅(qū)動(dòng)器等)、空間(如盤空間、工作站屏幕等)、邏輯名字(如對(duì)象標(biāo)識(shí)符、類名及文件名等)。如果資源是物理對(duì)象,則通過建立協(xié)議可實(shí)現(xiàn)對(duì)并發(fā)系統(tǒng)的訪問,達(dá)到自身控制;如果資源是邏輯實(shí)體(如對(duì)象標(biāo)識(shí)符,在共享環(huán)境中有沖突訪問的可能,獨(dú)立的事務(wù)可能同時(shí)使用同一個(gè)對(duì)象標(biāo)識(shí)符),則各個(gè)全局資源都必須有一個(gè)保護(hù)對(duì)象,由保護(hù)對(duì)象來控制對(duì)該資源的訪問。11.4.1系統(tǒng)設(shè)計(jì)過程6.選擇軟件控制機(jī)制軟件系統(tǒng)中存在外部控制與內(nèi)部控制。外部控制是系統(tǒng)中對(duì)象之間外部事件的事件流,有三種外部事件控制流:過程驅(qū)動(dòng)序列、事件驅(qū)動(dòng)序列及并發(fā)序列。所采用的控制風(fēng)格取決于可用資源和應(yīng)用中交互的模式。11.4.1系統(tǒng)設(shè)計(jì)過程1)過程驅(qū)動(dòng)序列過程驅(qū)動(dòng)的系統(tǒng)中,控制包含在程序代碼中,程序要求外部輸入并等待該輸入,當(dāng)輸入到達(dá)后,程序中的控制就開始執(zhí)行調(diào)用。過程驅(qū)動(dòng)控制的主要優(yōu)點(diǎn)是用傳統(tǒng)語言很容易實(shí)現(xiàn),缺點(diǎn)是要求把對(duì)象中固有的并發(fā)性映射到一個(gè)控制流序列中。11.4.1系統(tǒng)設(shè)計(jì)過程2)事件驅(qū)動(dòng)序列事件驅(qū)動(dòng)控制系統(tǒng)中,控制放在語言、子系統(tǒng)或操作系統(tǒng)所提供的調(diào)度器或監(jiān)控機(jī)制中。應(yīng)用程序加入到監(jiān)控機(jī)制中,每當(dāng)出現(xiàn)對(duì)應(yīng)的事件,就由調(diào)度機(jī)制來調(diào)用該應(yīng)用程序,所有過程都將控制返回調(diào)度,事件直接由調(diào)度器處理。事件驅(qū)動(dòng)比過程驅(qū)動(dòng)的控制模式更靈活,事件驅(qū)動(dòng)模擬了單個(gè)多線事務(wù)中共同處理的過程,錯(cuò)誤過程會(huì)阻塞整個(gè)應(yīng)用,必須十分小心。11.4.1系統(tǒng)設(shè)計(jì)過程3)并發(fā)序列并發(fā)型系統(tǒng)中,控制并發(fā)存在于好幾個(gè)獨(dú)立對(duì)象中,每個(gè)對(duì)象均有一個(gè)獨(dú)立任務(wù),事件直接實(shí)現(xiàn)對(duì)象之間的單向消息,一個(gè)任務(wù)等待輸入,而其他任務(wù)繼續(xù)執(zhí)行,操作系統(tǒng)通常為事件提供隊(duì)列機(jī)制,目的是當(dāng)事件到達(dá)而任務(wù)仍在執(zhí)行時(shí)不致丟失事件。4)內(nèi)部控制內(nèi)部控制是一個(gè)處理內(nèi)部的控制流,它只存在于實(shí)現(xiàn)中,可將一個(gè)處理分解成好幾個(gè)事務(wù)。它與外部事件不一樣,內(nèi)部傳送的控制(如程序調(diào)用或事務(wù)調(diào)用等)都是在程序的控制之下,為方便起見可以結(jié)構(gòu)化。11.4.1系統(tǒng)設(shè)計(jì)過程7.邊界條件的處理設(shè)計(jì)中的大部分工作都與穩(wěn)定的狀態(tài)行為有關(guān),但必須考慮邊界條件:初始化條件、終止條件及失敗處理。1)初始化系統(tǒng)必須從靜態(tài)初始狀態(tài)出發(fā)才能到達(dá)一個(gè)持續(xù)穩(wěn)定的狀態(tài),初始化包括常數(shù)、參數(shù)、全局變量、任務(wù)及保護(hù)對(duì)象等的初值設(shè)置。11.4.1系統(tǒng)設(shè)計(jì)過程2)終止終止通常比初始化簡(jiǎn)單,因?yàn)樵S多內(nèi)部對(duì)象只是簡(jiǎn)單地被拋棄,任務(wù)應(yīng)該釋放所擁有的全部資源,在并發(fā)系統(tǒng)中,必須通知其他任務(wù)系統(tǒng)要終止了。3)失敗失敗是系統(tǒng)的意外終止,失敗可能由用戶錯(cuò)誤引起,也可能由于耗盡系統(tǒng)資源引起,還可能由系統(tǒng)錯(cuò)誤引起。為了保持現(xiàn)存環(huán)境盡可能的清晰,最好為這種致命錯(cuò)誤設(shè)計(jì)一個(gè)很合理的出口,即出錯(cuò)處理。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架現(xiàn)有系統(tǒng)存在不少共同原型的結(jié)構(gòu)框架,其中各框架都能很好地適合不同的系統(tǒng)。若某一應(yīng)用具有類似的性質(zhì),則可以使用相應(yīng)的框架來節(jié)省設(shè)計(jì)時(shí)間。常見的系統(tǒng)種類有批變換、連續(xù)變換、交互式接口、動(dòng)態(tài)模擬、實(shí)時(shí)系統(tǒng)和事務(wù)管理。有些總是需要新的結(jié)構(gòu)形式,但大多數(shù)問題只是上述結(jié)構(gòu)的變種,許多問題是多種結(jié)構(gòu)形式的組合。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架1.批變換批變換是一種從輸入到輸出的順序處理。其中起點(diǎn)含輸入,目標(biāo)就是得出一個(gè)答案,它與外界不存在交互行為,這類結(jié)構(gòu)的例子有標(biāo)準(zhǔn)計(jì)算問題、編譯器等等。批變換問題的動(dòng)態(tài)模型太小或不存在,其對(duì)象模型既可簡(jiǎn)單也可復(fù)雜。批處理最重要的是功能模型,它表明輸入值是如何傳送給輸出值的,特別強(qiáng)調(diào)數(shù)據(jù)流圖的功能分解,編譯器是帶有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的批處理結(jié)構(gòu)的例子,圖11.37是編譯器的數(shù)據(jù)流圖。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架圖11.37編譯器的數(shù)據(jù)流圖11.4.2系統(tǒng)結(jié)構(gòu)的一般框架設(shè)計(jì)批變換有如下步驟:(1)將整個(gè)變換分解為多個(gè)階段,每個(gè)階段執(zhí)行一種變換??芍苯訌墓δ苣P偷玫较到y(tǒng)圖。(2)為兩個(gè)相鄰階段之間的數(shù)據(jù)流定義中間對(duì)象類,各階段只了解一方對(duì)象及自身的輸入/輸出流。各個(gè)類都構(gòu)成了一個(gè)一致的對(duì)象模型,這與相鄰階段的對(duì)象模型是松耦合相關(guān)的。(3)同樣擴(kuò)展各階段直至操作可直接用來實(shí)現(xiàn)為止。(4)重新構(gòu)造優(yōu)化的最后管道。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架2.連續(xù)變換連續(xù)變換是輸出主動(dòng)依賴于不斷變化的輸入,必須周期性地變更。它與批變換不同,批變換中的輸出只計(jì)算一次,而連續(xù)變換中處于活動(dòng)管道上的輸出必須經(jīng)常性地改變。由于嚴(yán)格的時(shí)間約束,每次一個(gè)輸入改變時(shí),整個(gè)輸出集合不可能總是重新計(jì)算,相反總是增量計(jì)算新的輸出值。連續(xù)變換的典型應(yīng)用有信號(hào)處理、窗口系統(tǒng)和增量編譯等。功能模型和對(duì)象模型一起定義了要計(jì)算的值,這類應(yīng)用的大多數(shù)結(jié)構(gòu)都是穩(wěn)定的數(shù)據(jù)流,而不是獨(dú)立的交互,因此,動(dòng)態(tài)模型不大。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架連續(xù)變換用一個(gè)功能管道來實(shí)現(xiàn)有助于增量計(jì)算。輸入值的各種增量變化的效果通過管道來傳輸。為了實(shí)現(xiàn)增量運(yùn)算,可定義中間對(duì)象來保留中間值。連續(xù)變換設(shè)計(jì)過程如下:(1)畫出系統(tǒng)數(shù)據(jù)流圖:輸入/輸出活動(dòng)對(duì)象對(duì)應(yīng)于數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)中的值在不斷變化,管道內(nèi)的數(shù)據(jù)存儲(chǔ)表示了影響輸入/輸出映射的參數(shù)。圖11.38表示圖形應(yīng)用中的數(shù)據(jù)流圖。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架圖11.38圖形應(yīng)用的數(shù)據(jù)流圖11.4.2系統(tǒng)結(jié)構(gòu)的一般框架(2)定義相鄰階段的中間對(duì)象,與批變換一樣。(3)對(duì)各操作微分以得到各階段的增量變化值,即將各階段的增量影響傳遞給管道中的一個(gè)輸入對(duì)象,作為增量變化的序列。例如,每當(dāng)幾何圖形的位置改變,就需刪除舊的圖形,計(jì)算新的位置點(diǎn),顯示新的圖形,其他圖形未變不必重新計(jì)算。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架3.交互式接口交互式接口是受系統(tǒng)和外部事物(人、設(shè)備等)之間交互行為支配的系統(tǒng)。外部事物獨(dú)立于該系統(tǒng),系統(tǒng)可以向外部事物要求響應(yīng)。交互式接口通常只是一個(gè)完整應(yīng)用的一部分,交互式接口涉及的主要問題是系統(tǒng)與外部事物之間的通信協(xié)議、可能的交互語義及輸出的格式等。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架交互式接口的例子有基于表格的查詢接口、工作站窗口系統(tǒng)和操作系統(tǒng)的命令語言等。交互式接口受動(dòng)態(tài)模型支配,對(duì)象模型中的對(duì)象說明了交互的元素,如輸入/輸出和顯式格式,功能模型描述了響應(yīng)輸入序列應(yīng)該執(zhí)行哪些應(yīng)用功能,但功能的內(nèi)部結(jié)構(gòu)常對(duì)接口行為不重要,交互式接口關(guān)心外部顯示,而不是深層的語義結(jié)構(gòu)。交互式接口設(shè)計(jì)過程如下:11.4.2系統(tǒng)結(jié)構(gòu)的一般框架(1)從定義應(yīng)用語義的對(duì)象中找出構(gòu)成接口的對(duì)象。(2)如有可能,使用已定義的對(duì)象與外部事物交互,如已定義的窗口、菜單、按鈕及表等其他的一些對(duì)象的集合,很容易在應(yīng)用中使用這些對(duì)象。(3)使用動(dòng)態(tài)模型作為系統(tǒng)的結(jié)構(gòu),使用并發(fā)控制或事件驅(qū)動(dòng)控制來實(shí)現(xiàn)交互接口。(4)從邏輯事件中區(qū)分出物理事件。一個(gè)邏輯事件對(duì)應(yīng)多個(gè)物理事件,如圖形接口,既可從表中獲得輸入,也可從彈出菜單、功能鍵及命令序列獲取輸入。(5)完全確定由接口觸發(fā)的應(yīng)用功能,確認(rèn)實(shí)現(xiàn)功能的信息已存在。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架4.動(dòng)態(tài)模擬動(dòng)態(tài)模擬是對(duì)客觀世界對(duì)象建模和跟蹤,它涉及許多不同的對(duì)自身不斷修改的對(duì)象。動(dòng)態(tài)模擬的例子有分子運(yùn)動(dòng)模型、經(jīng)濟(jì)模型及電子游戲等。動(dòng)態(tài)模擬的設(shè)計(jì)過程是:(1)從對(duì)象模型中確定動(dòng)作對(duì)象、活動(dòng)的客觀對(duì)象。活動(dòng)對(duì)象具有周期性變化的屬性。(2)確定離散事件。離散事件與對(duì)象間的離散交互有關(guān),離散事件可以用對(duì)象上的操作來實(shí)現(xiàn)。(3)確定連續(xù)依賴性??陀^對(duì)象的屬性相互依賴或隨時(shí)間、高度及速率等不斷變化。(4)通常模擬是受一定范圍內(nèi)的時(shí)序循環(huán)來驅(qū)動(dòng)的。對(duì)象間的離散事件常隨時(shí)序循環(huán)的變化而變化。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架5.實(shí)時(shí)系統(tǒng)實(shí)時(shí)系統(tǒng)是一種交互系統(tǒng),系統(tǒng)必須保證在絕對(duì)短的時(shí)間內(nèi)作出響應(yīng)。為了保證響應(yīng)時(shí)間,必須決定和提供最壞實(shí)例的腳本,這樣能夠簡(jiǎn)化設(shè)計(jì),因?yàn)樽顗膶?shí)例行為比普通實(shí)例行為來得容易。實(shí)時(shí)系統(tǒng)的例子是過程控制、數(shù)據(jù)采集、通信設(shè)備和設(shè)備控制等。實(shí)時(shí)系統(tǒng)設(shè)計(jì)是復(fù)雜的,并且涉及中斷處理、事務(wù)優(yōu)先級(jí)及協(xié)調(diào)多個(gè)CPU等,實(shí)時(shí)系統(tǒng)的設(shè)計(jì)是一個(gè)專門課題。11.4.2系統(tǒng)結(jié)構(gòu)的一般框架6.事務(wù)管理事務(wù)管理系統(tǒng)是數(shù)據(jù)庫管理系統(tǒng)的一個(gè)主要子系統(tǒng),其中主要的功能是存儲(chǔ)、處理和訪問信息。信息從應(yīng)用域中得到,大多數(shù)事務(wù)管理系統(tǒng)必須考慮多用戶及并發(fā)性,一個(gè)事務(wù)處理或單個(gè)原子實(shí)體,不含其他事務(wù)的干預(yù)。事務(wù)管理的例子有管理信息系統(tǒng)、飛機(jī)訂票系統(tǒng)等。在系統(tǒng)中,事務(wù)應(yīng)考慮成不可分割的原子形式。其設(shè)計(jì)過程如下:11.4.2系統(tǒng)結(jié)構(gòu)的一般框架(1)將對(duì)象模型直接映射到數(shù)據(jù)庫中。(2)確定并發(fā)單元,即描述中規(guī)定不能共享的資源或“先天”就不能共享的資源,必要時(shí)引進(jìn)新類。(3)確定事務(wù)單位,即一次事務(wù)中訪問的資源等。(4)設(shè)計(jì)事務(wù)的并發(fā)控制。11.4.3銀行網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)銀行網(wǎng)絡(luò)系統(tǒng)是集交互式接口和事務(wù)管理系統(tǒng)于一體的網(wǎng)絡(luò)系統(tǒng)。錄入站是交互式接口,它們的目的是通過與人的交互來收集構(gòu)造事務(wù)處理所需的信息。錄入站由對(duì)象模型和動(dòng)態(tài)模型組成。分行和分理處主要是分布式事務(wù)管理系統(tǒng),它們的目的是維護(hù)數(shù)據(jù)庫信息,并且在控制條

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論