第5章總體設(shè)計(jì)_第1頁(yè)
第5章總體設(shè)計(jì)_第2頁(yè)
第5章總體設(shè)計(jì)_第3頁(yè)
第5章總體設(shè)計(jì)_第4頁(yè)
第5章總體設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩115頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程第五章第五章 總體設(shè)計(jì)總體設(shè)計(jì)2 第五章總體設(shè)計(jì)5 . 1 設(shè)計(jì)過(guò)程設(shè)計(jì)過(guò)程 5 . 2 設(shè)計(jì)原理設(shè)計(jì)原理 5 . 3 啟發(fā)規(guī)則啟發(fā)規(guī)則 5 . 4 描繪軟件結(jié)構(gòu)的圖形工具描繪軟件結(jié)構(gòu)的圖形工具5 . 5 面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法 5 . 6 小結(jié)小結(jié)習(xí)題習(xí)題3 學(xué)習(xí)要求掌握:掌握: 1 、軟件設(shè)計(jì)過(guò)程中應(yīng)遵循的基本原理和相、軟件設(shè)計(jì)過(guò)程中應(yīng)遵循的基本原理和相關(guān)概念;關(guān)概念; 2 、描繪軟件結(jié)構(gòu)的圖形工具的運(yùn)用;、描繪軟件結(jié)構(gòu)的圖形工具的運(yùn)用; 3 、面向數(shù)據(jù)流設(shè)計(jì)方法概念;變換分析、面向數(shù)據(jù)流設(shè)計(jì)方法概念;變換分析、事務(wù)分析法過(guò)程和應(yīng)用。事務(wù)分析法過(guò)程和應(yīng)用。理解:理

2、解: 1 、典型的總體設(shè)計(jì)過(guò)程包括的步驟;、典型的總體設(shè)計(jì)過(guò)程包括的步驟; 2 、設(shè)計(jì)中的啟發(fā)式規(guī)則;、設(shè)計(jì)中的啟發(fā)式規(guī)則;4 重點(diǎn)和難點(diǎn)重點(diǎn)重點(diǎn):軟件設(shè)計(jì)過(guò)程中應(yīng)遵循的基本原理;軟件設(shè)計(jì)過(guò)程中應(yīng)遵循的基本原理;面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法難點(diǎn)難點(diǎn):變換分析、事務(wù)分析法的過(guò)程和應(yīng)用變換分析、事務(wù)分析法的過(guò)程和應(yīng)用5 軟件設(shè)計(jì)的目標(biāo)和任務(wù)軟件需求:解決軟件需求:解決“做什么做什么”軟件設(shè)計(jì):解決軟件設(shè)計(jì):解決“怎么做怎么做”u軟件設(shè)計(jì)的任務(wù)軟件設(shè)計(jì)的任務(wù):以軟件需求規(guī)格說(shuō)明書(shū)以軟件需求規(guī)格說(shuō)明書(shū)為依據(jù),著手實(shí)現(xiàn)軟件的需求,并將設(shè)計(jì)的為依據(jù),著手實(shí)現(xiàn)軟件的需求,并將設(shè)計(jì)的結(jié)果反映在結(jié)果

3、反映在“設(shè)計(jì)規(guī)格說(shuō)明書(shū)設(shè)計(jì)規(guī)格說(shuō)明書(shū)”文檔中。文檔中。u軟件設(shè)計(jì)的重要性軟件設(shè)計(jì)的重要性:是軟件開(kāi)發(fā)階段的第是軟件開(kāi)發(fā)階段的第一步,最終影響軟件實(shí)現(xiàn)的成敗和軟件維護(hù)一步,最終影響軟件實(shí)現(xiàn)的成敗和軟件維護(hù)的難易程度。的難易程度。6 軟件設(shè)計(jì)的兩個(gè)階段第一階段:概要設(shè)計(jì)(總體設(shè)計(jì))第一階段:概要設(shè)計(jì)(總體設(shè)計(jì))根據(jù)軟件需求,設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)根據(jù)軟件需求,設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),確定程序的組成模塊及模塊之間的相互構(gòu),確定程序的組成模塊及模塊之間的相互關(guān)系。關(guān)系?;卮鸹卮稹案爬ǖ卣f(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?概括地說(shuō),系統(tǒng)應(yīng)該如何實(shí)現(xiàn)?”。其重要性是:站在全局高度,從較抽象的層其重要性是:站在全局

4、高度,從較抽象的層次上分析對(duì)比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟次上分析對(duì)比多種可能的系統(tǒng)實(shí)現(xiàn)方案和軟件結(jié)構(gòu),從中選出最佳方案和最合理的軟件件結(jié)構(gòu),從中選出最佳方案和最合理的軟件結(jié)構(gòu),從而用較低成本開(kāi)發(fā)出較高質(zhì)量的軟結(jié)構(gòu),從而用較低成本開(kāi)發(fā)出較高質(zhì)量的軟件系統(tǒng)。件系統(tǒng)。7 軟件設(shè)計(jì)的兩個(gè)階段第二階段:詳細(xì)設(shè)計(jì)(過(guò)程設(shè)計(jì))第二階段:詳細(xì)設(shè)計(jì)(過(guò)程設(shè)計(jì))確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu);選定某種確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu);選定某種過(guò)程的表達(dá)形式來(lái)描述各種算法;產(chǎn)生精確過(guò)程的表達(dá)形式來(lái)描述各種算法;產(chǎn)生精確描述各模塊程序過(guò)程的詳細(xì)文檔,并進(jìn)行評(píng)描述各模塊程序過(guò)程的詳細(xì)文檔,并進(jìn)行評(píng)審。審。8 將需求分析摸型轉(zhuǎn)

