軟件工程-第8章第6節(jié)_第1頁
軟件工程-第8章第6節(jié)_第2頁
軟件工程-第8章第6節(jié)_第3頁
軟件工程-第8章第6節(jié)_第4頁
軟件工程-第8章第6節(jié)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

8.6結構化設計

結構化設計(有時簡稱SD)是以結構化分析產生的數(shù)據(jù)流圖為基礎,按一定的步驟映射成軟件結構。該方法由美國IBM公司L.Constantine和E.Yourdon等人于1974年提出,與結構化分析銜接,構成了完整的結構化分析與設計技術,是目前使用最廣泛的軟件設計方法之一。8.6.1數(shù)據(jù)流圖的類型

要把數(shù)據(jù)流圖(DFD)轉換成軟件結構,必須研究DFD的類型。各種軟件系統(tǒng),不論DFD如何龐大與復雜,一般可分為變換型數(shù)據(jù)流圖和事務型數(shù)據(jù)流圖兩類。8.6.1數(shù)據(jù)流圖的類型1.變換型數(shù)據(jù)流圖變換型的DFD是由輸入、變換(或稱處理)和輸出三部分組成的,如圖8.12所示,虛線為標出的流界。8.6.1數(shù)據(jù)流圖的類型

變換型數(shù)據(jù)處理的工作過程一般分為取得數(shù)據(jù)、變換數(shù)據(jù)和給出數(shù)據(jù)。

這三步體現(xiàn)了變換型DFD的基本思想。變換是系統(tǒng)的主加工,變換輸入端的數(shù)據(jù)流為系統(tǒng)的邏輯輸入,輸出端為邏輯輸出。而直接從外部設備輸入的數(shù)據(jù)稱為物理輸入,反之稱為物理輸出。外部的輸入數(shù)據(jù)一般要經過輸入正確性和合理性檢查、編輯及格式轉換等預處理,這部分工作都由邏輯輸入部分完成,它將外部形式的數(shù)據(jù)變成內部形式,送給主加工。同理,邏輯輸出部分把主加工產生的數(shù)據(jù)的內部形式轉換成外部形式然后物理輸出。因此變換型的DFD是一個順序結構。8.6.1數(shù)據(jù)流圖的類型2.事務型的數(shù)據(jù)流圖若某個加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多平行的加工路徑,并根據(jù)輸入的值選擇其中一個路徑來執(zhí)行,這種特征的DFD稱為事務型的數(shù)據(jù)流圖,這個加工稱為事務處理中心,如圖8.13所示。8.6.1數(shù)據(jù)流圖的類型

一個大型的軟件系統(tǒng)的DFD,既具有變換型的特征,又具有事務型的特征,如事務型DFD中的某個加工路徑可能是變換型的。8.6.2設計過程(1)精化DFD:把DFD轉換成軟件結構圖前,設計人員要仔細地研究分析DFD并參照數(shù)據(jù)字典,認真理解其中的有關元素,檢查有無遺漏或不合理之處,進行必要的修改。(2)確定DFD類型:如果是變換型,確定變換中心和邏輯輸入、邏輯輸出的界線,映射為變換結構的頂層和第一層;如果是事務型,確定事務中心和加工路徑,映射為事務結構的頂層和第一層。(3)分解上層模塊,設計中下層模塊結構。8.6.2設計過程(4)根據(jù)優(yōu)化準則對軟件結構求精。(5)描述模塊功能、接口及全局數(shù)據(jù)結構。(6)復查,如果有錯,轉(2)修改完善,否則進入詳細設計。8.6.3變換分析設計1.確定DFD中的變換中心、邏輯輸入和邏輯輸出

