軟件工程課件 第4章 總體設(shè)計(jì)(XXXX0416)_第1頁(yè)
軟件工程課件 第4章 總體設(shè)計(jì)(XXXX0416)_第2頁(yè)
軟件工程課件 第4章 總體設(shè)計(jì)(XXXX0416)_第3頁(yè)
軟件工程課件 第4章 總體設(shè)計(jì)(XXXX0416)_第4頁(yè)
軟件工程課件 第4章 總體設(shè)計(jì)(XXXX0416)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本loadingloadingdgil第4章 總體設(shè)計(jì)案例分析一設(shè)計(jì)原理結(jié)構(gòu)程序設(shè)計(jì)啟發(fā)規(guī)則面向數(shù)據(jù)流的設(shè)計(jì)方法教學(xué)單位教師介紹南京信息工程大學(xué)nanjing university of information science &technologyinstructor: bi shuoben (畢碩本畢碩本)email: tel:h)4.44.14.24.34.5第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.1 案例分析一 招聘考試成績(jī)管理系統(tǒng)數(shù)

2、據(jù)庫(kù)結(jié)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)構(gòu)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)測(cè)試設(shè)計(jì)測(cè)試方案方案第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.1 案例分析一 招聘考試成績(jī)管理系統(tǒng)5.1.1 數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)管理員管理員數(shù)據(jù)表數(shù)據(jù)表帳號(hào)密碼考場(chǎng)號(hào)地點(diǎn)最多人數(shù)準(zhǔn)考證號(hào)、姓名、性別、地區(qū)、出生年月、地址、專業(yè)、政治、英語(yǔ)、專業(yè)課、總分、名次、是否錄用、錄用單位。準(zhǔn)考證號(hào)、姓名、性別、專業(yè)、錄用單位、總分考場(chǎng)數(shù)考場(chǎng)數(shù)據(jù)表?yè)?jù)表考生數(shù)考生數(shù)據(jù)表?yè)?jù)表錄用錄用考生考生第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.1 案例分析一 招聘考試成績(jī)管理系統(tǒng)

3、5.1.2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)一一二二三三確定出確定出各個(gè)模各個(gè)模塊及其塊及其關(guān)系。關(guān)系。數(shù)據(jù)流數(shù)據(jù)流圖需進(jìn)圖需進(jìn)一步細(xì)一步細(xì)化?;?。用層次用層次圖或結(jié)圖或結(jié)構(gòu)圖來構(gòu)圖來表示。表示。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本招聘考試成績(jī)管理系統(tǒng)hipo圖第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.1 案例分析一 招聘考試成績(jī)管理系統(tǒng)5.1.3 設(shè)計(jì)測(cè)試方案設(shè)計(jì)測(cè)試方案錄用模塊錄用模塊主要測(cè)試考生準(zhǔn)考證號(hào)的生成是否正確。進(jìn)行各種測(cè)試條件的測(cè)試。分考生成績(jī)輸入、成績(jī)查詢、打印成績(jī)單三個(gè)模塊。主要測(cè)試考生成績(jī)輸入界面設(shè)計(jì)

4、是否合理、輸入后成績(jī)總分的計(jì)算及排序是否正確。text考前處理模塊考前處理模塊成績(jī)信息模塊成績(jī)信息模塊測(cè)試輸入界面是否正確、合理;錄用結(jié)果的輸出與輸入是否一致。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.2 案例分析二 從完整的工資管理系統(tǒng)數(shù)據(jù)流圖出發(fā)事務(wù)數(shù)據(jù)和人事數(shù)據(jù)沿兩條輸入通路進(jìn)入系統(tǒng)輸出數(shù)據(jù)沿著一條輸出通路離開系統(tǒng),數(shù)據(jù)流圖中沒有明顯的事務(wù)中心。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.2 案例分析二 1、分析確定輸入流和輸出流的邊界,以孤立出、分析確定輸入流和輸出流的邊界,以孤立出變換中心。變換中心。第第4

