第9章 系統(tǒng)設(shè)計方法1_第1頁
第9章 系統(tǒng)設(shè)計方法1_第2頁
第9章 系統(tǒng)設(shè)計方法1_第3頁
第9章 系統(tǒng)設(shè)計方法1_第4頁
第9章 系統(tǒng)設(shè)計方法1_第5頁
已閱讀5頁,還剩191頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第五部分 系統(tǒng)(xtng)設(shè)計方法共一百九十六頁系統(tǒng)分析的結(jié)果:把數(shù)據(jù)在組織(或原系統(tǒng))內(nèi)部的流動情況(qngkung)抽象地獨立出來,用數(shù)據(jù)流程圖的形式描述出系統(tǒng)的功能、輸入、輸出和存儲的“邏輯模型”復(fù)習(xí)(fx)系統(tǒng)分析內(nèi)容共一百九十六頁“教學(xué)管理系統(tǒng)”總體(zngt)邏輯模型共一百九十六頁問題(wnt)?系統(tǒng)分析的結(jié)果提供了業(yè)務(wù)流程、數(shù)據(jù)流程、數(shù)據(jù)字典,得出了系統(tǒng)的邏輯模型,解決了“系統(tǒng)應(yīng)該做什么?”的問題。但是如何劃分系統(tǒng)的各項功能?而在信息系統(tǒng)中是靠計算機中的應(yīng)用程序模塊來實現(xiàn)的,這些功能應(yīng)該由哪些(nxi)程序模塊來實現(xiàn)的問題并沒有在系統(tǒng)分析階段中給出答案。這正是信息系統(tǒng)設(shè)計所要解決

2、的問題共一百九十六頁如何(rh)考慮?為實現(xiàn)某一個系統(tǒng)/子系統(tǒng),應(yīng)該設(shè)計幾個功能模塊?這些模塊由哪些程序)界面組成?它們之間又存在什么關(guān)系?為了提高運行效率在數(shù)據(jù)庫的組織方面(fngmin)又應(yīng)該采取什么措施?程序模塊應(yīng)該采用什么處理方式?共一百九十六頁 6. 系統(tǒng)(xtng)設(shè)計方法6.1 系統(tǒng)設(shè)計的主要內(nèi)容6.2 結(jié)構(gòu)化系統(tǒng)設(shè)計6.3 從數(shù)據(jù)流程圖導(dǎo)出結(jié)構(gòu)圖 6.4 模塊設(shè)計優(yōu)化6.5 代碼設(shè)計6.6 輸出設(shè)計6.7 輸入設(shè)計6.8 數(shù)據(jù)庫設(shè)計6.9 計算機處理過程的設(shè)計6.10 網(wǎng)絡(luò)系統(tǒng)設(shè)計6.11 系統(tǒng)設(shè)計說明書 共一百九十六頁根據(jù)系統(tǒng)分析階段所確定的新系統(tǒng)的邏輯模型(“做什么”),綜

3、合考慮各種約束,利用一切(yqi)可用的技術(shù)手段和方法,進行物理設(shè)計,提出一個能在計算機上實現(xiàn)的新系統(tǒng)的實施方案,解決“系統(tǒng)怎樣做”的問題。 6.1 系統(tǒng)設(shè)計(shj)的主要內(nèi)容抽象的問答共一百九十六頁數(shù)據(jù)(shj)字典數(shù)據(jù)(shj)流圖E-R圖加工小說明流程描述處理描述數(shù)據(jù)對描 述象數(shù) 據(jù) 設(shè) 計模塊結(jié)構(gòu)設(shè)計接口設(shè)計過程設(shè)計分析模型設(shè)計模型平 臺 設(shè) 計從分析模型系統(tǒng)設(shè)計模型共一百九十六頁 系統(tǒng)(xtng)設(shè)計的主要內(nèi)容數(shù)據(jù)設(shè)計:將分析時創(chuàng)建的數(shù)據(jù)模型變換成實現(xiàn)系統(tǒng)所需的數(shù)據(jù)結(jié)構(gòu)。接口(ji ku)設(shè)計:描述了系統(tǒng)內(nèi)部、系統(tǒng)和協(xié)作系統(tǒng)之間的以及系統(tǒng)同人之間如何通信。模塊結(jié)構(gòu)設(shè)計:定義系統(tǒng)模塊

