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

下載本文檔

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

文檔簡介

1、CompanyLOGO軟件工程軟件工程教材:主編 曹哲 高誠 中國水利水電出版社教案:河北工業(yè)大學(xué)廊坊分院 計(jì)算機(jī)系 黃南川ZLL軟件工程軟件工程第8章面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法,即通常所說的結(jié)構(gòu)設(shè)計(jì)法面向數(shù)據(jù)流的設(shè)計(jì)方法,即通常所說的結(jié)構(gòu)設(shè)計(jì)法(Structure Design,簡稱,簡稱SD方法),由方法),由Yourdon和和Constantine等人于等人于1874年提出的,與結(jié)構(gòu)化分析年提出的,與結(jié)構(gòu)化分析(SA)相銜接,根據(jù)對(duì)數(shù)據(jù)流的分析設(shè)計(jì)軟件結(jié)構(gòu)。)相銜接,根據(jù)對(duì)數(shù)據(jù)流的分析設(shè)計(jì)軟件結(jié)構(gòu)。本章所述技術(shù)用于軟件的概要設(shè)計(jì)描述,包括模塊、本章所述技術(shù)用于軟件的概要設(shè)計(jì)

2、描述,包括模塊、界面和數(shù)據(jù)結(jié)構(gòu)的定義,這是所有后續(xù)開發(fā)的基礎(chǔ)。界面和數(shù)據(jù)結(jié)構(gòu)的定義,這是所有后續(xù)開發(fā)的基礎(chǔ)。 SD方法對(duì)那些順序處理信息且不含層次數(shù)據(jù)結(jié)構(gòu)的方法對(duì)那些順序處理信息且不含層次數(shù)據(jù)結(jié)構(gòu)的系統(tǒng)最為有效,例如過程控制、復(fù)雜的數(shù)值分析過程、系統(tǒng)最為有效,例如過程控制、復(fù)雜的數(shù)值分析過程、以及科學(xué)與工程方面的應(yīng)用。當(dāng)以及科學(xué)與工程方面的應(yīng)用。當(dāng)SD方法用于完全的方法用于完全的數(shù)據(jù)處理時(shí),即使系統(tǒng)中使用層次數(shù)據(jù)也同樣行之有數(shù)據(jù)處理時(shí),即使系統(tǒng)中使用層次數(shù)據(jù)也同樣行之有效。效。ZLL軟件工程軟件工程8.1 SD方法的設(shè)計(jì)過程和有關(guān)概念方法的設(shè)計(jì)過程和有關(guān)概念SD方法能方便地將數(shù)據(jù)流圖轉(zhuǎn)換為軟件

3、結(jié)構(gòu),其過方法能方便地將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu),其過程分為五步:程分為五步: 1 確定信息流的類型;確定信息流的類型; 2 劃定流界;劃定流界; 3 將數(shù)據(jù)流圖映射為程序結(jié)構(gòu);將數(shù)據(jù)流圖映射為程序結(jié)構(gòu); 4 提取層次控制結(jié)構(gòu);提取層次控制結(jié)構(gòu); 5 通過設(shè)計(jì)復(fù)審和使用啟發(fā)式策略進(jìn)通過設(shè)計(jì)復(fù)審和使用啟發(fā)式策略進(jìn) 一步精化所得到的結(jié)構(gòu)。一步精化所得到的結(jié)構(gòu)。第第3步所用映射方法涉及信息流的類型。信息流分步所用映射方法涉及信息流的類型。信息流分為變換流和事務(wù)流兩種類型。為變換流和事務(wù)流兩種類型。ZLL軟件工程軟件工程1)變換流)變換流變換流變換流 在基本系統(tǒng)模型(即頂級(jí)數(shù)據(jù)在基本系統(tǒng)模型(即頂級(jí)數(shù)據(jù)

4、流圖)中信息通常以流圖)中信息通常以“外部世界外部世界”所具所具有的形式進(jìn)入系統(tǒng),經(jīng)過處理后又以這有的形式進(jìn)入系統(tǒng),經(jīng)過處理后又以這種形式離開系統(tǒng)。種形式離開系統(tǒng)。輸入流輸入流外外部部表表示示內(nèi)內(nèi)部部表表示示信信息息時(shí)間時(shí)間信息流信息流輸出流輸出流變換流變換流ZLL軟件工程軟件工程1)變換流)變換流典型的變換流典型的變換流變換流的特點(diǎn)是:經(jīng)過變換變換流的特點(diǎn)是:經(jīng)過變換B的數(shù)據(jù)流一部分先的數(shù)據(jù)流一部分先經(jīng)過變換經(jīng)過變換C到達(dá)變換到達(dá)變換E,然后另一部分經(jīng)過變換,然后另一部分經(jīng)過變換D到達(dá)到達(dá)E;即;即C和和D是順序結(jié)構(gòu)。是順序結(jié)構(gòu)。ABCDEFZLL軟件工程軟件工程2)事務(wù)流)事務(wù)流事務(wù)流事務(wù)