5、 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.2 案例分析二 2、完成、完成“第一級(jí)分解第一級(jí)分解”。就是確定系統(tǒng)的總體。就是確定系統(tǒng)的總體控制結(jié)構(gòu)。通常變換分析得到的系統(tǒng)高層結(jié)構(gòu)是控制結(jié)構(gòu)。通常變換分析得到的系統(tǒng)高層結(jié)構(gòu)是一個(gè)一個(gè)“三叉三叉”的控制結(jié)構(gòu)。的控制結(jié)構(gòu)。工資管理系統(tǒng)的第一層分解工資管理系統(tǒng)的第一層分解第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.2 案例分析二 3、完成、完成“第二級(jí)分解第二級(jí)分解”。就是把數(shù)據(jù)流圖中的。就是把數(shù)據(jù)流圖中的每個(gè)處理映射成軟件結(jié)構(gòu)中的一個(gè)適當(dāng)模塊。每個(gè)處理映射成軟件結(jié)構(gòu)中的一個(gè)適當(dāng)模塊

6、。從變換中心的邊界開始沿著輸入通路向外移動(dòng),把輸入通路中每個(gè)處理映射成軟件結(jié)構(gòu)中“輸入信息處理控制模塊”控制下的一個(gè)低層模塊。然后沿輸出通路向外移動(dòng),把輸出通路中每個(gè)處理映射成直接或間接接受“輸出信息處理控制模塊”控制的一個(gè)低層模塊。最后把變換中心內(nèi)的每個(gè)處理映射成受“變換中心控制模塊”控制的一個(gè)低層模塊。變換分析的映射原則變換分析的映射原則第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.2 案例分析二 第二級(jí)分解第二級(jí)分解第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.2 案例分析二 4、對(duì)工資管理系統(tǒng)的初步設(shè)計(jì)結(jié)果進(jìn)行優(yōu)化

7、。、對(duì)工資管理系統(tǒng)的初步設(shè)計(jì)結(jié)果進(jìn)行優(yōu)化。優(yōu)化后的工資管理系統(tǒng)軟件結(jié)構(gòu)分解優(yōu)化后的工資管理系統(tǒng)軟件結(jié)構(gòu)分解第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理模塊化模塊化就是把程序劃分成獨(dú)立命名且可就是把程序劃分成獨(dú)立命名且可獨(dú)立訪獨(dú)立訪問問的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能塊集成起來構(gòu)成一個(gè)整體,可以完成指定的功能滿足用戶的需求。滿足用戶的需求。5.3.1 模塊化模塊化第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理模

8、塊化和軟件成本模塊化和軟件成本第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理抽象抽象就是抽出事物的就是抽出事物的本質(zhì)特性本質(zhì)特性而暫時(shí)不考慮它而暫時(shí)不考慮它們的細(xì)節(jié)。們的細(xì)節(jié)。軟件工程過程的每一步都是對(duì)軟件解法的軟件工程過程的每一步都是對(duì)軟件解法的抽象抽象層次的一次精化層次的一次精化。5.3.2 抽象抽象第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理達(dá)到了抽象的最低層可行性可行性研究研究需求分析需求分析總體設(shè)計(jì)總體設(shè)計(jì)到詳細(xì)設(shè)到詳細(xì)設(shè)計(jì)計(jì)寫出源程序?qū)懗鲈闯绦蜍浖夥ㄊ鞘褂迷趩栴}環(huán)境內(nèi)熟悉的方式描述的

9、抽象的程度也就隨之減少了軟件作為系統(tǒng)的一個(gè)完整部件第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理模塊化的概念,與抽象是緊密相關(guān)的。模塊化的概念,與抽象是緊密相關(guān)的。隨著軟件開發(fā)工程的進(jìn)展,在軟件結(jié)構(gòu)隨著軟件開發(fā)工程的進(jìn)展,在軟件結(jié)構(gòu)每一層每一層中的模塊中的模塊,表示了對(duì)軟件,表示了對(duì)軟件抽象層次的一次精化抽象層次的一次精化。軟件結(jié)構(gòu)頂層的模塊,控制了系統(tǒng)的主要功能軟件結(jié)構(gòu)頂層的模塊,控制了系統(tǒng)的主要功能并且影響全局;在軟件結(jié)構(gòu)底層的模塊,完成對(duì)并且影響全局;在軟件結(jié)構(gòu)底層的模塊,完成對(duì)數(shù)據(jù)的一個(gè)具體處理。數(shù)據(jù)的一個(gè)具體處理。第第4 4章章 總體設(shè)