如果設計人員經驗豐富,則容易確定系統(tǒng)的變換中心,即主加工。如幾股數(shù)據(jù)流的匯合處往往是系統(tǒng)的主加工。若一下不能確定,則要從物理輸入端開始,沿著數(shù)據(jù)流方向向系統(tǒng)中心尋找,直到有這樣的數(shù)據(jù)流,它不能再被看作是系統(tǒng)的輸入,而它的前一個數(shù)據(jù)流就是系統(tǒng)的邏輯輸入。同理,從物理輸出端開始,逆數(shù)據(jù)流方向向中間移動,可以確定系統(tǒng)的邏輯輸出。介于邏輯輸入和邏輯輸出之間的加工就是變換中心,用虛線劃分出流界,DFD的三部分就確定了。8.6.3變換分析設計2.設計軟件結構的頂層和第一層——變換結構變換中心確定以后,就相當于決定了主模塊的位置,這就是軟件結構的頂層,如圖8.14所示。其功能是主要完成所有模塊的控制,它的名稱是系統(tǒng)名稱,以體現(xiàn)完成整個系統(tǒng)的功能。8.6.3變換分析設計(a)軟件結構的頂層設計8.6.3變換分析設計(b)軟件結構的第一層設計圖8.14變換分析設計舉例8.6.3變換分析設計主模塊確定之后,設計軟件結構的第一層。第一層至少要有輸入、輸出和變換三種功能的模塊,即為每個邏輯輸入設計一個輸入模塊,其功能為向頂層模塊提供相應的數(shù)據(jù),如圖8.14中的f3;為每個邏輯輸出設計一個輸出模塊,其功能為輸出頂層模塊的信息,如圖8.14中的f7、f8。同時,為變換中心設計一個變換模塊,它的功能是將邏輯輸入進行變換加工,然后邏輯輸出,如圖8.14中,將f3變換成f7和f8。這些模塊之間的數(shù)據(jù)傳送應該與DFD相對應。8.6.3變換分析設計3.設計中、下層模塊

對第一層的輸入、變換及輸出模塊自頂向下、逐層分解。1)輸入模塊的下屬模塊的設計輸入模塊的功能是向它的調用模塊提供數(shù)據(jù),所以必須要有數(shù)據(jù)來源。這樣輸入模塊應由接收數(shù)據(jù)和轉換成調用模塊所需的信息兩部分組成。因此,每個輸入模塊可以設計成兩個下屬模塊:一個接收,一個轉換。用類似的方法一直分解下去,直到物理輸入端,如圖8.14中模塊“getf3”和“getf2”的分解。模塊“getf1”為物理輸入模塊。8.6.3變換分析設計2)輸出模塊的下屬模塊的設計輸出模塊的功能是將它的調用模塊產生的結果送出,它由將數(shù)據(jù)轉換成下屬模塊所需的形式和發(fā)送數(shù)據(jù)兩部分組成。這樣每個輸出模塊可以設計成兩個下屬模塊:一個轉換,一個發(fā)送,一直到物理輸出端。如圖8.14中,模塊“putf7”,“putf8”和“putf10”的分解。模塊“putf9”和“putf11”為物理輸出模塊。8.6.3變換分析設計3)變換模塊的下屬模塊的設計根據(jù)DFD中變換中心的組成情況,按照模塊獨立性的原則來組織其結構,一般對DFD中每個基本加工建立一個功能模塊,如圖8.14中模塊“C”、“D”和“E”。8.6.3變換分析設計4.設計的優(yōu)化以上步驟設計出的軟件結構僅僅是初始結構,還必須根據(jù)設計準則對初始結構進行精細設計和改進,以下為可提供的求精辦法。(1)輸入部分的求精:對每個物理輸入設置專門模塊,以體現(xiàn)系統(tǒng)的外部接口;其他輸入模塊并非真正輸入,當它與轉換數(shù)據(jù)的模塊都很簡單時,可將它們合并成一個模塊。(2)輸出部分的求精:為每個物理輸出設置專門模塊,同時注意把相同或類似的物理輸出模塊合并在一起,以減低耦合度。8.6.3變換分析設計(3)變換部分的求精:根據(jù)設計準則,對模塊進行合并或調整。總之,軟件結構的求精帶有很大的經驗性。往往形成DFD中的加工與SC中的模塊之間一對一的映射關系,然后再修改。但對于一個實際問題,可能把DFD中的兩個甚至多個加工組成一個模塊,也可能把DFD中的一個加工擴展為兩個或更多個模塊,要根據(jù)具體情況靈活掌握設計方法,以求設計出由高內聚和低耦合的模塊所組成的、具有良好特性的軟件結構。8.6.4事務分析設計對于具有事務型特征的DFD,則采用事務分析的設計方法。下面結合圖8.15,說明該方法的設計過程。8.6.4事務分析設計(a)確定事務中心和加工路徑

(b)設計頂層軟件結構

