軟件工程結(jié)構(gòu)化分析與設(shè)計(jì)-文檔資料_第1頁(yè)
軟件工程結(jié)構(gòu)化分析與設(shè)計(jì)-文檔資料_第2頁(yè)
軟件工程結(jié)構(gòu)化分析與設(shè)計(jì)-文檔資料_第3頁(yè)
軟件工程結(jié)構(gòu)化分析與設(shè)計(jì)-文檔資料_第4頁(yè)
軟件工程結(jié)構(gòu)化分析與設(shè)計(jì)-文檔資料_第5頁(yè)
已閱讀5頁(yè),還剩89頁(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)介

1、1第三章 結(jié)構(gòu)化分析與設(shè)計(jì)w需求分析w結(jié)構(gòu)化系統(tǒng)分析w模塊化設(shè)計(jì)思想w結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)w模塊設(shè)計(jì)23.1 需求分析w準(zhǔn)確、完整、規(guī)范化的軟件需求是軟件開(kāi)發(fā)成功的關(guān)鍵w軟件項(xiàng)目中40-60%的問(wèn)題是在需求階段埋下的禍根3 讓用戶和開(kāi)發(fā)者共同明確將要開(kāi)發(fā)的是一個(gè)什么樣(what)的系統(tǒng)w第一:建立分析模型 描述軟件需求的一組模型,是形成需求說(shuō) 明、進(jìn)行軟件設(shè)計(jì)的基礎(chǔ)w第二:得到軟件需求規(guī)格說(shuō)明書(shū) 準(zhǔn)確、一致、清晰、無(wú)二義、直觀易讀需求分析的任務(wù)4w需求獲取(調(diào)研) 形式:聯(lián)合分析小組 手段:客戶訪談、問(wèn)答、原件收集 目標(biāo):功能、界面、質(zhì)量.需求分析的步驟開(kāi)發(fā)方用戶方(代表)專家5需求分析的步驟w需求

2、提煉:分析建模結(jié)構(gòu)化分析面向?qū)ο蠓治鰯?shù)據(jù)流圖實(shí)體關(guān)系圖狀態(tài)轉(zhuǎn)換圖控制流圖.類(lèi)圖狀態(tài)圖活動(dòng)圖.用例圖6需求分析的步驟w需求描述:撰寫(xiě)軟件需求規(guī)格說(shuō)明書(shū)(Software Requirement Specification SRS) 在標(biāo)準(zhǔn)模板基礎(chǔ)上剪裁w需求驗(yàn)證(復(fù)審) 組成復(fù)審小組:用戶方+外來(lái)專家7實(shí)例(教材購(gòu)銷(xiāo)系統(tǒng))學(xué)生學(xué)生張秘書(shū)王會(huì)計(jì)李出納趙保管購(gòu)書(shū)購(gòu)書(shū)購(gòu)書(shū)申請(qǐng)證明發(fā)票領(lǐng)書(shū)單書(shū)學(xué)生學(xué)生審查有效性開(kāi)發(fā)票開(kāi)領(lǐng)書(shū)單發(fā)書(shū)購(gòu)書(shū)購(gòu)書(shū)購(gòu)書(shū)申請(qǐng)證明發(fā)票領(lǐng)書(shū)單書(shū)學(xué)生學(xué)生審查并開(kāi)發(fā)票開(kāi)領(lǐng)書(shū)單發(fā)書(shū)購(gòu)書(shū)購(gòu)書(shū)申請(qǐng)發(fā)票領(lǐng)書(shū)單書(shū)學(xué)生學(xué)生審查并開(kāi)發(fā)票開(kāi)領(lǐng)書(shū)單購(gòu)書(shū)申請(qǐng)發(fā)票領(lǐng)書(shū)單無(wú)效書(shū)單當(dāng)前系統(tǒng)當(dāng)前系統(tǒng)目目標(biāo)標(biāo)系系統(tǒng)統(tǒng)缺書(shū)