4、元素之間的關(guān)系。過程設(shè)計:將加工說明變換為對系統(tǒng)模塊內(nèi)部算法的具體描述。平臺設(shè)計:將性能需求變換成對系統(tǒng)軟硬件環(huán)境的配置具體的問答共一百九十六頁系統(tǒng)總體設(shè)計 將系統(tǒng)合理的劃分成子系統(tǒng) 把子系統(tǒng)劃分成若干模塊 決定每個模塊的功能 決定模塊間數(shù)據(jù)、調(diào)用關(guān)系 確定模塊間界面系統(tǒng)詳細(xì)設(shè)計(shj) 系統(tǒng)平臺設(shè)計 代碼設(shè)計 輸入輸出設(shè)計 接口設(shè)計 數(shù)據(jù)庫或數(shù)據(jù)文件設(shè)計 模塊內(nèi)部的算法設(shè)計寫出系統(tǒng)設(shè)計報告 結(jié)構(gòu)化程序設(shè)計(shj)方法共一百九十六頁6. 系統(tǒng)設(shè)計方法(fngf)6.1 系統(tǒng)設(shè)計的主要內(nèi)容6.2 結(jié)構(gòu)化系統(tǒng)設(shè)計6.3 從數(shù)據(jù)流程圖導(dǎo)出結(jié)構(gòu)圖 6.4 模塊設(shè)計優(yōu)化6.5 代碼設(shè)計6.6 輸出設(shè)

5、計6.7 輸入設(shè)計6.8 數(shù)據(jù)庫設(shè)計6.9 計算機處理過程的設(shè)計6.10 網(wǎng)絡(luò)系統(tǒng)設(shè)計6.11 系統(tǒng)設(shè)計說明書 共一百九十六頁結(jié)構(gòu)化程序設(shè)計(shj)方法業(yè)務(wù) - 功能 - 模塊 - 界面按照業(yè)務(wù)劃分功能,根據(jù)功能設(shè)計模塊,再確定軟件結(jié)構(gòu)(即程序界面)。由于開發(fā)方法不同,確定軟件結(jié)構(gòu)的方法也不同。結(jié)構(gòu)化設(shè)計方法(SD法),即從分層的DFD圖導(dǎo)出初始的結(jié)構(gòu)圖,再對初始的結(jié)構(gòu)圖進行改進,獲得最終(zu zhn)的系統(tǒng)結(jié)構(gòu)圖。一般包括確定系統(tǒng)的軟件結(jié)構(gòu),分解模塊,確定系統(tǒng)的模塊層次關(guān)系。共一百九十六頁6.2 結(jié)構(gòu)化系統(tǒng)(xtng)設(shè)計 結(jié)構(gòu)化系統(tǒng)設(shè)計是“用一組標(biāo)準(zhǔn)(biozhn)的準(zhǔn)則和工具幫助系統(tǒng)

6、設(shè)計人員確定應(yīng)該由哪些模塊,用什么方式聯(lián)結(jié)在一起,才能構(gòu)成一個最好的系統(tǒng)結(jié)構(gòu)”。 即,結(jié)構(gòu)化設(shè)計方法(SD)是以數(shù)據(jù)流圖為基礎(chǔ)的,采用 模塊化、自頂向下逐步求精 的基本思想,以 數(shù)據(jù)流圖為基礎(chǔ) 構(gòu)造出模塊結(jié)構(gòu)圖。共一百九十六頁結(jié)構(gòu)化系統(tǒng)(xtng)設(shè)計的基本工具在系統(tǒng)設(shè)計階段,我們采用模塊結(jié)構(gòu)圖來表達(dá)目標(biāo)系統(tǒng)的物理模型,描述(mio sh)系統(tǒng)的結(jié)構(gòu)。系統(tǒng)結(jié)構(gòu)是軟件模塊之間關(guān)系的表示,它決定了整個系統(tǒng)的結(jié)構(gòu),也確定了系統(tǒng)的質(zhì)量。模塊之間的關(guān)系可有多種,但都可以歸結(jié)為一種層次關(guān)系。 模塊結(jié)構(gòu)圖是總體設(shè)計階段的主要描述工具,它描述了構(gòu)成系統(tǒng)的基本元素 模塊及模塊之間的調(diào)用關(guān)系,模塊之間的數(shù)據(jù)傳遞關(guān)

7、系。共一百九十六頁系統(tǒng)(xtng)模塊化模塊化就是將系統(tǒng)劃分為若干個功能,每個功能劃分為幾個模塊(或者說幾個模塊完成一個功能)。模塊化的目的是將系統(tǒng)“分而治之”,模塊化能夠降低問題的復(fù)雜性,使軟件構(gòu)件清晰,易閱讀、易理解,易于測試和調(diào)試,因而(yn r)也有助于提高軟件的可靠性。ABCDEFGHIJKLM共一百九十六頁1、模塊(m kui)模塊的定義: 模塊是可以組成、分解、更換的系統(tǒng),是易于處理的基本單位,是具有四種屬性的一組程序語句(yj)稱為一個模塊. 這四種屬性分別是 輸入輸出、邏輯功能(外部特性) 內(nèi)部數(shù)據(jù)、程序代碼(內(nèi)部特性)共一百九十六頁1、模塊(m kui)模塊(m kui)的

