《結(jié)構(gòu)化分析與設(shè)計(jì)》PPT課件.ppt_第1頁
《結(jié)構(gòu)化分析與設(shè)計(jì)》PPT課件.ppt_第2頁
《結(jié)構(gòu)化分析與設(shè)計(jì)》PPT課件.ppt_第3頁
《結(jié)構(gòu)化分析與設(shè)計(jì)》PPT課件.ppt_第4頁
《結(jié)構(gòu)化分析與設(shè)計(jì)》PPT課件.ppt_第5頁
已閱讀5頁,還剩166頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第3章 結(jié)構(gòu)化分析與設(shè)計(jì) Chapter 3 Structured Analysis and Design,3.1 概述 3.1.1 結(jié)構(gòu)化分析與設(shè)計(jì)的由來 1.瀑布模型的首次實(shí)踐,2. SA與SD的流程 結(jié)構(gòu)化分析(工具:DFD、PSPEC) 分析模型(分層DFD圖)+SRS 結(jié)構(gòu)化設(shè)計(jì)(工具:SC圖) 初始設(shè)計(jì)模型(初始SC圖) 最終設(shè)計(jì)模型(最終SC圖) 注: 數(shù)據(jù)流圖(DFD,Data Flow Diagram) 加工說明(PSPEC,Process SPECification) 軟件需求規(guī)格說明書”( SRS , Software Requirement Specification)

2、 結(jié)構(gòu)圖( SC, Structure Chart ),3. 基本任務(wù)與指導(dǎo)思想 (1)結(jié)構(gòu)化分析 SA有兩個主要任務(wù): 建立分析模型(Build Analysis Model) 通過對問題及其環(huán)境的理解、分析和綜合,建立分析模型。該模型包括問題所涉及的信息流、功能、性能、用戶界面及設(shè)計(jì)約束等,它是形成需求說明書、進(jìn)行軟件設(shè)計(jì)的基礎(chǔ)。, 編寫需求規(guī)格說明書(SRS) 在完全弄清用戶對軟件系統(tǒng)的確切要求的基礎(chǔ)上,用“需求規(guī)格說明書”( SRS)把用戶的需求表達(dá)出來。 需求規(guī)格說明書為開發(fā)人員和用戶提供軟件開發(fā)完成時質(zhì)量評價(jià)的依據(jù)。 SRS應(yīng)該具有準(zhǔn)確性; SRS應(yīng)該防止二義性; SRS應(yīng)該直觀、

3、易讀、易于修改。,The SRS have some characteristics. Correct Consistent Un-ambiguity Feasible Testable 需求規(guī)格說明書的特征: 1、正確性。 2、一致性:文檔前后有無沖突? 3、需求是無二義的嗎?涉眾的理解是一致的。 4、可行性:需求是否可行?解決方案是否存在? 5、可測試性:需求是可測試的。, SA的主要指導(dǎo)思想 抽象與分解 ( Abstraction and decomposition ) 抽象(Abstraction)是控制復(fù)雜性的基本策略之一。在軟件工程中,從系統(tǒng)定義到實(shí)現(xiàn),每進(jìn)展一步都可以看做是對軟件

4、解決方法的抽象化過程的一次細(xì)化。在軟件需求分析階段,在最高抽象級別上,用“做什么”來描述問題。然后不斷具體化(分解)。抽象的層次愈低,呈現(xiàn)的細(xì)節(jié)愈多。,SA法概述,分解:對于一個復(fù)雜的系統(tǒng),為了將復(fù)雜性降低到可以掌握的程度,可以把大問題分解成若干小問題,然后分別解決(如右圖)。,一、SA法的基本思想 結(jié)構(gòu)化分析方法的基本思想是“分解”和“抽象”。,抽象:分解可以分層進(jìn)行,即先考慮問題最本質(zhì)的屬性,暫把細(xì)節(jié)略去,以后再逐層添加細(xì)節(jié),直至涉及到最詳細(xì)的內(nèi)容,這種用最本質(zhì)的屬性表示一個系統(tǒng)的方法就是“抽象”。,軟件工程,9,自頂向下地進(jìn)行功能分解,W,W1,W1.1,W1.2,W1.3,1、建立當(dāng)前

5、系統(tǒng)的“具體模型”。,三、SA法的描述方法 1、分層的數(shù)據(jù)流圖 2、數(shù)據(jù)詞典 3、描述加工邏輯的結(jié)構(gòu)化語言、判定表及判定樹,二、SA法的步驟,4、為了對目標(biāo)系統(tǒng)做完整的描述,還需要考慮人機(jī)界面和其他一些問題。,3、建立目標(biāo)系統(tǒng)的邏輯模型。,2、抽象出當(dāng)前系統(tǒng)的邏輯模型。,(2)結(jié)構(gòu)化設(shè)計(jì) 軟件設(shè)計(jì)分兩個階段完成: 軟件設(shè)計(jì)=總體設(shè)計(jì)+詳細(xì)設(shè)計(jì) 總體設(shè)計(jì)( General Design ;又稱概要設(shè)計(jì),Preliminary Design ),進(jìn)行總體結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)接口設(shè)計(jì),把用數(shù)據(jù)流圖(DFD)表示的系統(tǒng)分析模型轉(zhuǎn)換為用結(jié)構(gòu)圖(Structure Chart , SC )表示的系統(tǒng)結(jié)構(gòu)模型。

6、詳細(xì)設(shè)計(jì)( Detail Design ) 用以確定各個軟件組件(模塊)的數(shù)據(jù)結(jié)構(gòu)和操作(算法)。, SC 圖分兩步完成: 初始設(shè)計(jì)模型(初始SC圖) 最終設(shè)計(jì)模型(最終SC圖) 初始SC圖 總體設(shè)計(jì) 最終SC圖 軟件設(shè)計(jì) 詳細(xì)設(shè)計(jì) : 完成模塊說明 軟件設(shè)計(jì)的指導(dǎo)思想 分解與細(xì)化 (Decomposition and Refinement ) 采用“自頂向下、逐步細(xì)化(Top-Down Stepwise Refinement )”的開發(fā)方法。,軟件工程,13,概要設(shè)計(jì),又稱總體設(shè)計(jì),基本任務(wù)將系統(tǒng)劃分成模塊結(jié)構(gòu)形式;決定每個模塊的功能;模塊間的調(diào)用關(guān)系。 主要產(chǎn)品: 模塊說明書:模塊的組成及

7、模塊間的條用關(guān)系。 模塊的描述:功能、界面、過程、注釋 功能:模塊的輸入、輸出及其功能 界面:參數(shù)的傳遞關(guān)系 過程:模塊內(nèi)部實(shí)現(xiàn),在詳細(xì)設(shè)計(jì)完成后補(bǔ)充進(jìn)來 注釋:對模塊的一些限制和約束。 參加人員:高級設(shè)計(jì)人員。,軟件工程,14,詳細(xì)設(shè)計(jì)基本概念,基本任務(wù): 描述模塊執(zhí)行過程;局部數(shù)據(jù)組織;控制流和每一步具體加工要求及實(shí)現(xiàn)細(xì)節(jié) 描述方式: 圖形描述:流程圖、盒圖、問題分析圖 語言描述:PDL 表格描述:判定表 參加人員:初級軟件人員,3.1.2 SA模型的組成與描述 例3.1 教材銷售系統(tǒng) 第一步:通過對現(xiàn)實(shí)環(huán)境的調(diào)查研究,獲取當(dāng)前系統(tǒng)的具體模型(物理模型) 。,學(xué) 生,圖3.1 學(xué)生購買教材