3、單8需求獲取的常用方法w常規(guī)需求獲取方法 聯(lián)合分析小組、客戶訪談、問(wèn)題分析與確認(rèn)w快速原型法在需求分析中的應(yīng)用 兩個(gè)層次:聯(lián)機(jī)屏幕、外部特征 過(guò)程:規(guī)格說(shuō)明檢查生成/修改原型用戶評(píng)估 基礎(chǔ):快速開(kāi)發(fā)技術(shù)和工具(4GT)9分析建模w軟件分析模型:信息(數(shù)據(jù))模型、功能模型、行為模型w分類(lèi):結(jié)構(gòu)化分析(SA)、面向?qū)ο蠓治?OOA)w方式:圖形+自然語(yǔ)言103.2結(jié)構(gòu)化系統(tǒng)分析DDE-RDFDCFD STD控制說(shuō)明數(shù)據(jù)對(duì)象說(shuō)明加工說(shuō)明113.2.1結(jié)構(gòu)化分析模型的組成w數(shù)據(jù)流圖(DFD)w數(shù)據(jù)字典(DD)w加工說(shuō)明(PSPEC)w實(shí)體關(guān)系圖(E-R)12(1)數(shù)據(jù)流圖(DFD)加工或變換輸入輸出:

4、加工:數(shù)據(jù)的源點(diǎn)或終點(diǎn):數(shù)據(jù)的流向:數(shù)據(jù)文件或數(shù)據(jù)庫(kù)13數(shù)據(jù)流圖(DFD)wDFD不同于程序流程圖。wDFD可以表現(xiàn)大到整個(gè)系統(tǒng),小到一個(gè)模塊w分層數(shù)據(jù)流圖學(xué)生學(xué)生審查并開(kāi)發(fā)票開(kāi)領(lǐng)書(shū)單購(gòu)書(shū)申請(qǐng)發(fā)票領(lǐng)書(shū)單無(wú)效書(shū)單各班學(xué)生用書(shū)表教材存量表14(2)數(shù)據(jù)字典(DD)w對(duì)軟件中的每個(gè)數(shù)據(jù)規(guī)定一個(gè)定義條目,以保持?jǐn)?shù)據(jù)在系統(tǒng)中的一致性數(shù)據(jù)項(xiàng):只含一個(gè)數(shù)據(jù),又稱為數(shù)據(jù)元素?cái)?shù)據(jù)流:由多個(gè)相關(guān)數(shù)據(jù)項(xiàng)組成數(shù)據(jù)文件(數(shù)據(jù)庫(kù)):符號(hào):=、+、 、 、( )、* *15數(shù)據(jù)流發(fā)票=(學(xué)號(hào))+姓名+書(shū)號(hào)+單價(jià)+數(shù)量+總價(jià)+書(shū)費(fèi)合計(jì)16數(shù)據(jù)文件學(xué)生用書(shū)表= 系編號(hào)+專業(yè)和班編號(hào)+年級(jí)+書(shū)號(hào)系編號(hào)=2數(shù)字217數(shù)據(jù)項(xiàng)年級(jí)=

5、F/M/J/S18數(shù)據(jù)字典例題w請(qǐng)給出安徽汽車(chē)的車(chē)牌號(hào)碼的數(shù)據(jù)字典定義,如合肥的車(chē)牌是“皖A(yù)-23002”,蕪湖的車(chē)牌是“皖B-00235”等,只考慮后面五位是數(shù)字的情況w某個(gè)航空售票系統(tǒng)需要保存所有的航班信息,每個(gè)航班的屬性包括航班號(hào)、出發(fā)地、目的地、若干個(gè)中途停靠站、頭等艙座位數(shù)量及價(jià)格(固定)、公務(wù)艙座位數(shù)量及價(jià)格、普通艙座位數(shù)量及價(jià)格。有些航班沒(méi)有頭等艙。采用數(shù)據(jù)字典描述航班信息 車(chē)牌號(hào)碼車(chē)牌號(hào)碼=皖皖A(yù)-Z-5數(shù)字?jǐn)?shù)字5航班航班=航班號(hào)航班號(hào)+出發(fā)地出發(fā)地+目的地目的地+??空就?空?(頭等艙數(shù)頭等艙數(shù)量量)+(頭等艙價(jià)格頭等艙價(jià)格)+公務(wù)艙數(shù)量公務(wù)艙數(shù)量+公務(wù)艙價(jià)格公務(wù)艙價(jià)格+普通