8、例子: int max( int x, int y) int z; z=xy? x: y; return(z); 模塊名數(shù)據(jù)內(nèi)部數(shù)據(jù)內(nèi)部語句共一百九十六頁模塊化思想(sxing):模塊化是好的系統(tǒng)設(shè)計的一個基本準(zhǔn)則: 高層模塊:從整體(zhngt)上把握問題,暫不考慮細(xì)節(jié)復(fù)雜問題 較小問題 分解 可減小解題所需的總的工作共一百九十六頁模塊(處理)用方框(fn kun)表示,方框(fn kun)中寫上模塊(處理)名字,反映了這個模塊(處理)的功能調(diào)用從調(diào)用模塊指向被調(diào)用模塊的箭頭 數(shù)據(jù)調(diào)用箭頭旁的小箭頭,表示從一個模塊向另一個模塊傳送的數(shù)據(jù),也指出了傳送的方向 2、模塊(m kui)結(jié)構(gòu)圖SC(

9、Structure Chart)共一百九十六頁結(jié)構(gòu)圖基本(jbn)符號及表示法編輯學(xué)生(xu sheng)記錄讀學(xué)生記錄學(xué)生數(shù)據(jù)無此學(xué)生學(xué)號不加區(qū)分的數(shù)據(jù)數(shù)據(jù)信息控制信息共一百九十六頁模塊調(diào)用(dioyng)的例子: int max( int x, int y) int z; z=xy? x: y; return(z); Main( ) : : max( 3, 4) : Main()求最大值Zxy共一百九十六頁SC中的四種(s zhn)模塊傳入(chun r)模塊(a)(b)AA傳出模塊BB變換模塊(c)CD協(xié)調(diào)模塊E(d)EFF共一百九十六頁SC中的簡單(jindn)調(diào)用BACx,yz(a)

10、表示法一(b)表示法二zBAC12入出12x,yzzA調(diào)用(dioyng)B和C共一百九十六頁SC中的選擇(xunz)調(diào)用ACBDA根據(jù)內(nèi)部判斷決定是否(sh fu)調(diào)用BA按另一判定結(jié)果選擇調(diào)用C或D共一百九十六頁SC中的循環(huán)(xnhun)調(diào)用ABCA根據(jù)(gnj)循環(huán)條件重復(fù)調(diào)用B、C等模塊共一百九十六頁選擇調(diào)用(dioyng)的例子: A( ) : if (條件.) B( ) else C( ) : ABC共一百九十六頁循環(huán)(xnhun)調(diào)用的例子: A( ) : while (條件.) B( ); : ; : AB共一百九十六頁 模塊(m kui)結(jié)構(gòu)類型 內(nèi)導(dǎo)結(jié)構(gòu):是結(jié)構(gòu)圖中數(shù)據(jù)以最

11、低層模塊(m kui)輸入,并逐級向高層傳遞,高一層模塊(m kui)接收低一層模塊(m kui)的輸入。 主模塊 A1 A4 A3 A2共一百九十六頁外導(dǎo)結(jié)構(gòu):結(jié)構(gòu)圖中低一層模塊接收上一層模塊的數(shù)據(jù)信息,并把它們(t men)轉(zhuǎn)換給下一級模塊,直到輸出給使用者。wu子模塊1v主模塊子模塊2子模塊2.1共一百九十六頁 轉(zhuǎn)換結(jié)構(gòu):數(shù)據(jù)要在模塊內(nèi)經(jīng)過一定的處理,下層模塊從相應(yīng)的上層(shngcng)模塊接收數(shù)據(jù),經(jīng)轉(zhuǎn)換后返回同一上層(shngcng)模塊中去。wu子模塊1v主模塊子模塊2子模塊2.1XMY共一百九十六頁打印(d yn)報表功能的模塊結(jié)構(gòu)圖共一百九十六頁6. 系統(tǒng)設(shè)計方法6.1 系統(tǒng)

12、設(shè)計的任務(wù)要求6.2 結(jié)構(gòu)化系統(tǒng)設(shè)計6.3 從數(shù)據(jù)(shj)流程圖導(dǎo)出結(jié)構(gòu)圖 6.4 模塊設(shè)計優(yōu)化6.5 代碼設(shè)計6.6 輸出設(shè)計6.7 輸入設(shè)計6.8 數(shù)據(jù)庫設(shè)計6.9 計算機處理過程的設(shè)計6.10 網(wǎng)絡(luò)系統(tǒng)設(shè)計6.11 系統(tǒng)設(shè)計說明書 共一百九十六頁6.3 數(shù)據(jù)流圖導(dǎo)出結(jié)構(gòu)圖數(shù)據(jù)(shj)流程圖DFD的結(jié)構(gòu)類型變換型DFD 一個數(shù)據(jù)流程圖可以明顯地分成(fn chn)輸入、處理和輸出三部分。2事務(wù)型DFD 事務(wù)型數(shù)據(jù)流程圖一般呈束狀形。共一百九十六頁1、變換(binhun)型結(jié)構(gòu) 由輸入、變換(binhun)中心(或稱主加工)和輸出三部分組成。 基本模型:輸入路徑輸出路徑變換中心共一百九十