10、計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l把抽象是:把抽象是:“為了能集中精力解決主要問題而為了能集中精力解決主要問題而盡量推遲對(duì)問題細(xì)節(jié)的考慮。盡量推遲對(duì)問題細(xì)節(jié)的考慮?!背橄笈c求精是一對(duì)互補(bǔ)的概念抽象與求精是一對(duì)互補(bǔ)的概念。5.3.3 逐步求精逐步求精抽象使得設(shè)計(jì)者能夠說明過程和數(shù)據(jù),同時(shí)卻忽略低層細(xì)節(jié)。求精則幫助設(shè)計(jì)者在設(shè)計(jì)過程中逐步揭示出低層細(xì)節(jié)。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理5.3.4 信息隱藏和局部化信息隱藏和局部化局部化的概念和信息隱藏概念是密切相關(guān)的。所謂局部化是指把一些關(guān)系密切的軟

11、件元素物理地放得彼此靠近。信息隱藏原理指出:應(yīng)該這樣設(shè)計(jì)和確定模塊,使得一個(gè)模塊內(nèi)包含的信息(過程和數(shù)據(jù))對(duì)于不需要這些信息的模塊來說,是不能訪問的。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理模塊獨(dú)立的概念是模塊獨(dú)立的概念是模塊化模塊化、抽象抽象、信息隱藏信息隱藏和和局部化局部化概念的直接結(jié)果。概念的直接結(jié)果。開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨(dú)立。多的相互作用的模塊,就可以做到模塊獨(dú)立。l耦合衡量不同模塊彼此間互相依賴(連接)的緊密程度;l內(nèi)聚衡量一個(gè)模塊內(nèi)部各

12、個(gè)元素彼此結(jié)合的緊密程度。5.3.5 模塊獨(dú)立模塊獨(dú)立第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理內(nèi)聚:內(nèi)聚:模塊各元素執(zhí)行相同的任務(wù)模塊各元素執(zhí)行相同的任務(wù)內(nèi)聚級(jí)別:內(nèi)聚級(jí)別: 偶然內(nèi)聚偶然內(nèi)聚 邏輯內(nèi)聚邏輯內(nèi)聚 時(shí)間內(nèi)聚時(shí)間內(nèi)聚 過程內(nèi)聚過程內(nèi)聚 通信內(nèi)聚通信內(nèi)聚 順序內(nèi)聚順序內(nèi)聚 功能內(nèi)聚功能內(nèi)聚最差最差最好最好1.內(nèi)聚第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理偶然偶然內(nèi)聚:內(nèi)聚:為方便把不相干的元素組合在一起為方便把不相干的元素組合在一起嚴(yán)重的缺點(diǎn):嚴(yán)重的缺點(diǎn):產(chǎn)品的可維護(hù)性退化;產(chǎn)品

13、的可維護(hù)性退化; 模塊是不可復(fù)用的,增加軟件成本。模塊是不可復(fù)用的,增加軟件成本。解決途徑:解決途徑:將模塊分成更小的模塊,將模塊分成更小的模塊, 每個(gè)小模塊執(zhí)行一個(gè)操作。每個(gè)小模塊執(zhí)行一個(gè)操作。低內(nèi)聚第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理邏輯內(nèi)聚:把邏輯上相似的功能結(jié)合到一個(gè)模塊中。邏輯內(nèi)聚:把邏輯上相似的功能結(jié)合到一個(gè)模塊中。缺點(diǎn):缺點(diǎn):會(huì)增加開關(guān)量、不易修改、不易理解、會(huì)增加開關(guān)量、不易修改、不易理解、效率低等問題。效率低等問題。解決途徑:解決途徑:盡量避免這種邏輯性內(nèi)聚。盡量避免這種邏輯性內(nèi)聚。低內(nèi)聚第第4 4章章 總體設(shè)計(jì)總體設(shè)