5、換為軟件設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)以需求分析中得到的數(shù)據(jù)流圖軟件結(jié)構(gòu)設(shè)計(jì)以需求分析中得到的數(shù)據(jù)流圖為基礎(chǔ)而進(jìn)行。為基礎(chǔ)而進(jìn)行。9 SA與SD的關(guān)系10 第一個(gè)階段總體設(shè)計(jì)的任務(wù) 制定規(guī)范制定規(guī)范 設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)(簡(jiǎn)稱軟件結(jié)構(gòu))設(shè)計(jì)軟件系統(tǒng)結(jié)構(gòu)(簡(jiǎn)稱軟件結(jié)構(gòu)) 處理方式設(shè)計(jì)處理方式設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)及數(shù)據(jù)庫(kù)設(shè)計(jì) 可靠性設(shè)計(jì)可靠性設(shè)計(jì) 編寫(xiě)概要設(shè)計(jì)文檔編寫(xiě)概要設(shè)計(jì)文檔 概要設(shè)計(jì)評(píng)審概要設(shè)計(jì)評(píng)審11 制定規(guī)范為軟件開(kāi)發(fā)小組制定在進(jìn)行軟件設(shè)計(jì),應(yīng)該為軟件開(kāi)發(fā)小組制定在進(jìn)行軟件設(shè)計(jì),應(yīng)該共同遵守的標(biāo)準(zhǔn),以便協(xié)調(diào)組內(nèi)各員的工作。共同遵守的標(biāo)準(zhǔn),以便協(xié)調(diào)組內(nèi)各員的工作。12 軟件結(jié)構(gòu)設(shè)計(jì)包括:包括:l

6、將系統(tǒng)按功能劃分成模塊將系統(tǒng)按功能劃分成模塊l確定每個(gè)模塊的功能確定每個(gè)模塊的功能l確定模塊之間的調(diào)用關(guān)系確定模塊之間的調(diào)用關(guān)系l確定模塊之間的接口,即模塊之間傳遞的信息確定模塊之間的接口,即模塊之間傳遞的信息l評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量評(píng)價(jià)模塊結(jié)構(gòu)的質(zhì)量13 處理方式設(shè)計(jì)包括:包括:功能設(shè)計(jì):功能設(shè)計(jì):確定實(shí)現(xiàn)功能法,評(píng)估算法的性確定實(shí)現(xiàn)功能法,評(píng)估算法的性能能性能設(shè)計(jì):性能設(shè)計(jì):確定實(shí)現(xiàn)性能需求必須的算法和模確定實(shí)現(xiàn)性能需求必須的算法和模塊間的控制方式塊間的控制方式 功能分解功能分解 設(shè)計(jì)軟件結(jié)設(shè)計(jì)軟件結(jié)構(gòu)構(gòu) 設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù) 制定測(cè)試計(jì)制定測(cè)試計(jì)劃劃1 1)系統(tǒng)設(shè)計(jì)階段:確定系統(tǒng)的具體解決方

7、案;)系統(tǒng)設(shè)計(jì)階段:確定系統(tǒng)的具體解決方案; 設(shè)想供選擇的方案設(shè)想供選擇的方案 選取合理方案選取合理方案 推薦最佳方案推薦最佳方案2 2)結(jié)構(gòu)設(shè)計(jì)階段:確定軟件結(jié)構(gòu)。)結(jié)構(gòu)設(shè)計(jì)階段:確定軟件結(jié)構(gòu)。 書(shū)寫(xiě)文檔書(shū)寫(xiě)文檔 審查和復(fù)審審查和復(fù)審5.1 設(shè)計(jì)的過(guò)程15 5.1 設(shè)計(jì)的過(guò)程一一. .設(shè)想供選擇的方案設(shè)想供選擇的方案u從數(shù)據(jù)流圖與數(shù)據(jù)字典出發(fā),分析員自由分析比較從數(shù)據(jù)流圖與數(shù)據(jù)字典出發(fā),分析員自由分析比較不同的物理實(shí)現(xiàn)方案,并且力求從中選取最佳方案。不同的物理實(shí)現(xiàn)方案,并且力求從中選取最佳方案。u常用方法:自動(dòng)化邊界分組。常用方法:自動(dòng)化邊界分組。二二. .選取合理的方案選取合理的方案選取低

8、成本、中等成本和高成本三種方案;選取低成本、中等成本和高成本三種方案;結(jié)合問(wèn)題定義、可行性研究的結(jié)果、用戶意見(jiàn);結(jié)合問(wèn)題定義、可行性研究的結(jié)果、用戶意見(jiàn);為每一種方案都準(zhǔn)備四份材料:系統(tǒng)流程圖、組為每一種方案都準(zhǔn)備四份材料:系統(tǒng)流程圖、組成系統(tǒng)的物理元素清單、成本成系統(tǒng)的物理元素清單、成本/ /效益分析、實(shí)現(xiàn)這個(gè)效益分析、實(shí)現(xiàn)這個(gè)系統(tǒng)的進(jìn)度計(jì)劃。系統(tǒng)的進(jìn)度計(jì)劃。5.1 設(shè)計(jì)的過(guò)程三三. .推薦最佳方案推薦最佳方案由用戶、技術(shù)專家和部門(mén)負(fù)責(zé)人進(jìn)行嚴(yán)格審查;由用戶、技術(shù)專家和部門(mén)負(fù)責(zé)人進(jìn)行嚴(yán)格審查;推薦一個(gè)最佳的方案,并為其指定詳細(xì)的實(shí)現(xiàn)計(jì)劃。推薦一個(gè)最佳的方案,并為其指定詳細(xì)的實(shí)現(xiàn)計(jì)劃。四四.