13、六頁變換(binhun)流示意圖信息(xnx)時間信息流輸入流輸出流變換流外部表示內(nèi)部表示共一百九十六頁變換(binhun)型數(shù)據(jù)流圖輸入(shr)信息物理輸入格式檢查處理顯示正確信息結(jié)果物理輸出數(shù)據(jù)變換中心輸出邏輯輸入邏輯輸出輸入共一百九十六頁DFD導(dǎo)出初始(ch sh)SC的過程)先設(shè)計模塊(m kui)結(jié)構(gòu)頂端的主模塊(m kui))然后“由頂向下逐步細(xì)化”)最后得到一個與數(shù)據(jù)流圖相對應(yīng)的程序結(jié)構(gòu)共一百九十六頁1234567abcedrpuwv變換(binhun)中心輸入(shr)部分輸出部分輸入輸出加工共一百九十六頁1、區(qū)分輸入(shr)、主加工、輸出部分,在DFD上標(biāo)明分界線(1)確

14、定邏輯輸入離物理輸入端最遠(yuǎn)的,但仍可被看作系統(tǒng)輸入的那個數(shù)據(jù)流 方法:從物理輸入端開始(kish),一步步向系統(tǒng)的中間移動,直至達(dá)到這樣一個數(shù)據(jù)流:它已不能再被看作為系統(tǒng)的輸入,則其前一個數(shù)據(jù)流就是系統(tǒng)的邏輯輸入。共一百九十六頁(2)確定(qudng)邏輯輸出離物理輸出端最遠(yuǎn)的,但仍可被看作系統(tǒng)輸出的那個數(shù)據(jù)流 方法:從物理輸出端開始,一步步向系統(tǒng)的中間反方向移動,直至達(dá)到這樣一個數(shù)據(jù)流:它已不能再被看作為系統(tǒng)的輸出,則其后一個數(shù)據(jù)流就是系統(tǒng)的邏輯輸出。共一百九十六頁(3)對系統(tǒng)的每一股輸入和輸出,都用上面的方法找出相應(yīng)的邏輯輸入、輸出(4)確定主加工位于邏輯輸入和邏輯輸出之間的加工,就是系統(tǒng)

15、的主加工(5)幾點說明:有的系統(tǒng)只有輸入和輸出兩部分,沒有主加工根據(jù)經(jīng)驗,幾股數(shù)據(jù)流的匯合處往往是系統(tǒng)的主加工每個人都可以有自己的看法,找出來的主加工可能也不同,但一般(ybn)不會相差太遠(yuǎn)。共一百九十六頁2、 設(shè)計(shj)SC的頂層和第一層模塊(1) 設(shè)計(shj)一個頂層模塊(主模塊),它的功能是完成整個程序要做的工作。(2) 設(shè)計結(jié)構(gòu)的第一層:為邏輯輸入設(shè)計一個輸入模塊,它的功能是向主模塊提供數(shù)據(jù)為邏輯輸出設(shè)計一個輸出模塊,它的功能是輸出主模塊提供的數(shù)據(jù)為主加工設(shè)計一個變換模塊,它的功能是將邏輯輸入變換成邏輯輸出 共一百九十六頁第一級分解(fnji)后的SCMCMTMAME第一層頂層(

16、dn cn)c,ec,eu,wu,w傳送信息共一百九十六頁第一級分解(fnji)后的SC(另一種畫法)MCMA1ceu,wc,pMA2456ME1ME2eprrw,uw共一百九十六頁3、第二級分解(fnji)自頂向下分解(fnji),設(shè)計出每個分支(輸入、加工、輸出)的中、下層模塊(1)為每一個輸入模塊設(shè)計兩個下層模塊,一個是輸入模塊,接受數(shù)據(jù)來源;另一個是變換模塊,模塊調(diào)用時傳送的參數(shù)應(yīng)同數(shù)據(jù)流圖相對應(yīng)(2)輸出模塊也有兩部分組成,一部分是變換模塊,將數(shù)據(jù)變換成輸出的形式(xngsh);另一部分是輸出模塊 上述設(shè)計過程由頂向下遞歸進行,直至達(dá)到系統(tǒng)的輸入端或輸出端(3) 變換模塊的下層模塊,

17、根據(jù)數(shù)據(jù)流圖中相應(yīng)“加工”的組成情況而定。共一百九十六頁輸入(shr)分支的分解MAGet CbacRead Ddec,eB to CbcdeabGet EGet BD to EA to BRead ADFD圖共一百九十六頁輸出分支(fnzh)的分解MEWrite Vuuw,uvvPut UU to VWrite WwDFD圖共一百九十六頁加工(ji gng)分支的分解MT546ec,pru,wprDFD圖共一百九十六頁隨堂練習(xí)(linx)一個匯款處理業(yè)務(wù)流程:客戶填寫匯款單并提交給業(yè)務(wù)人員,業(yè)務(wù)員檢查匯款單是否填寫規(guī)范,然后計算匯款費用,并把發(fā)生的匯款和費用數(shù)據(jù)記帳存留(cn li),同時開

