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

下載本文檔

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

文檔簡(jiǎn)介

軟件工程第四章軟件設(shè)計(jì)4.5.1面向數(shù)據(jù)流的設(shè)計(jì)方法

(結(jié)構(gòu)化設(shè)計(jì)方法SD,StructuredDesign)

1.面向數(shù)據(jù)流設(shè)計(jì)方法的基本概念

SD以數(shù)據(jù)流圖為基礎(chǔ),它定義了把DFD(DataFlowDiagram)變換成軟件結(jié)構(gòu)的映射方法映射DFD(問(wèn)題結(jié)構(gòu))軟件系統(tǒng)的結(jié)構(gòu)(程序結(jié)構(gòu))第2頁(yè),共64頁(yè),2024年2月25日,星期天數(shù)據(jù)流圖可分為兩種類(lèi)型:

變換型數(shù)據(jù)流事務(wù)型數(shù)據(jù)流第3頁(yè),共64頁(yè),2024年2月25日,星期天變換型數(shù)據(jù)流時(shí)間輸入流輸出流變換流信息信息沿輸入通路進(jìn)入系統(tǒng);進(jìn)入系統(tǒng)的信息通過(guò)變換中心;經(jīng)加工處理以后再沿輸出通路離開(kāi)軟件系統(tǒng);當(dāng)數(shù)據(jù)流圖具有這些特征時(shí),這種信息流就叫作變換流。第4頁(yè),共64頁(yè),2024年2月25日,星期天事務(wù)型數(shù)據(jù)流當(dāng)數(shù)據(jù)流經(jīng)過(guò)一個(gè)具有“事務(wù)中心”特征的數(shù)據(jù)處理時(shí),它可以根據(jù)事務(wù)類(lèi)型從多條路徑的數(shù)據(jù)流中選擇一條活動(dòng)通路。這種具有根據(jù)條件選擇處理不同事務(wù)的數(shù)據(jù)流,就是事務(wù)型數(shù)據(jù)流,簡(jiǎn)稱(chēng)事務(wù)流。……活動(dòng)通路……………………事務(wù)中心⊕⊕⊕第5頁(yè),共64頁(yè),2024年2月25日,星期天面向數(shù)據(jù)流方法的設(shè)計(jì)過(guò)程精化數(shù)據(jù)流圖區(qū)分事務(wù)中心和數(shù)據(jù)接收路徑映射成變換結(jié)構(gòu)流類(lèi)型區(qū)分輸入和輸出分支映射成事務(wù)結(jié)構(gòu)用啟發(fā)式設(shè)計(jì)規(guī)則精化軟件結(jié)構(gòu)導(dǎo)出接口描述和全程數(shù)據(jù)結(jié)構(gòu)復(fù)查詳細(xì)設(shè)計(jì)“事務(wù)”“變換”事務(wù)分析變換分析第6頁(yè),共64頁(yè),2024年2月25日,星期天初始的SC主模塊輸入模塊主加工模塊傳出模塊事務(wù)控制模塊接受模塊動(dòng)作發(fā)送模塊動(dòng)作1模塊動(dòng)作2模塊動(dòng)作3模塊由變換分析產(chǎn)生由事務(wù)分析產(chǎn)生第7頁(yè),共64頁(yè),2024年2月25日,星期天軟件結(jié)構(gòu)圖的六種模塊類(lèi)型⑴傳入模塊從下屬模塊傳入數(shù)據(jù)X,經(jīng)處理后返回給上級(jí)模塊數(shù)據(jù)流Y。它傳送的數(shù)據(jù)流叫做邏輯輸入數(shù)據(jù)流。箭頭尾部是空心圓表示傳遞的是數(shù)據(jù),否則表示傳遞的是控制信息。為了繪圖簡(jiǎn)便本講義后面暫且全部用普通箭頭數(shù)據(jù)流控制流X模塊名Y第8頁(yè),共64頁(yè),2024年2月25日,星期天軟件結(jié)構(gòu)圖的四種模塊類(lèi)型(續(xù))⑵

傳出模塊

從上級(jí)模塊獲得數(shù)據(jù),經(jīng)處理后再將其傳送給下屬模塊。YX⑶變換模塊

也叫做加工模塊。它從上級(jí)模塊獲得數(shù)據(jù),經(jīng)處理,轉(zhuǎn)換成其他形式,再傳送回上級(jí)模塊。YX第9頁(yè),共64頁(yè),2024年2月25日,星期天軟件結(jié)構(gòu)圖的四種模塊類(lèi)型(續(xù))⑷源模塊