9、.功能分解功能分解結(jié)合算法對(duì)數(shù)據(jù)流圖中的處理進(jìn)一步分解和細(xì)化。結(jié)合算法對(duì)數(shù)據(jù)流圖中的處理進(jìn)一步分解和細(xì)化。分解的原則是:分解的原則是:分解后的功能比較簡(jiǎn)單分解后的功能比較簡(jiǎn)單(實(shí)現(xiàn)實(shí)現(xiàn));對(duì)大多數(shù)程序員來(lái)說(shuō)都是易懂的;對(duì)大多數(shù)程序員來(lái)說(shuō)都是易懂的;五五. .設(shè)計(jì)軟件結(jié)構(gòu)設(shè)計(jì)軟件結(jié)構(gòu)可以直接從數(shù)據(jù)流圖映射出軟件的結(jié)構(gòu)。可以直接從數(shù)據(jù)流圖映射出軟件的結(jié)構(gòu)。把分解得到的軟件模塊按照調(diào)用關(guān)系組織成良好的層把分解得到的軟件模塊按照調(diào)用關(guān)系組織成良好的層次結(jié)構(gòu),最上層模塊完成完整功能,最下層模塊完成次結(jié)構(gòu),最上層模塊完成完整功能,最下層模塊完成最具體功能。最具體功能。六六. .數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)( (如

10、果需要如果需要) )七七. .制定測(cè)試計(jì)劃制定測(cè)試計(jì)劃在設(shè)計(jì)時(shí)提高軟件的可測(cè)試性;在設(shè)計(jì)時(shí)提高軟件的可測(cè)試性;八八. .書(shū)寫(xiě)文檔書(shū)寫(xiě)文檔系統(tǒng)說(shuō)明:系統(tǒng)組成、最佳解決方案和模塊的描述;系統(tǒng)說(shuō)明:系統(tǒng)組成、最佳解決方案和模塊的描述;用戶手冊(cè):修改需求分析階段產(chǎn)生的初步用戶手冊(cè);用戶手冊(cè):修改需求分析階段產(chǎn)生的初步用戶手冊(cè);測(cè)試計(jì)劃:測(cè)試策略,測(cè)試方案,預(yù)期的測(cè)試結(jié)果,測(cè)試計(jì)劃:測(cè)試策略,測(cè)試方案,預(yù)期的測(cè)試結(jié)果,測(cè)試進(jìn)度等;測(cè)試進(jìn)度等;詳細(xì)的實(shí)現(xiàn)計(jì)劃詳細(xì)的實(shí)現(xiàn)計(jì)劃數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果:數(shù)據(jù)庫(kù)的邏輯、物理模型。數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)果:數(shù)據(jù)庫(kù)的邏輯、物理模型。記錄總體設(shè)計(jì)的結(jié)果:記錄總體設(shè)計(jì)的結(jié)果:九九. .審查和

11、復(fù)查審查和復(fù)查技術(shù)專家對(duì)總體設(shè)計(jì)結(jié)果嚴(yán)格審查;技術(shù)專家對(duì)總體設(shè)計(jì)結(jié)果嚴(yán)格審查;使用部門(mén)負(fù)責(zé)人對(duì)總體設(shè)計(jì)結(jié)果嚴(yán)格復(fù)查。使用部門(mén)負(fù)責(zé)人對(duì)總體設(shè)計(jì)結(jié)果嚴(yán)格復(fù)查。5.2 軟件設(shè)計(jì)的原理前一頁(yè)主要內(nèi)容模塊化模塊化 抽象抽象 逐步求精逐步求精信息隱蔽和局部化信息隱蔽和局部化模塊獨(dú)立模塊獨(dú)立 21 5 . 2 . 1 模塊化(Modularity ) 什么是模塊和模塊化思想?什么是模塊和模塊化思想?采取自頂向下的方式,逐層把軟件系統(tǒng)劃分采取自頂向下的方式,逐層把軟件系統(tǒng)劃分成若干可單獨(dú)命名和可編址的部分成若干可單獨(dú)命名和可編址的部分 “ 模塊模塊” 每個(gè)模塊完成一個(gè)特定的子功能;所有模塊每個(gè)模塊完成一個(gè)特定

12、的子功能;所有模塊按某種方法組成一個(gè)整體,完成整個(gè)系統(tǒng)所按某種方法組成一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。要求的功能。軟件系統(tǒng)就是通過(guò)這些模塊的組合來(lái)實(shí)現(xiàn)。軟件系統(tǒng)就是通過(guò)這些模塊的組合來(lái)實(shí)現(xiàn)。22 模塊化的優(yōu)點(diǎn)模塊化是軟件解決復(fù)雜問(wèn)題所具備的手段,模塊化是軟件解決復(fù)雜問(wèn)題所具備的手段,可降低軟件復(fù)雜性,減少開(kāi)發(fā)工作量,從而可降低軟件復(fù)雜性,減少開(kāi)發(fā)工作量,從而降低開(kāi)發(fā)成本,提高軟件生產(chǎn)率,是模塊化降低開(kāi)發(fā)成本,提高軟件生產(chǎn)率,是模塊化的依據(jù)。的依據(jù)。23 模塊化與軟件成本的關(guān)系接口接口24 模塊的基本屬性接口:接口:指模塊的輸入與輸出。指模塊的輸入與輸出。功能:功能:指模塊實(shí)現(xiàn)什么功能。指模

13、塊實(shí)現(xiàn)什么功能。模塊化好處模塊化好處:l模塊化使軟件容易測(cè)試和調(diào)試,因而有助模塊化使軟件容易測(cè)試和調(diào)試,因而有助提高軟件的可靠性。提高軟件的可靠性。l模塊化能提高軟件的可修改性。模塊化能提高軟件的可修改性。l模塊化有助于軟件開(kāi)發(fā)工程的組織管理。模塊化有助于軟件開(kāi)發(fā)工程的組織管理。25 5.2.2 抽象( Abstraction ) 什么是抽象?什么是抽象? 認(rèn)識(shí)復(fù)雜事物和現(xiàn)象時(shí),抽出事物本質(zhì)的認(rèn)識(shí)復(fù)雜事物和現(xiàn)象時(shí),抽出事物本質(zhì)的共同特性而暫不考慮它們的細(xì)節(jié)。共同特性而暫不考慮它們的細(xì)節(jié)。 軟件開(kāi)發(fā)中的抽象軟件開(kāi)發(fā)中的抽象 過(guò)程的抽象過(guò)程的抽象 數(shù)據(jù)的抽象數(shù)據(jù)的抽象26 抽象軟件開(kāi)發(fā)實(shí)際上就是一