圖8.15事務分析設計舉例8.6.4事務分析設計(1)確定DFD中的事務中心和加工路徑。當DFD中的某個加工具有明顯地將一個輸入數(shù)據(jù)流分解成多個發(fā)散的輸出數(shù)據(jù)流時,該加工就是事務中心。從事務中心輻射出去的數(shù)據(jù)流為各個加工路徑。(2)設計軟件結構的頂層和第一層——事務結構。設計一個頂層模塊,它是一個主模塊,有兩個功能,一是接收數(shù)據(jù),二是根據(jù)事務類型調度相應的處理模塊。事務型軟件結構應包括接收分支和發(fā)送分支兩個部分。8.6.4事務分析設計①接收分支:負責接收數(shù)據(jù),它的設計與變換型DFD的輸入部分設計方法相同。②發(fā)送分支:通常包含一個調度模塊,它控制管理所有的下層的事務處理模塊。當事務類型不多時,調度模塊可與主模塊合并。(3)事務結構中、下層模塊的設計、優(yōu)化等工作同變換結構。8.6.5數(shù)據(jù)流圖映射成軟件結構1.綜合DFD的映射一個大型系統(tǒng)的DFD中,既有變換流,又有事務流,屬于綜合的數(shù)據(jù)流圖,其軟件結構設計方法如下:(1)確定DFD整體上的類型。事務型通常用于對高層數(shù)據(jù)流圖的變換,其優(yōu)點是把一個大而復雜的系統(tǒng)分解成若干較小的簡單的子系統(tǒng)。變換型通常用于對較低層數(shù)據(jù)流圖的轉換。變換型具有順序處理的特點,而事務型具有平行分別處理的特點,所以兩種類型的DFD導出的軟件結構有所不同。8.6.5數(shù)據(jù)流圖映射成軟件結構只要從DFD整體的、主要功能處理分析其特點,就可區(qū)分出該DFD整體類型。(2)標出局部的DFD范圍,確定其類型。(3)按整體和局部的DFD特征,設計出軟件結構。8.6.5數(shù)據(jù)流圖映射成軟件結構2.分層DFD的映射對于一個復雜問題的數(shù)據(jù)流圖,往往是分層的。分層的數(shù)據(jù)流圖映射成軟件結構圖也應該是分層的,這樣便于設計,也便于修改。由于數(shù)據(jù)流圖的頂層圖反映的是系統(tǒng)與外部環(huán)境的界面,所以系統(tǒng)的物理輸入與物理輸出都在SC的頂層或0層圖上,相應的軟件結構圖的物理輸入與輸出部分應放在主圖中,便于同DFD的頂層圖對照檢查。8.6.5數(shù)據(jù)流圖映射成軟件結構分層DFD的映射方法是:(1)主圖是變換型,子圖是事務型,見圖8.16,圖中

表示“或者”。圖8.16主圖變換型、子圖事務型8.6.5數(shù)據(jù)流圖映射成軟件結構(2)主圖是事務型,子圖是變換型,見圖8.17。圖8.17主圖事務型、子圖變換型8.6.6結構化設計應用示例將8.3.3小節(jié)中的銷售管理系統(tǒng)的DFD轉換為軟件結構圖。分析該系統(tǒng)的0層圖,它有4個主要功能,即訂貨處理、進貨處理、缺貨處理和銷售統(tǒng)計。其中,訂貨處理包括訂單處理和供貨處理兩部分。這4個處理可平行工作,因此從整體上分析可按事務型數(shù)據(jù)流圖來設計,根據(jù)功能鍵來選擇4個處理中的一個。設計出的軟件結構如圖8.18所示。8.6.5數(shù)據(jù)流圖映射成軟件結構8.6.5數(shù)據(jù)流圖映射成軟件結構圖8.18銷售管理系統(tǒng)軟件結構圖8.6.7設計的后處理由設計的工作流程可知,經過變換分析或事務分析設計,形成軟件結構并經過優(yōu)化和改進后,還要做以下工作:(1)為每個模塊寫一份處理說明:從設計的角度描述模塊的主要處理任務、條件抉擇等,以需求分析階段產生的加工邏輯的描述為參考。這里的說明應該是清晰、無二義性的。(2)為每個模塊提供一份接口說明:包括通過參數(shù)表傳遞的數(shù)據(jù)、外部的輸入/輸出和訪問全局數(shù)據(jù)區(qū)的信息等,并指出它的下屬模塊與上屬模塊。8.6.7設計的后處理為清晰易讀,對以上兩個說明可用設計階段常采用的圖形工具——IPO圖(見3.3.3小節(jié))來表示。(3)數(shù)據(jù)結構說明:軟件結構確定之后,必須定義全局的和局部的數(shù)據(jù)結構,因為它對每個模塊的過程細節(jié)有著深遠的影響。數(shù)據(jù)結構的描述可用偽碼(如PDL語言、類Pascal語言)或Warnier圖、Jackson圖等形式表達。(4)給出設計約束或限制:如數(shù)據(jù)類型和格式的限制、內存容量的限制、時間的限制、數(shù)據(jù)的邊界值、個別模塊的特殊要求等。8.6.7設計的后處理(5)進行設計評審:軟件設計階段不可避免地會引入人為的錯誤,如果

溫馨提示

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

評論

0/150

提交評論