⑸終模塊

以上兩種模塊只被調(diào)用,不調(diào)用別的模塊。傳入的始端X傳出的末端X第10頁(yè),共64頁(yè),2024年2月25日,星期天軟件結(jié)構(gòu)圖的六種模塊類(lèi)型(續(xù))⑹控制模塊

對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。在一個(gè)好的系統(tǒng)結(jié)構(gòu)圖中,協(xié)調(diào)模塊應(yīng)在較高層出現(xiàn)?!璝XYXYX或第11頁(yè),共64頁(yè),2024年2月25日,星期天模塊調(diào)用的表示⑴簡(jiǎn)單調(diào)用

XX,YZACB箭頭指向被調(diào)用模塊模塊A調(diào)用B和C,A向B傳送數(shù)據(jù)流X和Y,B返回A數(shù)據(jù)流Z第12頁(yè),共64頁(yè),2024年2月25日,星期天模塊調(diào)用的表示(續(xù))⑵選擇調(diào)用

ACDB模塊A中某個(gè)判定為真時(shí)調(diào)用模塊C,為假時(shí)調(diào)用模塊D。模塊A中某個(gè)判定為真時(shí)調(diào)用模塊B,為假時(shí)不調(diào)用。表示判定條件。BCD第13頁(yè),共64頁(yè),2024年2月25日,星期天模塊調(diào)用的表示(續(xù))⑶循環(huán)調(diào)用

模塊A根據(jù)內(nèi)部循環(huán)條件,重復(fù)調(diào)用B、C模塊,直至內(nèi)部出現(xiàn)滿足循環(huán)終止條件為止。ABCABCD第14頁(yè),共64頁(yè),2024年2月25日,星期天2.面向數(shù)據(jù)流設(shè)計(jì)方法的設(shè)計(jì)步驟(1)優(yōu)化DFD(2)確定DFD類(lèi)型(3)把DFD映射到系統(tǒng)模塊結(jié)構(gòu),設(shè)計(jì)出模塊結(jié)構(gòu)的上層(4)基于DFD逐步分解高層模塊,設(shè)計(jì)出下層模塊(5)根據(jù)模塊獨(dú)立性原理,優(yōu)化模塊結(jié)構(gòu)(6)模塊接口描述第15頁(yè),共64頁(yè),2024年2月25日,星期天步驟:(1)區(qū)分傳入、變換中心、傳出部分,在DFD

上標(biāo)明分界線(1)變換分析設(shè)計(jì)方法第16頁(yè),共64頁(yè),2024年2月25日,星期天BCADEQPRWUVabcedrpuwv變換中心傳入部分傳出部分第17頁(yè),共64頁(yè),2024年2月25日,星期天從數(shù)據(jù)流程圖的物理輸入端開(kāi)始,向系統(tǒng)的中間移動(dòng),一直到某個(gè)數(shù)據(jù)流不再被看作是系統(tǒng)的輸入為止,這個(gè)數(shù)據(jù)流的前一個(gè)數(shù)據(jù)流就是系統(tǒng)的邏輯輸入。同理從物理輸出端開(kāi)始,向系統(tǒng)的中間移動(dòng),就可以找到軟件的邏輯輸出。在輸入部分和輸出部分之間的就是中心變換部分。

第18頁(yè),共64頁(yè),2024年2月25日,星期天變換分析設(shè)計(jì)方法步驟(2)第一級(jí)分解(建立初始SC框架)

設(shè)計(jì)頂層和第一層模塊第19頁(yè),共64頁(yè),2024年2月25日,星期天第一級(jí)分解的方法MCMTMAME第20頁(yè),共64頁(yè),2024年2月25日,星期天第一級(jí)分解后的SCMCMTMAME第一層頂層c,ec,eu,wu,w傳入模塊傳出模塊中心變換模塊第21頁(yè),共64頁(yè),2024年2月25日,星期天第一級(jí)分解后的SC(另一種畫(huà)法)MCMA1ceuc,pQPReprrw,uw傳入分支模塊中心加工分支模塊傳出分支模塊MA2ME1ME2第22頁(yè),共64頁(yè),2024年2月25日,星期天變換分析設(shè)計(jì)方法步驟(3)第二級(jí)分解(分解SC各分支)