8、的當(dāng)前系統(tǒng)模型(物理模型),購書申請,張 秘書,購書發(fā)票,王 會計(jì),購書證明,李 出納,領(lǐng)書單,趙 保管,學(xué) 生,書,學(xué) 生,圖3.2 學(xué)生購買教材的邏輯模型(當(dāng)前系統(tǒng)),購書單,審查 有效性,購書發(fā)票,開 發(fā)票,有效 購書單,開領(lǐng) 書單,領(lǐng)書單,發(fā)書,學(xué) 生,書,第二步:分析需求,建立系統(tǒng)分析模型(邏輯模型),包括當(dāng)前系統(tǒng)和目標(biāo)系統(tǒng)模型。,關(guān)注系統(tǒng)的功能,而不是執(zhí)行功能的人或機(jī)構(gòu),學(xué) 生,圖3.3 目標(biāo)系統(tǒng)的邏輯模型,購書單,審查并 開發(fā)票,發(fā)票,開 領(lǐng)書單,領(lǐng)書單,發(fā)書,學(xué) 生,書,第三步:編寫需求規(guī)格說明書。第四步:驗(yàn)證需求,完善和補(bǔ)充對目標(biāo)系統(tǒng)的描述。 通過目標(biāo)系統(tǒng)的人-機(jī)界面,和用戶

9、一起確認(rèn)目標(biāo)系統(tǒng)功能; 復(fù)審需求說明,補(bǔ)充迄今尚未考慮過的細(xì)節(jié)。,學(xué) 生,圖3.4 改進(jìn)了的目標(biāo)系統(tǒng)邏輯模型,購書單,審查并 開發(fā)票,發(fā)票,開 領(lǐng)書單,領(lǐng)書單,學(xué) 生,無效書單,軟件開發(fā)是要實(shí)現(xiàn)目標(biāo)系統(tǒng)的物理模型。需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)“做什么”的問題。,目標(biāo)系統(tǒng),當(dāng)前系統(tǒng),物理模型,邏輯模型,模型化,抽象化,物理模型,邏輯模型,具體化,實(shí)例化,導(dǎo) 出,怎么做,做什么,圖3.5 SA模型的組成,實(shí)體關(guān)系圖 (E-R圖),狀態(tài)轉(zhuǎn)換圖 (STD),數(shù)據(jù)流圖 (DFD),數(shù)據(jù)對象說明,加工說明,數(shù)據(jù) 字典 DD,控制說明,1. SA模型的組成,

10、早期的(傳統(tǒng)的)結(jié)構(gòu)化分析模型是面向數(shù)據(jù)流的,采用“自頂向下、逐層分解”的分析策略,以數(shù)據(jù)字典(DD, Data Dictionary)、數(shù)據(jù)流圖(DFD,Data Flow Diagram)、和加工說明(PSPEC, Process SPECification)為主要工具,建立系統(tǒng)的邏輯模型(功能建模)。,擴(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)

11、建立系統(tǒng)的分析模型。 本課程主要講述傳統(tǒng)的結(jié)構(gòu)化分析模型,2. SA模型的描述工具 傳統(tǒng)的結(jié)構(gòu)化分析采用3種描述工具: 數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD) 和 加工說明(PSPEC)。,(1) 數(shù)據(jù)流圖(DFD) 組成符號(數(shù)據(jù)流圖中的4種圖形元素),加工 (Prosess):對數(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ù)流表示讀文件或查詢文件; 流向文件的數(shù)據(jù)流表示寫文件或修改文件。,(2) DFD

12、的性質(zhì):需求分析中,用分層的數(shù)據(jù)流圖來表示。,審查并 開發(fā)票 1,開 領(lǐng)書單 2,學(xué)生,學(xué)生,教材存量表,購書單,無效書單,發(fā)票,領(lǐng)書單,各班學(xué)生用書表,圖3.7 教材銷售系統(tǒng)的數(shù)據(jù)流圖,軟件工程,26,描述銀行取款過程的數(shù)據(jù)流圖, DFD的性質(zhì) DFD 不能表示控制結(jié)構(gòu),如選擇結(jié)構(gòu)或循環(huán)結(jié)構(gòu)。 在需求分析中,常常用一組DFD圖由粗到細(xì)地表示不同級別上的功能模型,稱之為分層數(shù)據(jù)流圖。,(2)數(shù)據(jù)字典(DD) 數(shù)據(jù)字典的作用:對軟件系統(tǒng)中的每個數(shù)據(jù)規(guī)定一個定義條目,以保持?jǐn)?shù)據(jù)在系統(tǒng)中的一致性。 出現(xiàn)在軟件中的數(shù)據(jù)可分為3種情況: 只含一個數(shù)據(jù)的數(shù)據(jù)項(xiàng); 由多個數(shù)據(jù)項(xiàng)組成的數(shù)據(jù)流; 數(shù)據(jù)文件。,數(shù)

13、據(jù)字典定義式中的符號,符 號 含 義 舉 例 定義為 與 x = ab .|. 或 x = a | b . 或 m.n 重復(fù) x = a, x = 3a8 (.) 可選 x = (a) . 連結(jié)符 x = 1 . 9 * * 注釋 綜合的例: x = a | b + c + ( d ),數(shù)據(jù)流(條目):給出DFD中數(shù)據(jù)流的定義,列出該數(shù)據(jù)流的各組成數(shù)據(jù)項(xiàng),通常寫成公式的形狀。 例3.3 發(fā)票學(xué)號+ 姓名+書號+單價(jià)+數(shù)量+總價(jià)+ 書費(fèi)合計(jì) 對較長和較復(fù)雜的數(shù)據(jù)流,可分層次描述,使條目更清楚。如上述數(shù)據(jù)流“發(fā)票”可表示為: 發(fā)票(學(xué)號) 姓名發(fā)票行書費(fèi)合計(jì) 發(fā)票行書號 + 單價(jià) + 數(shù)量 + 總

14、價(jià),數(shù)據(jù)文件(條目): 對數(shù)據(jù)文件的定義。 例3.4 文件名:各班學(xué)生用書表 組成:系編號專業(yè)和班編號年級+書號 也可寫成公式的形狀,如: 各班學(xué)生用書表=系編號專業(yè)和班編號年級+書號,數(shù)據(jù)項(xiàng) (條目): 包含在數(shù)據(jù)流或數(shù)據(jù)文件中的數(shù)據(jù)項(xiàng),一般都應(yīng)在字典中設(shè)置相應(yīng)的條目。 例如: 系編號 = 2數(shù)字2 *二位數(shù)字,如01,12 * 年級 = F / M / J / S * F:一年級 ( Freshman );M:二年級 ( sophoMore ); J:三年級(Junior ); S:四年級 ( Senior ) *,軟件工程,33,存折格式,軟件工程,34,存折戶名所號帳號開戶日性質(zhì)(印密

15、)1存取行50 戶名2字母24 所號“001”.“999” 帳號“00000001”.“99999999” 開戶日年月日 性質(zhì)“1”.“6” 注:“1”表示普通戶,“5”表示工資戶等 印密“0” 注:印密在存折上不顯示 存取行日期(摘要)支出存入余額操作復(fù)核,(3)加工說明(條目): (Process SPECification, PSPEC) 對數(shù)據(jù)流圖的每一個基本加工,必須有一個加工說明, 其主要內(nèi)容如下所示: (1)加工名; (2)加工編號; (3)輸入數(shù)據(jù)流; (4)輸出數(shù)據(jù)流; (5)加工邏輯; (6)執(zhí)行頻率。 其中最重要的是加工邏輯。,加工邏輯描述基本加工如何把輸入數(shù)據(jù)流變換為輸

