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