版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2021-11-12信息科學與技術(shù)學院1第四章第四章 總體設(shè)計總體設(shè)計軟件工程軟件工程(software engineering)2021-11-12信息科學與技術(shù)學院2總體設(shè)計總體設(shè)計 需求分析解決需求分析解決“系統(tǒng)必須做什么系統(tǒng)必須做什么(what)”(what)”的問題,軟件的問題,軟件設(shè)計解決設(shè)計解決“怎樣做怎樣做(how)”(how)”,即從技術(shù)角度考慮如何實現(xiàn)用戶,即從技術(shù)角度考慮如何實現(xiàn)用戶需求。需求。需求解決需求解決“做正確的事做正確的事”,設(shè)計解決,設(shè)計解決“正確地做事正確地做事”。 軟件設(shè)計是把軟件需求變換成軟件表示的過程。最初這軟件設(shè)計是把軟件需求變換成軟件表示的過程。最
2、初這種表示只是描述出軟件的總框架,然后進一步細化,在此框種表示只是描述出軟件的總框架,然后進一步細化,在此框架中填入細節(jié),把它加工成在程序細節(jié)上非常接近于源程序架中填入細節(jié),把它加工成在程序細節(jié)上非常接近于源程序的表示。因此軟件設(shè)計分兩步進行:的表示。因此軟件設(shè)計分兩步進行: 1 1、將系統(tǒng)劃分成相互聯(lián)系的邏輯單元、將系統(tǒng)劃分成相互聯(lián)系的邏輯單元-總體上應該怎樣總體上應該怎樣做做-總體設(shè)計、概要設(shè)計、初步設(shè)計總體設(shè)計、概要設(shè)計、初步設(shè)計。 2 2、邏輯單元實現(xiàn)的設(shè)計、邏輯單元實現(xiàn)的設(shè)計-具體應該怎樣做具體應該怎樣做-詳細設(shè)計。詳細設(shè)計。2021-11-12信息科學與技術(shù)學院3總體的設(shè)計過程總體
3、的設(shè)計過程一、系統(tǒng)體系結(jié)構(gòu)設(shè)計一、系統(tǒng)體系結(jié)構(gòu)設(shè)計 設(shè)想供選擇的方案設(shè)想供選擇的方案 選取合理的方案選取合理的方案 推薦最佳方案推薦最佳方案 二、軟件結(jié)構(gòu)設(shè)計二、軟件結(jié)構(gòu)設(shè)計 功能分解功能分解 設(shè)計軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu) 三、數(shù)據(jù)庫設(shè)計三、數(shù)據(jù)庫設(shè)計 四、制定測試計劃四、制定測試計劃 五、書寫文檔五、書寫文檔六、審核和復審六、審核和復審2021-11-12信息科學與技術(shù)學院4軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu)設(shè)計1 1、功能分解、功能分解進行功能分解的目的,不是從應用角度,而是從進行功能分解的目的,不是從應用角度,而是從實現(xiàn)角度,針對的是少數(shù)功能。這些功能不是不明確,實現(xiàn)角度,針對的是少數(shù)功能。這些功能不是不
4、明確,而是功能實現(xiàn)起來較復雜,將其分解成比較簡單的功而是功能實現(xiàn)起來較復雜,將其分解成比較簡單的功能,使每個功能的實現(xiàn)變得明顯易懂。能,使每個功能的實現(xiàn)變得明顯易懂。該步驟將導致數(shù)據(jù)流圖的進一步細化。該步驟將導致數(shù)據(jù)流圖的進一步細化。2021-11-12信息科學與技術(shù)學院5軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu)設(shè)計2 2、 設(shè)計軟件結(jié)構(gòu)設(shè)計軟件結(jié)構(gòu)軟件結(jié)構(gòu):以模塊為單位的層次結(jié)構(gòu)。即:軟件結(jié)構(gòu):以模塊為單位的層次結(jié)構(gòu)。即:上層模塊調(diào)用它的下層模塊以實現(xiàn)程序的完整功能;上層模塊調(diào)用它的下層模塊以實現(xiàn)程序的完整功能;每個下層模塊再調(diào)用更下層模塊完成程序的一個子功能;每個下層模塊再調(diào)用更下層模塊完成程序的一個子功能;
5、最下層的模塊完成最具體的功能。最下層的模塊完成最具體的功能。 方法:根據(jù)數(shù)據(jù)流圖的層次關(guān)系導出軟件結(jié)構(gòu)。方法:根據(jù)數(shù)據(jù)流圖的層次關(guān)系導出軟件結(jié)構(gòu)。任務:任務: 劃分程序模塊劃分程序模塊 確定模塊間的邏輯關(guān)系及接口參數(shù)確定模塊間的邏輯關(guān)系及接口參數(shù)如果數(shù)據(jù)流圖設(shè)計得好,數(shù)據(jù)流圖和軟件結(jié)構(gòu)具有極如果數(shù)據(jù)流圖設(shè)計得好,數(shù)據(jù)流圖和軟件結(jié)構(gòu)具有極強的對應關(guān)系。強的對應關(guān)系。2021-11-12信息科學與技術(shù)學院6數(shù)據(jù)結(jié)構(gòu)設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計 1 1、文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)設(shè)計、文件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)設(shè)計 確定輸入、輸出文件的詳細的數(shù)據(jù)結(jié)構(gòu)。確定輸入、輸出文件的詳細的數(shù)據(jù)結(jié)構(gòu)。 確定算法所需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作規(guī)則
6、。確定算法所需的邏輯數(shù)據(jù)結(jié)構(gòu)及其操作規(guī)則。 確定邏輯數(shù)據(jù)結(jié)構(gòu)所涉及的程序模塊確定邏輯數(shù)據(jù)結(jié)構(gòu)所涉及的程序模塊2 2、數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫設(shè)計 如果目標系統(tǒng)以數(shù)據(jù)庫為基礎(chǔ),則要進行數(shù)據(jù)庫設(shè)計。如果目標系統(tǒng)以數(shù)據(jù)庫為基礎(chǔ),則要進行數(shù)據(jù)庫設(shè)計。 總體設(shè)計階段的數(shù)據(jù)庫設(shè)計包括:總體設(shè)計階段的數(shù)據(jù)庫設(shè)計包括: 數(shù)據(jù)庫管理系統(tǒng)的選擇數(shù)據(jù)庫管理系統(tǒng)的選擇 模式設(shè)計模式設(shè)計:確定有那些基本表組成和每個表的結(jié)構(gòu)。:確定有那些基本表組成和每個表的結(jié)構(gòu)。 子模式設(shè)計:具體應用所能看到的數(shù)據(jù)庫內(nèi)容。子模式設(shè)計:具體應用所能看到的數(shù)據(jù)庫內(nèi)容。 物理模式設(shè)計:確定數(shù)據(jù)的存儲結(jié)構(gòu)和存取路徑(存物理模式設(shè)計:確定數(shù)據(jù)的存儲結(jié)構(gòu)
7、和存取路徑(存儲方式,建立索引)。儲方式,建立索引)。 數(shù)據(jù)庫完整性和安全性設(shè)計。數(shù)據(jù)庫完整性和安全性設(shè)計。 2021-11-12信息科學與技術(shù)學院7制定測試計劃制定測試計劃確定對各模塊和系統(tǒng)聯(lián)調(diào)的測試方案。確定對各模塊和系統(tǒng)聯(lián)調(diào)的測試方案。 在軟件開發(fā)的早期階段考慮測試問題,在軟件開發(fā)的早期階段考慮測試問題,能促使軟件設(shè)計人員在設(shè)計時注意提高能促使軟件設(shè)計人員在設(shè)計時注意提高軟件的可測試性軟件的可測試性 。2021-11-12信息科學與技術(shù)學院8書寫文檔書寫文檔 1.1.系統(tǒng)說明:概要設(shè)計說明書系統(tǒng)說明:概要設(shè)計說明書 2.2.用戶手冊用戶手冊 3.3.測試計劃測試計劃 4.4.詳細的實現(xiàn)計
8、劃詳細的實現(xiàn)計劃 5.5.數(shù)據(jù)庫設(shè)計結(jié)果數(shù)據(jù)庫設(shè)計結(jié)果 2021-11-12信息科學與技術(shù)學院9審核和復審審核和復審 最后應該對總體設(shè)計的結(jié)果進最后應該對總體設(shè)計的結(jié)果進行嚴格的技術(shù)審查,通過之后再由行嚴格的技術(shù)審查,通過之后再由使用部門從管理角度進行復審。使用部門從管理角度進行復審。2021-11-12信息科學與技術(shù)學院10軟件設(shè)計原理軟件設(shè)計原理主要內(nèi)容w抽象抽象w模塊化模塊化w信息隱蔽(和局部化)信息隱蔽(和局部化) w模塊獨立模塊獨立 2021-11-12信息科學與技術(shù)學院11抽抽 象象 在現(xiàn)實世界中,一定事物、狀態(tài)或過程之間在現(xiàn)實世界中,一定事物、狀態(tài)或過程之間總存在著某些相似的方面
9、(共性總存在著某些相似的方面(共性) )。把這些相似。把這些相似的方面集中和概括起來,暫時忽略它們之間的差的方面集中和概括起來,暫時忽略它們之間的差異,這就是抽象。抽出事物的本質(zhì)特征而暫不考異,這就是抽象。抽出事物的本質(zhì)特征而暫不考慮它們的細節(jié)。慮它們的細節(jié)。 解決復雜問題的唯一有效的方法就是運用抽解決復雜問題的唯一有效的方法就是運用抽象的思維方式,首先用一些高級的抽象概念構(gòu)造象的思維方式,首先用一些高級的抽象概念構(gòu)造和理解它;這些高級概念又可以用一些較低級的和理解它;這些高級概念又可以用一些較低級的概念構(gòu)造和理解,如此進行下去,直到最低層次概念構(gòu)造和理解,如此進行下去,直到最低層次的具體元素
10、。的具體元素。2021-11-12信息科學與技術(shù)學院12前一頁抽抽 象象 抽象的具體表現(xiàn)為:自頂向下、逐步求精。抽象的具體表現(xiàn)為:自頂向下、逐步求精。 軟件工程過程的每一步都是對軟件解法的抽象軟件工程過程的每一步都是對軟件解法的抽象層次的一次求精。層次的一次求精。 軟件開發(fā)的三種抽象形式:軟件開發(fā)的三種抽象形式: 1 1、過程抽象:對過程的任務采用逐步求精的解、過程抽象:對過程的任務采用逐步求精的解法;法; 2 2、數(shù)據(jù)抽象:通過層次結(jié)構(gòu)來描述數(shù)據(jù)對象。、數(shù)據(jù)抽象:通過層次結(jié)構(gòu)來描述數(shù)據(jù)對象。 3 3、控制抽象:描述程序控制機制而無須規(guī)定內(nèi)、控制抽象:描述程序控制機制而無須規(guī)定內(nèi)部細節(jié)。部細節(jié)
11、。 模塊化就是一種程序設(shè)計的抽象機制。模塊化就是一種程序設(shè)計的抽象機制。2021-11-12信息科學與技術(shù)學院13模塊化模塊化 模塊:一組有序操作的總稱,它可以單獨的名字存在,模塊:一組有序操作的總稱,它可以單獨的名字存在,單獨編譯,可以通過名字來訪問。一個函數(shù)、一個過程就單獨編譯,可以通過名字來訪問。一個函數(shù)、一個過程就是一個模塊。是一個模塊。 模塊基本屬性模塊基本屬性: (1 1)功能:模塊做什么;)功能:模塊做什么; (2 2)邏輯:描述模塊內(nèi)部怎么做;)邏輯:描述模塊內(nèi)部怎么做; (3 3)狀態(tài):模塊使用時的環(huán)境和條件。)狀態(tài):模塊使用時的環(huán)境和條件。 模塊的外部屬性:模塊的外部屬性:
12、 模塊名模塊名 功能功能 參數(shù)參數(shù)( (輸入?yún)?shù)和輸出參數(shù)輸入?yún)?shù)和輸出參數(shù)) )。 模塊的內(nèi)部特性:完成模塊功能的代碼和局部數(shù)據(jù)。模塊的內(nèi)部特性:完成模塊功能的代碼和局部數(shù)據(jù)。2021-11-12信息科學與技術(shù)學院14模塊化模塊化 模塊化:以模塊作為程序設(shè)計的基本單位,把程序劃模塊化:以模塊作為程序設(shè)計的基本單位,把程序劃分成若干個模塊,每個模塊完成一個子功能,把這些模塊集分成若干個模塊,每個模塊完成一個子功能,把這些模塊集總起來,并通過模塊間的調(diào)用關(guān)系把它們組成一個完整的整總起來,并通過模塊間的調(diào)用關(guān)系把它們組成一個完整的整體,完成指定的功能。體,完成指定的功能。 采用模塊化的依據(jù):采用模
13、塊化的依據(jù): 容易被理解。容易被理解。 使問題復雜度降低,容易被實現(xiàn)。使問題復雜度降低,容易被實現(xiàn)。2021-11-12信息科學與技術(shù)學院15采用模塊化的依據(jù)采用模塊化的依據(jù) 容易被理解。容易被理解。 使問題復雜度降低,容易被實現(xiàn)。使問題復雜度降低,容易被實現(xiàn)。 設(shè)函數(shù)設(shè)函數(shù)c(x)定義問題定義問題x的復雜程度,函數(shù)的復雜程度,函數(shù)e(x)確定解決問題確定解決問題x需要的工作量(時間),對于兩個問題需要的工作量(時間),對于兩個問題p1和和p2,如果,如果 c(p1) c(p2) 則:則: e(p1) e(p2) 規(guī)律:規(guī)律: c(p1p2) c(p1) + c(p2) 必有:必有: e(p1
14、p2) e(p1)+ e(p2) 2021-11-12信息科學與技術(shù)學院16模塊化與軟件成本模塊化與軟件成本2021-11-12信息科學與技術(shù)學院17模塊化結(jié)論模塊化結(jié)論 1 1、采用模塊化,是使軟件設(shè)計從、采用模塊化,是使軟件設(shè)計從難到易的基本方法。難到易的基本方法。 2 2、模塊分解應適度。模塊規(guī)模太、模塊分解應適度。模塊規(guī)模太小,完成每個模塊的工作量很小,但小,完成每個模塊的工作量很小,但設(shè)計和調(diào)試模塊間的接口工作量隨之設(shè)計和調(diào)試模塊間的接口工作量隨之增加。增加。2021-11-12信息科學與技術(shù)學院18信息的隱蔽和局部化信息的隱蔽和局部化信息隱蔽:模塊內(nèi)部的信息(處理過程和數(shù)據(jù)),應對
15、信息隱蔽:模塊內(nèi)部的信息(處理過程和數(shù)據(jù)),應對不需要了解這些信息的模塊隱蔽起來,使它們不能訪問。不需要了解這些信息的模塊隱蔽起來,使它們不能訪問。信息隱蔽是模塊設(shè)計的基本原則。意味著在進行模塊劃信息隱蔽是模塊設(shè)計的基本原則。意味著在進行模塊劃分時,應保證模塊的獨立性,使組成程序的模塊之間只需交分時,應保證模塊的獨立性,使組成程序的模塊之間只需交換完成軟件功能所必需的信息。換完成軟件功能所必需的信息。將信息隱蔽作為模塊化設(shè)計標準,為軟件測試和維護對將信息隱蔽作為模塊化設(shè)計標準,為軟件測試和維護對模塊的修改帶來了極大的方便,使得修改時無意引入的錯誤模塊的修改帶來了極大的方便,使得修改時無意引入的
16、錯誤不會被擴散到被修改模塊以外的其它位置。不會被擴散到被修改模塊以外的其它位置。局部化:指關(guān)系密切的軟件元素物理地彼此靠近。局部局部化:指關(guān)系密切的軟件元素物理地彼此靠近。局部化是實現(xiàn)信息隱蔽的重要方法。如模塊內(nèi)使用的局部數(shù)據(jù)元化是實現(xiàn)信息隱蔽的重要方法。如模塊內(nèi)使用的局部數(shù)據(jù)元素,當模塊被調(diào)用執(zhí)行時發(fā)揮作用,退出后便失去意義。素,當模塊被調(diào)用執(zhí)行時發(fā)揮作用,退出后便失去意義。2021-11-12信息科學與技術(shù)學院19模塊獨立模塊獨立 模塊獨立模塊獨立(independence)(independence)的概念是模塊化、抽象、信息的概念是模塊化、抽象、信息隱蔽和局部化概念的直接結(jié)果。開發(fā)具有
17、獨立功能且與其他隱蔽和局部化概念的直接結(jié)果。開發(fā)具有獨立功能且與其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨立 。 第一,有效的模塊化(即具有獨立的模塊)的軟件比較容第一,有效的模塊化(即具有獨立的模塊)的軟件比較容易開發(fā)出來。易開發(fā)出來。 第二,獨立的模塊比較容易測試和維護。第二,獨立的模塊比較容易測試和維護。模塊的獨立程度的模塊的獨立程度的度量度量標準標準: : 內(nèi)聚內(nèi)聚: :衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度;衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度; 耦合耦合: :衡量不同模塊彼此間互相依賴(連接)的緊密程度。衡量
18、不同模塊彼此間互相依賴(連接)的緊密程度。2021-11-12信息科學與技術(shù)學院20模塊獨立模塊獨立 耦合耦合 耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。耦合是對一個軟件結(jié)構(gòu)內(nèi)不同模塊之間互聯(lián)程度的度量。耦合強弱取決于模塊之間接口的復雜程度,調(diào)用模塊的方式,耦合強弱取決于模塊之間接口的復雜程度,調(diào)用模塊的方式,以及通過接口的數(shù)據(jù)。實際上,耦合是接口數(shù)據(jù)對模塊獨立以及通過接口的數(shù)據(jù)。實際上,耦合是接口數(shù)據(jù)對模塊獨立性的影響。性的影響。 如果兩個模塊中的每一個都能獨立地工作而不需要另一如果兩個模塊中的每一個都能獨立地工作而不需要另一個模塊地存在,那么它們彼此完全獨立,這意味著模塊間無個模塊
19、地存在,那么它們彼此完全獨立,這意味著模塊間無任何連接,耦合程度最低任何連接,耦合程度最低。但一個軟件系統(tǒng)中的模塊之間是但一個軟件系統(tǒng)中的模塊之間是彼此協(xié)同工作的,不可能所有模塊間沒有連結(jié)。彼此協(xié)同工作的,不可能所有模塊間沒有連結(jié)。2021-11-12信息科學與技術(shù)學院21模塊獨立模塊獨立 耦合耦合 數(shù)據(jù)耦合數(shù)據(jù)耦合 :如果兩個模塊彼此間通過參數(shù)交:如果兩個模塊彼此間通過參數(shù)交換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種換信息,而且交換的信息僅僅是數(shù)據(jù),那么這種耦合稱為數(shù)據(jù)耦合。耦合稱為數(shù)據(jù)耦合。 控制耦合控制耦合:如果傳遞的信息中有控制信息,則:如果傳遞的信息中有控制信息,則這種耦合稱為控制耦
20、合。這種耦合稱為控制耦合。 數(shù)據(jù)耦合是數(shù)據(jù)耦合是低耦合低耦合。系統(tǒng)必須存在這種耦合,。系統(tǒng)必須存在這種耦合,因為只有當某些模塊的輸出數(shù)據(jù)作為另一些模塊因為只有當某些模塊的輸出數(shù)據(jù)作為另一些模塊的輸入數(shù)據(jù)時,系統(tǒng)才能完成有價值的功能。的輸入數(shù)據(jù)時,系統(tǒng)才能完成有價值的功能。 2021-11-12信息科學與技術(shù)學院22模塊獨立模塊獨立 耦合耦合 公共環(huán)境耦合公共環(huán)境耦合:當兩個或多個模塊通過一個公:當兩個或多個模塊通過一個公共數(shù)據(jù)環(huán)境(全程變量、數(shù)據(jù)文件等)相互作用時,共數(shù)據(jù)環(huán)境(全程變量、數(shù)據(jù)文件等)相互作用時,它們之間的耦合稱為公共環(huán)境耦合。它們之間的耦合稱為公共環(huán)境耦合。 內(nèi)容耦合內(nèi)容耦合:
21、一個模塊直接引用另一個模塊內(nèi)部:一個模塊直接引用另一個模塊內(nèi)部的內(nèi)容。例如:一個模塊直接訪問另一個模塊的內(nèi)的內(nèi)容。例如:一個模塊直接訪問另一個模塊的內(nèi)部數(shù)據(jù);一個模塊不通過正常入口轉(zhuǎn)到另一個模塊部數(shù)據(jù);一個模塊不通過正常入口轉(zhuǎn)到另一個模塊的內(nèi)部;兩個模塊有一部分代碼重疊。最高程度的的內(nèi)部;兩個模塊有一部分代碼重疊。最高程度的耦合是內(nèi)容耦合。耦合是內(nèi)容耦合。 原則原則:盡量使用數(shù)據(jù)耦合,少用控制耦合,限盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合 。 2021-11-12信息科學與技術(shù)學院23前一頁模塊獨立模塊獨立 內(nèi)聚內(nèi)聚 內(nèi)聚
22、是一個模塊內(nèi)各個元素彼此結(jié)合的緊內(nèi)聚是一個模塊內(nèi)各個元素彼此結(jié)合的緊密程度的度量。內(nèi)聚是信息隱蔽功能的自然擴密程度的度量。內(nèi)聚是信息隱蔽功能的自然擴展,是模塊內(nèi)部功能獨立性的表現(xiàn),理想內(nèi)聚展,是模塊內(nèi)部功能獨立性的表現(xiàn),理想內(nèi)聚的模塊只做一件事情。的模塊只做一件事情。 按程度分類按程度分類:低內(nèi)聚低內(nèi)聚 中內(nèi)聚中內(nèi)聚 高內(nèi)聚高內(nèi)聚。 2021-11-12信息科學與技術(shù)學院24模塊獨立模塊獨立 內(nèi)聚內(nèi)聚 偶然內(nèi)聚偶然內(nèi)聚:模塊中元素之間沒有實質(zhì)的聯(lián)系。:模塊中元素之間沒有實質(zhì)的聯(lián)系。模塊內(nèi)的語句難以定義其功能,它是把多個模塊模塊內(nèi)的語句難以定義其功能,它是把多個模塊共同的語句抽出來組成一個模塊共
23、同的語句抽出來組成一個模塊 邏輯內(nèi)聚邏輯內(nèi)聚:模塊完成的任務邏輯相關(guān)(如產(chǎn):模塊完成的任務邏輯相關(guān)(如產(chǎn)生各種類型的全部輸出)。不同功能混在一起,生各種類型的全部輸出)。不同功能混在一起,合用部分程序代碼,局部修改會影響全局,導致合用部分程序代碼,局部修改會影響全局,導致修改困難。修改困難。 時間內(nèi)聚時間內(nèi)聚:模塊包含的任務必須在同一時間:模塊包含的任務必須在同一時間內(nèi)執(zhí)行。內(nèi)執(zhí)行。2021-11-12信息科學與技術(shù)學院25模塊獨立模塊獨立 內(nèi)聚內(nèi)聚 過程內(nèi)聚過程內(nèi)聚:模塊內(nèi)的處理元素是相關(guān)的,模塊內(nèi)的處理元素是相關(guān)的,并且需要按特定順序執(zhí)行。并且需要按特定順序執(zhí)行。 通信內(nèi)聚通信內(nèi)聚: 模塊
24、中所有元素都使用同一模塊中所有元素都使用同一個輸入數(shù)據(jù)或產(chǎn)生同一個輸出數(shù)據(jù)。個輸入數(shù)據(jù)或產(chǎn)生同一個輸出數(shù)據(jù)。 順序內(nèi)聚順序內(nèi)聚: 一個模塊中多個處理元素均一個模塊中多個處理元素均與同一功能相關(guān),且必須順序執(zhí)行(一個處與同一功能相關(guān),且必須順序執(zhí)行(一個處理單元的輸出是另一個處理單元的輸入)。理單元的輸出是另一個處理單元的輸入)。 功能內(nèi)聚功能內(nèi)聚: 模塊中所有處理元素屬于一模塊中所有處理元素屬于一個整體,共同完成同一功能。個整體,共同完成同一功能。 2021-11-12信息科學與技術(shù)學院26模塊獨立模塊獨立 內(nèi)聚內(nèi)聚 低內(nèi)聚:偶然內(nèi)聚、邏輯內(nèi)聚和時間內(nèi)聚低內(nèi)聚:偶然內(nèi)聚、邏輯內(nèi)聚和時間內(nèi)聚 中
25、內(nèi)聚:過程內(nèi)聚、通信內(nèi)聚中內(nèi)聚:過程內(nèi)聚、通信內(nèi)聚 高內(nèi)聚:順序內(nèi)聚、功能內(nèi)聚高內(nèi)聚:順序內(nèi)聚、功能內(nèi)聚對內(nèi)聚的參考評價:對內(nèi)聚的參考評價: 功能內(nèi)聚功能內(nèi)聚 1010分分 時間內(nèi)聚時間內(nèi)聚 3 3分分 順序內(nèi)聚順序內(nèi)聚 9 9分分 邏輯內(nèi)聚邏輯內(nèi)聚 1 1分分 通信內(nèi)聚通信內(nèi)聚 7 7分分 偶然內(nèi)聚偶然內(nèi)聚 0 0分分 過程內(nèi)聚過程內(nèi)聚 5 5分分 在軟件軟件中,盡可能構(gòu)造高內(nèi)聚的模塊,辨在軟件軟件中,盡可能構(gòu)造高內(nèi)聚的模塊,辨認和避免低內(nèi)聚的模塊,最好不用偶然內(nèi)聚。認和避免低內(nèi)聚的模塊,最好不用偶然內(nèi)聚。2021-11-12信息科學與技術(shù)學院27啟發(fā)式規(guī)則啟發(fā)式規(guī)則前一頁主要內(nèi)容w改進軟件
26、結(jié)構(gòu)提高模塊獨立性改進軟件結(jié)構(gòu)提高模塊獨立性w模塊規(guī)模應該適中模塊規(guī)模應該適中 w深度、寬度、扇出和扇入應適當深度、寬度、扇出和扇入應適當 w模塊的作用域應在控制域之內(nèi)模塊的作用域應在控制域之內(nèi) w盡量降低模塊接口的復雜程度盡量降低模塊接口的復雜程度 w設(shè)計單入口出口的模塊設(shè)計單入口出口的模塊 w模塊功能應該可以預測模塊功能應該可以預測 2021-11-12信息科學與技術(shù)學院28改進軟件結(jié)構(gòu)提高模塊獨立性改進軟件結(jié)構(gòu)提高模塊獨立性 模塊獨立性主要體現(xiàn)在低耦合、高內(nèi)聚??赡K獨立性主要體現(xiàn)在低耦合、高內(nèi)聚??梢酝ㄟ^分解或合并來提高模塊獨立性。以通過分解或合并來提高模塊獨立性。 分解:把幾個模塊中
27、相同部分(相同的子功分解:把幾個模塊中相同部分(相同的子功能)分解出來建立一個新的模塊。能)分解出來建立一個新的模塊。 合并:把幾個模塊合并成一個模塊,減少對合并:把幾個模塊合并成一個模塊,減少對控制信息的傳遞,以及對全程數(shù)據(jù)的引用,降低控制信息的傳遞,以及對全程數(shù)據(jù)的引用,降低接口的復雜程度,降低塊間耦合度。接口的復雜程度,降低塊間耦合度。2021-11-12信息科學與技術(shù)學院29模塊規(guī)模應該適中模塊規(guī)模應該適中 在保證模塊功能獨立性的前提下,盡可能使模在保證模塊功能獨立性的前提下,盡可能使模塊中的語句數(shù)少。塊中的語句數(shù)少。 5050100100行。行。 美國空軍部:美國空軍部:5 5500
28、500行行 目的:可理解性、可讀性好。目的:可理解性、可讀性好。 為了保證模塊獨立性,少數(shù)模塊可以大一些。為了保證模塊獨立性,少數(shù)模塊可以大一些。 模塊過小,系統(tǒng)開銷大于有效操作。模塊過小,系統(tǒng)開銷大于有效操作。 對大模塊的分解不應降低獨立性。對大模塊的分解不應降低獨立性。 面向?qū)ο蠹夹g(shù),模塊的大小無實際意義。面向?qū)ο蠹夹g(shù),模塊的大小無實際意義。2021-11-12信息科學與技術(shù)學院30深度、寬度、扇出和扇入應適當深度、寬度、扇出和扇入應適當 深度:軟件層次結(jié)構(gòu)的層數(shù)。深度:軟件層次結(jié)構(gòu)的層數(shù)。 寬度:軟件結(jié)構(gòu)內(nèi)同一層次上模塊總數(shù)的最大值。寬度:軟件結(jié)構(gòu)內(nèi)同一層次上模塊總數(shù)的最大值。 扇入:一
29、個模塊被調(diào)用的上級模塊數(shù)量。扇入越大,表扇入:一個模塊被調(diào)用的上級模塊數(shù)量。扇入越大,表示共享該模塊的上級模塊越多。示共享該模塊的上級模塊越多。 扇出:一個模塊直接控制(調(diào)用)的模塊個數(shù)。扇出影扇出:一個模塊直接控制(調(diào)用)的模塊個數(shù)。扇出影響寬度。響寬度。 扇出過大意味著模塊過分復雜,需要控制和協(xié)調(diào)過多的扇出過大意味著模塊過分復雜,需要控制和協(xié)調(diào)過多的下級模塊。下級模塊。 一個好的系統(tǒng)的平均扇出通常是一個好的系統(tǒng)的平均扇出通常是34(上限是(上限是59) (72原理原理心理學原理)心理學原理) 一個好的軟件結(jié)構(gòu)通常頂層扇出較大,中層扇出較低,一個好的軟件結(jié)構(gòu)通常頂層扇出較大,中層扇出較低,底
30、層模塊高扇入。軟件結(jié)構(gòu)的形狀呈橢圓外形底層模塊高扇入。軟件結(jié)構(gòu)的形狀呈橢圓外形.2021-11-12信息科學與技術(shù)學院31模塊的作用域應在控制域之內(nèi)模塊的作用域應在控制域之內(nèi) 控制范圍:指包含模塊本身的所有下屬模塊??刂品秶褐赴K本身的所有下屬模塊。 作用域:模塊內(nèi)一個條件判斷可能引起的的被執(zhí)行模塊。作用域:模塊內(nèi)一個條件判斷可能引起的的被執(zhí)行模塊。 設(shè)計得好的系統(tǒng),模塊的作用域應在模塊的控制范圍內(nèi)。設(shè)計得好的系統(tǒng),模塊的作用域應在模塊的控制范圍內(nèi)。例例: a的控制范圍為:的控制范圍為:a、b、c、d、e、f 若若a的作用域也是的作用域也是a、b、c、d、e 、 f,則是合理的。,則是合
31、理的。 若若a的判斷要影響到的判斷要影響到g的執(zhí)行過程,則應調(diào)整軟件結(jié)構(gòu)。的執(zhí)行過程,則應調(diào)整軟件結(jié)構(gòu)。magbcdef2021-11-12信息科學與技術(shù)學院32盡量降低模塊接口的復雜程度盡量降低模塊接口的復雜程度 模塊接口設(shè)計原則:易理解,傳遞信息簡單且與模塊模塊接口設(shè)計原則:易理解,傳遞信息簡單且與模塊功能一致。功能一致。 例:求一元二次方程的根:例:求一元二次方程的根: quad_root(tal,x); tal-系數(shù)數(shù)組;系數(shù)數(shù)組; x-根數(shù)組根數(shù)組 quad_root(a,b,c,root1,root2); 接口復雜或不一致,是緊耦合或低內(nèi)聚的征兆。接口復雜或不一致,是緊耦合或低內(nèi)聚
32、的征兆。 盡可能不用全局變量是降低接口復雜性的一個方面。盡可能不用全局變量是降低接口復雜性的一個方面。2021-11-12信息科學與技術(shù)學院33設(shè)計單入口出口的模塊設(shè)計單入口出口的模塊前一頁 對模塊的執(zhí)行,通過模塊調(diào)用語句對模塊的執(zhí)行,通過模塊調(diào)用語句進入模塊,模塊執(zhí)行完后應返回到模塊進入模塊,模塊執(zhí)行完后應返回到模塊調(diào)用語句的下一個語句位置。調(diào)用語句的下一個語句位置。2021-11-12信息科學與技術(shù)學院34模塊功能應該可以預測模塊功能應該可以預測 模塊作為一個黑箱,只要輸入數(shù)據(jù)相同就產(chǎn)模塊作為一個黑箱,只要輸入數(shù)據(jù)相同就產(chǎn)生同樣的輸出,這個模塊的功能就是可預測的。生同樣的輸出,這個模塊的功
33、能就是可預測的。 帶有內(nèi)部帶有內(nèi)部“存儲器存儲器”(如某個標志狀態(tài))的模(如某個標志狀態(tài))的模塊的功能是不可預測的,因為它的輸出不僅取決塊的功能是不可預測的,因為它的輸出不僅取決于輸入,而且還取決于內(nèi)部于輸入,而且還取決于內(nèi)部“存儲器存儲器”的狀態(tài)。的狀態(tài)。這樣的模塊難理解、難測試、難維護。全程變量這樣的模塊難理解、難測試、難維護。全程變量使用不當或數(shù)組初始化不當會導致這種情況。使用不當或數(shù)組初始化不當會導致這種情況。 以面向?qū)ο蟮念悶槟K,不能保證輸入數(shù)據(jù)以面向?qū)ο蟮念悶槟K,不能保證輸入數(shù)據(jù)相同就能產(chǎn)生相同的輸出。相同就能產(chǎn)生相同的輸出。2021-11-12信息科學與技術(shù)學院35圖形工具圖
34、形工具-層次圖和層次圖和hipo圖圖 層次圖層次圖:描述軟件的層次結(jié)構(gòu)(:描述軟件的層次結(jié)構(gòu)(h圖)。圖)。 層次圖中每個矩形框代表一個模塊,矩形框之間的層次圖中每個矩形框代表一個模塊,矩形框之間的連線表示模塊調(diào)用關(guān)系。連線表示模塊調(diào)用關(guān)系。 層次圖適合用來描繪軟件的層次結(jié)構(gòu)。層次圖適合用來描繪軟件的層次結(jié)構(gòu)。 hipo圖圖:層次圖:層次圖+ipo圖圖 對對h圖的每個方框,都有一張圖的每個方框,都有一張ipo圖與之對應,來描圖與之對應,來描述方框所代表的模塊的處理過程。并且對每個述方框所代表的模塊的處理過程。并且對每個ipo圖都對圖都對應應h圖中方框相同的標記和編號,便于追蹤。圖中方框相同的標
35、記和編號,便于追蹤。2021-11-12信息科學與技術(shù)學院36前一頁圖形工具層次圖和層次圖和hipo圖圖2021-11-12信息科學與技術(shù)學院37前一頁圖形工具圖形工具-結(jié)構(gòu)圖結(jié)構(gòu)圖 yourdon提出的結(jié)構(gòu)圖是進行軟件結(jié)構(gòu)提出的結(jié)構(gòu)圖是進行軟件結(jié)構(gòu)設(shè)計的另一個有力工具。在結(jié)構(gòu)圖中,通常設(shè)計的另一個有力工具。在結(jié)構(gòu)圖中,通常還用帶注釋的箭頭表示模塊調(diào)用過程中來回還用帶注釋的箭頭表示模塊調(diào)用過程中來回傳遞的信息。如果希望進一步標明傳遞的信傳遞的信息。如果希望進一步標明傳遞的信息是數(shù)據(jù)還是控制信息,則可以利用注釋箭息是數(shù)據(jù)還是控制信息,則可以利用注釋箭頭尾部的形狀來區(qū)分:頭尾部的形狀來區(qū)分: 尾部
36、是尾部是空心圓空心圓,表示傳遞的是表示傳遞的是數(shù)據(jù)數(shù)據(jù) 尾部是尾部是實心圓實心圓,表示傳遞的是表示傳遞的是控制信息控制信息2021-11-12信息科學與技術(shù)學院38前一頁圖形工具圖形工具-結(jié)構(gòu)圖結(jié)構(gòu)圖2021-11-12信息科學與技術(shù)學院39前一頁圖形工具概述圖形工具概述 層次圖和結(jié)構(gòu)圖并不嚴格表示調(diào)用次層次圖和結(jié)構(gòu)圖并不嚴格表示調(diào)用次序,只表明一個模塊調(diào)用哪些模塊,至于序,只表明一個模塊調(diào)用哪些模塊,至于模塊是否還有其它成分則完全沒有表示。模塊是否還有其它成分則完全沒有表示。 通常用層次圖作為描述軟件結(jié)構(gòu)的文通常用層次圖作為描述軟件結(jié)構(gòu)的文檔。結(jié)構(gòu)圖作為文檔很不適合。但用檔。結(jié)構(gòu)圖作為文檔很
37、不適合。但用hipo圖道出結(jié)構(gòu)圖的過程可以作為檢查圖道出結(jié)構(gòu)圖的過程可以作為檢查設(shè)計正確性和評價模塊獨立性的好方法。設(shè)計正確性和評價模塊獨立性的好方法。2021-11-12信息科學與技術(shù)學院40面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法 基本思想:根據(jù)軟件需求分析的數(shù)據(jù)流圖,基本思想:根據(jù)軟件需求分析的數(shù)據(jù)流圖,將其轉(zhuǎn)換成軟件系統(tǒng)的結(jié)構(gòu)。將其轉(zhuǎn)換成軟件系統(tǒng)的結(jié)構(gòu)。 面向數(shù)據(jù)流的設(shè)計方法定義了一些面向數(shù)據(jù)流的設(shè)計方法定義了一些“映射映射”,利用這些映射可以把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)。利用這些映射可以把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)。 通常所說的結(jié)構(gòu)化設(shè)計方法(簡稱通常所說的結(jié)構(gòu)化設(shè)計方法(簡稱sd方法),方
38、法),也就是基于數(shù)據(jù)流的設(shè)計方法。也就是基于數(shù)據(jù)流的設(shè)計方法。 數(shù)據(jù)流的類型決定了映射的方法。數(shù)據(jù)流的類型決定了映射的方法。2021-11-12信息科學與技術(shù)學院41面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法主要內(nèi)容w概念概念 w變換流分析設(shè)計變換流分析設(shè)計 w事物流分析設(shè)計事物流分析設(shè)計w混合流分析設(shè)計混合流分析設(shè)計 w設(shè)計優(yōu)化設(shè)計優(yōu)化 2021-11-12信息科學與技術(shù)學院42概念概念交換流交換流 數(shù)據(jù)流圖呈線性變換特征,而且可以抽象數(shù)據(jù)流圖呈線性變換特征,而且可以抽象成三部分:成三部分:i-p-o。 信息沿輸入通路進入系統(tǒng),同時由外部形信息沿輸入通路進入系統(tǒng),同時由外部形式變換成內(nèi)部形式,
39、進入系統(tǒng)的信息通過變換式變換成內(nèi)部形式,進入系統(tǒng)的信息通過變換中心,經(jīng)加工處理以后再沿輸出通路變換成外中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。當數(shù)據(jù)流圖具有這些特部形式離開軟件系統(tǒng)。當數(shù)據(jù)流圖具有這些特征時,這種信息流就叫作變換流征時,這種信息流就叫作變換流 。 計算、分析型軟件的數(shù)據(jù)流圖通常具有這計算、分析型軟件的數(shù)據(jù)流圖通常具有這種形式。種形式。2021-11-12信息科學與技術(shù)學院43變換流圖變換流圖2021-11-12信息科學與技術(shù)學院44概念概念-事務流事務流 數(shù)據(jù)流圖呈輻射型,根據(jù)輸入數(shù)據(jù)的性質(zhì)選數(shù)據(jù)流圖呈輻射型,根據(jù)輸入數(shù)據(jù)的性質(zhì)選擇加工路徑。擇加工路徑。 若
40、處理沿輸入通道達到一個處理若處理沿輸入通道達到一個處理t,處理,處理t根根據(jù)輸入數(shù)據(jù)的類型在若干動作序列中選擇一個來據(jù)輸入數(shù)據(jù)的類型在若干動作序列中選擇一個來執(zhí)行。這類特殊的數(shù)據(jù)流稱為事務流。處理執(zhí)行。這類特殊的數(shù)據(jù)流稱為事務流。處理t稱為稱為處理中心。處理中心的任務:處理中心。處理中心的任務: (1)接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務);)接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務); (2)分析每個事務以確定它的類型;)分析每個事務以確定它的類型; (3)根據(jù)事務類型選取一條活動通道。)根據(jù)事務類型選取一條活動通道。2021-11-12信息科學與技術(shù)學院45概念概念-事務流事務流2021-11-12信
41、息科學與技術(shù)學院46設(shè)計過程設(shè)計過程2021-11-12信息科學與技術(shù)學院47變換流分析設(shè)計變換流分析設(shè)計 把具有變換流特點的數(shù)據(jù)流圖按預先確把具有變換流特點的數(shù)據(jù)流圖按預先確定的模式映射成軟件結(jié)構(gòu)定的模式映射成軟件結(jié)構(gòu) 。 (1)找出變換的中心;)找出變換的中心; (2)設(shè)計軟件結(jié)構(gòu)的頂層和第二層;)設(shè)計軟件結(jié)構(gòu)的頂層和第二層; (3)設(shè)計中下層模塊。)設(shè)計中下層模塊。 2021-11-12信息科學與技術(shù)學院48變換流分析設(shè)計變換流分析設(shè)計例子例子 考慮具有考慮具有“智能智能”的汽車數(shù)字儀表板的設(shè)計的汽車數(shù)字儀表板的設(shè)計 功能描述:功能描述: (1 1)通過模數(shù)轉(zhuǎn)換實現(xiàn)傳感器與微機的接口)通
42、過模數(shù)轉(zhuǎn)換實現(xiàn)傳感器與微機的接口 (2 2)在發(fā)光二極管面板上顯示數(shù)據(jù))在發(fā)光二極管面板上顯示數(shù)據(jù) (3 3)指示每小時英里數(shù))指示每小時英里數(shù)(mph)(mph) (4 4)指示行駛的里程)指示行駛的里程 (5 5)指示每加侖油行駛的英里數(shù)()指示每加侖油行駛的英里數(shù)(mpgmpg) (6 6)指示加速或減速)指示加速或減速 (7 7)超速警告,超過)超速警告,超過5555英里英里/ /小時,發(fā)出超速警告鈴聲。小時,發(fā)出超速警告鈴聲。2021-11-12信息科學與技術(shù)學院49數(shù)字儀表板數(shù)據(jù)流圖數(shù)字儀表板數(shù)據(jù)流圖2021-11-12信息科學與技術(shù)學院50變換流分析設(shè)計步驟變換流分析設(shè)計步驟第一
43、步:確定數(shù)據(jù)流圖的類型第一步:確定數(shù)據(jù)流圖的類型 一個數(shù)據(jù)流圖中可能含有變換流的成分,又含有事務一個數(shù)據(jù)流圖中可能含有變換流的成分,又含有事務流的成分,應根據(jù)數(shù)據(jù)流圖中占優(yōu)勢的屬性,來確定數(shù)據(jù)流的成分,應根據(jù)數(shù)據(jù)流圖中占優(yōu)勢的屬性,來確定數(shù)據(jù)流的全局特性。流的全局特性。第二步:確定輸入流和輸出流的邊界,孤立變換中心第二步:確定輸入流和輸出流的邊界,孤立變換中心 確定輸出流邊界:一般具有顯示、打印、產(chǎn)生控制等。確定輸出流邊界:一般具有顯示、打印、產(chǎn)生控制等。 確定輸入流邊界:一般作為有效輸入應是完成相應功能確定輸入流邊界:一般作為有效輸入應是完成相應功能有關(guān)的數(shù)據(jù)形式。這樣在輸入原始數(shù)據(jù)后,還要
44、做一些簡有關(guān)的數(shù)據(jù)形式。這樣在輸入原始數(shù)據(jù)后,還要做一些簡單處理,轉(zhuǎn)換成實際需要的內(nèi)部形式。單處理,轉(zhuǎn)換成實際需要的內(nèi)部形式。 上例中,完成功能所需要的輸入數(shù)據(jù)形式是:轉(zhuǎn)速增量、上例中,完成功能所需要的輸入數(shù)據(jù)形式是:轉(zhuǎn)速增量、轉(zhuǎn)速(轉(zhuǎn)轉(zhuǎn)速(轉(zhuǎn)/ /分)、燃料消耗速度。實際獲得的信號是:車分)、燃料消耗速度。實際獲得的信號是:車輪旋轉(zhuǎn)的瞬時值,燃料消耗速率瞬時值。輪旋轉(zhuǎn)的瞬時值,燃料消耗速率瞬時值。2021-11-12信息科學與技術(shù)學院51確定輸入流和輸出流的邊界確定輸入流和輸出流的邊界2021-11-12信息科學與技術(shù)學院52變換流分析設(shè)計步驟變換流分析設(shè)計步驟第三步:完成第三步:完成“第一
45、級分解第一級分解” 把軟件的功能劃分成邏輯上相互獨立的幾個子功能。把軟件的功能劃分成邏輯上相互獨立的幾個子功能。 所謂分解,就是分配控制的過程。所謂分解,就是分配控制的過程。 第一級分解:即確定最頂層模塊控制第二層哪些模塊。第一級分解:即確定最頂層模塊控制第二層哪些模塊。 對于變換流,可以明顯地分為輸入、中心變換和輸出三對于變換流,可以明顯地分為輸入、中心變換和輸出三部分,其數(shù)據(jù)流圖通常被映射成一種特殊的軟件結(jié)構(gòu):部分,其數(shù)據(jù)流圖通常被映射成一種特殊的軟件結(jié)構(gòu): 三叉控制結(jié)構(gòu)三叉控制結(jié)構(gòu) 數(shù)據(jù)輸入控制模塊:協(xié)調(diào)對所有輸入數(shù)據(jù)的接收。數(shù)據(jù)輸入控制模塊:協(xié)調(diào)對所有輸入數(shù)據(jù)的接收。 中心變換控制模塊
46、:協(xié)調(diào)對數(shù)據(jù)的各種加工處理。中心變換控制模塊:協(xié)調(diào)對數(shù)據(jù)的各種加工處理。 數(shù)據(jù)輸出控制模塊:協(xié)調(diào)對輸出數(shù)據(jù)的產(chǎn)生和輸出。數(shù)據(jù)輸出控制模塊:協(xié)調(diào)對輸出數(shù)據(jù)的產(chǎn)生和輸出。準則:盡量使第一級控制的模塊數(shù)目取最小值。準則:盡量使第一級控制的模塊數(shù)目取最小值。2021-11-12信息科學與技術(shù)學院532021-11-12信息科學與技術(shù)學院54變換流分析設(shè)計步驟變換流分析設(shè)計步驟n第四步:完成第四步:完成“第二級分解第二級分解” 把數(shù)據(jù)流圖中的每個處理映射成軟件結(jié)構(gòu)中的一個適當把數(shù)據(jù)流圖中的每個處理映射成軟件結(jié)構(gòu)中的一個適當模塊模塊-完成流圖中的處理與模塊的映射關(guān)系。方法:完成流圖中的處理與模塊的映射關(guān)系
47、。方法: 1 1、從變換中心的邊界開始,沿著輸入通路向外移動,把、從變換中心的邊界開始,沿著輸入通路向外移動,把輸入通路中的每個處理映射成軟件結(jié)構(gòu)中輸入數(shù)據(jù)控制模塊輸入通路中的每個處理映射成軟件結(jié)構(gòu)中輸入數(shù)據(jù)控制模塊控制下的低層模塊。一般數(shù)據(jù)流圖中的控制下的低層模塊。一般數(shù)據(jù)流圖中的前一個處理總是后一前一個處理總是后一個處理的下層模塊個處理的下層模塊。 2 2、沿著輸出通路向外移動,把輸出通路中的每個處理映、沿著輸出通路向外移動,把輸出通路中的每個處理映射成軟件結(jié)構(gòu)中輸出數(shù)據(jù)控制模塊控制下的低層模塊。一般射成軟件結(jié)構(gòu)中輸出數(shù)據(jù)控制模塊控制下的低層模塊。一般數(shù)據(jù)流圖中的數(shù)據(jù)流圖中的后一個處理總是
48、前一個處理的下層模塊后一個處理總是前一個處理的下層模塊。 3 3、把變換中心內(nèi)的每個處理映射成中心變換控制模塊下、把變換中心內(nèi)的每個處理映射成中心變換控制模塊下的低層模塊。一般處于的低層模塊。一般處于同一張流圖上的變換在變換框的下層同一張流圖上的變換在變換框的下層處于同一層次上處于同一層次上,按照處理的邏輯順序從左到右排列。,按照處理的邏輯順序從左到右排列。 若變換不處于同一線上,而處于同一抽象層上,其模塊若變換不處于同一線上,而處于同一抽象層上,其模塊也應處于同一層次上。也應處于同一層次上。2021-11-12信息科學與技術(shù)學院55前一頁完成第二級的分解完成第二級的分解2021-11-12信息科學與技術(shù)學院56前一頁未經(jīng)精化的結(jié)構(gòu)圖未經(jīng)精化的結(jié)構(gòu)圖2021-11-12信息科學與技術(shù)學院57變換流分析設(shè)計步驟變換流分析設(shè)計步驟n第五步:對第四步得到的結(jié)果進一步精化第五步:對第四步得到的結(jié)果進一步精化 依據(jù):設(shè)計度量:內(nèi)聚、偶合、信息隱蔽依據(jù):設(shè)計度量:內(nèi)聚、偶合、信息隱蔽 啟發(fā)式規(guī)則啟發(fā)式規(guī)則 通過合并與分解,得到一個易于實現(xiàn)、易于測試和易于維通過合并與分解,得到一個易于實現(xiàn)、易于測試和易于維護的軟件結(jié)構(gòu)。例:護的軟件結(jié)構(gòu)。例: 1、把、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度農(nóng)藥產(chǎn)品研發(fā)與生產(chǎn)合作協(xié)議2篇
- 2024年度水泥產(chǎn)品出口與代理合同3篇
- 2024年度技術(shù)服務合同標的及技術(shù)支持范圍6篇
- 2024年基礎(chǔ)設(shè)施拆遷協(xié)議3篇
- 2024年度財務人員勞動合同5篇
- 2024年度肉品研發(fā)與技術(shù)轉(zhuǎn)讓協(xié)議3篇
- 2024年度股權(quán)轉(zhuǎn)讓合同中的限制性條款
- 2024年農(nóng)機合作社農(nóng)業(yè)人才培養(yǎng)合作合同2篇
- 2024版二手房買賣合同(個人實際居住+家具家電更換服務)3篇
- 2024年農(nóng)業(yè)信息化軟件采購及推廣應用合同3篇
- 北宋詞之臨江仙夜歸臨皋【宋】蘇軾課件
- 監(jiān)理質(zhì)量評估報告
- 藥物代謝動力學-中國藥科大學中國大學mooc課后章節(jié)答案期末考試題庫2023年
- 血液科護士的營養(yǎng)與膳食指導
- 建筑與建材行業(yè)設(shè)計與工程技術(shù)培訓資料
- 鐵路押運培訓課件
- 2024年廣東匯源通集團有限公司招聘筆試參考題庫含答案解析
- 安全生產(chǎn)資格考試考務管理
- 跨境電子商務英語 課件 Unit 1 Overview of Cross-Border E-Commerce、Unit 2 Main Cross-Border E-Commerce Platforms
- 甲狀腺癌科普健康知識講座
- 上海交通大學2016年622物理化學(回憶版)考研真題
評論
0/150
提交評論