06章 面向數(shù)據(jù)結構的分析與設計_第1頁
06章 面向數(shù)據(jù)結構的分析與設計_第2頁
06章 面向數(shù)據(jù)結構的分析與設計_第3頁
06章 面向數(shù)據(jù)結構的分析與設計_第4頁
06章 面向數(shù)據(jù)結構的分析與設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 2 典型方法有典型方法有Jackson方法和方法和Warnier方法方法 (1)Jackson方法方法 1975年年,M.A. Jackson-提出了一類軟件開發(fā)方法。這一方法從目標系統(tǒng)的提出了一類軟件開發(fā)方法。這一方法從目標系統(tǒng)的 輸入、輸出數(shù)據(jù)結構入手,導出程序框架結構,再補充其它細節(jié),就可得輸入、輸出數(shù)據(jù)結構入手,導出程序框架結構,再補充其它細節(jié),就可得 到完整的程序結構圖。這一方法對輸入、輸出數(shù)據(jù)結構明確的中小型系統(tǒng)到完整的程序結構圖。這一方法對輸入、輸出數(shù)據(jù)結構明確的中小型系統(tǒng) 特別有效,如商業(yè)應用中的文件表格處理。該方法也可與其它方法結合,特別有效,如商業(yè)應用中的文件表格處理。

2、該方法也可與其它方法結合, 用于模塊的詳細設計。用于模塊的詳細設計。Jackson方法有時也稱為面向數(shù)據(jù)結構的軟件設計方法有時也稱為面向數(shù)據(jù)結構的軟件設計 方法。方法。 (2)Warnier方法方法 1974年,年,J.D.Warnier提出的軟件開發(fā)方法與提出的軟件開發(fā)方法與Jackson方法類似。差別有三方法類似。差別有三 點:一是它們使用的圖形工具不同,分別使用點:一是它們使用的圖形工具不同,分別使用Warnier圖和圖和Jackson圖;圖; 另一個差別是使用的偽碼不同;最主要的差別是在構造程序框架時,另一個差別是使用的偽碼不同;最主要的差別是在構造程序框架時, Warnier方法僅考

3、慮輸入數(shù)據(jù)結構,而方法僅考慮輸入數(shù)據(jù)結構,而Jackson方法不僅考慮輸入數(shù)據(jù)結方法不僅考慮輸入數(shù)據(jù)結 構,而且還考慮輸出數(shù)據(jù)結構。構,而且還考慮輸出數(shù)據(jù)結構。 3 主要特點:主要特點: 以信息對象及其操作為核心進行需求分析以信息對象及其操作為核心進行需求分析 認為復合信息對象具有層次結構,并且可認為復合信息對象具有層次結構,并且可 按順序、選擇、重復三種結構分解為成員按順序、選擇、重復三種結構分解為成員 信息對象信息對象 提供由層次信息結構映射為程序結構的機提供由層次信息結構映射為程序結構的機 制,從而為軟件設計奠定良好的基礎制,從而為軟件設計奠定良好的基礎 4 JSP(Jackson st

4、ructured Programming) Jackson結構程序設計方法結構程序設計方法 JSD (Jackson System Development) Jackson系統(tǒng)開發(fā)方法系統(tǒng)開發(fā)方法。 5 JSD方法簡介方法簡介 小結小結 6 總結了總結了COBOL事務處理程序中的開發(fā)方事務處理程序中的開發(fā)方 法而發(fā)展起來的,特點:法而發(fā)展起來的,特點: 重點不是自頂向下逐步求精,而是在數(shù)據(jù)結構基礎 上進行構造 根據(jù)輸入/輸出的數(shù)據(jù)結構建立程序結構 目標:獲得簡單清晰的設計方案目標:獲得簡單清晰的設計方案 設計原則:使程序結構與問題結構設計原則:使程序結構與問題結構(數(shù)據(jù)數(shù)據(jù) 結構結構)相對應相