16、出數(shù)據(jù)流的加工策略,而不需描述實(shí)現(xiàn)加工的細(xì)節(jié)。 加工邏輯通常采用結(jié)構(gòu)化語言(Structured Langauge)、 判定表(Decision Table)、 或 判定樹(Decision Tree)作為描述工具。,結(jié)構(gòu)化語言(Structured Language) 是一種介于自然語言和形式化語言之間的語言。 結(jié)構(gòu)化語言可使用順序、選擇、循環(huán)等控制結(jié)構(gòu),其中選擇和循環(huán)結(jié)構(gòu)可分為內(nèi)外二層,外層有嚴(yán)格的語法,內(nèi)層語法比較靈活,可以用自然語言來表示。 結(jié)構(gòu)化語言的三種基本控制結(jié)構(gòu): 順序結(jié)構(gòu) 選擇結(jié)構(gòu): if_then_else 或 switch_do ; 循環(huán)結(jié)構(gòu): while_do 或 fo

17、r_do 或 do_while 。,例3.6 售書系統(tǒng)中“審查并開發(fā)票”的加工邏輯,對購書單上的的每一個書號 if ( 學(xué)生用書表中無此書號) then 把書號寫到出錯通知上 else 按書號檢索“教材存量表”,獲得該書的單價(jià)和庫存量 if (庫存量購書單上的數(shù)量) then 進(jìn)行缺書登記 else 將書號、單價(jià)、數(shù)量、總價(jià)等寫入發(fā)票; 更新 “教材存量表”。,軟件工程,39,結(jié)構(gòu)化語言特點(diǎn):,簡單,易學(xué),少二義性。不好處理組合條件。, 判定表或判定樹 判定表(Decision Table) 如果數(shù)據(jù)流圖的加工需要依賴于多個邏輯條件的取值,使用判定表來描述比較合適。,軟件工程,41,判定表,特

18、點(diǎn):可處理較復(fù)雜的組合條件,但不易理解.不易輸入計(jì)算機(jī)。,通常由四部分組成。 條件框 條件定義。 操作框 操作的定義。 條件條目 各條件的取值及組合。 操作條目 在各條件取值組合下所執(zhí)行的操作。,例如: 對商店每天的營業(yè)額所收稅率,軟件工程,42,例3.7 某公司對推銷員的獎勵辦法: (1) 每周推銷金額10000元,按預(yù)收貨款是否超過50%,分別獎勵推銷額的6%或4%; (2) 每周推銷金額10000元,按預(yù)收貨款是否超過50%,分別獎勵推銷額的8%或5%; (3) 對于月薪1000元的推銷員,分別另發(fā)鼓勵獎300、200 和 500、300元。,圖3.9 判定表的示例,判定樹( Decis

19、ion Tree) 判定樹也是用來表達(dá)加工邏輯的一種工具。有時它比判定表更直觀。,推銷金額 預(yù)收貨款 推銷員工資 獎金率 1000 8%+500 50% 1000 8% 10000 1000 5%+300 50% 1000 5% 推銷獎金策略 1000 6%+300 50% 1000 6% 10000 1000 4%+200 50% 1000 4% 圖3.10 判定樹的示例,軟件工程,46,例子:商店業(yè)務(wù)處理系統(tǒng)中“檢查發(fā)貨單”,if 發(fā)貨單金額超過$500 then if 欠款超過了60天 then 在償還欠款前不予批準(zhǔn) else (欠款未超期) 發(fā)批準(zhǔn)書,發(fā)貨單 else (發(fā)貨單金額未超

20、過$500) if 欠款超過60天 then 發(fā)批準(zhǔn)書,發(fā)貨單及賒欠報(bào)告 else (欠款未超期) 發(fā)批準(zhǔn)書,發(fā)貨單,軟件工程,47,以“檢查發(fā)貨單”為例,軟件工程,48,判定樹,3.1.3 SD模型的組成與描述 1. SD模型的組成,過程設(shè)計(jì),接口設(shè)計(jì),體系結(jié)構(gòu)設(shè)計(jì)(SC圖),數(shù)據(jù)設(shè)計(jì),圖3.11 SD模型的組成,2. SD模型的描述工具 體系結(jié)構(gòu)設(shè)計(jì)是用來確定軟件結(jié)構(gòu)的,其描述工具為結(jié)構(gòu)圖(Structure Chart),簡稱SC圖。 (1) SC圖的組成符號: SD方法約定: (1)用矩形框表示模塊; (2)用箭頭或直線表示模塊間的調(diào)用關(guān)系; (3)在調(diào)用線的兩旁用短箭頭表示傳入和傳出

21、模塊的數(shù)據(jù)流。,A,B,C,X,Y,Z,Z,傳入模塊,X,Y,傳出模塊,Y,X,變換模塊,X,Y,控制模塊,X,X,Y,Y,SC圖中允許使用的6種模塊,源模塊,X,漏模塊,X,(a),(b),(c),(d),(e),(f),(a) 傳入模塊 從下屬模塊取得數(shù)據(jù),經(jīng)過某些處理, 再將其傳送給上級模塊。它傳送的數(shù)據(jù)流叫做邏輯輸入流。 (b) 傳出模塊 從上級模塊獲得數(shù)據(jù),進(jìn)行某些處理,再將其傳送給下屬模塊。它傳送的數(shù)據(jù)流叫做邏輯輸出流。 (c) 變換模塊 它從上級模塊取得數(shù)據(jù),進(jìn)行特定的處理,轉(zhuǎn)換成其它形式, 再傳送回上級模塊。,(d) 源模塊 處于傳入部分的始端,它不調(diào)用其它模塊。它傳送的數(shù)據(jù)流

22、叫做物理輸入流。 (e) 漏(終)模塊 處于傳出部分的末端,它不調(diào)用其它模塊。它傳送的數(shù)據(jù)流叫做物理輸出流。 (f) 控制模塊 對所有下屬模塊進(jìn)行協(xié)調(diào)和管理的模塊。它只調(diào)用其它模塊,不受其它模塊調(diào)用。,(2)SC圖中的模塊調(diào)用 (a)簡單調(diào)用,A,B,C,X,Y,Z,Z,(b)選擇調(diào)用:用菱型符號表示。 (c)循環(huán)調(diào)用:用疊加在調(diào)用線始端的環(huán)形表示。,A,B,C,A,B,C,D,(a) 選擇調(diào)用示意圖,(b)循環(huán)調(diào)用示意圖, 畫SC圖的注意事項(xiàng) (1)同名的模塊在SC圖中僅出現(xiàn)一次; (2)模塊之間的調(diào)用關(guān)系只能從上而下,因而模塊間的調(diào)用關(guān)系可以用直線表示; (3)同一層模塊的調(diào)用次序,習(xí)慣上

