版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、結(jié)構(gòu)化分析與設(shè)計(jì)軟件工程1第1頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.1 概述3.1.1 結(jié)構(gòu)化分析與設(shè)計(jì)的由來(lái) 1. 瀑布模型的首次實(shí)踐 結(jié)構(gòu)化分析 (SA, Structured Analysis) 與結(jié)構(gòu)化設(shè)計(jì) (SD, Structured Design) 是瀑布模型的首次實(shí)踐。第2頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 2. SA 與 SD 的流程結(jié)構(gòu)化分析( 工具: DFD、PSPEC )分析模型( 分層DFD圖 ) + SRS結(jié)構(gòu)化設(shè)計(jì)(工具:SC圖) 初始設(shè)計(jì)模型(初始SC圖) 最終設(shè)計(jì)模型(最終SC圖)注: DFD:數(shù)據(jù)流圖(Data
2、 Flow Diagram) PSPEC:加工說(shuō)明(Process SPECification) SRS:軟件需求規(guī)格說(shuō)明書(shū)( Software Requirement Specification) SC:結(jié)構(gòu)圖( Structure Chart )第3頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3. 基本任務(wù)與指導(dǎo)思想 (1)結(jié)構(gòu)化分析SA有兩個(gè)主要任務(wù):建立分析模型 通過(guò)對(duì)問(wèn)題及其環(huán)境的理解、分析和綜合,建立分析模型。該模型包括問(wèn)題所涉及的信息流、功能、性能、用戶界面及設(shè)計(jì)約束等,它是形成需求說(shuō)明書(shū)、進(jìn)行軟件設(shè)計(jì)的基礎(chǔ)。第4頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,
3、星期二 編寫(xiě)需求規(guī)格說(shuō)明書(shū)(SRS) 在完全弄清用戶對(duì)軟件系統(tǒng)的確切要求的基礎(chǔ)上,用“需求規(guī)格說(shuō)明書(shū)”( SRS)把用戶的需求表達(dá)出來(lái)。 需求規(guī)格說(shuō)明書(shū)為開(kāi)發(fā)人員和用戶提供軟件開(kāi)發(fā)完成時(shí)質(zhì)量評(píng)價(jià)的依據(jù)。 SRS應(yīng)該具有準(zhǔn)確性; SRS應(yīng)該防止二義性; SRS應(yīng)該直觀、易讀、易于修改。第5頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 SA的主要指導(dǎo)思想 抽象與分解 ( Abstraction and decomposition ) 抽象(Abstraction)是控制復(fù)雜性的基本策略之一。在軟件工程中,從系統(tǒng)定義到實(shí)現(xiàn),每進(jìn)展一步都可以看做是對(duì)軟件解決方法的抽象化過(guò)程的一次細(xì)化。在
4、軟件需求分析階段,在最高抽象級(jí)別上,用“做什么”來(lái)描述問(wèn)題。然后不斷具體化(分解)。抽象的層次愈低,呈現(xiàn)的細(xì)節(jié)愈多。第6頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2)結(jié)構(gòu)化設(shè)計(jì)軟件設(shè)計(jì)分兩個(gè)階段完成:軟件設(shè)計(jì) = 總體設(shè)計(jì) + 詳細(xì)設(shè)計(jì) 總體設(shè)計(jì)又稱概要設(shè)計(jì),進(jìn)行總體結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)接口設(shè)計(jì),把用數(shù)據(jù)流圖(DFD)表示的系統(tǒng)分析模型轉(zhuǎn)換為用結(jié)構(gòu)圖(SC )表示的系統(tǒng)結(jié)構(gòu)模型。 詳細(xì)設(shè)計(jì)用以確定各個(gè)軟件組件(模塊)的操作(算法)和數(shù)據(jù)結(jié)構(gòu)。第7頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 SC 圖分兩步完成:初始設(shè)計(jì)模型(初始SC圖) 最終設(shè)計(jì)模型(最終SC圖) 初
5、始SC圖 總體設(shè)計(jì) 最終SC圖 軟件設(shè)計(jì) 詳細(xì)設(shè)計(jì) : 完成模塊說(shuō)明軟件設(shè)計(jì)的指導(dǎo)思想分解與細(xì)化 采用“自頂向下、逐步細(xì)化(Top-Down Stepwise Refinement )”的開(kāi)發(fā)方法。第8頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.1.2 SA模型的組成與描述例3.1 教材銷售系統(tǒng)第一步: 通過(guò)對(duì)現(xiàn)實(shí)環(huán)境的調(diào)查研究, 獲取當(dāng)前系統(tǒng)的具體模型(物理模型) 。學(xué)生圖3.1 學(xué)生購(gòu)買教材的當(dāng)前系統(tǒng)模型(物理模型)購(gòu)書(shū)申請(qǐng)張秘書(shū)購(gòu)書(shū)發(fā)票王會(huì)計(jì)購(gòu)書(shū)證明李出納領(lǐng)書(shū)單趙保管學(xué)生書(shū)第9頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二學(xué)生圖3.2 學(xué)生購(gòu)買教材的邏輯模型
6、(當(dāng)前系統(tǒng))購(gòu)書(shū)單審查有效性購(gòu)書(shū)發(fā)票開(kāi)發(fā)票有效購(gòu)書(shū)單開(kāi)領(lǐng)書(shū)單領(lǐng)書(shū)單發(fā)書(shū)學(xué)生書(shū)第二步:分析需求,建立系統(tǒng)分析模型(邏輯模型),包括當(dāng)前系統(tǒng)和目標(biāo)系統(tǒng)的邏輯模型。第10頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二學(xué)生圖3.3 目標(biāo)系統(tǒng)的邏輯模型購(gòu)書(shū)單審查并開(kāi)發(fā)票發(fā)票開(kāi)領(lǐng)書(shū)單領(lǐng)書(shū)單發(fā)書(shū)學(xué)生書(shū)第11頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第三步:編寫(xiě)需求規(guī)格說(shuō)明書(shū)。第四步:驗(yàn)證需求,完善和補(bǔ)充對(duì)目標(biāo)系統(tǒng)的描述。學(xué)生圖3.4 改進(jìn)了的目標(biāo)系統(tǒng)邏輯模型購(gòu)書(shū)單審查并開(kāi)發(fā)票發(fā)票開(kāi)領(lǐng)書(shū)單領(lǐng)書(shū)單學(xué)生無(wú)效書(shū)單第12頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二軟件開(kāi)發(fā)是要
7、實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型。需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問(wèn)題。目標(biāo)系統(tǒng)當(dāng)前系統(tǒng)物理模型邏輯模型模型化抽象化物理模型邏輯模型具體化實(shí)例化導(dǎo)出怎么做做什么第13頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二圖3.5 SA模型的組成實(shí)體聯(lián)系圖(E-R圖)狀態(tài)變換圖 (STD)數(shù)據(jù)流圖(DFD)數(shù)據(jù)對(duì)象說(shuō)明加工說(shuō)明數(shù)據(jù)字典 DD控制說(shuō)明1. SA模型的組成第14頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二早期的(傳統(tǒng)的)結(jié)構(gòu)化分析模型是面向數(shù)據(jù)流的,采用“自頂向下、逐層分解”的分析策略,以數(shù)據(jù)字典(DD, Data D
8、ictionary)、數(shù)據(jù)流圖(DFD,Data Flow Diagram)、和加工說(shuō)明(PSPEC, Process SPECification)為主要工具,建立系統(tǒng)的邏輯模型(功能建模)。第15頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二擴(kuò)充后的結(jié)構(gòu)化分析模型,將建模技術(shù)擴(kuò)展到數(shù)據(jù)建模和行為建模,以數(shù)據(jù)字典(DD, Data Dictionary)、實(shí)體-聯(lián)系圖( Entity - Relation Diagram, E-R圖)、狀態(tài)-遷移圖(State Transform Diagram , STD)等為工具,從不同視點(diǎn)建立系統(tǒng)的分析模型。本課程主要講述傳統(tǒng)的結(jié)構(gòu)化分析模型
9、第16頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二2. SA模型的描述工具傳統(tǒng)的結(jié)構(gòu)化分析采用3種描述工具: 數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD) 和 加工規(guī)格說(shuō)明(PSPEC)。第17頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(1) 數(shù)據(jù)流圖(DFD) 組成符號(hào)(數(shù)據(jù)流圖中的 4 種圖形元素)加工 (Prosess):對(duì)數(shù)據(jù)流進(jìn)行操作或變換。數(shù)據(jù)源點(diǎn)或終點(diǎn) (又稱外部實(shí)體:系統(tǒng)外的人員或組織)數(shù)據(jù)流(Data Flow):數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑。數(shù)據(jù)文件(Data File 或Data Store): 文件與加工之間的數(shù)據(jù)流可以不命名;從文件流出的數(shù)據(jù)流表示讀文
10、件或查詢文件; 流向文件的數(shù)據(jù)流表示寫(xiě)文件或修改文件。第18頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二審查并開(kāi)發(fā)票1開(kāi)領(lǐng)書(shū)單2學(xué)生學(xué)生教材存量表購(gòu)書(shū)單無(wú)效書(shū)單發(fā)票領(lǐng)書(shū)單各班學(xué)生用書(shū)表圖3.7 教材銷售系統(tǒng)的數(shù)據(jù)流圖第19頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 DFD的性質(zhì) DFD 不能表示控制結(jié)構(gòu),如選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)。 在需求分析中,常常用一組DFD圖由粗到細(xì)地表示不同級(jí)別上的功能模型,稱之為分層數(shù)據(jù)流圖。第20頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2)數(shù)據(jù)字典(DD)數(shù)據(jù)字典的作用: 對(duì)軟件系統(tǒng)中的每個(gè)數(shù)據(jù)規(guī)定一個(gè)定義條目,以保持?jǐn)?shù)
11、據(jù)在系統(tǒng)中的一致性。數(shù)據(jù)字典中主要包括以下三類條目:數(shù)據(jù)流、 數(shù)據(jù)文件 和 數(shù)據(jù)項(xiàng)。第21頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二數(shù)據(jù)字典定義式中的符號(hào) 符 號(hào) 含 義 舉 例 定義為 與 x = ab.|. 或 x = a | b . 或 m.n 重復(fù) x = a, x = 3a8(.) 可選 x = (a) . 連結(jié)符 x = 1 . 9* * 注釋 綜合的例: x = a | b + c + ( d )第22頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二數(shù)據(jù)流(條目):給出DFD中數(shù)據(jù)流的定義,列出數(shù)據(jù)流的各組成數(shù)據(jù)項(xiàng),通常寫(xiě)成公式的形狀。例3.3 發(fā)票學(xué)號(hào)
12、+ 姓名+書(shū)號(hào)+單價(jià)+數(shù)量+總價(jià)+ 書(shū)費(fèi)合計(jì) 對(duì)較長(zhǎng)和較復(fù)雜的數(shù)據(jù)流,可分層次描述,使條目更清楚。如上述數(shù)據(jù)流“發(fā)票”可表示為: 發(fā)票(學(xué)號(hào)) 姓名發(fā)票行書(shū)費(fèi)合計(jì)發(fā)票行書(shū)號(hào) + 單價(jià) + 數(shù)量 + 總價(jià)第23頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二數(shù)據(jù)文件(條目): 對(duì)數(shù)據(jù)文件的定義。 例3.4文件名:各班學(xué)生用書(shū)表組成:系編號(hào)專業(yè)和班編號(hào)年級(jí)+書(shū)號(hào) 也可寫(xiě)成公式的形狀,如:各班學(xué)生用書(shū)表=系編號(hào)專業(yè)和班編號(hào)年級(jí)+書(shū)號(hào)第24頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二數(shù)據(jù)項(xiàng) (條目): 包含在數(shù)據(jù)流或數(shù)據(jù)文件中的數(shù)據(jù)項(xiàng),一般都應(yīng)在字典中設(shè)置相應(yīng)的條目。 例如:
13、系編號(hào) = 2數(shù)字2 *二位數(shù)字,如01,12 * 年級(jí) = F / M / J / S * F:一年級(jí) ( Freshman ); M:二年級(jí) ( sophoMore ); J:三年級(jí)(Junior ); S:四年級(jí) ( Senior ) *第25頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(3)加工規(guī)格說(shuō)明: (Process SPECification, PSPEC) 對(duì)數(shù)據(jù)流圖的每一個(gè)基本加工,必須有一個(gè)加工說(shuō)明, 其主要內(nèi)容如下所示: (1)加工名; (2)加工編號(hào); (3)輸入數(shù)據(jù)流; (4)輸出數(shù)據(jù)流; (5)加工邏輯; (6)執(zhí)行頻率。其中最重要的是加工邏輯。第2
14、6頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二加工邏輯描述基本加工如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工策略,而不需描述實(shí)現(xiàn)加工的細(xì)節(jié)。加工邏輯通常采用結(jié)構(gòu)化語(yǔ)言(Structured Langauge)、 判定表(Decision Table)、 或 判定樹(shù)(Decision Tree)作為描述工具。第27頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二結(jié)構(gòu)化語(yǔ)言(Structured Language)是一種介于自然語(yǔ)言和形式化語(yǔ)言之間的語(yǔ)言。結(jié)構(gòu)化語(yǔ)言可使用順序、選擇、循環(huán)等控制結(jié)構(gòu),其中選擇和循環(huán)結(jié)構(gòu)可分為內(nèi)外二層,外層有嚴(yán)格的語(yǔ)法,內(nèi)層語(yǔ)法比較靈活,可以用自然
15、語(yǔ)言來(lái)表示。結(jié)構(gòu)化語(yǔ)言的三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)選擇結(jié)構(gòu): if_then_else 或 switch_do ;循環(huán)結(jié)構(gòu): while_do 或 for_do 或 do_while 。第28頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二例3.6 售書(shū)系統(tǒng)中“審查并開(kāi)發(fā)票”的加工邏輯對(duì)購(gòu)書(shū)單上的的每一個(gè)書(shū)號(hào)if ( 學(xué)生用書(shū)表中無(wú)此書(shū)號(hào)) then 把書(shū)號(hào)寫(xiě)到出錯(cuò)通知上else 按書(shū)號(hào)檢索“教材存量表”,獲得該書(shū)的單價(jià)和庫(kù)存量 if (庫(kù)存量1000010000100001000010000100001000010000預(yù)收貸款50%50%50%50%50%50%50%50%月薪1
16、0001000100010001000100010001000獎(jiǎng)金率8%8%5%5%6%6%4%4%鼓勵(lì)獎(jiǎng)500300300200第35頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二判定樹(shù)( Decision Tree)判定樹(shù)也是用來(lái)表達(dá)加工邏輯的一種工具。有時(shí)它比判定表更直觀。第36頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 推銷金額 預(yù)收貨款 推銷員工資 獎(jiǎng)金率 1000 8%+500 50% 1000 8% 10000 1000 5%+300 50% 1000 5%推銷獎(jiǎng)金策略 1000 6%+300 50% 1000 6% 10000 1000 4%+200
17、 50% 1000 4%圖3.10 判定樹(shù)的示例第37頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(思考題) 下面是貨運(yùn)收費(fèi)策略:計(jì)算鐵路運(yùn)費(fèi)時(shí),若收件地點(diǎn)在本省以內(nèi),快件每公斤1.5元,慢件每公斤1元。若收件地點(diǎn)在外省,快件每公斤2元,慢件每公斤1.5元。請(qǐng)分別用判定表和判定樹(shù)表示。第38頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(1) 判定表(貨運(yùn)收費(fèi)策略)決策規(guī)則號(hào)1234收件地點(diǎn)本省本省外省外省貨運(yùn)類型快件慢件快件慢件每公斤1.0 元每公斤1.5 元每公斤2.0 元第39頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2) 判定樹(shù)貨運(yùn)收費(fèi)策略本
18、省快件每公斤1.5元外省貨運(yùn)類型收件地點(diǎn)運(yùn)費(fèi)慢件每公斤1 元快件每公斤2 元慢件每公斤1.5元第40頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.1.3 SD模型的組成與描述 1. SD模型的組成過(guò)程設(shè)計(jì)接口設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)(SC圖)數(shù)據(jù)設(shè)計(jì)圖3.11 SD模型的組成第41頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二2. SD模型的描述工具體系結(jié)構(gòu)設(shè)計(jì)是用來(lái)確定軟件結(jié)構(gòu)的,其描述工具為結(jié)構(gòu)圖(Structure Chart),簡(jiǎn)稱SC圖。 (1) SC圖的組成符號(hào): SD方法約定: (1)用矩形框表示模塊; (2)用箭頭或直線表示模塊間的調(diào)用關(guān)系; (3)在調(diào)用線
19、的兩旁用短箭頭表示傳入和傳出模塊的數(shù)據(jù)流。ABCX,YZZ第42頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二傳入模塊XY傳出模塊YX變換模塊XY控制模塊XXYYSC圖中允許使用的6種模塊源模塊X漏模塊X(a)(b)(c)(d)(e)(f)第43頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(a) 傳入模塊 從下屬模塊取得數(shù)據(jù),經(jīng)過(guò)某些處理, 再將其傳送給上級(jí)模塊。它傳送的數(shù)據(jù)流叫做邏輯輸入流。(b) 傳出模塊 從上級(jí)模塊獲得數(shù)據(jù),進(jìn)行某些處理,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出流。(c) 變換模塊 它從上級(jí)模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其它形式,
20、再傳送回上級(jí)模塊。第44頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(d) 源模塊 處于傳入部分的始端,它不調(diào)用其它模塊。它傳送的數(shù)據(jù)流叫做物理輸入流。(e) 漏(終)模塊 處于傳出部分的末端,它不調(diào)用其它模塊。它傳送的數(shù)據(jù)流叫做物理輸出流。(f) 控制模塊 對(duì)所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。它只調(diào)用其它模塊,不受其它模塊調(diào)用。第45頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2)SC圖中的模塊調(diào)用 (a)簡(jiǎn)單調(diào)用 A B CX,YZZ第46頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(b)選擇調(diào)用:用菱型符號(hào)表示。 (c)循環(huán)調(diào)用:用疊加在調(diào)用線
21、始端的環(huán)形表示。A BCA BCD(a) 選擇調(diào)用示意圖(b)循環(huán)調(diào)用示意圖第47頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 畫(huà)SC圖的注意事項(xiàng) (1)同名的模塊在SC圖中僅出現(xiàn)一次; (2)模塊之間的調(diào)用關(guān)系只能從上而下,因而模塊間的調(diào)用關(guān)系可以用直線表示; (3)同一層模塊的調(diào)用次序,習(xí)慣上自左到右。第48頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.2 結(jié)構(gòu)化系統(tǒng)分析( SA, Structured Analysis)結(jié)構(gòu)化分析就是使用 DFD、DD、結(jié)構(gòu)化語(yǔ)言、判定表和判定樹(shù)等工具,來(lái)建立一種稱為結(jié)構(gòu)化說(shuō)明書(shū)(即需求規(guī)格說(shuō)明書(shū))的目標(biāo)文檔。結(jié)構(gòu)化分析的基
22、本步驟是: (1)自頂向下對(duì)系統(tǒng)進(jìn)行功能分解, 畫(huà)出分層的DFD圖; (2)編制 DD 和 PSPEC ; (3)寫(xiě)出SRS(需求規(guī)格說(shuō)明書(shū))。第49頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.2.1 畫(huà)分層數(shù)據(jù)流圖 大型復(fù)雜的軟件系統(tǒng),其DFD可能含有數(shù)百乃至數(shù)千個(gè)加工,不可能一次將它們畫(huà)完整。正確的做法是:從系統(tǒng)的基本模型(把整個(gè)系統(tǒng)看成一個(gè)加工)開(kāi)始,逐層地對(duì)系統(tǒng)進(jìn)行分解。每分解一次,系統(tǒng)的加工數(shù)量就增多一些,加工的功能也更具體一些。繼續(xù)重復(fù)這種分解,直到所有的加工都足夠簡(jiǎn)單為止。 不需再分解的加工稱為“基本加工”。 上述分解方法稱為“自頂向下、逐步細(xì)化”(Top-Do
23、wn Stepwise Refinement )。第50頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二分層的數(shù)據(jù)流圖第51頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二數(shù)據(jù)流圖繪制步驟(1)畫(huà)系統(tǒng)的頂層圖 : 頂層圖表示系統(tǒng)與外部實(shí)體之間的數(shù)據(jù)交換關(guān)系。 頂層圖只包含一個(gè)加工(加工名即為系統(tǒng)名); 頂層圖描述系統(tǒng)與外部實(shí)體之間的數(shù)據(jù)流; 頂層圖只有一張。第52頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2)畫(huà)系統(tǒng)的內(nèi)部: 第二層DFD圖(有些教科書(shū)上稱為層圖): 分解頂層圖為若干個(gè)加工,系統(tǒng)有幾個(gè)功能,就分解為幾個(gè)加工; 描述加工與外部實(shí)體之間、加工與數(shù)
24、據(jù)文件之間、加工與加工之間的數(shù)據(jù)流。 第二層圖只有一張, 圖中的加工號(hào)為“,,n ”。第53頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 畫(huà)更下層數(shù)據(jù)流圖(第3層圖、第4層圖、.)時(shí),則分解上層圖中的加工,直到圖中尚未分解的加工都足夠簡(jiǎn)單為止。子圖號(hào)就是父圖中被分解的加工號(hào);子圖中加工號(hào)由圖號(hào)、小數(shù)點(diǎn)和序號(hào)組成。第54頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二例3.8 教材購(gòu)銷系統(tǒng),功能如下:(1) 根據(jù)教學(xué)計(jì)劃,向?qū)W生供應(yīng)所需的教材。 系統(tǒng)接受學(xué)生的購(gòu)書(shū)單,檢驗(yàn)購(gòu)書(shū)單。若教材庫(kù)存量充足,進(jìn)行售書(shū)處理,即修改教材存量表,給學(xué)生開(kāi)發(fā)票和領(lǐng)書(shū)單,學(xué)生憑單到書(shū)庫(kù)領(lǐng)書(shū);
25、若教材庫(kù)存量不足,對(duì)脫銷的教材進(jìn)行缺書(shū)登記。(2) 根據(jù)缺書(shū)登記表采購(gòu)所缺的教材,通知學(xué)生補(bǔ)購(gòu)。 按缺書(shū)登記表進(jìn)行匯總,并按出版社統(tǒng)計(jì)缺書(shū),將缺書(shū)單發(fā)給書(shū)庫(kù)保管員,以便采購(gòu)。 待購(gòu)教材到貨后,根據(jù)書(shū)庫(kù)保管員發(fā)來(lái)的進(jìn)書(shū)通知單進(jìn)行缺書(shū)銷售,即修改教材存量表,并從缺書(shū)登記表中取出缺書(shū)單進(jìn)行售書(shū)處理。第55頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二例3.8 教材購(gòu)銷系統(tǒng),功能如下:(1) 根據(jù)教學(xué)計(jì)劃,向?qū)W生供應(yīng)所需的教材。 系統(tǒng)接受學(xué)生的購(gòu)書(shū)單,檢驗(yàn)購(gòu)書(shū)單。若教材庫(kù)存量充足,進(jìn)行售書(shū)處理,即修改教材存量表,給學(xué)生開(kāi)發(fā)票和領(lǐng)書(shū)單,學(xué)生憑單到書(shū)庫(kù)領(lǐng)書(shū); 若教材庫(kù)存量不足,對(duì)脫銷的教材進(jìn)行
26、缺書(shū)登記。(2) 根據(jù)缺書(shū)登記表采購(gòu)所缺的教材,通知學(xué)生補(bǔ)購(gòu)。 按缺書(shū)登記表進(jìn)行匯總,并按出版社統(tǒng)計(jì)缺書(shū),將缺書(shū)單發(fā)給書(shū)庫(kù)保管員,以便采購(gòu)。 待購(gòu)教材到貨后,根據(jù)書(shū)庫(kù)保管員發(fā)來(lái)的進(jìn)書(shū)通知單進(jìn)行缺書(shū)銷售,即修改教材存量表,并從缺書(shū)登記表中取出缺書(shū)單進(jìn)行售書(shū)處理。第56頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二教材購(gòu)銷系統(tǒng)書(shū)庫(kù)保管員學(xué)生購(gòu)書(shū)單領(lǐng)書(shū)單缺書(shū)單進(jìn)書(shū)通知圖3.14 頂層圖 (p52)第57頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(p52)1銷售2采購(gòu)學(xué)生書(shū)庫(kù)保管員進(jìn)書(shū)通知教材存量表缺書(shū)登記表購(gòu)書(shū)單領(lǐng)書(shū)單缺書(shū)單進(jìn)書(shū)通知圖3.15 第二層圖第58頁(yè),共120頁(yè)
27、,2022年,5月20日,19點(diǎn)4分,星期二1.1審查有效性1.2購(gòu)書(shū)數(shù)量審核進(jìn)書(shū)通知F1教材存量表F2 缺書(shū)登記表購(gòu)書(shū)單領(lǐng)書(shū)單F3 學(xué)生用書(shū)表暫缺書(shū)單圖3.16 第三層圖:圖1 銷售子系統(tǒng)1.6產(chǎn)生補(bǔ)售書(shū)單1.5登記缺書(shū)1.4登記售書(shū)和打印領(lǐng)書(shū)單F4 售書(shū)登記表發(fā)票有效購(gòu)書(shū)單補(bǔ)售書(shū)單第59頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二圖3.17 第三層DFD采購(gòu)子系統(tǒng) .修改教材庫(kù)存和待購(gòu)量.按書(shū)號(hào)匯總?cè)睍?shū).按出版社統(tǒng)計(jì)缺書(shū)缺書(shū)登記表 教材存量表 待購(gòu)教材表 教材一覽表 進(jìn)書(shū)通知 進(jìn)書(shū)通知 缺書(shū)單 第60頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.2.2 編寫(xiě)數(shù)
28、據(jù)定義(數(shù)據(jù)字典)與加工說(shuō)明最底層的DFD圖包含了系統(tǒng)的全部數(shù)據(jù)和加工。在底層圖中,從數(shù)據(jù)的終點(diǎn)開(kāi)始,沿著DFD圖一步步向數(shù)據(jù)源點(diǎn)回溯,較易看清數(shù)據(jù)流中每一個(gè)數(shù)據(jù)項(xiàng)的來(lái)龍去脈,也易于搞清每個(gè)數(shù)據(jù)文件的組成以及各個(gè)加工的加工策略。第61頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二例如,圖3.16中,“領(lǐng)書(shū)單”是主要輸出數(shù)據(jù)流,按: 領(lǐng)書(shū)單 發(fā)票 有效購(gòu)書(shū)單 購(gòu)書(shū)單的次序回溯,可以得到各數(shù)據(jù)流、數(shù)據(jù)文件以及加工說(shuō)明的定義,如:領(lǐng)書(shū)單 學(xué)號(hào) + 姓名 + 書(shū)號(hào)+數(shù)量發(fā)票學(xué)號(hào)+姓名+書(shū)號(hào)+單價(jià)+數(shù)量+總價(jià)+書(shū)費(fèi)合計(jì)有效購(gòu)書(shū)單學(xué)號(hào) + 姓名 + 書(shū)號(hào)+數(shù)量教材存量表書(shū)號(hào)+單價(jià)+數(shù)量第62頁(yè)
29、,共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.2.3 需求分析的復(fù)審(Requirement Review) 需求分析的文檔完成后,應(yīng)由用戶、系統(tǒng)分析員、設(shè)計(jì)人員等組成的復(fù)審小組進(jìn)行復(fù)審。復(fù)審的重點(diǎn)是文檔的完整性、易改性和易讀性,盡可能多地發(fā)現(xiàn)文檔中存在的矛盾、冗余和遺漏。 以下是幾個(gè)注意點(diǎn):第63頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(1)注意DFD圖的加工編號(hào): 在數(shù)據(jù)流圖中,需按層給加工編號(hào)。編號(hào)表明該加工所處的層次及上下層的父子關(guān)系。 頂層圖中的加工不編號(hào)。 第二層圖中的加工編號(hào)為:, ,n。 第三層圖中的加工編號(hào)為: 1.1,1.2, ;2.1,2.
30、2, ; ; n.1,n.2, 等,以此類推。第64頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2) 不論加工、數(shù)據(jù)文件和數(shù)據(jù)流,都應(yīng)該命名(文件與加工之間的數(shù)據(jù)流可以不命名)。(3) 每個(gè)加工必須既有輸入流,又有輸出流。一個(gè)加工的輸出流不應(yīng)與輸入流同名。第65頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(4)父圖和子圖的平衡: 父圖(中某個(gè)加工)和(相應(yīng)的)子圖的輸入流和輸出流(在數(shù)量和名稱上)應(yīng)分別保持一致,稱為父圖和子圖的平衡。 (若父圖的一個(gè)數(shù)據(jù)流對(duì)應(yīng)子圖中的幾個(gè)數(shù)據(jù)流,而組成這些數(shù)據(jù)流的數(shù)據(jù)項(xiàng)全體正好是父圖中的這個(gè)數(shù)據(jù)流,也算是平衡的。)第66頁(yè),共12
31、0頁(yè),2022年,5月20日,19點(diǎn)4分,星期二1.3發(fā)票領(lǐng)書(shū)單學(xué)生姓名書(shū)費(fèi)總價(jià)領(lǐng)書(shū)單(a) 父圖父圖和子圖平衡的示意圖(b) 子圖(發(fā)票=學(xué)生姓名+書(shū)費(fèi)總價(jià))第67頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(5)分解的速度宜均勻: 同一圖中的各個(gè)加工,分解的步子應(yīng)大致均勻,保持同步擴(kuò)展。每一加工每次可分為24個(gè)加工,最多不超過(guò)7個(gè)。第68頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(第3章 補(bǔ)充習(xí)題)17.某銀行儲(chǔ)蓄系統(tǒng)功能是: 將儲(chǔ)戶填寫(xiě)的存款單或取款單輸入系統(tǒng)。 如果是存款,系統(tǒng)將儲(chǔ)戶的存款信息(姓名、住址、存款日期、存款類型、存款金額、利率等)記錄在帳戶文
32、件中,并打印存款清單給儲(chǔ)戶;如果是取款,系統(tǒng)先查詢帳戶文件,并打印取款清單給儲(chǔ)戶。 (1)畫(huà)出該問(wèn)題數(shù)據(jù)流圖的頂層圖 和 第二層圖。 (2)以公式的形式建立數(shù)據(jù)流條目“存款單”。第69頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(第3章補(bǔ)充習(xí)題)17. 某銀行儲(chǔ)蓄系統(tǒng)功能是: 將儲(chǔ)戶填寫(xiě)的存款單或取款單輸入系統(tǒng)。 如果是存款,系統(tǒng)將儲(chǔ)戶的存款信息(姓名、住址、存款日期、存款類型、存款金額、利率等)記錄在帳戶文件中,并打印存款清單給儲(chǔ)戶;如果是取款,系統(tǒng)先查詢帳戶文件,并打印取款清單給儲(chǔ)戶。 (1)畫(huà)出該問(wèn)題數(shù)據(jù)流圖的頂層圖 和 第二層圖。 (2)以公式的形式建立數(shù)據(jù)流條目“存款單
33、”。第70頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.3 結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)( SD, Structured Design)3.3.1 SD概述 1.面向數(shù)據(jù)流的設(shè)計(jì)和面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 按照出發(fā)點(diǎn)的不同, 傳統(tǒng)的軟件設(shè)計(jì)又可分為面向數(shù)據(jù)流的設(shè)計(jì)和面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)兩大類。前者以結(jié)構(gòu)化設(shè)計(jì)(Structured Design, SD)為主要代表,后者以Jackson方法為主要代表。第71頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 在面向數(shù)據(jù)流的方法中,數(shù)據(jù)流是考慮一切問(wèn)題的出發(fā)點(diǎn)。在分析階段,用數(shù)據(jù)流圖來(lái)表示系統(tǒng)的邏輯模型;在設(shè)計(jì)階段,按照數(shù)據(jù)流圖的不同類型( 變
34、換型或事務(wù)型 ) 將它們轉(zhuǎn)換為相應(yīng)的軟件結(jié)構(gòu)圖。第72頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 Jackson方法以數(shù)據(jù)結(jié)構(gòu)作為分析與設(shè)計(jì)的基礎(chǔ),認(rèn)為算法的結(jié)構(gòu)在很大程度上依賴于它要處理的問(wèn)題的數(shù)據(jù)結(jié)構(gòu),因此可以由該問(wèn)題的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出它的程序結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法主要用于小型數(shù)據(jù)處理系統(tǒng)的開(kāi)發(fā),一般情況下也適合于在詳細(xì)設(shè)計(jì)階段使用.第73頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二2. 從分析模型導(dǎo)出設(shè)計(jì)模型數(shù)據(jù)字典數(shù)據(jù)流圖實(shí)體關(guān)系圖狀態(tài)遷移圖加工規(guī)格說(shuō)明控制規(guī)格說(shuō)明數(shù)據(jù)對(duì)象描述過(guò)程設(shè)計(jì)接口設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)(SC)數(shù)據(jù)設(shè)計(jì)第74頁(yè),共120頁(yè),2022年,
35、5月20日,19點(diǎn)4分,星期二3.3.2 SD的步驟:從DFD圖到SC圖1.數(shù)據(jù)流圖的類型: 有兩種形式,即:變換型( Transform Flow ) 和 事務(wù)型( Transaction Flow )。第75頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(1)變換型結(jié)構(gòu) ( Transform Flow ) 變換型結(jié)構(gòu)由三部分組成: 傳入路徑(Afferent Path)、變換中心(Transform Center)和傳出路徑(Efferent Path)。流經(jīng)這3個(gè)部分的數(shù)據(jù)流分別稱為:傳入流、變換流和傳出流。 變換中心的任務(wù)是:通過(guò)計(jì)算或處理,把系統(tǒng)的傳入流變換為傳出流。傳
36、入路徑變換中心傳出路徑傳入流變換流傳出流第76頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二ABCaPRWQUVDEbcrwdevup傳入部分變換中心傳出部分圖3.23 變換型結(jié)構(gòu)的模型第77頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2)事務(wù)型結(jié)構(gòu) ( Transaction Flow )事務(wù)型結(jié)構(gòu)由至少一條接收路徑(Receive Path)、一個(gè)事務(wù)中心(Transaction Center)和若干條動(dòng)作路徑(Action Path)組成。當(dāng)外部信息沿著接收路徑進(jìn)入系統(tǒng)后,經(jīng)過(guò)事務(wù)中心處理,獲得某一個(gè)特定值,并據(jù)此啟動(dòng)某一動(dòng)作路徑的操作。示意圖如下:事務(wù)中心接
37、收路徑動(dòng)作路徑圖3.21 事務(wù)型結(jié)構(gòu)的基本模型第78頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二2. SD方法的步驟 SD方法規(guī)定了下列4個(gè)步驟:(1)重審數(shù)據(jù)流圖,必要時(shí)可再次進(jìn)行修改或細(xì)化;(2)鑒別數(shù)據(jù)流圖的結(jié)構(gòu)特征,確定它是屬于變換型還是事務(wù)型;(3)按照SD方法規(guī)定的一組規(guī)則(變換映射或事務(wù)映射),把DFD圖轉(zhuǎn)換為初始的SC圖;變換型DFD圖初始SC圖變換映射事務(wù)型DFD圖初始SC圖事務(wù)映射(4)優(yōu)化初始的SC圖,獲得最終的SC圖。第79頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.3.3 變換映射( Transform Mapping )變換映射的3個(gè)
38、主要步驟:(1) 劃分DFD圖的邊界:區(qū)分傳入部分、傳出部分和變換中心;(2) 建立初始SC圖的框架:進(jìn)行第一級(jí)分解,設(shè)計(jì)上層模塊頂層和第一層;(3) 分解SC圖的各個(gè)分支:進(jìn)行第二級(jí)分解,設(shè)計(jì)傳入分支、傳出分支和變換中心的中、下層模塊。第80頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二ABCaPRWQUVDEbcrwdevup例 3.9 第一步: 劃分DFD圖的邊界:區(qū)分傳入部分、傳出部分和變換中心。圖 3.23 劃分傳入部分、傳出部分和變換中心傳入部分變換中心傳出部分第81頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第二步:完成第一級(jí)分解,設(shè)計(jì)上層模塊頂層和第一
39、層。 (1)頂層只包含一個(gè)用于控制的主模塊。 (2)第一層包括傳入、傳出和中心變換3個(gè)模塊,分別代表系統(tǒng)的3個(gè)相應(yīng)分支。MT(變換模塊)MC(主模塊)MA(傳入模塊)ME(傳出模塊)c,ec,eu,wu,w頂層第一層圖3.24(a) 第一級(jí)分解后的SC圖第82頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第三步:完成第二級(jí)分解,細(xì)化SC圖的各個(gè)分支(1)傳入分支的模塊分解: 模塊的調(diào)用順序與加工順序相反(逆向移動(dòng))。MA (傳入模塊)Cc,e圖3.25(a) 傳 入分支的分解BAEDcbaed第83頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(2)傳出分支的模塊分解:
40、 模塊的調(diào)用順序與加工順序相同(正向移動(dòng))。ME (傳出模塊)w,u圖3.26 傳出分支的分解WVUwvu第84頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二(3)變換中心分支的模塊分解: 模塊的調(diào)用順序按加工順序自左向右排列。MT (變換模塊)w,u圖3.27 變換中心分支的分解QPRrc,eeprc,pw,u第85頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二MTMCMAMEc,ec,eu,wu,w頂層第一層圖3.28 從圖3.23導(dǎo)出的初始的變換型SC圖CEQPRWUc,peprru,wwuBADVbadecv第86頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4
41、分,星期二ABCaPRWQUVDEbcrwdevup傳入部分變換中心傳出部分f1f2f3f4圖3.23(a) 改進(jìn)的變換型DFD圖物理輸入物理輸出邏輯輸入邏輯輸出第87頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二MTMCMAMEc,ec,eu,wu,w頂層第一層圖3.28(a) 從圖3.23(a)導(dǎo)出的初始的變換型SC圖CEQPRWUc,peprru,wwuBADVbadecvGet f1f1Get f2f2Put f3f3f4Put f4第88頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.3.4 事務(wù)映射(Transaction mapping )事務(wù)映射的3個(gè)
42、主要步驟:(1) 劃分DFD圖的邊界:區(qū)分事務(wù)中心、接收部分(接收路徑)和發(fā)送部分(發(fā)送路徑);(2)建立初始SC圖的框架,設(shè)計(jì)上層模塊頂層和第一層;(3) 分解和細(xì)化接收分支和發(fā)送分支,完成初始的SC圖。第89頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二ATBaCDa1例 3.10 第一步: 劃分DFD圖的邊界:區(qū)分事務(wù)中心、接收部分和發(fā)送部分。圖 3.29 事務(wù)型DFD圖的劃分a2a3接收部分(輸入流)事務(wù)中心動(dòng)作路徑部分(活動(dòng)流)第90頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第二步: 設(shè)計(jì)上層模塊頂層和第一層。 (1)頂層只包含一個(gè)用于控制的主模塊。 (2
43、)第一層包括接收和發(fā)送2個(gè)模塊,分別代表系統(tǒng)的2個(gè)分支。MC(主模塊)A (接收模塊)T (發(fā)送模塊)aa頂層第一層圖3.30 事務(wù)型SC圖的上層結(jié)構(gòu)第91頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第三步:分解和細(xì)化接收分支和發(fā)送分支。(1)接收分支負(fù)責(zé)接收數(shù)據(jù),通常只有一個(gè)接收模塊。(2)發(fā)送分支的發(fā)送模塊是一個(gè)調(diào)度模塊,它控制下層的所有動(dòng)作模塊。MC(主模塊)A (接收模塊)T (發(fā)送模塊)aa頂層第一層從圖3.29導(dǎo)出的初始的事務(wù)型SC圖BCDa1a2a3第92頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.3.5 優(yōu)化初始SC圖的指導(dǎo)規(guī)則1.對(duì)模塊劃分的原
44、則模塊的行數(shù)應(yīng)控制在 10100 行的范圍。第93頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二2. 高扇入 / 低扇出的原則扇入(fan-in):一個(gè)模塊直接上級(jí)模塊的個(gè)數(shù)。扇入高則上級(jí)模塊多,能夠增加模塊利用率。扇出(fan-out):一個(gè)模塊直接下級(jí)模塊的個(gè)數(shù)。扇出低則下級(jí)模塊少,可以減少模塊調(diào)用和控制的復(fù)雜度。通常扇出數(shù)以34為宜,不要超過(guò)7個(gè)。MM(a)模塊M的扇入(b)模塊M的扇出圖3.32 模塊的扇入和扇出第94頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二如果一個(gè)模塊的扇出數(shù)過(guò)大(煎餅形結(jié)構(gòu)),就意味著該模塊過(guò)分復(fù)雜,需要協(xié)調(diào)和控制過(guò)多的下屬模塊,應(yīng)當(dāng)適
45、當(dāng)增加中間層使扇出減少(塔形結(jié)構(gòu))。(a)煎餅形結(jié)構(gòu)(b)塔形結(jié)構(gòu)圖3.33 增加中間層可減少扇出第95頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二MA圖3.34 甕形結(jié)構(gòu) 總的考慮是: 頂層扇出數(shù)低一些,中間層扇出數(shù)高一些,底層扇入數(shù)高一些,形成甕形結(jié)構(gòu)。BJKNL第96頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.3.6 教材購(gòu)銷系統(tǒng)的總體結(jié)構(gòu)例3.11 從高校教材銷售子系統(tǒng)的DFD圖導(dǎo)出SC圖。第一步:細(xì)化并修改DFD圖。 (1) 在圖3.15(p52)中,加工1(銷售)和加工2(采購(gòu))之間的數(shù)據(jù)流“進(jìn)書(shū)通知”替換為:增加一個(gè)“進(jìn)書(shū)登記表”文件,供銷售子系統(tǒng)
46、和采購(gòu)子系統(tǒng)之間交換信息。 (2) 把圖3.16中加工1.4(登記售書(shū)和打印領(lǐng)書(shū)單)分解為兩個(gè)加工(加工1.4登記售書(shū)、加工1.7打印領(lǐng)書(shū)單)。(3)把圖3.16中加工1.6的輸入流“進(jìn)書(shū)通知”改為從數(shù)據(jù)文件“進(jìn)書(shū)登記表”讀入的數(shù)據(jù)流。第97頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二1銷售2采購(gòu)學(xué)生書(shū)庫(kù)保管員進(jìn)書(shū)登記表教材存量表缺書(shū)登記表購(gòu)書(shū)單領(lǐng)書(shū)單無(wú)效書(shū)單發(fā)票缺書(shū)單進(jìn)書(shū)通知修改后的第二層DFD圖第98頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 1.1審查有效性1.2購(gòu)書(shū)數(shù)量審核進(jìn)書(shū)登記表F1教材存量表F2 缺書(shū)登記表購(gòu)書(shū)單領(lǐng)書(shū)單無(wú)效書(shū)單F3 學(xué)生用書(shū)表暫缺書(shū)單
47、第三層圖:圖1 修改后的銷售子系統(tǒng)1.6產(chǎn)生補(bǔ)售書(shū)單1.5登記缺書(shū)1.7打印領(lǐng)書(shū)單F4 售書(shū)登記表發(fā)票有效購(gòu)書(shū)單補(bǔ)售書(shū)單1.4登記售書(shū)第99頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第二步:鑒別DFD圖的類型。 1. 分析該系統(tǒng)的第二層圖,它有2個(gè)功能:銷售和采購(gòu),這2個(gè)處理可并行工作,因此從整體上可按事務(wù)型數(shù)據(jù)流圖來(lái)設(shè)計(jì)。 2. 分析該系統(tǒng)的第三層圖的銷售子系統(tǒng),初看起來(lái)它具有變換型結(jié)構(gòu)。 它的傳入部分含有2個(gè)加工:1個(gè)(加工1.1)用于初次出售,1個(gè)(加工1.6)用于補(bǔ)售。一次售書(shū)只能執(zhí)行一種功能,要么是初售,要么是補(bǔ)售。因此,圖中加工1.2的左方應(yīng)添加一個(gè) 號(hào), 表示“選
48、擇”。由此可見(jiàn),銷售子系統(tǒng)實(shí)際上屬于事務(wù)型結(jié)構(gòu)。 2. 類似地,分析采購(gòu)子系統(tǒng),它也是具有2個(gè)動(dòng)作分支的事務(wù)型結(jié)構(gòu)。一個(gè)動(dòng)作分支是“統(tǒng)計(jì)缺書(shū)”,另一個(gè)動(dòng)作分支是“登記進(jìn)書(shū)”。第100頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第三步:畫(huà)出SC圖的上層框架。教材購(gòu)銷系統(tǒng)讀用戶選擇銷售采購(gòu)初售補(bǔ)售統(tǒng)計(jì)缺書(shū)登記進(jìn)書(shū)圖3.35 教材購(gòu)銷系統(tǒng)SC圖的上層框架初售命令補(bǔ)售命令統(tǒng)計(jì)命令登記命令用戶命令銷售命令采購(gòu)命令第101頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二第四步:分解初售、補(bǔ)售、統(tǒng)計(jì)缺書(shū)和登記進(jìn)書(shū)4個(gè)動(dòng)作分支,補(bǔ)充動(dòng)作層與細(xì)節(jié)層。銷售子系統(tǒng)和采購(gòu)子系統(tǒng)的初始SC圖見(jiàn)圖
49、3.36和圖3.37。第五步:改進(jìn)SC圖,獲得最終的SC圖。第102頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二采購(gòu)子系統(tǒng)統(tǒng)計(jì)缺書(shū)登記進(jìn)書(shū)按書(shū)號(hào)匯總圖3.37 采購(gòu)子系統(tǒng)的SC圖按出版社匯總打印缺書(shū)單審查取款單打印取款清單第103頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.4.1 目的與任務(wù) 1. 過(guò)程設(shè)計(jì)的目的: 為SC圖中的每一個(gè)模塊確定采用的算法和模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu),用選定的表達(dá)工具給出清晰的描述。 2. 過(guò)程設(shè)計(jì)的主要任務(wù): (1)為每個(gè)模塊確定采用的算法; (2)確定每個(gè)模塊使用的數(shù)據(jù)結(jié)構(gòu); (3)確定模塊接口的細(xì)節(jié)(模塊接口通常指模塊的輸入數(shù)據(jù)和輸出數(shù)
50、據(jù))。3.4 模塊設(shè)計(jì)(詳細(xì)設(shè)計(jì),過(guò)程設(shè)計(jì))第104頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二3.4.2 模塊設(shè)計(jì)的原則與方法 1. 清晰第一的設(shè)計(jì)風(fēng)格 結(jié)構(gòu)化程序設(shè)計(jì)應(yīng)遵循“清晰第一、效率第二(Clarity the first, Efficiency the next)” 的原則。 第105頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二2. 結(jié)構(gòu)化的控制結(jié)構(gòu) 每個(gè)模塊只使用單入口、單出口的3種基本控制結(jié)構(gòu),即:順序、選擇和循環(huán)結(jié)構(gòu)。ABTSCF(a)順序(b)選擇(C)循環(huán)(DO-WHILE)ABC圖3.40 3種基本控制結(jié)構(gòu)的流程圖TF第106頁(yè),共120頁(yè),
51、2022年,5月20日,19點(diǎn)4分,星期二補(bǔ)充說(shuō)明 允許補(bǔ)充使用DO-UNTIL 和 DO-CASE控制結(jié)構(gòu)。FSCT(a)循環(huán)(DO-UNTIL)CASE1C=1CASE2=2CASEn=n(b)多分支選擇(DO-CASE)兩種常用的擴(kuò)充結(jié)構(gòu)第107頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二 在PDL語(yǔ)言中允許使用UNDO語(yǔ)句提前退出循環(huán)。 ( UNDO語(yǔ)句相當(dāng)于C語(yǔ)言的break語(yǔ)句) DO WHILE C1 IF C2 UNDO; ENDDO GOTO語(yǔ)句的轉(zhuǎn)移范圍應(yīng)限制在同一個(gè)控制結(jié)構(gòu)的內(nèi)部,不讓它從一個(gè)控制結(jié)構(gòu)轉(zhuǎn)移到另一個(gè)控制結(jié)構(gòu)。第108頁(yè),共120頁(yè),2022年,
52、5月20日,19點(diǎn)4分,星期二3. 逐步細(xì)化的實(shí)現(xiàn)方法把給定的模塊功能轉(zhuǎn)換成詳細(xì)過(guò)程性描述,采用逐步細(xì)化的策略。例3.12 在一組數(shù)中找出最大數(shù)。第一步: 1.輸入一組數(shù); 2.找出其中的最大數(shù);3.輸出最大數(shù).第二步:細(xì)化上面的第2條。 2.1 任取一個(gè)數(shù),假定它就是最大數(shù); 2.2 將該數(shù)與其余各數(shù)逐一比較; 2.3 若發(fā)現(xiàn)有任何數(shù)大于最大數(shù),則取而代之.第三步:繼續(xù)細(xì)化,最后可得: 1. 輸入一個(gè)數(shù)組; 2.1 令 最大數(shù)數(shù)組中的第一個(gè)元數(shù); 2.2 從第二個(gè)元素至最末一個(gè)元素依次做: 2.3 若 新元素最大數(shù),則 最大數(shù)新元素. 3. 輸出最大數(shù).第109頁(yè),共120頁(yè),2022年,5月20日,19點(diǎn)4分,星期二逐步細(xì)化的步驟歸結(jié)為: (1)由粗到細(xì)對(duì)程序進(jìn)行逐步的細(xì)化,每步可選擇其中的一條至數(shù)條進(jìn)行
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 土石方工程施工合作協(xié)議范本
- 砌磚分包商合同模板
- 旅游租車協(xié)議書(shū)范本
- 蔬菜采購(gòu)合同的修改記錄
- 二手房屋買賣合同范本點(diǎn)評(píng)
- 工程勞務(wù)分包結(jié)算單填寫(xiě)指南
- 雞苗買賣合同示例
- 國(guó)際采購(gòu)合同條款解析
- 河北工程分包協(xié)議樣本
- 保健品交易合同
- 寵物鮮食品牌設(shè)計(jì)開(kāi)題報(bào)告
- 感動(dòng)中國(guó)人物錢七虎
- 咨詢心理學(xué)專題題庫(kù)
- 物業(yè)小區(qū)物業(yè)服務(wù)費(fèi)三方監(jiān)管實(shí)施方案
- 刺猬養(yǎng)殖研究報(bào)告-中國(guó)刺猬養(yǎng)殖行業(yè)市場(chǎng)分析及發(fā)展前景研究報(bào)告2024年
- 機(jī)械原理課程設(shè)計(jì)-高位自卸汽車的設(shè)計(jì)
- 水廠工程工藝管道及設(shè)備安裝工程施工方案與技術(shù)措施
- 《社會(huì)網(wǎng)絡(luò)分析法》課件
- 國(guó)開(kāi)電大可編程控制器應(yīng)用實(shí)訓(xùn)形考任務(wù)1實(shí)訓(xùn)報(bào)告
- 初中語(yǔ)文部編版九年級(jí)上冊(cè)期末綜合性學(xué)習(xí)專項(xiàng)練習(xí)(2022秋)(附參考答案和解析)
- 縮句完整版本
評(píng)論
0/150
提交評(píng)論