5、對應 7 一般的數(shù)據(jù)處理系統(tǒng)處理的是具有層次結一般的數(shù)據(jù)處理系統(tǒng)處理的是具有層次結 構的數(shù)據(jù),因而其問題結構可以用它所處構的數(shù)據(jù),因而其問題結構可以用它所處 理的數(shù)據(jù)結構來表示理的數(shù)據(jù)結構來表示 8 JSP方法采用方法采用Jackson圖來表示數(shù)據(jù)結構和程序結圖來表示數(shù)據(jù)結構和程序結 構構 結構圖是一種從左到右閱讀的樹狀層次結構圖結構圖是一種從左到右閱讀的樹狀層次結構圖 數(shù)據(jù)結構圖中方框表示數(shù)據(jù),程序結構圖中方框就表示模數(shù)據(jù)結構圖中方框表示數(shù)據(jù),程序結構圖中方框就表示模 塊塊(過程或函數(shù)過程或函數(shù)) 底部的葉子節(jié)點稱為基本元素底部的葉子節(jié)點稱為基本元素 在底部枝干以上的節(jié)點稱為結構元素在底部枝

6、干以上的節(jié)點稱為結構元素 三種元素類型:順序元素、選擇元素、重復元素三種元素類型:順序元素、選擇元素、重復元素 9 一個順序元素由一個或多個從左到右的一個順序元素由一個或多個從左到右的 元素組成元素組成 每個組成的元素只出現(xiàn)一次每個組成的元素只出現(xiàn)一次 圖圖 順序元素順序元素 10 選擇是選擇是“If Then Else”或或“Case”的結構,而且必須有的結構,而且必須有 兩個或多個元素兩個或多個元素 使用選擇元素時根據(jù)指定的條件從這些子元素中選擇一使用選擇元素時根據(jù)指定的條件從這些子元素中選擇一 個子元素個子元素 供選擇的子元素用右上角標以小圓的矩形表示供選擇的子元素用右上角標以小圓的矩形

7、表示 示例:左圖中A、B、C是D的可選項,而S是選擇條件 如果需要一個如果需要一個“If A=B Then X Else do nothing”那么那么 需要加入一個空元素需要加入一個空元素 示例:右圖 中空元素用一個標有連字符的矩形表示 圖a 選擇元素圖b 空元素 11 重復元素僅由一個子元素構成,表示重復元素由子重復元素僅由一個子元素構成,表示重復元素由子 元素重復元素重復0次或多次組成次或多次組成 子元素用右上角標以星號的矩形表示子元素用右上角標以星號的矩形表示 下圖表示元素下圖表示元素D由元素由元素A重復重復0次或多次組成,其中次或多次組成,其中 I是重復條件是重復條件 圖圖 重復元素

8、重復元素 12 結構正文完全與結構圖相對應結構正文完全與結構圖相對應 分為:順序結構正文、選擇結構正文、重復結分為:順序結構正文、選擇結構正文、重復結 構正文構正文 順序結構正文順序結構正文 D Seq 順序順序 A; 元素元素D是由一個元素是由一個元素A B; 跟隨一個元素跟隨一個元素B C; 跟隨一個元素跟隨一個元素C組成組成 D END 元素元素D是元素是元素A、元素、元素B、元素、元素C的序列的序列 13 選擇結構正文選擇結構正文 D Select cond1 選擇選擇 A 元素元素D或是由一個元素或是由一個元素A Or cond2 B 或是由一個元素或是由一個元素B Or cond3

9、 C 或是由一個元素或是由一個元素C組成組成 D END cond1、cond2、cond3分別是選擇分別是選擇A,B,C的條件的條件 重復結構正文重復結構正文 D Iter until cond 重復重復 A; 元素元素D是由是由1個或多個元素個或多個元素A組成。組成。 D END 元素元素D 是元素是元素A的重復的重復 或或 D Iter while cond A; 元素元素D是由是由0至多個元素至多個元素A組成組成 D END cond為循環(huán)條件為循環(huán)條件 14 15 例例6.2:一個正文文件由若干個記錄組成,:一個正文文件由若干個記錄組成, 每個記錄是一個字符串,要求統(tǒng)計每個記每個記錄