14、計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理 時(shí)間時(shí)間內(nèi)聚:內(nèi)聚:某段時(shí)間執(zhí)行的若干功能任務(wù)某段時(shí)間執(zhí)行的若干功能任務(wù) 放在同一模塊中放在同一模塊中 例如:例如:系統(tǒng)的初始化系統(tǒng)的初始化 問題問題: 不同的功能混在一個(gè)模塊中,有時(shí)共用部分不同的功能混在一個(gè)模塊中,有時(shí)共用部分編碼,使局部功能的修改牽動(dòng)全局。編碼,使局部功能的修改牽動(dòng)全局。低內(nèi)聚第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理過程過程內(nèi)聚:內(nèi)聚:模塊中的各功能元素相關(guān),模塊中的各功能元素相關(guān), 并且按特定次序執(zhí)行并且按特定次序執(zhí)行例如:例如:讀寫并更新數(shù)據(jù)記錄讀寫

15、并更新數(shù)據(jù)記錄中內(nèi)聚enter datacheck datamanipulate data第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理 通信通信內(nèi)聚:模塊中的成分需用同樣數(shù)據(jù)內(nèi)聚:模塊中的成分需用同樣數(shù)據(jù) 例如:例如:1. 某模塊的各成分都利用一符號(hào)表進(jìn)行操作;某模塊的各成分都利用一符號(hào)表進(jìn)行操作;2. 從同一磁帶上讀取不相干的數(shù)據(jù)。從同一磁帶上讀取不相干的數(shù)據(jù)。 問題:?jiǎn)栴}:可能破壞獨(dú)立性??赡芷茐莫?dú)立性。中內(nèi)聚第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理順序順序內(nèi)聚:內(nèi)聚:模塊的輸出是下一模

16、塊的輸入。模塊的輸出是下一模塊的輸入。 模塊的各成分利用相同的輸入或產(chǎn)模塊的各成分利用相同的輸入或產(chǎn)生相同的輸出生相同的輸出。功能功能內(nèi)聚:為完成一個(gè)任務(wù)把所需的全部功能內(nèi)聚:為完成一個(gè)任務(wù)把所需的全部功能 組合在一起。組合在一起。原則原則:力爭(zhēng)高內(nèi)聚和識(shí)別低內(nèi)聚,可以使得設(shè):力爭(zhēng)高內(nèi)聚和識(shí)別低內(nèi)聚,可以使得設(shè)計(jì)的軟件具有計(jì)的軟件具有較高的功能獨(dú)立性較高的功能獨(dú)立性。高內(nèi)聚第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理計(jì)算多個(gè)地點(diǎn)的計(jì)算多個(gè)地點(diǎn)的每日平均溫度每日平均溫度功能內(nèi)聚功能內(nèi)聚初始化,初始化,“求和求和”并打開文件并打開文件偶然內(nèi)聚偶然內(nèi)

17、聚關(guān)閉文件并打印關(guān)閉文件并打印平均溫度平均溫度偶然內(nèi)聚偶然內(nèi)聚創(chuàng)建新的創(chuàng)建新的溫度記錄溫度記錄功能內(nèi)聚功能內(nèi)聚存儲(chǔ)溫度記錄存儲(chǔ)溫度記錄功能內(nèi)聚功能內(nèi)聚讀取地點(diǎn)、時(shí)間讀取地點(diǎn)、時(shí)間和溫度和溫度功能內(nèi)聚功能內(nèi)聚編輯地點(diǎn)、時(shí)間編輯地點(diǎn)、時(shí)間和溫度字段和溫度字段邏輯內(nèi)聚邏輯內(nèi)聚存儲(chǔ)特定地點(diǎn)的存儲(chǔ)特定地點(diǎn)的溫度溫度功能內(nèi)聚功能內(nèi)聚內(nèi)聚示例內(nèi)聚示例第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l耦合耦合是度量系統(tǒng)中模塊之間的交互程度。是度量系統(tǒng)中模塊之間的交互程度。l耦合從低到高依次為:耦合從低到高依次為:非直接耦合非直接耦合(最好),(最好),數(shù)據(jù)耦合,標(biāo)