5、流單個(gè)數(shù)據(jù)項(xiàng)稱為事務(wù)(單個(gè)數(shù)據(jù)項(xiàng)稱為事務(wù)(transaction)沿傳入路徑(也稱接受通道)進(jìn)入系統(tǒng),由外部形沿傳入路徑(也稱接受通道)進(jìn)入系統(tǒng),由外部形式變換為內(nèi)部形式后到達(dá)事務(wù)中心,事務(wù)中心根據(jù)式變換為內(nèi)部形式后到達(dá)事務(wù)中心,事務(wù)中心根據(jù)數(shù)據(jù)項(xiàng)計(jì)值結(jié)果從若干動(dòng)作路徑中選定一條繼續(xù)執(zhí)數(shù)據(jù)項(xiàng)計(jì)值結(jié)果從若干動(dòng)作路徑中選定一條繼續(xù)執(zhí)行。行??梢娝且粋€(gè)選擇結(jié)構(gòu)??梢娝且粋€(gè)選擇結(jié)構(gòu)。事務(wù)中心事務(wù)中心TB事務(wù)事務(wù)CA事務(wù)流事務(wù)流ZLL軟件工程軟件工程圖面向數(shù)據(jù)流的設(shè)計(jì)精化數(shù)據(jù)流圖精化數(shù)據(jù)流圖流的類流的類型型確定事務(wù)中心確定事務(wù)中心和各動(dòng)作路徑和各動(dòng)作路徑確定輸入輸出確定輸入輸出流界流界映射為事務(wù)結(jié)構(gòu)

6、映射為事務(wù)結(jié)構(gòu)映射為變換結(jié)構(gòu)映射為變換結(jié)構(gòu)提取控制結(jié)構(gòu)提取控制結(jié)構(gòu)利用啟發(fā)式策略利用啟發(fā)式策略精化軟件結(jié)構(gòu)精化軟件結(jié)構(gòu)描述接口和全局描述接口和全局?jǐn)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)事務(wù)分析事務(wù)分析變換分析變換分析復(fù)審復(fù)審詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)通過通過“變換變換”“事務(wù)事務(wù)”ZLL軟件工程軟件工程8.2 變換分析下面以下面以“家庭保安系統(tǒng)家庭保安系統(tǒng)”的傳感器監(jiān)測的傳感器監(jiān)測子系統(tǒng)為例說明變換分析的各個(gè)步驟。子系統(tǒng)為例說明變換分析的各個(gè)步驟。 步驟一、復(fù)審基本系統(tǒng)模型步驟一、復(fù)審基本系統(tǒng)模型 基本系統(tǒng)模型指頂級(jí)基本系統(tǒng)模型指頂級(jí)DFD和所有由外部和所有由外部提供的信息。這一設(shè)計(jì)步驟是對(duì)系統(tǒng)規(guī)提供的信息。這一設(shè)計(jì)步驟是對(duì)

7、系統(tǒng)規(guī)格說明書和軟件需求規(guī)格說明書進(jìn)行評(píng)格說明書和軟件需求規(guī)格說明書進(jìn)行評(píng)估。這兩個(gè)文檔描述軟件界面上信息的估。這兩個(gè)文檔描述軟件界面上信息的流程和結(jié)構(gòu)。流程和結(jié)構(gòu)。 ZLL軟件工程軟件工程“家庭保安系統(tǒng)家庭保安系統(tǒng)”的頂級(jí)數(shù)據(jù)流圖的頂級(jí)數(shù)據(jù)流圖警報(bào)類別警報(bào)類別家庭保安家庭保安系統(tǒng)軟件系統(tǒng)軟件控制面板控制面板顯示器顯示器警報(bào)器警報(bào)器電話線電話線傳感器傳感器用戶命令用戶命令顯示信息顯示信息傳感數(shù)據(jù)傳感數(shù)據(jù)電話撥號(hào)音頻電話撥號(hào)音頻ZLL軟件工程軟件工程“家庭保安系統(tǒng)家庭保安系統(tǒng)”的第一級(jí)的第一級(jí)DFD 電話撥號(hào)音頻電話撥號(hào)音頻配置數(shù)據(jù)配置數(shù)據(jù)配置配置 數(shù)據(jù)數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)用戶命用戶命令處理令處

8、理顯示信息顯示信息和狀態(tài)和狀態(tài)傳感器傳感器監(jiān)測監(jiān)測系統(tǒng)系統(tǒng)配置配置控制面板控制面板顯示器顯示器警報(bào)器警報(bào)器電話線電話線傳感器傳感器配置信息配置信息配置配置 命令命令啟動(dòng)啟動(dòng)/ 停止命令停止命令原口令原口令有效口令有效口令傳感器信息傳感器信息報(bào)警類別報(bào)警類別傳感數(shù)據(jù)傳感數(shù)據(jù)顯示顯示 信息信息用戶命令用戶命令口令口令啟動(dòng)啟動(dòng)/停止停止系統(tǒng)和狀態(tài)系統(tǒng)和狀態(tài)啟動(dòng)或啟動(dòng)或停止消息停止消息口令口令核對(duì)核對(duì)用用戶戶交交互互子子系系統(tǒng)統(tǒng)圖圖8-5ZLL軟件工程軟件工程8.2 變換分析步驟二、復(fù)審和精化軟件數(shù)據(jù)流圖步驟二、復(fù)審和精化軟件數(shù)據(jù)流圖 這一步主要是對(duì)軟件需求規(guī)格說明書中的分這一步主要是對(duì)軟件需求規(guī)格說