6、普通19例題w請(qǐng)給出購(gòu)書(shū)申請(qǐng)的數(shù)據(jù)字典定義:一份申請(qǐng)對(duì)應(yīng)一個(gè)學(xué)生,內(nèi)容包括學(xué)生的學(xué)號(hào)、姓名、班級(jí)和他(她)所領(lǐng)全部教材的書(shū)號(hào)、書(shū)名和數(shù)量。其中學(xué)號(hào)由阿拉伯?dāng)?shù)字組成,姓名可選。購(gòu)書(shū)申請(qǐng)購(gòu)書(shū)申請(qǐng)=學(xué)號(hào)學(xué)號(hào)+(姓名)(姓名)+書(shū)號(hào)書(shū)號(hào)+書(shū)名書(shū)名+數(shù)量數(shù)量學(xué)號(hào)學(xué)號(hào)=數(shù)字?jǐn)?shù)字20(3)加工說(shuō)明(PSPEC)w三部分:輸入數(shù)據(jù)、加工邏輯、輸出數(shù)據(jù)w描述不宜過(guò)細(xì),過(guò)細(xì)就變成了設(shè)計(jì)描述工具結(jié)構(gòu)化語(yǔ)言判定表判定樹(shù)21結(jié)構(gòu)化語(yǔ)言描述加工說(shuō)明把學(xué)生學(xué)號(hào)和姓名寫(xiě)到發(fā)票上檢索“學(xué)生用書(shū)表”,獲得該生當(dāng)年書(shū)單對(duì)購(gòu)書(shū)單上每一個(gè)書(shū)號(hào)如果 書(shū)單上無(wú)此書(shū)號(hào) 則把書(shū)號(hào)寫(xiě)到無(wú)效書(shū)單上否則檢索“教材存量表”,獲得該書(shū)的單價(jià)和庫(kù)存如果

7、庫(kù)存10008%工資工資 獎(jiǎng)金獎(jiǎng)金10005%+30010005%10006%+30010006%10004%+20010004%50%50%50%50%1000010000預(yù)收貨款預(yù)收貨款推銷(xiāo)金額推銷(xiāo)金額24例題w一個(gè)加工用來(lái)完成商店促銷(xiāo)活動(dòng)中的金額計(jì)算,規(guī)定:消費(fèi)不超過(guò)100元,享受8折;消費(fèi)100-500,享受7折;消費(fèi)超過(guò)500享受6折。且如果是會(huì)員則再減20。 用判定樹(shù)描述該加工說(shuō)明消費(fèi)額消費(fèi)額會(huì)員會(huì)員優(yōu)惠優(yōu)惠優(yōu)惠策略優(yōu)惠策略500是是否否是是否否是是否否8折折-208折折7折折-207折折6折折-206折折25(4)E-R圖備注:若關(guān)系沒(méi)有屬性,則可以省略26E-R圖向數(shù)據(jù)表的轉(zhuǎn)換

8、w一對(duì)一:兩個(gè)實(shí)體可合并成一個(gè)表學(xué)生床鋪1:10:1學(xué)生學(xué)號(hào),姓名,床鋪號(hào),上下,27E-R圖向數(shù)據(jù)表的轉(zhuǎn)換w一對(duì)多:兩個(gè)實(shí)體分別轉(zhuǎn)換成兩個(gè)表,在“多”的標(biāo)中建立指向“1”的表中的外關(guān)鍵字部門(mén)員工1:n1:1部門(mén)編號(hào),名稱,職責(zé),員工工號(hào),姓名,性別,所在部門(mén)編號(hào)28E-R圖向數(shù)據(jù)表的轉(zhuǎn)換w多對(duì)多:兩個(gè)實(shí)體分別轉(zhuǎn)換成兩個(gè)表,另建立一個(gè)新表保存它們之間的關(guān)系,新表中應(yīng)包括這兩個(gè)表的關(guān)鍵字及關(guān)系的屬性產(chǎn)品原材料1:n1:n產(chǎn)品產(chǎn)品編號(hào),名稱,價(jià)格,原材料原料編號(hào),名稱,價(jià)格,單耗產(chǎn)品編號(hào),原料編號(hào),單耗量,29例題w以我校為例,畫(huà)出學(xué)生、班級(jí)、課程、教師的E-R圖303.2.2結(jié)構(gòu)化分析方法w結(jié)構(gòu)