18、記耦合,控制耦合,外部耦合,數(shù)據(jù)耦合,標(biāo)記耦合,控制耦合,外部耦合,公共耦合和內(nèi)容耦合公共耦合和內(nèi)容耦合(最差)(最差)。2. 耦合great deal of dependenceindependent highly coupledloosely coupleduncoupled 第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l內(nèi)容耦合內(nèi)容耦合 content couplingl如果兩個(gè)模塊中的一個(gè)直接引用了另一個(gè)模塊的內(nèi)容,則它們之間是內(nèi)容耦合。2. 耦合例例1:a訪問訪問c的內(nèi)的內(nèi)部數(shù)據(jù)或不通過正常部數(shù)據(jù)或不通過正常入口而轉(zhuǎn)入入口而轉(zhuǎn)入c的內(nèi)

19、部。的內(nèi)部。abcda:goto c1c:c1: 第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理2. 耦合例例2:部分代碼重:部分代碼重疊(常出現(xiàn)在匯疊(常出現(xiàn)在匯編程序中)編程序中)例例3:一個(gè)模:一個(gè)模塊有多個(gè)入塊有多個(gè)入口(功能)口(功能)b aa:entry 1:entry 2: the least desirable must be avoided第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l公共耦合公共耦合 common coupling l如果兩個(gè)模塊都可以存取相同的全局?jǐn)?shù)據(jù),則它們

20、之間是公共耦合。2. 耦合global : v1 v2a:a1=v1+v2b:v1=b1global : v1 v2a:v1+b:v2=b1+v1第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l公共耦合存在的問題:公共耦合存在的問題:l 公共部分的改動(dòng)將影響所有調(diào)用它的模塊;l 公共部分的數(shù)據(jù)存取無法控制;l 復(fù)雜程度隨耦合模塊的個(gè)數(shù)增加而增加。l解決方法解決方法:l通過使用信息隱藏來避免公共耦合。2. 耦合第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l外部耦合外部耦合 external coup

21、ling l當(dāng)模塊與軟件的外部環(huán)境聯(lián)結(jié)在一起,并受到約束時(shí)就出現(xiàn)較高程度的耦合,則它們之間為外部耦合。2. 耦合anmlfedcbop第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l控制耦合控制耦合 control coupling l如果兩個(gè)模塊中的一個(gè)模塊給另一個(gè)模塊傳遞控制信息,則它們具有控制耦合。2. 耦合abflagf2f1fnflag特點(diǎn):特點(diǎn):接口單接口單一,但仍然影一,但仍然影響被控模塊的響被控模塊的內(nèi)部邏輯。內(nèi)部邏輯。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l標(biāo)記耦合標(biāo)記耦合

22、 stamp couplingl如果兩個(gè)模塊都要使用同一數(shù)據(jù)結(jié)構(gòu)的一部分,不是采用全局公共數(shù)據(jù)區(qū)共享,而是通過模塊結(jié)構(gòu)傳遞數(shù)據(jù)結(jié)構(gòu)的一部分,則它們之間為標(biāo)記耦合。l數(shù)據(jù)耦合數(shù)據(jù)耦合 data couplingl被調(diào)用模塊的輸入與輸出是簡(jiǎn)單的參數(shù)或者是數(shù)據(jù)結(jié)構(gòu)(該數(shù)據(jù)結(jié)構(gòu)中的所有元素為被調(diào)用的模塊使用),則它們之間為數(shù)據(jù)耦合。l非直接耦合非直接耦合 no direct coupling l兩個(gè)模塊之間沒有聯(lián)系,則它們之間為非直接耦合。2. 耦合 the most desirable.第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.3 設(shè)計(jì)原理l實(shí)現(xiàn)低耦合,采取下

23、列措施:實(shí)現(xiàn)低耦合,采取下列措施:l耦合方式l采用非直接耦合,不采用直接耦合。l傳遞信息類型l盡量使用數(shù)據(jù)耦合,少采用控制耦合,外部耦合和公共耦合限制使用。l耦合數(shù)量l模塊間相互調(diào)用時(shí),傳遞參數(shù)最好只有一個(gè)。2. 耦合第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.4 啟發(fā)規(guī)則1.爭(zhēng)取低耦合、高內(nèi)聚爭(zhēng)取低耦合、高內(nèi)聚l增加內(nèi)聚、 減少耦合2.模塊規(guī)模適中模塊規(guī)模適中l(wèi)過大,分解不充分,不易理解;太小,則開銷過大、接口復(fù)雜。3.3.適當(dāng)控制模塊結(jié)構(gòu)參數(shù)適當(dāng)控制模塊結(jié)構(gòu)參數(shù) l深度 = 分層的層數(shù)。過大表示分工過細(xì)。l寬度 = 同一層上模塊數(shù)的最大值。過大,表示系