9、明書中的分析模型進(jìn)行精化,直至獲得足夠詳細(xì)的析模型進(jìn)行精化,直至獲得足夠詳細(xì)的DFD。v例如,由例如,由“傳感器監(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”的第一級(jí)和第的第一級(jí)和第二級(jí)二級(jí)DFD進(jìn)一步推導(dǎo)出第三級(jí)數(shù)據(jù)流圖,此時(shí),進(jìn)一步推導(dǎo)出第三級(jí)數(shù)據(jù)流圖,此時(shí),每個(gè)變換對(duì)應(yīng)一個(gè)獨(dú)立的功能,可以用一個(gè)具每個(gè)變換對(duì)應(yīng)一個(gè)獨(dú)立的功能,可以用一個(gè)具有較高內(nèi)聚度的模塊實(shí)現(xiàn),至此已有足夠的信有較高內(nèi)聚度的模塊實(shí)現(xiàn),至此已有足夠的信息可用于設(shè)計(jì)息可用于設(shè)計(jì)“傳感器監(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”的程序結(jié)的程序結(jié)構(gòu),精化過程亦可結(jié)束。構(gòu),精化過程亦可結(jié)束。ZLL軟件工程軟件工程“傳感器監(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”的第二級(jí)的第二級(jí)

10、DFD 傳感器信息傳感器信息傳感器標(biāo)志傳感器標(biāo)志的類型和位置的類型和位置傳感數(shù)據(jù)傳感數(shù)據(jù)警報(bào)類別警報(bào)類別警報(bào)數(shù)據(jù)警報(bào)數(shù)據(jù)顯示顯示格式格式產(chǎn)生警產(chǎn)生警報(bào)信號(hào)報(bào)信號(hào)電話電話撥號(hào)撥號(hào)異常數(shù)異常數(shù)據(jù)判別據(jù)判別讀取傳讀取傳感數(shù)據(jù)感數(shù)據(jù)配配 置置 信信 息息配置數(shù)據(jù)配置數(shù)據(jù)傳感器傳感器標(biāo)識(shí)類型標(biāo)識(shí)類型電話號(hào)碼電話號(hào)碼電話撥號(hào)音頻電話撥號(hào)音頻ZLL軟件工程軟件工程“傳感器監(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”的第三級(jí)的第三級(jí)DFD 配配 置置 信信 息息警報(bào)條件碼警報(bào)條件碼傳感器標(biāo)志傳感器標(biāo)志定時(shí)信息定時(shí)信息傳感數(shù)據(jù)傳感數(shù)據(jù)電話號(hào)碼電話號(hào)碼對(duì)應(yīng)的音頻對(duì)應(yīng)的音頻電話撥電話撥號(hào)音頻號(hào)音頻傳感器信息傳感器信息號(hào)碼表號(hào)碼表電

11、話號(hào)碼電話號(hào)碼讀取傳讀取傳感數(shù)據(jù)感數(shù)據(jù)獲取響獲取響應(yīng)信息應(yīng)信息建立警建立警報(bào)條件報(bào)條件選擇電選擇電話號(hào)碼話號(hào)碼連通電連通電話網(wǎng)話網(wǎng)產(chǎn)生撥產(chǎn)生撥號(hào)脈沖號(hào)脈沖產(chǎn)生警產(chǎn)生警報(bào)信號(hào)報(bào)信號(hào)格式化格式化顯示顯示產(chǎn)生產(chǎn)生顯示顯示傳感器標(biāo)志的傳感器標(biāo)志的類型和位置類型和位置格式化標(biāo)志的格式化標(biāo)志的類型和位置類型和位置置傳感器標(biāo)識(shí)置傳感器標(biāo)識(shí)警報(bào)數(shù)據(jù)警報(bào)數(shù)據(jù)警報(bào)類別警報(bào)類別配配 置置 數(shù)數(shù) 據(jù)據(jù)ZLL軟件工程軟件工程8.2 變換分析步驟三、確定步驟三、確定DFD的特性,判定它為變換的特性,判定它為變換流還是事務(wù)流。流還是事務(wù)流。v 以圖以圖8 2 4所示所示DFD為例,數(shù)據(jù)沿一個(gè)為例,數(shù)據(jù)沿一個(gè)傳入路徑進(jìn)來,沿

12、三個(gè)傳出路徑離開,沒傳入路徑進(jìn)來,沿三個(gè)傳出路徑離開,沒有明顯的事務(wù)中心,因此,該信息流應(yīng)屬有明顯的事務(wù)中心,因此,該信息流應(yīng)屬變換流。變換流。步驟四、劃定輸入流和輸出流的邊界,孤步驟四、劃定輸入流和輸出流的邊界,孤立變換中心。立變換中心。ZLL軟件工程軟件工程8.2 變換分析步驟五、執(zhí)行步驟五、執(zhí)行“一級(jí)分解一級(jí)分解”(first level factoring) 一級(jí)分解的目標(biāo)是導(dǎo)出具有三個(gè)層次的程一級(jí)分解的目標(biāo)是導(dǎo)出具有三個(gè)層次的程序結(jié)構(gòu),頂層為主控模塊;底層模塊執(zhí)行序結(jié)構(gòu),頂層為主控模塊;底層模塊執(zhí)行輸入、計(jì)算和輸出功能;中層模塊控制、輸入、計(jì)算和輸出功能;中層模塊控制、協(xié)調(diào)底層的工作

13、。協(xié)調(diào)底層的工作。ZLL軟件工程軟件工程8.2 變換分析程序結(jié)構(gòu)可用程序結(jié)構(gòu)可用Yourdon結(jié)構(gòu)圖表示。結(jié)構(gòu)圖中,方框結(jié)構(gòu)圖表示。結(jié)構(gòu)圖中,方框代表模塊,框內(nèi)名稱表示模塊的功能;方框之間的有代表模塊,框內(nèi)名稱表示模塊的功能;方框之間的有向邊(無二義時(shí)也可用無向邊)表示模塊間的調(diào)用關(guān)向邊(無二義時(shí)也可用無向邊)表示模塊間的調(diào)用關(guān)系。調(diào)用模塊上無標(biāo)志表示順序調(diào)用:從左至右;菱系。調(diào)用模塊上無標(biāo)志表示順序調(diào)用:從左至右;菱形表示選擇調(diào)用;弧形箭頭表示循環(huán)調(diào)用。但本書后形表示選擇調(diào)用;弧形箭頭表示循環(huán)調(diào)用。但本書后面除了順序調(diào)用外,并沒有遵循這些規(guī)定。面除了順序調(diào)用外,并沒有遵循這些規(guī)定。acbac

14、bab a) 順序調(diào)用順序調(diào)用 b) 選擇調(diào)用選擇調(diào)用 c) 循環(huán)調(diào)用循環(huán)調(diào)用ZLL軟件工程軟件工程8.2 變換分析對(duì)應(yīng)于一級(jí)分解的上兩層模塊,即主控模對(duì)應(yīng)于一級(jí)分解的上兩層模塊,即主控模塊和下面幾個(gè)中層控制模塊:塊和下面幾個(gè)中層控制模塊: 輸入流控制模塊,接收所有輸入數(shù)據(jù);輸入流控制模塊,接收所有輸入數(shù)據(jù); 變換流控制模塊,對(duì)內(nèi)部形式數(shù)據(jù)進(jìn)行加變換流控制模塊,對(duì)內(nèi)部形式數(shù)據(jù)進(jìn)行加工、處理;工、處理; 輸出流控制模塊,產(chǎn)生輸出數(shù)據(jù)。輸出流控制模塊,產(chǎn)生輸出數(shù)據(jù)。ZLL軟件工程軟件工程8.2 變換分析一級(jí)分解一級(jí)分解輸入流輸入流變換流變換流變換流變換流控制模塊控制模塊輸入流輸入流控制模塊控制模塊

15、輸出流輸出流主控模塊主控模塊輸出流輸出流控制模塊控制模塊ABCDEFGHZLL軟件工程軟件工程8.2 變換分析一個(gè)簡單三叉結(jié)構(gòu),實(shí)際處理大型系統(tǒng)一個(gè)簡單三叉結(jié)構(gòu),實(shí)際處理大型系統(tǒng)的復(fù)雜數(shù)據(jù)流時(shí),可能需要多個(gè)模塊對(duì)的復(fù)雜數(shù)據(jù)流時(shí),可能需要多個(gè)模塊對(duì)應(yīng)一個(gè)模塊的功能。應(yīng)一個(gè)模塊的功能。“一級(jí)分解一級(jí)分解”總的總的原則是,在完成控制功能并保持低耦合原則是,在完成控制功能并保持低耦合度、高內(nèi)聚度的前提下盡可能地減少模度、高內(nèi)聚度的前提下盡可能地減少模塊的數(shù)量。塊的數(shù)量?!皞鞲衅鞅O(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”一級(jí)分解,其中一級(jí)分解,其中控制模塊的名字概括了所有下屬模塊的控制模塊的名字概括了所有下屬模塊的功

16、能。功能。ZLL軟件工程軟件工程傳感器監(jiān)測子系統(tǒng)一級(jí)分解結(jié)果傳感器監(jiān)測子系統(tǒng)一級(jí)分解結(jié)果 警報(bào)條件控警報(bào)條件控制模塊制模塊傳感器輸入傳感器輸入控制模塊控制模塊主控模塊主控模塊警報(bào)輸出控警報(bào)輸出控制模塊制模塊配配 置置 信信 息息ZLL軟件工程軟件工程8.2 變換分析步驟六、執(zhí)行步驟六、執(zhí)行“二級(jí)分解二級(jí)分解”。 二級(jí)分解的任務(wù)是把數(shù)據(jù)流圖中每個(gè)處理二級(jí)分解的任務(wù)是把數(shù)據(jù)流圖中每個(gè)處理框映射為結(jié)構(gòu)圖中的一個(gè)模塊。其過程是框映射為結(jié)構(gòu)圖中的一個(gè)模塊。其過程是從變換中心的邊界開始沿輸入、輸出通道從變換中心的邊界開始沿輸入、輸出通道向外移動(dòng);從變換中心的輸入向外移動(dòng);從變換中心的輸入(出出)邊界向外邊

17、界向外移動(dòng),把遇到的每個(gè)處理框映射為結(jié)構(gòu)圖移動(dòng),把遇到的每個(gè)處理框映射為結(jié)構(gòu)圖中相應(yīng)控制模塊下的一個(gè)模塊。中相應(yīng)控制模塊下的一個(gè)模塊。ZLL軟件工程軟件工程二級(jí)分解二級(jí)分解 輸入流輸入流變換流變換流輸入流控制輸入流控制模塊模塊輸出流輸出流主控模塊主控模塊ABCDEFGHBDAC變換流控制變換流控制模塊模塊輸出流控制輸出流控制模塊模塊EFGHZLL軟件工程軟件工程8.2 變換分析DFD的處理框與程序結(jié)構(gòu)模塊一一對(duì)應(yīng),的處理框與程序結(jié)構(gòu)模塊一一對(duì)應(yīng),但按照軟件設(shè)計(jì)原則進(jìn)行設(shè)計(jì)時(shí),可能但按照軟件設(shè)計(jì)原則進(jìn)行設(shè)計(jì)時(shí),可能需要把幾個(gè)處理框聚合為一個(gè)模塊,或需要把幾個(gè)處理框聚合為一個(gè)模塊,或者把一個(gè)處理框

18、裂變?yōu)閹讉€(gè)模塊??傊甙岩粋€(gè)處理框裂變?yōu)閹讉€(gè)模塊。總之,應(yīng)根據(jù)應(yīng)根據(jù)“良好良好”設(shè)計(jì)的標(biāo)準(zhǔn),進(jìn)行二級(jí)設(shè)計(jì)的標(biāo)準(zhǔn),進(jìn)行二級(jí)分解。分解。 二級(jí)分解后得到的僅僅是程序結(jié)構(gòu)的二級(jí)分解后得到的僅僅是程序結(jié)構(gòu)的“雛形雛形”(first cut),后續(xù)的復(fù)審和),后續(xù)的復(fù)審和精化會(huì)反復(fù)修改。精化會(huì)反復(fù)修改。ZLL軟件工程軟件工程8.2 變換分析程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍有必要為每個(gè)模塊寫一個(gè)簡要的處理說明,有必要為每個(gè)模塊寫一個(gè)簡要的處理說明,它應(yīng)當(dāng)包括:它應(yīng)當(dāng)包括: 1進(jìn)出模塊的信息(接口描述);進(jìn)出模塊的信息(接口描述); 2模塊的局部信息;模塊的局部