9、化分析(SA):一種面向數(shù)據(jù)流的分析方法w基本步驟:由頂向下對(duì)系統(tǒng)進(jìn)行功能分解,畫(huà)出分層數(shù)據(jù)流圖分層數(shù)據(jù)流圖;由后向前定義系統(tǒng)的數(shù)據(jù)和加工,編制DD和和PSPEC;最終寫(xiě)出SRS。31(1)畫(huà)分層數(shù)據(jù)流圖w從基本模型開(kāi)始(整個(gè)系統(tǒng)是一個(gè)加工)w逐層分解w重復(fù)這種分解,直到加工足夠簡(jiǎn)單(基本加工)由頂向下、逐步細(xì)化由頂向下、逐步細(xì)化(求精求精)32頂層數(shù)據(jù)流圖學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)書(shū)庫(kù)保管員購(gòu)書(shū)單領(lǐng)書(shū)單缺書(shū)單進(jìn)書(shū)通知外部項(xiàng)目標(biāo)系統(tǒng)發(fā)票33二層數(shù)據(jù)流圖學(xué)生書(shū)庫(kù)保管員購(gòu)書(shū)單領(lǐng)書(shū)單缺書(shū)單進(jìn)書(shū)通知1銷(xiāo)售2采購(gòu)進(jìn)書(shū)通知F1教材存量表F2缺書(shū)登記表發(fā)票34三層數(shù)據(jù)流圖銷(xiāo)售子系統(tǒng)學(xué)生學(xué)生1.1審查有效性1.2開(kāi)發(fā)票

10、1.3打印發(fā)票1.4登記售書(shū)打印領(lǐng)書(shū)單1.5登記缺書(shū)1.6產(chǎn)生補(bǔ)售書(shū)單采購(gòu)F2缺書(shū)登記表F1教材存量表F4售書(shū)登記表F3學(xué)生用書(shū)表購(gòu)書(shū)單無(wú)效書(shū)單有效書(shū)單發(fā)票發(fā)票領(lǐng)書(shū)單進(jìn)書(shū)通知補(bǔ)售書(shū)單暫缺書(shū)單35三層數(shù)據(jù)流圖采購(gòu)子系統(tǒng)2.1按書(shū)號(hào)匯總2.2按出版社匯總2.3進(jìn)書(shū)處理書(shū)庫(kù)保管員銷(xiāo)售F2缺書(shū)登記表F1教材存量表F5代購(gòu)教材表F6教材一覽表缺書(shū)單進(jìn)書(shū)通知進(jìn)書(shū)通知36分層DFD的優(yōu)點(diǎn)w便于實(shí)現(xiàn) 逐步細(xì)化,避免一次引入過(guò)多細(xì)節(jié),有利于控制問(wèn)題的復(fù)雜度w便于使用 便于閱讀,有針對(duì)性37(2)確定數(shù)據(jù)定義與加工策略w從數(shù)據(jù)的終點(diǎn)開(kāi)始,由后向前領(lǐng)書(shū)單=學(xué)號(hào)+姓名+書(shū)號(hào)+數(shù)量發(fā)票=學(xué)號(hào)+姓名+書(shū)號(hào)+單價(jià)+數(shù)量+總