23、自左到右。,3.2 結(jié)構(gòu)化系統(tǒng)分析( SA, Structured Analysis) 結(jié)構(gòu)化分析就是使用 DFD、DD、結(jié)構(gòu)化語言、判定表和判定樹等工具,來建立一種稱為結(jié)構(gòu)化說明書(即需求規(guī)格說明書)的目標(biāo)文檔。 結(jié)構(gòu)化分析的基本步驟是: (1)自頂向下對系統(tǒng)進(jìn)行功能分解, 畫出分層的DFD圖; (2)編制DD和PSPEC; (3)寫出SRS。,3.2.1 畫分層數(shù)據(jù)流圖 大型復(fù)雜的軟件系統(tǒng),其DFD可能含有數(shù)百乃至數(shù)千個加工,不可能一次將它們畫完整。 正確的做法是:從系統(tǒng)的基本模型(把整個系統(tǒng)看成一個加工)開始,逐層地對系統(tǒng)進(jìn)行分解。每分解一次,系統(tǒng)的加工數(shù)量就增多一些,加工的功能也更具體

24、一些。繼續(xù)重復(fù)這種分解,直到所有的加工都足夠簡單為止。 不需再分解的加工稱為“基本加工”。 上述分解方法稱為“自頂向下、逐步細(xì)化”(Top-Down Stepwise Refinement )。,分層的數(shù)據(jù)流圖,數(shù)據(jù)流圖繪制步驟 (1)畫系統(tǒng)的輸入和輸出(頂層圖): 頂層圖表示系統(tǒng)與外部實(shí)體之間的數(shù)據(jù)交換關(guān)系。 頂層圖只包含一個加工(加工名即為系統(tǒng)名); 頂層圖描述系統(tǒng)與外部實(shí)體之間的數(shù)據(jù)流,即系統(tǒng)從哪些外部實(shí)體接收數(shù)據(jù),發(fā)送數(shù)據(jù)到哪些外部實(shí)體。 頂層圖只有一張,,(2)畫系統(tǒng)的內(nèi)部: 第二層DFD圖(有些教科書上稱為層圖): 分解頂層圖為n個加工,系統(tǒng)有幾個功能,就分解為幾個加工; 描述加工

25、與外部實(shí)體之間、加工與數(shù)據(jù)文件之間、加工與加工之間的數(shù)據(jù)流。 第二層層圖只有一張,圖中的加工號為“,,n ”。, 畫更下層數(shù)據(jù)流圖(第3層圖、第4層圖、.)時,則分解上層圖中的加工,直到圖中尚未分解的加工都足夠簡單為止。子圖號就是父圖中被分解的加工號;子圖中加工號由圖號、小數(shù)點(diǎn)和序號組成。,軟件工程,63,在多層數(shù)據(jù)流圖中 頂層流圖僅包含一個加工,它代表被開發(fā)系統(tǒng)。它的輸入流是該系統(tǒng)的輸入數(shù)據(jù),輸出流是系統(tǒng)所輸出數(shù)據(jù); 底層流圖是指其加工不需再做分解的數(shù)據(jù)流圖,它處在最底層; 中間層流圖則表示對其上層父圖的細(xì)化。它的每一加工可能繼續(xù)細(xì)化,形成子圖。,首先要注意抽取數(shù)據(jù)流圖的四種成分: 源點(diǎn)/終

26、點(diǎn)、處理、數(shù)據(jù)存儲和數(shù)據(jù)流,軟件工程,64,參考原則 一個加工每次分解得到的子加工數(shù)最多不要超過7個。 分解要自然,概念上要合理、清晰。 只要不影響數(shù)據(jù)流圖的易理解性,可適當(dāng)?shù)囟喾纸獬蓭撞糠郑詼p少分解圖的層數(shù)。 一般在上層可分解得快些,而在中、下層應(yīng)分解得慢些。,例3.8 教材購銷系統(tǒng),功能如下: (1) 根據(jù)教學(xué)計(jì)劃,向?qū)W生供應(yīng)所需的教材。 系統(tǒng)接受學(xué)生的購書單,檢驗(yàn)購書單。若教材庫存量充足,進(jìn)行售書處理,即修改教材存量表,給學(xué)生開發(fā)票和領(lǐng)書單,學(xué)生憑單到書庫領(lǐng)書; 若教材庫存量不足,對脫銷的教材進(jìn)行缺書登記。 (2) 根據(jù)缺書登記表采購所缺的教材,通知學(xué)生補(bǔ)購。 按缺書登記表進(jìn)行匯總,并

27、按出版社統(tǒng)計(jì)缺書,將缺書單發(fā)給書庫保管員,以便采購。 待購教材到貨后,根據(jù)書庫保管員發(fā)來的進(jìn)書通知單進(jìn)行缺書銷售,即修改教材存量表,并從缺書登記表中取出缺書單進(jìn)行售書處理。,教材購銷系統(tǒng),購書,售書,教材購銷系統(tǒng),書庫保管員,學(xué) 生,購書單,領(lǐng)書單,無效書單,缺書單,進(jìn)書通知,圖3.14 頂層圖,(p52),1 銷售,2 采購,學(xué)生,書庫保管員,進(jìn)書通知,教材存量表,缺書登記表,購書單,領(lǐng)書單,無效書單,缺書單,進(jìn)書通知,圖3.15 第二層圖,1.1 審查 有效性,1.2 購書數(shù)量 審核,進(jìn)書通知,F1教材存量表,F2 缺書登記表,購書單,領(lǐng)書單,無效書單,F3 學(xué)生用書表,暫缺書單,圖3.1

28、6 第三層圖:圖1 銷售子系統(tǒng),1.6 產(chǎn)生補(bǔ) 售書單,1.5 登記缺書,1.4 登記售書和 打印領(lǐng)書單,F4 售書登記表,發(fā)票,有效購書單,補(bǔ)售書單,學(xué)生,采購,學(xué)生,圖3.17 第三層DFD采購子系統(tǒng),. 修改教材庫存和待購量,. 按書號 匯總?cè)睍?. 按出版社 統(tǒng)計(jì)缺書,缺書登記表,教材存量表,待購教材表,教材一覽表,進(jìn)書通知,進(jìn)書通知,缺書單,書庫保管員,銷售,3.2.2 編寫數(shù)據(jù)定義(數(shù)據(jù)字典)與加工說明 最底層的DFD圖包含了系統(tǒng)的全部數(shù)據(jù)和加工。在底層圖中,從數(shù)據(jù)的終點(diǎn)開始,沿著DFD圖一步步向數(shù)據(jù)源點(diǎn)回溯,較易看清數(shù)據(jù)流中每一個數(shù)據(jù)項(xiàng)的來龍去脈,也易于搞清每個數(shù)據(jù)文件的組成以及