19、信息; 3處理過程陳述,包括任務(wù)和主要的判處理過程陳述,包括任務(wù)和主要的判 斷點(diǎn)的位置、條件;斷點(diǎn)的位置、條件; 4對(duì)有關(guān)限制和一些專門特性的簡要說對(duì)有關(guān)限制和一些專門特性的簡要說 明(例如,文件明(例如,文件I/O,獨(dú)立于硬件的,獨(dú)立于硬件的 特性,特殊的實(shí)時(shí)要求等)。特性,特殊的實(shí)時(shí)要求等)。這些描述構(gòu)成第一版設(shè)計(jì)規(guī)格說明書。這些描述構(gòu)成第一版設(shè)計(jì)規(guī)格說明書。ZLL軟件工程軟件工程8.2 變換分析步驟七、采用啟發(fā)式設(shè)計(jì)策略,精化所得步驟七、采用啟發(fā)式設(shè)計(jì)策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量程序結(jié)構(gòu)雛形,改良軟件質(zhì)量 對(duì)于程序結(jié)構(gòu)的雛形,以對(duì)于程序結(jié)構(gòu)的雛形,以“模塊獨(dú)立模塊獨(dú)立”為為指

20、導(dǎo)思想,對(duì)模塊進(jìn)行整合或分解,旨在指導(dǎo)思想,對(duì)模塊進(jìn)行整合或分解,旨在追求高內(nèi)聚、低耦合,以及易實(shí)現(xiàn)、易測追求高內(nèi)聚、低耦合,以及易實(shí)現(xiàn)、易測試、易維護(hù)的軟件結(jié)構(gòu)。試、易維護(hù)的軟件結(jié)構(gòu)。ZLL軟件工程軟件工程結(jié)構(gòu)的優(yōu)化結(jié)構(gòu)的優(yōu)化輸入流控制模塊輸入流控制模塊主控模塊主控模塊BDAC變換流控制模塊變換流控制模塊輸出流控制模塊輸出流控制模塊EFGH輸入流控制模塊輸入流控制模塊主控模塊主控模塊BDACEFGHZLL軟件工程軟件工程8.2 變換分析上述七個(gè)設(shè)計(jì)步驟的目標(biāo)是給出軟件上述七個(gè)設(shè)計(jì)步驟的目標(biāo)是給出軟件的一個(gè)整體描述。的一個(gè)整體描述。一旦有了這樣一個(gè)描述,設(shè)計(jì)人員即一旦有了這樣一個(gè)描述,設(shè)計(jì)人員

