軟件的設計的體系結構課件_第1頁
軟件的設計的體系結構課件_第2頁
軟件的設計的體系結構課件_第3頁
軟件的設計的體系結構課件_第4頁
軟件的設計的體系結構課件_第5頁
已閱讀5頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件設計 福州大學 軟件學院張舒 體系結構的風格體系結構風格也是構造的一種模式(Pattern),類似于建筑行業(yè)中的建筑風格,是描述某一特定應用域中系統(tǒng)組織方式的慣用模式,反映了領域中眾多系統(tǒng)所共有的結構和語義特性。 體系結構(Architecture)的定義IEEE的定義體系結構是以組件、組件之間的關系、組件與環(huán)境之間的關系為內容的某一系統(tǒng)的基本組織結構以及指導上述內容設計與演化的原理對Software Architecture的常見中文翻譯軟件體系結構軟件架構軟件構架 軟件體系結構的發(fā)展史 1.3 體系結構的興起和發(fā)展 “無體系結構”設計階段萌芽階段以匯編語言進行小規(guī)模應用程序開發(fā)為特征以

2、描述系統(tǒng)的高層抽象結構為中心,不關心具體的建模細節(jié),劃分了體系結構模型與傳統(tǒng)軟件結構的界限,該階段以Kruchten提出的“4+1”模型為標志出現了從不同側面描述系統(tǒng)的結構模型,以UML為典型代表。出現了程序結構設計主題,以控制流圖和數據流圖構成軟件結構為特征高級階段初期階段軟件體系結構研究的問題全局組織結構系統(tǒng)的組織,由哪些組件構成全局性的控制結構通信和同步以及數據存取的協(xié)議將功能分配到不同的系統(tǒng)組成部分設計元素的組合系統(tǒng)的物理分布系統(tǒng)的可擴展性和性能 研究體系結構風格的意義:有利于發(fā)現不同系統(tǒng)在較高級別上的共同特性。對體系結構的了解,使得在設計軟件結構時選擇合適的模式,進行正確地設計。使用

3、常用的、規(guī)范的模式來組織結構,使別的設計者易于理解、便于交流。有利于較高級別上的軟件復用。判斷能否在不同的軟件系統(tǒng)中使用同一體系結構。 Garlan和Shaw(2019)對體系結構的分類如下: 數據流風格:批處理序列;管道/過濾器 調用/返回風格:主程序/子程序;面向對象系統(tǒng);層次結構 倉庫風格:數據庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng) 虛擬機風格:解釋器 獨立構件風格:通信進程;事件系統(tǒng) 介紹幾種主要的體系結構風格: (1)倉庫風格 基于一個共享數據庫的系統(tǒng)模型。(見下圖) 倉庫系統(tǒng)中有兩類構件:中心數據存儲構件及對中心數據進行各種操作的一組構件集。中心數據存儲與外部構件集之間的信息交互是該模式的至

4、關重要的問題,系統(tǒng)承擔的功能不同,信息交互的方式也不同。傳統(tǒng)數據庫系統(tǒng):由輸入流中的事物出發(fā)系統(tǒng)相應進程,這種倉庫風格就是傳統(tǒng)數據庫型系統(tǒng);中心數據存儲是被動的數據庫,系統(tǒng)由輸入流的事務指令觸發(fā)相應進程執(zhí)行。黑板系統(tǒng):中心數據結構的當前狀態(tài)出發(fā)系統(tǒng)相應的進程執(zhí)行,這種庫系統(tǒng)稱為黑板系統(tǒng)。中心數據存儲的狀態(tài)控制了進程的觸發(fā),即控制完全由黑板的狀態(tài)驅動,當有特別的數據可用時,會主動通報外部構件(人工智能技術)。 典型應用黑板系統(tǒng)的典型應用是信號處理、語音和模式識別系統(tǒng)。許多其他系統(tǒng)也組織成倉庫模式,如CASE工具集、可復用構件庫、大型數據庫和搜索引擎等。應用示例1專家系統(tǒng)也是一組程序。從功能角度,

