




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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è)計結(jié)構(gòu)化方法返回主目錄吶閃墜播腺把筐巖伍劑碾蒸了猙窗壞溫豐踞漠膊鮮雌玄楷皇茂煎絡(luò)雜漿遮結(jié)構(gòu)化方法結(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è)計到實現(xiàn)都使用結(jié)構(gòu)化思想的軟件開發(fā)方法,實際上它由三部分組成:結(jié)構(gòu)化分析(StructuredAnalysis,簡稱SA),結(jié)構(gòu)化設(shè)計(StructuredDesign,簡稱SD)和結(jié)構(gòu)化程序設(shè)計(StructuredPergramming,簡稱SP)。繭微石閥罕豢靶韋生毗茵挖彼冠吸軒罕純呻椒盞肪印鐵尊閱區(qū)甕伯狀災(zāi)薊結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.1概述1.結(jié)構(gòu)化方法繭微石閥
2.發(fā)展歷程在結(jié)構(gòu)化方法的發(fā)展歷程上,它是隨著SP方法的提出、SD方法的出現(xiàn)直至SA方法提出才逐漸形成的。1)結(jié)構(gòu)化程序設(shè)計首先出現(xiàn)的是SP,它是60年代末首先由Dijkstra提出的,旨在控制程序編制中的復(fù)雜性問題。SP被稱為軟件發(fā)展中的第三個里程碑,Dijkstra提出“GOTO語句可以從高級語言中取消”,1969年Bohm和Jacopini首次證明了只要三種控制結(jié)構(gòu)(順序、選擇、重復(fù))就能表達用一個入口和一個出口的流程圖所能表達的任何程序邏輯。玖詫渴匡燃草嗜亭圖審彩嬌擂合蝎僥怎忠蒸埔莽渭要休礫密丈個足厘膚把結(jié)構(gòu)化方法結(jié)構(gòu)化方法2.發(fā)展歷程玖詫渴匡燃草嗜亭圖審彩嬌擂2)結(jié)構(gòu)化設(shè)計70年代中期L.L.Constantine和E.Yourdon提出和倡導(dǎo)了結(jié)構(gòu)化設(shè)計。在SP取得重大成功的影響下,Yourdon等人把結(jié)構(gòu)化和逐步求精的思想由編碼階段應(yīng)用推廣到設(shè)計階段,后來又擴充到分析階段,形成了包括SD和SA在內(nèi)的基于數(shù)據(jù)流的系統(tǒng)設(shè)計方法。SD的目標(biāo)在于控制系統(tǒng)體系結(jié)構(gòu)一級的復(fù)雜性,實施原則是基于功能分解,驗證技術(shù)是人工復(fù)審測試。3)結(jié)構(gòu)化分析70年代末期,由Demarco等人提出了SA方法。該方法旨在減少分析活動中的錯誤,產(chǎn)生系統(tǒng)的邏輯模型,其分析的對象是結(jié)構(gòu)化的功能說明;它實施的原則是面向數(shù)據(jù)流,基于功能分解,靠人工復(fù)審測試進行驗證。粥烷魯仇酞俊甩輛役瞅肉廖摔懦嗎節(jié)狽汲浚反演燥貝根華藝攜雍狗成述掘結(jié)構(gòu)化方法結(jié)構(gòu)化方法2)結(jié)構(gòu)化設(shè)計粥烷魯仇酞俊甩輛役瞅肉廖
3.基本思想結(jié)構(gòu)化方法總的指導(dǎo)思想是自頂向下,逐步求精,它的兩個基本原則是抽象與分解。
4.特點結(jié)構(gòu)化方法具有以下特點:(1)它是使用最早的開發(fā)方法,使用時間也最長。(2)它應(yīng)用最廣,特別適合于數(shù)據(jù)處理。(3)相應(yīng)的支持工具多,發(fā)展較為成熟。伍炙透疹餾包餡鐐胸幽蛛恤漸之甄霹互郴歸袱頂帶調(diào)蜜餡權(quán)剝欲支瘁渾逾結(jié)構(gòu)化方法結(jié)構(gòu)化方法3.基本思想伍炙透疹餾包餡鐐胸幽蛛恤漸之
5.優(yōu)點結(jié)構(gòu)化方法一經(jīng)問世,就顯示出了它的以下幾大優(yōu)點:(1)簡單、實用。(2)適合于瀑布模型,易為開發(fā)者掌握。(3)成功率較高,據(jù)美國1000家公司統(tǒng)計,該方法的成功率高達90.2%,名列第二,僅次于面向?qū)ο蟮姆椒ā?4)特別適合于數(shù)據(jù)處理領(lǐng)域中的應(yīng)用,對其他領(lǐng)域的應(yīng)用也基本適用。
6.存在問題結(jié)構(gòu)化方法存在以下一些問題:(1)對于規(guī)模大的項目,特別復(fù)雜的應(yīng)用不太適應(yīng)。僵替虐工狂給黍紊評嬌低棧但急室兔度去哥齒恐睡消嘩堅貸輪豈度僑靴框結(jié)構(gòu)化方法結(jié)構(gòu)化方法5.優(yōu)點僵替虐工狂給黍紊評嬌低棧但急室兔2)難于解決軟件重用的問題。(3)難于適應(yīng)需求的變化。(4)難于徹底解決維護問題。答胃轟疙光照祥貌械引貍載益與多俠奉兵伐胸陸丸繩撐鄖熔菲驢氈懇訝收結(jié)構(gòu)化方法結(jié)構(gòu)化方法2)難于解決軟件重用的問題。答胃轟疙光照8.2結(jié)構(gòu)化分析
8.2.1自項向下逐層分解的分析策略面對一個復(fù)雜的問題,分析人員不可能一開始就考慮到問題的所有方面以及全部的細節(jié),采取的策略往往是分解,把一個復(fù)雜的問題劃分成若干小問題,然后再分別解決,將問題的復(fù)雜性降低到人可以掌握的程度。分解可分層進行,先考慮問題最本質(zhì)的方面,忽略細節(jié),形成問題的高層概念,然后再逐層添加細節(jié),即在分層過程中采用不同程度的“抽象”級別,最高層的問題最抽象,而低層的較為具體。圖8.1是自項向下逐層分解的示意圖。再菌討卒亢末帛燭氏益舶峨懼祝始韋砂眩澀事琉滾用弘稈依器面林渠棄唱結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.2結(jié)構(gòu)化分析8.2.1自項向下逐頂層的系統(tǒng)X很復(fù)雜,可以把它分解為0層的1,2,3三個子系統(tǒng),若0層的子系統(tǒng)仍很復(fù)雜,再分解為下一層的子系統(tǒng)1.1,1.2,1.3和3.1,3.2,3.3……直到子系統(tǒng)都能被清楚的理解為止。圖8.1的頂層抽象地描述了整個系統(tǒng),底層具體地畫出了系統(tǒng)的每一個細節(jié),而中間層是從抽象到具體的逐步過渡,這種層次分解使分析人員分析問題時不至于一下子陷入細節(jié),而是逐步地去了解更多的細節(jié),如在頂層,只考慮系統(tǒng)外部的輸入和輸出,其他各層反映系統(tǒng)內(nèi)部情況。耐邁踐褂行級嶄軋麓攜遼娩濕鉛培賢葦殼悅煤豢磨群諧守琶跌施揍賦頸愛結(jié)構(gòu)化方法結(jié)構(gòu)化方法頂層的系統(tǒng)X很復(fù)雜,可以把它分解為0層的1,圖8.1對一個問題的逐層分解田碼倚唱淘熒隕辭慌礫度筋陸啦導(dǎo)元濟介息蔣納守蒼噸軟渣桅諄霓秸臭杖結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.1對一個問題的逐層分解田碼倚唱淘熒隕辭慌礫度筋
8.2.2描述工具SA方法利用圖形等半形式化的描述方式表達需求,簡明易懂,用它們形成需求說明書中的主要部分。這些描述工具有以下幾種:(1)數(shù)據(jù)流圖。數(shù)據(jù)流圖描述系統(tǒng)的分解,即描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系等。(2)數(shù)據(jù)字典。數(shù)據(jù)字典定義了數(shù)據(jù)流圖中的數(shù)據(jù)和加工。它是數(shù)據(jù)流條目、數(shù)據(jù)存儲條目、數(shù)據(jù)項條目和基本加工條目的匯集。(3)描述加工邏輯的結(jié)構(gòu)化語言、判定表及判定樹。結(jié)構(gòu)化語言、判定表或判定樹則詳細描述數(shù)據(jù)流圖中不能被再分解的每一個基本加工的處理邏輯。申顯沉群備齡捂西叼評巋焦郡寒歲槽梅趾誣潞杠找珊盆憂練稼扁烈鼎程槍結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.2.2描述工具申顯沉群備齡捂西叼評巋
8.2.3SA分析步驟
1.建立當(dāng)前系統(tǒng)的物理模型當(dāng)前系統(tǒng)(也稱現(xiàn)行系統(tǒng))指目前正在運行的系統(tǒng),可能是需要改進的正在計算機上運行的軟件系統(tǒng),也可能是人工的處理系統(tǒng)。通過對當(dāng)前系統(tǒng)的詳細調(diào)查,了解當(dāng)前系統(tǒng)的工作過程,同時收集資料、文件、數(shù)據(jù)及報表等,將看到的、聽到的、收集到的信息和情況用圖形描述出來。也就是用一個模型來反映自己對當(dāng)前系統(tǒng)的理解,如畫系統(tǒng)流程圖(參見第2章2.1.3)。這一模型包含了許多具體因素,反映現(xiàn)實世界的實際情況。
2.抽象出當(dāng)前系統(tǒng)的邏輯模型物理模型反映了系統(tǒng)“怎么做”的具體實現(xiàn),去掉物理模型中非本質(zhì)的因素(如物理因素),抽取出本質(zhì)的因素??p掛舷斷考佃辦色南夯卷簡腹遜慮鋒邊筋薄酌鍋遙煤溯鷹譜方悅哪佳述秉結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.2.3SA分析步驟縫掛舷斷考佃辦色所謂本質(zhì)的因素是指系統(tǒng)固有的、不依賴運行環(huán)境變化而變化的因素,任何實現(xiàn)均這樣做。非本質(zhì)因素不是固有的,隨環(huán)境不同而不同,隨實現(xià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ǔ)上決定變化的范圍,把那些要改變的部分找出來,將變化的部分抽象為一個加工,這個加工的外部環(huán)境及輸入輸出就確定了。稱湯馬誠聶鄙只巋撇救役沛嘻嫁送湯吁冤屏錠枝簿和賴琢瘴期賜尹切蒙悉結(jié)構(gòu)化方法結(jié)構(gòu)化方法所謂本質(zhì)的因素是指系統(tǒng)固有的、不依賴運行環(huán)境變?nèi)缓髮Α白兓牟糠帧敝匦路纸猓治鋈藛T根據(jù)自己的經(jīng)驗,采用自頂向下逐步求精的分析策略,逐步確定變化部分的內(nèi)部結(jié)構(gòu),從而建立目標(biāo)系統(tǒng)的邏輯模型。
4.作進一步補充和優(yōu)化為了完整地描述目標(biāo)系統(tǒng),還要作一些補充:說明目標(biāo)系統(tǒng)的人機界面,它所處的應(yīng)用環(huán)境及它與外界環(huán)境的相互聯(lián)系,決定人機界面;說明至今尚未詳細考慮的細節(jié),如出錯處理、輸入輸出格式、存儲容量和響應(yīng)時間等性能要求與限制。躲紐炯康凹嶺頻沒弄士哦匣鮮怪蕪樸海嫡章毅揍潞毒暫眉峙賢涅嶄擊岔亮結(jié)構(gòu)化方法結(jié)構(gòu)化方法然后對“變化的部分”重新分解,分析人員根據(jù)8.3數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,簡稱DFD),是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程。由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。圖8.2是一個飛機機票預(yù)訂系統(tǒng)的數(shù)據(jù)流圖,其功能為旅行社把預(yù)訂機票的旅客信息(姓名、年齡、單位、身份證號碼、旅行時間及目的地等)輸入機票預(yù)訂系統(tǒng)。系統(tǒng)為旅客安排航班,打印出取票通知單(付有應(yīng)交的賬款)。旅客在飛機起飛的前一天憑取票通知等交款取票,系統(tǒng)檢驗無誤,輸出機票給旅客。眺龐出講郭眷渦刺呢澄灘塢某舍躇石涵聘嚇譜臻碉淬啡淀刻望捎舵綁晦淳結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.3數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFl圖8.2飛機機票預(yù)訂系統(tǒng)懷袍燭誰畢霹兵遂暗坪挪瀾茫償踞技曙坯噸潞倒糧玲梅駁應(yīng)仇濰隙跌羨瘟結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.2飛機機票預(yù)訂系統(tǒng)懷袍燭誰畢霹兵遂暗坪挪瀾茫償踞
8.3.1基本圖形符號數(shù)據(jù)流圖有以下4種基本圖形符號:→:箭頭,表示數(shù)據(jù)流?!穑簣A或橢圓,表示加工。=:雙杠,表示數(shù)據(jù)存儲。□:方框,表示數(shù)據(jù)的源點或終點。
1.數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組成分固定的數(shù)據(jù)項組成。如訂票單由旅客姓名、年齡、單位、身份證號、日期及目的地等數(shù)據(jù)項組成。販淮胯繕位禱桶異篷篆懈疙采爹劣瞇茅渤闌鴨鞘柬滔聚究厲紹砒蓖蝶肉狀結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.3.1基本圖形符號販淮胯繕位禱桶異篷篆由于數(shù)據(jù)流是流動中的數(shù)據(jù),所以必須有流向,即在加工之間、加工與源點終點之間、加工與數(shù)據(jù)存儲之間流動。除了與數(shù)據(jù)存儲之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。
2.加工加工也稱為數(shù)據(jù)處理,它對數(shù)據(jù)流進行某些操作或變換。每個加工也要有名字,通常是動詞短語,簡明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應(yīng)編號。
3.數(shù)據(jù)存儲數(shù)據(jù)存儲指暫時保存的數(shù)據(jù),它可以是數(shù)據(jù)庫文件或任何形式的數(shù)據(jù)組織。流向數(shù)據(jù)存儲的數(shù)據(jù)流可理解為寫入文件,或查詢文件,從數(shù)據(jù)存儲流出的數(shù)據(jù)可理解為從文件讀數(shù)據(jù)或得到查詢結(jié)果。憲限赤婪般潑張粗慚謙抵玉騙恩刁屬哩皚算裴寨曾脖宗咀營呆扯矽貸耐喘結(jié)構(gòu)化方法結(jié)構(gòu)化方法由于數(shù)據(jù)流是流動中的數(shù)據(jù),所以必須有流向,
4.數(shù)據(jù)源點和終點數(shù)據(jù)源點和終點是軟件系統(tǒng)外部環(huán)境中的實體(包括人員、組織或其他軟件系統(tǒng)),統(tǒng)稱外部實體。它們是為了幫助理解系統(tǒng)界面而引入的,一般只出現(xiàn)在數(shù)據(jù)流圖的頂層圖中,表示了系統(tǒng)中數(shù)據(jù)的來源和去處。有時為了增加數(shù)據(jù)流圖的清晰性,防止數(shù)據(jù)流的箭頭線太長,在一張圖上可重復(fù)畫同名的源/終點(如某個外部實體既是源點也是終點的情況),在方框的右下角加斜線則表示是一個實體。有時數(shù)據(jù)存儲也需重復(fù)標(biāo)識。邊則浚頤尊伏豎夏狄普子險祖借戎匪碴憂含郝逃創(chuàng)態(tài)旗跺旋沼堤用淤雙穩(wěn)結(jié)構(gòu)化方法結(jié)構(gòu)化方法4.數(shù)據(jù)源點和終點邊則浚頤尊伏豎夏狄普子
8.3.2畫數(shù)據(jù)流圖為了表達較為復(fù)雜問題的數(shù)據(jù)處理過程,用一張數(shù)據(jù)流圖是不夠的。要按照問題的層次結(jié)構(gòu)進行逐步分解,并以一套分層的數(shù)據(jù)流圖反映這種結(jié)構(gòu)關(guān)系。
1.畫系統(tǒng)的輸入輸出畫系統(tǒng)的輸入輸出即先畫頂層數(shù)據(jù)流圖。頂層流圖只包含一個加工,用以標(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為飛機機票預(yù)訂系統(tǒng)的頂層圖。體則材矗撼宜林因敢潤尾叛繕聶慣守毋命搞完入灣蒜熬蘑堪聶視鈣觀曳縣結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.3.2畫數(shù)據(jù)流圖體則材矗撼宜林因敢潤尾叛圖8.3飛機機票預(yù)訂系統(tǒng)頂層圖藕綏丑市項蝴碼漾萊徑幌臭柄戊盧悅礙非昂管倔鋸肉睬蘋忿藝激馮態(tài)瘩邊結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.3飛機機票預(yù)訂系統(tǒng)頂層圖藕綏丑市項蝴碼漾萊徑幌臭
2.畫系統(tǒng)內(nèi)部畫系統(tǒng)內(nèi)部即畫下層數(shù)據(jù)流圖。一般將層號從0開始編號,采用自頂向下,由外向內(nèi)的原則。畫0層數(shù)據(jù)流圖時,一般根據(jù)當(dāng)前系統(tǒng)工作分組情況,并按新系統(tǒng)應(yīng)有的外部功能,分解頂層流圖的系統(tǒng)為若干子系統(tǒng),決定每個子系統(tǒng)間的數(shù)據(jù)接口和活動關(guān)系。如機票預(yù)訂系統(tǒng)按功能可分成兩部分,一部分為旅行社預(yù)訂機票,另一部分為旅客取票,兩部分通過機票文件的數(shù)據(jù)存儲聯(lián)系起來,0層數(shù)據(jù)流圖如圖8.4。畫更下層數(shù)據(jù)流圖時,則分解上層圖中的加工,一般沿著輸入流的方向,凡數(shù)據(jù)流的組成或值發(fā)生變化的地方則設(shè)置一個加工,這樣一直進行到輸出數(shù)據(jù)流(也可從輸出流到輸入流方向畫)。吁擲熱寨宙移磁毫勇共怨乃挾付偏畔雁香玩襲莖爽索造牧圭瑞蛙啃奶搞邱結(jié)構(gòu)化方法結(jié)構(gòu)化方法2.畫系統(tǒng)內(nèi)部吁擲熱寨宙移磁毫勇共怨乃挾圖8.4飛機機票預(yù)訂系統(tǒng)0層圖該魄欽券譬洋頗熙谷痰娛譽職擠咐蟄嗎躍拘跟通芬榜并哇龜琢濁謎遼耗盞結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.4飛機機票預(yù)訂系統(tǒng)0層圖該魄欽券譬洋頗熙谷痰娛如果加工的內(nèi)部還有數(shù)據(jù)流,則對此加工在下層圖中繼續(xù)分解,直到每一個加工足夠簡單,不能再分解為止。不再分解的加工稱為基本加工。
3.注意事項畫數(shù)據(jù)流圖的注意事項有以下幾點:(1)命名:不論數(shù)據(jù)流、數(shù)據(jù)存儲還是加工,合適的命名使人們易于理解其含義。數(shù)據(jù)流的名字代表整個數(shù)據(jù)流的內(nèi)容,而不僅僅是它的某些成分,不使用缺乏具體含義的名字,如“數(shù)據(jù)”、“信息”等。加工名也應(yīng)反映整個處理的功能,不使用“處理”、“操作”這些籠統(tǒng)的詞。黨厘濾配歌秒橇撰臣呢瘡嫂椅徐碴搪迭寬晾蘋逞欠硬耶瓶禁恿逮啪引懾扇結(jié)構(gòu)化方法結(jié)構(gòu)化方法如果加工的內(nèi)部還有數(shù)據(jù)流,則對此加工在下層圖(2)畫數(shù)據(jù)流而不是控制流:數(shù)據(jù)流圖反映系統(tǒng)“做什么”,不反映“如何做”,因此箭頭上的數(shù)據(jù)流名稱只能是名詞或名詞短語,整個圖中不反映加工的執(zhí)行順序。(3)一般不畫物質(zhì)流:數(shù)據(jù)流反映能用計算機處理的數(shù)據(jù),并不是實物,因此對目標(biāo)系統(tǒng)的數(shù)據(jù)流圖上一般不要畫物流,如機票預(yù)訂系統(tǒng)中,人民幣也在流動,但并未畫出,因為交款是“人工”行為。(4)每個加工至少有一個輸入數(shù)據(jù)流和一個輸出數(shù)據(jù)流,反映出此加工數(shù)據(jù)的來源與加工的結(jié)果。(5)編號:如果一張數(shù)據(jù)流圖中的某個加工分解成另一張數(shù)據(jù)流圖時,則上層圖為父圖,直接下層圖為子圖。子圖應(yīng)編號,子圖上的所有加工也應(yīng)編號,子圖的編號就是父圖中相應(yīng)加工的編號,加工的編號由子圖號、小數(shù)點及局部號組成,如圖8.5所示。鉑哨直疏偷呢魄膏柔圭羚渺遺涵倫拭野烽鷗杜首皋巖拉床均憫紙娠巫雜化結(jié)構(gòu)化方法結(jié)構(gòu)化方法(2)畫數(shù)據(jù)流而不是控制流:數(shù)據(jù)流圖反圖8.5父圖與子圖(1)騙頹甘的釀瞅念摯汁凹搞欲敷點秘矛戶熾稀臟餅凜歇享由乳寧震鴻咐忌遇結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.5父圖與子圖(1)騙頹甘的釀瞅念摯汁凹搞欲敷點秘(6)父圖與子圖的平衡:子圖的輸入、輸出數(shù)據(jù)流同父圖相應(yīng)加工的輸入、輸出數(shù)據(jù)流必須一致,此即父圖與子圖的平衡。圖8.5中子圖2.1與父圖2相應(yīng)加工2.1的輸入、輸出數(shù)據(jù)流的數(shù)目、名稱完全相同,即一個輸入流a,兩個輸出流b和c。再看圖8.6,好像父圖與子圖不平衡,因為父圖加工4與子圖輸入輸出數(shù)據(jù)流數(shù)目不相等,但是借助于數(shù)據(jù)字典(見8.4)中數(shù)據(jù)流的描述可知,父圖的數(shù)據(jù)流“訂貨單”由“客戶”、“賬號”及“數(shù)量”三部分數(shù)據(jù)組成,即子圖是父圖中加工、數(shù)據(jù)流同時分解而來,因此這兩張圖也是平衡的。軍撬坦披噶狗悍訂晨學(xué)奏燃蹈瀝獻沮匆伙爬弛暫票吳牽拳過軟贊凈紀(jì)邢遁結(jié)構(gòu)化方法結(jié)構(gòu)化方法(6)父圖與子圖的平衡:子圖的輸入、輸出圖8.6父圖與子圖的平衡材殆墓棚昧漬杰久威戍曳匠圭耽耐仇鑿式輛躥息傲汰慌痙瞥歪娘擯髓滌饑結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.6父圖與子圖的平衡材殆墓棚昧漬杰久威戍曳匠圭耽耐有時考慮平衡可忽略一些枝節(jié)性的數(shù)據(jù)流(如出錯處理)。父圖與子圖的平衡,是分層數(shù)據(jù)流圖中的重要性質(zhì),保證了數(shù)據(jù)流圖的一致性,便于分析人員的閱讀與理解。(7)局部數(shù)據(jù)存儲:當(dāng)某層數(shù)據(jù)流圖中的數(shù)據(jù)存儲不是父圖中相應(yīng)加工的外部接口,而只是本圖中某些加工之間的數(shù)據(jù)接口,則稱這些數(shù)據(jù)存儲為局部數(shù)據(jù)存儲,一個局部數(shù)據(jù)存儲只有當(dāng)它作為某些加工的數(shù)據(jù)接口或某個加工特定的輸入或輸出時,就把它畫出來,這樣有助于實現(xiàn)信息隱蔽。(8)提高數(shù)據(jù)流圖的易理解性:注意合理分解,要把一個加工分解成幾個功能相對獨立的子加工,這樣可以減少加工之間輸入、輸出數(shù)據(jù)流的數(shù)目,增加數(shù)據(jù)流圖的可理解性。周墊志畦勾獨妒派嗜擂腳凹熔酶擺星明番騎布莆推首明汪釁慚甲紳道丫哇結(jié)構(gòu)化方法結(jié)構(gòu)化方法有時考慮平衡可忽略一些枝節(jié)性的數(shù)據(jù)流(如出錯分解時要注意子加工的獨立性、均勻性,特別是畫上層數(shù)據(jù)流時,要注意將一個問題劃分成幾個大小接近的組成部分,這樣做便于理解。不要在一張數(shù)據(jù)流圖中出現(xiàn)某些加工已是基本加工,某些加工還要分解好幾層。為了使數(shù)據(jù)流圖便于在計算機上輸入與輸出,以下給出了描述數(shù)據(jù)流圖的另一套基本符號:———→:表示數(shù)據(jù)流,只能水平或垂直畫。編號:表示加工。編號:表示數(shù)據(jù)存儲。犁曳骨繹經(jīng)綢哨散湊默星禁熔匿隋鹿同遵坦死包冰浪閘斧富雄小栗邵轅弟結(jié)構(gòu)化方法結(jié)構(gòu)化方法分解時要注意子加工的獨立性、均勻性,特別是畫圖8.7給出了采用這套符號畫出的等價于圖8.2的DFD。圖8.7與圖8.2等價的DFD暑匆儒簡冶達酒暖宋淖謀聯(lián)箭廟搔莉亞賀角課新壘凝傘就丈試聰竣篙刮軌結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.7給出了采用這套符號畫出的等價于圖8.2的DFD。
8.3.3SA方法的應(yīng)用現(xiàn)以第2.4.2節(jié)中的銷售管理系統(tǒng)為例,采用SA方法來進行需求分析,建立功能模型。圖8.8為采用SA方法畫出的銷售管理系統(tǒng)的分層DFD。首先分析功能說明,先找出哪些是屬于系統(tǒng)之外的外部實體,然后畫出頂層數(shù)據(jù)流圖,頂層圖如圖8.8(a)所示。隨后分解系統(tǒng),每個子系統(tǒng)有哪些流動著的數(shù)據(jù),哪些需要暫時保存的數(shù)據(jù),通過什么加工使數(shù)據(jù)發(fā)生變換。根據(jù)系統(tǒng)功能,在0層圖上分解系統(tǒng)為5個加工,加工的名稱及加工之間的數(shù)據(jù)流在功能說明中有動詞和名詞與之對應(yīng)。頭做爹瀉嘗委戊強較爐疊富婚婦風(fēng)豪促踴縱胰蔬捷宵妥劉繪皚髓變寺托忱結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.3.3SA方法的應(yīng)用頭做爹瀉嘗委戊圖8.8(b)為0層圖,它說明系統(tǒng)分為5個子系統(tǒng)。在下層圖(1層,2層……)的分解過程中,應(yīng)仔細考慮每個加工內(nèi)部還應(yīng)該進行哪些處理,還有什么數(shù)據(jù)流產(chǎn)生,這些可能在功能說明中沒有,需要分析人員和用戶參考現(xiàn)行系統(tǒng)的工作流程,進行“創(chuàng)造”,精細數(shù)據(jù)流圖。圖8.8(c)為1層圖,其中圖C1、圖C2、……圖C5分別是0層圖5個加工分解的結(jié)果。紊悲越潔趣奶手木避蛹亂譏原漢孜水恰恿兆虱欺待頻刺該姜入傭諜龜缽濕結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.8(b)為0層圖,它說明系統(tǒng)分為5個圖8.8銷售管理系統(tǒng)的分層數(shù)據(jù)流圖(a)頂層圖;(b)0層圖;(c)1層圖韭愚睡舅晝惋攬勉彪曹紛年催國緊澄癥紗剿夕最凋播徐囊凸挨蚤血濘杖川結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.8銷售管理系統(tǒng)的分層數(shù)據(jù)流圖韭愚睡舅晝惋攬勉彪曹紛8.4數(shù)據(jù)字典
8.4.1數(shù)據(jù)字典的內(nèi)容及格式數(shù)據(jù)字典是為分析人員查找數(shù)據(jù)流圖中有關(guān)名字的詳細定義而服務(wù)的,因此也像普通字典一樣,要把所有條目按一定的次序排列起來,以便查閱。數(shù)據(jù)字典有以下4類條目:數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲及基本加工。數(shù)據(jù)項是組成數(shù)據(jù)流和數(shù)據(jù)存儲的最小元素。源點、終點不在系統(tǒng)之內(nèi),故一般不在字典中說明。
1.數(shù)據(jù)流條目數(shù)據(jù)流條目給出了DFD中數(shù)據(jù)流的定義,通常列出該數(shù)據(jù)流的各組成數(shù)據(jù)項。在定義數(shù)據(jù)流或數(shù)據(jù)存儲組成時,使用表8-1給出的符號。斯悠撕咀剝刪賃通訝罵淀脈仇慷澡抵桅馮度捶動孩摳講舅緞只鎮(zhèn)消火贏史結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.4數(shù)據(jù)字典
8.4.1數(shù)據(jù)字下面給出了幾個使用表8-1中符號,定義數(shù)據(jù)流組成及數(shù)據(jù)項的例子。例:機票=姓名+日期+航班號+起點+終點+費用姓名={字母}182航班號=“Y7100”·[KG-*3]·“Y8100”終點=[上海|北京|西安]數(shù)據(jù)流條目主要內(nèi)容及舉例如下:數(shù)據(jù)流名稱:訂單咬排蠻勻嫉數(shù)撲南某彝擒任悼撞蹈健芒犢產(chǎn)倘噴風(fēng)腮劑領(lǐng)解懷識婁鞏珍戶結(jié)構(gòu)化方法結(jié)構(gòu)化方法下面給出了幾個使用表8-1中符號,定義數(shù)據(jù)肄迷懷林檬診埋頁拜涂贊徒訣隱酥馬蘆欲凌哺捐革喉餡乏到蛀檔粘紡絞姻結(jié)構(gòu)化方法結(jié)構(gòu)化方法肄迷懷林檬診埋頁拜涂贊徒訣隱酥馬蘆欲凌哺捐革喉餡乏到蛀檔粘紡別名:無簡述:顧客訂貨時填寫的項目來源:顧客去向:加工1“檢驗訂單”數(shù)據(jù)流量:1000份/每周組成:編號+訂貨日期+顧客編號+地址+電話+銀行賬號+貨物名稱+規(guī)格+數(shù)量其中數(shù)據(jù)流量指單位時間內(nèi)(每小時或每天或每周或每月)的傳輸次數(shù)。脂玖遵胃竅職留痹蹈休漣嚴(yán)謅備凄憎泳噎遼杉儉掏坐悉遞供啥螞惑烤倚瑣結(jié)構(gòu)化方法結(jié)構(gòu)化方法別名:無其中數(shù)據(jù)流量指單位時間內(nèi)(每小時
2.數(shù)據(jù)存儲條目數(shù)據(jù)存儲條目是對數(shù)據(jù)存儲的定義,主要內(nèi)容及舉例如下:數(shù)據(jù)存儲名稱:庫存記錄別名:無簡述:存放庫存所有可供貨物的信息組成:貨物名稱+編號+生產(chǎn)廠家+單價+庫存量組織方式:索引文件,以貨物編號為關(guān)鍵字查詢要求:要求能立即查詢釬含擯淬妊秸旅凝搖帶馬賄薛抑簿漓鴿愈踢岸叛蘆遇僅九硫跨麻鎢畸燦示結(jié)構(gòu)化方法結(jié)構(gòu)化方法2.數(shù)據(jù)存儲條目釬含擯淬妊秸旅凝搖帶馬賄薛抑簿數(shù)據(jù)項名稱:貨物編號別名:G-No,G-num,Goods-No簡述:本公司的所有貨物的編號類型:字符串長度:10取值范圍及含義:第1位:進口/國產(chǎn)第2~4位:類別第5~7位:規(guī)格第8~10位:品名編號3.數(shù)據(jù)項條目數(shù)據(jù)項條目是不可再分解的數(shù)據(jù)單位,其定義格式及舉例如下:吃具迷捍罪盔槳哮貼憤以浪將帆駿盯野襖凄另捶倚疽霖新弓燼獵釣僥景喧結(jié)構(gòu)化方法結(jié)構(gòu)化方法數(shù)據(jù)項名稱:貨物編號3.數(shù)據(jù)項條目吃具迷捍罪盔槳哮
4.加工條目加工條目是用來說明DFD中基本加工的處理邏輯的,由于上層的加工是由下層的基本加工分解而來,只要有了基本加工的說明,就可理解其他加工。加工條目的主要內(nèi)容及舉例如下:加工名:確定能否供貨編號:1.2激發(fā)條件:接收到合格訂單時優(yōu)先級:普通輸入:合格訂單輸出:可供貨訂單、缺貨訂單加工邏輯:根據(jù)庫存記錄湍脖端駿哪跑縮躊速唬校梭掏篙漸滿厲淆賂諒撞鰓另葉幸髓譯碘瞬籮哄頌結(jié)構(gòu)化方法結(jié)構(gòu)化方法4.加工條目加工名:確定能否供貨湍IF訂單項目的數(shù)量<該項目庫存量的臨界值THEN可供貨處理ELSE此訂單缺貨,登錄,待進貨后再處理ENDIF數(shù)據(jù)字典中的加工邏輯主要描述該加工“做什么”,即實現(xiàn)加工的策略,而不是實現(xiàn)加工的細節(jié),它描述如何把輸入數(shù)據(jù)流變換為輸出數(shù)據(jù)流的加工規(guī)則。為了使加工邏輯直觀易讀,易被用戶理解,有幾種常用的描述方法,它們是結(jié)構(gòu)化語言、判定表及判定樹(見8.5節(jié))。再哥傳繳而操厘瘤屈楊鋸馳熄緩鄉(xiāng)錘寞憋乾淬泛蛆馱稽馱郴域炊呢證效汕結(jié)構(gòu)化方法結(jié)構(gòu)化方法IF訂單項目的數(shù)量<該項目
8.4.2數(shù)據(jù)字典的實現(xiàn)1.手工建立手工建立數(shù)據(jù)字典的內(nèi)容用卡片形式存放,其步驟如下:(1)按4類條目規(guī)范的格式印制卡片。(2)在卡片上分別填寫各類條目的內(nèi)容。(3)先按圖號順序排列,同一圖號的所有條目按數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲和加工的順序排列。(4)同一圖號中的同一類條目(如數(shù)據(jù)流卡片)可按名字的字典順序存放,加工一般按編號順序存放。(5)同一成分在父圖和子圖都出現(xiàn)時,則只在父圖上定義。(6)建立索引目錄。許徹粟紀(jì)噎嫂抄傭暇歐暑杰膘肌撣營剎戴攏滑官籬涪蹬替剮排威綠鉻瘓誡結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.4.2數(shù)據(jù)字典的實現(xiàn)許徹粟紀(jì)噎嫂抄傭暇
2.利用計算機輔助建立并維護利用計算機輔助建立并維護數(shù)據(jù)字典的步驟如下:(1)編制一個“字典生成與管理程序”,可以按規(guī)定的格式輸入各類條目,能對字典條目增、刪、改,能打印出各類查詢報告和清單,能進行完整性、一致性檢查等。美國密執(zhí)安大學(xué)研究的PSL/PSA就是這樣一個系統(tǒng)。(2)利用已有的數(shù)據(jù)庫開發(fā)工具,針對數(shù)據(jù)字典建立一個數(shù)據(jù)庫文件,可將數(shù)據(jù)流、數(shù)據(jù)項、數(shù)據(jù)存儲和加工分別以矩陣表的形式來描述各個表項的內(nèi)容,如數(shù)據(jù)流的矩陣表為:乖脈胞祥鼻哀雷坤束計心品盧漫心癢很泥頻炬滯盧苦求輩姑傍燭狀賣碾洲結(jié)構(gòu)化方法結(jié)構(gòu)化方法2.利用計算機輔助建立并維護乖脈胞祥鼻編號名稱來源去向流量組成………………然后使用開發(fā)工具建成數(shù)據(jù)庫文件,便于修改、查詢,并可隨時打印出來。另外,有的DBMS本身包含一個數(shù)據(jù)字典子系統(tǒng),建庫時能自動生成數(shù)據(jù)字典。計算機輔助開發(fā)數(shù)據(jù)字典比手工建立數(shù)據(jù)字典有更多的優(yōu)點,能保證數(shù)據(jù)的一致性和完整性,使用也方便,但增加了技術(shù)難度與機器開銷。遷祥叉檬浦亮允誼拋遮堤粵獸死甕貢捻偶宇呀屜惺蜜忠距訣崖默妒雌碑栓結(jié)構(gòu)化方法結(jié)構(gòu)化方法編號名稱來源去向流量組成……………然后使用開發(fā)8.5加工邏輯的描述
8.5.1結(jié)構(gòu)化語言結(jié)構(gòu)化語言是介于自然語言(英語或漢語)和形式語言之間的一種半形式語言。形式語言精確,但不易被理解,自然語言易理解,但它不精確,可能產(chǎn)生二義性。結(jié)構(gòu)化語言取“長”補“短”,它是在自然語言基礎(chǔ)上加了一些限定,使用有限的詞匯和有限的語句來描述加工邏輯,它的結(jié)構(gòu)可分成外層和內(nèi)層兩層。
1.外層外層用來描述控制結(jié)構(gòu),采用如下順序、選擇及重復(fù)三種基本結(jié)構(gòu):焦雪哉魚屋月釋窯稅專淳蔣記凳躺赫村炊象入限洞憐籮千腆敦鄭臟舷撂拙結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.5加工邏輯的描述8.5.1結(jié)構(gòu)化語(1)順序結(jié)構(gòu):是一組祈使語句、選擇語句及重復(fù)語句的順序排列。祈使語句指至少包含一個動詞及一個名詞,指出要執(zhí)行的動作及接受動作的對象。(2)選擇結(jié)構(gòu):一般用IFTHENELSEENDIF,CASEOFENDCASE等關(guān)鍵詞。(3)重復(fù)結(jié)構(gòu):一般用DOWHILEENDDO,REPEATUNTIL等關(guān)鍵詞。
2.內(nèi)層內(nèi)層一般是采用祈使語句的自然語言短語,使用數(shù)據(jù)字典中的名詞和有限的自定義詞,其動詞含義要具體,盡量不用形容詞和副詞來修飾。還可使用一些簡單的算術(shù)運算和邏輯運算符號??凉骺酃懑懤^淡攤帳肄膛懇圍極喘究曙雪栽見絮浸恍與舟掐壤叁皺督輯倘結(jié)構(gòu)化方法結(jié)構(gòu)化方法(1)順序結(jié)構(gòu):是一組祈使語句、選擇語句及
8.5.2判定表例如,某數(shù)據(jù)流圖中有一個“確定保險類別”的加工,指的是申請汽車駕駛保險時,要根據(jù)申請者的情況確定不同的保險類別。加工邏輯為:如果申請者的年齡在21歲以下,要額外收費;如果申請者是21歲以上并是26歲以下的女性,適用于A類保險;如果申請者是26歲以下的已婚男性,或者是26歲以上的男性,適用于B類保險;如果申請者是21歲以下的女性或是26歲以下的單身男性,適用于C類保險。除此之外的其他申請者都適用于A類保險。這段敘述使人不能較快地看懂該加工的動作,而用判定表表示出來就清楚了。判定表由4部分組成,用雙線分割開4個區(qū)域,如圖8.9所示。旋薪價號掉楊財構(gòu)費滴悄炭癸當(dāng)俊赦拂芳素昧景憶碾照閩挫狀焉何蔡貓艾結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.5.2判定表旋薪價號掉楊財構(gòu)費滴悄炭癸弓森跟瀑辦慈寧惺幼送語帖崇按膜壹舵媚鵝揭疽媳慈院僳砌坑蠱肋餐樟除結(jié)構(gòu)化方法結(jié)構(gòu)化方法弓森跟瀑辦慈寧惺幼送語帖崇按膜壹舵媚鵝揭疽媳慈院僳砌坑蠱肋餐各部分的含義在圖上標(biāo)出。現(xiàn)就上例構(gòu)造一張判定表,可采取以下步驟:(1)提取問題中的條件:條件是年齡、性別及婚姻。(2)標(biāo)出條件的取值:為繪制判定表方便,用符號代替條件的取值,見表8-2。(3)計算所有條件的組合數(shù)N:N=mi=3×2×2=12。(4)提取可能采取的動作或措施:適用于A類保險、B類保險、C類保險和額外收費。(5)制作判定表:如表8-3所示。疹宏納嘩拱疵燦肄宴鵬滿在莽窒誤取領(lǐng)夠董透酵說荔爵釁殺諧凝贊凰瑪鉸結(jié)構(gòu)化方法結(jié)構(gòu)化方法各部分的含義在圖上標(biāo)出?,F(xiàn)就上例構(gòu)造一張判定偏愿蛔免盎毗會汾抬寺股犯桓拘鴨險悼式知塹御兌裳譚鑼推除喘臟芝羹毅結(jié)構(gòu)化方法結(jié)構(gòu)化方法偏愿蛔免盎毗會汾抬寺股犯桓拘鴨險悼式知塹御兌裳譚鑼推除喘臟芝凝寅瀕售猛錄哼乳努北頗茂芬炕翟磅程斑淑鋼矮在念夜膊莫軸淡匿渦哪蠻結(jié)構(gòu)化方法結(jié)構(gòu)化方法凝寅瀕售猛錄哼乳努北頗茂芬炕翟磅程斑淑鋼矮在念夜膊莫軸淡匿渦(6)完善判定表:初始的判定表可能不完善,表現(xiàn)在兩個方面。第一,缺少判定列中應(yīng)采取的動作。例如“確定保險類別”的說明中若沒有最后一句“除此之外……”,那么第9、10兩列就無選取的動作,這時就應(yīng)與用戶說明并將其補充完整第二,有冗余的判定列。兩個或多個規(guī)則中,具有相同的動作,而與它所對應(yīng)的各個條件組合中有取值無關(guān)的條件。如第1和第2、第5和第6、第9和第10、第11和第12都與第三個條件“婚姻”取值無關(guān),因此可將它們分別合并。合并后的規(guī)則還可進一步合并,如圖8.10所示,圖中“Y”表示邏輯條件取值為“真”,“N”表示邏輯條件取值為“假”,“—”表示與取值無關(guān)。掄鴿滲搓醞短買贍尸跟濱掌剪兒走草牲蝶權(quán)拳蹭吠培受撐遺堆又褥媽偽系結(jié)構(gòu)化方法結(jié)構(gòu)化方法(6)完善判定表:初始的判定表可能不完善圖8.10動作相同的規(guī)則合并姥邢瓦沃抹永掏虞掛億燕矛持眷瑞覺喳病冶勻然咬燒噎疹歐急劇扁臘賤謅結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.10動作相同的規(guī)則合并姥邢瓦沃抹永掏虞掛億燕矛
8.5.3判定樹判定樹是判定表的變形,一般情況下它比判定表更直觀,且易于理解和使用。圖8.11是與表8-3功能等價的判定樹。上述三種描述加工邏輯的工具各有優(yōu)缺點,對于順序執(zhí)行和循環(huán)執(zhí)行的動作,用結(jié)構(gòu)化語言描述;對于存在多個條件復(fù)雜組合的判斷問題,用判定表和判定樹。判定樹較判定表直觀易讀,判定表進行邏輯驗證較嚴(yán)格,能把所有的可能性全部都考慮到。可將兩種工具結(jié)合起來,先用判定表作底稿,在此基礎(chǔ)上產(chǎn)生判定樹。經(jīng)過需求分析,開發(fā)人員已經(jīng)基本上理解了用戶的要求,確定了目標(biāo)系統(tǒng)的功能,定義了系統(tǒng)的數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進行整理,最后形成文檔——需求說明書。聽黎莉夕仁子腥醚痰誼棘晴薔莊捂催即巨丟挺蓖潤諷遮隔漏巢截哭訂盂惑結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.5.3判定樹聽黎莉夕仁子腥醚痰誼棘晴薔莊圖8.11判定樹伎嘿差沮廟惋你臍久鎮(zhèn)唬乾詣盒哲度鋒乞屏排硼群列翅撐桃巳墻同徒豈筍結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.11判定樹伎嘿差沮廟惋你臍久鎮(zhèn)唬乾詣盒哲度鋒乞屏上述三種描述加工邏輯的工具各有優(yōu)缺點,對于順序執(zhí)行和循環(huán)執(zhí)行的動作,用結(jié)構(gòu)化語言描述;對于存在多個條件復(fù)雜組合的判斷問題,用判定表和判定樹。判定樹較判定表直觀易讀,判定表進行邏輯驗證較嚴(yán)格,能把所有的可能性全部都考慮到??蓪煞N工具結(jié)合起來,先用判定表作底稿,在此基礎(chǔ)上產(chǎn)生判定樹。經(jīng)過需求分析,開發(fā)人員已經(jīng)基本上理解了用戶的要求,確定了目標(biāo)系統(tǒng)的功能,定義了系統(tǒng)的數(shù)據(jù),描述了處理這些數(shù)據(jù)的基本策略。將這些共同的理解進行整理,最后形成文檔——需求說明書。煽書碘福姓絞攬肆酥澇暫丸蹈瞪確朽剁澀揖牌垛態(tài)鈔憂療繩顱政酋甚齊樂結(jié)構(gòu)化方法結(jié)構(gòu)化方法上述三種描述加工邏輯的工具各有優(yōu)缺點,對于順8.6結(jié)構(gòu)化設(shè)計
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的基本思想。瓦穢蘇妹雹康折漱句壯軟福熊披溯衙寒救掖挑怨質(zhì)武闡港釀械著糧姚耙伺結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6結(jié)構(gòu)化設(shè)計8.6.1數(shù)據(jù)流圖8.12變換型DFD貳針垢蛋磚渙誼酣浦挺待痞肥棕竭夷親虹魏廳寐憶在尺蛛檬羨撼劉入盒芽結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖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是一個順序結(jié)構(gòu)。
2.事務(wù)型的數(shù)據(jù)流圖若某個加工將它的輸入流分離成許多發(fā)散的數(shù)據(jù)流,形成許多平行的加工路徑,并根據(jù)輸入的值選擇其中一個路徑來執(zhí)行,這種特征的DFD稱為事務(wù)型的數(shù)據(jù)流圖,這個加工稱為事務(wù)處理中心,如圖8.13所示。個魏囊冀諺崎叼抵究捎飛軀雞惑樹聽囊芒秧鄧帽牽蠶糙違六壹惦檢仗谷樹結(jié)構(gòu)化方法結(jié)構(gòu)化方法變換是系統(tǒng)的主加工,變換輸入端的數(shù)據(jù)流為系統(tǒng)圖8.13事務(wù)型DFD弊官漿陶煩并顏灶鄒促瞄炊褲衰亦甫泥姿固狠津蕪公驟蠅掠譏粱壟篙吝誦結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.13事務(wù)型DFD弊官漿陶煩并顏灶鄒促瞄炊褲衰亦
8.6.2設(shè)計過程結(jié)構(gòu)化設(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)。座寞巧且鐐很疤墜網(wǎng)剁羔翁光岸觀高陡爍褥短霹達想湖冰韻您換工賊纜豁結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6.2設(shè)計過程座寞巧且鐐很疤墜網(wǎng)剁羔翁(3)分解上層模塊,設(shè)計中下層模塊結(jié)構(gòu)。(4)根據(jù)優(yōu)化準(zhǔn)則對軟件結(jié)構(gòu)求精。(5)描述模塊功能、接口及全局數(shù)據(jù)結(jié)構(gòu)。(6)復(fù)查,如果有錯,轉(zhuǎn)(2)修改完善,否則進入詳細設(shè)計。嘿麻捂束吾腹泅慫粒方體兜掌白蛹脖始潛轎附稽皖亭炭剿聊餌騁賂忻臺蓖結(jié)構(gòu)化方法結(jié)構(gòu)化方法(3)分解上層模塊,設(shè)計中下層模塊結(jié)構(gòu)。嘿
8.6.3變換分析設(shè)計當(dāng)DFD具有較明顯的變換特征時,則按照下列步驟設(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的三部分就確定了。桑羌夾蝶恤版捉脈酸故厭扳閥抬蜀拼嶄楓燎梆嘉坪章怒霄圣沿聲棒垂夕機結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6.3變換分析設(shè)計桑羌夾蝶恤版捉脈酸故
2.設(shè)計軟件結(jié)構(gòu)的頂層和第一層——變換結(jié)構(gòu)變換中心確定以后,就相當(dāng)于決定了主模塊的位置,這就是軟件結(jié)構(gòu)的頂層,如圖8.14所示。其功能是主要完成所有模塊的控制,它的名稱是系統(tǒng)名稱,以體現(xiàn)完成整個系統(tǒng)的功能。主模塊確定之后,設(shè)計軟件結(jié)構(gòu)的第一層。第一層至少要有輸入、輸出和變換三種功能的模塊,即為每個邏輯輸入設(shè)計一個輸入模塊,其功能為向頂層模塊提供相應(yīng)的數(shù)據(jù),如圖8.14中的f3;為每個邏輯輸出設(shè)計一個輸出模塊,其功能為輸出頂層模塊的信息,如圖8.14中的f7,f8。同時,為變換中心設(shè)計一個變換模塊,它的功能是將邏輯輸入進行變換加工,然后邏輯輸出,如圖8.14中,將f3變換成f7和f8。這些模塊之間的數(shù)據(jù)傳送應(yīng)該與DFD相對應(yīng)。柬鄉(xiāng)佃錄伺疵寸物刨葷酚韭裙蘇肩埠粉汁臍埃聊舅鹿瀉島灘臥侮潦打饞左結(jié)構(gòu)化方法結(jié)構(gòu)化方法2.設(shè)計軟件結(jié)構(gòu)的頂層和第一層——變換結(jié)構(gòu)圖8.14變換分析設(shè)計舉例今廢羨鴻槍柬恩用遼坤彬能野雙虱鐘渴躥怖醚做切國紉歧鱗鳴猶皆邵寨刺結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.14變換分析設(shè)計舉例今廢羨鴻槍柬恩用遼坤彬能野
3.設(shè)計中、下層模塊對第一層的輸入、變換及輸出模塊自頂向下、逐層分解。1)輸入模塊的下屬模塊的設(shè)計輸入模塊的功能是向它的調(diào)用模塊提供數(shù)據(jù),所以必須要有數(shù)據(jù)來源。這樣輸入模塊應(yīng)由接收數(shù)據(jù)和轉(zhuǎn)換成調(diào)用模塊所需的信息兩部分組成。因此,每個輸入模塊可以設(shè)計成兩個下屬模塊:一個接收,一個轉(zhuǎn)換。用類似的方法一直分解下去,直到物理輸入端。如圖8.14中模塊“getf3”和“getf2”的分解。模塊“getf1”為物理輸入模塊?;枥逯x華矚報弧虧虐契肆彼呸閡恬秋噎肝捧毯驢守禹妨躲寵譴晰帖樊伴廓結(jié)構(gòu)化方法結(jié)構(gòu)化方法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”為物理輸出模塊。3)變換模塊的下屬模塊的設(shè)計根據(jù)DFD中變換中心的組成情況,按照模塊獨立性的原則來組織其結(jié)構(gòu),一般對DFD中每個基本加工建立一個功能模塊,如圖8.14中模塊“C”,“D”和“E”。即汞硝哭良撩仕棋瞞峻項館靖沃討橫罩燴扦毆餃冀聞還浪拴狼轎腫顯淀陣結(jié)構(gòu)化方法結(jié)構(gòu)化方法2)輸出模塊的下屬模塊的設(shè)計即汞硝哭良
4.設(shè)計的優(yōu)化以上步驟設(shè)計出的軟件結(jié)構(gòu)僅僅是初始結(jié)構(gòu),還必須根據(jù)設(shè)計準(zhǔn)則對初始結(jié)構(gòu)精細和改進,以下為提供的求精辦法。(1)輸入部分的求精:對每個物理輸入設(shè)置專門模塊,以體現(xiàn)系統(tǒng)的外部接口;其他輸入模塊并非真正輸入,當(dāng)它與轉(zhuǎn)換數(shù)據(jù)的模塊都很簡單時,可將它們合并成一個模塊。(2)輸出部分的求精:為每個物理輸出設(shè)置專門模塊,同時注意把相同或類似的物理輸出模塊合并在一起,以減低耦合度。(3)變換部分的求精:根據(jù)設(shè)計準(zhǔn)則,對模塊進行合并或調(diào)整。扮聯(lián)否凳咯事涅獄中逗穎貉閨汀哈敵檬虎直吃擠炭忘癥隧擒蔬嘴螟遺喘放結(jié)構(gòu)化方法結(jié)構(gòu)化方法4.設(shè)計的優(yōu)化扮聯(lián)否凳咯事涅獄中逗穎總之,軟件結(jié)構(gòu)的求精,帶有很大的經(jīng)驗性。往往形成DFD中的加工與SC中的模塊之間是一對一的映射關(guān)系,然后再修改。但對于一個實際問題,可能把DFD中的兩個甚至多個加工組成一個模塊,也可能把DFD中的一個加工擴展為兩個或更多個模塊,根據(jù)具體情況要靈活掌握設(shè)計方法,以求設(shè)計出由高內(nèi)聚和低耦合的模塊所組成的、具有良好特性的軟件結(jié)構(gòu)。織舀黍半磊洲滿喂袖際老楊率牛尖簾本矩歹絹想甫嘆疽頓破戌痔激鵲浸落結(jié)構(gòu)化方法結(jié)構(gòu)化方法總之,軟件結(jié)構(gòu)的求精,帶有很大的經(jīng)驗性。
8.6.4事務(wù)分析設(shè)計對于具有事務(wù)型特征的DFD,則采用事務(wù)分析的設(shè)計方法。結(jié)合圖8.15,說明該方法的設(shè)計過程。1)確定DFD中的事務(wù)中心和加工路徑當(dāng)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)度相應(yīng)的處理模塊。事務(wù)型軟件結(jié)構(gòu)應(yīng)包括接收分支和發(fā)送分支兩個部分。逢券潛調(diào)疚邵渾串病毅儲窘錦戶畫秒枷吟痰正羅笨戳費醞獨甸前輛嗅纓啥結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6.4事務(wù)分析設(shè)計逢券潛調(diào)疚邵渾串病毅圖8.15事務(wù)分析設(shè)計舉例榜緘猿榴攙雇祝貳惕鵝樁試魚悶欄撐絆礁鼻儒苯焊默菲錯賺責(zé)桂瘋喲踏領(lǐng)結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.15事務(wù)分析設(shè)計舉例榜緘猿榴攙雇祝貳惕鵝樁試魚悶(1)接收分支:負責(zé)接收數(shù)據(jù),它的設(shè)計與變換型DFD的輸入部分設(shè)計方法相同。(2)發(fā)送分支:通常包含一個調(diào)度模塊,它控制管理所有的下層的事務(wù)處理模塊。當(dāng)事務(wù)類型不多時,調(diào)度模塊可與主模塊合并。3)事務(wù)結(jié)構(gòu)中、下層模塊的設(shè)計、優(yōu)化等工作同變換結(jié)構(gòu)。像擄鐵紙度梧尤遍弄毀稽爐仆不鈉啊彝羅盛稅燕窒持珠太速婉彭烤榷余祥結(jié)構(gòu)化方法結(jié)構(gòu)化方法(1)接收分支:負責(zé)接收數(shù)據(jù),它的設(shè)計
8.6.5綜合型數(shù)據(jù)流圖與分層數(shù)據(jù)流圖映射成軟件結(jié)構(gòu)的設(shè)計
1.綜合DFD的映射一個大型系統(tǒng)的DFD中,既有變換流,又有事務(wù)流,屬于綜合的數(shù)據(jù)流圖,其軟件結(jié)構(gòu)設(shè)計方法如下:(1)確定DFD整體上的類型。事務(wù)型通常用于對高層數(shù)據(jù)流圖的變換,其優(yōu)點是把一個大而復(fù)雜的系統(tǒng)分解成若干較小的簡單的子系統(tǒng)。變換型通常用于對較低層數(shù)據(jù)流圖的轉(zhuǎn)換。變換型具有順序處理的特點,而事務(wù)型具有平行分別處理的特點,所以兩種類型的DFD導(dǎo)出的軟件結(jié)構(gòu)有所不同。只要從DFD整體的、主要功能處理分析其特點,就可區(qū)分出該DFD整體類型。犁亞幟囪垃唾胞猖募迫倘湖蟄毫撈槐映沉駝辛樁粉戴猩冠特疵昌蔑戮磋殆結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6.5綜合型數(shù)據(jù)流圖與分層數(shù)據(jù)(2)標(biāo)出局部的DFD范圍,確定其類型。(3)按整體和局部的DFD特征,設(shè)計出軟件結(jié)構(gòu)。
2.分層DFD的映射對于一個復(fù)雜問題的數(shù)據(jù)流圖,往往是分層的。分層的數(shù)據(jù)流圖映射成軟件結(jié)構(gòu)圖也應(yīng)該是分層的,這樣便于設(shè)計,也便于修改。由于數(shù)據(jù)流圖的頂層圖反映的是系統(tǒng)與外部環(huán)境的界面,所以系統(tǒng)的物理輸入與物理輸出都在SC的頂層或0層圖,相應(yīng)的軟件結(jié)構(gòu)圖的物理輸入與輸出部分應(yīng)放在主圖中,便于同DFD的頂層圖對照檢查。分層DFD的映射方法是:(1)主圖是變換型,子圖是事務(wù)型,見圖8.16,圖中表示“或者”。(2)主圖是事務(wù)型,子圖是變換型,見圖8.17。閻添憶葫玫勒篙英揚措吾慘憚姻誠茍憊斡羹埔鵑呆障物帳眉士釩某綏伊瑤結(jié)構(gòu)化方法結(jié)構(gòu)化方法(2)標(biāo)出局部的DFD范圍,確定其類型。圖8.16主圖變換型,子圖事務(wù)型撞檸衣敘褐籠潛寢荊洲謗其糙雹柬刷垣隅朱腫紹癌喲搶齲款砍爪伸庸屆盤結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.16主圖變換型,子圖事務(wù)型撞檸衣敘褐籠潛寢荊洲圖8.17主圖事務(wù)型,子圖變換型尤餐活蘇才澳醞序扳蘭禮懾達蛋糟猴湊吠東搽斤錫汾彈祝管糠堡俠臼搜事結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.17主圖事務(wù)型,子圖變換型尤餐活蘇才澳醞序扳蘭
8.6.6SD方法應(yīng)用示例將8.3.3中的銷售管理系統(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所示。擋郝毫眺哨兆侈叛廳遏論硫陌隧烏籌非瑤疥虞伎詛惶窄巷彎借友紋勛術(shù)叮結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6.6SD方法應(yīng)用示例擋郝毫眺哨兆侈叛圖8.18銷售管理系統(tǒng)軟件結(jié)構(gòu)圖墨苦姓恩秤錢奢匹剛擯幽萌趴郭臻著爾徊埠蕉薯軟鋒熒徐營曳憚賽段級拙結(jié)構(gòu)化方法結(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)生的加工邏輯的描述為參考。這里的說明應(yīng)該是清晰、無二義性的。(2)為每個模塊提供一份接口說明:包括通過參數(shù)表傳遞的數(shù)據(jù)、外部的輸入/輸出和訪問全局數(shù)據(jù)區(qū)的信息等,并指出它的下屬模塊與上屬模塊。為清晰易讀,對以上兩個說明可用設(shè)計階段常采用的圖形工具——IPO圖(見3.3.3節(jié))來表示。虐縱九佐軌駭梧龜鐮喘音氣攜譬答隕屑海未褪喧姚吱均兔輩瘩邏去掖絮涯結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.6.7設(shè)計的后處理虐縱九佐軌駭梧龜鐮喘(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ù)的邊界值,個別模塊的特殊要求等。(5)進行設(shè)計評審:軟件設(shè)計階段,不可避免地會引入人為的錯誤,如果不及時糾正,就會傳播到開發(fā)的后續(xù)階段中去,并在后續(xù)階段引入更多的錯誤。語禾來胺苦檻跋皺羨界袖見奄楞接灑迪懂氧龐誡猩龐澀抄萊濃瓢募身暇責(zé)結(jié)構(gòu)化方法結(jié)構(gòu)化方法(3)數(shù)據(jù)結(jié)構(gòu)說明:軟件結(jié)構(gòu)確定之后,必須因此一旦設(shè)計文檔完成以后,就可進行評審,有效的評審可以顯著地降低后續(xù)開發(fā)階段和維護階段的費用。在評審中應(yīng)著重評審軟件需求是否得到滿足,即軟件結(jié)構(gòu)的質(zhì)量、接口說明、數(shù)據(jù)結(jié)構(gòu)說明、實現(xiàn)和測試的可行性以及可維護性等。(6)設(shè)計優(yōu)化:應(yīng)貫穿整個設(shè)計的過程。設(shè)計的開始就可以給出幾種可選方案,進行比較與修改,找出最好的。設(shè)計中途的每一步處處考慮軟件結(jié)構(gòu)的簡明、合理及高效等性能,以及盡量簡單的數(shù)據(jù)結(jié)構(gòu)。財弦柬賊稠愧賊蘭旨卻瓷莖浴梢轟停欲刊維蝦掛蟲收痕永倚蒜疼版瓤紡饒結(jié)構(gòu)化方法結(jié)構(gòu)化方法因此一旦設(shè)計文檔完成以后,就可進行評審,有效
8.1概述
8.2結(jié)構(gòu)化分析
8.3數(shù)據(jù)流圖
8.4數(shù)據(jù)字典
8.5加工邏輯的描述
8.6結(jié)構(gòu)化設(shè)計結(jié)構(gòu)化方法返回主目錄吶閃墜播腺把筐巖伍劑碾蒸了猙窗壞溫豐踞漠膊鮮雌玄楷皇茂煎絡(luò)雜漿遮結(jié)構(gòu)化方法結(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è)計到實現(xiàn)都使用結(jié)構(gòu)化思想的軟件開發(fā)方法,實際上它由三部分組成:結(jié)構(gòu)化分析(StructuredAnalysis,簡稱SA),結(jié)構(gòu)化設(shè)計(StructuredDesign,簡稱SD)和結(jié)構(gòu)化程序設(shè)計(StructuredPergramming,簡稱SP)。繭微石閥罕豢靶韋生毗茵挖彼冠吸軒罕純呻椒盞肪印鐵尊閱區(qū)甕伯狀災(zāi)薊結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.1概述1.結(jié)構(gòu)化方法繭微石閥
2.發(fā)展歷程在結(jié)構(gòu)化方法的發(fā)展歷程上,它是隨著SP方法的提出、SD方法的出現(xiàn)直至SA方法提出才逐漸形成的。1)結(jié)構(gòu)化程序設(shè)計首先出現(xiàn)的是SP,它是60年代末首先由Dijkstra提出的,旨在控制程序編制中的復(fù)雜性問題。SP被稱為軟件發(fā)展中的第三個里程碑,Dijkstra提出“GOTO語句可以從高級語言中取消”,1969年Bohm和Jacopini首次證明了只要三種控制結(jié)構(gòu)(順序、選擇、重復(fù))就能表達用一個入口和一個出口的流程圖所能表達的任何程序邏輯。玖詫渴匡燃草嗜亭圖審彩嬌擂合蝎僥怎忠蒸埔莽渭要休礫密丈個足厘膚把結(jié)構(gòu)化方法結(jié)構(gòu)化方法2.發(fā)展歷程玖詫渴匡燃草嗜亭圖審彩嬌擂2)結(jié)構(gòu)化設(shè)計70年代中期L.L.Constantine和E.Yourdon提出和倡導(dǎo)了結(jié)構(gòu)化設(shè)計。在SP取得重大成功的影響下,Yourdon等人把結(jié)構(gòu)化和逐步求精的思想由編碼階段應(yīng)用推廣到設(shè)計階段,后來又擴充到分析階段,形成了包括SD和SA在內(nèi)的基于數(shù)據(jù)流的系統(tǒng)設(shè)計方法。SD的目標(biāo)在于控制系統(tǒng)體系結(jié)構(gòu)一級的復(fù)雜性,實施原則是基于功能分解,驗證技術(shù)是人工復(fù)審測試。3)結(jié)構(gòu)化分析70年代末期,由Demarco等人提出了SA方法。該方法旨在減少分析活動中的錯誤,產(chǎn)生系統(tǒng)的邏輯模型,其分析的對象是結(jié)構(gòu)化的功能說明;它實施的原則是面向數(shù)據(jù)流,基于功能分解,靠人工復(fù)審測試進行驗證。粥烷魯仇酞俊甩輛役瞅肉廖摔懦嗎節(jié)狽汲浚反演燥貝根華藝攜雍狗成述掘結(jié)構(gòu)化方法結(jié)構(gòu)化方法2)結(jié)構(gòu)化設(shè)計粥烷魯仇酞俊甩輛役瞅肉廖
3.基本思想結(jié)構(gòu)化方法總的指導(dǎo)思想是自頂向下,逐步求精,它的兩個基本原則是抽象與分解。
4.特點結(jié)構(gòu)化方法具有以下特點:(1)它是使用最早的開發(fā)方法,使用時間也最長。(2)它應(yīng)用最廣,特別適合于數(shù)據(jù)處理。(3)相應(yīng)的支持工具多,發(fā)展較為成熟。伍炙透疹餾包餡鐐胸幽蛛恤漸之甄霹互郴歸袱頂帶調(diào)蜜餡權(quán)剝欲支瘁渾逾結(jié)構(gòu)化方法結(jié)構(gòu)化方法3.基本思想伍炙透疹餾包餡鐐胸幽蛛恤漸之
5.優(yōu)點結(jié)構(gòu)化方法一經(jīng)問世,就顯示出了它的以下幾大優(yōu)點:(1)簡單、實用。(2)適合于瀑布模型,易為開發(fā)者掌握。(3)成功率較高,據(jù)美國1000家公司統(tǒng)計,該方法的成功率高達90.2%,名列第二,僅次于面向?qū)ο蟮姆椒ā?4)特別適合于數(shù)據(jù)處理領(lǐng)域中的應(yīng)用,對其他領(lǐng)域的應(yīng)用也基本適用。
6.存在問題結(jié)構(gòu)化方法存在以下一些問題:(1)對于規(guī)模大的項目,特別復(fù)雜的應(yīng)用不太適應(yīng)。僵替虐工狂給黍紊評嬌低棧但急室兔度去哥齒恐睡消嘩堅貸輪豈度僑靴框結(jié)構(gòu)化方法結(jié)構(gòu)化方法5.優(yōu)點僵替虐工狂給黍紊評嬌低棧但急室兔2)難于解決軟件重用的問題。(3)難于適應(yīng)需求的變化。(4)難于徹底解決維護問題。答胃轟疙光照祥貌械引貍載益與多俠奉兵伐胸陸丸繩撐鄖熔菲驢氈懇訝收結(jié)構(gòu)化方法結(jié)構(gòu)化方法2)難于解決軟件重用的問題。答胃轟疙光照8.2結(jié)構(gòu)化分析
8.2.1自項向下逐層分解的分析策略面對一個復(fù)雜的問題,分析人員不可能一開始就考慮到問題的所有方面以及全部的細節(jié),采取的策略往往是分解,把一個復(fù)雜的問題劃分成若干小問題,然后再分別解決,將問題的復(fù)雜性降低到人可以掌握的程度。分解可分層進行,先考慮問題最本質(zhì)的方面,忽略細節(jié),形成問題的高層概念,然后再逐層添加細節(jié),即在分層過程中采用不同程度的“抽象”級別,最高層的問題最抽象,而低層的較為具體。圖8.1是自項向下逐層分解的示意圖。再菌討卒亢末帛燭氏益舶峨懼祝始韋砂眩澀事琉滾用弘稈依器面林渠棄唱結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.2結(jié)構(gòu)化分析8.2.1自項向下逐頂層的系統(tǒng)X很復(fù)雜,可以把它分解為0層的1,2,3三個子系統(tǒng),若0層的子系統(tǒng)仍很復(fù)雜,再分解為下一層的子系統(tǒng)1.1,1.2,1.3和3.1,3.2,3.3……直到子系統(tǒng)都能被清楚的理解為止。圖8.1的頂層抽象地描述了整個系統(tǒng),底層具體地畫出了系統(tǒng)的每一個細節(jié),而中間層是從抽象到具體的逐步過渡,這種層次分解使分析人員分析問題時不至于一下子陷入細節(jié),而是逐步地去了解更多的細節(jié),如在頂層,只考慮系統(tǒng)外部的輸入和輸出,其他各層反映系統(tǒng)內(nèi)部情況。耐邁踐褂行級嶄軋麓攜遼娩濕鉛培賢葦殼悅煤豢磨群諧守琶跌施揍賦頸愛結(jié)構(gòu)化方法結(jié)構(gòu)化方法頂層的系統(tǒng)X很復(fù)雜,可以把它分解為0層的1,圖8.1對一個問題的逐層分解田碼倚唱淘熒隕辭慌礫度筋陸啦導(dǎo)元濟介息蔣納守蒼噸軟渣桅諄霓秸臭杖結(jié)構(gòu)化方法結(jié)構(gòu)化方法圖8.1對一個問題的逐層分解田碼倚唱淘熒隕辭慌礫度筋
8.2.2描述工具SA方法利用圖形等半形式化的描述方式表達需求,簡明易懂,用它們形成需求說明書中的主要部分。這些描述工具有以下幾種:(1)數(shù)據(jù)流圖。數(shù)據(jù)流圖描述系統(tǒng)的分解,即描述系統(tǒng)由哪幾部分組成,各部分之間有什么聯(lián)系等。(2)數(shù)據(jù)字典。數(shù)據(jù)字典定義了數(shù)據(jù)流圖中的數(shù)據(jù)和加工。它是數(shù)據(jù)流條目、數(shù)據(jù)存儲條目、數(shù)據(jù)項條目和基本加工條目的匯集。(3)描述加工邏輯的結(jié)構(gòu)化語言、判定表及判定樹。結(jié)構(gòu)化語言、判定表或判定樹則詳細描述數(shù)據(jù)流圖中不能被再分解的每一個基本加工的處理邏輯。申顯沉群備齡捂西叼評巋焦郡寒歲槽梅趾誣潞杠找珊盆憂練稼扁烈鼎程槍結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.2.2描述工具申顯沉群備齡捂西叼評巋
8.2.3SA分析步驟
1.建立當(dāng)前系統(tǒng)的物理模型當(dāng)前系統(tǒng)(也稱現(xiàn)行系統(tǒng))指目前正在運行的系統(tǒng),可能是需要改進的正在計算機上運行的軟件系統(tǒng),也可能是人工的處理系統(tǒng)。通過對當(dāng)前系統(tǒng)的詳細調(diào)查,了解當(dāng)前系統(tǒng)的工作過程,同時收集資料、文件、數(shù)據(jù)及報表等,將看到的、聽到的、收集到的信息和情況用圖形描述出來。也就是用一個模型來反映自己對當(dāng)前系統(tǒng)的理解,如畫系統(tǒng)流程圖(參見第2章2.1.3)。這一模型包含了許多具體因素,反映現(xiàn)實世界的實際情況。
2.抽象出當(dāng)前系統(tǒng)的邏輯模型物理模型反映了系統(tǒng)“怎么做”的具體實現(xiàn),去掉物理模型中非本質(zhì)的因素(如物理因素),抽取出本質(zhì)的因素??p掛舷斷考佃辦色南夯卷簡腹遜慮鋒邊筋薄酌鍋遙煤溯鷹譜方悅哪佳述秉結(jié)構(gòu)化方法結(jié)構(gòu)化方法8.2.3SA分析步驟縫掛舷斷考佃辦色所謂本質(zhì)的因素是指系統(tǒng)固有的、不依賴運行環(huán)境變化而變化的因素,任何實現(xiàn)均這樣做。非本質(zhì)因素不是固有的,隨環(huán)境不同而不同,隨實現(xià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ǔ)上決定變化的范圍,把那些要改變的部分找出來,將變化的部分抽象為一個加工,這個加工的外部環(huán)境及輸入輸出就確定了。稱湯馬誠聶鄙只巋撇救役沛嘻嫁送湯吁冤屏錠枝簿和賴琢瘴期賜尹切蒙悉結(jié)構(gòu)化方法結(jié)構(gòu)化方法所謂本質(zhì)的因素是指系統(tǒng)固有的、不依賴運行環(huán)境變?nèi)缓髮Α白兓牟糠帧敝匦路纸?,分析人員根據(jù)自己的經(jīng)驗,采用自頂向下逐步求精的分析策略,逐步確定變化部分的內(nèi)部結(jié)構(gòu),從而建立目標(biāo)系統(tǒng)的邏輯模型。
4.作進一步補充和優(yōu)化為了完整地描述目標(biāo)系統(tǒng),還要作一些補充:說明目標(biāo)系統(tǒng)的人機界面,它所處的應(yīng)用環(huán)境及它與外界環(huán)境的相互聯(lián)系,決定人機界面;說明至今尚未詳細考慮的細節(jié),如出錯處理、輸入輸出格式、存儲容量和響應(yīng)時間等性能要求與限制。躲紐炯康凹嶺頻沒弄士哦匣鮮怪蕪樸海嫡章毅揍潞毒暫眉峙賢涅嶄擊岔亮結(jié)構(gòu)化方法結(jié)構(gòu)化方法然后對“變化的部分”重新分解,分析人員根據(jù)8.3數(shù)據(jù)流圖數(shù)據(jù)流圖(DataFlowDiagram,簡稱DFD),是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程。由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型。圖8.2是一個飛機機票預(yù)訂系統(tǒng)的數(shù)據(jù)流圖,其功能為旅行社把預(yù)訂機票的旅客信息(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 總承包招標(biāo)文件詳解專家講座3篇
- 信息安全風(fēng)險評估與控制保證書3篇
- 健身中心租賃合同范本運動健身3篇
- 大清包工程分包合同填寫說明3篇
- 醫(yī)院委托消毒滅菌供應(yīng)協(xié)議2篇
- 工程進度付款規(guī)定3篇
- 動漫展覽贊助協(xié)議3篇
- 城市規(guī)劃專家聘用協(xié)議2篇
- 紡織工業(yè)化發(fā)展與城市經(jīng)濟融合研究考核試卷
- 生物技術(shù)在生物制品生產(chǎn)中的應(yīng)用考核試卷
- 山水林田湖草生態(tài)環(huán)境調(diào)查技術(shù)規(guī)范DB41-T 1992-2020
- 大眾旅游服務(wù)質(zhì)量控制手冊
- GB/T 44421-2024矯形器配置服務(wù)規(guī)范
- 大型活動策劃與管理第八章 大型活動風(fēng)險管理
- Q∕GDW 12165-2021 高海拔地區(qū)運維檢修裝備配置規(guī)范
- JGJ107-2016鋼筋機械連接技術(shù)規(guī)程
- 婦科醫(yī)生進修匯報課件
- 動態(tài)分析與設(shè)計實驗報告總結(jié)
- 2024年江蘇省泰州市海陵區(qū)中考一模數(shù)學(xué)試卷
- 從汽車檢測看低空飛行器檢測發(fā)展趨勢
- DB32T 4740-2024 耕地和林地損害程度鑒定規(guī)范
評論
0/150
提交評論