面向數據結構方法是一類側重從數據結構方面去分析和表達軟體需求,進行軟體設計的開發方法。該方法從數據結構入手,分析信息結構,並用數據結構圖(特指該類方法所用的圖形描述工具,例如Jackson 結構圖和Warnier圖)來表示,再在此基礎上進行需求分析,進而導出軟體的結構。
基本介紹
- 中文名:面向數據結構方法
- 外文名:data structure-oriented method
- 學科:軟體設計
- 基礎:數據結構
- 目的:導出軟體的結構
- 過程:分析和設計
簡介,發展和特點,結構圖,
簡介
套用領域的信息域一般包括信息流、信息內容和信息結構等部分。在軟體需求分析過程中, 根據對信息域分析的側重點不同就形成了不同的開發方法。面向數據流的開發方法以分析信息流為主,用數據流圖來表示信息流;而面向數據結構的開發方法則以分析信息結構為主, 用數據結構圖來表示信息結構,並以此為基礎進行需求分析,進而導出軟體的結構。
面向數據結構的開發方法包括分析和設計兩個過程,數據結構在整個過程中起著重要作用。由於很多套用領域的信息都有層次分明的信息結構,系統的輸入數據、內部儲存數據及輸出數據都存在著層次性,並且是相對獨立和可區分的,因此,在需求分析過程中可以利用數據結構來分析和表示問題的信息域。在軟體設計過程中,不同性質的數據結構往往可以用具有相應的控制結構的程式進行處理。重複性的數據總是用具有循環控制結構的軟體來處理,而選擇性的數據則由具有條件處理部分的軟體來處理, 業已證明 ,僅用三種結構成分即順序、 選擇和循環就可以表示所有具有單出口與單入口的程式,因此,可以將具有層次性的數據結構映射到結構化的程式上。
發展和特點
20世紀70 年代初,在關於數據結構基礎的論述中已出現了面向數據結構的設計思想。1974年J .D .Warnier發表《程式的邏輯構造》一文,提出了一種表示數據層次結構的圖形工具,即Warnier 圖。他利用順序、選擇、重複三種結構成分來表示數據的層次結構,進而導出程式的結構。1975 年 Michael Jackson 在《程式設計的原則》一文中將輸入數據與輸出數據的結構在相應層次上對應 ,並系統地提出了將數據結構映射到程式結構的實用技術。從此 , 面向數據結構的開發方法便發展起來。早期的面向數據結構的開發方法主要是針對程式的過程設計而言的,80 年代初逐步發展為較完善的系統化軟體開發方法。Warnier 將程式的邏輯構造(LCP ) 法進一步完 善,提出了系統的邏輯構造(LCS)法,用邏輯和形式化方法嚴格地表示了數據結構,這樣便有利於自動生成偽代碼,進行系統的校驗及最佳化。同時, Jackson也將結構化程式設計(JSP)擴充為 Jackson 系統開發(JSD)方法。1981 年和 1983年Ken Orr對 Warnier方法進行了擴充, 分別發表了《結構需求定義與《數據結構化程式設計》兩文,形成了一種易於理解,並且文檔比較完善的系統化開發方法 ,這就是數據結構化系統開發(DSSD)方法。這一方法涉及到了信息域的所有屬性:信息流、信息內容和信息結構。這種方法首先研究套用環境,引入了數據流中的分析方法,以此強化對系統功能特性的分析。同時,也採用了公式化和綜合性的設計方法。雖然各種面向數據結構的開發方法都有自己獨特的表示方式及開發過程,但他們都具有一些共同特點:①這類方法開始於需求分析,並將分析結果作為設計基礎,但各種方法並不明顯地區分軟體的結構設計與過程設計,它們都較早地進入軟體的過程表示;②各種方法都為分析人員提供手段來標識關鍵信息對象(也稱為實體或項)和操作 (也稱為動作或過程);③各種方法都假定信息結構具有層次性;④基本上都採用順序、選擇和重複構造成分表示數據結構;⑤各種方法都提供了一組將層次化的數據結構映射到程式結構的步驟。面向數據結構的開發方法適用於具有良好定義的,層次分明的信息結構的領域。典型的例子有:商業信息系統開發,其輸入和輸出有明顯的數據結構 ,並且共同使用同一層次的資料庫;作業系統開發, 其數據結構由許多有確定結構的表格、 檔案等構成;CAD/ CAM 系統的開發,這方面需要複雜的數據結構用於信息的儲存、變換和處理。此外,在工程領域、 計算機輔助教育、 組合問題求解及其它許多領域都可使用面向數據結構的開發方法。
結構圖
在許多套用領域中,信息都有清楚的層次結構。輸入數據、內部存儲信息以及輸出數據都有一定的結構關係,這些數據結構既影響程式的結構,又影響程式的處理過程。面向數據結構的設計方法就是利用這些結構作為開發軟體的基礎,從數據的輸入結構、輸出結構導出問題解的程式結構過程。JDM是Jackson1975年提出的一種而向數據結構的設計方法,在許多國家較為流行,本文試對DJM方法進行分析,並針對其不足給予改進。Jackson結構圖解雖然程式中使用的數據結構種類繁多,但是它們的數據元素彼此間的邏輯關係卻只有順序、選擇和循環3類。
順序結構
順序結構的數據由1個或多個數據元素組成,每個元素按確定次序出現1次,圖1即是表示順序結構的Jackson結構圖解。其中A是順序結構,由元件B,C,D3部分順序組成,執行的次序是B,C,D。每個元件只執行1次。
選擇結構
選擇結構包含2個或更多個元件,每進入1次選擇結構,只執行其中1個元件,圖2是表示2箇中選1個結構的Jackson結構圖解。
循環結構
循環結構含有1個循環體,每進入循環結構1次,其循環體將執行多次,但也可能執行0次。圖3是循環結構的Jackson結構圖解,其中D是循環結構,C。是循環體,表示每執行1次D,將執行0次或n次C。
Jackson結構圖解有許多優點。但也存在下述缺點:當表示循環和選擇時。循環結束條件及選擇條件均不能列出,這就影響了圖解的表達能力,不易把圖解直接翻譯成程式。此外,框間連線為斜線,不易在行式印表機上輸出。