18、收據(jù)給匯款人共一百九十六頁數(shù)據(jù)(shj)流程圖匯款單合格的匯款單處理后的匯款單收據(jù)明細(xì)賬業(yè)務(wù)數(shù)據(jù)格式檢查計算匯費產(chǎn)生數(shù)據(jù)記帳共一百九十六頁匯款單合格的匯款單處理后的匯款單收據(jù)明細(xì)賬業(yè)務(wù)數(shù)據(jù)格式檢查計算匯費產(chǎn)生收據(jù)記帳邏輯(lu j)輸入邏輯(lu j)輸出變換中心共一百九十六頁第一級分解(fnji)匯款處理系統(tǒng)取得合格匯款單計算匯費記賬輸出處理后的匯款單合格的匯款單處理后的匯款單合格的匯款單業(yè)務(wù)數(shù)據(jù)處理后的匯款單業(yè)務(wù)數(shù)據(jù)共一百九十六頁第二級分解(fnji)匯款處理系統(tǒng)取得合格匯款單計算匯費記賬輸出處理后的匯款單 輸入?yún)R款單格式檢查產(chǎn)生收據(jù)打印收據(jù)合格的匯款單處理后的匯款單合格的匯款單業(yè)務(wù)數(shù)據(jù)處

19、理后的匯款單匯款單合格的匯款單匯款單處理后的匯款單收據(jù)收據(jù)業(yè)務(wù)數(shù)據(jù)共一百九十六頁2 事務(wù)(shw)型結(jié)構(gòu)特征:具有在多種事物中選擇執(zhí)行某類事物的能力(nngl)?;灸P停菏聞?wù)中心接受路徑動作路徑共一百九十六頁大型系統(tǒng)DFD中,變換型和事務(wù)(shw)型結(jié)構(gòu)共存:T事務(wù)(shw)中心傳入變換傳出共一百九十六頁任何情況下都可使用變換分析方法設(shè)計軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明顯(mngxin)的事務(wù)特點時(有一個明顯的事務(wù)中心),以采用事務(wù)分析方法為宜。事務(wù)分析(fnx)設(shè)計方法共一百九十六頁事務(wù)分析設(shè)計方法(fngf)步驟:(1)在DFD上確定事務(wù)(shw)中心。(2)為DFD上的事務(wù)中心設(shè)計主模塊,

20、再為每一種類型的事務(wù)處理設(shè)計一個事務(wù)處理模塊。(3)為每個事務(wù)處理模塊設(shè)計下面的操作模塊,再為操作模塊設(shè)計細(xì)節(jié)模塊。某些操作模塊和細(xì)節(jié)模塊可以被幾個上一層模塊共用。共一百九十六頁事務(wù)(shw)型DFD的劃分T事務(wù)(shw)中心傳入變換傳出接收部分發(fā)送部分a共一百九十六頁事務(wù)型SC的上層(shngcng)結(jié)構(gòu)(1)事務(wù)(shw)控制Get a頂層第一層a事務(wù)1 共一百九十六頁事務(wù)型SC的上層(shngcng)結(jié)構(gòu) (2)事務(wù)(shw)控制事務(wù)分析發(fā)送共一百九十六頁動作分支的典型(dinxng)結(jié)構(gòu)PT 2T 1T iA 2D 2A 1D 1A 3A jD k事務(wù)(shw)層操作層細(xì)節(jié)層處理層共一

21、百九十六頁要求類型處理圖書管理要求無效輸入1.1新書入庫1.2還入庫單罰款單1.5注銷圖書1.3還書1.4目錄文件借書單書單注銷單借書借書文件罰款單事務(wù)分析舉例-DFD事務(wù)中心共一百九十六頁事務(wù)(shw)分析舉例-轉(zhuǎn)換后的SC圖書處理系統(tǒng)取得圖書處理要求修改目錄文件操作層細(xì)節(jié)層新書入庫注銷圖書借書還書 打印罰款單修改借書文件圖書管理要求入庫單借書單 還書單注銷單共一百九十六頁練習(xí)一:將DFD用變換分析(fnx)和事務(wù)型 分析(fnx)導(dǎo)出初始SCAC1C2C3BDGEJFKLc1c2b2b1b3bac3dgfjheklm*共一百九十六頁初始(ch sh)SC系統(tǒng)主加工Put kGet dDGe