24、統(tǒng)復(fù)雜度大。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.4 啟發(fā)規(guī)則l軟件結(jié)構(gòu)軟件結(jié)構(gòu)第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.4 啟發(fā)規(guī)則 扇出扇出 = = 一個(gè)模塊直一個(gè)模塊直接調(diào)用接調(diào)用 控制的模塊數(shù)。控制的模塊數(shù)。3 3 fan-out fan-out 9 9aa的扇出的扇出aa的扇入的扇入 扇入扇入 = 直接調(diào)用該模直接調(diào)用該模塊的模塊數(shù)塊的模塊數(shù)在不破壞獨(dú)立性的前提在不破壞獨(dú)立性的前提下,下,fan-in 大的比較好。大的比較好。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩

25、本4.4 啟發(fā)規(guī)則l盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入盡可能減少高扇出結(jié)構(gòu),隨著深度增大扇入l如果一個(gè)模塊的扇出數(shù)過大,就意味著該模塊過分復(fù)雜,需要協(xié)調(diào)和控制過多的下屬模塊。應(yīng)當(dāng)適當(dāng)增加中間層次的控制模塊。l一般來說,頂層扇出高,中間扇出少,低層高扇入。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.4 啟發(fā)規(guī)則4.模塊的作用范圍保持在該模塊的控制范圍內(nèi)模塊的作用范圍保持在該模塊的控制范圍內(nèi)l控制域控制域指該模塊本身以及所有直接或間接從屬指該模塊本身以及所有直接或間接從屬于它的模塊。于它的模塊。l作用域作用域是指該模塊中一個(gè)判斷所影響的所有其是指該模塊中一

26、個(gè)判斷所影響的所有其它模塊;它模塊; 控制域控制域macbm m的控制域?yàn)榈目刂朴驗(yàn)?mm,a a,b b,ccm m的作用域?yàn)榈淖饔糜驗(yàn)?mm,a a,cc 作用域:作用域:m m中的一個(gè)判定所影響的模塊。中的一個(gè)判定所影響的模塊。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.4 啟發(fā)規(guī)則l例:例:a: if then goto b1 b: b1: 作用域在控制域內(nèi)作用域在控制域內(nèi)a: if then goto m1 m: m1: goto c1 作用域超出了控制域作用域超出了控制域改進(jìn)方法之一,可以把改進(jìn)方法之一,可以把a(bǔ) a中的中的 if if 移到移

27、到m m中;中;改進(jìn)改進(jìn)方法之二,可以把方法之二,可以把c c移到移到a a下面。下面。macb第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.4 啟發(fā)規(guī)則5.5.降低接口的復(fù)雜程度降低接口的復(fù)雜程度l模塊接口的復(fù)雜性是引起軟件錯(cuò)誤的一個(gè)主要原因。接口設(shè)計(jì)應(yīng)該使得信息傳遞簡(jiǎn)單并且與模塊的功能一致。6.6.單出口單入口,避免內(nèi)容耦合單出口單入口,避免內(nèi)容耦合l易于理解和維護(hù)。7.7.模塊功能可預(yù)測(cè)模塊功能可預(yù)測(cè)l相同輸入必產(chǎn)生相同輸出。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法把

28、面向數(shù)據(jù)流的設(shè)計(jì)方法把數(shù)據(jù)流數(shù)據(jù)流(信息流)映(信息流)映射成射成軟件結(jié)構(gòu)軟件結(jié)構(gòu),數(shù)據(jù)流的類型數(shù)據(jù)流的類型決定了映射的方法。決定了映射的方法。1. 變換流變換流信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變信息沿輸入通路進(jìn)入系統(tǒng),同時(shí)由外部形式變換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過換成內(nèi)部形式,進(jìn)入系統(tǒng)的信息通過變換中心變換中心,經(jīng)加工處理以后再沿輸出通路變換成外部形式離經(jīng)加工處理以后再沿輸出通路變換成外部形式離開軟件系統(tǒng)。開軟件系統(tǒng)。5.5.1 模塊獨(dú)立模塊獨(dú)立第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法變換流變換流第第4 4章章 總體設(shè)