自頂向下分解,設(shè)計(jì)出每個(gè)分支的中、下層模塊第23頁(yè),共64頁(yè),2024年2月25日,星期天完成第二級(jí)分解的方法是,從變換中心的邊界開(kāi)始沿著輸入通路向左移動(dòng),把輸入通路中每個(gè)處理邏輯映射成軟件結(jié)構(gòu)中MA控制下的一個(gè)低層模塊;然后沿輸出通路向右移動(dòng),把輸出通路中每個(gè)處理邏輯映射成直接或間接受模塊ME控制的一個(gè)低層模塊;最后把變換中心內(nèi)的每個(gè)處理映射成受MT控制的一個(gè)模塊。第24頁(yè),共64頁(yè),2024年2月25日,星期天傳入分支的分解

MACBAbacEDdec,e第25頁(yè),共64頁(yè),2024年2月25日,星期天傳出分支的分解

WvMEUwuw,uV第26頁(yè),共64頁(yè),2024年2月25日,星期天中心加工分支的分解MTPQRec,pru,wpr第27頁(yè),共64頁(yè),2024年2月25日,星期天第一次分解文件單詞數(shù)目統(tǒng)計(jì)讀取和驗(yàn)證文件名統(tǒng)計(jì)單詞數(shù)目格式化和顯示單詞數(shù)下面設(shè)計(jì)一個(gè)“統(tǒng)計(jì)輸入文件中單詞數(shù)目”程序。輸入流邊界輸出流邊界有效的文件名單詞總數(shù)格式化單詞數(shù)驗(yàn)證文件名統(tǒng)計(jì)單詞數(shù)格式化單詞數(shù)讀文件名文件名單詞總數(shù)顯示單詞數(shù)文件名文件單詞數(shù)目統(tǒng)計(jì)讀取和驗(yàn)證文件名統(tǒng)計(jì)單詞數(shù)目格式化和顯示單詞數(shù)格式化單詞數(shù)顯示單詞數(shù)讀文件名驗(yàn)證文件名第二次分解第28頁(yè),共64頁(yè),2024年2月25日,星期天

任何情況下都可使用變換分析方法設(shè)計(jì)軟件結(jié)構(gòu),但如數(shù)據(jù)流具有明顯的事務(wù)特點(diǎn)時(shí)(有一個(gè)明顯的事務(wù)中心),以采用事務(wù)分析方法為宜。(2)事務(wù)分析設(shè)計(jì)方法第29頁(yè),共64頁(yè),2024年2月25日,星期天事務(wù)分析設(shè)計(jì)方法步驟:(1)在DFD上確定事務(wù)中心、接收部分和發(fā)送部分。(2)畫(huà)出SC框架,把DFD上的三部分分別映射為事務(wù)控制模塊、接收模塊和動(dòng)作發(fā)送模塊。(3)分解細(xì)化接收分支和發(fā)送分支,完成初始SC。第30頁(yè),共64頁(yè),2024年2月25日,星期天事務(wù)分析的映射方法總控調(diào)度C路徑B路徑A路徑A路徑B路徑C路徑接收路徑第31頁(yè),共64頁(yè),2024年2月25日,星期天事務(wù)流設(shè)計(jì)事務(wù)選擇確定事務(wù)類(lèi)型審計(jì)記錄事務(wù)1事務(wù)2事務(wù)3事務(wù)4審計(jì)信息事務(wù)5更新事務(wù)v有效事務(wù)查詢(xún)更新事務(wù)w有效事務(wù)存款更新事務(wù)x有效事務(wù)取款更新事務(wù)y有效事務(wù)轉(zhuǎn)賬更新事務(wù)z有效事務(wù)修改密碼ATM機(jī)處理事務(wù)主控調(diào)度器更新事務(wù)查詢(xún)審計(jì)記錄分析器事務(wù)選擇存款轉(zhuǎn)賬取款修改密碼ATM機(jī)系統(tǒng)結(jié)構(gòu)映射成第32頁(yè),共64頁(yè),2024年2月25日,星期天ABT1變換中心傳入傳出T2T3abb1b2b3c1c2c3degfjLm事務(wù)流子系統(tǒng)BCCDDEEHHKFJKLLMh(3)混合流設(shè)計(jì)舉例k第33頁(yè),共64頁(yè),2024年2月25日,星期天混合流設(shè)計(jì)舉例輸入DXX系統(tǒng)變換控制輸出K輸入Cdc輸出LCDDEFJEHHKKLcddkkkLL輸出MLMmmL事務(wù)子系統(tǒng)defghgjk第34頁(yè),共64頁(yè),2024年2月25日,星期天混合流設(shè)計(jì)讀入數(shù)據(jù)判別

訂貨處理

訂貨輸入

提貨發(fā)票進(jìn)貨輸入

庫(kù)存修改

進(jìn)貨票據(jù)

訂單記錄

