軟件工程-第08章-面向數(shù)據(jù)流的設計方法課課件_第1頁
軟件工程-第08章-面向數(shù)據(jù)流的設計方法課課件_第2頁
軟件工程-第08章-面向數(shù)據(jù)流的設計方法課課件_第3頁
軟件工程-第08章-面向數(shù)據(jù)流的設計方法課課件_第4頁
軟件工程-第08章-面向數(shù)據(jù)流的設計方法課課件_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

軟件工程教材:主編曹哲高誠中國水利水電出版社教案:河北工業(yè)大學廊坊分院計算機系黃南川軟件工程教材:主編曹哲高誠教案:河北工業(yè)大學廊坊分院第8章 面向數(shù)據(jù)流的設計方法面向數(shù)據(jù)流的設計方法,即通常所說的結(jié)構(gòu)設計法(StructureDesign,簡稱SD方法),由Yourdon和Constantine等人于1874年提出的,與結(jié)構(gòu)化分析(SA)相銜接,根據(jù)對數(shù)據(jù)流的分析設計軟件結(jié)構(gòu)。本章所述技術用于軟件的概要設計描述,包括模塊、界面和數(shù)據(jù)結(jié)構(gòu)的定義,這是所有后續(xù)開發(fā)的基礎。SD方法對那些順序處理信息且不含層次數(shù)據(jù)結(jié)構(gòu)的系統(tǒng)最為有效,例如過程控制、復雜的數(shù)值分析過程、以及科學與工程方面的應用。當SD方法用于完全的數(shù)據(jù)處理時,即使系統(tǒng)中使用層次數(shù)據(jù)也同樣行之有效。軟件工程.第8章 面向數(shù)據(jù)流的設計方法面向數(shù)據(jù)流的設計方法,即通常所說28.1SD方法的設計過程和有關概念SD方法能方便地將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu),其過程分為五步:1.

確定信息流的類型;2.

劃定流界;3.

將數(shù)據(jù)流圖映射為程序結(jié)構(gòu);4.

提取層次控制結(jié)構(gòu);5.