11、價(jià)+書(shū)費(fèi)合計(jì)1.4的PSPEC:從發(fā)票中提取數(shù)據(jù)生成領(lǐng)書(shū)單;登記售書(shū)售書(shū)登記表=領(lǐng)書(shū)單=學(xué)號(hào)+姓名+書(shū)號(hào)+數(shù)量38確定數(shù)據(jù)定義和加工策略有效購(gòu)書(shū)單=學(xué)號(hào)+姓名+書(shū)號(hào)+數(shù)量教材存量表=書(shū)號(hào)+單價(jià)+數(shù)量1.2的PSPEC:核對(duì)存量;如果夠則計(jì)算書(shū)費(fèi),并更新存量;如果不夠則產(chǎn)生暫缺書(shū)單暫缺書(shū)單=學(xué)號(hào)+姓名+書(shū)號(hào)+數(shù)量補(bǔ)售書(shū)單=學(xué)號(hào)+姓名+書(shū)號(hào)+數(shù)量缺書(shū)登記表=學(xué)號(hào)+姓名+書(shū)號(hào)+數(shù)量39(3)需求分析的復(fù)審w父圖和子圖的不平衡 父圖和子圖的輸入數(shù)據(jù)和輸出數(shù)據(jù)應(yīng)分別保持一致,稱為父子平衡。 可以有可以有“例外例外”w未區(qū)分局部文件和局部外部項(xiàng) 各層負(fù)責(zé)各層,保持圖面簡(jiǎn)潔w分解速度太快 每次分解24個(gè),一

12、般不超過(guò)7個(gè)w不遵守加工編號(hào)規(guī)則40思考題 分析一個(gè)網(wǎng)上購(gòu)物系統(tǒng),其過(guò)程是:用戶首先輸入待購(gòu)買(mǎi)分析一個(gè)網(wǎng)上購(gòu)物系統(tǒng),其過(guò)程是:用戶首先輸入待購(gòu)買(mǎi)商品名稱商品名稱(如如:手機(jī)手機(jī)),然后在所有商品中選擇自己中意的品,然后在所有商品中選擇自己中意的品牌牌(如如:諾基亞諾基亞8210)和欲購(gòu)買(mǎi)的數(shù)量,系統(tǒng)檢查庫(kù)存,如果和欲購(gòu)買(mǎi)的數(shù)量,系統(tǒng)檢查庫(kù)存,如果庫(kù)存不夠則提示用戶交易失敗,如果夠就接受交易,并將庫(kù)存不夠則提示用戶交易失敗,如果夠就接受交易,并將訂單顯示給用戶。訂單顯示給用戶。 其中:其中: 訂單訂單=商品名稱商品名稱+品牌品牌+單價(jià)單價(jià)+數(shù)量數(shù)量+總價(jià)總價(jià)+交易時(shí)間交易時(shí)間 要求:要求: 1、

13、畫(huà)出分層數(shù)據(jù)流圖、畫(huà)出分層數(shù)據(jù)流圖 2、描述、描述“接受交易接受交易”的加工說(shuō)明的加工說(shuō)明 3、給出、給出DFD中所有數(shù)據(jù)文件的數(shù)據(jù)定義中所有數(shù)據(jù)文件的數(shù)據(jù)定義41用用戶戶用用戶戶查詢請(qǐng)求查詢請(qǐng)求訂單訂單網(wǎng)上購(gòu)網(wǎng)上購(gòu)物系統(tǒng)物系統(tǒng)購(gòu)買(mǎi)請(qǐng)求購(gòu)買(mǎi)請(qǐng)求1查詢查詢商品商品2接受接受訂購(gòu)訂購(gòu)3檢查檢查庫(kù)存庫(kù)存4接受接受交易交易用用戶戶查詢請(qǐng)求查詢請(qǐng)求商品庫(kù)存表商品庫(kù)存表商品列表商品列表購(gòu)買(mǎi)請(qǐng)求購(gòu)買(mǎi)請(qǐng)求購(gòu)買(mǎi)請(qǐng)求購(gòu)買(mǎi)請(qǐng)求有效購(gòu)買(mǎi)有效購(gòu)買(mǎi)請(qǐng)求請(qǐng)求用用戶戶訂單訂單用用戶戶無(wú)效無(wú)效請(qǐng)求請(qǐng)求商品庫(kù)存表商品庫(kù)存表=商品名稱商品名稱+品牌型號(hào)品牌型號(hào)+單價(jià)單價(jià)+庫(kù)存數(shù)量庫(kù)存數(shù)量接受交易加工說(shuō)明接受交易加工說(shuō)明接受購(gòu)買(mǎi)請(qǐng)求