分析統(tǒng)計(jì)生成統(tǒng)計(jì)表映射成第35頁(yè),共64頁(yè),2024年2月25日,星期天4.5.3體系結(jié)構(gòu)設(shè)計(jì)優(yōu)化

將初始SC根據(jù)模塊獨(dú)立性原則進(jìn)行精化,對(duì)模塊進(jìn)行合并、分解修改、調(diào)整,得到高內(nèi)聚、低耦合模塊,得到易于實(shí)現(xiàn)、易于測(cè)試和易于維護(hù)的軟件結(jié)構(gòu),產(chǎn)生設(shè)計(jì)文檔的最終SC。第36頁(yè),共64頁(yè),2024年2月25日,星期天(1)模塊功能的完善化完整的模塊應(yīng)包括三部分:(1)執(zhí)行規(guī)定功能部分(2)出錯(cuò)處理部分(3)需返回給調(diào)用者數(shù)據(jù)時(shí),返回是否正確結(jié)束標(biāo)志。改進(jìn)軟件結(jié)構(gòu)設(shè)計(jì)的指導(dǎo)原則

(軟件結(jié)構(gòu)設(shè)計(jì)的啟發(fā)式規(guī)則)第37頁(yè),共64頁(yè),2024年2月25日,星期天(2)消除重復(fù)功能Q1CQ2CQ1Q2C改進(jìn)前Q1、Q2功能相似XYQ’XYXY重復(fù)部分改進(jìn)方法1:將Q1、Q2合并為Q’不可取改進(jìn)方法2:將Q1、Q2的公共部分分離出來(lái)第38頁(yè),共64頁(yè),2024年2月25日,星期天原則:某模塊的判定語(yǔ)句的作用范圍應(yīng)在該模塊的控制范圍之內(nèi),最好在直接控制范圍之內(nèi)。(下圖中綠色的模塊是判定語(yǔ)句的作用范圍)TXYBB1B2ATXYABB1B2TXYABB1B2TXYABB1B2違背原則符合但太高適中理想3、調(diào)整軟件結(jié)構(gòu)以保證結(jié)構(gòu)中的模塊滿足作用范圍/控制范圍原則第39頁(yè),共64頁(yè),2024年2月25日,星期天如果在設(shè)計(jì)過(guò)程中,發(fā)現(xiàn)作用范圍不在控制范圍內(nèi),可采用如下辦法把作用范圍移到控制范圍之內(nèi):1)提高控制模塊的層次。將判定所在模塊合并到父模塊中,使判定處于較高層次。2)將受判定影響的模塊下移到控制范圍內(nèi);3)將判定上移到層次中較高的位置。但是要注意,判定所在的模塊最好不要太高,模塊之間的控制參數(shù)傳遞路徑太長(zhǎng),增加了模塊之間的耦合。第40頁(yè),共64頁(yè),2024年2月25日,星期天(4)減少高扇出爭(zhēng)取高扇入高扇出的模塊結(jié)構(gòu)舉例:編外人員工資取得工資數(shù)據(jù)計(jì)時(shí)制工資額薪金制工資額編外人員稅款編外人員扣款常規(guī)扣款稅收扣款計(jì)算實(shí)發(fā)工資避免平鋪結(jié)構(gòu)第41頁(yè),共64頁(yè),2024年2月25日,星期天增加中間層降低扇出編外人員工資取得工資數(shù)據(jù)計(jì)時(shí)制工資額薪金制工資額編外人員稅款編外人員扣款常規(guī)扣款稅收扣款計(jì)算實(shí)發(fā)工資計(jì)時(shí)工人實(shí)發(fā)工資計(jì)薪工人實(shí)發(fā)工資編外人員實(shí)發(fā)工資第42頁(yè),共64頁(yè),2024年2月25日,星期天

設(shè)計(jì)良好的軟件結(jié)構(gòu)應(yīng)該是頂層扇出比較高,中間扇出較少,底層扇入到高扇入的公共模塊,有點(diǎn)類(lèi)似于橄欖狀的結(jié)構(gòu)第43頁(yè),共64頁(yè),2024年2月25日,星期天(5)模塊大小適中模塊過(guò)大:可理解程度下降模塊過(guò)?。洪_(kāi)銷(xiāo)大于有效操作系統(tǒng)接口復(fù)雜(6)降低模塊接口的復(fù)雜性

