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

下載本文檔

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

文檔簡介

8.6結(jié)構(gòu)化設(shè)計

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

要把數(shù)據(jù)流圖(DFD)轉(zhuǎn)換成軟件結(jié)構(gòu),必須研究DFD的類型。各種軟件系統(tǒng),不論DFD如何龐大與復雜,一般可分為變換型數(shù)據(jù)流圖和事務(wù)型數(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è)備輸入的數(shù)據(jù)稱為物理輸入,反之稱為物理輸出。外部的輸入數(shù)據(jù)一般要經(jīng)過輸入正確性和合理性檢查、編輯及格式轉(zhuǎn)換等預處理,這部分工作都由邏輯輸入部分完成,它將外部形式的數(shù)據(jù)變成內(nèi)部形式,送給主加工。同理,邏輯輸出部分把主加工產(chǎn)生的數(shù)據(jù)的內(nèi)部形式轉(zhuǎn)換成外部形式然后物理輸出。因此變換型的DFD是一個順序結(jié)構(gòu)。8.6.1數(shù)據(jù)流圖的類型2.事務(wù)型的數(shù)據(jù)流圖若某個加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多平行的加工路徑,并根據(jù)輸入的值選擇其中一個路徑來執(zhí)行,這種特征的DFD稱為事務(wù)型的數(shù)據(jù)流圖,這個加工稱為事務(wù)處理中心,如圖8.13所示。8.6.1數(shù)據(jù)流圖的類型

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

如果設(shè)計人員經(jīng)驗豐富,則容易確定系統(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變換分析設(shè)計2.設(shè)計軟件結(jié)構(gòu)的頂層和第一層——變換結(jié)構(gòu)變換中心確定以后,就相當于決定了主模塊的位置,這就是軟件結(jié)構(gòu)的頂層,如圖8.14所示。其功能是主要完成所有模塊的控制,它的名稱是系統(tǒng)名稱,以體現(xiàn)完成整個系統(tǒng)的功能。8.6.3變換分析設(shè)計(a)軟件結(jié)構(gòu)的頂層設(shè)計8.6.3變換分析設(shè)計(b)軟件結(jié)構(gòu)的第一層設(shè)計圖8.14變換分析設(shè)計舉例8.6.3變換分析設(shè)計主模塊確定之后,設(shè)計軟件結(jié)構(gòu)的第一層。第一層至少要有輸入、輸出和變換三種功能的模塊,即為每個邏輯輸入設(shè)計一個輸入模塊,其功能為向頂層模塊提供相應的數(shù)據(jù),如圖8.14中的f3;為每個邏輯輸出設(shè)計一個輸出模塊,其功能為輸出頂層模塊的信息,如圖8.14中的f7、f8。同時,為變換中心設(shè)計一個變換模塊,它的功能是將邏輯輸入進行變換加工,然后邏輯輸出,如圖8.14中,將f3變換成f7和f8。這些模塊之間的數(shù)據(jù)傳送應該與DFD相對應。8.6.3變換分析設(shè)計3.設(shè)計中、下層模塊

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

(b)設(shè)計頂層軟件結(jié)構(gòu)

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論