29、各個加工的加工策略。,例如,圖3.16中,“領(lǐng)書單”是主要輸出數(shù)據(jù)流,按: 領(lǐng)書單 發(fā)票 有效購書單 購書單 的次序回溯,可以得到各數(shù)據(jù)流、數(shù)據(jù)文件以及加工說明的定義,如: 領(lǐng)書單 學(xué)號 + 姓名 + 書號+數(shù)量 發(fā)票學(xué)號+姓名+書號+單價(jià)+數(shù)量+總價(jià)+書費(fèi)合計(jì) 有效購書單學(xué)號 + 姓名 + 書號+數(shù)量 教材存量表書號+單價(jià)+數(shù)量,3.2.3 需求分析的復(fù)審(Requirement Review) 需求分析的文檔完成后,應(yīng)由用戶、系統(tǒng)分析員、設(shè)計(jì)人員等組成的復(fù)審小組進(jìn)行復(fù)審。復(fù)審的重點(diǎn)是文檔的完整性、易改性和易讀性,盡可能多地發(fā)現(xiàn)文檔中存在的矛盾、冗余和遺漏。 以下是幾個注意點(diǎn):,(1)注意D

30、FD圖的加工編號: 在數(shù)據(jù)流圖中,需按層給加工編號。編號表明該加工所處的層次及上下層的父子關(guān)系。 頂層圖中的加工不編號。 第二層圖中的加工編號為:, ,n。 第三層圖中的加工編號為: 1.1,1.2, ;2.1,2.2, ; ; n.1,n.2, 等,以此類推。,(2) 不論加工、數(shù)據(jù)文件和數(shù)據(jù)流,都應(yīng)該命名(文件與加工之間的數(shù)據(jù)流可以不命名)。 (3) 每個加工必須既有輸入流,又有輸出流。一個加工的輸出流不應(yīng)與輸入流同名。,(4)父圖和子圖的平衡: 父圖(中某個加工)和(相應(yīng)的)子圖的輸入流和輸出流(在數(shù)量和名稱上)應(yīng)分別保持一致,稱為父圖和子圖的平衡。 (若父圖的一個數(shù)據(jù)流對應(yīng)子圖中的幾個

31、數(shù)據(jù)流,而組成這些數(shù)據(jù)流的數(shù)據(jù)項(xiàng)全體正好是父圖中的這個數(shù)據(jù)流,也算是平衡的。),軟件工程,77,父圖與子圖的平衡,軟件工程,78,不平衡的父圖與子圖,1.3,1.3.1,1.3.2,1.3.3,發(fā)票,領(lǐng)書單,學(xué)生姓名,書費(fèi)總價(jià),領(lǐng)書單,(a) 父圖,父圖和子圖平衡的示意圖,(b) 子圖,(發(fā)票=學(xué)生姓名+書費(fèi)總價(jià)),(5)分解的速度宜均勻: 同一圖中的各個加工,分解的步子應(yīng)大致均勻,保持同步擴(kuò)展。每一加工每次可分為24個加工,最多不超過7個。,軟件工程,81,(6)未區(qū)分局部文件和局部外部項(xiàng),規(guī)則 除底層DFD需畫出全部文件外,各中間層的DFD僅顯示處于加工之間的接口文件,其余文件均不必畫出。

32、,軟件工程,82,(p52),1 銷售,2 采購,學(xué)生,書庫保管員,進(jìn)書通知,教材存量表,缺書登記表,購書單,領(lǐng)書單,無效書單,缺書單,進(jìn)書通知,圖3.15 第二層圖,銷售是處于采購之外的一個外部項(xiàng) 第三層DFD采購子系統(tǒng),. 修改教材庫存和待購量,. 按書號 匯總?cè)睍?. 按出版社 統(tǒng)計(jì)缺書,缺書登記表,教材存量表,待購教材表,教材一覽表,進(jìn)書通知,進(jìn)書通知,缺書單,書庫保管員,銷售,總結(jié): 畫DFD的4步驟 1、抽取數(shù)據(jù)流圖的四種成分:源點(diǎn)或終點(diǎn)、處理、數(shù)據(jù)存儲和數(shù)據(jù)流。 2、繪制基本系統(tǒng)模型頂層數(shù)據(jù)流圖,基本系統(tǒng)模型 3、細(xì)化基本系統(tǒng)模型,描繪系統(tǒng)的主要功能功能級數(shù)據(jù)流圖 在圖中給處理和

33、數(shù)據(jù)存儲都加了編號,這樣做的目的是便于引用和追蹤。 4、對功能級數(shù)據(jù)流圖中描繪的系統(tǒng)主要功能進(jìn)一步細(xì)化模塊級數(shù)據(jù)流圖,軟件工程,86,經(jīng)過初步的需求分析,得到系統(tǒng)功能要求: 1、監(jiān)視病員的病癥(血壓、體溫、脈搏等)。 2、定時更新病歷。 3、病員出現(xiàn)異常情況時報(bào)警。 4、隨機(jī)地產(chǎn)生某一病員的病情報(bào)告。,實(shí)例:醫(yī)院病房監(jiān)護(hù)系統(tǒng),監(jiān)視病情,更新病歷,系統(tǒng)功能要求: 1、監(jiān)視病員的病癥(血壓、體溫、脈搏等) 2、定時更新病歷 3、病員出現(xiàn)異常情況時報(bào)警。 4、隨機(jī)地產(chǎn)生某一病員的病情報(bào)告。,頂層:,例2 醫(yī)院病房監(jiān)護(hù)系統(tǒng),第一層:,醫(yī)院病房監(jiān)護(hù)系統(tǒng)頂層DFD圖,第三層:加工“中央監(jiān)視”分解,醫(yī)院病房

34、監(jiān)護(hù)系統(tǒng)三層DFD圖,醫(yī)院病房監(jiān)護(hù)系統(tǒng)分層DFD圖,(第3章 補(bǔ)充習(xí)題) 17.某銀行儲蓄系統(tǒng)功能是: 將儲戶填寫的存款單或取款單輸入系統(tǒng)。 如果是存款,系統(tǒng)將儲戶的存款信息(姓名、住址、存款日期、存款類型、存款金額、利率等)記錄在帳戶文件中,并打印存款清單給儲戶;如果是取款,系統(tǒng)先查詢帳戶文件,并打印取款清單給儲戶。 (1)畫出該問題的數(shù)據(jù)流圖的頂層圖 和 第二層圖。 (2)以公式的形式建立數(shù)據(jù)流條目“存款單”。,(第3章補(bǔ)充習(xí)題) 17.某銀行儲蓄系統(tǒng)功能是: 將儲戶填寫的存款單或取款單輸入系統(tǒng)。 如果是存款,系統(tǒng)將儲戶的存款信息(姓名、住址、存款日期、存款類型、存款金額、利率等)記錄在帳

35、戶文件中,并打印存款清單給儲戶;如果是取款,系統(tǒng)先查詢帳戶文件,并打印取款清單給儲戶。 (1)畫出該問題的數(shù)據(jù)流圖的頂層圖 和 第二層圖。 (2)以公式的形式建立數(shù)據(jù)流條目“存款單”。,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方法為主要代表。,在面向數(shù)據(jù)流的方法中,數(shù)據(jù)流是考慮一切問題的出發(fā)點(diǎn)。在分析階段,用數(shù)據(jù)流圖來表示

