




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8.1概述
8.2結(jié)構(gòu)化分析
8.3數(shù)據(jù)流圖
8.4數(shù)據(jù)字典
8.5加工邏輯的描述
8.6結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化方法返回主目錄8.1概述結(jié)構(gòu)化方法返回主目錄8.1概述
1.結(jié)構(gòu)化方法結(jié)構(gòu)化方法是指根據(jù)某種原理,使用一定的工具,按照特定步驟工作的軟件開發(fā)方法。它遵循的原理是自頂向下、逐步求精,使用的工具有數(shù)據(jù)流圖(DFD)、數(shù)據(jù)字典、判定表、判定樹和結(jié)構(gòu)化語言等。結(jié)構(gòu)化方法是從分析、設(shè)計(jì)到實(shí)現(xiàn)都使用結(jié)構(gòu)化思想的軟件開發(fā)方法,實(shí)際上它由三部分組成:結(jié)構(gòu)化分析(StructuredAnalysis,簡稱SA),結(jié)構(gòu)化設(shè)計(jì)(StructuredDesign,簡稱SD)和結(jié)構(gòu)化程序設(shè)計(jì)(StructuredPergramming,簡稱SP)。8.1概述1.結(jié)構(gòu)化方法
2.發(fā)展歷程在結(jié)構(gòu)化方法的發(fā)展歷程上,它是隨著SP方法的提出、SD方法的出現(xiàn)直至SA方法提出才逐漸形成的。1)結(jié)構(gòu)化程序設(shè)計(jì)首先出現(xiàn)的是SP,它是60年代末首先由Dijkstra提出的,旨在控制程序編制中的復(fù)雜性問題。SP被稱為軟件發(fā)展中的第三個(gè)里程碑,Dijkstra提出“GOTO語句可以從高級語言中取消”,1969年Bohm和Jacopini首次證明了只要三種控制結(jié)構(gòu)(順序、選擇、重復(fù))就能表達(dá)用一個(gè)入口和一個(gè)出口的流程圖所能表達(dá)的任何程序邏輯。2.發(fā)展歷程2)結(jié)構(gòu)化設(shè)計(jì)70年代中期L.L.Constantine和E.Yourdon提出和倡導(dǎo)了結(jié)構(gòu)化設(shè)計(jì)。在SP取得重大成功的影響下,Yourdon等人把結(jié)構(gòu)化和逐步求精的思想由編碼階段應(yīng)用推廣到設(shè)計(jì)階段,后來又?jǐn)U充到分析階段,形成了包括SD和SA在內(nèi)的基于數(shù)據(jù)流的系統(tǒng)設(shè)計(jì)方法。SD的目標(biāo)在于控制系統(tǒng)體系結(jié)構(gòu)一級的復(fù)雜性,實(shí)施原則是基于功能分解,驗(yàn)證技術(shù)是人工復(fù)審測試。3)結(jié)構(gòu)化分析70年代末期,由Demarco等人提出了SA方法。該方法旨在減少分析活動(dòng)中的錯(cuò)誤,產(chǎn)生系統(tǒng)的邏輯模型,其分析的對象是結(jié)構(gòu)化的功能說明;它實(shí)施的原則是面向數(shù)據(jù)流,基于功能分解,靠人工復(fù)審測試進(jìn)行驗(yàn)證。2)結(jié)構(gòu)化設(shè)計(jì)
3.基本思想結(jié)構(gòu)化方法總的指導(dǎo)思想是自頂向下,逐步求精,它的兩個(gè)基本原則是抽象與分解。
4.特點(diǎn)結(jié)構(gòu)化方法具有以下特點(diǎn):(1)它是使用最早的開發(fā)方法,使用時(shí)間也最長。(2)它應(yīng)用最廣,特別適合于數(shù)據(jù)處理。(3)相應(yīng)的支持工具多,發(fā)展較為成熟。3.基本思想
5.優(yōu)點(diǎn)結(jié)構(gòu)化方法一經(jīng)問世,就顯示出了它的以下幾大優(yōu)點(diǎn):(1)簡單、實(shí)用。(2)適合于瀑布模型,易為開發(fā)者掌握。(3)成功率較高,據(jù)美國1000家公司統(tǒng)計(jì),該方法的成功率高達(dá)90.2%,名列第二,僅次于面向?qū)ο蟮姆椒ā?4)特別適合于數(shù)據(jù)處理領(lǐng)域中的應(yīng)用,對其他領(lǐng)域的應(yīng)用也基本適用。
6.存在問題結(jié)構(gòu)化方法存在以下一些問題:(1)對于規(guī)模大的項(xiàng)目,特別復(fù)雜的應(yīng)用不太適應(yīng)。5.優(yōu)點(diǎn)2)難于解決軟件重用的問題。(3)難于適應(yīng)需求的變化。(4)難于徹底解決維護(hù)問題。2)難于解決軟件重用的問題。8.2結(jié)構(gòu)化分析
8.2.1自項(xiàng)向下逐層分解的分析策略面對一個(gè)復(fù)雜的問題,分析人員不可能一開始就考慮到問題的所有方面以及全部的細(xì)節(jié),采取的策略往往是分解,把一個(gè)復(fù)雜的問題劃分成若干小問題,然后再分別解決,將問題的復(fù)雜性降低到人可以掌握的程度。分解可分層進(jìn)行,先考慮問題最本質(zhì)的方面,忽略細(xì)節(jié),形成問題的高層概念,然后再逐層添加細(xì)節(jié),即在分層過程中采用不同程度的“抽象”級別,最高層的問題最抽象,而低層的較為具體。圖8.1是自項(xiàng)向下逐層分解的示意圖。8.2結(jié)構(gòu)化分析8.2.1自項(xiàng)向下逐頂層的系統(tǒng)X很復(fù)雜,可以把它分解為0層的1,2,3三個(gè)子系統(tǒng),若0層的子系統(tǒng)仍很復(fù)雜,再分解為下一層的子系統(tǒng)1.1,1.2,1.3和3.1,3.2,3.3……直到子系統(tǒng)都能被清楚的理解為止。圖8.1的頂層抽象地描述了整個(gè)系統(tǒng),底層具體地畫出了系統(tǒng)的每一個(gè)細(xì)節(jié),而中間層是從抽象到具體的逐步過渡,這種層次分解使分析人員分析問題時(shí)不至于一下子陷入細(xì)節(jié),而是逐步地去了解更多的細(xì)節(jié),如在頂層,只考慮系統(tǒng)外部的輸入和輸出,其他各層反映系統(tǒng)內(nèi)部情況。頂層的系統(tǒng)X很復(fù)雜,可以把它分解為0層的1,圖8.1對一個(gè)問題的逐層分解圖8.1對一個(gè)問題的逐層分解
8.2.2描述工具SA方法利用圖形等半形式化的描述方式表達(dá)需求,簡明易懂,用它們形成需求說明書中的主要部分。這些描述工具有以下幾種:(1)數(shù)據(jù)流圖。數(shù)據(jù)流圖描述系統(tǒng)的分解,即描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系等。(2)數(shù)據(jù)字典。數(shù)據(jù)字典定義了數(shù)據(jù)流圖中的數(shù)據(jù)和加工。它是數(shù)據(jù)流條目、數(shù)據(jù)存儲(chǔ)條目、數(shù)據(jù)項(xiàng)條目和基本加工條目的匯集。(3)描述加工邏輯的結(jié)構(gòu)化語言、判定表及判定樹。結(jié)構(gòu)化語言、判定表或判定樹則詳細(xì)描述數(shù)據(jù)流圖中不能被再分解的每一個(gè)基本加工的處理邏輯。8.2.2描述工具
8.2.3SA分析步驟
1.建立當(dāng)前系統(tǒng)的物理模型當(dāng)前系統(tǒng)(也稱現(xiàn)行系統(tǒng))指目前正在運(yùn)行的系統(tǒng),可能是需要改進(jìn)的正在計(jì)算機(jī)上運(yùn)行的軟件系統(tǒng),也可能是人工的處理系統(tǒng)。通過對當(dāng)前系統(tǒng)的詳細(xì)調(diào)查,了解當(dāng)前系統(tǒng)的工作過程,同時(shí)收集資料、文件、數(shù)據(jù)及報(bào)表等,將看到的、聽到的、收集到的信息和情況用圖形描述出來。也就是用一個(gè)模型來反映自己對當(dāng)前系統(tǒng)的理解,如畫系統(tǒng)流程圖(參見第2章2.1.3)。這一模型包含了許多具體因素,反映現(xiàn)實(shí)世界的實(shí)際情況。
2.抽象出當(dāng)前系統(tǒng)的邏輯模型物理模型反映了系統(tǒng)“怎么做”的具體實(shí)現(xiàn),去掉物理模型中非本質(zhì)的因素(如物理因素),抽取出本質(zhì)的因素。8.2.3SA分析步驟所謂本質(zhì)的因素是指系統(tǒng)固有的、不依賴運(yùn)行環(huán)境變化而變化的因素,任何實(shí)現(xiàn)均這樣做。非本質(zhì)因素不是固有的,隨環(huán)境不同而不同,隨實(shí)現(xiàn)不同而不同。對物理模型進(jìn)行分析,區(qū)別本質(zhì)因素和非本質(zhì)因素,去掉非本質(zhì)因素,就形成當(dāng)前系統(tǒng)的邏輯模型,反映了當(dāng)前系統(tǒng)“做什么”的功能。
3.建立目標(biāo)系統(tǒng)的邏輯模型目標(biāo)系統(tǒng)指待開發(fā)的新系統(tǒng)。分析、比較目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,即在當(dāng)前系統(tǒng)的基礎(chǔ)上決定變化的范圍,把那些要改變的部分找出來,將變化的部分抽象為一個(gè)加工,這個(gè)加工的外部環(huán)境及輸入輸出就確定了。所謂本質(zhì)的因素是指系統(tǒng)固有的、不依賴運(yùn)行環(huán)境變?nèi)缓髮Α白兓牟糠帧敝匦路纸?,分析人員根據(jù)自己的經(jīng)驗(yàn),采用自頂向下逐步求精的分析策略,逐步確定變化部分的內(nèi)部結(jié)構(gòu),從而建立目標(biāo)系統(tǒng)的邏輯模型。
4.作進(jìn)一步補(bǔ)充和優(yōu)化為了完整地描述目標(biāo)系統(tǒng),還要作一些補(bǔ)充:說明目標(biāo)系統(tǒng)的人機(jī)界面,它所處的應(yīng)用環(huán)境及它與外界環(huán)境的相互聯(lián)系,決定人機(jī)界面;說明至今尚未詳細(xì)考慮的細(xì)節(jié),如出錯(cuò)處理、輸入輸出格式、存儲(chǔ)容量和響應(yīng)時(shí)間等性能要求與限制。然后對“變化的部分”重新分解,分析人員根據(jù)8.3數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,簡稱DFD),是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的過程。由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。圖8.2是一個(gè)飛機(jī)機(jī)票預(yù)訂系統(tǒng)的數(shù)據(jù)流圖,其功能為旅行社把預(yù)訂機(jī)票的旅客信息(姓名、年齡、單位、身份證號碼、旅行時(shí)間及目的地等)輸入機(jī)票預(yù)訂系統(tǒng)。系統(tǒng)為旅客安排航班,打印出取票通知單(付有應(yīng)交的賬款)。旅客在飛機(jī)起飛的前一天憑取票通知等交款取票,系統(tǒng)檢驗(yàn)無誤,輸出機(jī)票給旅客。8.3數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFl圖8.2飛機(jī)機(jī)票預(yù)訂系統(tǒng)圖8.2飛機(jī)機(jī)票預(yù)訂系統(tǒng)
8.3.1基本圖形符號數(shù)據(jù)流圖有以下4種基本圖形符號:→:箭頭,表示數(shù)據(jù)流。○:圓或橢圓,表示加工。=:雙杠,表示數(shù)據(jù)存儲(chǔ)?!酰悍娇颍硎緮?shù)據(jù)的源點(diǎn)或終點(diǎn)。
1.數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組成分固定的數(shù)據(jù)項(xiàng)組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期及目的地等數(shù)據(jù)項(xiàng)組成。8.3.1基本圖形符號由于數(shù)據(jù)流是流動(dòng)中的數(shù)據(jù),所以必須有流向,即在加工之間、加工與源點(diǎn)終點(diǎn)之間、加工與數(shù)據(jù)存儲(chǔ)之間流動(dòng)。除了與數(shù)據(jù)存儲(chǔ)之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。
2.加工加工也稱為數(shù)據(jù)處理,它對數(shù)據(jù)流進(jìn)行某些操作或變換。每個(gè)加工也要有名字,通常是動(dòng)詞短語,簡明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應(yīng)編號。
3.數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)指暫時(shí)保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。流向數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)流可理解為寫入文件,或查詢文件,從數(shù)據(jù)存儲(chǔ)流出的數(shù)據(jù)可理解為從文件讀數(shù)據(jù)或得到查詢結(jié)果。由于數(shù)據(jù)流是流動(dòng)中的數(shù)據(jù),所以必須有流向,
4.數(shù)據(jù)源點(diǎn)和終點(diǎn)數(shù)據(jù)源點(diǎn)和終點(diǎn)是軟件系統(tǒng)外部環(huán)境中的實(shí)體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實(shí)體。它們是為了幫助理解系統(tǒng)界面而引入的,一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖中,表示了系統(tǒng)中數(shù)據(jù)的來源和去處。有時(shí)為了增加數(shù)據(jù)流圖的清晰性,防止數(shù)據(jù)流的箭頭線太長,在一張圖上可重復(fù)畫同名的源/終點(diǎn)(如某個(gè)外部實(shí)體既是源點(diǎn)也是終點(diǎn)的情況),在方框的右下角加斜線則表示是一個(gè)實(shí)體。有時(shí)數(shù)據(jù)存儲(chǔ)也需重復(fù)標(biāo)識。4.數(shù)據(jù)源點(diǎn)和終點(diǎn)
8.3.2畫數(shù)據(jù)流圖為了表達(dá)較為復(fù)雜問題的數(shù)據(jù)處理過程,用一張數(shù)據(jù)流圖是不夠的。要按照問題的層次結(jié)構(gòu)進(jìn)行逐步分解,并以一套分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。
1.畫系統(tǒng)的輸入輸出畫系統(tǒng)的輸入輸出即先畫頂層數(shù)據(jù)流圖。頂層流圖只包含一個(gè)加工,用以標(biāo)識被開發(fā)的系統(tǒng),然后考慮該系統(tǒng)有哪些輸入數(shù)據(jù),這些輸入數(shù)據(jù)從哪里來;有哪些輸出數(shù)據(jù),輸出到哪里去。這樣就定義了系統(tǒng)的輸入、輸出數(shù)據(jù)流。頂層圖的作用在于表明被開發(fā)系統(tǒng)的范圍以及它和周圍環(huán)境的數(shù)據(jù)交換關(guān)系,頂層圖只有一張。圖8.3為飛機(jī)機(jī)票預(yù)訂系統(tǒng)的頂層圖。8.3.2畫數(shù)據(jù)流圖圖8.3飛機(jī)機(jī)票預(yù)訂系統(tǒng)頂層圖圖8.3飛機(jī)機(jī)票預(yù)訂系統(tǒng)頂層圖
2.畫系統(tǒng)內(nèi)部畫系統(tǒng)內(nèi)部即畫下層數(shù)據(jù)流圖。一般將層號從0開始編號,采用自頂向下,由外向內(nèi)的原則。畫0層數(shù)據(jù)流圖時(shí),一般根據(jù)當(dāng)前系統(tǒng)工作分組情況,并按新系統(tǒng)應(yīng)有的外部功能,分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個(gè)子系統(tǒng)間的數(shù)據(jù)接口和活動(dòng)關(guān)系。如機(jī)票預(yù)訂系統(tǒng)按功能可分成兩部分,一部分為旅行社預(yù)訂機(jī)票,另一部分為旅客取票,兩部分通過機(jī)票文件的數(shù)據(jù)存儲(chǔ)聯(lián)系起來,0層數(shù)據(jù)流圖如圖8.4。畫更下層數(shù)據(jù)流圖時(shí),則分解上層圖中的加工,一般沿著輸入流的方向,凡數(shù)據(jù)流的組成或值發(fā)生變化的地方則設(shè)置一個(gè)加工,這樣一直進(jìn)行到輸出數(shù)據(jù)流(也可從輸出流到輸入流方向畫)。2.畫系統(tǒng)內(nèi)部圖8.4飛機(jī)機(jī)票預(yù)訂系統(tǒng)0層圖圖8.4飛機(jī)機(jī)票預(yù)訂系統(tǒng)0層圖如果加工的內(nèi)部還有數(shù)據(jù)流,則對此加工在下層圖中繼續(xù)分解,直到每一個(gè)加工足夠簡單,不能再分解為止。不再分解的加工稱為基本加工。
3.注意事項(xiàng)畫數(shù)據(jù)流圖的注意事項(xiàng)有以下幾點(diǎn):(1)命名:不論數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)還是加工,合適的命名使人們易于理解其含義。數(shù)據(jù)流的名字代表整個(gè)數(shù)據(jù)流的內(nèi)容,而不僅僅是它的某些成分,不使用缺乏具體含義的名字,如“數(shù)據(jù)”、“信息”等。加工名也應(yīng)反映整個(gè)處理的功能,不使用“處理”、“操作”這些籠統(tǒng)的詞。如果加工的內(nèi)部還有數(shù)據(jù)流,則對此加工在下層圖(2)畫數(shù)據(jù)流而不是控制流:數(shù)據(jù)流圖反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞或名詞短語,整個(gè)圖中不反映加工的執(zhí)行順序。(3)一般不畫物質(zhì)流:數(shù)據(jù)流反映能用計(jì)算機(jī)處理的數(shù)據(jù),并不是實(shí)物,因此對目標(biāo)系統(tǒng)的數(shù)據(jù)流圖上一般不要畫物流,如機(jī)票預(yù)訂系統(tǒng)中,人民幣也在流動(dòng),但并未畫出,因?yàn)榻豢钍恰叭斯ぁ毙袨椤?4)每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。(5)編號:如果一張數(shù)據(jù)流圖中的某個(gè)加工分解成另一張數(shù)據(jù)流圖時(shí),則上層圖為父圖,直接下層圖為子圖。子圖應(yīng)編號,子圖上的所有加工也應(yīng)編號,子圖的編號就是父圖中相應(yīng)加工的編號,加工的編號由子圖號、小數(shù)點(diǎn)及局部號組成,如圖8.5所示。(2)畫數(shù)據(jù)流而不是控制流:數(shù)據(jù)流圖反圖8.5父圖與子圖(1)圖8.5父圖與子圖(1)(6)父圖與子圖的平衡:子圖的輸入、輸出數(shù)據(jù)流同父圖相應(yīng)加工的輸入、輸出數(shù)據(jù)流必須一致,此即父圖與子圖的平衡。圖8.5中子圖2.1與父圖2相應(yīng)加工2.1的輸入、輸出數(shù)據(jù)流的數(shù)目、名稱完全相同,即一個(gè)輸入流a,兩個(gè)輸出流b和c。再看圖8.6,好像父圖與子圖不平衡,因?yàn)楦笀D加工4與子圖輸入輸出數(shù)據(jù)流數(shù)目不相等,但是借助于數(shù)據(jù)字典(見8.4)中數(shù)據(jù)流的描述可知,父圖的數(shù)據(jù)流“訂貨單”由“客戶”、“賬號”及“數(shù)量”三部分?jǐn)?shù)據(jù)組成,即子圖是父圖中加工、數(shù)據(jù)流同時(shí)分解而來,因此這兩張圖也是平衡的。(6)父圖與子圖的平衡:子圖的輸入、輸出圖8.6父圖與子圖的平衡圖8.6父圖與子圖的平衡有時(shí)考慮平衡可忽略一些枝節(jié)性的數(shù)據(jù)流(如出錯(cuò)處理)。父圖與子圖的平衡,是分層數(shù)據(jù)流圖中的重要性質(zhì),保證了數(shù)據(jù)流圖的一致性,便于分析人員的閱讀與理解。(7)局部數(shù)據(jù)存儲(chǔ):當(dāng)某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲(chǔ)不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲(chǔ)為局部數(shù)據(jù)存儲(chǔ),一個(gè)局部數(shù)據(jù)存儲(chǔ)只有當(dāng)它作為某些加工的數(shù)據(jù)接口或某個(gè)加工特定的輸入或輸出時(shí),就把它畫出來,這樣有助于實(shí)現(xiàn)信息隱蔽。(8)提高數(shù)據(jù)流圖的易理解性:注意合理分解,要把一個(gè)加工分解成幾個(gè)功能相對獨(dú)立的子加工,這樣可以減少加工之間輸入、輸出數(shù)據(jù)流的數(shù)目,增加數(shù)據(jù)流圖的可理解性。有時(shí)考慮平衡可忽略一些枝節(jié)性的數(shù)據(jù)流(如出錯(cuò)分解時(shí)要注意子加工的獨(dú)立性、均勻性,特別是畫上層數(shù)據(jù)流時(shí),要注意將一個(gè)問題劃分成幾個(gè)大小接近的組成部分,這樣做便于理解。不要在一張數(shù)據(jù)流圖中出現(xiàn)某些加工已是基本加工,某些加工還要分解好幾層。為了使數(shù)據(jù)流圖便于在計(jì)算機(jī)上輸入與輸出,以下給出了描述數(shù)據(jù)流圖的另一套基本符號:———→:表示數(shù)據(jù)流,只能水平或垂直畫。編號:表示加工。編號:表示數(shù)據(jù)存儲(chǔ)。分解時(shí)要注意子加工的獨(dú)立性、均勻性,特別是畫圖8.7給出了采用這套符號畫出的等價(jià)于圖8.2的DFD。圖8.7與圖8.2等價(jià)的DFD圖8.7給出了采用這套符號畫出的等價(jià)于圖8.2的DFD。
8.3.3SA方法的應(yīng)用現(xiàn)以第2.4.2節(jié)中的銷售管理系統(tǒng)為例,采用SA方法來進(jìn)行需求分析,建立功能模型。圖8.8為采用SA方法畫出的銷售管理系統(tǒng)的分層DFD。首先分析功能說明,先找出哪些是屬于系統(tǒng)之外的外部實(shí)體,然后畫出頂層數(shù)據(jù)流圖,頂層圖如圖8.8(a)所示。隨后分解系統(tǒng),每個(gè)子系統(tǒng)有哪些流動(dòng)著的數(shù)據(jù),哪些需要暫時(shí)保存的數(shù)據(jù),通過什么加工使數(shù)據(jù)發(fā)生變換。根據(jù)系統(tǒng)功能,在0層圖上分解系統(tǒng)為5個(gè)加工,加工的名稱及加工之間的數(shù)據(jù)流在功能說明中有動(dòng)詞和名詞與之對應(yīng)。8.3.3SA方法的應(yīng)用圖8.8(b)為0層圖,它說明系統(tǒng)分為5個(gè)子系統(tǒng)。在下層圖(1層,2層……)的分解過程中,應(yīng)仔細(xì)考慮每個(gè)加工內(nèi)部還應(yīng)該進(jìn)行哪些處理,還有什么數(shù)據(jù)流產(chǎn)生,這些可能在功能說明中沒有,需要分析人員和用戶參考現(xiàn)行系統(tǒng)的工作流程,進(jìn)行“創(chuàng)造”,精細(xì)數(shù)據(jù)流圖。圖8.8(c)為1層圖,其中圖C1、圖C2、……圖C5分別是0層圖5個(gè)加工分解的結(jié)果。圖8.8(b)為0層圖,它說明系統(tǒng)分為5個(gè)圖8.8銷售管理系統(tǒng)的分層數(shù)據(jù)流圖(a)頂層圖;(b)0層圖;(c)1層圖圖8.8銷售管理系統(tǒng)的分層數(shù)據(jù)流圖8.4數(shù)據(jù)字典
8.4.1數(shù)據(jù)字典的內(nèi)容及格式數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有關(guān)名字的詳細(xì)定義而服務(wù)的,因此也像普通字典一樣,要把所有條目按一定的次序排列起來,以便查閱。數(shù)據(jù)字典有以下4類條目:數(shù)據(jù)流、數(shù)據(jù)項(xiàng)、數(shù)據(jù)存儲(chǔ)及基本加工。數(shù)據(jù)項(xiàng)是組成數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)的最小元素。源點(diǎn)、終點(diǎn)不在系統(tǒng)之內(nèi),故一般不在字典中說明。
1.數(shù)據(jù)流條目數(shù)據(jù)流條目給出了DFD中數(shù)據(jù)流的定義,通常列出該數(shù)據(jù)流的各組成數(shù)據(jù)項(xiàng)。在定義數(shù)據(jù)流或數(shù)據(jù)存儲(chǔ)組成時(shí),使用表8-1給出的符號。8.4數(shù)據(jù)字典
8.4.1數(shù)據(jù)字下面給出了幾個(gè)使用表8-1中符號,定義數(shù)據(jù)流組成及數(shù)據(jù)項(xiàng)的例子。例:機(jī)票=姓名+日期+航班號+起點(diǎn)+終點(diǎn)+費(fèi)用姓名={字母}182航班號=“Y7100”·[KG-*3]·“Y8100”終點(diǎn)=[上海|北京|西安]數(shù)據(jù)流條目主要內(nèi)容及舉例如下:數(shù)據(jù)流名稱:訂單下面給出了幾個(gè)使用表8-1中符號,定義數(shù)據(jù)結(jié)構(gòu)化方法課件別名:無簡述:顧客訂貨時(shí)填寫的項(xiàng)目來源:顧客去向:加工1“檢驗(yàn)訂單”數(shù)據(jù)流量:1000份/每周組成:編號+訂貨日期+顧客編號+地址+電話+銀行賬號+貨物名稱+規(guī)格+數(shù)量其中數(shù)據(jù)流量指單位時(shí)間內(nèi)(每小時(shí)或每天或每周或每月)的傳輸次數(shù)。別名:無其中數(shù)據(jù)流量指單位時(shí)間內(nèi)(每小時(shí)
2.數(shù)據(jù)存儲(chǔ)條目數(shù)據(jù)存儲(chǔ)條目是對數(shù)據(jù)存儲(chǔ)的定義,主要內(nèi)容及舉例如下:數(shù)據(jù)存儲(chǔ)名稱:庫存記錄別名:無簡述:存放庫存所有可供貨物的信息組成:貨物名稱+編號+生產(chǎn)廠家+單價(jià)+庫存量組織方式:索引文件,以貨物編號為關(guān)鍵字查詢要求:要求能立即查詢2.數(shù)據(jù)存儲(chǔ)條目數(shù)據(jù)項(xiàng)名稱:貨物編號別名:G-No,G-num,Goods-No簡述:本公司的所有貨物的編號類型:字符串長度:10取值范圍及含義:第1位:進(jìn)口/國產(chǎn)第2~4位:類別第5~7位:規(guī)格第8~10位:品名編號3.數(shù)據(jù)項(xiàng)條目數(shù)據(jù)項(xiàng)條目是不可再分解的數(shù)據(jù)單位,其定義格式及舉例如下:數(shù)據(jù)項(xiàng)名稱:貨物編號3.數(shù)據(jù)項(xiàng)條目
4.加工條目加工條目是用來說明DFD中基本加工的處理邏輯的,由于上層的加工是由下層的基本加工分解而來,只要有了基本加工的說明,就可理解其他加工。加工條目的主要內(nèi)容及舉例如下:加工名:確定能否供貨編號:1.2激發(fā)條件:接收到合格訂單時(shí)優(yōu)先級:普通輸入:合格訂單輸出:可供貨訂單、缺貨訂單加工邏輯:根據(jù)庫存記錄4.加工條目加工名:確定能否供貨IF訂單項(xiàng)目的數(shù)量<該項(xiàng)目庫存量的臨界值THEN可供貨處理ELSE此訂單缺貨,登錄,待進(jìn)貨后再處理ENDIF數(shù)據(jù)字典中的加工邏輯主要描述該加工“做什么”,即實(shí)現(xiàn)加工的策略,而不是實(shí)現(xiàn)加工的細(xì)節(jié),它描述如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。為了使加工邏輯直觀易讀,易被用戶理解,有幾種常用的描述方法,它們是結(jié)構(gòu)化語言、判定表及判定樹(見8.5節(jié))。IF訂單項(xiàng)目的數(shù)量<該項(xiàng)目
8.4.2數(shù)據(jù)字典的實(shí)現(xiàn)1.手工建立手工建立數(shù)據(jù)字典的內(nèi)容用卡片形式存放,其步驟如下:(1)按4類條目規(guī)范的格式印制卡片。(2)在卡片上分別填寫各類條目的內(nèi)容。(3)先按圖號順序排列,同一圖號的所有條目按數(shù)據(jù)流、數(shù)據(jù)項(xiàng)、數(shù)據(jù)存儲(chǔ)和加工的順序排列。(4)同一圖號中的同一類條目(如數(shù)據(jù)流卡片)可按名字的字典順序存放,加工一般按編號順序存放。(5)同一成分在父圖和子圖都出現(xiàn)時(shí),則只在父圖上定義。(6)建立索引目錄。8.4.2數(shù)據(jù)字典的實(shí)現(xiàn)
2.利用計(jì)算機(jī)輔助建立并維護(hù)利用計(jì)算機(jī)輔助建立并維護(hù)數(shù)據(jù)字典的步驟如下:(1)編制一個(gè)“字典生成與管理程序”,可以按規(guī)定的格式輸入各類條目,能對字典條目增、刪、改,能打印出各類查詢報(bào)告和清單,能進(jìn)行完整性、一致性檢查等。美國密執(zhí)安大學(xué)研究的PSL/PSA就是這樣一個(gè)系統(tǒng)。(2)利用已有的數(shù)據(jù)庫開發(fā)工具,針對數(shù)據(jù)字典建立一個(gè)數(shù)據(jù)庫文件,可將數(shù)據(jù)流、數(shù)據(jù)項(xiàng)、數(shù)據(jù)存儲(chǔ)和加工分別以矩陣表的形式來描述各個(gè)表項(xiàng)的內(nèi)容,如數(shù)據(jù)流的矩陣表為:2.利用計(jì)算機(jī)輔助建立并維護(hù)編號名稱來源去向流量組成………………然后使用開發(fā)工具建成數(shù)據(jù)庫文件,便于修改、查詢,并可隨時(shí)打印出來。另外,有的DBMS本身包含一個(gè)數(shù)據(jù)字典子系統(tǒng),建庫時(shí)能自動(dòng)生成數(shù)據(jù)字典。計(jì)算機(jī)輔助開發(fā)數(shù)據(jù)字典比手工建立數(shù)據(jù)字典有更多的優(yōu)點(diǎn),能保證數(shù)據(jù)的一致性和完整性,使用也方便,但增加了技術(shù)難度與機(jī)器開銷。編號名稱來源去向流量組成……………然后使用開發(fā)8.5加工邏輯的描述
8.5.1結(jié)構(gòu)化語言結(jié)構(gòu)化語言是介于自然語言(英語或漢語)和形式語言之間的一種半形式語言。形式語言精確,但不易被理解,自然語言易理解,但它不精確,可能產(chǎn)生二義性。結(jié)構(gòu)化語言取“長”補(bǔ)“短”,它是在自然語言基礎(chǔ)上加了一些限定,使用有限的詞匯和有限的語句來描述加工邏輯,它的結(jié)構(gòu)可分成外層和內(nèi)層兩層。
1.外層外層用來描述控制結(jié)構(gòu),采用如下順序、選擇及重復(fù)三種基本結(jié)構(gòu):8.5加工邏輯的描述8.5.1結(jié)構(gòu)化語(1)順序結(jié)構(gòu):是一組祈使語句、選擇語句及重復(fù)語句的順序排列。祈使語句指至少包含一個(gè)動(dòng)詞及一個(gè)名詞,指出要執(zhí)行的動(dòng)作及接受動(dòng)作的對象。(2)選擇結(jié)構(gòu):一般用IFTHENELSEENDIF,CASEOFENDCASE等關(guān)鍵詞。(3)重復(fù)結(jié)構(gòu):一般用DOWHILEENDDO,REPEATUNTIL等關(guān)鍵詞。
2.內(nèi)層內(nèi)層一般是采用祈使語句的自然語言短語,使用數(shù)據(jù)字典中的名詞和有限的自定義詞,其動(dòng)詞含義要具體,盡量不用形容詞和副詞來修飾。還可使用一些簡單的算術(shù)運(yùn)算和邏輯運(yùn)算符號。(1)順序結(jié)構(gòu):是一組祈使語句、選擇語句及
8.5.2判定表例如,某數(shù)據(jù)流圖中有一個(gè)“確定保險(xiǎn)類別”的加工,指的是申請汽車駕駛保險(xiǎn)時(shí),要根據(jù)申請者的情況確定不同的保險(xiǎn)類別。加工邏輯為:如果申請者的年齡在21歲以下,要額外收費(fèi);如果申請者是21歲以上并是26歲以下的女性,適用于A類保險(xiǎn);如果申請者是26歲以下的已婚男性,或者是26歲以上的男性,適用于B類保險(xiǎn);如果申請者是21歲以下的女性或是26歲以下的單身男性,適用于C類保險(xiǎn)。除此之外的其他申請者都適用于A類保險(xiǎn)。這段敘述使人不能較快地看懂該加工的動(dòng)作,而用判定表表示出來就清楚了。判定表由4部分組成,用雙線分割開4個(gè)區(qū)域,如圖8.9所示。8.5.2判定表結(jié)構(gòu)化方法課件各部分的含義在圖上標(biāo)出?,F(xiàn)就上例構(gòu)造一張判定表,可采取以下步驟:(1)提取問題中的條件:條件是年齡、性別及婚姻。(2)標(biāo)出條件的取值:為繪制判定表方便,用符號代替條件的取值,見表8-2。(3)計(jì)算所有條件的組合數(shù)N:N=mi=3×2×2=12。(4)提取可能采取的動(dòng)作或措施:適用于A類保險(xiǎn)、B類保險(xiǎn)、C類保險(xiǎn)和額外收費(fèi)。(5)制作判定表:如表8-3所示。各部分的含義在圖上標(biāo)出?,F(xiàn)就上例構(gòu)造一張判定結(jié)構(gòu)化方法課件結(jié)構(gòu)化方法課件(6)完善判定表:初始的判定表可能不完善,表現(xiàn)在兩個(gè)方面。第一,缺少判定列中應(yīng)采取的動(dòng)作。例如“確定保險(xiǎn)類別”的說明中若沒有最后一句“除此之外……”,那么第9、10兩列就無選取的動(dòng)作,這時(shí)就應(yīng)與用戶說明并將其補(bǔ)充完整第二,有冗余的判定列。兩個(gè)或多個(gè)規(guī)則中,具有相同的動(dòng)作,而與它所對應(yīng)的各個(gè)條件組合中有取值無關(guān)的條件。如第1和第2、第5和第6、第9和第10、第11和第12都與第三個(gè)條件“婚姻”取值無關(guān),因此可將它們分別合并。合并后的規(guī)則還可進(jìn)一步合并,如圖8.10所示,圖中“Y”表示邏輯條件取值為“真”,“N”表示邏輯條件取值為“假”,“—”表示與取值無關(guān)。(6)完善判定表:初始的判定表可能不完善圖8.10動(dòng)作相同的規(guī)則合并圖8.10動(dòng)作相同的規(guī)則合并
8.5.3判定樹判定樹是判定表的變形,一般情況下它比判定表更直觀,且易于理解和使用。圖8.11是與表8-3功能等價(jià)的判定樹。上述三種描述加工邏輯的工具各有優(yōu)缺點(diǎn),對于順序執(zhí)行和循環(huán)執(zhí)行的動(dòng)作,用結(jié)構(gòu)化語言描述;對于存在多個(gè)條件復(fù)雜組合的判斷問題,用判定表和判定樹。判定樹較判定表直觀易讀,判定表進(jìn)行邏輯驗(yàn)證較嚴(yán)格,能把所有的可能性全部都考慮到??蓪煞N工具結(jié)合起來,先用判定表作底稿,在此基礎(chǔ)上產(chǎn)生判定樹。經(jīng)過需求分析,開發(fā)人員已經(jīng)基本上理解了用戶的要求,確定了目標(biāo)系統(tǒng)的功能,定義了系統(tǒng)的數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進(jìn)行整理,最后形成文檔——需求說明書。8.5.3判定樹圖8.11判定樹圖8.11判定樹上述三種描述加工邏輯的工具各有優(yōu)缺點(diǎn),對于順序執(zhí)行和循環(huán)執(zhí)行的動(dòng)作,用結(jié)構(gòu)化語言描述;對于存在多個(gè)條件復(fù)雜組合的判斷問題,用判定表和判定樹。判定樹較判定表直觀易讀,判定表進(jìn)行邏輯驗(yàn)證較嚴(yán)格,能把所有的可能性全部都考慮到??蓪煞N工具結(jié)合起來,先用判定表作底稿,在此基礎(chǔ)上產(chǎn)生判定樹。經(jīng)過需求分析,開發(fā)人員已經(jīng)基本上理解了用戶的要求,確定了目標(biāo)系統(tǒng)的功能,定義了系統(tǒng)的數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進(jìn)行整理,最后形成文檔——需求說明書。上述三種描述加工邏輯的工具各有優(yōu)缺點(diǎn),對于順8.6結(jié)構(gòu)化設(shè)計(jì)
8.6.1數(shù)據(jù)流的類型要把數(shù)據(jù)流圖(DFD)轉(zhuǎn)換成軟件結(jié)構(gòu),必須研究DFD的類型。各種軟件系統(tǒng),不論DFD如何龐大與復(fù)雜,一般可分為變換型數(shù)據(jù)流圖和事務(wù)型數(shù)據(jù)流圖兩類。
1.變換型數(shù)據(jù)流圖變換型的DFD是由輸入、變換(或稱處理)和輸出三部分組成,如圖8.12所示,虛線為標(biāo)出的流界。變換型數(shù)據(jù)處理的工作過程一般分為取得數(shù)據(jù)、變換數(shù)據(jù)和給出數(shù)據(jù)。這三步體現(xiàn)了變換型DFD的基本思想。8.6結(jié)構(gòu)化設(shè)計(jì)8.6.1數(shù)據(jù)流圖8.12變換型DFD圖8.12變換型DFD變換是系統(tǒng)的主加工,變換輸入端的數(shù)據(jù)流為系統(tǒng)的邏輯輸入,輸出端為邏輯輸出。而直接從外部設(shè)備輸入的數(shù)據(jù)稱為物理輸入,反之稱為物理輸出。外部的輸入數(shù)據(jù)一般要經(jīng)過輸入正確性和合理性檢查、編輯及格式轉(zhuǎn)換等預(yù)處理,這部分工作都由邏輯輸入部分完成,它將外部形式的數(shù)據(jù)變成內(nèi)部形式,送給主加工。同理,邏輯輸出部分把主加工產(chǎn)生的數(shù)據(jù)的內(nèi)部形式轉(zhuǎn)換成外部形式然后物理輸出。因此變換型的DFD是一個(gè)順序結(jié)構(gòu)。
2.事務(wù)型的數(shù)據(jù)流圖若某個(gè)加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多平行的加工路徑,并根據(jù)輸入的值選擇其中一個(gè)路徑來執(zhí)行,這種特征的DFD稱為事務(wù)型的數(shù)據(jù)流圖,這個(gè)加工稱為事務(wù)處理中心,如圖8.13所示。變換是系統(tǒng)的主加工,變換輸入端的數(shù)據(jù)流為系統(tǒng)圖8.13事務(wù)型DFD圖8.13事務(wù)型DFD
8.6.2設(shè)計(jì)過程結(jié)構(gòu)化設(shè)計(jì)方法的過程如下:(1)精化DFD:把DFD轉(zhuǎn)換成軟件結(jié)構(gòu)圖前,設(shè)計(jì)人員要仔細(xì)地研究分析DFD并參照數(shù)據(jù)字典,認(rèn)真理解其中的有關(guān)元素,檢查有無遺漏或不合理之處,進(jìn)行必要的修改。(2)確定DFD類型:如果是變換型,確定變換中心和邏輯輸入、邏輯輸出的界線,映射為變換結(jié)構(gòu)的頂層和第一層;如果是事務(wù)型,確定事務(wù)中心和加工路徑,映射為事務(wù)結(jié)構(gòu)的頂層和第一層。(3)分解上層模塊,設(shè)計(jì)中下層模塊結(jié)構(gòu)。8.6.2設(shè)計(jì)過程(3)分解上層模塊,設(shè)計(jì)中下層模塊結(jié)構(gòu)。(4)根據(jù)優(yōu)化準(zhǔn)則對軟件結(jié)構(gòu)求精。(5)描述模塊功能、接口及全局?jǐn)?shù)據(jù)結(jié)構(gòu)。(6)復(fù)查,如果有錯(cuò),轉(zhuǎn)(2)修改完善,否則進(jìn)入詳細(xì)設(shè)計(jì)。(3)分解上層模塊,設(shè)計(jì)中下層模塊結(jié)構(gòu)。
8.6.3變換分析設(shè)計(jì)當(dāng)DFD具有較明顯的變換特征時(shí),則按照下列步驟設(shè)計(jì)。1.確定DFD中的變換中心、邏輯輸入和邏輯輸出如果設(shè)計(jì)人員經(jīng)驗(yàn)豐富,則容易確定系統(tǒng)的變換中心,即主加工。如幾股數(shù)據(jù)流的匯合處往往是系統(tǒng)的主加工。若一下不能確定,則要從物理輸入端開始,沿著數(shù)據(jù)流方向向系統(tǒng)中心尋找,直到有這樣的數(shù)據(jù)流,它不能再被看作是系統(tǒng)的輸入則它的前一個(gè)數(shù)據(jù)流就是系統(tǒng)的邏輯輸入。同理,從物理輸出端開始,逆數(shù)據(jù)流方向向中間移動(dòng),可以確定系統(tǒng)的邏輯輸出。介于邏輯輸入和邏輯輸出之間的加工就是變換中心,用虛線劃分出流界,DFD的三部分就確定了。8.6.3變換分析設(shè)計(jì)
2.設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層——變換結(jié)構(gòu)變換中心確定以后,就相當(dāng)于決定了主模塊的位置,這就是軟件結(jié)構(gòu)的頂層,如圖8.14所示。其功能是主要完成所有模塊的控制,它的名稱是系統(tǒng)名稱,以體現(xiàn)完成整個(gè)系統(tǒng)的功能。主模塊確定之后,設(shè)計(jì)軟件結(jié)構(gòu)的第一層。第一層至少要有輸入、輸出和變換三種功能的模塊,即為每個(gè)邏輯輸入設(shè)計(jì)一個(gè)輸入模塊,其功能為向頂層模塊提供相應(yīng)的數(shù)據(jù),如圖8.14中的f3;為每個(gè)邏輯輸出設(shè)計(jì)一個(gè)輸出模塊,其功能為輸出頂層模塊的信息,如圖8.14中的f7,f8。同時(shí),為變換中心設(shè)計(jì)一個(gè)變換模塊,它的功能是將邏輯輸入進(jìn)行變換加工,然后邏輯輸出,如圖8.14中,將f3變換成f7和f8。這些模塊之間的數(shù)據(jù)傳送應(yīng)該與DFD相對應(yīng)。2.設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層——變換結(jié)構(gòu)圖8.14變換分析設(shè)計(jì)舉例圖8.14變換分析設(shè)計(jì)舉例
3.設(shè)計(jì)中、下層模塊對第一層的輸入、變換及輸出模塊自頂向下、逐層分解。1)輸入模塊的下屬模塊的設(shè)計(jì)輸入模塊的功能是向它的調(diào)用模塊提供數(shù)據(jù),所以必須要有數(shù)據(jù)來源。這樣輸入模塊應(yīng)由接收數(shù)據(jù)和轉(zhuǎn)換成調(diào)用模塊所需的信息兩部分組成。因此,每個(gè)輸入模塊可以設(shè)計(jì)成兩個(gè)下屬模塊:一個(gè)接收,一個(gè)轉(zhuǎn)換。用類似的方法一直分解下去,直到物理輸入端。如圖8.14中模塊“getf3”和“getf2”的分解。模塊“getf1”為物理輸入模塊。3.設(shè)計(jì)中、下層模塊2)輸出模塊的下屬模塊的設(shè)計(jì)輸出模塊的功能是將它的調(diào)用模塊產(chǎn)生的結(jié)果送出,它由將數(shù)據(jù)轉(zhuǎn)換成下屬模塊所需的形式和發(fā)送數(shù)據(jù)兩部分組成。這樣每個(gè)輸出模塊可以設(shè)計(jì)成兩個(gè)下屬模塊:一個(gè)轉(zhuǎn)換,一個(gè)發(fā)送,一直到物理輸出端。如圖8.14中,模塊“putf7”,“putf8”和“putf10”的分解。模塊“putf9”和“putf11”為物理輸出模塊。3)變換模塊的下屬模塊的設(shè)計(jì)根據(jù)DFD中變換中心的組成情況,按照模塊獨(dú)立性的原則來組織其結(jié)構(gòu),一般對DFD中每個(gè)基本加工建立一個(gè)功能模塊,如圖8.14中模塊“C”,“D”和“E”。2)輸出模塊的下屬模塊的設(shè)計(jì)
4.設(shè)計(jì)的優(yōu)化以上步驟設(shè)計(jì)出的軟件結(jié)構(gòu)僅僅是初始結(jié)構(gòu),還必須根據(jù)設(shè)計(jì)準(zhǔn)則對初始結(jié)構(gòu)精細(xì)和改進(jìn),以下為提供的求精辦法。(1)輸入部分的求精:對每個(gè)物理輸入設(shè)置專門模塊,以體現(xiàn)系統(tǒng)的外部接口;其他輸入模塊并非真正輸入,當(dāng)它與轉(zhuǎn)換數(shù)據(jù)的模塊都很簡單時(shí),可將它們合并成一個(gè)模塊。(2)輸出部分的求精:為每個(gè)物理輸出設(shè)置專門模塊,同時(shí)注意把相同或類似的物理輸出模塊合并在一起,以減低耦合度。(3)變換部分的求精:根據(jù)設(shè)計(jì)準(zhǔn)則,對模塊進(jìn)行合并或調(diào)整。4.設(shè)計(jì)的優(yōu)化總之,軟件結(jié)構(gòu)的求精,帶有很大的經(jīng)驗(yàn)性。往往形成DFD中的加工與SC中的模塊之間是一對一的映射關(guān)系,然后再修改。但對于一個(gè)實(shí)際問題,可能把DFD中的兩個(gè)甚至多個(gè)加工組成一個(gè)模塊,也可能把DFD中的一個(gè)加工擴(kuò)展為兩個(gè)或更多個(gè)模塊,根據(jù)具體情況要靈活掌握設(shè)計(jì)方法,以求設(shè)計(jì)出由高內(nèi)聚和低耦合的模塊所組成的、具有良好特性的軟件結(jié)構(gòu)??傊浖Y(jié)構(gòu)的求精,帶有很大的經(jīng)驗(yàn)性。
8.6.4事務(wù)分析設(shè)計(jì)對于具有事務(wù)型特征的DFD,則采用事務(wù)分析的設(shè)計(jì)方法。結(jié)合圖8.15,說明該方法的設(shè)計(jì)過程。1)確定DFD中的事務(wù)中心和加工路徑當(dāng)DFD中的某個(gè)加工具有明顯地將一個(gè)輸入數(shù)據(jù)流分解成多個(gè)發(fā)散的輸出數(shù)據(jù)流時(shí),該加工就是事務(wù)中心。從事務(wù)中心輻射出去的數(shù)據(jù)流為各個(gè)加工路徑。2)設(shè)計(jì)軟件結(jié)構(gòu)的頂層和第一層——事務(wù)結(jié)構(gòu)設(shè)計(jì)一個(gè)頂層模塊,它是一個(gè)主模塊,有兩個(gè)功能,一是接收數(shù)據(jù),二是根據(jù)事務(wù)類型調(diào)度相應(yīng)的處理模塊。事務(wù)型軟件結(jié)構(gòu)應(yīng)包括接收分支和發(fā)送分支兩個(gè)部分。8.6.4事務(wù)分析設(shè)計(jì)圖8.15事務(wù)分析設(shè)計(jì)舉例圖8.15事務(wù)分析設(shè)計(jì)舉例(1)接收分支:負(fù)責(zé)接收數(shù)據(jù),它的設(shè)計(jì)與變換型DFD的輸入部分設(shè)計(jì)方法相同。(2)發(fā)送分支:通常包含一個(gè)調(diào)度模塊,它控制管理所有的下層的事務(wù)處理模塊。當(dāng)事務(wù)類型不多時(shí),調(diào)度模塊可與主模塊合并。3)事務(wù)結(jié)構(gòu)中、下層模塊的設(shè)計(jì)、優(yōu)化等工作同變換結(jié)構(gòu)。(1)接收分支:負(fù)責(zé)接收數(shù)據(jù),它的設(shè)計(jì)
8.6.5綜合型數(shù)據(jù)流圖與分層數(shù)據(jù)流圖映射成軟件結(jié)構(gòu)的設(shè)計(jì)
1.綜合DFD的映射一個(gè)大型系統(tǒng)的DFD中,既有變換流,又有事務(wù)流,屬于綜合
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國運(yùn)輸?shù)鞍卓贵w項(xiàng)目投資可行性研究分析報(bào)告
- 二零二五年度新型邊坡綠化施工服務(wù)合同
- 2025年度航空航天零部件采購長期合同
- 二零二五年度照明工程結(jié)算與支付合同范本
- 2025年度植保無人機(jī)飛防作業(yè)與農(nóng)產(chǎn)品質(zhì)量安全合同
- 2025年度公共場所衛(wèi)生保潔人員聘用合同
- 2025年度婚姻中介服務(wù)與婚后教育服務(wù)合同
- 2025年專科疾病防治服務(wù)項(xiàng)目項(xiàng)目風(fēng)險(xiǎn)識別與評估綜合報(bào)告
- 電子商務(wù)平臺(tái)用戶體驗(yàn)創(chuàng)新實(shí)踐
- 社交媒體大數(shù)據(jù)與商業(yè)策略關(guān)系研究
- GB∕T 1732-2020 漆膜耐沖擊測定法
- 我國油菜生產(chǎn)機(jī)械化技術(shù)(-119)
- 2022《化工裝置安全試車工作規(guī)范》精選ppt課件
- 吞咽障礙篩查表
- Q∕GDW 12067-2020 高壓電纜及通道防火技術(shù)規(guī)范
- 汽車系統(tǒng)動(dòng)力學(xué)-輪胎動(dòng)力學(xué)
- 10T每天生活污水處理設(shè)計(jì)方案
- 艾琳歆日內(nèi)交易2011-2月至4月份圖表
- 中國民航國內(nèi)航空匯編航路314系列航線
- 山西特色文化簡介(課堂PPT)
- 工業(yè)廠房工程技術(shù)標(biāo)(共93頁)
評論
0/150
提交評論