通過設計復審和使用啟發(fā)式策略進一步精化所得到的結(jié)構(gòu)。第3步所用映射方法涉及信息流的類型。信息流分為變換流和事務流兩種類型。軟件工程.8.1SD方法的設計過程和有關概念SD方法能方便地將數(shù)據(jù)31)變換流變換流—在基本系統(tǒng)模型(即頂級數(shù)據(jù)流圖)中信息通常以“外部世界”所具有的形式進入系統(tǒng),經(jīng)過處理后又以這種形式離開系統(tǒng)。輸入流外部表示內(nèi)部表示信息時間信息流輸出流變換流軟件工程.1)變換流變換流—在基本系統(tǒng)模型(即頂級數(shù)據(jù)流圖)中信息41)變換流典型的變換流變換流的特點是:經(jīng)過變換B的數(shù)據(jù)流一部分先經(jīng)過變換C到達變換E,然后另一部分經(jīng)過變換D到達E;即C和D是順序結(jié)構(gòu)。ABCDEF軟件工程.1)變換流典型的變換流ABCDEF軟件工程.52)事務流事務流——單個數(shù)據(jù)項稱為事務(transaction)沿傳入路徑(也稱接受通道)進入系統(tǒng),由外部形式變換為內(nèi)部形式后到達事務中心,事務中心根據(jù)數(shù)據(jù)項計值結(jié)果從若干動作路徑中選定一條繼續(xù)執(zhí)行??梢娝且粋€選擇結(jié)構(gòu)。事務中心TB事務CA事務流軟件工程.2)事務流事務流——單個數(shù)據(jù)項稱為事務(transactio6圖面向數(shù)據(jù)流的設計精化數(shù)據(jù)流圖流的類型確定事務中心和各動作路徑確定輸入輸出流界映射為事務結(jié)構(gòu)映射為變換結(jié)構(gòu)提取控制結(jié)構(gòu)利用啟發(fā)式策略精化軟件結(jié)構(gòu)描述接口和全局數(shù)據(jù)結(jié)構(gòu)事務分析變換分析復審詳細設計通過“變換”“事務”軟件工程.圖面向數(shù)據(jù)流的設計精化數(shù)據(jù)流圖流的類型確定事務中心確定輸入輸78.2變換分析下面以“家庭保安系統(tǒng)”的傳感器監(jiān)測子系統(tǒng)為例說明變換分析的各個步驟。步驟一、復審基本系統(tǒng)模型基本系統(tǒng)模型指頂級DFD和所有由外部提供的信息。這一設計步驟是對系統(tǒng)規(guī)格說明書和軟件需求規(guī)格說明書進行評估。這兩個文檔描述軟件界面上信息的流程和結(jié)構(gòu)。軟件工程.8.2變換分析下面以“家庭保安系統(tǒng)”的傳感器監(jiān)測子系統(tǒng)為8“家庭保安系統(tǒng)”的頂級數(shù)據(jù)流圖警報類別家庭保安系統(tǒng)軟件控制面板顯示器警報器電話線傳感器用戶命令顯示信息傳感數(shù)據(jù)電話撥號音頻軟件工程.“家庭保安系統(tǒng)”的頂級數(shù)據(jù)流圖警報類別家庭保安控制面板顯示器9“家庭保安系統(tǒng)”的第一級DFD電話撥號音頻配置數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)用戶命令處理顯示信息和狀態(tài)傳感器監(jiān)測系統(tǒng)配置控制面板顯示器警報器電話線傳感器配置信息配置命令啟動/停止命令原口令有效口令傳感器信息報警類別傳感數(shù)據(jù)顯示信息用戶命令口令啟動/停止系統(tǒng)和狀態(tài)啟動或停止消息口令核對用戶交互子系統(tǒng)圖8-5軟件工程.“家庭保安系統(tǒng)”的第一級DFD電話撥號音頻配置數(shù)據(jù)配置108.2變換分析步驟二、復審和精化軟件數(shù)據(jù)流圖這一步主要是對軟件需求規(guī)格說明書中的分析模型進行精化,直至獲得足夠詳細的DFD。例如,由“傳感器監(jiān)測子系統(tǒng)”的第一級和第二級DFD進一步推導出第三級數(shù)據(jù)流圖,此時,每個變換對應一個獨立的功能,可以用一個具有較高內(nèi)聚度的模塊實現(xiàn),至此已有足夠的信息可用于設計“傳感器監(jiān)測子系統(tǒng)”的程序結(jié)構(gòu),精化過程亦可結(jié)束。軟件工程.8.2變換分析步驟二、復審和精化軟件數(shù)據(jù)流圖軟件工程.11“傳感器監(jiān)測子系統(tǒng)”的第二級DFD傳感器信息傳感器標志的類型和位置傳感數(shù)據(jù)警報類別警報數(shù)據(jù)顯示格式產(chǎn)生警報信號電話撥號異常數(shù)據(jù)判別讀取傳感數(shù)據(jù)配置信息配置數(shù)據(jù)傳感器標識類型電話號碼電話撥號音頻軟件工程.“傳感器監(jiān)測子系統(tǒng)”的第二級DFD傳感器信息傳感器標志傳感12“傳感器監(jiān)測子系統(tǒng)”的第三級DFD配置信息警報條件碼傳感器標志定時信息傳感數(shù)據(jù)電話號碼對應的音頻電話撥號音頻傳感器信息號碼表電話號碼讀取傳感數(shù)據(jù)獲取響應信息建立警報條件選擇電話號碼連通電話網(wǎng)產(chǎn)生撥號脈沖產(chǎn)生警報信號格式化顯示產(chǎn)生顯示傳感器標志的類型和位置格式化標志的類型和位置置傳感器標識警報數(shù)據(jù)警報類別配置數(shù)據(jù)軟件工程.“傳感器監(jiān)測子系統(tǒng)”的第三級DFD配置信息警報條件碼138.2變換分析步驟三、確定DFD的特性,判定它為變換流還是事務流。以圖8?2?4所示DFD為例,數(shù)據(jù)沿一個傳入路徑進來,沿三個傳出路徑離開,沒有明顯的事務中心,因此,該信息流應屬變換流。步驟四、劃定輸入流和輸出流的邊界,孤立變換中心。軟件工程.8.2變換分析步驟三、確定DFD的特性,判定它為變換流還148.2變換分析步驟五、執(zhí)行“一級分解”(firstlevelfactoring)一級分解的目標是導出具有三個層次的程序結(jié)構(gòu),頂層為主控模塊;底層模塊執(zhí)行輸入、計算和輸出功能;中層模塊控制、協(xié)調(diào)底層的工作。軟件工程.8.2變換分析步驟五、執(zhí)行“一級分解”(firstle158.2變換分析程序結(jié)構(gòu)可用Yourdon結(jié)構(gòu)圖表示。結(jié)構(gòu)圖中,方框代表模塊,框內(nèi)名稱表示模塊的功能;方框之間的有向邊(無二義時也可用無向邊)表示模塊間的調(diào)用關系。調(diào)用模塊上無標志表示順序調(diào)用:從左至右;菱形表示選擇調(diào)用;弧形箭頭表示循環(huán)調(diào)用。但本書后面除了順序調(diào)用外,并沒有遵循這些規(guī)定。acbacbaba)順序調(diào)用b)選擇調(diào)用c)循環(huán)調(diào)用軟件工程.8.2變換分析程序結(jié)構(gòu)可用Yourdon結(jié)構(gòu)圖表示。結(jié)構(gòu)168.2變換分析對應于一級分解的上兩層模塊,即主控模塊和下面幾個中層控制模塊:①輸入流控制模塊,接收所有輸入數(shù)據(jù);②變換流控制模塊,對內(nèi)部形式數(shù)據(jù)進行加工、處理;③輸出流控制模塊,產(chǎn)生輸出數(shù)據(jù)。軟件工程.8.2變換分析對應于一級分解的上兩層模塊,即主控模塊和下178.2變換分析一級分解輸入流變換流變換流控制模塊輸入流控制模塊輸出流主控模塊輸出流控制模塊ABCDEFGH軟件工程.8.2變換分析一級分解輸入流變換流變換流輸入流輸出流主控188.2變換分析一個簡單三叉結(jié)構(gòu),實際處理大型系統(tǒng)的復雜數(shù)據(jù)流時,可能需要多個模塊對應一個模塊的功能?!耙患壏纸狻笨偟脑瓌t是,在完成控制功能并保持低耦合度、高內(nèi)聚度的前提下盡可能地減少模塊的數(shù)量?!皞鞲衅鞅O(jiān)測子系統(tǒng)”一級分解,其中控制模塊的名字概括了所有下屬模塊的功能。軟件工程.8.2變換分析一個簡單三叉結(jié)構(gòu),實際處理大型系統(tǒng)的復雜數(shù)19傳感器監(jiān)測子系統(tǒng)一級分解結(jié)果警報條件控制模塊傳感器輸入控制模塊主控模塊警報輸出控制模塊配置信息軟件工程.傳感器監(jiān)測子系統(tǒng)一級分解結(jié)果警報條件控制模塊傳感器輸入控制208.2變換分析步驟六、執(zhí)行“二級分解”。二級分解的任務是把數(shù)據(jù)流圖中每個處理框映射為結(jié)構(gòu)圖中的一個模塊。其過程是從變換中心的邊界開始沿輸入、輸出通道向外移動;從變換中心的輸入(出)邊界向外移動,把遇到的每個處理框映射為結(jié)構(gòu)圖中相應控制模塊下的一個模塊。軟件工程.8.2變換分析步驟六、執(zhí)行“二級分解”。軟件工程.21二級分解輸入流變換流輸入流控制模塊輸出流主控模塊ABCDEFGHBDAC變換流控制模塊輸出流控制模塊EFGH軟件工程.二級分解輸入流變換流輸入流控制模塊輸出流主控模塊ABCD228.2變換分析DFD的處理框與程序結(jié)構(gòu)模塊一一對應,但按照軟件設計原則進行設計時,可能需要把幾個處理框聚合為一個模塊,或者把一個處理框裂變?yōu)閹讉€模塊??傊?,應根據(jù)“良好”設計的標準,進行二級分解。二級分解后得到的僅僅是程序結(jié)構(gòu)的“雛形”(first?cut),后續(xù)的復審和精化會反復修改。軟件工程.8.2變換分析DFD的處理框與程序結(jié)構(gòu)模塊一一對應,但按238.2變換分析程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍有必要為每個模塊寫一個簡要的處理說明,它應當包括:1.進出模塊的信息(接口描述);2.模塊的局部信息;3.處理過程陳述,包括任務和主要的判斷點的位置、條件;4.對有關限制和一些專門特性的簡要說明(例如,文件I/O,獨立于硬件的特性,特殊的實時要求等)。這些描述構(gòu)成第一版設計規(guī)格說明書。軟件工程.8.2變換分析程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍有必248.2變換分析步驟七、采用啟發(fā)式設計策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量對于程序結(jié)構(gòu)的雛形,以“模塊獨立”為指導思想,對模塊進行整合或分解,旨在追求高內(nèi)聚、低耦合,以及易實現(xiàn)、易測試、易維護的軟件結(jié)構(gòu)。軟件工程.8.2變換分析步驟七、采用啟發(fā)式設計策略,精化所得程序結(jié)25結(jié)構(gòu)的優(yōu)化輸入流控制模塊主控模塊BDAC變換流控制模塊輸出流控制模塊EFGH輸入流控制模塊主控模塊BDACEFGH軟件工程.結(jié)構(gòu)的優(yōu)化輸入流控制模塊主控模塊BDAC變換流控制模塊輸出流268.2變換分析上述七個設計步驟的目標是給出軟件的一個整體描述。一旦有了這樣一個描述,設計人員即可從整體角度評價和精化軟件的總體結(jié)構(gòu),此時修改所需耗費不多,卻能大大提高軟件質(zhì)量。軟件工程.8.2變換分析上述七個設計步驟的目標是給出軟件的一個整體278.3事務分析當數(shù)據(jù)流具有明顯的事務特征時,即能找到一個事務(亦稱觸發(fā)數(shù)據(jù)項)和一個事務中心,采用事務分析法更為適宜。下面以“家庭保安系統(tǒng)”中“用戶交互子系統(tǒng)”為例,說明事務分析法。該子系統(tǒng)的第一級數(shù)據(jù)流圖(圖8-5)精化后得到第二級數(shù)據(jù)流圖(8-14)。圖中“用戶命令數(shù)據(jù)”流入系統(tǒng)后,沿三條動作路徑之一離開系統(tǒng),若將數(shù)據(jù)項“命令類型”看作事務,該子系統(tǒng)的信息流具有明顯的事務特征。軟件工程.8.3事務分析當數(shù)據(jù)流具有明顯的事務特征時,即能找到一個28用戶交互子系統(tǒng)的二級數(shù)據(jù)流圖無效口令啟動/停止命令口令啟動/停止消息配置數(shù)據(jù)配置數(shù)據(jù)配置命令顯示信息“再試”信息讀取用戶命令啟動命令處理啟動/停止系統(tǒng)產(chǎn)生無效的信息讀取系統(tǒng)數(shù)據(jù)讀取配置文件讀取口令顯示信息和狀態(tài)比較口令與文件配置信息用戶命令數(shù)據(jù)系統(tǒng)參數(shù)和數(shù)據(jù)原始配置項格式化的配置數(shù)據(jù)命令類型確認口令四位數(shù)有效口令軟件工程.用戶交互子系統(tǒng)的二級數(shù)據(jù)流圖無效口令啟動/停止命令口令啟動298.3事務分析事務分析法可概括為七個步驟:步驟一、復審基本系統(tǒng)模型;步驟二、復審并精化軟件數(shù)據(jù)流圖;步驟三、確定數(shù)據(jù)流圖的特征;步驟四、指出事務中心,確定接收部分和發(fā)送部分的流界;步驟五、映射出系統(tǒng)上層模塊結(jié)構(gòu);軟件工程.8.3事務分析事務分析法可概括為七個步驟:軟件工程.30映射系統(tǒng)上層結(jié)構(gòu)模塊9861254371011事務中心接收部分發(fā)送部分SYSTEM輸入1散轉(zhuǎn)2SUBSYS1SUBSYS2SUBSYS3………軟件工程.映射系統(tǒng)上層結(jié)構(gòu)模塊9861254371011事務中心接收部318.3事務分析步驟六、分解并精化事務結(jié)構(gòu)以及每條動作路徑所對應的結(jié)構(gòu)。這些子結(jié)構(gòu)是根據(jù)流經(jīng)每一動作路徑的數(shù)據(jù)流特征,采用本節(jié)或上節(jié)所述設計步驟逐一導出的。軟件工程.8.3事務分析步驟六、分解并精化事務結(jié)構(gòu)以及每條動作路徑32設計系統(tǒng)下層模塊結(jié)構(gòu)9861254371011事務中心接收部分發(fā)送部分SUBSYS2710411輸入控制變換控制輸出控制軟件工程.設計系統(tǒng)下層模塊結(jié)構(gòu)9861254371011事務中心接收部338.3事務分析圖8-3-4將模塊結(jié)構(gòu)組合,得到程序結(jié)構(gòu)雛形SYSTEM輸入1散轉(zhuǎn)2SUBSYS1SUBSYS2SUBSYS3710411輸入控制變換控制輸出控制36589軟件工程.8.3事務分析圖8-3-4將模塊結(jié)構(gòu)組合,得到程序結(jié)348.3事務分析步驟七、使用啟發(fā)式設計策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這一步驟與變換分析法相同。SYSTEM輸入1散轉(zhuǎn)2SUBSYS271041136589軟件工程.8.3事務分析步驟七、使用啟發(fā)式設計策略,精化所得程序結(jié)358.4設計優(yōu)化及原則