14、個(gè)從軟件開(kāi)發(fā)實(shí)際上就是一個(gè)從高層次抽象高層次抽象到到低層次抽象低層次抽象逐步過(guò)渡的過(guò)程。逐步過(guò)渡的過(guò)程。軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次:軟件系統(tǒng)進(jìn)行模塊設(shè)計(jì)時(shí),可有不同的抽象層次:最高的抽象層次上,可以用面向問(wèn)題的語(yǔ)言,概括地最高的抽象層次上,可以用面向問(wèn)題的語(yǔ)言,概括地描述問(wèn)題的解法;描述問(wèn)題的解法;較低的抽象層次上,可以用面向問(wèn)題與面向?qū)崿F(xiàn)相結(jié)較低的抽象層次上,可以用面向問(wèn)題與面向?qū)崿F(xiàn)相結(jié)合的術(shù)語(yǔ)進(jìn)行描述;合的術(shù)語(yǔ)進(jìn)行描述;最低的抽象層次上,可以用直接實(shí)現(xiàn)的方式加以敘述最低的抽象層次上,可以用直接實(shí)現(xiàn)的方式加以敘述。一個(gè)復(fù)雜的系統(tǒng)先用一些高級(jí)的抽象概念構(gòu)造和理解,一個(gè)復(fù)雜的系統(tǒng)

15、先用一些高級(jí)的抽象概念構(gòu)造和理解,這些高級(jí)概念又用較低級(jí)的概念構(gòu)造和理解,如此進(jìn)這些高級(jí)概念又用較低級(jí)的概念構(gòu)造和理解,如此進(jìn)行下去,直到具體元素。行下去,直到具體元素。27 5 . 2. 3 逐步求精逐步求精:逐步求精:為了能集中精力解決主要問(wèn)題而為了能集中精力解決主要問(wèn)題而盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。盡量推遲對(duì)問(wèn)題細(xì)節(jié)的考慮。可把逐步求精看作是一項(xiàng)把一個(gè)時(shí)期內(nèi)必須可把逐步求精看作是一項(xiàng)把一個(gè)時(shí)期內(nèi)必須解決的種種問(wèn)題解決的種種問(wèn)題按優(yōu)先級(jí)排序按優(yōu)先級(jí)排序的技術(shù)。的技術(shù)。逐步求精是一種逐步求精是一種自頂向下自頂向下的設(shè)計(jì)策略,按這的設(shè)計(jì)策略,按這種設(shè)計(jì)策略,程序的體系結(jié)構(gòu)是通過(guò)逐步精種設(shè)計(jì)策略,

16、程序的體系結(jié)構(gòu)是通過(guò)逐步精化處理過(guò)程的層次而設(shè)計(jì)出來(lái)的?;幚磉^(guò)程的層次而設(shè)計(jì)出來(lái)的。28 自頂向下,逐步求精的基本思想l將功能、信息的說(shuō)明分為多個(gè)層次,將功能、信息的說(shuō)明分為多個(gè)層次,最高最高層層也最抽象也最抽象 僅僅只是僅僅只是概念性概念性地描述功能或地描述功能或信息,信息,不不提供功能的內(nèi)部工作情況或信息的提供功能的內(nèi)部工作情況或信息的內(nèi)部結(jié)構(gòu);內(nèi)部結(jié)構(gòu);l設(shè)計(jì)者從最高層開(kāi)始,仔細(xì)推敲,進(jìn)行功設(shè)計(jì)者從最高層開(kāi)始,仔細(xì)推敲,進(jìn)行功能和信息的細(xì)化,給出能和信息的細(xì)化,給出下下層實(shí)現(xiàn)的細(xì)節(jié)層實(shí)現(xiàn)的細(xì)節(jié);l隨著每個(gè)后續(xù)細(xì)化逐步的完成,提供越來(lái)隨著每個(gè)后續(xù)細(xì)化逐步的完成,提供越來(lái)越多的細(xì)節(jié),最終得