22、t cPut lKFEJGWrite mLB to cGet bARead aC1C3C2Ac 1Ac 2Dt 1Dt 3Dt 2Ac N操作層細(xì)節(jié)層dkkdmmlllkdccbbcaabb1b2c3c1c2b3e,fdg,jfe,ghh,jk共一百九十六頁練習(xí)(linx)二:將DFD用變換分析和事務(wù)型 分析導(dǎo)出初始SCAC1C2C3BDGEJFKLc1c2b2b1b3bac3dgfjheklm+共一百九十六頁初始(ch sh)SC系統(tǒng)主加工Put kGet dPut lKFEJGWrite mLGet bARead aC1C3C2Ac 1Ac 2Dt 1Dt 3Dt 2Ac N操作層細(xì)節(jié)層d

23、kkdmmlllkbaabb1b2c3c1c2b3e,fdg,jfe,ghh,jk共一百九十六頁6. 系統(tǒng)設(shè)計(shj)方法6.1 系統(tǒng)設(shè)計的任務(wù)要求6.2 結(jié)構(gòu)化系統(tǒng)設(shè)計6.3 從數(shù)據(jù)流程圖導(dǎo)出結(jié)構(gòu)圖 6.4 模塊設(shè)計優(yōu)化6.5 代碼設(shè)計6.6 輸出設(shè)計6.7 輸入設(shè)計6.8 數(shù)據(jù)庫設(shè)計6.9 計算機處理過程的設(shè)計6.10 網(wǎng)絡(luò)系統(tǒng)設(shè)計6.11 系統(tǒng)設(shè)計說明書 共一百九十六頁 6.4 設(shè)計(shj)優(yōu)化技巧 將初始SC根據(jù)模塊獨立性原則進行精化,對模塊進行合并、分解修改、調(diào)整,得到“高內(nèi)聚、低耦合模塊”,得到易于實現(xiàn)、易于測試和易于維護的軟件結(jié)構(gòu),產(chǎn)生(chnshng)設(shè)計文檔的最終SC,這

24、是設(shè)計優(yōu)化工作。直接從DFD轉(zhuǎn)換過來的SC并不是最好的,往往要優(yōu)化處理共一百九十六頁6.模塊(m kui)的耦合度與聚合度系統(tǒng)的可維護性是系統(tǒng)評價的一個(y )重要因素可維護性局部修改這是 設(shè)計原則:盡量保持模塊的獨立性!共一百九十六頁 模塊獨立性取決于模塊的內(nèi)部和外部特性SD方法提出的定性度量標(biāo)準(zhǔn): 模塊之間的耦合性(塊間聯(lián)系(linx))盡可能少 模塊自身的聚合性(塊內(nèi)聯(lián)系)盡可能多共一百九十六頁模塊(m kui)獨立性的度量之一:耦合度 耦合度:是模塊間的聯(lián)結(jié)關(guān)系,衡量不同模塊間的相互依賴的緊密程度(chngd),耦合的強弱取決于模塊間接口的復(fù)雜程度(chngd);進入或訪問一個模塊的入

25、口點;以及通過接口的數(shù)據(jù)。 耦合度越高,模塊獨立性越弱共一百九十六頁無耦合沒有(mi yu)依賴關(guān)系松散(sngsn)耦合有少量依賴關(guān)系緊密耦合有很多依賴關(guān)系 模塊耦合度(續(xù))共一百九十六頁耦合度強弱(qin ru)的因素:一模塊對另一模塊的引用一模塊向另一模塊傳遞(chund)的數(shù)據(jù)量一模塊施加到另一模塊的控制的數(shù)量模塊間接口的復(fù)雜程度共一百九十六頁模塊(m kui)間耦合的類型: 低 非直接耦合耦 數(shù)據(jù)(shj)耦合合 標(biāo)記耦合性 高 內(nèi)容耦合模塊獨立性弱(低耦合)強(中耦合)(較強耦合)(強耦合)公共耦合控制耦合共一百九十六頁非直接(zhji)耦合兩個(lin )模塊沒直接關(guān)系(模塊1和

26、模塊2),模塊獨立性最強。模塊1模塊2模塊3模塊4共一百九十六頁數(shù)據(jù)(shj)耦合一模塊調(diào)用另一模塊時,被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)(shj)。 屬松散耦合。共一百九十六頁數(shù)據(jù)(shj)耦合舉例開發(fā)票計算(j sun)水費單價數(shù)量金額一模塊調(diào)用另一模塊時,被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)。 屬松散耦合共一百九十六頁數(shù)據(jù)(shj)耦合舉例計算(j sun)水電費計算水費計算電費用水量用電量水費電費共一百九十六頁標(biāo)記(bioj)耦合(特征耦合)如兩個模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個數(shù)據(jù)結(jié)構(gòu)有關(guān)系, 則稱這兩個模塊間存在(cnzi)標(biāo)記耦合。共一