接口傳遞信息應(yīng)簡(jiǎn)單且和模塊功能一致。第44頁(yè),共64頁(yè),2024年2月25日,星期天(7)模塊功能可預(yù)測(cè)模塊看成黑盒子,相同輸入產(chǎn)生相同輸出,其功能為可預(yù)測(cè)的。模塊帶有內(nèi)部狀態(tài)其功能可能是不可預(yù)測(cè)的。難理解、難測(cè)試、難維護(hù)。第45頁(yè),共64頁(yè),2024年2月25日,星期天(8)避免模塊的病態(tài)連接

防止指向模塊中間的分支或引用(針對(duì)內(nèi)容耦合)

(9)根據(jù)設(shè)計(jì)約束和可移植性需求對(duì)軟件打包打包指用來(lái)為特定環(huán)境組裝軟件的技術(shù)第46頁(yè),共64頁(yè),2024年2月25日,星期天4.5.4層次圖和HIPO圖IBM公司發(fā)明的HIPO圖:層次圖

+

輸入/處理/輸出圖

(H圖)(IPO圖)(HierachyInputProcessOutput)第47頁(yè),共64頁(yè),2024年2月25日,星期天1.層次圖(H圖)

表示軟件的層次結(jié)構(gòu)正文加工系統(tǒng)輸入輸出編輯加標(biāo)題存儲(chǔ)檢索編目錄添加刪除插入修改合并列表第48頁(yè),共64頁(yè),2024年2月25日,星期天帶編號(hào)的層次圖(H圖)

正文加工系統(tǒng)輸入1.0輸出2.0編輯3.0加標(biāo)題

4.0存儲(chǔ)5.0檢索6.0編目錄

7.0添加3.1刪除3.2插入3.3修改3.4合并3.5列表3.6第49頁(yè),共64頁(yè),2024年2月25日,星期天2.

HIPO圖H圖中每一方框(模塊)均有一張IPO圖對(duì)應(yīng)

航線調(diào)度系統(tǒng)HIPO圖舉例

H圖:命令監(jiān)控器1.0取得輸入1.1輸入確認(rèn)

1.2請(qǐng)求確認(rèn)1.3更新處理

1.4第50頁(yè),共64頁(yè),2024年2月25日,星期天傳統(tǒng)的IPO圖舉例輸入處理輸出讀口令請(qǐng)求口令文件1取得輸入2口令確認(rèn)3請(qǐng)求確認(rèn)請(qǐng)求記錄權(quán)限文件4更新處理權(quán)限記錄狀態(tài)報(bào)告響應(yīng)命令監(jiān)控器(1.0)的IPO圖第51頁(yè),共64頁(yè),2024年2月25日,星期天改進(jìn)的IPO圖格式IPO圖系統(tǒng):模塊:編號(hào):作者:日期:被調(diào)用:調(diào)用:輸出:輸入:輸入:局部數(shù)據(jù)元素:注釋?zhuān)旱?2頁(yè),共64頁(yè),2024年2月25日,星期天§4.6詳細(xì)設(shè)計(jì)(過(guò)程設(shè)計(jì)、模塊設(shè)計(jì))主要任務(wù):編寫(xiě)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)為此,設(shè)計(jì)人員應(yīng):(1)確定每個(gè)模塊的算法,用工具表達(dá)算法的過(guò)程,寫(xiě)出模塊的詳細(xì)過(guò)程性描述。(2)確定每一模塊的數(shù)據(jù)結(jié)構(gòu)。(3)確定模塊接口細(xì)節(jié)。詳細(xì)設(shè)計(jì)是編碼的先導(dǎo)。第53頁(yè),共64頁(yè),2024年2月25日,星期天4.6.1

結(jié)構(gòu)化程序設(shè)計(jì)(SP)方法傳統(tǒng)的設(shè)計(jì)技術(shù)和舊觀念:設(shè)計(jì)的隨意性,具有濃厚的個(gè)人色彩.追求程序效率和個(gè)人設(shè)計(jì)技巧新的設(shè)計(jì)思想和風(fēng)格:清晰第一使用標(biāo)準(zhǔn)的、規(guī)范的控制結(jié)構(gòu)逐步細(xì)化第54頁(yè),共64頁(yè),2024年2月25日,星期天4.6.2詳細(xì)設(shè)計(jì)的描述方法詳細(xì)設(shè)計(jì)工具:(1)圖形工具(2)表格工具(3)語(yǔ)言工具第55頁(yè),共64頁(yè),2024年2月25日,星期天1.程序流程圖2.盒圖(N-S圖)3.問(wèn)題分析圖(PAD)4.過(guò)程設(shè)計(jì)語(yǔ)言(PDL)(偽碼)5.判定表第56頁(yè),共64頁(yè),2024年2月25日,星期天

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論