29、計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法2. 事務(wù)流事務(wù)流數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理,這個(gè)處理根據(jù)數(shù)據(jù)沿輸入通路到達(dá)一個(gè)處理,這個(gè)處理根據(jù)輸入數(shù)據(jù)的類型輸入數(shù)據(jù)的類型在若干個(gè)動(dòng)作序列中在若干個(gè)動(dòng)作序列中選出一個(gè)選出一個(gè)來來執(zhí)行。這類數(shù)據(jù)流稱為事務(wù)流。執(zhí)行。這類數(shù)據(jù)流稱為事務(wù)流。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法事務(wù)流事務(wù)流第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法變換分析是經(jīng)過若干步驟把具有變換流特點(diǎn)的變換分析是經(jīng)過

30、若干步驟把具有變換流特點(diǎn)的數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。數(shù)據(jù)流圖按預(yù)先確定的模式映射成軟件結(jié)構(gòu)。5.5.2 變換分析變換分析找出變換中找出變換中心及邏輯輸心及邏輯輸入入/ /出出設(shè)計(jì)軟件結(jié)設(shè)計(jì)軟件結(jié)構(gòu)的頂層構(gòu)的頂層自頂向下,自頂向下,逐步細(xì)化,逐步細(xì)化,設(shè)計(jì)中下層設(shè)計(jì)中下層模塊模塊設(shè)計(jì)步驟第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法例:汽車數(shù)字儀表板的設(shè)計(jì)例:汽車數(shù)字儀表板的設(shè)計(jì)5.5.3 變換流分析變換流分析功能:功能: 通過模通過模 - 數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口;數(shù)轉(zhuǎn)換實(shí)現(xiàn)傳感器和微處理機(jī)接口; 在發(fā)光二極管面板

31、上顯示數(shù)據(jù);在發(fā)光二極管面板上顯示數(shù)據(jù); 指示每小時(shí)英里數(shù)指示每小時(shí)英里數(shù)(mph),行駛的里程行駛的里程,每加侖油每加侖油行駛的英里數(shù)行駛的英里數(shù)(mpg)等等;等等; 指示加速或減速;指示加速或減速; 如果車速超過如果車速超過55mph ,則發(fā)出警告鈴聲。則發(fā)出警告鈴聲。第第4 4章章 總體設(shè)計(jì)總體設(shè)計(jì)計(jì)算機(jī)與軟件學(xué)院計(jì)算機(jī)與軟件學(xué)院 畢碩本畢碩本4.5 面向數(shù)據(jù)流的設(shè)計(jì)方法燃料流燃料流 傳感器信號(hào)傳感器信號(hào)sps旋轉(zhuǎn)信號(hào)旋轉(zhuǎn)信號(hào)讀讀旋轉(zhuǎn)旋轉(zhuǎn)信號(hào)信號(hào)收集收集和求和求平均平均確定確定加加/ /減減速速轉(zhuǎn)換轉(zhuǎn)換成成轉(zhuǎn)轉(zhuǎn)/ /分分計(jì)算計(jì)算里程里程計(jì)算計(jì)算mph,超超速值速值產(chǎn)生產(chǎn)生加加/ /減減速顯示速顯示計(jì)算計(jì)算燃料燃料消耗消耗計(jì)算計(jì)算gph讀和讀和校核校核產(chǎn)生產(chǎn)生mpg顯示顯示產(chǎn)生產(chǎn)生mph顯示顯示發(fā)出發(fā)出鈴聲鈴聲產(chǎn)生產(chǎn)生里程里程顯示顯示sps sps箭頭指示箭頭指示燃燒流燃燒流上箭頭上箭頭水平線水平線下箭頭下箭頭rpmrpmgphmphmpgmph超速值超速值英里英里顯示顯示鈴聲鈴聲m

溫馨提示

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