5、定義為:在某個領域,具有專家解題能力的一個程序系統(tǒng)。從結構角度可以定義為:一個用于解題的程序系統(tǒng),有一個特定領域的知識庫和一個可以獲取和運用知識構件組成。 系統(tǒng)工作流程如下:獲取人們長期總結的特定領域中的知識和經驗模仿人類專家的思維規(guī)律和思維過程模式利用某些推理機制和控制策略,用計算機進行推理 專家系統(tǒng)的核心內容:知識庫推理機制主要成分:知識庫推理機工作數據庫用戶界面翻譯程序知識獲取程序 (2)管道過濾器風格把系統(tǒng)看作是對相繼輸入數據的一系列變換。一批數據進入系統(tǒng),流經一個個構件最后到達終點(輸出或數據倉庫)。構件稱為過濾器,能夠對數據進行漸進式的轉換(一種流變換為另一種流)。數據流的通路稱為

6、管道。(見下圖) 組件:過濾器,接收數據輸入,進行轉化后輸出過濾器是獨立的實體,相互之間沒有狀態(tài)的依賴對一個過濾器而言,它上游和下游的過濾器是透明的交互由管道提供,管道負責連接一個過濾器的輸出一個另外一個過濾器的輸入該風格的特點:過濾器是獨立的,不與其他過濾器共享數據;無需知道其他過濾器的存在或功能。系統(tǒng)輸出的正確性不取決于所用過濾器的順序。 優(yōu)點:沒有復雜的構件交互:將系統(tǒng)看成各個過濾器的簡單合成。支持軟件重用:任意兩個過濾器只要相互傳輸的數據格式一致,就可以連接在一起,應用到其他系統(tǒng)中。易于維護:過濾器替換方便。支持并行執(zhí)行過濾器,但要考慮并行執(zhí)行時數據流之間的同步問題。 缺陷:批處理方式

7、,不適合構建交互式應用的系統(tǒng)。在數據傳輸上沒有通用的標準,每個過濾器都增加了解析和合成數據的工作,這樣就導致了系統(tǒng)性能下降,并增加了編寫過濾器的復雜性。 該模式常見的變種流水線:表現為線性的拓撲結構批處理系統(tǒng)、UNIX Shell、編譯器有界管道:對一個管道所能傳輸的數據量作出限制類型管道:對一個管道所能傳輸的數據類型作出限制應用示例2一個典型的數字通信系統(tǒng)為例,展示如何用管道過濾器風格組織系統(tǒng)中的各個構件。請考慮數字通信系統(tǒng)中信息傳輸的過程。 上圖中有4個過濾器和相互之間聯(lián)系所需要的管道。 數字通信系統(tǒng)中存在幾個問題:數字信號傳輸過程中,信道噪聲產生的誤差可以通過控制編碼等手段來控制,所以在

8、發(fā)送端要增加一個編碼器,接收端要增加一個解碼器。若信息要保密,則要增加加解密設備數字通信系統(tǒng)中傳送的是碼元,因此發(fā)送和接收要同步因此在此通信系統(tǒng)中要有同步控制構件。 應用示例3考慮一個字串處理系統(tǒng),在這個系統(tǒng)中:一個字符串可以簡單地分成一組單詞然后這些單詞可以按照某種規(guī)則組成一個新的字符串最后將這個新的字符串字母排序,然后輸出。 整個系統(tǒng)的處理過程可以概括為分割、合并、排序這些個。 如果輸入一個字符串到這個過濾器中,那么它會將這個字符串分割為一組單詞,然后輸出來。而后合并、排序過濾器可以分割過濾器中接收這些輸出的數據,再產生出新的字符串。 (3)調用返回風格是一種集中式控制模型。自上而下的調用