17、出用程序設(shè)計(jì)語(yǔ)言表達(dá)越多的細(xì)節(jié),最終得出用程序設(shè)計(jì)語(yǔ)言表達(dá)的程序。的程序。29 結(jié)合了模塊化和逐步細(xì)化思想建立的軟件結(jié)構(gòu)圖30 5.2.4 信息隱藏和局部化信息隱藏原理:信息隱藏原理:模塊中內(nèi)包含的信息模塊中內(nèi)包含的信息( (過(guò)程過(guò)程和數(shù)據(jù)和數(shù)據(jù)) )不允許其它不需要這些信息的模塊訪不允許其它不需要這些信息的模塊訪問(wèn)。問(wèn)。信息局部化:信息局部化:把一些關(guān)系密切的軟件元素物把一些關(guān)系密切的軟件元素物理地放得彼此靠近。理地放得彼此靠近。信息局部化有利于信息隱藏。信息局部化有利于信息隱藏。31 5. 2 . 5 模塊獨(dú)立1 、什么是模塊獨(dú)立性、什么是模塊獨(dú)立性( module independenc

18、e)模塊只完成系統(tǒng)要求的相對(duì)獨(dú)立的功能模塊只完成系統(tǒng)要求的相對(duì)獨(dú)立的功能l符合信息隱蔽原則符合信息隱蔽原則l模塊間關(guān)聯(lián)和依賴程度盡量小模塊間關(guān)聯(lián)和依賴程度盡量小 2 、模塊獨(dú)立的優(yōu)點(diǎn)、模塊獨(dú)立的優(yōu)點(diǎn)獨(dú)立的模塊比較容易理解和開(kāi)發(fā);獨(dú)立的模塊比較容易理解和開(kāi)發(fā);獨(dú)立的模塊比較容易測(cè)試和維護(hù);獨(dú)立的模塊比較容易測(cè)試和維護(hù);l模塊獨(dú)立與否是評(píng)價(jià)一個(gè)設(shè)計(jì)好壞的重要尺模塊獨(dú)立與否是評(píng)價(jià)一個(gè)設(shè)計(jì)好壞的重要尺度。度。32 3 、衡量模塊獨(dú)立性的兩個(gè)準(zhǔn)則 耦合性(耦合性( coupling ) 內(nèi)聚性(內(nèi)聚性( cohesion )1 1、耦合、耦合 耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度耦合是對(duì)一個(gè)軟件結(jié)

19、構(gòu)內(nèi)不同模塊之間互連程度(相互相互依賴程度依賴程度)的度量的度量 。在軟件設(shè)計(jì)時(shí)應(yīng)該在軟件設(shè)計(jì)時(shí)應(yīng)該追求松散耦合追求松散耦合的的系統(tǒng)。系統(tǒng)。耦合的強(qiáng)度依賴于以下因素:耦合的強(qiáng)度依賴于以下因素:模塊間引用模塊間引用(調(diào)用調(diào)用);模塊間傳遞的數(shù)據(jù)量;模塊間傳遞的數(shù)據(jù)量;模塊間施加的控制數(shù)量;模塊間施加的控制數(shù)量;模塊間接口復(fù)雜度。模塊間接口復(fù)雜度。 耦合性( coupling )34 耦合性( coupling )設(shè)計(jì)目標(biāo):低耦合設(shè)計(jì)目標(biāo):低耦合35 a 無(wú)直接耦合兩個(gè)模塊沒(méi)有直接關(guān)系,模塊獨(dú)立性最強(qiáng)。兩個(gè)模塊沒(méi)有直接關(guān)系,模塊獨(dú)立性最強(qiáng)。36 b 數(shù)據(jù)耦合屬松散耦合。一模塊訪問(wèn)另一模塊時(shí),通過(guò)屬

20、松散耦合。一模塊訪問(wèn)另一模塊時(shí),通過(guò)數(shù)據(jù)參數(shù)交換輸入、輸出信息。數(shù)據(jù)參數(shù)交換輸入、輸出信息。37 c 控制藕合模塊之間傳遞的是控制信息(如開(kāi)關(guān)、標(biāo)志、模塊之間傳遞的是控制信息(如開(kāi)關(guān)、標(biāo)志、名字等),名字等),控制被調(diào)用模塊的內(nèi)部邏輯控制被調(diào)用模塊的內(nèi)部邏輯。38 去除模塊間控制耦合的方法控制藕合增加了理解和編程的復(fù)雜性,調(diào)用控制藕合增加了理解和編程的復(fù)雜性,調(diào)用模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了模塊必須知道被調(diào)模塊的內(nèi)部邏輯,增加了相互依賴。解決方法:相互依賴。解決方法: ( 1 )將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中進(jìn)行塊中進(jìn)行 ( 2 )被調(diào)用模塊分

21、解成若干單一功能模塊)被調(diào)用模塊分解成若干單一功能模塊39 改控制耦合為數(shù)據(jù)耦合舉例40 特征耦合兩個(gè)模塊通過(guò)傳遞兩個(gè)模塊通過(guò)傳遞數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)加以聯(lián)系,或都加以聯(lián)系,或都與一個(gè)與一個(gè)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個(gè)模塊間有關(guān)系,則稱這兩個(gè)模塊間存在特征耦合。存在特征耦合??赡艹霈F(xiàn)的情況:當(dāng)把可能出現(xiàn)的情況:當(dāng)把整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參整個(gè)數(shù)據(jù)結(jié)構(gòu)作為參數(shù)數(shù)傳遞時(shí),被調(diào)用的模塊雖然只需要使用其傳遞時(shí),被調(diào)用的模塊雖然只需要使用其中的一部分?jǐn)?shù)據(jù)元素,但實(shí)際可以使用的數(shù)中的一部分?jǐn)?shù)據(jù)元素,但實(shí)際可以使用的數(shù)據(jù)多于它真正需要的數(shù)據(jù),這將導(dǎo)致對(duì)數(shù)據(jù)據(jù)多于它真正需要的數(shù)據(jù),這將導(dǎo)致對(duì)數(shù)據(jù)訪問(wèn)失去控制,訪問(wèn)

22、失去控制,41 特征耦合舉例說(shuō)明:說(shuō)明: l “住戶情況住戶情況”是一個(gè)是一個(gè)數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此,圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān)。數(shù)據(jù)結(jié)構(gòu)有關(guān)。 l “計(jì)算水費(fèi)計(jì)算水費(fèi)”和和“計(jì)算電費(fèi)計(jì)算電費(fèi)”本無(wú)關(guān),由于引用本無(wú)關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶標(biāo)記偶合合。42 將特征耦合修改為數(shù)據(jù)耦合舉例43 公共環(huán)境耦合一組模塊引用同一個(gè)公用數(shù)據(jù)區(qū)(也稱全局一組模塊引用同一個(gè)公用數(shù)據(jù)區(qū)(也稱全局?jǐn)?shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。數(shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境)。公共數(shù)據(jù)區(qū)公共數(shù)據(jù)區(qū)指:指:l全局?jǐn)?shù)據(jù)結(jié)構(gòu)。全局?jǐn)?shù)據(jù)結(jié)構(gòu)。l共享通訊區(qū)。共享通訊區(qū)。l內(nèi)存公共

23、覆蓋區(qū)等內(nèi)存公共覆蓋區(qū)等44 公共環(huán)境耦合舉例模塊模塊 A 、 B 、 C 間存在錯(cuò)綜復(fù)雜的聯(lián)系間存在錯(cuò)綜復(fù)雜的聯(lián)系45 公共耦合存在的問(wèn)題( 1 )軟件可理解性降低)軟件可理解性降低 ( 2 )診斷錯(cuò)誤困難)診斷錯(cuò)誤困難 ( 3 )軟件可維護(hù)性差)軟件可維護(hù)性差 ( 4 )軟件可靠性差)軟件可靠性差46 內(nèi)容耦合有下列情況之一的。是最不好的耦合形式!有下列情況之一的。是最不好的耦合形式!47 模塊間耦合強(qiáng)度48 耦合強(qiáng)度依賴的因素:l一模塊對(duì)另一模塊的引用一模塊對(duì)另一模塊的引用l一模塊向另一模塊傳遞的數(shù)據(jù)量一模塊向另一模塊傳遞的數(shù)據(jù)量l一模塊施加到另一模塊的控制的數(shù)量一模塊施加到另一模塊的控