21、即可從整體角度評(píng)價(jià)和精化軟件的總體可從整體角度評(píng)價(jià)和精化軟件的總體結(jié)構(gòu),此時(shí)修改所需耗費(fèi)不多,卻能結(jié)構(gòu),此時(shí)修改所需耗費(fèi)不多,卻能大大提高軟件質(zhì)量。大大提高軟件質(zhì)量。ZLL軟件工程軟件工程8.3 事務(wù)分析當(dāng)數(shù)據(jù)流具有明顯的事務(wù)特征時(shí),即能找到一當(dāng)數(shù)據(jù)流具有明顯的事務(wù)特征時(shí),即能找到一個(gè)事務(wù)(亦稱觸發(fā)數(shù)據(jù)項(xiàng))和一個(gè)事務(wù)中心,個(gè)事務(wù)(亦稱觸發(fā)數(shù)據(jù)項(xiàng))和一個(gè)事務(wù)中心,采用事務(wù)分析法更為適宜。采用事務(wù)分析法更為適宜。下面以下面以“家庭保安系統(tǒng)家庭保安系統(tǒng)”中中“用戶交互子系統(tǒng)用戶交互子系統(tǒng)”為例,說明事務(wù)分析法。為例,說明事務(wù)分析法。該子系統(tǒng)的第一級(jí)數(shù)據(jù)流圖(圖該子系統(tǒng)的第一級(jí)數(shù)據(jù)流圖(圖8-5)精化

22、后)精化后得到第二級(jí)數(shù)據(jù)流圖(得到第二級(jí)數(shù)據(jù)流圖(8-14)。圖中)。圖中“用戶命用戶命令數(shù)據(jù)令數(shù)據(jù)”流入系統(tǒng)后,沿三條動(dòng)作路徑之一離流入系統(tǒng)后,沿三條動(dòng)作路徑之一離開系統(tǒng),若將數(shù)據(jù)項(xiàng)開系統(tǒng),若將數(shù)據(jù)項(xiàng)“命令類型命令類型”看作事務(wù),看作事務(wù),該子系統(tǒng)的信息流具有明顯的事務(wù)特征。該子系統(tǒng)的信息流具有明顯的事務(wù)特征。ZLL軟件工程軟件工程用戶交互子系統(tǒng)的二級(jí)數(shù)據(jù)流圖用戶交互子系統(tǒng)的二級(jí)數(shù)據(jù)流圖 無效口令無效口令啟動(dòng)啟動(dòng)/停止命令停止命令口令口令啟動(dòng)啟動(dòng)/停止停止消息消息配置數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)配置命令配置命令顯示信息顯示信息“再試再試”信信息息讀取讀取用戶用戶命令命令啟動(dòng)啟動(dòng)命令命令處理處