8.4.1啟發(fā)式設計策略1.調(diào)整模塊的功能和規(guī)模,降低耦合度,提高內(nèi)聚度。若在幾個模塊中發(fā)現(xiàn)了共有的子功能,一般應將此子功能獨立出來作為一個模塊,以提高單個模塊的內(nèi)聚度。合并模塊通常是為了減少控制信息的傳遞以及對全程數(shù)據(jù)的引用,同時降低接口的復雜性。模塊的規(guī)模沒有固定的要求。以保持模塊的獨立性為原則。一般而言,模塊規(guī)模以一頁左右為宜(高級語言在75個語句左右)。軟件工程.8.4設計優(yōu)化及原則

8.4.1啟發(fā)式設計策略1.368.4.1啟發(fā)式設計策略2.調(diào)整軟件結(jié)構(gòu)的深度、寬度、扇出和扇入數(shù)目,改善軟件結(jié)構(gòu)性能。經(jīng)驗表明,設計良好的軟件結(jié)構(gòu)通常頂層扇出較高,中層扇出較低,底層又高扇入到公共的實用模塊中去。軟件工程.8.4.1啟發(fā)式設計策略2.調(diào)整軟件結(jié)構(gòu)的深度、寬度、扇37應追求與避免的程序結(jié)構(gòu)應追求的結(jié)構(gòu)應避免的結(jié)構(gòu)8.4.1啟發(fā)式設計策略軟件工程.應追求與避免的程序結(jié)構(gòu)應追求的結(jié)構(gòu)應避免的結(jié)構(gòu)8.4.1388.4.1啟發(fā)式設計策略3.改造程序結(jié)構(gòu),使任一模塊的作用域在其控制域之內(nèi)。判定受F中判定的影響ACFEGHDB違背第三條原則滿足第三條原則ADCEFHGB作用域與控制域軟件工程.8.4.1啟發(fā)式設計策略3.改造程序結(jié)構(gòu),使任一模塊的作398.4.1啟發(fā)式設計策略4.分析模塊之間的接口信息,降低界面的復雜性和冗余程度,提高協(xié)調(diào)性。界面復雜是引起軟件錯誤的一個基本因素,界面上傳遞的數(shù)據(jù)應盡可能簡單并與模塊的功能相協(xié)調(diào),界面不協(xié)調(diào)(即在同一個參數(shù)表內(nèi)或以其他某種方式傳遞不甚相關的一堆數(shù)據(jù))本身就是模塊低內(nèi)聚的表征。軟件工程.8.4.1啟發(fā)式設計策略4.分析模塊之間的接口信息,降低408.4.1啟發(fā)式設計策略5.模塊功能應該可預言,避免對模塊施加過多限制。模塊功能可預言指,只要模塊的輸入數(shù)據(jù)相同,其運行產(chǎn)生的輸出必然相同,也就是可以依據(jù)其輸入數(shù)據(jù)預測模塊的輸出結(jié)果。此外,如果設計時對模塊中局部數(shù)據(jù)的體積,控制流程的選擇及外部接口方式等諸因素限制過多,則以后為去掉這些限制要增加維護開銷。軟件工程.8.4.1啟發(fā)式設計策略5.模塊功能應該可預言,避免對模418.4.1啟發(fā)式設計策略6.改造程序結(jié)構(gòu),追求單入口單出口的模塊。7.為滿足設計或可移植性的要求,把某些軟件用包(package)的形式封裝起來。軟件設計常常附帶一些特殊限制,例如,要求程序采用覆蓋技術。此時,根據(jù)模塊重要的程度、被訪問的頻率及兩次引用的間隔等因素對模塊分組。此外,程序中那些供選擇的或“單調(diào)”(one?shot)的模塊應單獨存在,以便高效地加載。軟件工程.8.4.1啟發(fā)式設計策略6.改造程序結(jié)構(gòu),追求單入口42輔助文檔無論是采用變換分析法還

溫馨提示

  • 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

提交評論