24、制的數(shù)量l模塊間接口的復(fù)雜程度模塊間接口的復(fù)雜程度49 降低耦合度的設(shè)計(jì)原則1、根據(jù)問(wèn)題特點(diǎn),選擇合適的、根據(jù)問(wèn)題特點(diǎn),選擇合適的 耦合類型。耦合類型。 盡量使用數(shù)據(jù)耦合,少用控制耦合和外部耦盡量使用數(shù)據(jù)耦合,少用控制耦合和外部耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合,限制公共耦合的范圍,完全不用內(nèi)容耦合合2 、降低模塊接口的復(fù)雜性。、降低模塊接口的復(fù)雜性。減少每個(gè)模塊的參數(shù)個(gè)數(shù);盡量使用標(biāo)準(zhǔn)過(guò)減少每個(gè)模塊的參數(shù)個(gè)數(shù);盡量使用標(biāo)準(zhǔn)過(guò)程調(diào)用方式,少用直接引用的方式;傳送的程調(diào)用方式,少用直接引用的方式;傳送的信息以標(biāo)準(zhǔn)、直接的方式提供。信息以標(biāo)準(zhǔn)、直接的方式提供。 3 、把模塊的通信信息放在緩

25、沖區(qū)中。、把模塊的通信信息放在緩沖區(qū)中。50 內(nèi)聚性( cohesion )又稱塊內(nèi)聯(lián)系。指一個(gè)模塊內(nèi)部各個(gè)元素彼又稱塊內(nèi)聯(lián)系。指一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度的度量。此結(jié)合的緊密程度的度量。若一個(gè)模塊內(nèi)各元素(語(yǔ)句之間、程序段之若一個(gè)模塊內(nèi)各元素(語(yǔ)句之間、程序段之間)聯(lián)系的越緊密,則它的內(nèi)聚性就越間)聯(lián)系的越緊密,則它的內(nèi)聚性就越設(shè)計(jì)目標(biāo):高內(nèi)聚設(shè)計(jì)目標(biāo):高內(nèi)聚51 巧合內(nèi)聚(偶然內(nèi)聚)塊內(nèi)各組成成份在功能上是互不相關(guān)的。塊內(nèi)各組成成份在功能上是互不相關(guān)的。模塊模塊 M 中的三個(gè)語(yǔ)句沒(méi)有任何聯(lián)系。中的三個(gè)語(yǔ)句沒(méi)有任何聯(lián)系。缺點(diǎn):可理解性差,可修改性差缺點(diǎn):可理解性差,可修改性差52

26、 邏輯內(nèi)聚把幾種相關(guān)功能(邏輯上相似的功能)組合把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。定執(zhí)行哪種功能。53 邏輯內(nèi)聚模塊54 時(shí)間內(nèi)聚(經(jīng)典內(nèi)聚)模塊完成的功能必須在模塊完成的功能必須在同一時(shí)間同一時(shí)間內(nèi)執(zhí)行,這內(nèi)執(zhí)行,這些功能只因時(shí)間因素關(guān)聯(lián)在一起。些功能只因時(shí)間因素關(guān)聯(lián)在一起。例:例:初始化系統(tǒng)模塊初始化系統(tǒng)模塊系統(tǒng)結(jié)束模塊、系統(tǒng)結(jié)束模塊、 緊急故障處理模塊等緊急故障處理模塊等55 過(guò)程內(nèi)聚(順序性組合)模塊內(nèi)各處理成分相關(guān),且必須以特定次序模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行。執(zhí)行。56 通

27、信內(nèi)聚模塊內(nèi)各部分使用模塊內(nèi)各部分使用相同的輸入數(shù)據(jù)相同的輸入數(shù)據(jù),或產(chǎn)生,或產(chǎn)生相同的輸出結(jié)果相同的輸出結(jié)果57 順序內(nèi)聚一個(gè)模塊內(nèi)的成分和同一個(gè)功能密切相關(guān),一個(gè)模塊內(nèi)的成分和同一個(gè)功能密切相關(guān),而且這些處理必須順序執(zhí)行。而且這些處理必須順序執(zhí)行。58 功能內(nèi)聚模塊僅包括為完成某個(gè)功能所必須的所有成模塊僅包括為完成某個(gè)功能所必須的所有成分。分。模塊所有成分共同模塊所有成分共同完成一個(gè)功能完成一個(gè)功能,缺一不可,缺一不可內(nèi)聚性最強(qiáng)內(nèi)聚性最強(qiáng)59 模塊間內(nèi)聚的類型60 總結(jié):耦合、內(nèi)聚與模塊獨(dú)立性關(guān)系l 耦合與內(nèi)聚都是耦合與內(nèi)聚都是模塊獨(dú)立性模塊獨(dú)立性的定性標(biāo)準(zhǔn),的定性標(biāo)準(zhǔn),都反映模塊獨(dú)立性的

28、良好程度。都反映模塊獨(dú)立性的良好程度。l 但耦合是直接的主導(dǎo)因素,內(nèi)聚則輔助耦但耦合是直接的主導(dǎo)因素,內(nèi)聚則輔助耦合共同對(duì)模塊獨(dú)立性進(jìn)行衡量。合共同對(duì)模塊獨(dú)立性進(jìn)行衡量。l 設(shè)計(jì)要求:低耦合,高內(nèi)聚設(shè)計(jì)要求:低耦合,高內(nèi)聚61 5 .3 啟發(fā)規(guī)則改進(jìn)原則改進(jìn)原則 :高內(nèi)聚、低耦合:高內(nèi)聚、低耦合 改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性 模塊規(guī)模適中模塊規(guī)模適中 深度、寬度、扇出和扇入適中深度、寬度、扇出和扇入適中 將模塊的影響限制在控制范圍內(nèi)將模塊的影響限制在控制范圍內(nèi) 降低模塊接口的復(fù)雜性降低模塊接口的復(fù)雜性 設(shè)計(jì)單入口單出口的模塊設(shè)計(jì)單入口單出口的模塊 模塊功能可預(yù)測(cè)模塊

