版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第五章總體設計設計過程設計原理啟發(fā)規(guī)則描繪軟件結(jié)構的圖形工具面向數(shù)據(jù)流的設計方法15.1設計過程系統(tǒng)設計階段:確定系統(tǒng)的具體實現(xiàn)方案結(jié)構設計階段:確定軟件結(jié)構2典型的總體設計過程(一)1.設想供選擇的方案綜合考慮各種可能的實現(xiàn)方案,并且力求從中選出最佳方案。需求分析階段得到的數(shù)據(jù)流圖是極好的出發(fā)點。2.選取合理的方案參考需求分析階段確定的工程規(guī)模和目標,從可選方案中選擇若干個合理的方案,通常至少選擇低成本、中等成本、高成本三種方案。對于每種方案應準備:系統(tǒng)流程圖、組成系統(tǒng)的物理元素清單、成本/效益分析、實現(xiàn)系統(tǒng)的進度計劃。3.推薦最佳方案綜合分析、對比各種合理方案的利弊,推薦一個最佳的方案,并為推薦的最佳方案制定一個詳細的實現(xiàn)計劃。用戶和有關人員評審所推薦的最佳方案。3典型的總體設計過程(二)4.功能分解確定系統(tǒng)有哪些模塊構成,以及這些模塊之間的關系。對于復雜的功能或模塊,結(jié)合數(shù)據(jù)流圖,進一步分解。5.設計軟件結(jié)構系統(tǒng)軟件是由實現(xiàn)各個子功能的模塊構成,軟件結(jié)構是指模塊組成的層次關系。軟件結(jié)構用層次圖或結(jié)構圖表示。數(shù)據(jù)流圖細化到適當?shù)膶哟?,可以映射出軟件結(jié)構。6.設計數(shù)據(jù)庫結(jié)合需求分析階段所確定的系統(tǒng)數(shù)據(jù)需求,進一步設計數(shù)據(jù)庫。4典型的總體設計過程(三)7.制定測試計劃開發(fā)早期考慮并制定測試計劃,有助于在設計時注意提高軟件的可測試性。8.書寫文檔系統(tǒng)說明:主要包括用系統(tǒng)流程圖描繪的系統(tǒng)構成方案,組成系統(tǒng)的物理元素清單,成本/效益分析;對最佳方案的概括描述,精化的數(shù)據(jù)流圖,用層次圖或結(jié)構圖描繪的軟件結(jié)構,用IPO圖或其他工具簡要描述的各個模塊的算法,模塊間的接口關系,以及需求、功能和模塊三者之間的交叉參照關系等。用戶手冊:根據(jù)總體設計階段的結(jié)果,更正在需求分析階段產(chǎn)生的用戶手冊。測試計劃:包括測試策略,測試方案,預期的測試結(jié)果,測試進度計劃等。詳細的實現(xiàn)計劃數(shù)據(jù)庫設計結(jié)構9.審查和復審技術審查--系統(tǒng)開發(fā)方管理復審--系統(tǒng)使用者55.2設計原理模塊化抽象逐步求精信息隱藏和局部化模塊獨立6模塊化(一)定義:是指能夠相對獨立的實現(xiàn)一定功能的程序代碼。簡單的講,模塊化就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構成一個整體,可以完成指定的功能滿足用戶的需求?!皬碗s的問題分解成許多容易解決的小問題”。表現(xiàn)形式:過程、函數(shù)、子程序、宏;面向?qū)ο蠓椒▽W中的對象、對象內(nèi)的方法。優(yōu)點:軟件結(jié)構清晰,便于設計、交流容易測試、調(diào)試,有助于提高軟件的可靠性提高軟件的可修改性有助于軟件開發(fā)項目的組織與管理7模塊化(二)缺點:當模塊數(shù)目增加時每個模塊的規(guī)模將減小,開發(fā)單個模塊需要的成本(工作量)減少了;但是,隨著模塊數(shù)目增加,設計模塊間接口所需要的工作量將增加,并且在模塊交互時易發(fā)生錯誤。圖5.1模塊化和軟件成本
8抽象定義:是指抽出事物的本質(zhì)特性并加以描述,但是不考慮它們的細節(jié)。應用:一個復雜系統(tǒng)可以用一些高級的抽象概念構造和理解,這些高級概念又可以用一些較低級的概念構造和理解,如此進行下去,直至最低層次的具體元素。
軟件工程過程的每一步都是對軟件解法的抽象層次的一次精化。在可行性研究階段,軟件作為系統(tǒng)的一個完整部件;在需求分析期間,軟件解法是使用在問題環(huán)境內(nèi)熟悉的方式描述;當由總體設計向詳細設計過渡時,抽象的程度隨之減少;最后,當源程序?qū)崿F(xiàn),即達到抽象的最低層。抽象與模塊化的關系:軟件結(jié)構頂層的模塊,控制系統(tǒng)的主要功能并且影響全局;在軟件結(jié)構底層的模塊,完成對數(shù)據(jù)的一個具體處理,用自頂向下由抽象到具體的方式分配控制,簡化軟件的設計和實現(xiàn),提高軟件的可理解性和可測試性,并且使軟件更容易維護。9逐步求精定義:是一種自頂向下的設計策略:通過逐步分解對功能的宏觀陳述而開發(fā)出層次結(jié)構,直至最終得出用程序設計語言表達的程序。實質(zhì):求精就是細化的過程。求精與抽象的關系:互補性:抽象使設計者說明過程和數(shù)據(jù),但卻忽略低層的細節(jié);逐步求精則幫助設計者在設計過程中逐步揭示出低層的細節(jié)。10信息隱藏與局部化定義:劃分模塊時,使得一個模塊內(nèi)包含的信息(過程和數(shù)據(jù))對于不需要這些信息的模塊來說,是不能訪問的。即隱藏每個模塊所包含的私有信息。
所謂局部化是指把一些關系密切的軟件元素物理地放得彼此靠近。局部化有助于實現(xiàn)信息隱藏。應用:在模塊中,隱藏的是模塊的實現(xiàn)細節(jié);模塊之間的交互是為了完成系統(tǒng)功能而必須交換的信息。優(yōu)點:易修改。11模塊獨立(一)定義:是指每個模塊完成一個相對獨立的特定子功能,并且和其他模塊之間的關系很簡單。優(yōu)點:容易設計和開發(fā)。功能分割相對獨立,可以簡化接口,并且便于分工合作開發(fā)。獨立的模塊比較容易測試和維護。度量標準:耦合:衡量不同模塊彼此間互相依賴(連接)的緊密程度。內(nèi)聚:衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。12模塊獨立(二):耦合分類數(shù)據(jù)耦合:兩個模塊間通過參數(shù)交換的信息僅是必須的數(shù)據(jù)。控制耦合:傳遞的交換信息中有控制信息,有時這種控制信息以數(shù)據(jù)的形式出現(xiàn)。特征耦合:整個數(shù)據(jù)結(jié)構作為參數(shù)傳遞而被調(diào)用的模塊只需要使用其中的一部分數(shù)據(jù)元素。即:被調(diào)用的模塊可以使用的數(shù)據(jù)多于它確實需要的數(shù)據(jù),這將導致對數(shù)據(jù)的訪問失去控制。公共環(huán)境耦合:兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境相互作用。公共環(huán)境可以是全程變量、共享的通信區(qū)、內(nèi)存的公共覆蓋區(qū)、存儲介質(zhì)上的文件、物理設備等。內(nèi)容耦合:下列情況之一一個模塊訪問另一個模塊的內(nèi)部數(shù)據(jù)一個模塊不通過正常入口而轉(zhuǎn)到另一個模塊的內(nèi)部兩個模塊有一部分程序代碼重疊一個模塊有多個入口(這意味著一個模塊有幾種功能)13模塊獨立(二)(續(xù))
耦合應用原則盡量使用數(shù)據(jù)耦合少用控制耦合和特征耦合限制公共環(huán)境耦合的范圍完全不用內(nèi)容耦合。14模塊獨立(三):內(nèi)聚低內(nèi)聚偶然內(nèi)聚:一個模塊完成一組任務,這些任務間即使存在關系,關系也是很松散的。邏輯內(nèi)聚:一個模塊完成的任務在邏輯上是相同或相似的。時間內(nèi)聚:一個模塊包含的任務必須在同一段時間內(nèi)執(zhí)行。中內(nèi)聚過程內(nèi)聚:模塊內(nèi)的處理元素是相關的,并且必須以特定的次序執(zhí)行。通信內(nèi)聚:模塊中所有元素都使用同一個輸入數(shù)據(jù)和(或)產(chǎn)生同一個輸出數(shù)據(jù)。高內(nèi)聚順序內(nèi)聚:模塊內(nèi)的處理元素和同一個功能密切相關,而且這些處理必須順序執(zhí)行,即:一個處理元素的輸出數(shù)據(jù)作為下一個處理元素的輸入數(shù)據(jù)。功能內(nèi)聚:模塊內(nèi)所有處理元素屬于一個整體,完成一個單一的功能。15模塊獨立(三):內(nèi)聚(續(xù))內(nèi)聚的優(yōu)劣評分功能內(nèi)聚 10分 時間內(nèi)聚 3分順序內(nèi)聚 9分 邏輯內(nèi)聚 1分通信內(nèi)聚 7分 偶然內(nèi)聚 0分過程內(nèi)聚 5分應用原則設計時不必精確確定內(nèi)聚的級別,力爭做到高內(nèi)聚。辨認低內(nèi)聚的模塊,通過修改設計提高模塊的內(nèi)聚程度,降低模塊間的耦合程度,以獲得較高的模塊獨立性。內(nèi)聚與耦合的關系模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合是模塊化設計的有力工具實踐表明內(nèi)聚比耦合更重要165.3啟發(fā)規(guī)則(一)1.改進軟件結(jié)構提高模塊獨立性
例如:多個模塊共用的一個子功能可以獨立成一個模塊,由這些模塊調(diào)用;通過分解或合并模塊以減少控制信息的傳遞及對全程數(shù)據(jù)的引用,并且降低接口的復雜程度。2.模塊規(guī)模應該適中模塊的規(guī)模不應過大,不超過60行語句為宜。過大的模塊通常是分解不充分;進一步分解必須符合問題結(jié)構,并且分解后不應該降低模塊獨立性。過小的模塊開銷可能大于有效操作,而且模塊數(shù)目過多將使系統(tǒng)接口復雜。175.3啟發(fā)規(guī)則(二)3.深度、寬度、扇入、扇出應適當
深度:表示軟件結(jié)構中控制的層數(shù),能粗略地標志一個系統(tǒng)的大小和復雜程度。寬度:軟件結(jié)構內(nèi)同一層次上的模塊總數(shù)的最大值。扇出:一個模塊直接調(diào)用的下級模塊數(shù)目扇入:一個模塊直接被調(diào)用的上級模塊數(shù)目。4.模塊的作用域應該在控制域之內(nèi)
模塊的作用域:模塊內(nèi)一個判定所影響到的所有模塊的集合。模塊的控制域:模塊本身以及所有直接或間接從屬于它的模塊的集合。設計原則:模塊的作用域不超出模塊的控制域。18圖5.2模塊的控制域與作用域195.3啟發(fā)規(guī)則(三)5.力爭降低模塊接口的復雜程度:仔細設計模塊接口,使得信息傳遞簡單,并且和模塊的功能一致。6.設計單入口單出口的模塊:防止模塊間的內(nèi)容耦合。7.模塊功能應該可以預測,同時防止模塊功能過于局限。20層次圖HIPO圖結(jié)構圖5.4描繪軟件結(jié)構的圖形化工具21圖5.3層次圖
層次圖用來描繪軟件的層次結(jié)構:一個矩形框代表一個模塊,方框間的連線表示調(diào)用關系。22圖5.4帶編號的層次圖(H圖)添加編號,最頂層除外。每個方框(模塊)對應一張IPO圖,描繪模塊的處理過程。23圖5.5結(jié)構圖的例子方框之間的箭頭或直線表示模塊的調(diào)用關系;帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息:箭頭尾部是空心圓表示傳遞的是數(shù)據(jù),實心圓表示傳遞的是控制信息。24
圖5.6選擇判定圖5.7模塊M循環(huán)調(diào)用模塊A、B、C25層次圖和結(jié)構圖的應用小結(jié)描繪軟件結(jié)構的圖形化工具。沒有嚴格表示模塊的調(diào)用次序。沒有指明什么時候調(diào)用下層模塊。即:沒有確定調(diào)用時機。只表明一個模塊調(diào)用哪些模塊,至于模塊內(nèi)還有沒有其他成分則完全沒有表示。層次圖通常用來描繪軟件結(jié)構的文檔;結(jié)構圖檢查設計的正確性和評價模塊的獨立性。26基于數(shù)據(jù)流圖描繪的數(shù)據(jù)信息流在系統(tǒng)中加工和流動情況,映射出軟件體系結(jié)構。信息流的類型:變換流事務流5.5面向數(shù)據(jù)流的設計方法27圖5.8變換流
信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。28圖5.9事務流數(shù)據(jù)(事務)沿輸入通路到達一個處理T,這個處理根據(jù)輸入數(shù)據(jù)的類型在若干個動作序列中選出一個來執(zhí)行。29圖5.10面向數(shù)據(jù)流方法的設計過程30總體設計階段的基本目的:用比較抽象概括的方式確定系統(tǒng)如何完成預定的任務,即:應該確定系統(tǒng)的物理配置方案,并且確定
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (新教材)2026年滬科版七年級上冊數(shù)學 1.1 正數(shù)和負數(shù) 課件
- DB46-T 614-2023 石油化工企業(yè)消防安全管理規(guī)范
- 2025年便攜式監(jiān)護設備采購協(xié)議
- 2025年白酒渠道代理合作合同
- 2025年AI驅(qū)動財稅申報:發(fā)票數(shù)據(jù)精準識別
- 第四單元 微專題 手拉手模型
- 大泡性視網(wǎng)膜脫離疑難病例討論課件
- 植保機械試題及答案詳解
- 2026 年中職景區(qū)服務與管理(景區(qū)運營管理)試題及答案
- 辦公家具租賃合同協(xié)議2025
- (完整文本版)日文履歷書(文本テンプレート)
- 國家開放大學《管理英語4》邊學邊練Unit 5-8(答案全)
- 時尚·魅力-大學生魅商修煉手冊智慧樹知到期末考試答案章節(jié)答案2024年南昌大學
- 《金牌店長培訓》課件
- 電工培訓觸電急救課件
- 宜昌市點軍區(qū)2023-2024學年七年級上學期期末數(shù)學綜合測試卷(含答案)
- 井下單項、零星工程管理制度模版
- 道路危險貨物運輸企業(yè)安全生產(chǎn)標準化評價實施細則
- ESD靜電防護檢測及管控標準
- 臥床病人的護理即翻身技巧課件
- 智能信報箱系統(tǒng)施工方案
評論
0/150
提交評論