23、理啟動(dòng)啟動(dòng)/停止停止系統(tǒng)系統(tǒng)產(chǎn)生無效產(chǎn)生無效的信息的信息讀取讀取系統(tǒng)系統(tǒng)數(shù)據(jù)數(shù)據(jù)讀取讀取配置配置文件文件讀取讀取口令口令顯示信息顯示信息和狀態(tài)和狀態(tài)比較口令比較口令與文件與文件配配 置置 信信 息息用戶命令數(shù)據(jù)用戶命令數(shù)據(jù)系統(tǒng)參數(shù)和數(shù)據(jù)系統(tǒng)參數(shù)和數(shù)據(jù)原始配置項(xiàng)原始配置項(xiàng)格式化的格式化的配置數(shù)據(jù)配置數(shù)據(jù)命令類型命令類型確認(rèn)口令確認(rèn)口令四位數(shù)四位數(shù)有效口令有效口令ZLL軟件工程軟件工程8.3 事務(wù)分析事務(wù)分析法可概括為七個(gè)步驟:事務(wù)分析法可概括為七個(gè)步驟:步驟一、復(fù)審基本系統(tǒng)模型;步驟一、復(fù)審基本系統(tǒng)模型;步驟二、復(fù)審并精化軟件數(shù)據(jù)流圖;步驟二、復(fù)審并精化軟件數(shù)據(jù)流圖;步驟三、確定數(shù)據(jù)流圖的特征;