29、功能可預(yù)測(cè)62 改進(jìn)軟件結(jié)構(gòu),提高模塊獨(dú)立性通過(guò)模塊分解或合并,降低耦合提高內(nèi)聚通過(guò)模塊分解或合并,降低耦合提高內(nèi)聚內(nèi)聚程度低:分解;內(nèi)聚程度低:分解;耦合程度高:合并。耦合程度高:合并。減少控制信息、全局?jǐn)?shù)據(jù),降低接口的復(fù)雜度。減少控制信息、全局?jǐn)?shù)據(jù),降低接口的復(fù)雜度。63 模塊規(guī)模適中不要過(guò)大,規(guī)??刂圃诓灰^(guò)大,規(guī)??刂圃?60 60 行語(yǔ)句;行語(yǔ)句;不要過(guò)小,否則接口復(fù)雜,通信開(kāi)銷大;不要過(guò)小,否則接口復(fù)雜,通信開(kāi)銷大;合并到上層模塊合并到上層模塊64 深度、寬度、扇出和扇入適中軟件結(jié)構(gòu)度量術(shù)語(yǔ)軟件結(jié)構(gòu)度量術(shù)語(yǔ)深度:軟件結(jié)構(gòu)中分層的層數(shù),表示細(xì)化程度;深度:軟件結(jié)構(gòu)中分層的層數(shù),表示細(xì)

30、化程度;寬度:模塊數(shù)最多層的模塊數(shù),表示系統(tǒng)復(fù)雜度;寬度:模塊數(shù)最多層的模塊數(shù),表示系統(tǒng)復(fù)雜度;扇出扇出(fan-out) :一個(gè)模塊直接調(diào)用:一個(gè)模塊直接調(diào)用/控制的下層模塊數(shù),控制的下層模塊數(shù),表示模塊復(fù)雜程度。要求表示模塊復(fù)雜程度。要求3 fan-out 9扇入扇入(fan-in) :直接調(diào)用該模塊的上層模塊數(shù),在不破壞:直接調(diào)用該模塊的上層模塊數(shù),在不破壞獨(dú)立性的前提下,扇入大比較好。獨(dú)立性的前提下,扇入大比較好。好的軟件結(jié)構(gòu):頂層扇出比較高,中間層扇出較少,好的軟件結(jié)構(gòu):頂層扇出比較高,中間層扇出較少,底層模塊有較高扇入。底層模塊有較高扇入。66 例:避免平鋪結(jié)構(gòu)67 增加中間層降低

31、扇出68 作用域作用域是指受模塊內(nèi)一個(gè)判定影響的所有模塊的集是指受模塊內(nèi)一個(gè)判定影響的所有模塊的集合合控制域控制域是指這個(gè)模塊本身及其所有的下屬模塊的集是指這個(gè)模塊本身及其所有的下屬模塊的集合合 將模塊的影響限制在控制范圍內(nèi)1)把判定上移或下移;)把判定上移或下移;2)把不在控制域內(nèi)的模塊移動(dòng)到控制域內(nèi)。)把不在控制域內(nèi)的模塊移動(dòng)到控制域內(nèi)。改進(jìn)方法:改進(jìn)方法:69 模塊模塊 C 的控制范圍:的控制范圍: C 、 D 、 E 、 F 、 G 、 H 。如果模塊如果模塊 C 作出的作出的決策影響了模塊決策影響了模塊 L ,L超出了超出了 C 的控制的控制范圍范圍使任一模塊的作用域在其控制域內(nèi)70

32、 降低模塊接口的復(fù)雜性接口傳遞信息應(yīng)簡(jiǎn)單且和模塊功能一致。接口傳遞信息應(yīng)簡(jiǎn)單且和模塊功能一致。模塊的接口要簡(jiǎn)單、清晰、含義明確,便于模塊的接口要簡(jiǎn)單、清晰、含義明確,便于理解,易于實(shí)現(xiàn)、測(cè)試與維護(hù)。理解,易于實(shí)現(xiàn)、測(cè)試與維護(hù)。71 設(shè)計(jì)單入口單出口的模塊不要使模塊間出現(xiàn)內(nèi)容耦合。不要使模塊間出現(xiàn)內(nèi)容耦合。72 模塊功能可預(yù)測(cè)如果一個(gè)模塊可以當(dāng)作一個(gè)黑盒子,相同輸如果一個(gè)模塊可以當(dāng)作一個(gè)黑盒子,相同輸入產(chǎn)生相同輸出,其功能為可預(yù)測(cè)的。入產(chǎn)生相同輸出,其功能為可預(yù)測(cè)的。若模塊帶有內(nèi)部若模塊帶有內(nèi)部“存儲(chǔ)器存儲(chǔ)器”,其功能可能是,其功能可能是不可預(yù)測(cè)的,難理解、難測(cè)試、難維護(hù)。不可預(yù)測(cè)的,難理解、難

33、測(cè)試、難維護(hù)。單一的模塊具有高內(nèi)聚。但模塊功能過(guò)分局單一的模塊具有高內(nèi)聚。但模塊功能過(guò)分局限,可使用范圍將過(guò)分狹窄,缺乏靈活性和限,可使用范圍將過(guò)分狹窄,缺乏靈活性和擴(kuò)充性。擴(kuò)充性。73 5 .4 描繪軟件結(jié)構(gòu)的圖形具 5 . 4 . 1 層次圖和層次圖和 HIPO 圖圖l 描述軟件的層次結(jié)構(gòu)。描述軟件的層次結(jié)構(gòu)。l 層次圖中,一個(gè)方框代表一個(gè)模塊,方框?qū)哟螆D中,一個(gè)方框代表一個(gè)模塊,方框間的連線表示調(diào)用關(guān)系。間的連線表示調(diào)用關(guān)系。 l HIPO 圖圖=層次圖層次圖 IPO 圖圖74 正文加工系統(tǒng)層次圖層次圖主控模塊75 酒店管理信息系統(tǒng)功能結(jié)構(gòu)圖76 5.4.2 結(jié)構(gòu)圖(SC Structu

34、re Chart)描繪程序結(jié)構(gòu),反映程序中模塊之間的層次調(diào)用關(guān)描繪程序結(jié)構(gòu),反映程序中模塊之間的層次調(diào)用關(guān)系和聯(lián)系。系和聯(lián)系。符 號(hào)名 稱說(shuō) 明模塊功能單元,注明名字與主要功能調(diào)用如果沒(méi)有二義性,可以用直線表示數(shù)據(jù)模塊間傳遞的數(shù)據(jù)信息控制信息模塊間傳遞的控制信息77 主要成分說(shuō)明:主要成分說(shuō)明:l一個(gè)方框表示一個(gè)一個(gè)方框表示一個(gè)模塊模塊;l一個(gè)模塊指向另一個(gè)模塊的箭頭或直線,表示前一個(gè)模塊指向另一個(gè)模塊的箭頭或直線,表示前一模塊對(duì)后一模塊的一模塊對(duì)后一模塊的調(diào)用調(diào)用;l調(diào)用直線邊的小箭頭,表示調(diào)用時(shí)從一個(gè)模塊傳調(diào)用直線邊的小箭頭,表示調(diào)用時(shí)從一個(gè)模塊傳給另一個(gè)模塊的給另一個(gè)模塊的數(shù)據(jù)數(shù)據(jù),也指

