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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

11.4系統(tǒng)設計

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論