24、步驟三、確定數(shù)據(jù)流圖的特征;步驟四、指出事務(wù)中心,確定接收部分步驟四、指出事務(wù)中心,確定接收部分 和發(fā)送部分的流界;和發(fā)送部分的流界;步驟五、映射出系統(tǒng)上層模塊結(jié)構(gòu);步驟五、映射出系統(tǒng)上層模塊結(jié)構(gòu);ZLL軟件工程軟件工程映射系統(tǒng)上層結(jié)構(gòu)模塊映射系統(tǒng)上層結(jié)構(gòu)模塊9861254371011事務(wù)中心事務(wù)中心接收部分接收部分發(fā)送部分發(fā)送部分SYSTEM輸入輸入 1散轉(zhuǎn)散轉(zhuǎn) 2SUBSYS1SUBSYS2SUBSYS3ZLL軟件工程軟件工程8.3 事務(wù)分析步驟六、分解并精化事務(wù)結(jié)構(gòu)以及每條動(dòng)步驟六、分解并精化事務(wù)結(jié)構(gòu)以及每條動(dòng)作路徑所對(duì)應(yīng)的結(jié)構(gòu)。這些子結(jié)構(gòu)是根據(jù)作路徑所對(duì)應(yīng)的結(jié)構(gòu)。這些子結(jié)構(gòu)是根據(jù)流經(jīng)每

25、一動(dòng)作路徑的數(shù)據(jù)流特征,采用本流經(jīng)每一動(dòng)作路徑的數(shù)據(jù)流特征,采用本節(jié)或上節(jié)所述設(shè)計(jì)步驟逐一導(dǎo)出的。節(jié)或上節(jié)所述設(shè)計(jì)步驟逐一導(dǎo)出的。ZLL軟件工程軟件工程設(shè)計(jì)系統(tǒng)下層模塊結(jié)構(gòu)設(shè)計(jì)系統(tǒng)下層模塊結(jié)構(gòu)9861254371011事務(wù)中心事務(wù)中心接收部分接收部分發(fā)送部分發(fā)送部分SUBSYS2 710411輸入控制輸入控制變換控制變換控制輸出控制輸出控制ZLL軟件工程軟件工程8.3 事務(wù)分析圖圖8-3-4 將模塊結(jié)構(gòu)組合,得到程序結(jié)構(gòu)雛形將模塊結(jié)構(gòu)組合,得到程序結(jié)構(gòu)雛形SYSTEM輸入輸入 1散轉(zhuǎn)散轉(zhuǎn) 2SUBSYS1SUBSYS2SUBSYS3 710411輸入控制輸入控制變換控制變換控制輸出控制輸出控制

26、36589ZLL軟件工程軟件工程8.3 事務(wù)分析步驟七、使用啟發(fā)式設(shè)計(jì)策略,精化所步驟七、使用啟發(fā)式設(shè)計(jì)策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這一得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這一步驟與變換分析法相同。步驟與變換分析法相同。SYSTEM輸入輸入 1散轉(zhuǎn)散轉(zhuǎn) 2SUBSYS2 71041136589ZLL軟件工程軟件工程8.4 設(shè)計(jì)優(yōu)化及原則8.4.1 啟發(fā)式設(shè)計(jì)策略 1調(diào)整模塊的功能和規(guī)模,降低耦合度,提高內(nèi)調(diào)整模塊的功能和規(guī)模,降低耦合度,提高內(nèi)聚度。聚度。若在幾個(gè)模塊中發(fā)現(xiàn)了共有的子功能,一般應(yīng)將若在幾個(gè)模塊中發(fā)現(xiàn)了共有的子功能,一般應(yīng)將此子功能獨(dú)立出來作為一個(gè)模塊,以提高單個(gè)模此子功

27、能獨(dú)立出來作為一個(gè)模塊,以提高單個(gè)模塊的內(nèi)聚度。合并模塊通常是為了減少控制信息塊的內(nèi)聚度。合并模塊通常是為了減少控制信息的傳遞以及對(duì)全程數(shù)據(jù)的引用,同時(shí)降低接口的的傳遞以及對(duì)全程數(shù)據(jù)的引用,同時(shí)降低接口的復(fù)雜性。復(fù)雜性。 模塊的規(guī)模沒有固定的要求。以保持模塊的獨(dú)立模塊的規(guī)模沒有固定的要求。以保持模塊的獨(dú)立性為原則。一般而言,模塊規(guī)模以一頁左右為宜性為原則。一般而言,模塊規(guī)模以一頁左右為宜(高級(jí)語言在(高級(jí)語言在75個(gè)語句左右)。個(gè)語句左右)。ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計(jì)策略啟發(fā)式設(shè)計(jì)策略2調(diào)整軟件結(jié)構(gòu)的深度、寬度、扇出和扇入調(diào)整軟件結(jié)構(gòu)的深度、寬度、扇出和扇入數(shù)目,改善軟件結(jié)構(gòu)

