版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程導(dǎo)論
SoftwareEngineering主講:呂曉華E-mail:bowen995@1 軟件工程導(dǎo)論
SoftwareEngineering主講Chap02可行性研究可行性研究的任務(wù)可行性研究過程系統(tǒng)流程圖數(shù)據(jù)流圖數(shù)據(jù)字典(內(nèi)容、方法、用途、實(shí)現(xiàn))成本/效益分析(成本估計(jì)、分析方法)可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決;可行性研究的目的不是解決問題,而是確定問題是否值得去解。
2Chap02可行性研究可行性研究的任務(wù)可行性研究的目的就2.1可行性研究的任務(wù)可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過程:分析和澄清問題定義導(dǎo)出系統(tǒng)的邏輯模型-探索系統(tǒng)實(shí)現(xiàn)方案:
技術(shù)可行性:現(xiàn)有的技術(shù)經(jīng)濟(jì)可行性:開發(fā)成本操作可行性:用戶操作實(shí)現(xiàn)進(jìn)度可行性研究的成本:預(yù)期的工程總成本的5%~10%32.1可行性研究的任務(wù)可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮2.2可行性研究的步驟復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在使用的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型重新定義問題導(dǎo)出和評(píng)價(jià)供選擇的解法推薦行動(dòng)方針草擬開發(fā)計(jì)劃書寫文檔提交審查42.2可行性研究的步驟復(fù)查系統(tǒng)規(guī)模和目標(biāo)4復(fù)查系統(tǒng)規(guī)模和目標(biāo)對(duì)問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書進(jìn)一步復(fù)查確認(rèn)。改正報(bào)告書中的敘述模糊、不正確的地方。這個(gè)步驟的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問題確實(shí)是要求他解決的問題。進(jìn)一步復(fù)查確認(rèn)“規(guī)模和目標(biāo)報(bào)告書”5復(fù)查系統(tǒng)規(guī)模和目標(biāo)對(duì)問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點(diǎn)分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊(cè),實(shí)地考察現(xiàn)有系統(tǒng)描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖并確認(rèn)記錄現(xiàn)有系統(tǒng)的接口6研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點(diǎn)6導(dǎo)出新系統(tǒng)的高層邏輯模型設(shè)計(jì)過程通常總是從現(xiàn)有的物理系統(tǒng)出發(fā),再參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。使用數(shù)據(jù)流圖,描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的情況,從而概括地表達(dá)出對(duì)新系統(tǒng)的設(shè)想。通常為了把新系統(tǒng)描繪得更清晰準(zhǔn)確,還應(yīng)該有一個(gè)初步的數(shù)據(jù)字典,定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,以后可以從這個(gè)邏輯模型出發(fā)設(shè)計(jì)新系統(tǒng)。7導(dǎo)出新系統(tǒng)的高層邏輯模型設(shè)計(jì)過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā)重新定義問題分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)。可行性研究的前四個(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。
定義問題分析問題導(dǎo)出一個(gè)試探性的解重新定義問題符合系統(tǒng)目標(biāo)?YN8重新定義問題分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和導(dǎo)出和評(píng)價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的(較抽象的)物理解法供比較和選擇。從技術(shù)角度出發(fā)考慮解決問題的不同方案。例如,2.4節(jié)中將舉例說明在數(shù)據(jù)流圖上劃分不同的自動(dòng)化邊界根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)。例如,如果要求系統(tǒng)的響應(yīng)時(shí)間不超過幾秒鐘,顯然應(yīng)該排除任何批處理方案??紤]操作方面的可行性。分析員應(yīng)該根據(jù)使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案??紤]經(jīng)濟(jì)方面的可行性。分析員應(yīng)該估計(jì)余下的每個(gè)可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,并且估計(jì)相對(duì)于現(xiàn)有的系統(tǒng)而言這個(gè)系統(tǒng)可以節(jié)省的開支或可以增加的收入。在這些估計(jì)數(shù)字的基礎(chǔ)上,對(duì)每個(gè)可能的系統(tǒng)進(jìn)行成本/效益分析。(參看2.6節(jié))制定實(shí)現(xiàn)進(jìn)度表。通常只需要估計(jì)生命周期每個(gè)階段的工作量。9導(dǎo)出和評(píng)價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),推薦行動(dòng)方針做出一個(gè)關(guān)鍵性的決定:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。如果分析員認(rèn)為值得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最好的解法,并且說明選擇這個(gè)解決方案的理由。10推薦行動(dòng)方針做出一個(gè)關(guān)鍵性的決定:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。草擬開發(fā)計(jì)劃為推薦的系統(tǒng)草擬一份開發(fā)計(jì)劃:工程進(jìn)度表估計(jì)對(duì)各種開發(fā)人員和各種資源的需要情況。估計(jì)系統(tǒng)生命周期每個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。11草擬開發(fā)計(jì)劃為推薦的系統(tǒng)草擬一份開發(fā)計(jì)劃:11書寫文檔提交審查寫成清晰的文檔,請(qǐng)用戶和使用部門的負(fù)責(zé)人仔細(xì)審查。12書寫文檔提交審查寫成清晰的文檔,請(qǐng)用戶和使用部門的負(fù)責(zé)人仔細(xì)2.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件(程序,文件,數(shù)據(jù)庫,表格,人工過程等等)。系統(tǒng)流程圖表達(dá)的是信息在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)信息進(jìn)行加工處理的控制過程。盡管系統(tǒng)流程圖使用的某些符號(hào)和程序流程圖中用的符號(hào)相同,但是它卻是物理數(shù)據(jù)流程圖而不是程序流程圖。2.3.1符號(hào)132.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。2.基本符號(hào)
一個(gè)符號(hào)表示系統(tǒng)中的一個(gè)部件。
符號(hào)名
稱說
明處理能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如,程序、處理機(jī)、人工加工等都是處理。輸入/輸出表示輸入或輸出(或既輸入又輸出),是一個(gè)廣義的不指明具體設(shè)備的符號(hào)。連接指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來,通常在同一頁上。換頁連接指出轉(zhuǎn)到另一頁圖上或由另一頁圖轉(zhuǎn)來。
數(shù)據(jù)流用來連接其他符號(hào),指明數(shù)據(jù)流動(dòng)方向。14基本符號(hào)一個(gè)符號(hào)表示系統(tǒng)中的一個(gè)部件。符號(hào)名稱說系統(tǒng)符號(hào)
15系統(tǒng)符號(hào)152.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果那種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報(bào)告。習(xí)慣畫法是使信息在圖中從頂向下,從左向右流動(dòng)。系統(tǒng)流程圖162.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各2.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個(gè)復(fù)雜的系統(tǒng)。提示:下一節(jié)--2.4數(shù)據(jù)流圖172.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌2.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動(dòng)和處理的情況。182.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任2.4數(shù)據(jù)流圖-2因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,所以是極好的通信工具。此外,設(shè)計(jì)數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實(shí)現(xiàn)這些功能,所以它也是軟件設(shè)計(jì)的很好的出發(fā)點(diǎn)。192.4數(shù)據(jù)流圖-2因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使四種基本符號(hào)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。表示變換數(shù)據(jù)的處理。表示數(shù)據(jù)存儲(chǔ)(靜止數(shù)據(jù))。表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動(dòng)方向(流動(dòng)數(shù)據(jù))。20四種基本符號(hào)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。20三個(gè)附加符號(hào)*:表示數(shù)據(jù)之間是“與”關(guān)系。+:表示數(shù)據(jù)之間是“或”關(guān)系。:表示數(shù)據(jù)之間是“互斥”關(guān)系(只能從中選一個(gè))。21三個(gè)附加符號(hào)*:表示數(shù)據(jù)之間是“與”關(guān)系。21說明數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù)。22說明數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)是說明有時(shí)數(shù)據(jù)的源點(diǎn)和終點(diǎn)相同。如果只用一個(gè)符號(hào)代表數(shù)據(jù)的源點(diǎn)和終點(diǎn),則至少有兩個(gè)箭頭和這個(gè)符號(hào)相連(一個(gè)進(jìn)一個(gè)出,)可能其中一條箭頭相當(dāng)長,這將降低數(shù)據(jù)流圖的清晰度,如果代表同一個(gè)事物的同樣符號(hào)在圖中出現(xiàn)在n個(gè)地方,則在這個(gè)符號(hào)的一個(gè)角上畫n-1條短斜線做標(biāo)記。23說明有時(shí)數(shù)據(jù)的源點(diǎn)和終點(diǎn)相同。如果只用一個(gè)符號(hào)代表數(shù)據(jù)的源點(diǎn)說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不要混淆。熟悉程序流程圖的初學(xué)者在畫數(shù)據(jù)流圖時(shí),往往試圖在數(shù)據(jù)流圖中表現(xiàn)分支條件或循環(huán),殊不知這樣做將造成混亂,畫不出正確的數(shù)據(jù)流圖。24說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不說明在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個(gè)數(shù)據(jù)流的條件。數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”而不考慮“怎樣做”。25說明在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)例子問題定義:一家工廠的采購部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件入庫或出庫稱為事務(wù),通過放在倉庫中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某個(gè)零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再次定貨。26例子問題定義:一家工廠的采購部每天需要一張定貨報(bào)表,報(bào)表按零提取數(shù)據(jù)流圖的四種成分-1
“通過放在倉庫中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)”——倉庫管理員是數(shù)據(jù)源點(diǎn)?!安少彶棵刻煨枰粡埗ㄘ泩?bào)表”——采購員是數(shù)據(jù)終點(diǎn)?!安少彶啃枰獔?bào)表”——用于產(chǎn)生報(bào)表的處理?!笆聞?wù)的后果是改變零件庫存量”——對(duì)事務(wù)進(jìn)行的加工的處理。27提取數(shù)據(jù)流圖的四種成分-1“通過放在倉庫中的CRT終端把事提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報(bào)表送給采購部”——定貨報(bào)表是一個(gè)數(shù)據(jù)流?!笆聞?wù)需要從倉庫送到系統(tǒng)中”——事務(wù)是一個(gè)數(shù)據(jù)流?!懊慨?dāng)有一個(gè)事務(wù)發(fā)生時(shí)立即處理它,然而每天只產(chǎn)生一次定貨報(bào)表”——應(yīng)該有一個(gè)數(shù)據(jù)存儲(chǔ)保存產(chǎn)生定貨報(bào)表的數(shù)據(jù)?!爱?dāng)某個(gè)零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再次定貨”——應(yīng)該有一個(gè)數(shù)據(jù)存儲(chǔ)保存庫存清單數(shù)據(jù)。28提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報(bào)表送給采購部”——數(shù)據(jù)流圖的四種成分29數(shù)據(jù)流圖的四種成分29定貨系統(tǒng)的基本系統(tǒng)模型倉庫管理員定貨系統(tǒng)采購員事務(wù)定貨報(bào)表
30定貨系統(tǒng)的基本系統(tǒng)模型倉庫定貨采購員事務(wù)定貨報(bào)表3定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖31定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖31把處理功能進(jìn)一步分解后的數(shù)據(jù)流圖32把處理功能進(jìn)一步分解后的數(shù)據(jù)流圖32注意當(dāng)進(jìn)一步分解將涉及如何具體地實(shí)現(xiàn)一個(gè)功能時(shí)就不應(yīng)該再分解了。例如:為什么不進(jìn)一步分解“產(chǎn)生報(bào)表”這個(gè)功能呢?定貨報(bào)表中需要的數(shù)據(jù)在存儲(chǔ)的定貨信息中全都有,產(chǎn)生報(bào)表只不過是按一定順序排列這些信息,再按一定格式打印出來。然而這些考慮純屬具體實(shí)現(xiàn)的細(xì)節(jié),不應(yīng)該在數(shù)據(jù)流圖中表現(xiàn)。33注意當(dāng)進(jìn)一步分解將涉及如何具體地實(shí)現(xiàn)一個(gè)功能時(shí)就不應(yīng)該再分解注意當(dāng)對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性。也就是說,當(dāng)把一個(gè)處理分解為一系列處理時(shí),分解前和分解后的輸入/輸出數(shù)據(jù)流必須相同。34注意當(dāng)對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性。34注意應(yīng)該注意在圖中對(duì)處理進(jìn)行編號(hào)的方法。35注意應(yīng)該注意在圖中對(duì)處理進(jìn)行編號(hào)的方法。352.4.3命名數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響數(shù)據(jù)流圖的可理解性。362.4.3命名數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是僅僅反映它的某些成分。不要使用空洞的、缺乏具體含義的名字(如:“數(shù)據(jù)”、“信息”、“輸入”等)。如果在為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的,應(yīng)嘗試重新分解,看是否能克服這個(gè)困難。37為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類習(xí)慣的“由表及里”的思考過程。名字應(yīng)該反映整個(gè)處理的功能,而不是它的一部分功能。名字最好由一個(gè)具體的及物動(dòng)詞,加上一個(gè)具體的賓語組成。應(yīng)該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動(dòng)詞作名字。38為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命為處理命名-2通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才能描述整個(gè)處理的功能,則把這個(gè)處理再分解成兩個(gè)處理可能更恰當(dāng)些。如果在為某個(gè)處理命名時(shí)遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解。39為處理命名-2通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才為數(shù)據(jù)源點(diǎn)/終點(diǎn)命名采用它們?cè)趩栴}域中習(xí)慣使用的名字(如“采購員”、“倉庫管理員”等)40為數(shù)據(jù)源點(diǎn)/終點(diǎn)命名采用它們?cè)趩栴}域中習(xí)慣使用的名字(如“采2.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工具??梢愿鶕?jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實(shí)現(xiàn)。當(dāng)用數(shù)據(jù)流圖輔助物理系統(tǒng)的設(shè)計(jì)時(shí),以圖中不同處理的定時(shí)要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動(dòng)化邊界,每組自動(dòng)化邊界可能意味著一個(gè)不同的物理系統(tǒng)。412.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信例1可以聯(lián)機(jī)地接收事務(wù)并放入隊(duì)列中,然而更新庫存清單、處理定貨和產(chǎn)生報(bào)表以批量方式進(jìn)行。當(dāng)然,這種方案需要增加一個(gè)數(shù)據(jù)存儲(chǔ)以存放事務(wù)數(shù)據(jù)。42例1可以聯(lián)機(jī)地接收事務(wù)并放入隊(duì)列中,然而更新庫存清單、處理定數(shù)據(jù)流圖43數(shù)據(jù)流圖43例2改變自動(dòng)化邊界,把處理1.1、1.2和1.3放在同一個(gè)邊界內(nèi)。這個(gè)系統(tǒng)將聯(lián)機(jī)地接收事務(wù)、更新庫存清單和處理定貨及輸出定貨信息;然而處理2將以批量方式產(chǎn)生定貨報(bào)表。44例2改變自動(dòng)化邊界,把處理1.1、1.2和1.3放在同一個(gè)邊數(shù)據(jù)流圖45數(shù)據(jù)流圖452.4.4用途-2數(shù)據(jù)流圖對(duì)更詳細(xì)的設(shè)計(jì)步驟也有幫助。本書第五章將講述從數(shù)據(jù)流圖出發(fā)映射出軟件結(jié)構(gòu)的方法——面向數(shù)據(jù)流的設(shè)計(jì)方法。462.4.4用途-2數(shù)據(jù)流圖對(duì)更詳細(xì)的設(shè)計(jì)步驟也有幫助。42.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。472.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)2.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應(yīng)該由對(duì)下列四類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即,數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(chǔ)(4)處理。本書中數(shù)據(jù)字典將主要由對(duì)數(shù)據(jù)的定義組成。數(shù)據(jù)處理的定義用其它工具(如IPO圖或PDL)描述更方便。482.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應(yīng)該由對(duì)下列四數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等。定義:數(shù)據(jù)類型,長度,結(jié)構(gòu)等。使用特點(diǎn):值的范圍,使用頻率,使用方式——輸入/輸出/本地,條件值等??刂菩畔ⅲ簛碓?,用戶,使用它的程序,改變權(quán),使用權(quán)等。分組信息:父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置----記錄、文件和數(shù)據(jù)庫等。49數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字;一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)使用了不同的名字;兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不同的名字。50出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字2.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對(duì)數(shù)據(jù)自頂向下的分解。一般說來,當(dāng)分解到不需要進(jìn)一步定義,每個(gè)和工程有關(guān)的人也都清楚其含義的元素時(shí),這種分解過程就完成了。512.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對(duì)數(shù)據(jù)自頂向數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個(gè)或多個(gè)分量;選擇 即從兩個(gè)或多個(gè)可能的元素中選取一個(gè);重復(fù) 即把指定的分量重復(fù)零次或多次??蛇x
即一個(gè)分量是可有可無的(重復(fù)零次或一次)。52數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個(gè)或多個(gè)分量符號(hào)-1
=意思是等價(jià)于(或定義為)+意思是和(即,連接兩個(gè)分量)[]意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè))53符號(hào)-1=意思是等價(jià)于(或定義為)53符號(hào)-2{}意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量)()意思是可選(即,圓括弧里的分量可有可無)54符號(hào)-2{}意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量)542.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階段的工具。數(shù)據(jù)字典中包含的每個(gè)數(shù)據(jù)元素的控制信息是很有價(jià)值的。容易估計(jì)改變一個(gè)數(shù)據(jù)將產(chǎn)生的影響,并且能對(duì)所有受影響的程序或模塊作出相應(yīng)的改變。最后,數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步。552.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階2.5.4數(shù)據(jù)字典的實(shí)現(xiàn)三種途徑:全人工過程全自動(dòng)化過程(利用數(shù)據(jù)字典處理程序)混合過程(用正文編輯程序、報(bào)告生成程序等已有的使用程序幫助人工過程)562.5.4數(shù)據(jù)字典的實(shí)現(xiàn)三種途徑:56數(shù)據(jù)字典具有的特點(diǎn)通過名字能方便地查閱數(shù)據(jù)的定義。沒有冗余。盡量不重復(fù)在規(guī)格說明的其它組成部分中已經(jīng)出現(xiàn)的信息。容易更新和修改。能單獨(dú)處理描述每個(gè)數(shù)據(jù)元素的信息。定義的書寫方法簡(jiǎn)單方便而且嚴(yán)格。57數(shù)據(jù)字典具有的特點(diǎn)通過名字能方便地查閱數(shù)據(jù)的定義。57數(shù)據(jù)字典的例子-1名字:定貨報(bào)表別名:定貨信息描述:每天一次送給采購員的需要定貨的零件表定義:定貨報(bào)表=零件編號(hào)+零件名稱+定貨數(shù)量+目前價(jià)格+主要供應(yīng)者+次要供應(yīng)者位置:輸出到打印機(jī)58數(shù)據(jù)字典的例子-1名字:定貨報(bào)表58數(shù)據(jù)字典的例子-2名字:零件編號(hào)別名:描述:唯一地標(biāo)識(shí)庫存清單中一個(gè)特定零件的關(guān)鍵域定義:零件編號(hào)=8{字符}8位置:定貨報(bào)表、定貨信息、庫存清單59數(shù)據(jù)字典的例子-2名字:零件編號(hào)59數(shù)據(jù)字典的例子-3名字:定貨數(shù)量別名:描述:某個(gè)零件一次定貨的數(shù)量定義:定貨數(shù)量=1{數(shù)字}5位置:定貨報(bào)表、定貨信息60數(shù)據(jù)字典的例子-3名字:定貨數(shù)量602.6成本/效益分析成本/效益分析的目的要從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助使用部門負(fù)責(zé)人正確地作出是否投資于這項(xiàng)開發(fā)工程的決定。
612.6成本/效益分析成本/效益分析的目的612.6.1成本估計(jì)軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平均工資則得到開發(fā)費(fèi)用)。代碼行技術(shù)任務(wù)分解技術(shù)自動(dòng)估計(jì)成本技術(shù)622.6.1成本估計(jì)軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平2.6.2成本/效益分析的方法成本/效益分析的第一步是估計(jì)開發(fā)成本、運(yùn)行費(fèi)用和新系統(tǒng)將帶來的經(jīng)濟(jì)效益。運(yùn)行費(fèi)用:系統(tǒng)的操作費(fèi)用(操作員人數(shù),工作時(shí)間,消耗的物資等等)和維護(hù)費(fèi)用。系統(tǒng)的經(jīng)濟(jì)效益:因使用新系統(tǒng)而增加的收入加上使用新系統(tǒng)可以節(jié)省的運(yùn)行費(fèi)用。632.6.2成本/效益分析的方法成本/效益分析的第一步是估相關(guān)概念-1貨幣的時(shí)間價(jià)值假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可以得到的錢數(shù)為:F=P(1+i)n反之,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價(jià)值是P=F/(1+i)n64相關(guān)概念-1貨幣的時(shí)間價(jià)值64相關(guān)概念-2投資回收期通常用投資回收期衡量一項(xiàng)開發(fā)工程的價(jià)值。所謂投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初投資所需要的時(shí)間。65相關(guān)概念-2投資回收期65相關(guān)概念-3純收入衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)是工程的純收入。純收入就是在整個(gè)生命周期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。66相關(guān)概念-3純收入66相關(guān)概念-4投資回收率把資金存入銀行或貸給其他企業(yè)能夠獲得利息,通常用年利率衡量利息多少。類似地也可以計(jì)算投資回收率,用它衡量投資效益的大小,并且可以把它和年利率相比較,在衡量工程的經(jīng)濟(jì)效益時(shí),它是最重要的參考數(shù)據(jù)。67相關(guān)概念-4投資回收率67相關(guān)概念-4投資回收率計(jì)算公式:P=F1/(1+j)+F2/(1+j)2+…+Fn/(1+j)nP是現(xiàn)在的投資額;Fi是第i年年底的效益(i=1,2,…,n);n是系統(tǒng)的使用壽命;j是投資回收率;解出這個(gè)高階代數(shù)方程即可求出投資回收率(假設(shè)系統(tǒng)壽命n=5)。68相關(guān)概念-4投資回收率682.7小結(jié)-1可行性研究目的是進(jìn)一步探討問題定義階段所確定的問題是否有可行的解。過程
1、經(jīng)過定義問題,分析問題,提出解法的反復(fù)過程,最終提出一個(gè)符合系統(tǒng)目標(biāo)的高層次的邏輯模型。 2、然后根據(jù)系統(tǒng)的這個(gè)邏輯模型設(shè)想各種可能的物理系統(tǒng),并且從技術(shù)、經(jīng)濟(jì)和操作等各方面分析這些物理系統(tǒng)的可行性。 3、最后,系統(tǒng)分析員提出一個(gè)推薦的行動(dòng)方針,提交用戶和使用部門負(fù)責(zé)人審查批準(zhǔn)。
692.7小結(jié)-1可行性研究目的是進(jìn)一步探討問題定義階段2.7小結(jié)-2系統(tǒng)流程圖實(shí)質(zhì)上是物理數(shù)據(jù)流圖,它描繪組成系統(tǒng)的主要物理元素以及信息在這些元素間流動(dòng)和處理的情況。數(shù)據(jù)流圖的基本符號(hào)只有四種,它是描繪系統(tǒng)邏輯模型的極好工具。通常數(shù)據(jù)字典和數(shù)據(jù)流圖共同構(gòu)成系統(tǒng)的邏輯模型。成本/效益分析是可行性研究的一項(xiàng)重要內(nèi)容702.7小結(jié)-2系統(tǒng)流程圖實(shí)質(zhì)上是物理數(shù)據(jù)流圖,它描繪Thanks!9/13/2004NEXTCHAP03需求分析作業(yè):P434、571Thanks!NEXTCHAP03需求分析作業(yè):P
軟件工程導(dǎo)論
SoftwareEngineering主講:呂曉華E-mail:bowen995@72 軟件工程導(dǎo)論
SoftwareEngineering主講Chap02可行性研究可行性研究的任務(wù)可行性研究過程系統(tǒng)流程圖數(shù)據(jù)流圖數(shù)據(jù)字典(內(nèi)容、方法、用途、實(shí)現(xiàn))成本/效益分析(成本估計(jì)、分析方法)可行性研究的目的就是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決;可行性研究的目的不是解決問題,而是確定問題是否值得去解。
73Chap02可行性研究可行性研究的任務(wù)可行性研究的目的就2.1可行性研究的任務(wù)可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過程:分析和澄清問題定義導(dǎo)出系統(tǒng)的邏輯模型-探索系統(tǒng)實(shí)現(xiàn)方案:
技術(shù)可行性:現(xiàn)有的技術(shù)經(jīng)濟(jì)可行性:開發(fā)成本操作可行性:用戶操作實(shí)現(xiàn)進(jìn)度可行性研究的成本:預(yù)期的工程總成本的5%~10%742.1可行性研究的任務(wù)可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮2.2可行性研究的步驟復(fù)查系統(tǒng)規(guī)模和目標(biāo)研究目前正在使用的系統(tǒng)導(dǎo)出新系統(tǒng)的高層邏輯模型重新定義問題導(dǎo)出和評(píng)價(jià)供選擇的解法推薦行動(dòng)方針草擬開發(fā)計(jì)劃書寫文檔提交審查752.2可行性研究的步驟復(fù)查系統(tǒng)規(guī)模和目標(biāo)4復(fù)查系統(tǒng)規(guī)模和目標(biāo)對(duì)問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書進(jìn)一步復(fù)查確認(rèn)。改正報(bào)告書中的敘述模糊、不正確的地方。這個(gè)步驟的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問題確實(shí)是要求他解決的問題。進(jìn)一步復(fù)查確認(rèn)“規(guī)模和目標(biāo)報(bào)告書”76復(fù)查系統(tǒng)規(guī)模和目標(biāo)對(duì)問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點(diǎn)分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊(cè),實(shí)地考察現(xiàn)有系統(tǒng)描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖并確認(rèn)記錄現(xiàn)有系統(tǒng)的接口77研究目前正在使用的系統(tǒng)正在使用的系統(tǒng)的基本功能以及某些缺點(diǎn)6導(dǎo)出新系統(tǒng)的高層邏輯模型設(shè)計(jì)過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā),再參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。使用數(shù)據(jù)流圖,描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的情況,從而概括地表達(dá)出對(duì)新系統(tǒng)的設(shè)想。通常為了把新系統(tǒng)描繪得更清晰準(zhǔn)確,還應(yīng)該有一個(gè)初步的數(shù)據(jù)字典,定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,以后可以從這個(gè)邏輯模型出發(fā)設(shè)計(jì)新系統(tǒng)。78導(dǎo)出新系統(tǒng)的高層邏輯模型設(shè)計(jì)過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā)重新定義問題分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)??尚行匝芯康那八膫€(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。
定義問題分析問題導(dǎo)出一個(gè)試探性的解重新定義問題符合系統(tǒng)目標(biāo)?YN79重新定義問題分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和導(dǎo)出和評(píng)價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的(較抽象的)物理解法供比較和選擇。從技術(shù)角度出發(fā)考慮解決問題的不同方案。例如,2.4節(jié)中將舉例說明在數(shù)據(jù)流圖上劃分不同的自動(dòng)化邊界根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)。例如,如果要求系統(tǒng)的響應(yīng)時(shí)間不超過幾秒鐘,顯然應(yīng)該排除任何批處理方案。考慮操作方面的可行性。分析員應(yīng)該根據(jù)使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案??紤]經(jīng)濟(jì)方面的可行性。分析員應(yīng)該估計(jì)余下的每個(gè)可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,并且估計(jì)相對(duì)于現(xiàn)有的系統(tǒng)而言這個(gè)系統(tǒng)可以節(jié)省的開支或可以增加的收入。在這些估計(jì)數(shù)字的基礎(chǔ)上,對(duì)每個(gè)可能的系統(tǒng)進(jìn)行成本/效益分析。(參看2.6節(jié))制定實(shí)現(xiàn)進(jìn)度表。通常只需要估計(jì)生命周期每個(gè)階段的工作量。80導(dǎo)出和評(píng)價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),推薦行動(dòng)方針做出一個(gè)關(guān)鍵性的決定:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。如果分析員認(rèn)為值得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最好的解法,并且說明選擇這個(gè)解決方案的理由。81推薦行動(dòng)方針做出一個(gè)關(guān)鍵性的決定:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。草擬開發(fā)計(jì)劃為推薦的系統(tǒng)草擬一份開發(fā)計(jì)劃:工程進(jìn)度表估計(jì)對(duì)各種開發(fā)人員和各種資源的需要情況。估計(jì)系統(tǒng)生命周期每個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。82草擬開發(fā)計(jì)劃為推薦的系統(tǒng)草擬一份開發(fā)計(jì)劃:11書寫文檔提交審查寫成清晰的文檔,請(qǐng)用戶和使用部門的負(fù)責(zé)人仔細(xì)審查。83書寫文檔提交審查寫成清晰的文檔,請(qǐng)用戶和使用部門的負(fù)責(zé)人仔細(xì)2.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件(程序,文件,數(shù)據(jù)庫,表格,人工過程等等)。系統(tǒng)流程圖表達(dá)的是信息在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)信息進(jìn)行加工處理的控制過程。盡管系統(tǒng)流程圖使用的某些符號(hào)和程序流程圖中用的符號(hào)相同,但是它卻是物理數(shù)據(jù)流程圖而不是程序流程圖。2.3.1符號(hào)842.3系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。2.基本符號(hào)
一個(gè)符號(hào)表示系統(tǒng)中的一個(gè)部件。
符號(hào)名
稱說
明處理能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如,程序、處理機(jī)、人工加工等都是處理。輸入/輸出表示輸入或輸出(或既輸入又輸出),是一個(gè)廣義的不指明具體設(shè)備的符號(hào)。連接指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來,通常在同一頁上。換頁連接指出轉(zhuǎn)到另一頁圖上或由另一頁圖轉(zhuǎn)來。
數(shù)據(jù)流用來連接其他符號(hào),指明數(shù)據(jù)流動(dòng)方向。85基本符號(hào)一個(gè)符號(hào)表示系統(tǒng)中的一個(gè)部件。符號(hào)名稱說系統(tǒng)符號(hào)
86系統(tǒng)符號(hào)152.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果那種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報(bào)告。習(xí)慣畫法是使信息在圖中從頂向下,從左向右流動(dòng)。系統(tǒng)流程圖872.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各2.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個(gè)復(fù)雜的系統(tǒng)。提示:下一節(jié)--2.4數(shù)據(jù)流圖882.3.3分層首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌2.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中流動(dòng)和處理的情況。892.4數(shù)據(jù)流圖-1數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,圖中沒有任2.4數(shù)據(jù)流圖-2因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解,所以是極好的通信工具。此外,設(shè)計(jì)數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體地實(shí)現(xiàn)這些功能,所以它也是軟件設(shè)計(jì)的很好的出發(fā)點(diǎn)。902.4數(shù)據(jù)流圖-2因?yàn)閿?shù)據(jù)流圖是邏輯系統(tǒng)的圖形表示,即使四種基本符號(hào)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。表示變換數(shù)據(jù)的處理。表示數(shù)據(jù)存儲(chǔ)(靜止數(shù)據(jù))。表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動(dòng)方向(流動(dòng)數(shù)據(jù))。91四種基本符號(hào)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)。20三個(gè)附加符號(hào)*:表示數(shù)據(jù)之間是“與”關(guān)系。+:表示數(shù)據(jù)之間是“或”關(guān)系。:表示數(shù)據(jù)之間是“互斥”關(guān)系(只能從中選一個(gè))。92三個(gè)附加符號(hào)*:表示數(shù)據(jù)之間是“與”關(guān)系。21說明數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運(yùn)動(dòng)中的數(shù)據(jù)。93說明數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)是說明有時(shí)數(shù)據(jù)的源點(diǎn)和終點(diǎn)相同。如果只用一個(gè)符號(hào)代表數(shù)據(jù)的源點(diǎn)和終點(diǎn),則至少有兩個(gè)箭頭和這個(gè)符號(hào)相連(一個(gè)進(jìn)一個(gè)出,)可能其中一條箭頭相當(dāng)長,這將降低數(shù)據(jù)流圖的清晰度,如果代表同一個(gè)事物的同樣符號(hào)在圖中出現(xiàn)在n個(gè)地方,則在這個(gè)符號(hào)的一個(gè)角上畫n-1條短斜線做標(biāo)記。94說明有時(shí)數(shù)據(jù)的源點(diǎn)和終點(diǎn)相同。如果只用一個(gè)符號(hào)代表數(shù)據(jù)的源點(diǎn)說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不要混淆。熟悉程序流程圖的初學(xué)者在畫數(shù)據(jù)流圖時(shí),往往試圖在數(shù)據(jù)流圖中表現(xiàn)分支條件或循環(huán),殊不知這樣做將造成混亂,畫不出正確的數(shù)據(jù)流圖。95說明數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不說明在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個(gè)數(shù)據(jù)流的條件。數(shù)據(jù)流圖的基本要點(diǎn)是描繪“做什么”而不考慮“怎樣做”。96說明在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)例子問題定義:一家工廠的采購部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,表中列出所有需要再次定貨的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。零件入庫或出庫稱為事務(wù),通過放在倉庫中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某個(gè)零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再次定貨。97例子問題定義:一家工廠的采購部每天需要一張定貨報(bào)表,報(bào)表按零提取數(shù)據(jù)流圖的四種成分-1
“通過放在倉庫中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)”——倉庫管理員是數(shù)據(jù)源點(diǎn)?!安少彶棵刻煨枰粡埗ㄘ泩?bào)表”——采購員是數(shù)據(jù)終點(diǎn)?!安少彶啃枰獔?bào)表”——用于產(chǎn)生報(bào)表的處理?!笆聞?wù)的后果是改變零件庫存量”——對(duì)事務(wù)進(jìn)行的加工的處理。98提取數(shù)據(jù)流圖的四種成分-1“通過放在倉庫中的CRT終端把事提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報(bào)表送給采購部”——定貨報(bào)表是一個(gè)數(shù)據(jù)流?!笆聞?wù)需要從倉庫送到系統(tǒng)中”——事務(wù)是一個(gè)數(shù)據(jù)流?!懊慨?dāng)有一個(gè)事務(wù)發(fā)生時(shí)立即處理它,然而每天只產(chǎn)生一次定貨報(bào)表”——應(yīng)該有一個(gè)數(shù)據(jù)存儲(chǔ)保存產(chǎn)生定貨報(bào)表的數(shù)據(jù)?!爱?dāng)某個(gè)零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再次定貨”——應(yīng)該有一個(gè)數(shù)據(jù)存儲(chǔ)保存庫存清單數(shù)據(jù)。99提取數(shù)據(jù)流圖的四種成分-2“系統(tǒng)把定貨報(bào)表送給采購部”——數(shù)據(jù)流圖的四種成分100數(shù)據(jù)流圖的四種成分29定貨系統(tǒng)的基本系統(tǒng)模型倉庫管理員定貨系統(tǒng)采購員事務(wù)定貨報(bào)表
101定貨系統(tǒng)的基本系統(tǒng)模型倉庫定貨采購員事務(wù)定貨報(bào)表3定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖102定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖31把處理功能進(jìn)一步分解后的數(shù)據(jù)流圖103把處理功能進(jìn)一步分解后的數(shù)據(jù)流圖32注意當(dāng)進(jìn)一步分解將涉及如何具體地實(shí)現(xiàn)一個(gè)功能時(shí)就不應(yīng)該再分解了。例如:為什么不進(jìn)一步分解“產(chǎn)生報(bào)表”這個(gè)功能呢?定貨報(bào)表中需要的數(shù)據(jù)在存儲(chǔ)的定貨信息中全都有,產(chǎn)生報(bào)表只不過是按一定順序排列這些信息,再按一定格式打印出來。然而這些考慮純屬具體實(shí)現(xiàn)的細(xì)節(jié),不應(yīng)該在數(shù)據(jù)流圖中表現(xiàn)。104注意當(dāng)進(jìn)一步分解將涉及如何具體地實(shí)現(xiàn)一個(gè)功能時(shí)就不應(yīng)該再分解注意當(dāng)對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性。也就是說,當(dāng)把一個(gè)處理分解為一系列處理時(shí),分解前和分解后的輸入/輸出數(shù)據(jù)流必須相同。105注意當(dāng)對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性。34注意應(yīng)該注意在圖中對(duì)處理進(jìn)行編號(hào)的方法。106注意應(yīng)該注意在圖中對(duì)處理進(jìn)行編號(hào)的方法。352.4.3命名數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響數(shù)據(jù)流圖的可理解性。1072.4.3命名數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是僅僅反映它的某些成分。不要使用空洞的、缺乏具體含義的名字(如:“數(shù)據(jù)”、“信息”、“輸入”等)。如果在為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的,應(yīng)嘗試重新分解,看是否能克服這個(gè)困難。108為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類習(xí)慣的“由表及里”的思考過程。名字應(yīng)該反映整個(gè)處理的功能,而不是它的一部分功能。名字最好由一個(gè)具體的及物動(dòng)詞,加上一個(gè)具體的賓語組成。應(yīng)該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動(dòng)詞作名字。109為處理命名-1通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命為處理命名-2通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才能描述整個(gè)處理的功能,則把這個(gè)處理再分解成兩個(gè)處理可能更恰當(dāng)些。如果在為某個(gè)處理命名時(shí)遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解。110為處理命名-2通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才為數(shù)據(jù)源點(diǎn)/終點(diǎn)命名采用它們?cè)趩栴}域中習(xí)慣使用的名字(如“采購員”、“倉庫管理員”等)111為數(shù)據(jù)源點(diǎn)/終點(diǎn)命名采用它們?cè)趩栴}域中習(xí)慣使用的名字(如“采2.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工具??梢愿鶕?jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實(shí)現(xiàn)。當(dāng)用數(shù)據(jù)流圖輔助物理系統(tǒng)的設(shè)計(jì)時(shí),以圖中不同處理的定時(shí)要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動(dòng)化邊界,每組自動(dòng)化邊界可能意味著一個(gè)不同的物理系統(tǒng)。1122.4.4用途-1畫數(shù)據(jù)流圖的基本目的是利用它作為交流信例1可以聯(lián)機(jī)地接收事務(wù)并放入隊(duì)列中,然而更新庫存清單、處理定貨和產(chǎn)生報(bào)表以批量方式進(jìn)行。當(dāng)然,這種方案需要增加一個(gè)數(shù)據(jù)存儲(chǔ)以存放事務(wù)數(shù)據(jù)。113例1可以聯(lián)機(jī)地接收事務(wù)并放入隊(duì)列中,然而更新庫存清單、處理定數(shù)據(jù)流圖114數(shù)據(jù)流圖43例2改變自動(dòng)化邊界,把處理1.1、1.2和1.3放在同一個(gè)邊界內(nèi)。這個(gè)系統(tǒng)將聯(lián)機(jī)地接收事務(wù)、更新庫存清單和處理定貨及輸出定貨信息;然而處理2將以批量方式產(chǎn)生定貨報(bào)表。115例2改變自動(dòng)化邊界,把處理1.1、1.2和1.3放在同一個(gè)邊數(shù)據(jù)流圖116數(shù)據(jù)流圖452.4.4用途-2數(shù)據(jù)流圖對(duì)更詳細(xì)的設(shè)計(jì)步驟也有幫助。本書第五章將講述從數(shù)據(jù)流圖出發(fā)映射出軟件結(jié)構(gòu)的方法——面向數(shù)據(jù)流的設(shè)計(jì)方法。1172.4.4用途-2數(shù)據(jù)流圖對(duì)更詳細(xì)的設(shè)計(jì)步驟也有幫助。42.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。1182.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)2.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應(yīng)該由對(duì)下列四類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即,數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(chǔ)(4)處理。本書中數(shù)據(jù)字典將主要由對(duì)數(shù)據(jù)的定義組成。數(shù)據(jù)處理的定義用其它工具(如IPO圖或PDL)描述更方便。1192.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應(yīng)該由對(duì)下列四數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等。定義:數(shù)據(jù)類型,長度,結(jié)構(gòu)等。使用特點(diǎn):值的范圍,使用頻率,使用方式——輸入/輸出/本地,條件值等??刂菩畔ⅲ簛碓矗脩?,使用它的程序,改變權(quán),使用權(quán)等。分組信息:父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置----記錄、文件和數(shù)據(jù)庫等。120數(shù)據(jù)字典中記錄的數(shù)據(jù)元素的信息一般信息:名字,別名,描述等出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字;一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)使用了不同的名字;兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不同的名字。121出現(xiàn)別名主要原因?qū)τ谕瑯拥臄?shù)據(jù),不同的用戶使用了不同的名字2.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對(duì)數(shù)據(jù)自頂向下的分解。一般說來,當(dāng)分解到不需要進(jìn)一步定義,每個(gè)和工程有關(guān)的人也都清楚其含義的元素時(shí),這種分解過程就完成了。1222.5.2定義數(shù)據(jù)的方法數(shù)據(jù)字典中的定義就是對(duì)數(shù)據(jù)自頂向數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個(gè)或多個(gè)分量;選擇 即從兩個(gè)或多個(gè)可能的元素中選取一個(gè);重復(fù) 即把指定的分量重復(fù)零次或多次??蛇x
即一個(gè)分量是可有可無的(重復(fù)零次或一次)。123數(shù)據(jù)元素組成數(shù)據(jù)的方式順序 即以確定次序連接兩個(gè)或多個(gè)分量符號(hào)-1
=意思是等價(jià)于(或定義為)+意思是和(即,連接兩個(gè)分量)[]意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè))124符號(hào)-1=意思是等價(jià)于(或定義為)53符號(hào)-2{}意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量)()意思是可選(即,圓括弧里的分量可有可無)125符號(hào)-2{}意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量)542.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階段的工具。數(shù)據(jù)字典中包含的每個(gè)數(shù)據(jù)元素的控制信息是很有價(jià)值的。容易估計(jì)改變一個(gè)數(shù)據(jù)將產(chǎn)生的影響,并且能對(duì)所有受影響的程序或模塊作出相應(yīng)的改變。最后,數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步。1262.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階2.5.4數(shù)據(jù)字典的實(shí)現(xiàn)三種途徑:全人工過程全自動(dòng)化過程(利用數(shù)據(jù)字典處理程序)混合過程(用正文編輯程序、報(bào)告生成程序等已有的使用程序幫助人工過程)1272.5.4數(shù)據(jù)字典的實(shí)現(xiàn)三種途徑:56數(shù)據(jù)字典具有的特點(diǎn)通過名字能方便地查閱數(shù)據(jù)的定義。沒有冗余。盡量不重復(fù)在規(guī)格說明的其它組成部分中已經(jīng)出現(xiàn)的信息。容易更新和修改。能單獨(dú)處理描述每個(gè)數(shù)據(jù)元素
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 船舶強(qiáng)度課程設(shè)計(jì)
- 二零二五年度抗滑樁施工信息化管理系統(tǒng)合同2篇
- 二零二五年度寵物店轉(zhuǎn)讓及租賃合同3篇
- 燃?xì)夤艿姥簿€員管理制度模版(2篇)
- 課程設(shè)計(jì)無線充電電動(dòng)車
- 二零二五年度應(yīng)急物資儲(chǔ)備與責(zé)任落實(shí)合同3篇
- 食品安全宣傳周方案模版(2篇)
- 二零二五年度汽車尾氣排放檢測(cè)與治理委托合同范本3篇
- 二零二五年度個(gè)人股權(quán)轉(zhuǎn)讓與公司合并重組協(xié)議范本3篇
- 二零二五年圖書館室內(nèi)裝飾合同2篇
- 瑤醫(yī)目診圖-望面診病現(xiàn)用圖解-目診
- 2022年四級(jí)反射療法師考試題庫(含答案)
- 新《安全生產(chǎn)法》培訓(xùn)測(cè)試題
- 政務(wù)禮儀-PPT課件
- 特種涂料類型——耐核輻射涂料的研究
- 化工裝置常用英語詞匯對(duì)照
- 物資采購管理流程圖
- 無牙頜解剖標(biāo)志
- 標(biāo)準(zhǔn)《大跨徑混凝土橋梁的試驗(yàn)方法》
- 格拉斯哥昏迷評(píng)分(GCS)--表格-改良自用
- ISO9001記錄保存年限一覽表
評(píng)論
0/150
提交評(píng)論