35、出了傳送方向。,也指出了傳送方向。78 SC 中的四種模塊從下屬模塊取從下屬模塊取得數(shù)據(jù),經(jīng)過(guò)得數(shù)據(jù),經(jīng)過(guò)處理,再傳入處理,再傳入上級(jí)模塊上級(jí)模塊從上級(jí)模塊從上級(jí)模塊獲得數(shù)據(jù),獲得數(shù)據(jù),經(jīng)過(guò)處理,經(jīng)過(guò)處理,再傳送給下再傳送給下屬模塊屬模塊加工模塊。加工模塊。從上級(jí)模塊從上級(jí)模塊獲得數(shù)據(jù),獲得數(shù)據(jù),經(jīng)過(guò)處理,經(jīng)過(guò)處理,轉(zhuǎn)換成其他轉(zhuǎn)換成其他形式,再送形式,再送回上級(jí)模塊?;厣霞?jí)模塊。對(duì)所有下屬模對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和塊進(jìn)行協(xié)調(diào)和管理的模塊管理的模塊79 結(jié)構(gòu)圖(SC)舉例80 SC中的選擇調(diào)用81 SC中的循環(huán)調(diào)用符 號(hào)名 稱說(shuō) 明傳入模塊從下屬模塊獲得數(shù)據(jù),處理后傳送給上級(jí)模塊傳出模塊從上級(jí)模

36、塊獲得數(shù)據(jù),處理后傳送給下屬模塊變換模塊從上級(jí)模塊獲得數(shù)據(jù),處理后送回上級(jí)模塊協(xié)調(diào)模塊在下屬模塊間協(xié)調(diào)數(shù)據(jù)選擇調(diào)用根據(jù)判定進(jìn)行選擇調(diào)用循環(huán)調(diào)用循環(huán)調(diào)用下屬模塊每個(gè)傳遞的數(shù)據(jù)是否必須?每個(gè)傳遞的數(shù)據(jù)是否必須?完成模塊功能所必須的數(shù)據(jù)是否都傳遞了?完成模塊功能所必須的數(shù)據(jù)是否都傳遞了?傳輸?shù)臄?shù)據(jù)是否只與單一的功能有關(guān)?傳輸?shù)臄?shù)據(jù)是否只與單一的功能有關(guān)?圖中模塊間的聯(lián)系是否容易解釋?圖中模塊間的聯(lián)系是否容易解釋?用于檢查設(shè)計(jì)的正確性和模塊獨(dú)立性。須檢查:用于檢查設(shè)計(jì)的正確性和模塊獨(dú)立性。須檢查:84 5 .5 面向數(shù)據(jù)流的設(shè)計(jì)方法5.5. 1 概念概念把信息流映射成軟件結(jié)構(gòu)把信息流映射成軟件結(jié)構(gòu),信

37、息流的類型決定信息流的類型決定了映射的方法了映射的方法,信息流可分為兩種類型信息流可分為兩種類型l 變換型流變換型流l 事務(wù)型流事務(wù)型流85 1.變換型數(shù)據(jù)流基本模型特點(diǎn):具有明確的傳入、變換(或稱主加工)特點(diǎn):具有明確的傳入、變換(或稱主加工)和傳出界面的和傳出界面的 DFD86 另一種表示圖87 變換型數(shù)據(jù)流舉例88 2.事務(wù)型數(shù)據(jù)流基本模型事務(wù)中心的任務(wù):事務(wù)中心的任務(wù):l 接受輸入數(shù)據(jù)(事務(wù))接受輸入數(shù)據(jù)(事務(wù))l 分析每個(gè)事務(wù)以確定它的類型。分析每個(gè)事務(wù)以確定它的類型。l 根據(jù)事務(wù)類型選取一條活動(dòng)通路。根據(jù)事務(wù)類型選取一條活動(dòng)通路。89 事務(wù)型數(shù)據(jù)流舉例90 針對(duì)兩種數(shù)據(jù)流的設(shè)計(jì)方法

38、91 系統(tǒng)結(jié)構(gòu)特征可歸納為兩種典型形式92 大型系統(tǒng)的 DFD 中,變換型和事務(wù)型往往共存93 5 .5 .2 變換分析例例1:有如下數(shù)據(jù)流圖:有如下數(shù)據(jù)流圖94 步驟步驟1:區(qū)分輸入、變換中心、輸出部分,在:區(qū)分輸入、變換中心、輸出部分,在 DFD 上標(biāo)明分界線上標(biāo)明分界線注意;所謂注意;所謂 “輸入輸入”、“ 輸出輸出”是站在整個(gè)系統(tǒng)的是站在整個(gè)系統(tǒng)的角度來(lái)看的,是整個(gè)系統(tǒng)的輸入、輸出部分角度來(lái)看的,是整個(gè)系統(tǒng)的輸入、輸出部分95 步驟2:第一級(jí)分解。設(shè)計(jì)頂層和第一層模塊96 第一級(jí)分解后 SC 的數(shù)據(jù)流97 步驟3:第二級(jí)分解。自頂向下分解 SC 各分支,設(shè)計(jì)出每個(gè)分支的中、下層模塊98 1 、傳入分支的分解 ( 1)99 1 、傳入分支的分解 (2)若有必要,繼若有必要,繼續(xù)分解。續(xù)分解。以以“輸入金額輸入金額”為例,可將此為例,可將此分支也看成一分支也看成一個(gè)變換型數(shù)據(jù)個(gè)變換型數(shù)據(jù)流流 得結(jié)構(gòu)得結(jié)構(gòu)圖:圖:100 繼續(xù)分解“金額校驗(yàn)”101 11、傳入分支的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論