28、性能。數(shù)目,改善軟件結(jié)構(gòu)性能。經(jīng)驗(yàn)表明,設(shè)計(jì)良好的軟件結(jié)構(gòu)通常頂層經(jīng)驗(yàn)表明,設(shè)計(jì)良好的軟件結(jié)構(gòu)通常頂層扇出較高,中層扇出較低,底層又高扇入扇出較高,中層扇出較低,底層又高扇入到公共的實(shí)用模塊中去。到公共的實(shí)用模塊中去。 ZLL軟件工程軟件工程應(yīng)追求與避免的程序結(jié)構(gòu)應(yīng)追求與避免的程序結(jié)構(gòu) 應(yīng)追求的結(jié)構(gòu)應(yīng)追求的結(jié)構(gòu)應(yīng)避免的結(jié)構(gòu)應(yīng)避免的結(jié)構(gòu)8.4.1 啟發(fā)式設(shè)計(jì)策略ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計(jì)策略3改造程序結(jié)構(gòu),使任一模塊的作用域在其控制域之內(nèi)。改造程序結(jié)構(gòu),使任一模塊的作用域在其控制域之內(nèi)。判定判定受受F中判定中判定的影響的影響ACFEGHDB違背第三條原則違背第三條原則滿足第三條

29、原則滿足第三條原則ADCEFHGB作用域與控制域作用域與控制域 ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計(jì)策略啟發(fā)式設(shè)計(jì)策略4分析模塊之間的接口信息,降低界面分析模塊之間的接口信息,降低界面 的復(fù)雜性和冗余程度,提高協(xié)調(diào)性。的復(fù)雜性和冗余程度,提高協(xié)調(diào)性。 界面復(fù)雜是引起軟件錯(cuò)誤的一個(gè)基本因素,界面復(fù)雜是引起軟件錯(cuò)誤的一個(gè)基本因素,界面上傳遞的數(shù)據(jù)應(yīng)盡可能簡單并與模塊界面上傳遞的數(shù)據(jù)應(yīng)盡可能簡單并與模塊的功能相協(xié)調(diào),界面不協(xié)調(diào)(即在同一個(gè)的功能相協(xié)調(diào),界面不協(xié)調(diào)(即在同一個(gè)參數(shù)表內(nèi)或以其他某種方式傳遞不甚相關(guān)參數(shù)表內(nèi)或以其他某種方式傳遞不甚相關(guān)的一堆數(shù)據(jù))本身就是模塊低內(nèi)聚的表征。的一堆數(shù)據(jù)

30、)本身就是模塊低內(nèi)聚的表征。ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計(jì)策略啟發(fā)式設(shè)計(jì)策略5模塊功能應(yīng)該可預(yù)言,避免對(duì)模塊施加模塊功能應(yīng)該可預(yù)言,避免對(duì)模塊施加過多限制。過多限制。 模塊功能可預(yù)言指,只要模塊的輸入數(shù)模塊功能可預(yù)言指,只要模塊的輸入數(shù)據(jù)相同,其運(yùn)行產(chǎn)生的輸出必然相同,據(jù)相同,其運(yùn)行產(chǎn)生的輸出必然相同,也就是可以依據(jù)其輸入數(shù)據(jù)預(yù)測模塊的也就是可以依據(jù)其輸入數(shù)據(jù)預(yù)測模塊的輸出結(jié)果。此外,如果設(shè)計(jì)時(shí)對(duì)模塊中輸出結(jié)果。此外,如果設(shè)計(jì)時(shí)對(duì)模塊中局部數(shù)據(jù)的體積,控制流程的選擇及外局部數(shù)據(jù)的體積,控制流程的選擇及外部接口方式等諸因素限制過多,則以后部接口方式等諸因素限制過多,則以后為去掉這些

31、限制要增加維護(hù)開銷。為去掉這些限制要增加維護(hù)開銷。ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計(jì)策略6. 改造程序結(jié)構(gòu),追求單入口單出口的模塊。改造程序結(jié)構(gòu),追求單入口單出口的模塊。7. 為滿足設(shè)計(jì)或可移植性的要求,把某些軟為滿足設(shè)計(jì)或可移植性的要求,把某些軟 件用包(件用包(package)的形式封裝起來。)的形式封裝起來。軟件設(shè)計(jì)常常附帶一些特殊限制,例如,要求軟件設(shè)計(jì)常常附帶一些特殊限制,例如,要求程序采用覆蓋技術(shù)。此時(shí),根據(jù)模塊重要的程程序采用覆蓋技術(shù)。此時(shí),根據(jù)模塊重要的程度、被訪問的頻率及兩次引用的間隔等因素對(duì)度、被訪問的頻率及兩次引用的間隔等因素對(duì)模塊分組。模塊分組。此 外 , 程 序 中 那 些 供 選 擇 的 或此 外 , 程 序 中 那 些 供 選 擇 的 或 “ 單 調(diào)單 調(diào) ”(one shot)的模塊應(yīng)單獨(dú)存在,以便高效)的模塊應(yīng)單獨(dú)存在,以便高效地加載。地加載。ZLL軟件工程軟件工程輔助文檔輔助文檔無論是采用變換分析法還是事務(wù)分析法,獲得無論是采用變換分析法還是事務(wù)分析法,獲得程序結(jié)構(gòu)后,必須開發(fā)一系列輔助文檔,作為程序結(jié)構(gòu)后,必須開發(fā)一系列輔助文檔,作為軟件總體設(shè)計(jì)的組成部分。主要工作包括:軟件總體設(shè)計(jì)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論