36、系統(tǒng)的邏輯模型;在設(shè)計(jì)階段,按照數(shù)據(jù)流圖的不同類型( 變換型或事務(wù)型 ) 將它們轉(zhuǎn)換為相應(yīng)的軟件結(jié)構(gòu)圖。, Jackson方法以數(shù)據(jù)結(jié)構(gòu)作為分析與設(shè)計(jì)的基礎(chǔ),認(rèn)為算法的結(jié)構(gòu)在很大程度上依賴于它要處理的問題的數(shù)據(jù)結(jié)構(gòu),因此可以由該問題的數(shù)據(jù)結(jié)構(gòu)導(dǎo)出它的程序結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法主要用于小型數(shù)據(jù)處理系統(tǒng)的開發(fā),一般情況下也適合于在詳細(xì)設(shè)計(jì)階段使用.,2. 從分析模型導(dǎo)出設(shè)計(jì)模型,數(shù)據(jù)字典,狀態(tài)遷移圖,過程設(shè)計(jì),接口設(shè)計(jì),體系結(jié)構(gòu)設(shè)計(jì)(SC),數(shù)據(jù)設(shè)計(jì),軟件工程,97,數(shù)據(jù)設(shè)計(jì)把分析階段創(chuàng)建的信息域模型轉(zhuǎn)變成實(shí)現(xiàn)軟件所需要的數(shù)據(jù)結(jié)構(gòu)。 體系結(jié)構(gòu)設(shè)計(jì)確定了程序的主要結(jié)構(gòu)元素(即程序構(gòu)件)之間的關(guān)

37、系。 接口設(shè)計(jì)的結(jié)果描述了軟件內(nèi)部、軟件與協(xié)作系統(tǒng)之間以及軟件與使用者之間的通信方式。 過程設(shè)計(jì)把程序體系結(jié)構(gòu)中的結(jié)構(gòu)元素,變換成對軟件構(gòu)件的過程性描述。 在軟件設(shè)計(jì)期間我們所做出的決策,將最終決定軟件開發(fā)能否成功,更重要的是,這些設(shè)計(jì)決策將決定軟件維護(hù)的難易程度。,3.3.2 SD的步驟:從DFD圖到SC圖1.數(shù)據(jù)流圖的類型: 有兩種形式,即 變換型( Transform Flow ) 和 事務(wù)型( Transaction Flow )。,(1)變換型結(jié)構(gòu) ( Transform Flow ) 變換型結(jié)構(gòu)由三部分組成:傳入路徑(Afferent Path)、變換中心(Transform Ce

38、nter)和傳出路徑(Efferent Path)。流經(jīng)這3個部分的數(shù)據(jù)流分別稱為:傳入流、變換流和傳出流。 變換中心的任務(wù)是:通過計(jì)算或處理,把系統(tǒng)的傳入流變換為傳出流。,傳入流,變換流,傳出流,變換型結(jié)構(gòu),組成 傳入路徑 變換中心 傳出路徑,數(shù)據(jù)流 傳入流 變換流 傳出流,變換中心:通過計(jì)算或處理,將系統(tǒng)的傳入流變?yōu)閭鞒隽?。又稱加工中心。,傳入流:離輸入始端最遠(yuǎn)但仍可被看作系統(tǒng)輸入的那些數(shù)據(jù)流。,傳出流:離輸出末端最遠(yuǎn)但仍可被看作系統(tǒng)輸出的那些數(shù)據(jù)流。,基本模型,數(shù)據(jù)流,A,B,C,a,P,R,W,Q,U,V,D,E,b,c,r,w,d,e,v,u,p,傳入部分,變換中心,傳出部分,圖3.

39、23 變換型結(jié)構(gòu)的模型,(2)事務(wù)型結(jié)構(gòu) ( Transaction Flow ) 事務(wù)型結(jié)構(gòu)由至少一條接收路徑(Receive Path)、一個事務(wù)中心(Transaction Center)和若干條動作路徑(Action Path)組成。當(dāng)外部信息沿著接收路徑進(jìn)入系統(tǒng)后,經(jīng)過事務(wù)中心處理,獲得某一個特定值,并據(jù)此啟動某一動作路徑的操作。示意圖如下:,事務(wù) 中心,接收路徑,動作路徑,圖3.21 事務(wù)型結(jié)構(gòu)的基本模型,軟件工程,103,事務(wù)型,組成 一條接受路徑 一個事務(wù)中心 若干條動作路徑,特征 具有在多種事務(wù)中執(zhí)行某類事務(wù)的能力。,基本模型,事務(wù)中心通常位于DFD圖中多條動作路徑的起點(diǎn);向