14、接受購(gòu)買(mǎi)請(qǐng)求查詢商品庫(kù)存表中對(duì)應(yīng)請(qǐng)求中的商品的單價(jià)查詢商品庫(kù)存表中對(duì)應(yīng)請(qǐng)求中的商品的單價(jià)計(jì)算本次購(gòu)買(mǎi)金額,查詢系統(tǒng)時(shí)間,生成訂單計(jì)算本次購(gòu)買(mǎi)金額,查詢系統(tǒng)時(shí)間,生成訂單更新庫(kù)存表中的商品數(shù)量更新庫(kù)存表中的商品數(shù)量423.3模塊化設(shè)計(jì)思想w把大型軟件按照規(guī)定的原則劃分成一個(gè)個(gè)較小的、相對(duì)獨(dú)立但又相互關(guān)聯(lián)的模塊,叫做模塊化設(shè)計(jì)w分解w模塊獨(dú)立性w自頂向下與由底向上設(shè)計(jì)433.3.1模塊獨(dú)立性w模塊獨(dú)立性由內(nèi)聚和耦合來(lái)度量w模塊獨(dú)立性越高,塊內(nèi)聯(lián)系越強(qiáng),塊間聯(lián)系越弱w高內(nèi)聚、低耦合443.3.1模塊獨(dú)立性C(P1 + P2) C(P1) + C(P2)E(P1 + P2) E(P1) + E(P2)

15、分解的模塊數(shù)量不能過(guò)大、也不能過(guò)小453.3.2內(nèi)聚偶然性內(nèi)聚功能性內(nèi)聚時(shí)間性內(nèi)聚邏輯性內(nèi)聚過(guò)程性內(nèi)聚順序性內(nèi)聚通信性內(nèi)聚弱強(qiáng)46(1)偶然性內(nèi)聚模塊內(nèi)各組成成分在功能上互不相關(guān),組合純屬偶然void m1() int i, j, k;i = 2;j = m3() +2;47(2)邏輯性內(nèi)聚由若干個(gè)邏輯功能相似的成分組成int calPoint(int flag) int ave, max, total, num; total = num = 0; FileReader fr = new FileReader(“c:/gradePoint.txt”); BufferedReader br =