10、是一個字符串,要求統(tǒng)計每個記 錄中空格個數(shù),以及文件中空格的總數(shù)。錄中空格個數(shù),以及文件中空格的總數(shù)。 要求輸出的格式是:每復制一行輸入字符要求輸出的格式是:每復制一行輸入字符 串后,另起一行輸出該字符串中的空格數(shù),串后,另起一行輸出該字符串中的空格數(shù), 最后輸出文件空格的總數(shù)最后輸出文件空格的總數(shù) 16 第第1步步.分析并確定輸入和輸出數(shù)據(jù)結構的邏輯結分析并確定輸入和輸出數(shù)據(jù)結構的邏輯結 構,并用構,并用Jackson圖畫出圖畫出 17 第第2步步.找出輸入數(shù)據(jù)結構與輸出數(shù)據(jù)結構中有對應找出輸入數(shù)據(jù)結構與輸出數(shù)據(jù)結構中有對應 關系的數(shù)據(jù)元素關系的數(shù)據(jù)元素 有對應關系是指有直接因果關系,即在程

11、序中可以同時處理的數(shù) 據(jù)元素 對于表示“重復”的數(shù)據(jù)元素,只有其重復次數(shù)和次序都相同時 才有對應關系 輸入/輸出數(shù)據(jù)結構最高層次的兩個數(shù)據(jù)元素總是有對應關系的 18 第第3步步.從描述數(shù)據(jù)結構的從描述數(shù)據(jù)結構的Jackson圖導出描述程圖導出描述程 序結構的序結構的Jackson圖,導出規(guī)則:圖,導出規(guī)則: 有對應關系的數(shù)據(jù)元素,按照它們在數(shù)據(jù)結構圖中的層次在程 序結構圖的相應層次上畫一個處理框(如果它們在輸入和輸出圖 中的層次不同,則程序結構圖中處理框層次與較低的那個對應 為輸入數(shù)據(jù)結構圖中剩余的每個數(shù)據(jù)元素,在程序結構圖的相 應層次上畫一個處理框, 在模塊名稱上增加“分析”或“處理” 或取

12、一個具有實際含義的名稱 為輸出數(shù)據(jù)結構圖中剩余的每個數(shù)據(jù)元素,在程序結構圖的相 應層次上畫上一個處理框 19 程序結構圖導出結果程序結構圖導出結果 20 第第4步步.列出所有操作和條件,并將它們分配列出所有操作和條件,并將它們分配 到程序結構圖的適當位置到程序結構圖的適當位置 首先從輸出操作開始,再回到輸入操作 加入必須的與條件有關的操作 最后把每個操作都分配到程序結構中去 21 設變量設變量sum存放一行字符串中的空格數(shù);存放一行字符串中的空格數(shù);totalsum存放空格總數(shù);存放空格總數(shù);pointer用來指示當用來指示當 前分析的字符在字符串中的位置,可列出其所有操作,并對其編號如下:前

13、分析的字符在字符串中的位置,可列出其所有操作,并對其編號如下: 停止 打開文件 關閉文件 打印字符串 打印空格數(shù) 打印空格總數(shù) sum:=sum+1 totalsum:=totalsum+1 讀入字符串 sum:=0 totalsum:=0 pointer:=1 pointer:=pointer+1 條件列表如下:條件列表如下: I(1):文件結束:文件結束 I(2):字符串結束:字符串結束 S(3):字符是空格:字符是空格 將條件與相應的循環(huán)條件關聯(lián),并將將條件與相應的循環(huán)條件關聯(lián),并將113操作按次序與相應的模塊進行關聯(lián),按從左操作按次序與相應的模塊進行關聯(lián),按從左 至右決定先后順序,關聯(lián)

14、后的程序結構圖至右決定先后順序,關聯(lián)后的程序結構圖 22 第第5步步.把帶有操把帶有操 作的程序結構作的程序結構 圖轉換成結構圖轉換成結構 正文,同時加正文,同時加 入選擇及迭代入選擇及迭代 條件條件 統(tǒng)計空格統(tǒng)計空格 seq 打開文件打開文件 讀入字符串讀入字符串 totalsum := 0 程序體程序體 iter until 文件結束文件結束 處理字符串處理字符串 seq 印字符串印字符串 seq 打印字符串打印字符串 印字符串印字符串 end sum := 0 pointer := 1 分析字符串分析字符串 iter until 字符串結束字符串結束 分析字符分析字符 select 字符

15、是空格字符是空格 處理空格處理空格 seq sum := sum + 1 pointer := pointer + 1 處理空格處理空格 end 分析字符分析字符 or 字符不是空格字符不是空格 處理非空格處理非空格 seq pointer := pointer + 1 處理非空格處理非空格 end 分析字符分析字符 end 分析字符串分析字符串 end 印空格數(shù)印空格數(shù) seq 打印空格數(shù)打印空格數(shù) 印空格數(shù)印空格數(shù) end totalsum := totalsum + 1 讀入字符串讀入字符串 處理字符串處理字符串 end 程序體程序體 end 印空格總數(shù)印空格總數(shù) seq 打印空格總數(shù)打

16、印空格總數(shù) 印空格總數(shù)印空格總數(shù) end 關閉文件關閉文件 停止停止 統(tǒng)計空格統(tǒng)計空格 end 23 簡單、易學、形象直觀、可讀性好簡單、易學、形象直觀、可讀性好 便于表示層次結構便于表示層次結構 適用于小型數(shù)據(jù)處理系統(tǒng)適用于小型數(shù)據(jù)處理系統(tǒng) 24 JSP方法方法 小結小結 25 JSP廣泛使用十多年后,廣泛使用十多年后,Jackson把它進行了擴充,不把它進行了擴充,不 再局限于中小規(guī)模范圍的問題及順序范圍,新的開發(fā)方再局限于中小規(guī)模范圍的問題及順序范圍,新的開發(fā)方 法稱為法稱為JSD JSD覆蓋了整個系統(tǒng)的分析到實現(xiàn)覆蓋了整個系統(tǒng)的分析到實現(xiàn),是一種面向軟件開是一種面向軟件開 發(fā)全過程的系

17、統(tǒng)化開發(fā)方法。發(fā)全過程的系統(tǒng)化開發(fā)方法。 JSD的本質:先建立一個現(xiàn)實模型,然后加入功能性處的本質:先建立一個現(xiàn)實模型,然后加入功能性處 理,最后階段理,最后階段,邏輯系統(tǒng)才轉換為實際設計邏輯系統(tǒng)才轉換為實際設計 它從客觀現(xiàn)實中提取各種客觀實體,并確定各實體的活它從客觀現(xiàn)實中提取各種客觀實體,并確定各實體的活 動以及實體與各種活動之間聯(lián)系,生成反映客觀問題的動以及實體與各種活動之間聯(lián)系,生成反映客觀問題的 進程模型。再在進程模型的基礎上,增加系統(tǒng)功能,確進程模型。再在進程模型的基礎上,增加系統(tǒng)功能,確 定時序關系,最后實現(xiàn)所設計的系統(tǒng)。定時序關系,最后實現(xiàn)所設計的系統(tǒng)。 26 標識實體與行為:

18、建立現(xiàn)實的模型,列出與系統(tǒng)有關的實標識實體與行為:建立現(xiàn)實的模型,列出與系統(tǒng)有關的實 體表及活動表體表及活動表 生成實體結構圖:分析實體表中實體之間的關系,形成實生成實體結構圖:分析實體表中實體之間的關系,形成實 體結構圖體結構圖 創(chuàng)造軟件系統(tǒng)模型:根據(jù)現(xiàn)實世界,對實體與行為的組合創(chuàng)造軟件系統(tǒng)模型:根據(jù)現(xiàn)實世界,對實體與行為的組合 建立進程模型建立進程模型 擴充功能性過程:說明系統(tǒng)輸出的功能,必要時在規(guī)格說擴充功能性過程:說明系統(tǒng)輸出的功能,必要時在規(guī)格說 明中加入附加的處理明中加入附加的處理 施加時間控制:開發(fā)者考慮進程調度的某些特征,這些特施加時間控制:開發(fā)者考慮進程調度的某些特征,這些特 征可能影響系統(tǒng)功能所輸出的結果的正確性及時間關系征可能影響系統(tǒng)功能所輸出的結果的正確性及時間關系 實現(xiàn):開發(fā)者考慮運行系統(tǒng)的軟硬件方面的問題,采用變實現(xiàn):開發(fā)者考慮運行系統(tǒng)的軟硬件方面的問題,采用變 換技術、調度技術、數(shù)據(jù)庫定義技術等,以使系統(tǒng)能有效換技術、調度技術、數(shù)據(jù)庫定義技術等,以使系統(tǒng)能有效 地運行地運行 27 JSP方法方法 JSD方法簡介方法簡介 28 面向數(shù)據(jù)結構的分析和設計方法是以數(shù)據(jù)結構為中心,面向數(shù)據(jù)結構的分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論