40、事務(wù)中心提供信息的路徑,是系統(tǒng)的接受路徑;動作路徑通常不止一條,且每條均具有自己的結(jié)構(gòu)特性(變換或事務(wù)型),2. SD方法的步驟,SD方法規(guī)定了下列4個步驟: (1)重審數(shù)據(jù)流圖,必要時可再次進(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圖。,軟件工程,105,兩種映射方法 變換映射 事務(wù)映射,變換型DFD圖,事務(wù)型DFD圖,初始SC圖,初始SC圖,變換映射,事

41、務(wù)映射,適用于將變換型結(jié)構(gòu)的DFD圖轉(zhuǎn)換為初始軟件結(jié)構(gòu)圖。步驟如下: 1、區(qū)分傳入、傳出和變換中心三個部分,在DFD圖上標(biāo)明它們的分界線 (1)變換中心的任務(wù):通過計(jì)算或處理,把系統(tǒng)的邏輯輸入變換(或加工)為系統(tǒng)的邏輯輸出。 (2)邏輯輸入(傳入數(shù)據(jù)項(xiàng)):離物理輸入端(輸入始端)最遠(yuǎn),但仍可以被看作系統(tǒng)輸入的那些數(shù)據(jù)流。,5.2.3 變換映射,(3)邏輯輸出(傳出數(shù)據(jù)項(xiàng)):離物理輸出端(輸出末端)最遠(yuǎn),但仍可以被看作系統(tǒng)輸出的那些數(shù)據(jù)流。 (4)數(shù)據(jù)在系統(tǒng)中流動時,不僅在通過變換中心時要被變換,在傳入路徑和傳出路徑上,其內(nèi)容和形式也可能發(fā)生變化。故變換中心又稱為“中心加工”,以區(qū)別于數(shù)據(jù)在傳入

42、傳出過程中的其它加工。 (5)劃分的結(jié)果可能會受經(jīng)驗(yàn)的影響,但必須從實(shí)際情況出發(fā),對DFD圖作認(rèn)真和細(xì)致的分析 (6)幾種可能遇到的情況及其處理方法,軟件工程,108,有些系統(tǒng)沒有中心加工,系統(tǒng)的邏輯輸入和邏輯輸出是完全相同的數(shù)據(jù)流,應(yīng)將DFD劃分為傳入和傳出兩部分,不要強(qiáng)求一律硬分成三個部分。 除傳入部分外,在變換中心甚至傳出部分也可能從系統(tǒng)外接受某些輸入數(shù)據(jù)流,稱為二次傳入數(shù)據(jù)。該數(shù)據(jù)不應(yīng)當(dāng)作傳入部分的一部分。 有些DFD圖可能失之太粗,缺少應(yīng)有的細(xì)節(jié),可考慮對自己用于分析的DFD進(jìn)行補(bǔ)充。,軟件工程,110,完成“第一級分解”,建立初始SC圖的框架。包括頂層控制模塊和第一層模塊。 兩種畫

43、法: a.頂層控制模塊+傳入、傳出和中心變換3個一層模塊 b.頂層控制模塊+按照傳入、傳出實(shí)際數(shù)據(jù)流數(shù)和中心變換模塊數(shù)確定數(shù)量的模塊,軟件工程,111,Mc,MT,MA,ME,c,e,w,u,c,e,w,u,Mc,P,c,R,ME1,ME2,MA1,MA2,Q,e,e,p,c,p,r,r,w,u,w,u,3.3.3 變換映射( Transform Mapping ),變換映射的3個主要步驟: (1) 劃分DFD圖的邊界:區(qū)分傳入部分、傳出部分和變換中心; (2) 建立初始SC圖的框架:進(jìn)行第一級分解,設(shè)計(jì)上層模塊頂層和第一層; (3) 分解SC圖的各個分支:進(jìn)行第二級分解,設(shè)計(jì)傳入分支、傳出分

44、支和變換中心的中、下層模塊。,A,B,C,a,P,R,W,Q,U,V,D,E,b,c,r,w,d,e,v,u,p,例 3.9 第一步: 劃分DFD圖的邊界:區(qū)分傳入部分、傳出部分和變換中心。,圖 3.23 劃分傳入部分、傳出部分和變換中心,傳入部分,變換中心,傳出部分,第二步:完成第一級分解,設(shè)計(jì)上層模塊頂層和第一層。 (1)頂層只包含一個用于控制的主模塊。 (2)第一層包括傳入、傳出和中心變換3個模塊,分別代表系統(tǒng)的3個相應(yīng)分支。,MT(變換模塊),MC(主模塊),MA(傳入模塊),ME(傳出模塊),c,e,c,e,u,w,u,w,頂層,第一層,圖3.24(a) 第一級分解后的SC圖,軟件工

45、程,116,第一級分解后的SC,第三步:完成第二級分解,細(xì)化SC圖的各個分支 (1)傳入分支的模塊分解: 模塊的調(diào)用順序與加工順序相反(逆向移動)。,MA (傳入模塊),C,c,e,圖3.25(a) 傳 入分支的分解,B,A,E,D,c,b,a,e,d,傳入分支的分解(2),(2)傳出分支的模塊分解: 模塊的調(diào)用順序與加工順序相同(正向移動)。,ME (傳出模塊),w,u,圖3.26 傳出分支的分解,W,V,U,w,v,u,傳出分支的分解,(3)變換中心分支的模塊分解: 模塊的調(diào)用順序按加工順序自左向右排列。,MT (變換模塊),w,u,圖3.27 變換中心分支的分解,Q,P,R,r,c,e,

46、e,p,r,c,p,w,u,MT,MC,MA,ME,c,e,c,e,u,w,u,w,頂層,第一層,圖3.28 從圖3.23導(dǎo)出的初始的變換型SC圖,C,E,Q,P,R,W,U,c,p,e,p,r,r,u,w,w,u,B,A,D,V,b,a,d,e,c,v,A,B,C,a,P,R,W,Q,U,V,D,E,b,c,r,w,d,e,v,u,p,傳入部分,變換中心,傳出部分,f1,f2,f3,f4,圖3.23(a) 改進(jìn)的變換型DFD圖,物理輸入,物理輸出,邏輯輸入,邏輯輸出,MT,MC,MA,ME,c,e,c,e,u,w,u,w,頂層,第一層,圖3.28(a) 從圖3.23(a)導(dǎo)出的 初始的變換型

47、SC圖,C,E,Q,P,R,W,U,c,p,e,p,r,r,u,w,w,u,B,A,D,V,b,a,d,e,c,v,Get f1,f1,Get f2,f2,Put f3,f3,f4,Put f4,3.3.4 事務(wù)映射(Transaction mapping ),事務(wù)映射的3個主要步驟: (1) 劃分DFD圖的邊界:區(qū)分事務(wù)中心、接收部分(接收路徑)和發(fā)送部分(發(fā)送路徑); (2)建立初始SC圖的框架,設(shè)計(jì)上層模塊頂層和第一層; (3) 分解和細(xì)化接收分支和發(fā)送分支,完成初始的SC圖。,事務(wù)分析的映射方法,A,T,B,a,C,D,a1,例 3.10 第一步: 劃分DFD圖的邊界:區(qū)分事務(wù)中心、接

48、收部分和發(fā)送部分。,圖 3.29 事務(wù)型DFD圖的劃分,a2,a3,接收部分 (輸入流),事務(wù)中心,動作路徑部分 (活動流),第二步: 設(shè)計(jì)上層模塊頂層和第一層。 (1)頂層只包含一個用于控制的主模塊。 (2)第一層包括接收和發(fā)送2個模塊,分別代表系統(tǒng)的2個分支。,MC(主模塊),A (接收模塊),T (發(fā)送模塊),a,a,頂層,第一層,圖3.30 事務(wù)型SC圖的上層結(jié)構(gòu),第三步:分解和細(xì)化接收分支和發(fā)送分支。 (1)接收分支負(fù)責(zé)接收數(shù)據(jù),通常只有一個接收模塊。 (2)發(fā)送分支的發(fā)送模塊是一個調(diào)度模塊,它控制下層的所有動作模塊。,MC(主模塊),A (接收模塊),T (發(fā)送模塊),a,a,頂層

49、,第一層,從圖3.29導(dǎo)出的初始的事務(wù)型SC圖,B,C,D,a1,a2,a3,軟件工程,130,1、在DFD圖上確定事務(wù)中心、接受部分(包括接受路徑)和發(fā)送部分(包含全部動作路徑) 事務(wù)中心通常位于DFD圖中多條動作路徑的起點(diǎn);向事務(wù)中心提供信息的路徑,是系統(tǒng)的接受路徑;動作路徑通常不止一條,切每條均具有自己的結(jié)構(gòu)特性(變換或事務(wù)型)。,總結(jié):事務(wù)分析步驟,軟件工程,131,軟件工程,132,2、畫出SC圖框架,把DFD圖的三個部分分別映射為事務(wù)控制模塊、接受模塊和動作發(fā)送模塊,事務(wù)控制,接收,發(fā)送,事務(wù)控制 事務(wù) 分析發(fā)送,軟件工程,133,接受分支一般具有變換特性,可對其進(jìn)行變換分析; 動

50、作分支典型的可映射為4層:P-處理層、T-事務(wù)層、A-操作層、D-細(xì)節(jié)層。A、D??杀籔、T共享。,3、分解和細(xì)化接受和發(fā)送分支,完成初始的SC圖,用戶命令交互子系統(tǒng),讀用戶 命令,密碼命令,密碼,顯示信息,系統(tǒng)參數(shù)數(shù)據(jù),用戶 命令,讀系統(tǒng) 數(shù)據(jù),配置信息,顯示信息 和狀態(tài),命令 分析處理,讀 密碼,命令類型,開/關(guān) 命令,建立配 置文件,原配置 數(shù)據(jù),激活/非活動系統(tǒng),與文件中 密碼比較,格式化 配置數(shù)據(jù),配置命令,檢驗(yàn)信 息過程,重試信息,四位數(shù)字,檢驗(yàn)信息,檢驗(yàn)信息,A/D信息,格式化配置 數(shù)據(jù),格式化 配置數(shù)據(jù),用戶命令交互子系統(tǒng)的SC,用戶執(zhí)行模塊,讀用戶命令,命令處理,軟件工程,1

51、36,混合結(jié)構(gòu)一例,總體為變換型結(jié)構(gòu) 傳入路徑為事務(wù)型結(jié)構(gòu),軟件工程,137,軟件工程,138,面向數(shù)據(jù)流方法的設(shè)計(jì)過程,3.3.5 優(yōu)化初始SC圖的指導(dǎo)規(guī)則,1.對模塊劃分的原則 模塊的行數(shù)應(yīng)控制在10100行的范圍。,2. 高扇入 / 低扇出的原則 扇入(fan-in):一個模塊直接上級模塊的個數(shù)。扇入高則上級模塊多,能夠增加模塊利用率。 扇出(fan-out):一個模塊直接下級模塊的個數(shù)。扇出低則下級模塊少,可以減少模塊調(diào)用和控制的復(fù)雜度。通常扇出數(shù)以34為宜,不要超過7個。,M,M,(a)模塊M的扇入,(b)模塊M的扇出,圖3.32 模塊的扇入和扇出,如果一個模塊的扇出數(shù)過大(煎餅形結(jié)

52、構(gòu)),就意味著該模塊過分復(fù)雜,需要協(xié)調(diào)和控制過多的下屬模塊,應(yīng)當(dāng)適當(dāng)增加中間層使扇出減少(塔形結(jié)構(gòu))。,(a)煎餅形結(jié)構(gòu),(b)塔形結(jié)構(gòu),圖3.33 增加中間層可減少扇出,M,A,圖3.34 甕形結(jié)構(gòu),總的考慮是:頂層扇出數(shù)低一些,中間層扇出數(shù)高一些,底層扇入數(shù)高一些,形成甕形結(jié)構(gòu)。,B,J,K,N,L,3.3.6 教材購銷系統(tǒng)的總體結(jié)構(gòu),例3.11 從高校教材銷售子系統(tǒng)的DFD圖導(dǎo)出SC圖。 第一步:細(xì)化并修改DFD圖。 (1) 在圖3.15(p52)中,加工1(銷售)和加工2(采購)之間的數(shù)據(jù)流“進(jìn)書通知”替換為:增加一個“進(jìn)書登記表”文件,供銷售子系統(tǒng)和采購子系統(tǒng)之間交換信息。 (2)

53、把圖3.16中加工1.4(登記售書和打印領(lǐng)書單)分解為兩個加工(加工1.4登記售書、加工1.7打印領(lǐng)書單)。 (3)把圖3.16中加工1.6的輸入流“進(jìn)書通知”改為從數(shù)據(jù)文件“進(jìn)書登記表”讀入的數(shù)據(jù)流。,1 銷售,2 采購,學(xué)生,書庫保管員,進(jìn)書登記表,教材存量表,缺書登記表,購書單,領(lǐng)書單,無效書單,發(fā)票,缺書單,進(jìn)書通知,修改后的第二層DFD圖,1.1 審查 有效性,1.2 購書數(shù)量 審核,進(jìn)書登記表,F1教材存量表,F2 缺書登記表,購書單,領(lǐng)書單,無效書單,F3 學(xué)生用書表,暫缺書單,第三層圖:圖1 修改后的銷售子系統(tǒng),1.6 產(chǎn)生補(bǔ) 售書單,1.5 登記缺書,1.7 打印領(lǐng)書單,F4

54、 售書登記表,發(fā)票,有效購書單,補(bǔ)售書單,1.4 登記售書,第二步:鑒別DFD圖的類型。 1. 分析該系統(tǒng)的第二層圖,它有2個功能:銷售和采購,這2個處理可并行工作,因此從整體上可按事務(wù)型數(shù)據(jù)流圖來設(shè)計(jì)。 2. 分析該系統(tǒng)的第三層圖的銷售子系統(tǒng),初看起來它具有變換型結(jié)構(gòu)。 它的傳入部分含有2個加工:1個(加工1.1)用于初次出售,1個(加工1.6)用于補(bǔ)售。一次售書只能執(zhí)行一種功能,要么是初售,要么是補(bǔ)售。因此,圖中加工1.2的左方應(yīng)添加一個 號,表示“選擇”。由此可見,銷售子系統(tǒng)實(shí)際上屬于事務(wù)型結(jié)構(gòu)。 2. 類似地,分析采購子系統(tǒng),它也是具有2個動作分支的事務(wù)型結(jié)構(gòu)。一個動作分支是“統(tǒng)計(jì)缺書

55、”,另一個動作分支是“登記進(jìn)書”。,修改后的采購子系統(tǒng)DFD圖,2.3 修改教材庫和待購量,2.1 按書號匯總?cè)睍?2.2 按出版社統(tǒng)計(jì)缺書,進(jìn)書通知,缺書單,統(tǒng)計(jì)缺書,登記進(jìn)書,第三步:畫出SC圖的上層框架。,教材購銷系統(tǒng),讀用戶選擇,銷售,采購,初售,補(bǔ)售,統(tǒng)計(jì)缺書,登記進(jìn)書,圖3.35 教材購銷系統(tǒng)SC圖的上層框架,初售命令,補(bǔ)售命令,統(tǒng)計(jì)命令,登記命令,用戶命令,銷售命令,采購命令,銷售,獲得有效購書單,初售,補(bǔ)售,銷售子系統(tǒng)初始SC圖,開發(fā)票,打印發(fā)票,開領(lǐng)書單,獲得補(bǔ) 售書單,審查 有效性,登記售書,登記缺書,審查 有效性,審查 有效性,讀購書單,采購,技術(shù)號 匯總,統(tǒng)計(jì)缺書,登記

56、進(jìn)書,采購子系統(tǒng)初始SC圖,按出版社 匯總,打印 缺書單,修改教材 存量,修改教材 待購量,統(tǒng)計(jì)命令,登記命令,缺書 登記表,暫缺書單,待購 教材表,進(jìn)書通知,第四步:分解初售、補(bǔ)售、統(tǒng)計(jì)缺書和登記進(jìn)書4個動作分支,補(bǔ)充動作層與細(xì)節(jié)層。銷售子系統(tǒng)和采購子系統(tǒng)的初始SC圖見圖3.36和圖3.37。 第五步:改進(jìn)SC圖,獲得最終的SC圖。,3.4.1 目的與任務(wù) 1. 過程設(shè)計(jì)的目的: 為SC圖中的每一個模塊確定采用的算法和模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu),用選定的表達(dá)工具給出清晰的描述。 2. 過程設(shè)計(jì)的主要任務(wù): (1)為每個模塊確定采用的算法; (2)確定每個模塊使用的數(shù)據(jù)結(jié)構(gòu); (3)確定模塊接口的細(xì)節(jié)(模塊接口通

溫馨提示

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

最新文檔

評論

0/150

提交評論