




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、CompanyLOGO軟件工程軟件工程教材:主編 曹哲 高誠 中國水利水電出版社教案:河北工業(yè)大學(xué)廊坊分院 計算機系 黃南川ZLL軟件工程軟件工程第8章面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法,即通常所說的結(jié)構(gòu)設(shè)計法面向數(shù)據(jù)流的設(shè)計方法,即通常所說的結(jié)構(gòu)設(shè)計法(Structure Design,簡稱,簡稱SD方法),由方法),由Yourdon和和Constantine等人于等人于1874年提出的,與結(jié)構(gòu)化分析年提出的,與結(jié)構(gòu)化分析(SA)相銜接,根據(jù)對數(shù)據(jù)流的分析設(shè)計軟件結(jié)構(gòu)。)相銜接,根據(jù)對數(shù)據(jù)流的分析設(shè)計軟件結(jié)構(gòu)。本章所述技術(shù)用于軟件的概要設(shè)計描述,包括模塊、本章所述技術(shù)用于軟件的概要設(shè)計
2、描述,包括模塊、界面和數(shù)據(jù)結(jié)構(gòu)的定義,這是所有后續(xù)開發(fā)的基礎(chǔ)。界面和數(shù)據(jù)結(jié)構(gòu)的定義,這是所有后續(xù)開發(fā)的基礎(chǔ)。 SD方法對那些順序處理信息且不含層次數(shù)據(jù)結(jié)構(gòu)的方法對那些順序處理信息且不含層次數(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ù)處理時,即使系統(tǒng)中使用層次數(shù)據(jù)也同樣行之有數(shù)據(jù)處理時,即使系統(tǒng)中使用層次數(shù)據(jù)也同樣行之有效。效。ZLL軟件工程軟件工程8.1 SD方法的設(shè)計過程和有關(guān)概念方法的設(shè)計過程和有關(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è)計復(fù)審和使用啟發(fā)式策略進通過設(shè)計復(fù)審和使用啟發(fā)式策略進 一步精化所得到的結(jié)構(gòu)。一步精化所得到的結(jié)構(gòu)。第第3步所用映射方法涉及信息流的類型。信息流分步所用映射方法涉及信息流的類型。信息流分為變換流和事務(wù)流兩種類型。為變換流和事務(wù)流兩種類型。ZLL軟件工程軟件工程1)變換流)變換流變換流變換流 在基本系統(tǒng)模型(即頂級數(shù)據(jù)在基本系統(tǒng)模型(即頂級數(shù)據(jù)
4、流圖)中信息通常以流圖)中信息通常以“外部世界外部世界”所具所具有的形式進入系統(tǒng),經(jīng)過處理后又以這有的形式進入系統(tǒng),經(jīng)過處理后又以這種形式離開系統(tǒng)。種形式離開系統(tǒng)。輸入流輸入流外外部部表表示示內(nèi)內(nèi)部部表表示示信信息息時間時間信息流信息流輸出流輸出流變換流變換流ZLL軟件工程軟件工程1)變換流)變換流典型的變換流典型的變換流變換流的特點是:經(jīng)過變換變換流的特點是:經(jīng)過變換B的數(shù)據(jù)流一部分先的數(shù)據(jù)流一部分先經(jīng)過變換經(jīng)過變換C到達變換到達變換E,然后另一部分經(jīng)過變換,然后另一部分經(jīng)過變換D到達到達E;即;即C和和D是順序結(jié)構(gòu)。是順序結(jié)構(gòu)。ABCDEFZLL軟件工程軟件工程2)事務(wù)流)事務(wù)流事務(wù)流事務(wù)
5、流單個數(shù)據(jù)項稱為事務(wù)(單個數(shù)據(jù)項稱為事務(wù)(transaction)沿傳入路徑(也稱接受通道)進入系統(tǒng),由外部形沿傳入路徑(也稱接受通道)進入系統(tǒng),由外部形式變換為內(nèi)部形式后到達事務(wù)中心,事務(wù)中心根據(jù)式變換為內(nèi)部形式后到達事務(wù)中心,事務(wù)中心根據(jù)數(shù)據(jù)項計值結(jié)果從若干動作路徑中選定一條繼續(xù)執(zhí)數(shù)據(jù)項計值結(jié)果從若干動作路徑中選定一條繼續(xù)執(zhí)行。行??梢娝且粋€選擇結(jié)構(gòu)??梢娝且粋€選擇結(jié)構(gòu)。事務(wù)中心事務(wù)中心TB事務(wù)事務(wù)CA事務(wù)流事務(wù)流ZLL軟件工程軟件工程圖面向數(shù)據(jù)流的設(shè)計精化數(shù)據(jù)流圖精化數(shù)據(jù)流圖流的類流的類型型確定事務(wù)中心確定事務(wù)中心和各動作路徑和各動作路徑確定輸入輸出確定輸入輸出流界流界映射為事務(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ù)審詳細設(shè)計詳細設(shè)計通過通過“變換變換”“事務(wù)事務(wù)”ZLL軟件工程軟件工程8.2 變換分析下面以下面以“家庭保安系統(tǒng)家庭保安系統(tǒng)”的傳感器監(jiān)測的傳感器監(jiān)測子系統(tǒng)為例說明變換分析的各個步驟。子系統(tǒng)為例說明變換分析的各個步驟。 步驟一、復(fù)審基本系統(tǒng)模型步驟一、復(fù)審基本系統(tǒng)模型 基本系統(tǒng)模型指頂級基本系統(tǒng)模型指頂級DFD和所有由外部和所有由外部提供的信息。這一設(shè)計步驟是對系統(tǒng)規(guī)提供的信息。這一設(shè)計步驟是對
7、系統(tǒng)規(guī)格說明書和軟件需求規(guī)格說明書進行評格說明書和軟件需求規(guī)格說明書進行評估。這兩個文檔描述軟件界面上信息的估。這兩個文檔描述軟件界面上信息的流程和結(jié)構(gòu)。流程和結(jié)構(gòu)。 ZLL軟件工程軟件工程“家庭保安系統(tǒng)家庭保安系統(tǒng)”的頂級數(shù)據(jù)流圖的頂級數(shù)據(jù)流圖警報類別警報類別家庭保安家庭保安系統(tǒng)軟件系統(tǒng)軟件控制面板控制面板顯示器顯示器警報器警報器電話線電話線傳感器傳感器用戶命令用戶命令顯示信息顯示信息傳感數(shù)據(jù)傳感數(shù)據(jù)電話撥號音頻電話撥號音頻ZLL軟件工程軟件工程“家庭保安系統(tǒng)家庭保安系統(tǒng)”的第一級的第一級DFD 電話撥號音頻電話撥號音頻配置數(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)配置配置控制面板控制面板顯示器顯示器警報器警報器電話線電話線傳感器傳感器配置信息配置信息配置配置 命令命令啟動啟動/ 停止命令停止命令原口令原口令有效口令有效口令傳感器信息傳感器信息報警類別報警類別傳感數(shù)據(jù)傳感數(shù)據(jù)顯示顯示 信息信息用戶命令用戶命令口令口令啟動啟動/停止停止系統(tǒng)和狀態(tài)系統(tǒng)和狀態(tài)啟動或啟動或停止消息停止消息口令口令核對核對用用戶戶交交互互子子系系統(tǒng)統(tǒng)圖圖8-5ZLL軟件工程軟件工程8.2 變換分析步驟二、復(fù)審和精化軟件數(shù)據(jù)流圖步驟二、復(fù)審和精化軟件數(shù)據(jù)流圖 這一步主要是對軟件需求規(guī)格說明書中的分這一步主要是對軟件需求規(guī)格說
9、明書中的分析模型進行精化,直至獲得足夠詳細的析模型進行精化,直至獲得足夠詳細的DFD。v例如,由例如,由“傳感器監(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”的第一級和第的第一級和第二級二級DFD進一步推導(dǎo)出第三級數(shù)據(jù)流圖,此時,進一步推導(dǎo)出第三級數(shù)據(jù)流圖,此時,每個變換對應(yīng)一個獨立的功能,可以用一個具每個變換對應(yīng)一個獨立的功能,可以用一個具有較高內(nèi)聚度的模塊實現(xiàn),至此已有足夠的信有較高內(nèi)聚度的模塊實現(xiàn),至此已有足夠的信息可用于設(shè)計息可用于設(shè)計“傳感器監(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)”的第二級的第二級
10、DFD 傳感器信息傳感器信息傳感器標(biāo)志傳感器標(biāo)志的類型和位置的類型和位置傳感數(shù)據(jù)傳感數(shù)據(jù)警報類別警報類別警報數(shù)據(jù)警報數(shù)據(jù)顯示顯示格式格式產(chǎn)生警產(chǎn)生警報信號報信號電話電話撥號撥號異常數(shù)異常數(shù)據(jù)判別據(jù)判別讀取傳讀取傳感數(shù)據(jù)感數(shù)據(jù)配配 置置 信信 息息配置數(shù)據(jù)配置數(shù)據(jù)傳感器傳感器標(biāo)識類型標(biāo)識類型電話號碼電話號碼電話撥號音頻電話撥號音頻ZLL軟件工程軟件工程“傳感器監(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”的第三級的第三級DFD 配配 置置 信信 息息警報條件碼警報條件碼傳感器標(biāo)志傳感器標(biāo)志定時信息定時信息傳感數(shù)據(jù)傳感數(shù)據(jù)電話號碼電話號碼對應(yīng)的音頻對應(yīng)的音頻電話撥電話撥號音頻號音頻傳感器信息傳感器信息號碼表號碼表電
11、話號碼電話號碼讀取傳讀取傳感數(shù)據(jù)感數(shù)據(jù)獲取響獲取響應(yīng)信息應(yīng)信息建立警建立警報條件報條件選擇電選擇電話號碼話號碼連通電連通電話網(wǎng)話網(wǎng)產(chǎn)生撥產(chǎn)生撥號脈沖號脈沖產(chǎn)生警產(chǎn)生警報信號報信號格式化格式化顯示顯示產(chǎn)生產(chǎn)生顯示顯示傳感器標(biāo)志的傳感器標(biāo)志的類型和位置類型和位置格式化標(biāo)志的格式化標(biāo)志的類型和位置類型和位置置傳感器標(biāo)識置傳感器標(biāo)識警報數(shù)據(jù)警報數(shù)據(jù)警報類別警報類別配配 置置 數(shù)數(shù) 據(jù)據(jù)ZLL軟件工程軟件工程8.2 變換分析步驟三、確定步驟三、確定DFD的特性,判定它為變換的特性,判定它為變換流還是事務(wù)流。流還是事務(wù)流。v 以圖以圖8 2 4所示所示DFD為例,數(shù)據(jù)沿一個為例,數(shù)據(jù)沿一個傳入路徑進來,沿
12、三個傳出路徑離開,沒傳入路徑進來,沿三個傳出路徑離開,沒有明顯的事務(wù)中心,因此,該信息流應(yīng)屬有明顯的事務(wù)中心,因此,該信息流應(yīng)屬變換流。變換流。步驟四、劃定輸入流和輸出流的邊界,孤步驟四、劃定輸入流和輸出流的邊界,孤立變換中心。立變換中心。ZLL軟件工程軟件工程8.2 變換分析步驟五、執(zhí)行步驟五、執(zhí)行“一級分解一級分解”(first level factoring) 一級分解的目標(biāo)是導(dǎo)出具有三個層次的程一級分解的目標(biāo)是導(dǎo)出具有三個層次的程序結(jié)構(gòu),頂層為主控模塊;底層模塊執(zhí)行序結(jié)構(gòu),頂層為主控模塊;底層模塊執(zhí)行輸入、計算和輸出功能;中層模塊控制、輸入、計算和輸出功能;中層模塊控制、協(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)名稱表示模塊的功能;方框之間的有向邊(無二義時也可用無向邊)表示模塊間的調(diào)用關(guān)向邊(無二義時也可用無向邊)表示模塊間的調(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 變換分析對應(yīng)于一級分解的上兩層模塊,即主控模對應(yīng)于一級分解的上兩層模塊,即主控模塊和下面幾個中層控制模塊:塊和下面幾個中層控制模塊: 輸入流控制模塊,接收所有輸入數(shù)據(jù);輸入流控制模塊,接收所有輸入數(shù)據(jù); 變換流控制模塊,對內(nèi)部形式數(shù)據(jù)進行加變換流控制模塊,對內(nèi)部形式數(shù)據(jù)進行加工、處理;工、處理; 輸出流控制模塊,產(chǎn)生輸出數(shù)據(jù)。輸出流控制模塊,產(chǎn)生輸出數(shù)據(jù)。ZLL軟件工程軟件工程8.2 變換分析一級分解一級分解輸入流輸入流變換流變換流變換流變換流控制模塊控制模塊輸入流輸入流控制模塊控制模塊
15、輸出流輸出流主控模塊主控模塊輸出流輸出流控制模塊控制模塊ABCDEFGHZLL軟件工程軟件工程8.2 變換分析一個簡單三叉結(jié)構(gòu),實際處理大型系統(tǒng)一個簡單三叉結(jié)構(gòu),實際處理大型系統(tǒng)的復(fù)雜數(shù)據(jù)流時,可能需要多個模塊對的復(fù)雜數(shù)據(jù)流時,可能需要多個模塊對應(yīng)一個模塊的功能。應(yīng)一個模塊的功能?!耙患壏纸庖患壏纸狻笨偟目偟脑瓌t是,在完成控制功能并保持低耦合原則是,在完成控制功能并保持低耦合度、高內(nèi)聚度的前提下盡可能地減少模度、高內(nèi)聚度的前提下盡可能地減少模塊的數(shù)量。塊的數(shù)量?!皞鞲衅鞅O(jiān)測子系統(tǒng)傳感器監(jiān)測子系統(tǒng)”一級分解,其中一級分解,其中控制模塊的名字概括了所有下屬模塊的控制模塊的名字概括了所有下屬模塊的功
16、能。功能。ZLL軟件工程軟件工程傳感器監(jiān)測子系統(tǒng)一級分解結(jié)果傳感器監(jiān)測子系統(tǒng)一級分解結(jié)果 警報條件控警報條件控制模塊制模塊傳感器輸入傳感器輸入控制模塊控制模塊主控模塊主控模塊警報輸出控警報輸出控制模塊制模塊配配 置置 信信 息息ZLL軟件工程軟件工程8.2 變換分析步驟六、執(zhí)行步驟六、執(zhí)行“二級分解二級分解”。 二級分解的任務(wù)是把數(shù)據(jù)流圖中每個處理二級分解的任務(wù)是把數(shù)據(jù)流圖中每個處理框映射為結(jié)構(gòu)圖中的一個模塊。其過程是框映射為結(jié)構(gòu)圖中的一個模塊。其過程是從變換中心的邊界開始沿輸入、輸出通道從變換中心的邊界開始沿輸入、輸出通道向外移動;從變換中心的輸入向外移動;從變換中心的輸入(出出)邊界向外邊
17、界向外移動,把遇到的每個處理框映射為結(jié)構(gòu)圖移動,把遇到的每個處理框映射為結(jié)構(gòu)圖中相應(yīng)控制模塊下的一個模塊。中相應(yīng)控制模塊下的一個模塊。ZLL軟件工程軟件工程二級分解二級分解 輸入流輸入流變換流變換流輸入流控制輸入流控制模塊模塊輸出流輸出流主控模塊主控模塊ABCDEFGHBDAC變換流控制變換流控制模塊模塊輸出流控制輸出流控制模塊模塊EFGHZLL軟件工程軟件工程8.2 變換分析DFD的處理框與程序結(jié)構(gòu)模塊一一對應(yīng),的處理框與程序結(jié)構(gòu)模塊一一對應(yīng),但按照軟件設(shè)計原則進行設(shè)計時,可能但按照軟件設(shè)計原則進行設(shè)計時,可能需要把幾個處理框聚合為一個模塊,或需要把幾個處理框聚合為一個模塊,或者把一個處理框
18、裂變?yōu)閹讉€模塊??傊?,者把一個處理框裂變?yōu)閹讉€模塊??傊瑧?yīng)根據(jù)應(yīng)根據(jù)“良好良好”設(shè)計的標(biāo)準(zhǔn),進行二級設(shè)計的標(biāo)準(zhǔn),進行二級分解。分解。 二級分解后得到的僅僅是程序結(jié)構(gòu)的二級分解后得到的僅僅是程序結(jié)構(gòu)的“雛形雛形”(first cut),后續(xù)的復(fù)審和),后續(xù)的復(fù)審和精化會反復(fù)修改。精化會反復(fù)修改。ZLL軟件工程軟件工程8.2 變換分析程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍程序結(jié)構(gòu)的模塊名已隱含了模塊功能,但仍有必要為每個模塊寫一個簡要的處理說明,有必要為每個模塊寫一個簡要的處理說明,它應(yīng)當(dāng)包括:它應(yīng)當(dāng)包括: 1進出模塊的信息(接口描述);進出模塊的信息(接口描述); 2模塊的局部信息;模塊的局部
19、信息; 3處理過程陳述,包括任務(wù)和主要的判處理過程陳述,包括任務(wù)和主要的判 斷點的位置、條件;斷點的位置、條件; 4對有關(guān)限制和一些專門特性的簡要說對有關(guān)限制和一些專門特性的簡要說 明(例如,文件明(例如,文件I/O,獨立于硬件的,獨立于硬件的 特性,特殊的實時要求等)。特性,特殊的實時要求等)。這些描述構(gòu)成第一版設(shè)計規(guī)格說明書。這些描述構(gòu)成第一版設(shè)計規(guī)格說明書。ZLL軟件工程軟件工程8.2 變換分析步驟七、采用啟發(fā)式設(shè)計策略,精化所得步驟七、采用啟發(fā)式設(shè)計策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量程序結(jié)構(gòu)雛形,改良軟件質(zhì)量 對于程序結(jié)構(gòu)的雛形,以對于程序結(jié)構(gòu)的雛形,以“模塊獨立模塊獨立”為為指
20、導(dǎo)思想,對模塊進行整合或分解,旨在指導(dǎo)思想,對模塊進行整合或分解,旨在追求高內(nèi)聚、低耦合,以及易實現(xiàn)、易測追求高內(nèi)聚、低耦合,以及易實現(xiàn)、易測試、易維護的軟件結(jié)構(gòu)。試、易維護的軟件結(jié)構(gòu)。ZLL軟件工程軟件工程結(jié)構(gòu)的優(yōu)化結(jié)構(gòu)的優(yōu)化輸入流控制模塊輸入流控制模塊主控模塊主控模塊BDAC變換流控制模塊變換流控制模塊輸出流控制模塊輸出流控制模塊EFGH輸入流控制模塊輸入流控制模塊主控模塊主控模塊BDACEFGHZLL軟件工程軟件工程8.2 變換分析上述七個設(shè)計步驟的目標(biāo)是給出軟件上述七個設(shè)計步驟的目標(biāo)是給出軟件的一個整體描述。的一個整體描述。一旦有了這樣一個描述,設(shè)計人員即一旦有了這樣一個描述,設(shè)計人員
21、即可從整體角度評價和精化軟件的總體可從整體角度評價和精化軟件的總體結(jié)構(gòu),此時修改所需耗費不多,卻能結(jié)構(gòu),此時修改所需耗費不多,卻能大大提高軟件質(zhì)量。大大提高軟件質(zhì)量。ZLL軟件工程軟件工程8.3 事務(wù)分析當(dāng)數(shù)據(jù)流具有明顯的事務(wù)特征時,即能找到一當(dāng)數(shù)據(jù)流具有明顯的事務(wù)特征時,即能找到一個事務(wù)(亦稱觸發(fā)數(shù)據(jù)項)和一個事務(wù)中心,個事務(wù)(亦稱觸發(fā)數(shù)據(jù)項)和一個事務(wù)中心,采用事務(wù)分析法更為適宜。采用事務(wù)分析法更為適宜。下面以下面以“家庭保安系統(tǒng)家庭保安系統(tǒng)”中中“用戶交互子系統(tǒng)用戶交互子系統(tǒng)”為例,說明事務(wù)分析法。為例,說明事務(wù)分析法。該子系統(tǒng)的第一級數(shù)據(jù)流圖(圖該子系統(tǒng)的第一級數(shù)據(jù)流圖(圖8-5)精化
22、后)精化后得到第二級數(shù)據(jù)流圖(得到第二級數(shù)據(jù)流圖(8-14)。圖中)。圖中“用戶命用戶命令數(shù)據(jù)令數(shù)據(jù)”流入系統(tǒng)后,沿三條動作路徑之一離流入系統(tǒng)后,沿三條動作路徑之一離開系統(tǒng),若將數(shù)據(jù)項開系統(tǒng),若將數(shù)據(jù)項“命令類型命令類型”看作事務(wù),看作事務(wù),該子系統(tǒng)的信息流具有明顯的事務(wù)特征。該子系統(tǒng)的信息流具有明顯的事務(wù)特征。ZLL軟件工程軟件工程用戶交互子系統(tǒng)的二級數(shù)據(jù)流圖用戶交互子系統(tǒng)的二級數(shù)據(jù)流圖 無效口令無效口令啟動啟動/停止命令停止命令口令口令啟動啟動/停止停止消息消息配置數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)配置數(shù)據(jù)配置命令配置命令顯示信息顯示信息“再試再試”信信息息讀取讀取用戶用戶命令命令啟動啟動命令命令處理處
23、理啟動啟動/停止停止系統(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ù)原始配置項原始配置項格式化的格式化的配置數(shù)據(jù)配置數(shù)據(jù)命令類型命令類型確認口令確認口令四位數(shù)四位數(shù)有效口令有效口令ZLL軟件工程軟件工程8.3 事務(wù)分析事務(wù)分析法可概括為七個步驟:事務(wù)分析法可概括為七個步驟:步驟一、復(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)以及每條動步驟六、分解并精化事務(wù)結(jié)構(gòu)以及每條動作路徑所對應(yīng)的結(jié)構(gòu)。這些子結(jié)構(gòu)是根據(jù)作路徑所對應(yīng)的結(jié)構(gòu)。這些子結(jié)構(gòu)是根據(jù)流經(jīng)每
25、一動作路徑的數(shù)據(jù)流特征,采用本流經(jīng)每一動作路徑的數(shù)據(jù)流特征,采用本節(jié)或上節(jié)所述設(shè)計步驟逐一導(dǎo)出的。節(jié)或上節(jié)所述設(shè)計步驟逐一導(dǎo)出的。ZLL軟件工程軟件工程設(shè)計系統(tǒng)下層模塊結(jié)構(gòu)設(shè)計系統(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è)計策略,精化所步驟七、使用啟發(fā)式設(shè)計策略,精化所得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這一得程序結(jié)構(gòu)雛形,改良軟件質(zhì)量。這一步驟與變換分析法相同。步驟與變換分析法相同。SYSTEM輸入輸入 1散轉(zhuǎn)散轉(zhuǎn) 2SUBSYS2 71041136589ZLL軟件工程軟件工程8.4 設(shè)計優(yōu)化及原則8.4.1 啟發(fā)式設(shè)計策略 1調(diào)整模塊的功能和規(guī)模,降低耦合度,提高內(nèi)調(diào)整模塊的功能和規(guī)模,降低耦合度,提高內(nèi)聚度。聚度。若在幾個模塊中發(fā)現(xiàn)了共有的子功能,一般應(yīng)將若在幾個模塊中發(fā)現(xiàn)了共有的子功能,一般應(yīng)將此子功能獨立出來作為一個模塊,以提高單個模此子功
27、能獨立出來作為一個模塊,以提高單個模塊的內(nèi)聚度。合并模塊通常是為了減少控制信息塊的內(nèi)聚度。合并模塊通常是為了減少控制信息的傳遞以及對全程數(shù)據(jù)的引用,同時降低接口的的傳遞以及對全程數(shù)據(jù)的引用,同時降低接口的復(fù)雜性。復(fù)雜性。 模塊的規(guī)模沒有固定的要求。以保持模塊的獨立模塊的規(guī)模沒有固定的要求。以保持模塊的獨立性為原則。一般而言,模塊規(guī)模以一頁左右為宜性為原則。一般而言,模塊規(guī)模以一頁左右為宜(高級語言在(高級語言在75個語句左右)。個語句左右)。ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計策略啟發(fā)式設(shè)計策略2調(diào)整軟件結(jié)構(gòu)的深度、寬度、扇出和扇入調(diào)整軟件結(jié)構(gòu)的深度、寬度、扇出和扇入數(shù)目,改善軟件結(jié)構(gòu)
28、性能。數(shù)目,改善軟件結(jié)構(gòu)性能。經(jīng)驗表明,設(shè)計良好的軟件結(jié)構(gòu)通常頂層經(jīng)驗表明,設(shè)計良好的軟件結(jié)構(gòu)通常頂層扇出較高,中層扇出較低,底層又高扇入扇出較高,中層扇出較低,底層又高扇入到公共的實用模塊中去。到公共的實用模塊中去。 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è)計策略ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計策略3改造程序結(jié)構(gòu),使任一模塊的作用域在其控制域之內(nèi)。改造程序結(jié)構(gòu),使任一模塊的作用域在其控制域之內(nèi)。判定判定受受F中判定中判定的影響的影響ACFEGHDB違背第三條原則違背第三條原則滿足第三條
29、原則滿足第三條原則ADCEFHGB作用域與控制域作用域與控制域 ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計策略啟發(fā)式設(shè)計策略4分析模塊之間的接口信息,降低界面分析模塊之間的接口信息,降低界面 的復(fù)雜性和冗余程度,提高協(xié)調(diào)性。的復(fù)雜性和冗余程度,提高協(xié)調(diào)性。 界面復(fù)雜是引起軟件錯誤的一個基本因素,界面復(fù)雜是引起軟件錯誤的一個基本因素,界面上傳遞的數(shù)據(jù)應(yīng)盡可能簡單并與模塊界面上傳遞的數(shù)據(jù)應(yīng)盡可能簡單并與模塊的功能相協(xié)調(diào),界面不協(xié)調(diào)(即在同一個的功能相協(xié)調(diào),界面不協(xié)調(diào)(即在同一個參數(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è)計策略啟發(fā)式設(shè)計策略5模塊功能應(yīng)該可預(yù)言,避免對模塊施加模塊功能應(yīng)該可預(yù)言,避免對模塊施加過多限制。過多限制。 模塊功能可預(yù)言指,只要模塊的輸入數(shù)模塊功能可預(yù)言指,只要模塊的輸入數(shù)據(jù)相同,其運行產(chǎn)生的輸出必然相同,據(jù)相同,其運行產(chǎn)生的輸出必然相同,也就是可以依據(jù)其輸入數(shù)據(jù)預(yù)測模塊的也就是可以依據(jù)其輸入數(shù)據(jù)預(yù)測模塊的輸出結(jié)果。此外,如果設(shè)計時對模塊中輸出結(jié)果。此外,如果設(shè)計時對模塊中局部數(shù)據(jù)的體積,控制流程的選擇及外局部數(shù)據(jù)的體積,控制流程的選擇及外部接口方式等諸因素限制過多,則以后部接口方式等諸因素限制過多,則以后為去掉這些
31、限制要增加維護開銷。為去掉這些限制要增加維護開銷。ZLL軟件工程軟件工程8.4.1 啟發(fā)式設(shè)計策略6. 改造程序結(jié)構(gòu),追求單入口單出口的模塊。改造程序結(jié)構(gòu),追求單入口單出口的模塊。7. 為滿足設(shè)計或可移植性的要求,把某些軟為滿足設(shè)計或可移植性的要求,把某些軟 件用包(件用包(package)的形式封裝起來。)的形式封裝起來。軟件設(shè)計常常附帶一些特殊限制,例如,要求軟件設(shè)計常常附帶一些特殊限制,例如,要求程序采用覆蓋技術(shù)。此時,根據(jù)模塊重要的程程序采用覆蓋技術(shù)。此時,根據(jù)模塊重要的程度、被訪問的頻率及兩次引用的間隔等因素對度、被訪問的頻率及兩次引用的間隔等因素對模塊分組。模塊分組。此 外 , 程 序 中 那 些 供 選 擇 的 或此 外 , 程 序 中 那 些 供 選 擇 的 或 “ 單 調(diào)單 調(diào) ”(one shot)的模塊應(yīng)單獨存在,以便高效)的模塊應(yīng)單獨存在,以便高效地加載。地加載。ZLL軟件工程軟件工程輔助文檔輔助文檔無論是采用變換分析法還是事務(wù)分析法,獲得無論是采用變換分析法還是事務(wù)分析法,獲得程序結(jié)構(gòu)后,必須開發(fā)一系列輔助文檔,作為程序結(jié)構(gòu)后,必須開發(fā)一系列輔助文檔,作為軟件總體設(shè)計的組成部分。主要工作包括:軟件總體設(shè)計的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生產(chǎn)部經(jīng)理工作總結(jié)與未來工作計劃
- 人教版一年級道德與法治實踐活動計劃
- 寵物醫(yī)院應(yīng)急救援演練計劃
- 北京市部分區(qū)2022-2023學(xué)年高二上學(xué)期期末考試英語試題解析匯編:七選五
- 五年級數(shù)學(xué)(小數(shù)四則混合運算)計算題專項練習(xí)及答案匯編
- 女性手工創(chuàng)業(yè)支持活動計劃
- 工程機械技師考題復(fù)習(xí)測試題
- 綠化工程施工廢棄物控制措施
- 2025新人教版小學(xué)二年級綜合實踐活動計劃
- 科學(xué)實驗教育培訓(xùn)計劃
- 第八章-實數(shù)(單元復(fù)習(xí)課件)七年級數(shù)學(xué)下冊同步高效課堂(人教版2024)
- 浙江百順服裝有限公司年產(chǎn)100萬套服裝及135萬套床上用品生產(chǎn)線項目環(huán)境影響報告
- 交通大數(shù)據(jù)的應(yīng)用試題及答案
- 2024年中石油招聘考試真題
- 企業(yè)環(huán)保與健康安全管理體系的構(gòu)建與實施
- 《抽水蓄能電站樞紐布置格局比選專題報告編制規(guī)程 》征求意見稿
- 廣東省深圳市2025年高三年級第二次調(diào)研考試數(shù)學(xué)試題(含答案)
- 供應(yīng)商維保管理制度
- 行政事業(yè)單位內(nèi)部控制信息系統(tǒng)建設(shè)實施方案
- 山東棗莊科技職業(yè)學(xué)院棗莊工程技師學(xué)院招聘考試真題2024
- 小學(xué)網(wǎng)球教學(xué)教案網(wǎng)球
評論
0/150
提交評論