9、,控制始于結構層次的頂層,往往只有一個控制線程。優(yōu)點是容易分析與理解系統(tǒng)的控制流,但不適合并發(fā)執(zhí)行的系統(tǒng)。 (4)基于事件的隱式調用風格基于事件的隱式調用風格的基本思想:構件不直接調用一個過程,而是觸發(fā)或廣播(broadcast)一個或多個事件(在“源對象”和“監(jiān)聽者對象”之間,某種狀態(tài)發(fā)生變化的傳遞機制)。其它構件中的過程在一個或多個事件中注冊,當一個事件被觸發(fā),系統(tǒng)自動調用在這個事件中注冊的所有過程,這樣,一個事件的觸發(fā)就導致了另一模塊中的過程的調用。 從體系結構上說,這種風格的構件是一些模塊,這些模塊既可以是一些過程,又可以是一些事件的集合。過程可以用通用的方式調用,也可以在系統(tǒng)事件中注

10、冊一些過程,當發(fā)生這些事件時,過程被調用?;谑录碾[式調用風格的主要特點是:事件的觸發(fā)者并不知道哪些構件會被這些事件影響。這樣就不能假定構件的處理順序,甚至不知道哪些過程會被調用,因此,許多隱式調用的系統(tǒng)也包含顯式調用作為構件交互的補充形式。 支持基于事件驅動的應用系統(tǒng)如:在編程環(huán)境中用于集成各種工具在數據庫管理系統(tǒng)中確保數據的一致性約束在用戶界面系統(tǒng)中管理數據在編譯器中支持語法檢查 優(yōu)點: 為軟件重用提供了強大的支持。當需要將一個構件加入現存系統(tǒng)中,只需要將他注冊到系統(tǒng)的事件中。為改進系統(tǒng)帶來了方便。在不改變系統(tǒng)中其他構件接口的情況下,構件可以非常容易的被其他構件取代。 缺點: 構件放棄了

11、對系統(tǒng)計算的控制。一個構件觸發(fā)一個事件時,不能確定其它構件是否會響應它。而且即使它知道事件注冊了哪些構件的構成,它也不能保證這些過程被調用的順序。數據共享的問題。有時數據被一個事件傳遞,基于事件的系統(tǒng)必須依靠一個共享的數據庫來解決各個對象進行數據交換,如何保證共享數據能夠得到合理的訪問是一個關鍵問題。 (5)面向對象風格面向對象模式集數據抽象、抽象數據類型、類繼承為一體,根本出發(fā)點是追求問題空間和軟件系統(tǒng)空間結構的一致性。它將自己的數據結構定義和功能實現封裝起來,實現了信息隱藏和數據抽象,可作為基本構件單元被不同軟件系統(tǒng)重用。 優(yōu)點: 高度模塊性。對象是一個功能和數據獨立的單元,相互之間只有通

12、過消息傳遞進行通訊,可以較為方便的為各個不同的軟件系統(tǒng)所用。 封裝功能。為信息隱藏提供具體的實現手段,外部不必知道對象的內部狀態(tài),只需了解其功能描述就可使用。 代碼共享。繼承性提供了一種代碼共享的手段,可以避免重復的代碼設計,提高軟件的可重用性。 靈活性。對象的功能執(zhí)行是在消息傳遞時確定的,支持對象的主體特征,使得對象可以根據自身的特點進行功能實現。 易維護性。對象實現了抽象和封裝功能,使其中可能出現的錯誤限制在自身,不會向外傳播,易于檢錯和修改。 可擴充性。面向對象系統(tǒng)可通過繼承機制不斷擴充功能。 不足: 如果一個對象需要調用另一個對象,它就必須知道那個對象的標識(對象名或其他標識符),增強

13、了對象之間的依賴關系。如果一個對象改變了自己的標識,就必須通知系統(tǒng)中所有和它有調用關系的對象。 這種顯式調用方式可能有副作用。例如,如果A使用了對象B,C也使用了對象B,那么,C對B的使用(引起狀態(tài)改變)可能造成的對A的影響。 繼承使得設計變得復雜,引入多層對象結構使得維護變得困難父類、子類、子類的子類樹狀結構要不斷向上追述,使得對子類的理解變得困難由于繼承,使得某一父類修改會影響到他的所有子類應用示例5某公司打算建立一個兩層的建筑,并安裝一部電梯。公司要制定一個軟件模擬器來模擬電梯的運作,以確定它是否能符合公司的需要。考慮該模擬軟件設計中可以使用的體系結構方案。 分析可知該軟件系統(tǒng)主要由三部

14、分構成:模擬器:仿真模型,模擬運作的電梯模型展示界面:用戶可以通過這個圖形化界面觀察電梯的運作圖形用戶界面:用戶可以通過該界面控制仿真過程解決方案1面向對象風格首先要在模型中將履行重要職責的實體名稱提取出來模型、電梯井、電梯、人、樓層、電梯門、樓層門、電梯按鈕、樓層按鈕、鐘、燈??梢允÷圆恢匾拿Q例如:公司、辦公室等 其次,可以在系統(tǒng)中基于以上名詞分類建立類模型??梢允褂肬ML的類圖,創(chuàng)建所有的類,還有類之間的聯(lián)系。類圖通過提供系統(tǒng)中的類(也就是系統(tǒng)的構建單元),模擬了系統(tǒng)的體系結構。 解決方案2事件隱式調用風格通過前面的分析,可知電梯模擬系統(tǒng)中有許多事件,例如:當電梯到達地面時,電梯發(fā)送e

15、levatorArrieved事件給電梯門,電梯門就會確定其行動,比如將門對象打開的狀態(tài)通知人。按電梯按鈕,或者樓層按鈕時,也會將相應的事件發(fā)送給對應的處理對象。 為了便于對不同的事件進行不同的處理,可在模擬過程中創(chuàng)建一個超類ElevatorModelEvent對象來描述模型中的事件,并可以派生不同的事件類。 (6)層次式風格系統(tǒng)采用層次化的組織方式構建,系統(tǒng)中的每一層都要承擔兩個角色:為結構中的上層提供服務;作為結構中下層的客戶,調用下層提供的功能函數。 最內層完成最基本的公用操作,向外各層逐漸進行功能擴展。 在大多數分層系統(tǒng)中,各層僅和自己相鄰層次交互信息。在一些特定情況下,內部層次也可能

16、會開放一些服務供其他層次調用。這樣,分層系統(tǒng)中的各個組件在不同層次上形成了不同功能級別的虛擬機(Virtual Machine),各虛擬機之間通過系統(tǒng)設計時約定的協(xié)議進行通訊。一個概念上的分層模型如下圖所示: 該模型最典型的應用如網絡通訊系統(tǒng)的設計, 在這一應用領域中,每一層提供一個抽象的功能,作為上層通訊的基礎,較低的層次定義低層的交互,最低層次通常只定義硬件物理連接。優(yōu)點: 支持基于抽象程度遞增的系統(tǒng)設計,可將一個復雜的系統(tǒng)按功能遞增的步驟進行分解。 具有較好的可擴展性。每一層功能的改變最多影響相鄰上下層。 支持軟件復用。只要提供的服務接口不變,同一層的不同實現可以交換使用。因此可定義一組

17、標準接口,允許有多種不同的實現方法。 不足:并不是所有系統(tǒng)都會適用分層模式來描述。即使可從邏輯上對系統(tǒng)功能進行分層,出于性能考慮,設計者不得不將邏輯上高層次的功能和低層次上的具體實現緊密結合,加大了不同層次間的耦合度。定義一個合適的抽象層次可能會很困難。 (7)客戶機服務器體系結構客戶機服務器系統(tǒng)(client-server system)是至少包含一個服務器和一個客戶機的分布式系統(tǒng)。在分布式系統(tǒng)中(distributed system) ,計算由不同的程序執(zhí)行,這些程序一般運行在不同的硬盤上,合作完成系統(tǒng)的任務。 服務器就是為其他程序提供某些服務的程序,其他程序使用通訊通道與服務器相連接???/p>

18、戶機就是訪問服務器的程序。客戶機可以訪問許多服務器來執(zhí)行不同的功能,而服務器可以同時被許多客戶機所訪問。除了同步請求或接收結果的時候,客戶和服務器中的控制流都是相互獨立的??蛻魴C服務器體系結構的一個重要變體就是三層模型(three-tier-model)。在該模型中應用服務器需要同客戶機(通常經由Internet)和數據庫服務器(出于安全原因通常在企業(yè)網絡內部)通信。當訪問數據庫服務器時,應用服務器相當于一個客戶機。(見圖) 下圖中互聯(lián)網銀行系統(tǒng)是使用C/S體系結構的例子。銀行的客戶數據庫提供數據管理服務,一個Web服務器提供應用服務如用于現金轉帳、生成銀行結算單和工資單等。 在某些情況下,可

19、以在系統(tǒng)中添加服務器,把三層的C/S結構擴展成多層結構。多層系統(tǒng)適合于當應用程序需要到不同的數據庫中存取數據的情況??蛻魴C服務器體系結構的進一步擴展是對等模式(peer-to-peer ) 。對等系統(tǒng)是一個特殊的客戶機服務器系統(tǒng),每個構件(或子系統(tǒng))既可以是客戶機,又可以是服務器,其中的控制流除了在同步請求的時候,都是互相獨立的。2019年以來,P2P有了很大的改進,用戶之間直接傳遞音樂、電影、游戲和文件等,大大的改變了人們的工作方式和生活方式。 (8)異質構架風格 軟件系統(tǒng)很少純粹是一個風格,不同的體系結構在處理能力上有各自的優(yōu)點和缺陷,異構軟件體系結構由幾種體系結構組合而成。幾種組合類型:

20、局部異質:多個不同風格層次異質:每個構件有自己的風格并行異質:同時復合好幾種風格 例如調用返回體系結構可存在于更復雜的體系結構(如C/S結構)中。如何進行系統(tǒng)體系結構設計?根據已選的軟件、硬件以及網絡環(huán)境構造系統(tǒng)的整體結構,劃分系統(tǒng)模塊,并對系統(tǒng)內各個模塊之間的關系進行定義。確定已定義的對象及其組件在系統(tǒng)內如何交互、通信。如果待開發(fā)的系統(tǒng)是最終使用系統(tǒng)的一個子系統(tǒng)或者將要使用現有的一些其他相關系統(tǒng),應對它們各自的功能和相互間的關系給與具體描述。案例:網上招聘系統(tǒng)體系結構設計系統(tǒng)簡介:本系統(tǒng)可以實現網上的在線招聘,應聘者通過網上投遞簡歷并進行網上測評。招聘單位可以匯總簡歷,瀏覽簡歷,并通過測評結

21、果選擇合格的簡歷,通知面試,進行面試。系統(tǒng)可以使企業(yè)與求職者方便的進行交流,系統(tǒng)本身包括管理端子系統(tǒng)和客戶端子系統(tǒng)。 管理端子系統(tǒng)包括題庫管理、問卷管理、職位管理、簡歷管理、面試管理、用戶管理。 客戶端子系統(tǒng)包括查詢職位,簡歷錄入,回答問卷,提交簡歷。 系統(tǒng)的總體結構設計遵循如下原則 :系統(tǒng)應具有良好的適應性:能適應用戶對系統(tǒng)的軟件環(huán)境、管理內容、模式和界面的要求;系統(tǒng)應具有可靠性:采用成熟的技術方法和軟件開發(fā)平臺,以保證在以后的實際應用中安全、可靠;系統(tǒng)應具有較好的安全性:應提高完善的安全機制和用戶權限限制機制,確保數據的受限訪問; 系統(tǒng)的總體結構設計遵循如下原則 :系統(tǒng)應具有良好的可維護性

22、:系統(tǒng)應易于維護、安裝;系統(tǒng)應具有良好的可擴展性:系統(tǒng)應適應未來信息化建設的要求,能方便得進行功能擴展,以建立完善的信息集成管理體系。系統(tǒng)體系結構本系統(tǒng)開發(fā)決定采用MVC架構方式,并采用Struts框架實現。Struts 是一個基于模型 (Model) 視圖 (View) 控制器 (Controller)(MVC) 模式的應用架構的開源框架。在Struts框架中模型由實現業(yè)務邏輯的JavaBean或者EJB組件構成,控制器由ActionSevelet和Action來實現,視圖由一組JSP文件組成,它可以使設計人員不必要從頭開始全部開發(fā)組件,對于大項目更是很好的選擇。Struts實現的MVC架構

23、 根據系統(tǒng)分析結果,該系統(tǒng)從結構上應滿足:基于瀏覽器進行顯示以方便用戶使用;采用MVC的三層體系結構,分化各個功能組件;采用JDBC技術與數據庫通訊以便于數據庫的轉換;采用標簽技術完成動態(tài)頁面的簡單邏輯。 遵循struts的框架規(guī)范,設計本系統(tǒng)的體系結構如下:其中表示層:用于與用戶進行交互以及顯示結果。包括所有的JSP,提供用戶界面,接受用戶輸入, 還包括相應的ActionFrom Bean,用來存放表單數據,并進行表單數據驗證。 控制層:包括所有的Action類,它完成三項任務:進行業(yè)務邏輯驗證,調用模型組件,決定將合適的視圖組件返回給用戶。模型:進行邏輯處理的JavaBean等。數據庫采用

24、ODBC技術以提供數據庫的可移植性 最終實現系統(tǒng)體系結構如下:從概要設計到過程設計 在概要設計階段采用自頂向下逐步求精的設計方法,可以把一個復雜問題的解分解和細化為一個由若干模塊組成的層次結構的軟件系統(tǒng); 在詳細設計階段采用自頂向下逐步求精的設計方法,可以把一個模塊的功能逐步分解和細化為一系列具體的處理步驟。 過程設計的任務在使用程序設計語言編制程序以前,需要對所采用算法的邏輯關系進行分析,設計出全部必要的過程細節(jié),并給予清晰的表達。 -這就是過程設計的任務為了精確地表達這些算法所使用的過程規(guī)格說明的工具叫做詳細設計工具,它可以分為以下三類: 圖形工具 表格工具 語言工具程序流程圖程序流程圖也

25、稱為程序框圖,程序流程圖使用五種基本控制結構是:程序流程圖的標準符號循環(huán)的標準符號 注解的使用多出口判斷 示例流程圖的優(yōu)缺點優(yōu)點:比較直觀,靈活,并且比較容易掌握 缺點:(1)由于程序流程圖的特點,它本身并不是逐步求精的好工具。(2)程序流程圖中用箭頭代表控制流,這樣使得程序員不受任何約束,可以完全不顧結構程序設計的精神,隨意轉移控制;(3)程序流程圖在表示數據結構方面存在不足。N-S圖N-S圖也叫做盒圖。五種基本控制結構由五種圖形構件表示。 示例N-S圖的嵌套定義形式N-S圖的特點(1)功能域(即某一個特定控制結構的作用域)有明確的規(guī)定,并且可以很直觀地從N-S圖上看出來;(2)它的控制轉移

26、不能任意規(guī)定,必須遵守結構化程序設計的要求;(3)很容易確定局部數據和全局數據的作用域;(4)很容易表現嵌套關系,也可以表示模塊的層次結構。PAD也設置了五種基本控制結構的圖式,并允許遞歸使用。問題分析圖(PAD)PAD描述的示例對應于增量型循環(huán)結構for i := n1 to n2 step n3 do在PAD中有相應的循環(huán)控制結構PAD的擴充控制結構判定表判定表用于表示程序的靜態(tài)邏輯在判定表中的條件部分給出所有的兩分支判斷的列表,動作部分給出相應的處理要求將程序流程圖中的多分支判斷都改成兩分支判斷無多分支判斷結構建立判定表的步驟列出與一個具體過程(或模塊)有關的所有處理。列出過程執(zhí)行期間的

27、所有條件(或所有判斷)。將特定條件取值組合與特定的處理相匹配,消去不可能發(fā)生的條件取值組合。將右部每一縱列規(guī)定為一個處理規(guī)則,即對于某一條件取值組合將有什么動作。 用電收費系統(tǒng)中的某一個處理: 如果按固定比率收費,月耗電少于100KWH的用戶負擔的費用為某個固定值(最低月收費),其他用戶按表A的規(guī)則收費。如果按變動比率收費,月耗電少于100KWH的用戶按表A的規(guī)則收費,其他用戶按表B的規(guī)則收費。 決策表(判定表): 組合 規(guī)則 固定比率用戶 變動比率用戶 耗電量100度用戶 耗電量100度用戶 最低月收費 按表A收費 按表B收費 TT1234FFF F T TT F T F F T F T 條

28、件動作判定表特點優(yōu)點:能夠簡潔,無二義性地描述所有的處理規(guī)則 缺點:表示的是靜態(tài)邏輯,是在某種條件取值組合情況下可能的結果,它不能表達加工的順序,也不能表達循環(huán)結構, 數據設計及文件設計數據設計的原則文件設計數據設計的原則R.S.Pressman數據設計的過程 為在需求分析階段所確定的數據對象選擇邏輯表示,需要對不同結構進行算法分析,以便選擇一個最有效的結構;設計對于這種邏輯數據結構的一組操作,以實現各種所期望的運算。 確定對邏輯數據結構所必需的那些操作的程序模塊(軟件包),以便限制或確定各個數據設計決策的影響范圍。Pressman提出了一組原則,用來定義和設計數據。實際上,在進行需求分析時往

29、往就開始了數據設計。1.用于軟件的系統(tǒng)化方法也適用于數據。在導出、評審和定義軟件的需求和軟件體系結構時,必須定義和評審其中所用到的數據流、數據對象及數據結構的表示。應當考慮幾種不同的數據組織方案,還應當分析數據設計給軟件設計帶來的影響。2.確定所有的數據結構和在每種數據結構上施加的操作。設計有效的數據結構,必須考慮到要對該數據結構進行的各種操作。3.應當建立一個數據詞典并用它來定義數據和軟件的設計。數據詞典清楚地說明了各個數據之間的關系和對數據結構內各個數據元素的約束。4.低層數據設計的決策應推遲到設計過程的后期進行。在進行需求分析時確定的總體數據組織,應在概要設計階段加以細化,在詳細設計階段

30、才規(guī)定具體的細節(jié)。5.數據結構的表示只限于那些必須直接使用該數據結構內數據的模塊才能知道。此原則就是信息隱蔽和與此相關的耦合性原則。6.應當建立一個存放有效數據結構及相關操作的庫。數據結構應當設計成為可復用的。建立一個存有各種可復用的數據結構模型的部件庫。7.軟件設計和程序設計語言應當支持抽象數據類型的定義和實現。 以上原則適用于軟件工程的定義階段和開發(fā)階段。“清晰的信息定義是軟件開發(fā)成功的關鍵”。文件設計文件設計的過程,主要分兩個階段。第一個階段是文件的邏輯設計,主要在概要設計階段實施。(1) 整理必須的數據元素:在軟件設計中所使用的數據,有長期的,有短期的,還有臨時的。它們都可以存放在文件中,在需要時對它們

溫馨提示

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

評論

0/150

提交評論