27、百九十六頁標(biāo)記(bioj)耦合舉例計算(j sun)水電費計算水費計算電費住戶情況水費電費住戶情況“住戶情況”是一個數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān).“計算水費”和“計算電費”本無關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶合.共一百九十六頁將標(biāo)記耦合修改(xigi)為數(shù)據(jù)耦合舉例計算(j sun)水電費計算水費計算電費本月用水量本月用電量水費電費共一百九十六頁控制(kngzh)耦合A計算(j sun)平均分或最高分B平均/最高成績一模塊通過開關(guān)量、標(biāo)志、名字等控制信息,明顯地控制另一模塊的功能。共一百九十六頁控制(kngzh)耦合舉例讀入分?jǐn)?shù)(fnsh)輸出結(jié)果計算平均分計算

28、最高分平均/最高?調(diào)用邏輯性模塊B時,須先傳遞控制信號(平均分/最高分),以選擇所需的操作??刂颇K必須知道被控模塊的內(nèi)部邏輯,增強了相互依賴.B共一百九十六頁 去除模塊間控制耦合的方法(fngf): (1)被調(diào)用模塊分解成若干單一功能模塊 (2)將被調(diào)用模塊內(nèi)的判定上移到調(diào)用模塊中共一百九十六頁改控制(kngzh)耦合為數(shù)據(jù)耦合舉例A計算(j sun)平均分B1平均成績最高成績計算最高分B2共一百九十六頁控制(kngzh)耦合舉例A發(fā)獎牌(jin pi) 名次(開關(guān)量)獎牌控制耦合被調(diào)用模塊內(nèi)處理邏輯模式功能A功能B判別共一百九十六頁改控制耦合為數(shù)據(jù)(shj)耦合舉例A發(fā)金牌(jn pi)發(fā)

29、銀牌發(fā)銅牌金牌銀牌銅牌共一百九十六頁A取口令(kulng)并核對B用戶名、口令(kulng)對/不對控制耦合舉例共一百九十六頁A取口令(kulng)B用戶名口令(kulng)將B中核對口令功能劃分到 A共一百九十六頁公共(gnggng)耦合(公共數(shù)據(jù)區(qū)耦合)一組模塊引用同一個公用數(shù)據(jù)區(qū)(也稱全局?jǐn)?shù)據(jù)區(qū)、公共數(shù)據(jù)環(huán)境(hunjng)。公共數(shù)據(jù)區(qū)指: 全局?jǐn)?shù)據(jù)結(jié)構(gòu) 共享通訊區(qū) 內(nèi)存公共覆蓋區(qū)等共一百九十六頁公共(gnggng)耦合舉例 公共數(shù)據(jù)區(qū)松散(sngsn)的公共耦合 公共數(shù)據(jù)區(qū)緊密的公共耦合共一百九十六頁公共(gnggng)耦合舉例公共數(shù)據(jù)區(qū)CB模塊(m kui)A、B、C間存在錯綜復(fù)雜的

30、聯(lián)系共一百九十六頁公共(gnggng)耦合舉例所有(suyu)的公共 耦合關(guān)系A(chǔ)EBCD6個模塊共享一個公共數(shù)據(jù)區(qū)F共一百九十六頁內(nèi)容(nirng)耦合一模塊直接(zhji)訪問另一模塊的內(nèi)部信息(程序代碼或數(shù)據(jù)) 最好不采用內(nèi)容耦合形式 !共一百九十六頁如何降低(jingd)模塊間耦合度:(1) 如模塊必須存在耦合,選擇適當(dāng)?shù)鸟詈项愋?原則:盡量使用數(shù)據(jù)耦合 少用控制耦合 限制公共(gnggng)耦合的范圍 堅決避免使用內(nèi)容耦合(2) 降低模塊間接口的復(fù)雜性 共一百九十六頁模塊(m kui)獨立性的度量之二:聚合度 衡量一個模塊內(nèi)部(nib)各成分之間彼此結(jié)合的緊密程度 設(shè)計目標(biāo):高聚合(一

31、模塊的所有成分都直接參與完成同一功能)共一百九十六頁模塊的聚合(jh)性類型: 低 偶然聚合 邏輯聚合 時間(shjin)聚合 過程聚合 通信聚合 順序聚合 高 功能聚合模塊獨立性弱(功能分散)強(功能單一)內(nèi)聚性共一百九十六頁功能(gngnng)聚合 一個模塊內(nèi)的所有成分的處理動作(dngzu)全部為完成某個功能,且只執(zhí)行一個功能,缺一不可, 稱為功能聚合。 聚合性最強如:計算實發(fā)工資,打印發(fā)票等共一百九十六頁模塊聚合(jh)性的判斷YNYY 該模塊功能單一 各功能關(guān)系如何功能聚合10分通訊聚合7分順序聚合9分邏輯相似次序重要次序重要過程聚合5分時間聚合3分邏輯聚合1分偶然聚合0分NNNY數(shù)