16、new BufferedReader(fr); String s = br.readLine(); while (br.ready() if (flag = 1) total += Integer.parseInt(s); num+; else max = max Integer.parseInt(s) ? max : Integer.parseInt(s); s = br.readLine(); return flag = 1 ? total/num : max48(3)時(shí)間性內(nèi)聚模塊內(nèi)成分有相同的執(zhí)行時(shí)間聯(lián)結(jié)到一起int calPoint(int flag) int ave, max, t

17、otal, num; total = num = 0; FileReader fr = new FileReader(“c:/gradePoint.txt”); BufferedReader br = new BufferedReader(fr); String s = br.readLine(); while (br.ready() if (flag = 1) total += Integer.parseInt(s); num+; else max = max Integer.parseInt(s) ? max : Integer.parseInt(s); s = br.readLine()

18、; return flag = 1 ? total/num : maxBufferedReader initFile() FileReader fr = new FileReader(“c:/gradePoint.txt”); BufferedReader br = new BufferedReader(fr); return br;int calPoint(int flag) int ave, max, total, num; total = num = 0; BufferedReader br = initFile(); 49(4)過(guò)程性內(nèi)聚模塊中包含一組任務(wù)必須按照某一特定的次序執(zhí)行in

19、t calPoint(int flag) int ave, max, total, num; total = num = 0; FileReader fr = new FileReader(“c:/gradePoint.txt”); BufferedReader br = new BufferedReader(fr); String s = br.readLine(); while (br.ready() if (flag = 1) total += Integer.parseInt(s); num+; else max = max Integer.parseInt(s) ? max : In

20、teger.parseInt(s); s = br.readLine(); return flag = 1 ? total/num : maxint calAvePoint() int ave, total, num; total = num = 0; BufferedReader br = initFile(); String s = br.readLine(); while (br.ready() total += Integer.parseInt(s); num+; s = br.readLine(); return total/num;int calMaxPoint() 50(5)通信

21、性內(nèi)聚模塊內(nèi)部各個(gè)成分都使用同一種輸入數(shù)據(jù),或者產(chǎn)生同一個(gè)輸出數(shù)據(jù)。例如:Java里面的“類(lèi)”51(6)順序性內(nèi)聚各組成部分順序執(zhí)行void copyGradeFile() FileReader fr = new FileReader(“c:/in.txt”); BufferedReader br = new BufferedReader(fr); FileWriter fw = new FileWriter(“c:/out.txt”); BufferedWriter bw = new BufferedWriter(fw); while (br.ready() String s = br.re

22、adLine(); bw.write(s); bw.newLine(); System.out.println(s); void copyLine(BufferedReader br, BufferedWriter bw) String s = br.readLine(); bw.write(s); bw.newLine(); System.out.println(s);void copyGradeFile() while (br.ready() copyLine(br, bw); 52(7)功能性內(nèi)聚完成一個(gè)單一的功能功能性內(nèi)聚模塊可以很好地進(jìn)行軟件復(fù)用例如:JDK中的各個(gè)類(lèi)String I

23、nteger533.3.3耦合非直接耦合內(nèi)容耦合特征耦合數(shù)據(jù)耦合控制耦合公共耦合外部耦合弱強(qiáng)543.3.3耦合w非直接耦合:模塊間沒(méi)有信息傳遞w數(shù)據(jù)耦合:模塊間交換的都是簡(jiǎn)單變量w特征耦合:模塊間交換的是數(shù)據(jù)結(jié)構(gòu)w控制耦合:模塊間傳遞的是控制信號(hào)w外部耦合:模塊間共享同一個(gè)全局變量w公共耦合:模塊間共享同一個(gè)全局?jǐn)?shù)據(jù)結(jié)構(gòu)w內(nèi)容耦合:一個(gè)模塊可以直接調(diào)用另一個(gè)模塊的數(shù)據(jù),或者允許直接轉(zhuǎn)移到另一個(gè)模塊553.4結(jié)構(gòu)化設(shè)計(jì)w結(jié)構(gòu)化設(shè)計(jì)(SD):面向數(shù)據(jù)流。注意力集中在模塊的合理劃分,得出體系結(jié)構(gòu)圖。適用于概要設(shè)計(jì)56從分析模型導(dǎo)出設(shè)計(jì)模型DDE-RDFDSTD控制說(shuō)明數(shù)據(jù)對(duì)象說(shuō)明加工說(shuō)明過(guò)程設(shè)計(jì)接口

24、設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)57中心任務(wù):DFD SC涵蓋體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)方法583.4.1 SC圖組成w組成符號(hào):模塊、調(diào)用關(guān)系、數(shù)據(jù)流w6種模塊:XY傳入XY傳出變換XYx源X漏Yx控制59SC圖中的模塊調(diào)用ABCXYZABCXYZABCXYZ60模塊調(diào)用實(shí)例1.2開(kāi)發(fā)票1.3打印發(fā)票1.4登記售書(shū)打印領(lǐng)書(shū)單發(fā)票發(fā)票領(lǐng)書(shū)單1.1審查有效性購(gòu)書(shū)單無(wú)效書(shū)單有效書(shū)單開(kāi)發(fā)票打印發(fā)票打印領(lǐng)書(shū)單發(fā)票發(fā)票發(fā)票領(lǐng)書(shū)單A有效書(shū)單無(wú)效書(shū)單購(gòu)書(shū)單613.4.2 數(shù)據(jù)流圖的類(lèi)型與SD的步驟w變換型結(jié)構(gòu)w事務(wù)型結(jié)構(gòu)62(1)變換型結(jié)構(gòu)w由傳入路徑、變換中心、傳出路徑組成變換中心傳入路徑傳出路徑63變換型

25、實(shí)例2.1按書(shū)號(hào)匯總2.2按出版社匯總書(shū)庫(kù)保管員F5代購(gòu)教材表F6教材一覽表缺書(shū)單F2缺書(shū)登記表F1教材存量表64(2)事務(wù)型結(jié)構(gòu)w由接受路徑、事務(wù)中心、動(dòng)作路徑組成事務(wù)中心接受路徑動(dòng)作路徑65事務(wù)型實(shí)例2接受接受訂購(gòu)訂購(gòu)3檢查檢查庫(kù)存庫(kù)存4接受接受交易交易商品庫(kù)存表商品庫(kù)存表購(gòu)買(mǎi)請(qǐng)求購(gòu)買(mǎi)請(qǐng)求有效購(gòu)買(mǎi)有效購(gòu)買(mǎi)請(qǐng)求請(qǐng)求用用戶戶無(wú)效無(wú)效請(qǐng)求請(qǐng)求66同時(shí)存在兩種結(jié)構(gòu)傳入事務(wù)傳入變換傳出接受傳出傳出67分支的分辨方法w同時(shí)執(zhí)行:變換w只執(zhí)行一條:事務(wù)學(xué)生1.1審查有效性購(gòu)書(shū)單無(wú)效書(shū)單1.2檢查存量有效書(shū)單1.5登記缺書(shū)暫缺書(shū)單1.3開(kāi)發(fā)票有效書(shū)單1.6打印發(fā)票1.7登記售書(shū)打印領(lǐng)書(shū)單發(fā)票發(fā)票68SD方

26、法的步驟w復(fù)審DFDw鑒別軟件結(jié)構(gòu)類(lèi)型w把DFD轉(zhuǎn)換成SC 變換型DFD:變換映射 事務(wù)型DFD:事務(wù)映射w優(yōu)化SC初始SC693.4.3變換映射w劃分DFD圖的邊界w建立初始SC圖的框架w分解SC圖的分支70劃分DFD圖ABCDEPRQWUVabcdeqrwuv傳入部分變換中心傳出部分71建立SC圖框架MCMAMTMEc,ec,eu,wu,w第一級(jí)分解頂層第一層72分解傳入分支MACEBDAc,ecebadMAGet CGet EGet BRead Ac,ecebaB To CA To BabbcRead DdD To Ede優(yōu)化優(yōu)化73分解傳出分支MEWUVu,wwuvMEWrite WP

27、ut UwuU To VvWrite Vv優(yōu)化優(yōu)化u,wu74分解中心加工分支MTQPRec,pru,wpr75合成初始SC圖MCMAGet CGet EGet BRead AB To CA To BRead D D To EMTQPRMEWrite WPut UU To V Write V763.4.4事務(wù)映射w確定事務(wù)中心、接受部分和發(fā)送部分w建立初始SC圖的框架w分解SC圖的分支77識(shí)別各部分事務(wù)傳入變換傳出接受接受部分事務(wù)中心發(fā)送部分abcdef78畫(huà)出SC圖框架事務(wù)控制接受發(fā)送79分解w根據(jù)各分支的特性進(jìn)行變換映射或事務(wù)映射w動(dòng)作分支可劃分為處理層、事務(wù)層、操作層、細(xì)節(jié)層w大型系統(tǒng)往往變換型和事務(wù)型交織在一起的混合結(jié)構(gòu)80分解事務(wù)控制接受發(fā)送aa事務(wù)1變換變換傳出beeffb813.4.5結(jié)構(gòu)化設(shè)計(jì)的優(yōu)化原則w模塊分割、合并和變動(dòng)調(diào)用關(guān)系的原則 高內(nèi)聚 低耦合 控制模塊大小 10100行 不必拘泥于和DFD圖的對(duì)應(yīng)82結(jié)構(gòu)化設(shè)計(jì)的優(yōu)化原則w保持高扇入/低扇出的原則 扇入:被其他模塊調(diào)用數(shù) 扇出:調(diào)用其他模塊數(shù) 高扇入:模塊利用率高 低扇出:模塊調(diào)用和控制的復(fù)雜度低 通過(guò)增加中間層降低扇出 甕型結(jié)構(gòu)833.4.6教材購(gòu)銷(xiāo)系統(tǒng)實(shí)例學(xué)生學(xué)生1.1審查有效性1.2開(kāi)發(fā)票1.3打印

溫馨提示

  • 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)論