軟件工程PPT教學(xué)課件第五章 總體設(shè)計
《軟件工程PPT教學(xué)課件第五章 總體設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《軟件工程PPT教學(xué)課件第五章 總體設(shè)計(47頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第五章第五章 總體設(shè)計總體設(shè)計(System Design)開始考慮開始考慮“How”,但仍屬高層設(shè)計(確定黑盒關(guān)系),但仍屬高層設(shè)計(確定黑盒關(guān)系)1. 過程過程1、確定最佳方案:、確定最佳方案: 從從DFD出發(fā)進(jìn)行任務(wù)分解,不同的劃分方法即對應(yīng)出發(fā)進(jìn)行任務(wù)分解,不同的劃分方法即對應(yīng) 不同的方案。每個合理的方案應(yīng)配備下列不同的方案。每個合理的方案應(yīng)配備下列4份資料:份資料: 系統(tǒng)流程圖系統(tǒng)流程圖 組成系統(tǒng)的物理元素清單組成系統(tǒng)的物理元素清單 成本成本/效益分析效益分析 進(jìn)度計劃進(jìn)度計劃 選擇最佳方案并制定詳細(xì)的實現(xiàn)計劃(主要技術(shù)詳選擇最佳方案并制定詳細(xì)的實現(xiàn)計劃(主要技術(shù)詳見第十三章)見第十
2、三章)1. 過程過程2、結(jié)構(gòu)設(shè)計、結(jié)構(gòu)設(shè)計 模塊化思想:模塊化思想: 將將DFD細(xì)化,至每個子功能都明白易懂;每細(xì)化,至每個子功能都明白易懂;每個模塊完成一個子功能;每層模塊合成一個高一個模塊完成一個子功能;每層模塊合成一個高一級的功能。級的功能。 主要工具有主要工具有 System Design Hierarchy及及HIPO圖等。圖等。3、數(shù)據(jù)庫設(shè)計、數(shù)據(jù)庫設(shè)計 模式設(shè)計:確定物理數(shù)據(jù)庫結(jié)構(gòu)模式設(shè)計:確定物理數(shù)據(jù)庫結(jié)構(gòu) 子模式設(shè)計:用戶使用的數(shù)據(jù)視圖子模式設(shè)計:用戶使用的數(shù)據(jù)視圖 完整性、安全性設(shè)計完整性、安全性設(shè)計 優(yōu)化優(yōu)化5、書寫文檔、書寫文檔系統(tǒng)說明系統(tǒng)說明用戶手冊用戶手冊測試計劃測
3、試計劃詳細(xì)實現(xiàn)計劃詳細(xì)實現(xiàn)計劃數(shù)據(jù)庫設(shè)計結(jié)果數(shù)據(jù)庫設(shè)計結(jié)果 6、審查、復(fù)審、審查、復(fù)審4、測試計劃、測試計劃 (詳見第七章)(詳見第七章)1. 過程過程2.模塊化原理模塊化原理(Modularization) 模塊化就是把程序劃分成獨(dú)立命名而且可獨(dú)立模塊化就是把程序劃分成獨(dú)立命名而且可獨(dú)立訪問的模塊,每個模塊完成一個子功能。訪問的模塊,每個模塊完成一個子功能。 把這些模塊集成起來構(gòu)成一個整體,可以完成把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能,滿足用戶的需求。指定的功能,滿足用戶的需求。 模塊化是解決一個復(fù)雜問題時自頂向下逐層把模塊化是解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干
4、模塊的過程。它是軟件解決軟件系統(tǒng)劃分成若干模塊的過程。它是軟件解決復(fù)雜問題所具備的手段,不但可以降低問題復(fù)雜復(fù)雜問題所具備的手段,不但可以降低問題復(fù)雜性,還可以減少開發(fā)工作量,從而降低開發(fā)成本,性,還可以減少開發(fā)工作量,從而降低開發(fā)成本,提高軟件生產(chǎn)率。提高軟件生產(chǎn)率。2.模塊化原理模塊化原理模塊的概念:模塊的概念:在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換在軟件的體系結(jié)構(gòu)中,模塊是可組合、分解和更換的單元,具有以下幾種基本屬性:的單元,具有以下幾種基本屬性:接口:指模塊的輸入輸出。接口:指模塊的輸入輸出。功能:模塊實現(xiàn)的功能。功能:模塊實現(xiàn)的功能。邏輯:內(nèi)部如何實現(xiàn)及所需數(shù)據(jù)。邏輯:內(nèi)部如
5、何實現(xiàn)及所需數(shù)據(jù)。狀態(tài):模塊的運(yùn)行環(huán)境,調(diào)用與被調(diào)用關(guān)系。狀態(tài):模塊的運(yùn)行環(huán)境,調(diào)用與被調(diào)用關(guān)系。邏輯屬性反映內(nèi)部特性,其它屬性反映模塊的外部邏輯屬性反映內(nèi)部特性,其它屬性反映模塊的外部特性。特性。1、模塊化原理根據(jù):、模塊化原理根據(jù): 問題問題P的復(fù)雜度的復(fù)雜度C(P),工作量,工作量E(P) 如果如果C(P1)C(P2),則,則E(P1)E(P2)經(jīng)驗經(jīng)驗1:C(P1+P2)C(P1)+C(P2) E(P1+P2)E(P1)+E(P2)2.模塊化原理模塊化原理經(jīng)驗經(jīng)驗2:成本成本成本成本 / / 模塊模塊最小成本區(qū)最小成本區(qū)接口成本接口成本軟件總成本軟件總成本模塊數(shù)目模塊數(shù)目2.模塊化原理
6、模塊化原理2.模塊化原理模塊化原理2、抽象、抽象(Abstraction): 忽略細(xì)節(jié),分層理解問題,自頂向下層忽略細(xì)節(jié),分層理解問題,自頂向下層層加細(xì)。層加細(xì)。 抽象與逐步求精、模塊化密切相關(guān),可抽象與逐步求精、模塊化密切相關(guān),可提高軟件的可理解性。提高軟件的可理解性。例:例:開發(fā)一個開發(fā)一個CAD軟件,實現(xiàn)一個二維繪圖系統(tǒng)軟件,實現(xiàn)一個二維繪圖系統(tǒng)的全部功能,供低級計算機(jī)輔助設(shè)計使用。的全部功能,供低級計算機(jī)輔助設(shè)計使用。2.模塊化原理模塊化原理抽象層次抽象層次I I:用問題所處環(huán)境的術(shù)語來描述這個:用問題所處環(huán)境的術(shù)語來描述這個軟件。軟件。 該軟件包括一個計算機(jī)繪圖界面,向繪圖員顯該軟件
7、包括一個計算機(jī)繪圖界面,向繪圖員顯示圖形,以及一個數(shù)字化儀界面,用以代替繪圖示圖形,以及一個數(shù)字化儀界面,用以代替繪圖板和丁字尺。所有直線、折線、矩形、圓及曲線板和丁字尺。所有直線、折線、矩形、圓及曲線的描畫、所有的幾何計算、所有的剖面圖和輔助的描畫、所有的幾何計算、所有的剖面圖和輔助視圖都可以用這個視圖都可以用這個CADCAD軟件實現(xiàn)軟件實現(xiàn)。2.模塊化原理模塊化原理 抽象層次抽象層次IIII:任務(wù)需求的描述。列出:任務(wù)需求的描述。列出“What”而而不是不是“How”。 CAD SOFTWARE TASKS: user interaction task; 2-D drawing creat
8、ion task; graphics display task; drawing file management task; END2.模塊化原理模塊化原理 抽象層次抽象層次IIIIII:程序過程表示。以:程序過程表示。以2-D2-D繪圖生成任務(wù)繪圖生成任務(wù)為例為例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WHILE (digitizer interaction occurs) Digitizer interface task; DETERMINE drawing r
9、equest CASE Line: line drawing task; Rectangle: rectangle drawing task; Circle: circle drawing task; END; DO WHILE (keyboard interaction occurs) keyboard interaction task; PROCESS analysis/computation CASE View: auxiliary view task; Section: cross sectioning task; END; END REPETITION; END PROCEDURE.
10、 2.模塊化原理模塊化原理3、信息隱蔽、信息隱蔽(Information hiding) 局部化(一個模塊內(nèi)的信息對于不局部化(一個模塊內(nèi)的信息對于不需要這些信息的模塊,不能訪問),需要這些信息的模塊,不能訪問), 它為軟件系統(tǒng)的修改、測試及以它為軟件系統(tǒng)的修改、測試及以后的維護(hù)都帶來好處。后的維護(hù)都帶來好處。在這個抽象層次上,給出了初步的過程表示,在這個抽象層次上,給出了初步的過程表示,所用的術(shù)語都已面向軟件,而且模塊化的工作所用的術(shù)語都已面向軟件,而且模塊化的工作已經(jīng)開始顯露。已經(jīng)開始顯露。2.模塊化原理模塊化原理4、模塊獨(dú)立性、模塊獨(dú)立性(Module independence) 模塊獨(dú)
11、立模塊獨(dú)立模塊化、抽象、信息隱蔽模塊化、抽象、信息隱蔽、局部化局部化 好設(shè)計的關(guān)鍵:每個模塊完成一個相對好設(shè)計的關(guān)鍵:每個模塊完成一個相對獨(dú)立的子功能,并且與其它模塊間的接口簡獨(dú)立的子功能,并且與其它模塊間的接口簡單。單。 容易開發(fā)、測試、維護(hù)。容易開發(fā)、測試、維護(hù)。 2.模塊化原理模塊化原理 耦合耦合(Coupling) 不同模塊間的互聯(lián)程度的度量。不同模塊間的互聯(lián)程度的度量。 模塊間耦合高低取決于接口的復(fù)雜性、調(diào)用的方式及模塊間耦合高低取決于接口的復(fù)雜性、調(diào)用的方式及傳遞的信息。傳遞的信息。Great deal of dependenceIndependent Highly coupled
12、Loosely coupledUncoupled 獨(dú)立性的度量:獨(dú)立性的度量:耦合耦合(Coupling)&內(nèi)聚內(nèi)聚(Cohesion) (Yourdon & Constantine,1978)2.模塊化原理模塊化原理例例1:A訪問訪問C的內(nèi)部的內(nèi)部數(shù)據(jù)或不通過正數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入常入口而轉(zhuǎn)入C的內(nèi)部。的內(nèi)部。ABCDA:goto C1C:C1: 獨(dú)立性由弱到強(qiáng)排列為:獨(dú)立性由弱到強(qiáng)排列為: 內(nèi)容耦合內(nèi)容耦合(Content Coupling): One module modifies another.2.模塊化原理模塊化原理例例2:部分代碼重疊:部分代碼重疊(常出現(xiàn)在匯編程(常出現(xiàn)在
13、匯編程序中)序中)B A例例3:一個模塊有:一個模塊有多個入口(多個功多個入口(多個功能)能)A:entry 1:entry 2:2.模塊化原理模塊化原理 公共耦合公共耦合 (Common coupling):公共數(shù)據(jù)環(huán)境公共數(shù)據(jù)環(huán)境Data are accessible from a common data store. Global : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1問題:問題: 公共部分的改動將影響所有調(diào)用它的模塊;公共部分的改動將影響所有調(diào)用它的模塊; 公共部分的數(shù)據(jù)存取無法控制;公共部分的數(shù)據(jù)存取無法控制; 復(fù)雜
14、程度隨耦合模塊的個數(shù)增加而增加。復(fù)雜程度隨耦合模塊的個數(shù)增加而增加。2.模塊化原理模塊化原理 控制耦合控制耦合(Control coupling): 模塊之間傳遞有控制信息(可能為數(shù)據(jù)),被調(diào)用函模塊之間傳遞有控制信息(可能為數(shù)據(jù)),被調(diào)用函數(shù)通過控制信息有選擇地執(zhí)行塊內(nèi)某一功能。數(shù)通過控制信息有選擇地執(zhí)行塊內(nèi)某一功能。 One module passes parameters to control the activity of another module.ABFlagF2F1FnFlag接口單一,但仍然影響被控模塊的內(nèi)部邏輯。接口單一,但仍然影響被控模塊的內(nèi)部邏輯。 數(shù)據(jù)耦合數(shù)據(jù)耦合(D
15、ata coupling): 模塊之間通過參數(shù)(數(shù)據(jù))交換信息。模塊之間通過參數(shù)(數(shù)據(jù))交換信息。 模塊之間至少存在數(shù)據(jù)耦合。模塊之間至少存在數(shù)據(jù)耦合。 Only data are passed. It is easy to trace data and make changes.原則:原則:盡量使用數(shù)據(jù)耦合;盡量使用數(shù)據(jù)耦合; 少用控制耦合;少用控制耦合; 限制公共耦合的范圍;限制公共耦合的范圍; 完全不用內(nèi)容耦合。完全不用內(nèi)容耦合。2.模塊化原理模塊化原理2.模塊化原理模塊化原理 低內(nèi)聚:低內(nèi)聚: 巧合內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚巧合內(nèi)聚、邏輯內(nèi)聚、時間內(nèi)聚 巧合內(nèi)聚巧合內(nèi)聚(偶然內(nèi)聚,偶然內(nèi)
16、聚,Coincidental cohesion):): 一個模塊完成一組任務(wù),關(guān)系松散。一個模塊完成一組任務(wù),關(guān)系松散。 一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系。一個模塊內(nèi)的各處理元素之間沒有任何聯(lián)系。 Unrelated functions, processes, or data are found in the same module (for convenience). 內(nèi)聚內(nèi)聚 (Cohesion): The elements of a module are directed to perform the same task.模塊內(nèi)部各個元素彼此結(jié)合的緊密程度。模塊內(nèi)部各個元素彼此結(jié)合
17、的緊密程度。.2.模塊化原理模塊化原理 邏輯內(nèi)聚邏輯內(nèi)聚(Logical cohesion):): 一個模塊完成的任務(wù)在邏輯上相同一個模塊完成的任務(wù)在邏輯上相同/相似相似 Logically related functions or data are placed in the same module. 例如把編輯各種輸入數(shù)據(jù)的功能放在一個模塊中,通例如把編輯各種輸入數(shù)據(jù)的功能放在一個模塊中,通過參數(shù)確定該模塊完成哪一個功能。過參數(shù)確定該模塊完成哪一個功能。A:Read inputsfrom diskfrom tapefrom 例如:例如:2.模塊化原理模塊化原理 時間內(nèi)聚時間內(nèi)聚(Tempo
18、ral cohesion):): 一個模塊內(nèi)所有任務(wù)必須在同一時間完成。一個模塊內(nèi)所有任務(wù)必須在同一時間完成。 The functions are related only by the timing involved.例如:系統(tǒng)的初始化例如:系統(tǒng)的初始化問題:不同功能混在一個模塊中,有時共用部分問題:不同功能混在一個模塊中,有時共用部分 編碼,使局部功能的修改牽動全局。編碼,使局部功能的修改牽動全局。2.模塊化原理模塊化原理 中內(nèi)聚:中內(nèi)聚:過程內(nèi)聚、通信內(nèi)聚過程內(nèi)聚、通信內(nèi)聚 過程內(nèi)聚過程內(nèi)聚(Procedural cohesion):): 模塊內(nèi)各元素相關(guān),必須以特定次序執(zhí)行。模塊內(nèi)各元
19、素相關(guān),必須以特定次序執(zhí)行。(程序流程圖劃分模塊)(程序流程圖劃分模塊) Functions are grouped together in a module to ensure a certain order of performance.例如:例如:enter datacheck datamanipulate data2.模塊化原理模塊化原理 通信內(nèi)聚通信內(nèi)聚(Communicational cohesion):): 模塊中所有元素使用同一個模塊中所有元素使用同一個I/OI/O。 All the functions in a module operate on or produce the
20、 same data set.例如:從同一磁帶上讀取不相干的數(shù)據(jù)例如:從同一磁帶上讀取不相干的數(shù)據(jù) 可能破壞獨(dú)立性。可能破壞獨(dú)立性。2.模塊化原理模塊化原理 高內(nèi)聚:高內(nèi)聚:順序內(nèi)聚、順序內(nèi)聚、功能內(nèi)聚功能內(nèi)聚 順序內(nèi)聚順序內(nèi)聚(Sequential cohesion):): 所有元素與同一功能密切相關(guān),順序執(zhí)行。所有元素與同一功能密切相關(guān),順序執(zhí)行。前一功能前一功能元素的輸出是后一功能元素的輸入。元素的輸出是后一功能元素的輸入。(數(shù)據(jù)流圖劃分模塊)(數(shù)據(jù)流圖劃分模塊) The output from one part of a module is the input to the next
21、part. 功能內(nèi)聚功能內(nèi)聚(Functional cohesion):): 所有元素屬于一個整體,完成同一功能。所有元素屬于一個整體,完成同一功能。缺一不可。缺一不可。 Every processing element is essential to the performance of a single function.3.啟發(fā)式規(guī)則啟發(fā)式規(guī)則2. 模塊規(guī)模適中:模塊規(guī)模適中: 過大不易理解;太小則接口開銷過大。過大不易理解;太小則接口開銷過大。 注意分解后不應(yīng)降低模塊的獨(dú)立性。注意分解后不應(yīng)降低模塊的獨(dú)立性。模塊的大小準(zhǔn)則:模塊的大小準(zhǔn)則:最好在最好在50150條語句左右,條語句左右,
22、便于理解。便于理解。1. 爭取低耦合、高內(nèi)聚(增加內(nèi)聚爭取低耦合、高內(nèi)聚(增加內(nèi)聚 減少耦合)減少耦合) 提高模塊獨(dú)立性。提高模塊獨(dú)立性。3. 適當(dāng)控制適當(dāng)控制 深度深度 = 分層的層數(shù)。過大表示分工過細(xì)。分層的層數(shù)。過大表示分工過細(xì)。 寬度寬度 = 同一層上模塊數(shù)的最大值。同一層上模塊數(shù)的最大值。 過大表示系統(tǒng)復(fù)雜度大。(扇出過大表示系統(tǒng)復(fù)雜度大。(扇出 )3.啟發(fā)式規(guī)劃啟發(fā)式規(guī)劃3.啟發(fā)式規(guī)劃啟發(fā)式規(guī)劃 扇出扇出 = 一個模塊直接一個模塊直接調(diào)用調(diào)用控制的模塊數(shù)。控制的模塊數(shù)。 3 fan-out 9AA的扇出的扇出AA的扇入的扇入 扇入扇入 = 直接調(diào)用該模直接調(diào)用該模塊的模塊數(shù)塊的模塊
23、數(shù)在不破壞獨(dú)立性的前提在不破壞獨(dú)立性的前提下,下,fan-in 大的比較好。大的比較好。3.啟發(fā)式規(guī)劃啟發(fā)式規(guī)劃 深度、寬度、扇入、扇出。深度、寬度、扇入、扇出。TDMABC扇入扇入扇出扇出深深度度寬度寬度 較好的軟件結(jié)構(gòu):頂層扇出多,中層扇出比較較好的軟件結(jié)構(gòu):頂層扇出多,中層扇出比較少,底層高扇入。少,底層高扇入。3.啟發(fā)式規(guī)劃啟發(fā)式規(guī)劃3.啟發(fā)式規(guī)劃啟發(fā)式規(guī)劃4、作用域在控制域內(nèi)、作用域在控制域內(nèi) 控制域控制域MACB直接直接/間接從屬于它的集合間接從屬于它的集合 M的控制域為的控制域為 M,A,B,C 作用域:作用域:M中的一個判定所影響的模塊。中的一個判定所影響的模塊。例如:例如:A
24、: if then goto B1 B: B1: 作用域在控制域內(nèi)作用域在控制域內(nèi)A: if then goto M1 M: M1: goto C1 作用域超出了控制域作用域超出了控制域上例中上例中A的作用超出了控制域。的作用超出了控制域。改進(jìn)方法之一,可以把改進(jìn)方法之一,可以把A中的中的 if 移到移到M中;中; 方法之二,可以把方法之二,可以把C移到移到A下面。下面。3.啟發(fā)式規(guī)劃啟發(fā)式規(guī)劃5、降低接口的復(fù)雜程度、降低接口的復(fù)雜程度 模塊的結(jié)構(gòu)準(zhǔn)則:模塊的結(jié)構(gòu)準(zhǔn)則:接口要簡單、清晰及含義明確,便于理接口要簡單、清晰及含義明確,便于理解,易于實現(xiàn)、測試與維護(hù)。解,易于實現(xiàn)、測試與維護(hù)。 接口
25、復(fù)雜接口復(fù)雜/不一致,可能表明緊耦合,低內(nèi)聚,模塊的獨(dú)不一致,可能表明緊耦合,低內(nèi)聚,模塊的獨(dú)立性差。立性差。6、單出單入,避免內(nèi)容耦合。、單出單入,避免內(nèi)容耦合。7、模塊功能可預(yù)測、模塊功能可預(yù)測 相同輸入必產(chǎn)生相同輸出。相同輸入必產(chǎn)生相同輸出。 反例:模塊中使用全局變量或靜態(tài)變量,反例:模塊中使用全局變量或靜態(tài)變量, 則可則可 能導(dǎo)致不可預(yù)測。能導(dǎo)致不可預(yù)測。作業(yè):你自己負(fù)責(zé)設(shè)計的作業(yè):你自己負(fù)責(zé)設(shè)計的MIS界面中可能遇到哪些類型的界面中可能遇到哪些類型的耦合和內(nèi)聚?耦合和內(nèi)聚? 對列出的每種類型試舉一例。對列出的每種類型試舉一例。4.圖形工具圖形工具1、Hierarchy和和HIPO 描
26、繪軟件層次描繪軟件層次 結(jié)構(gòu)。結(jié)構(gòu)。例:例:BooKMisInterface編輯編輯2.0打印打印3.0錄入錄入1.0檢索檢索4.0刪除刪除2.3修改修改2.2添加添加2.1書名書名4.1分類分類4.2作者名作者名4.3出版社出版社4.4自然自然科學(xué)科學(xué)4.2.14.圖形工具圖形工具注意:注意: 這里的這里的hierarchy表現(xiàn)軟件的結(jié)構(gòu),而非數(shù)據(jù)結(jié)構(gòu);表現(xiàn)軟件的結(jié)構(gòu),而非數(shù)據(jù)結(jié)構(gòu); 每個矩形框代表一個模塊,每個矩形框代表一個模塊,框內(nèi)名字體現(xiàn)該模框內(nèi)名字體現(xiàn)該模塊的功能。塊的功能。 連線表示連線表示“調(diào)用調(diào)用”而非而非“組成組成”。模塊間的控模塊間的控制關(guān)系:制關(guān)系:統(tǒng)率、從屬;統(tǒng)率、從屬
27、; 所謂所謂HIPO,即對每個模塊附一張,即對每個模塊附一張IPO圖。每個圖。每個IPO圖中應(yīng)明確標(biāo)出對應(yīng)模塊的編號。圖中應(yīng)明確標(biāo)出對應(yīng)模塊的編號。4.圖形工具圖形工具2、結(jié)構(gòu)圖、結(jié)構(gòu)圖(Structured Diagram) 描繪軟件結(jié)構(gòu)描繪軟件結(jié)構(gòu) 符號:符號:數(shù)據(jù)傳遞;數(shù)據(jù)傳遞;控制信息;控制信息;或;或;循環(huán)循環(huán). .例:例:BAMM1M2M3CD注:此圖一般注:此圖一般不入文檔,僅不入文檔,僅用于檢查設(shè)計用于檢查設(shè)計的正確性和模的正確性和模塊獨(dú)立性。塊獨(dú)立性。4.圖形工具圖形工具須檢查;須檢查; 每個傳遞的數(shù)據(jù)是否每個傳遞的數(shù)據(jù)是否必須必須? 完成模塊功能所必須的數(shù)據(jù)是否完成模塊功能
28、所必須的數(shù)據(jù)是否都傳遞了都傳遞了? 傳輸?shù)臄?shù)據(jù)是否只與傳輸?shù)臄?shù)據(jù)是否只與單一單一的功能有關(guān)?的功能有關(guān)? 是否目的明確?是否目的明確?5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法(結(jié)構(gòu)化方法(結(jié)構(gòu)化方法SD:Structural Design)基本思想:基本思想: DFD System Hierarchy1、Data Flow 的分類的分類 變換流變換流(Transform Flow): (信息)外部(信息)外部內(nèi)部內(nèi)部 外部外部Internal representationInformationTransform flowOutgoingflowIncomingflowExternal re
29、presentationTime事實上所事實上所有信息流有信息流都可歸結(jié)都可歸結(jié)為變換流為變換流5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法 事務(wù)流事務(wù)流(Transaction Flow)T = Call one of the several subroutines depending on the type of the incoming transaction request.當(dāng)信息流具有明顯當(dāng)信息流具有明顯的的“發(fā)射中心發(fā)射中心”時時(“以事務(wù)為中以事務(wù)為中心心”),可歸結(jié)為),可歸結(jié)為事務(wù)流。事務(wù)流。 TTransactionrequest Action paths Transact
30、ion center2. 設(shè)計過程設(shè)計過程: P.685.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法3、分析設(shè)計、分析設(shè)計 變換分析變換分析例:例:P.96 汽車數(shù)字儀表板的設(shè)計汽車數(shù)字儀表板的設(shè)計功能:功能: 通過模通過模 - 數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機(jī)接口;數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機(jī)接口; 在發(fā)光二極管面板上顯示數(shù)據(jù);在發(fā)光二極管面板上顯示數(shù)據(jù); 指示每小時英里數(shù)指示每小時英里數(shù)(mph),行駛的里程,每加行駛的里程,每加侖油行駛的英里數(shù)侖油行駛的英里數(shù)(mpg)等等;等等; 指示加速或減速;指示加速或減速; 如果車速超過如果車速超過55mph, 則發(fā)出警告鈴聲。則發(fā)出警告鈴聲。5.面向數(shù)據(jù)
31、流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法第一步:第一步:DFD分界,先分出分界,先分出I、P、O三塊三塊燃料流燃料流 傳感器信號傳感器信號SPS旋轉(zhuǎn)信號旋轉(zhuǎn)信號讀讀旋轉(zhuǎn)旋轉(zhuǎn)信號信號收集收集和求和求平均平均確定確定加加/ /減減速速轉(zhuǎn)換轉(zhuǎn)換成成轉(zhuǎn)轉(zhuǎn)/ /分分計算計算里程里程計算計算mph,超超速值速值產(chǎn)生產(chǎn)生加加/ /減減速顯示速顯示計算計算燃料燃料消耗消耗計算計算gph讀和讀和校核校核產(chǎn)生產(chǎn)生mpg顯示顯示產(chǎn)生產(chǎn)生mph顯示顯示發(fā)出發(fā)出鈴聲鈴聲產(chǎn)生產(chǎn)生里程里程顯示顯示SPS SPS箭頭指示箭頭指示燃燒流燃燒流上箭頭上箭頭水平線水平線下箭頭下箭頭rpmrpmgphmphmpgmph超速值超速值英里英里顯
32、示顯示鈴聲鈴聲mph顯示顯示mpg顯示顯示注:注:SPS 信號信號/秒秒 rpm轉(zhuǎn)轉(zhuǎn)/分分 gph加侖油加侖油/時時5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法一般問題的一般問題的一級分解方一級分解方法:法:數(shù)字儀表板數(shù)字儀表板控制控制數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換控制控制驅(qū)動儀表板驅(qū)動儀表板接收傳感器接收傳感器信號信號MPIO5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法第二步:映射第二步:映射ADCBMICBDA:每個處理直接對應(yīng):每個處理直接對應(yīng)一個下層模塊。一個下層模塊。P:由邊界向:由邊界向回溯回溯,將,將每個遇到的處理器映每個遇到的處理器映成相應(yīng)的層模塊。成相應(yīng)的層模塊。I:由邊界向:由邊界向外推
33、外推,方,方法與法與 類似類似OI5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法例:例: 數(shù)字儀表板數(shù)字儀表板控制控制數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換控制控制驅(qū)動儀表板驅(qū)動儀表板接收傳感器接收傳感器信號信號計算計算gph讀燃料流讀燃料流轉(zhuǎn)換成轉(zhuǎn)換成rpm收集收集sps讀旋轉(zhuǎn)信號讀旋轉(zhuǎn)信號確定確定加加/ /減速減速計算計算mph計算計算mpg計算計算里程里程加加/ /減速減速顯示顯示顯示顯示mpg顯示顯示mph顯示顯示里程里程發(fā)出發(fā)出鈴聲鈴聲發(fā)光二極管顯示發(fā)光二極管顯示5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法第三步:修改第三步:修改 本著高內(nèi)聚、低耦合的原則。本著高內(nèi)聚、低耦合的原則。例:精化后的數(shù)字儀表板系
34、統(tǒng)的軟件結(jié)構(gòu)。例:精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)。5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法注:每個模塊應(yīng)附一簡要說明描述注:每個模塊應(yīng)附一簡要說明描述 進(jìn)出該模塊的信息(接口描述);進(jìn)出該模塊的信息(接口描述); 模塊內(nèi)部的信息;模塊內(nèi)部的信息; 過程陳述,包括主要判定點(diǎn)及任務(wù)等;過程陳述,包括主要判定點(diǎn)及任務(wù)等; 對約束和特殊特點(diǎn)的簡短討論。對約束和特殊特點(diǎn)的簡短討論。5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法 事務(wù)分析事務(wù)分析MIIISABCIIISBAC接受分支接受分支發(fā)送分支發(fā)送分支5.面向數(shù)據(jù)流的設(shè)計方法面向數(shù)據(jù)流的設(shè)計方法3、SD的總體過程:的總體過程:“變換變換”“事務(wù)事務(wù)”精化數(shù)據(jù)流圖精化數(shù)據(jù)流圖流類型流類型區(qū)分事務(wù)中心和區(qū)分事務(wù)中心和數(shù)據(jù)接收通路數(shù)據(jù)接收通路區(qū)分輸入和區(qū)分輸入和輸出分支輸出分支映射成事務(wù)結(jié)構(gòu)映射成事務(wù)結(jié)構(gòu)映射成變換結(jié)構(gòu)映射成變換結(jié)構(gòu)用啟發(fā)式設(shè)計規(guī)用啟發(fā)式設(shè)計規(guī)則精化軟件結(jié)構(gòu)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)全程數(shù)據(jù)結(jié)構(gòu)復(fù)復(fù) 查查詳細(xì)設(shè)計詳細(xì)設(shè)計變換分析變換分析事務(wù)分析事務(wù)分析優(yōu)化的前題是優(yōu)化的前題是:“Get it to work, then make it fast.”
- 溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案