32、據(jù)流控制流兩者皆非共一百九十六頁耦合、聚合(jh)與模塊獨立性關(guān)系 耦合與聚合都是模塊獨立性的定性標(biāo)準(zhǔn),都反映模塊獨立性的良好程度。但耦合是直接的主導(dǎo)因素(yn s),聚合則輔助耦合共 同對模塊獨立性進行衡量。共一百九十六頁控制(kngzh)耦合舉例A計算(j sun)平均分或最高分B平均/最高成績邏輯聚合共一百九十六頁改控制(kngzh)耦合為數(shù)據(jù)耦合舉例A計算(j sun)平均分B1平均成績最高成績計算最高分B2功能聚合共一百九十六頁A取口令(kulng)并核對B用戶名、口令(kulng)對/不對控制耦合舉例順序聚合共一百九十六頁A取口令(kulng)B用戶名口令(kulng)將B中核對口

33、令功能劃分到 A功能聚合共一百九十六頁6.4.2 優(yōu)化軟件結(jié)構(gòu)設(shè)計(shj)(1)程序結(jié)構(gòu)盡可能與問題結(jié)構(gòu)相對應(yīng)(2)模塊功能要完整(3)消除重復(fù)功能(4)作用范圍應(yīng)在控制范圍內(nèi)(5)減少(jinsho)高扇出爭取高扇入(6)模塊大小適中(7)降低模塊接口的復(fù)雜性(8)模塊功能可預(yù)測 共一百九十六頁(1)程序結(jié)構(gòu)(jigu)盡可能與問題結(jié)構(gòu)(jigu)相對應(yīng) 兩種典型的程序結(jié)構(gòu): 變換型程序 事務(wù)型程序 兩種程序結(jié)構(gòu)的共同特征: 上層模塊只負(fù)責(zé)控制、協(xié)調(diào) 下層模塊完成具體(jt)的操作共一百九十六頁變換(binhun)型程序 變換型(即輸入、加工、輸出(shch)型,或稱IPO型)的功能是從某

34、輸入設(shè)備(如鍵盤)獲得數(shù)據(jù),再對這些數(shù)據(jù)作處理,然后將結(jié)果送出(如屏幕顯示)。 這類程序的標(biāo)準(zhǔn)SC圖形如下圖所示:共一百九十六頁變換型程序結(jié)構(gòu)MAINGet cbacd to eddb to cbceeabPUT dGet bWrite ea to bRead ac to dcd共一百九十六頁(2)模塊(m kui)功能的完整完整的模塊應(yīng)包括三部分:執(zhí)行規(guī)定功能部分出錯處理部分需返回一系列數(shù)據(jù)(shj)時,應(yīng)返回是否正確結(jié)束(即“文件完/EOF”)標(biāo)志。共一百九十六頁(3)消除重復(fù)(chngf)功能 幾個模塊中含有重復(fù)的部分(b fen),應(yīng)設(shè)法消去。因為同一功能重復(fù)多處,不僅浪費編程、測試時

35、間,還會給修改帶來麻煩。 但消除重復(fù)功能并不是簡單的合并,正確的方法是:先分析幾個模塊中相同功能的部分;然后把這個功能分離出來,構(gòu)成它們的一個公共的下層模塊。共一百九十六頁例子(l zi):消除重復(fù)功能ACBCABC改進(gijn)前改進后共一百九十六頁(4) 作用(zuyng)范圍應(yīng)在控制范圍內(nèi)(作用域應(yīng)在控制域內(nèi))模塊的控制范圍(控制域) : 包括模塊本身(bnshn)和其下屬模塊的集合。模塊的作用范圍(作用域): 指受該模塊內(nèi)一個條件判定影響的所有模塊的集合。只要模塊中含有一些依賴于這個判定的語句,那么就稱該模塊在這個判定的作用范圍內(nèi)??刂朴蚴菑慕Y(jié)構(gòu)方面考慮的;作用域是從功能方面考慮的共

36、一百九十六頁AFBCEMDG模塊(m kui)的控制范圍和作用范圍(例):條件(tiojin)判定模塊A的控制范圍: A、B、C、 D、E、F A的作用范圍: A、C、F:受判定影響的模塊共一百九十六頁把一個條件判定的作用(zuyng)范圍限制在判定所在模塊的控制范圍之內(nèi),且判定所在位置不能太高。(作用域是控制域的子集)作用范圍/控制(kngzh)范圍原則:共一百九十六頁圖A:判定位置違反(wifn)作用范圍/控制范圍原則TOPABCDGE條件(tiojin)判定判定的作用范圍有一部分(模塊C)越出了判定所在模塊G的控制范圍G D B C共一百九十六頁圖B:符合作用(zuyng)范圍/控制范圍原則,但判定位置太高TOPABCDGE條件(tiojin)判定TOP B D GTOP B C共一百九十六頁圖C:符合作用范圍(fnwi)/控制范圍原則,判定位置適中TOPAGCDB

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論