![軟件工程第2章_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/f1a99007-f636-40f4-9fe0-54524e389a73/f1a99007-f636-40f4-9fe0-54524e389a731.gif)
![軟件工程第2章_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/f1a99007-f636-40f4-9fe0-54524e389a73/f1a99007-f636-40f4-9fe0-54524e389a732.gif)
![軟件工程第2章_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/f1a99007-f636-40f4-9fe0-54524e389a73/f1a99007-f636-40f4-9fe0-54524e389a733.gif)
![軟件工程第2章_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/f1a99007-f636-40f4-9fe0-54524e389a73/f1a99007-f636-40f4-9fe0-54524e389a734.gif)
![軟件工程第2章_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/f1a99007-f636-40f4-9fe0-54524e389a73/f1a99007-f636-40f4-9fe0-54524e389a735.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第2章章 可行性研究可行性研究2.1 可行性研究的任務(wù)可行性研究的任務(wù)2.2 可行性研究過(guò)程可行性研究過(guò)程2.3 系統(tǒng)流程圖系統(tǒng)流程圖2.4 數(shù)據(jù)流圖數(shù)據(jù)流圖2.5 數(shù)據(jù)字典數(shù)據(jù)字典2.6 成本成本/效益分析效益分析2.7 小結(jié)小結(jié)習(xí)題習(xí)題可行性研究的目的不是解決問(wèn)題,而是確定問(wèn)題是可行性研究的目的不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決。否值得去解決。怎樣達(dá)到這個(gè)目的呢怎樣達(dá)到這個(gè)目的呢?當(dāng)然不能靠主當(dāng)然不能靠主觀猜想而只能靠客觀分析。必須分析幾種主要的可觀猜想而只能靠客觀分析。必須分析幾種主要的可能解法的利弊,從而判斷原定的系統(tǒng)規(guī)模和目標(biāo)是能解法的利弊,從而判斷原定的系統(tǒng)規(guī)模和目標(biāo)是否現(xiàn)
2、實(shí),系統(tǒng)完成后所能帶來(lái)的效益是否大到值得否現(xiàn)實(shí),系統(tǒng)完成后所能帶來(lái)的效益是否大到值得投資開發(fā)這個(gè)系統(tǒng)的程度。投資開發(fā)這個(gè)系統(tǒng)的程度。因此,可行性研究實(shí)質(zhì)因此,可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)上是要進(jìn)行一次大大壓縮簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過(guò)程,也就是在較高層次上以較抽象的方式進(jìn)行的過(guò)程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過(guò)程。的系統(tǒng)分析和設(shè)計(jì)的過(guò)程。2.1 可行性研究的任務(wù)可行性研究的任務(wù)首先需要進(jìn)一步分析和澄清問(wèn)題定義。首先需要進(jìn)一步分析和澄清問(wèn)題定義。在問(wèn)題定義在問(wèn)題定義階段初步確定的規(guī)模和目標(biāo),如果是正確的就進(jìn)一階段初步確定的規(guī)模和目標(biāo),如果是
3、正確的就進(jìn)一步加以肯定,如果有錯(cuò)誤就應(yīng)該及時(shí)改正,如果對(duì)步加以肯定,如果有錯(cuò)誤就應(yīng)該及時(shí)改正,如果對(duì)目標(biāo)系統(tǒng)有任何約束和限制,也必須把它們清楚地目標(biāo)系統(tǒng)有任何約束和限制,也必須把它們清楚地列舉出來(lái)。列舉出來(lái)。在澄清了問(wèn)題定義之后,分析員應(yīng)該導(dǎo)出系統(tǒng)的邏在澄清了問(wèn)題定義之后,分析員應(yīng)該導(dǎo)出系統(tǒng)的邏輯模型。輯模型。然后從系統(tǒng)邏輯模型出發(fā),探索若干種可然后從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要解法供選擇的主要解法(即系統(tǒng)實(shí)現(xiàn)方案即系統(tǒng)實(shí)現(xiàn)方案)。對(duì)每種解法都。對(duì)每種解法都應(yīng)該仔細(xì)研究它的可行性,一般說(shuō)來(lái),至少應(yīng)該從應(yīng)該仔細(xì)研究它的可行性,一般說(shuō)來(lái),至少應(yīng)該從下述三方面研究每種解法的可行性:下述
4、三方面研究每種解法的可行性:(1) 技術(shù)可行性技術(shù)可行性 使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?(2) 經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性 這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過(guò)它的開發(fā)成本嗎這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過(guò)它的開發(fā)成本嗎?(3) 操作可行性操作可行性 系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎?必要時(shí)還應(yīng)該從法律、社會(huì)效益等更廣泛的方面研必要時(shí)還應(yīng)該從法律、社會(huì)效益等更廣泛的方面研究每種解法的可行性。究每種解法的可行性。分析員應(yīng)該為每個(gè)可行的解法制定一個(gè)粗略的實(shí)現(xiàn)分析員應(yīng)該為每個(gè)可行的解法制定一個(gè)粗略的實(shí)現(xiàn)進(jìn)度。進(jìn)度。可行性研究最根本的任務(wù)是對(duì)以后的行動(dòng)
5、方針提出可行性研究最根本的任務(wù)是對(duì)以后的行動(dòng)方針提出建議。如果問(wèn)題沒(méi)有可行的解建議。如果問(wèn)題沒(méi)有可行的解,分析員應(yīng)該建議停,分析員應(yīng)該建議停止這項(xiàng)開發(fā)工程,以避免時(shí)間、資源、人力和金錢止這項(xiàng)開發(fā)工程,以避免時(shí)間、資源、人力和金錢的浪費(fèi);的浪費(fèi);如果問(wèn)題值得解如果問(wèn)題值得解,分析員應(yīng)該推薦一個(gè)較,分析員應(yīng)該推薦一個(gè)較好的解決方案,并且為工程制定一個(gè)初步的計(jì)劃。好的解決方案,并且為工程制定一個(gè)初步的計(jì)劃??尚行匝芯靠尚行匝芯啃枰臅r(shí)間長(zhǎng)短取決于工程可行性研究可行性研究需要的時(shí)間長(zhǎng)短取決于工程的規(guī)模。一般說(shuō)來(lái),的規(guī)模。一般說(shuō)來(lái),可行性研究的成本只是預(yù)期的可行性研究的成本只是預(yù)期的工程總成本的工程總成
6、本的5%10%。典型的可行性研究過(guò)程有下述一些步驟。典型的可行性研究過(guò)程有下述一些步驟。1. 復(fù)查系統(tǒng)規(guī)模和目標(biāo)復(fù)查系統(tǒng)規(guī)模和目標(biāo)分析員訪問(wèn)關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材料,分析員訪問(wèn)關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材料,以便對(duì)問(wèn)題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告以便對(duì)問(wèn)題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書進(jìn)一步復(fù)查確認(rèn),改正含糊或不確切的敘述,清書進(jìn)一步復(fù)查確認(rèn),改正含糊或不確切的敘述,清晰地描述對(duì)目標(biāo)系統(tǒng)的一切限制和約束。晰地描述對(duì)目標(biāo)系統(tǒng)的一切限制和約束。這個(gè)步驟這個(gè)步驟的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問(wèn)題的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問(wèn)題確實(shí)是要求他解決的問(wèn)題。確
7、實(shí)是要求他解決的問(wèn)題。2.2 可行性研究過(guò)程可行性研究過(guò)程2. 研究目前正在使用的系統(tǒng)研究目前正在使用的系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來(lái)源。現(xiàn)有的系統(tǒng)是信息的重要來(lái)源。新的目標(biāo)系統(tǒng)必須新的目標(biāo)系統(tǒng)必須也能完成它的基本功能;另一方面,如果現(xiàn)有的系也能完成它的基本功能;另一方面,如果現(xiàn)有的系統(tǒng)是完美無(wú)缺的,用戶自然不會(huì)提出開發(fā)新系統(tǒng)的統(tǒng)是完美無(wú)缺的,用戶自然不會(huì)提出開發(fā)新系統(tǒng)的要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點(diǎn),新系統(tǒng)要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點(diǎn),新系統(tǒng)必須能解決舊系統(tǒng)中存在的問(wèn)題。此外,運(yùn)行使用必須能解決舊系統(tǒng)中存在的問(wèn)題。此外,運(yùn)行使用舊系統(tǒng)所需要的費(fèi)用是一個(gè)重要的經(jīng)濟(jì)指標(biāo),如果舊系統(tǒng)所
8、需要的費(fèi)用是一個(gè)重要的經(jīng)濟(jì)指標(biāo),如果新系統(tǒng)不能增加收入或減少使用費(fèi)用,那么從經(jīng)濟(jì)新系統(tǒng)不能增加收入或減少使用費(fèi)用,那么從經(jīng)濟(jì)角度看新系統(tǒng)就不如舊系統(tǒng)。角度看新系統(tǒng)就不如舊系統(tǒng)。應(yīng)該仔細(xì)閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊(cè),應(yīng)該仔細(xì)閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊(cè),也要實(shí)地考察現(xiàn)有的系統(tǒng)。也要實(shí)地考察現(xiàn)有的系統(tǒng)。應(yīng)該注意了解這個(gè)系統(tǒng)應(yīng)該注意了解這個(gè)系統(tǒng)可以做什么,為什么這樣做,還要了解使用這個(gè)系可以做什么,為什么這樣做,還要了解使用這個(gè)系統(tǒng)的代價(jià)。在了解上述這些信息的時(shí)候顯然必須訪統(tǒng)的代價(jià)。在了解上述這些信息的時(shí)候顯然必須訪問(wèn)有關(guān)的人員。問(wèn)有關(guān)的人員。常見(jiàn)的錯(cuò)誤做法是花費(fèi)過(guò)多時(shí)間去分析現(xiàn)有的
9、系統(tǒng)。常見(jiàn)的錯(cuò)誤做法是花費(fèi)過(guò)多時(shí)間去分析現(xiàn)有的系統(tǒng)。這個(gè)步驟的目的是了解現(xiàn)有系統(tǒng)能做什么,而不是這個(gè)步驟的目的是了解現(xiàn)有系統(tǒng)能做什么,而不是了解它怎樣做這些工作。了解它怎樣做這些工作。分析員應(yīng)該畫出描繪現(xiàn)有分析員應(yīng)該畫出描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖系統(tǒng)的高層系統(tǒng)流程圖(見(jiàn)見(jiàn)2.3節(jié)節(jié)),并請(qǐng)有關(guān)人員檢驗(yàn)并請(qǐng)有關(guān)人員檢驗(yàn)他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)是否正確。千萬(wàn)不要花費(fèi)太多他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)是否正確。千萬(wàn)不要花費(fèi)太多時(shí)間去了解和描繪現(xiàn)有系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié)。時(shí)間去了解和描繪現(xiàn)有系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié)。沒(méi)有一個(gè)系統(tǒng)是在沒(méi)有一個(gè)系統(tǒng)是在“真空真空”中運(yùn)行的,絕大多數(shù)系中運(yùn)行的,絕大多數(shù)系統(tǒng)都和其他系統(tǒng)有聯(lián)系。統(tǒng)都和其他系統(tǒng)
10、有聯(lián)系。應(yīng)該注意了解并記錄現(xiàn)有應(yīng)該注意了解并記錄現(xiàn)有系統(tǒng)和其他系統(tǒng)之間的接口情況,這是設(shè)計(jì)新系統(tǒng)系統(tǒng)和其他系統(tǒng)之間的接口情況,這是設(shè)計(jì)新系統(tǒng)時(shí)的重要約束條件。時(shí)的重要約束條件。3. 導(dǎo)出新系統(tǒng)的導(dǎo)出新系統(tǒng)的高層邏輯模型高層邏輯模型優(yōu)秀的設(shè)計(jì)過(guò)程通??偸菑默F(xiàn)有的優(yōu)秀的設(shè)計(jì)過(guò)程通常總是從現(xiàn)有的物理系統(tǒng)物理系統(tǒng)出發(fā),出發(fā),導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,再參考現(xiàn)有系統(tǒng)的邏輯導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,再參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的統(tǒng)的邏輯模型建造新的物理系統(tǒng)物理系統(tǒng)(我理解就是最終的我理解就是最終的軟件產(chǎn)品軟件產(chǎn)品
11、)。通過(guò)前一步的工作,分析員對(duì)目標(biāo)系統(tǒng)應(yīng)該具有的通過(guò)前一步的工作,分析員對(duì)目標(biāo)系統(tǒng)應(yīng)該具有的基本功能和所受的約束已有一定了解,能夠使用數(shù)基本功能和所受的約束已有一定了解,能夠使用數(shù)據(jù)流圖據(jù)流圖(參看參看2.4節(jié)節(jié)),描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的,描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的情況,從而概括地表達(dá)出他對(duì)新系統(tǒng)的設(shè)想。通常情況,從而概括地表達(dá)出他對(duì)新系統(tǒng)的設(shè)想。通常為了把新系統(tǒng)描繪得更清晰準(zhǔn)確,還應(yīng)該有一個(gè)初為了把新系統(tǒng)描繪得更清晰準(zhǔn)確,還應(yīng)該有一個(gè)初步的數(shù)據(jù)字典步的數(shù)據(jù)字典(參看參看2.5節(jié)節(jié)),定義系統(tǒng)中使用的數(shù)據(jù)。,定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,數(shù)據(jù)流圖和
12、數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,以后可以從這個(gè)邏輯模型出發(fā)設(shè)計(jì)新系統(tǒng)。以后可以從這個(gè)邏輯模型出發(fā)設(shè)計(jì)新系統(tǒng)。4. 進(jìn)一步定義問(wèn)題進(jìn)一步定義問(wèn)題新系統(tǒng)的邏輯模型實(shí)質(zhì)上表達(dá)了分析員對(duì)新系統(tǒng)必新系統(tǒng)的邏輯模型實(shí)質(zhì)上表達(dá)了分析員對(duì)新系統(tǒng)必須做什么的看法。須做什么的看法。分析員應(yīng)該和用戶一起再次復(fù)查分析員應(yīng)該和用戶一起再次復(fù)查問(wèn)題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)問(wèn)題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)。流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)。如果分析員對(duì)問(wèn)如果分析員對(duì)問(wèn)題有誤解或者用戶曾經(jīng)遺漏了某些要求,那么現(xiàn)在題有誤解或者用戶曾經(jīng)遺漏了某些要求,那么現(xiàn)在是發(fā)現(xiàn)和改正這
13、些錯(cuò)誤的時(shí)候了。是發(fā)現(xiàn)和改正這些錯(cuò)誤的時(shí)候了。可行性研究的前可行性研究的前4個(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。分析個(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。分析員定義問(wèn)題,分析這個(gè)問(wèn)題,導(dǎo)出一個(gè)試探性的解;員定義問(wèn)題,分析這個(gè)問(wèn)題,導(dǎo)出一個(gè)試探性的解;在此基礎(chǔ)上再次定義問(wèn)題,再一次分析這個(gè)問(wèn)題,在此基礎(chǔ)上再次定義問(wèn)題,再一次分析這個(gè)問(wèn)題,修改這個(gè)解;繼續(xù)這個(gè)循環(huán)過(guò)程,直到提出的邏輯修改這個(gè)解;繼續(xù)這個(gè)循環(huán)過(guò)程,直到提出的邏輯模型完全符合系統(tǒng)目標(biāo)。模型完全符合系統(tǒng)目標(biāo)。5. 導(dǎo)出和評(píng)價(jià)供選擇的解法導(dǎo)出和評(píng)價(jià)供選擇的解法分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的
14、干個(gè)較高層次的(較抽象的較抽象的)物理解法供比較和選擇。物理解法供比較和選擇。導(dǎo)出供選擇的解法的最簡(jiǎn)單的途徑,是從導(dǎo)出供選擇的解法的最簡(jiǎn)單的途徑,是從技術(shù)角度技術(shù)角度出發(fā)考慮解決問(wèn)題的不同方案出發(fā)考慮解決問(wèn)題的不同方案。還可以使用組合的。還可以使用組合的方法導(dǎo)出若干種可能的物理系統(tǒng)。方法導(dǎo)出若干種可能的物理系統(tǒng)。當(dāng)從技術(shù)角度提出了一些可能的物理系統(tǒng)之后,應(yīng)當(dāng)從技術(shù)角度提出了一些可能的物理系統(tǒng)之后,應(yīng)該根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系該根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)。把技術(shù)上行不通的解法去掉之后,就剩下了一統(tǒng)。把技術(shù)上行不通的解法去掉之后,就剩下了一組技術(shù)上可行的方案。組
15、技術(shù)上可行的方案。其次可以考慮操作方面的可行性其次可以考慮操作方面的可行性。分析員應(yīng)該根據(jù)。分析員應(yīng)該根據(jù)使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的使用部門處理事務(wù)的原則和習(xí)慣檢查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過(guò)程的角度那些方案,去掉其中從操作方式或操作過(guò)程的角度看用戶不能接受的方案??从脩舨荒芙邮艿姆桨?。接下來(lái)應(yīng)該考慮經(jīng)濟(jì)方面的可行性接下來(lái)應(yīng)該考慮經(jīng)濟(jì)方面的可行性。分析員應(yīng)該估。分析員應(yīng)該估計(jì)余下的每個(gè)可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,計(jì)余下的每個(gè)可能的系統(tǒng)的開發(fā)成本和運(yùn)行費(fèi)用,并且估計(jì)相對(duì)于現(xiàn)有的系統(tǒng)而言這個(gè)系統(tǒng)可以節(jié)省并且估計(jì)相對(duì)于現(xiàn)有的系統(tǒng)而言這個(gè)系統(tǒng)可以節(jié)省的開支或可
16、以增加的收入。在這些估計(jì)數(shù)字的基礎(chǔ)的開支或可以增加的收入。在這些估計(jì)數(shù)字的基礎(chǔ)上,對(duì)每個(gè)可能的系統(tǒng)進(jìn)行成本上,對(duì)每個(gè)可能的系統(tǒng)進(jìn)行成本/效益分析效益分析(參看參看2.6節(jié)節(jié))。一般說(shuō)來(lái),只有投資預(yù)計(jì)能帶來(lái)利潤(rùn)的系統(tǒng)才。一般說(shuō)來(lái),只有投資預(yù)計(jì)能帶來(lái)利潤(rùn)的系統(tǒng)才值得進(jìn)一步考慮。值得進(jìn)一步考慮。最后為每個(gè)在技術(shù)、操作和經(jīng)濟(jì)等方面都可行的系最后為每個(gè)在技術(shù)、操作和經(jīng)濟(jì)等方面都可行的系統(tǒng)制定實(shí)現(xiàn)進(jìn)度表統(tǒng)制定實(shí)現(xiàn)進(jìn)度表,這個(gè)進(jìn)度表不需要,這個(gè)進(jìn)度表不需要(也不可能也不可能)制制定得很詳細(xì),通常只需要估計(jì)生命周期每個(gè)階段的定得很詳細(xì),通常只需要估計(jì)生命周期每個(gè)階段的工作量。工作量。6. 推薦行動(dòng)方針推薦行動(dòng)
17、方針根據(jù)可行性研究結(jié)果應(yīng)該做出的一個(gè)關(guān)鍵性決定是,根據(jù)可行性研究結(jié)果應(yīng)該做出的一個(gè)關(guān)鍵性決定是,是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。分析員必須清楚地表分析員必須清楚地表明他對(duì)這個(gè)關(guān)鍵性決定的建議。如果分析員認(rèn)為值明他對(duì)這個(gè)關(guān)鍵性決定的建議。如果分析員認(rèn)為值得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最好的解法,并且說(shuō)明選擇這個(gè)解決方案的理由。通好的解法,并且說(shuō)明選擇這個(gè)解決方案的理由。通常使用部門的負(fù)責(zé)人主要根據(jù)經(jīng)濟(jì)上是否劃算決定常使用部門的負(fù)責(zé)人主要根據(jù)經(jīng)濟(jì)上是否劃算決定是否投資于一項(xiàng)開發(fā)工程,因此分析員對(duì)于所推薦是否投資于一項(xiàng)開發(fā)工
18、程,因此分析員對(duì)于所推薦的系統(tǒng)必須進(jìn)行比較仔細(xì)的成本的系統(tǒng)必須進(jìn)行比較仔細(xì)的成本/效益分析。效益分析。7. 草擬開發(fā)計(jì)劃草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除,除了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對(duì)各類開發(fā)人員了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對(duì)各類開發(fā)人員和各種資源的需要情況,應(yīng)該指明什么時(shí)候使用以和各種資源的需要情況,應(yīng)該指明什么時(shí)候使用以及使用多長(zhǎng)時(shí)間。此外還應(yīng)該估計(jì)系統(tǒng)生命周期每及使用多長(zhǎng)時(shí)間。此外還應(yīng)該估計(jì)系統(tǒng)生命周期每個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段(需求分析需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。
19、的詳細(xì)進(jìn)度表和成本估計(jì)。8. 書寫文檔提交審查書寫文檔提交審查應(yīng)該把上述可行性研究各個(gè)步驟的工作結(jié)果寫成應(yīng)該把上述可行性研究各個(gè)步驟的工作結(jié)果寫成清清晰的文檔晰的文檔,請(qǐng)用戶、客戶組織的負(fù)責(zé)人及評(píng)審組審,請(qǐng)用戶、客戶組織的負(fù)責(zé)人及評(píng)審組審查,以決定是否繼續(xù)這項(xiàng)工程及是否接受分析員推查,以決定是否繼續(xù)這項(xiàng)工程及是否接受分析員推薦的方案。薦的方案。系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件統(tǒng)的每個(gè)部件(程序,文檔,數(shù)據(jù)庫(kù),人工過(guò)程等程序,文檔,數(shù)據(jù)庫(kù),人
20、工過(guò)程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過(guò)程,因情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過(guò)程,因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。程圖。2.3 系統(tǒng)流程圖系統(tǒng)流程圖當(dāng)以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅當(dāng)以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅使用圖使用圖2.1中列出的基本符號(hào)就足夠了。中列出的基本符號(hào)就足夠了。當(dāng)需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要
21、使用圖當(dāng)需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要使用圖2.2(見(jiàn)書(見(jiàn)書29頁(yè))中列出的系統(tǒng)符號(hào),利用這些符號(hào)頁(yè))中列出的系統(tǒng)符號(hào),利用這些符號(hào)可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲(chǔ)可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲(chǔ)在特殊設(shè)備上的文件(或數(shù)據(jù)庫(kù)),把抽象處理具在特殊設(shè)備上的文件(或數(shù)據(jù)庫(kù)),把抽象處理具體化為特定的程序或手工操作等。體化為特定的程序或手工操作等。2.3.1 符號(hào)符號(hào)圖圖2.1 基本符號(hào)基本符號(hào)介紹系統(tǒng)流程圖的最好方法可能是通過(guò)一個(gè)具體例介紹系統(tǒng)流程圖的最好方法可能是通過(guò)一個(gè)具體例子說(shuō)明它的用法。下面是一個(gè)簡(jiǎn)單的例子。子說(shuō)明它的用法。下面是一個(gè)簡(jiǎn)單的例子。某裝配廠有一
22、座存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各某裝配廠有一座存放零件的倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫(kù)存量臨界值等數(shù)據(jù)種零件的數(shù)量以及每種零件的庫(kù)存量臨界值等數(shù)據(jù)記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量有變記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫(kù)存清單主文件,如果哪種零化時(shí),應(yīng)該及時(shí)修改庫(kù)存清單主文件,如果哪種零件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)該報(bào)告給件的庫(kù)存量少于它的庫(kù)存量臨界值,則應(yīng)該報(bào)告給采購(gòu)部門以便定貨,規(guī)定每天向采購(gòu)部門送一次定采購(gòu)部門以便定貨,規(guī)定每天向采購(gòu)部門送一次定貨報(bào)告。貨報(bào)告。2.3.2 例子例子該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主該裝
23、配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫(kù)存量的每一次變化稱為一個(gè)事務(wù),由放在倉(cāng)庫(kù)中的變化稱為一個(gè)事務(wù),由放在倉(cāng)庫(kù)中的CRT終端輸入終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù)進(jìn)行處到計(jì)算機(jī)中;系統(tǒng)中的庫(kù)存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫(kù)存清單主文件,并且把理,更新存儲(chǔ)在磁盤上的庫(kù)存清單主文件,并且把必要的定貨信息寫在磁帶上。最后,每天由報(bào)告生必要的定貨信息寫在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且打印出定貨報(bào)告。圖成程序讀一次磁帶,并且打印出定貨報(bào)告。圖2.3的的系統(tǒng)流程圖描繪了上述系統(tǒng)的概貌。
24、系統(tǒng)流程圖描繪了上述系統(tǒng)的概貌。圖中每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)圖中每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部件,然而并沒(méi)有指明每個(gè)部件的具體工作過(guò)程;部件,然而并沒(méi)有指明每個(gè)部件的具體工作過(guò)程;圖中的箭頭確定了信息通過(guò)系統(tǒng)的邏輯路徑。圖中的箭頭確定了信息通過(guò)系統(tǒng)的邏輯路徑。系統(tǒng)流程圖的習(xí)慣畫法是使信息在圖中從頂向下或系統(tǒng)流程圖的習(xí)慣畫法是使信息在圖中從頂向下或從左向右流動(dòng)。從左向右流動(dòng)。圖圖2.3 庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖面對(duì)復(fù)雜的系統(tǒng)時(shí),一個(gè)比較好的方法是分層次地面對(duì)復(fù)雜的系統(tǒng)時(shí),一個(gè)比較好的方法是分層次地描繪這個(gè)系統(tǒng)。首先用一張高層次的系統(tǒng)流程圖描描繪
25、這個(gè)系統(tǒng)。首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)的一頁(yè)紙上。這種分層次的描繪方法便于閱讀者按的一頁(yè)紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過(guò)程逐步深入地了解一個(gè)復(fù)雜的系從抽象到具體的過(guò)程逐步深入地了解一個(gè)復(fù)雜的系統(tǒng)。統(tǒng)。2.3.3 分層分層數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)是一種是一種圖形化技術(shù)圖形化技術(shù),它描繪信息流和,它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換變換。在。在數(shù)
26、據(jù)流圖中數(shù)據(jù)流圖中沒(méi)有任何具體的物理部件沒(méi)有任何具體的物理部件,它只是描繪,它只是描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過(guò)程邏輯過(guò)程。數(shù)據(jù)流圖。數(shù)據(jù)流圖是是系統(tǒng)邏輯功能系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)的計(jì)算的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解它,因此是分析員與用戶之機(jī)技術(shù)人員也容易理解它,因此是分析員與用戶之間間極好的通信工具極好的通信工具。此外,設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考。此外,設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實(shí)現(xiàn)這些功能,所以它也是今后進(jìn)行軟怎樣具體地實(shí)現(xiàn)這些功能,所以它
27、也是今后進(jìn)行軟件設(shè)計(jì)的件設(shè)計(jì)的很好的出發(fā)點(diǎn)很好的出發(fā)點(diǎn)。2.4 數(shù)據(jù)流圖數(shù)據(jù)流圖如圖如圖2.4(a)(見(jiàn)書(見(jiàn)書31頁(yè))所示,數(shù)據(jù)流圖有頁(yè))所示,數(shù)據(jù)流圖有四種基本四種基本符號(hào)符號(hào):正方形:正方形(或立方體或立方體)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn);圓表示數(shù)據(jù)的源點(diǎn)或終點(diǎn);圓角矩形角矩形(或圓形或圓形)代表變換數(shù)據(jù)的處理;開口矩形代表變換數(shù)據(jù)的處理;開口矩形(或或兩條平行橫線兩條平行橫線)代表數(shù)據(jù)存儲(chǔ);箭頭表示數(shù)據(jù)流,即代表數(shù)據(jù)存儲(chǔ);箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動(dòng)方向。注意,數(shù)據(jù)流與程序流程圖特定數(shù)據(jù)的流動(dòng)方向。注意,數(shù)據(jù)流與程序流程圖(參看本書第參看本書第5章章)中用箭頭表示的控制流有本質(zhì)不同,中用箭
28、頭表示的控制流有本質(zhì)不同,千萬(wàn)不要混淆。在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的千萬(wàn)不要混淆。在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個(gè)數(shù)據(jù)流的條件。數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個(gè)數(shù)據(jù)流的條件。2.4.1 符號(hào)符號(hào)處理處理并不一定是一個(gè)程序。一個(gè)處理框可以代表一并不一定是一個(gè)程序。一個(gè)處理框可以代表一系列程序、單個(gè)程序或者程序的一個(gè)模塊;它甚至系列程序、單個(gè)程序或者程序的一個(gè)模塊;它甚至可以代表用穿孔機(jī)穿孔或目視檢查數(shù)據(jù)正確性等人可以代表用穿孔機(jī)穿孔或目視檢查數(shù)據(jù)正確性等人工處理過(guò)程。一個(gè)工處理過(guò)程。一個(gè)數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)也并不等同于一個(gè)文件,也并不等同于一個(gè)文件,它可以表示一個(gè)文件、文
29、件的一部分、數(shù)據(jù)庫(kù)的元它可以表示一個(gè)文件、文件的一部分、數(shù)據(jù)庫(kù)的元素或記錄的一部分等;數(shù)據(jù)可以存儲(chǔ)在磁盤、磁帶、素或記錄的一部分等;數(shù)據(jù)可以存儲(chǔ)在磁盤、磁帶、磁鼓、主存、微縮膠片、穿孔卡片及其他任何介質(zhì)磁鼓、主存、微縮膠片、穿孔卡片及其他任何介質(zhì)上上(包括人腦包括人腦)。數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲(chǔ)是處于數(shù)據(jù)存儲(chǔ)是處于靜止?fàn)顟B(tài)的數(shù)據(jù)靜止?fàn)顟B(tài)的數(shù)據(jù),數(shù)據(jù)流是處于,數(shù)據(jù)流是處于運(yùn)運(yùn)動(dòng)中的數(shù)據(jù)動(dòng)中的數(shù)據(jù)。通常在數(shù)據(jù)流圖中忽略出錯(cuò)處理,也不包括諸如打通常在數(shù)據(jù)流圖中忽略出錯(cuò)處理,也不包括諸如打開或關(guān)閉文件之類的內(nèi)務(wù)處理。開或關(guān)閉文
30、件之類的內(nèi)務(wù)處理。數(shù)據(jù)流圖的基本要數(shù)據(jù)流圖的基本要點(diǎn)是描繪點(diǎn)是描繪“做什么做什么”而不考慮而不考慮“怎樣做怎樣做”。有時(shí)數(shù)據(jù)的源點(diǎn)和終點(diǎn)相同,如果只用一個(gè)符號(hào)代有時(shí)數(shù)據(jù)的源點(diǎn)和終點(diǎn)相同,如果只用一個(gè)符號(hào)代表數(shù)據(jù)的源點(diǎn)和終點(diǎn),則至少將有兩個(gè)箭頭和這個(gè)表數(shù)據(jù)的源點(diǎn)和終點(diǎn),則至少將有兩個(gè)箭頭和這個(gè)符號(hào)相連符號(hào)相連(一個(gè)進(jìn)一個(gè)出一個(gè)進(jìn)一個(gè)出),可能其中一條箭頭線相當(dāng),可能其中一條箭頭線相當(dāng)長(zhǎng),這將降低數(shù)據(jù)流圖的清晰度。另一種表示方法長(zhǎng),這將降低數(shù)據(jù)流圖的清晰度。另一種表示方法是再重復(fù)畫一個(gè)同樣的符號(hào)是再重復(fù)畫一個(gè)同樣的符號(hào)(正方形或立方體正方形或立方體)表示數(shù)表示數(shù)據(jù)的終點(diǎn)。有時(shí)數(shù)據(jù)存儲(chǔ)也需要重復(fù),以
31、增加數(shù)據(jù)據(jù)的終點(diǎn)。有時(shí)數(shù)據(jù)存儲(chǔ)也需要重復(fù),以增加數(shù)據(jù)流圖的清晰程度。為了避免可能引起的誤解,如果流圖的清晰程度。為了避免可能引起的誤解,如果代表同一個(gè)事物的同樣符號(hào)在圖中出現(xiàn)在代表同一個(gè)事物的同樣符號(hào)在圖中出現(xiàn)在n個(gè)地方,個(gè)地方,則在這個(gè)符號(hào)的一個(gè)角上畫(則在這個(gè)符號(hào)的一個(gè)角上畫(n-1)條短斜線做標(biāo)記。)條短斜線做標(biāo)記。(畫數(shù)據(jù)流圖時(shí)的注意事項(xiàng)畫數(shù)據(jù)流圖時(shí)的注意事項(xiàng))除了上述除了上述4種基本符號(hào)之外,有時(shí)也使用幾種附加符種基本符號(hào)之外,有時(shí)也使用幾種附加符號(hào)。圖號(hào)。圖2.4(b)給出了這些附加符號(hào)的含義。給出了這些附加符號(hào)的含義。假設(shè)一家工廠的采購(gòu)部假設(shè)一家工廠的采購(gòu)部每天需要一張定貨報(bào)表每
32、天需要一張定貨報(bào)表,報(bào),報(bào)表按零件編號(hào)排序,表中列出所有需要表按零件編號(hào)排序,表中列出所有需要再次定貨再次定貨的的零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述零件。對(duì)于每個(gè)需要再次定貨的零件應(yīng)該列出下述數(shù)據(jù):數(shù)據(jù):零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,零件編號(hào),零件名稱,定貨數(shù)量,目前價(jià)格,主要供應(yīng)者,次要供應(yīng)者。主要供應(yīng)者,次要供應(yīng)者。零件入庫(kù)或出庫(kù)稱為事零件入庫(kù)或出庫(kù)稱為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某種零件的庫(kù)存數(shù)量少于系統(tǒng)。當(dāng)某種零件的庫(kù)存數(shù)量少于庫(kù)存量臨界值庫(kù)存量臨界值時(shí)時(shí)就應(yīng)該再次定貨。就應(yīng)該再次定貨。2.4.2
33、例子例子數(shù)據(jù)流圖有數(shù)據(jù)流圖有4種成分:源點(diǎn)或終點(diǎn),處理,數(shù)據(jù)存儲(chǔ)種成分:源點(diǎn)或終點(diǎn),處理,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流。因此,和數(shù)據(jù)流。因此,第一步可以從問(wèn)題描述中提取數(shù)第一步可以從問(wèn)題描述中提取數(shù)據(jù)流圖的據(jù)流圖的4種成分種成分: 首先考慮數(shù)據(jù)的源點(diǎn)和終點(diǎn)首先考慮數(shù)據(jù)的源點(diǎn)和終點(diǎn),從,從上面對(duì)系統(tǒng)的描述可以知道上面對(duì)系統(tǒng)的描述可以知道“采購(gòu)部每天需要一張采購(gòu)部每天需要一張定貨報(bào)表定貨報(bào)表”,“通過(guò)放在倉(cāng)庫(kù)中的通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)終端把事務(wù)報(bào)告給定貨系統(tǒng)報(bào)告給定貨系統(tǒng)”,所以,所以采購(gòu)員是數(shù)據(jù)終點(diǎn)采購(gòu)員是數(shù)據(jù)終點(diǎn),而,而倉(cāng)倉(cāng)庫(kù)管理員是數(shù)據(jù)源點(diǎn)庫(kù)管理員是數(shù)據(jù)源點(diǎn)。接下來(lái)考慮處理接下來(lái)考慮處理,再一
34、次閱,再一次閱讀問(wèn)題描述,讀問(wèn)題描述,“采購(gòu)部需要報(bào)表采購(gòu)部需要報(bào)表”,顯然他們還沒(méi),顯然他們還沒(méi)有這種報(bào)表,因此有這種報(bào)表,因此必須有一個(gè)用于產(chǎn)生報(bào)表的處理必須有一個(gè)用于產(chǎn)生報(bào)表的處理。事務(wù)的后果是改變零件庫(kù)存量,然而事務(wù)的后果是改變零件庫(kù)存量,然而任何改變數(shù)據(jù)任何改變數(shù)據(jù)的操作都是處理,因此對(duì)事務(wù)進(jìn)行的加工是另一個(gè)的操作都是處理,因此對(duì)事務(wù)進(jìn)行的加工是另一個(gè)處理。處理。注意,在問(wèn)題描述中并沒(méi)有明顯地提到需要對(duì)事務(wù)注意,在問(wèn)題描述中并沒(méi)有明顯地提到需要對(duì)事務(wù)進(jìn)行處理,但是通過(guò)分析可以看出這種需要。進(jìn)行處理,但是通過(guò)分析可以看出這種需要。最后,最后,考慮數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ)考慮數(shù)據(jù)流和數(shù)據(jù)存儲(chǔ):系
35、統(tǒng)把定貨報(bào)表送給采購(gòu):系統(tǒng)把定貨報(bào)表送給采購(gòu)部,因此部,因此定貨報(bào)表是一個(gè)數(shù)據(jù)流定貨報(bào)表是一個(gè)數(shù)據(jù)流;事務(wù)需要從倉(cāng)庫(kù);事務(wù)需要從倉(cāng)庫(kù)送到系統(tǒng)中,顯然送到系統(tǒng)中,顯然事務(wù)是另一個(gè)數(shù)據(jù)流事務(wù)是另一個(gè)數(shù)據(jù)流。產(chǎn)生報(bào)表。產(chǎn)生報(bào)表和處理事務(wù)這兩個(gè)處理在時(shí)間上明顯不匹配和處理事務(wù)這兩個(gè)處理在時(shí)間上明顯不匹配每每當(dāng)有一個(gè)事務(wù)發(fā)生時(shí)立即處理它,然而每天只產(chǎn)生當(dāng)有一個(gè)事務(wù)發(fā)生時(shí)立即處理它,然而每天只產(chǎn)生一次定貨報(bào)表。一次定貨報(bào)表。因此,用來(lái)產(chǎn)生定貨報(bào)表的數(shù)據(jù)必因此,用來(lái)產(chǎn)生定貨報(bào)表的數(shù)據(jù)必須存放一段時(shí)間,也就是應(yīng)該有一個(gè)數(shù)據(jù)存儲(chǔ)。須存放一段時(shí)間,也就是應(yīng)該有一個(gè)數(shù)據(jù)存儲(chǔ)。注意,并不是所有數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都能直接
36、從問(wèn)注意,并不是所有數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流都能直接從問(wèn)題描述中提取出來(lái)。題描述中提取出來(lái)。表表2.1(見(jiàn)書(見(jiàn)書33頁(yè))總結(jié)了上面分析的結(jié)果,其中加頁(yè))總結(jié)了上面分析的結(jié)果,其中加星號(hào)標(biāo)記的是在問(wèn)題描述中隱含的成分。星號(hào)標(biāo)記的是在問(wèn)題描述中隱含的成分。數(shù)據(jù)流圖是系統(tǒng)的邏輯模型,然而任何計(jì)算機(jī)系統(tǒng)數(shù)據(jù)流圖是系統(tǒng)的邏輯模型,然而任何計(jì)算機(jī)系統(tǒng)實(shí)質(zhì)上都是信息處理系統(tǒng),也就是說(shuō)計(jì)算機(jī)系統(tǒng)本實(shí)質(zhì)上都是信息處理系統(tǒng),也就是說(shuō)計(jì)算機(jī)系統(tǒng)本質(zhì)上都是把輸入數(shù)據(jù)變換成輸出數(shù)據(jù)。因此,質(zhì)上都是把輸入數(shù)據(jù)變換成輸出數(shù)據(jù)。因此,任何任何系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)系統(tǒng)的基本模型都由若干個(gè)數(shù)據(jù)源點(diǎn)/終點(diǎn)以及一個(gè)終點(diǎn)以及一個(gè)
37、處理組成,這個(gè)處理就代表了系統(tǒng)對(duì)數(shù)據(jù)加工變換處理組成,這個(gè)處理就代表了系統(tǒng)對(duì)數(shù)據(jù)加工變換的基本功能。的基本功能。對(duì)于上述的定貨系統(tǒng)可以畫出圖對(duì)于上述的定貨系統(tǒng)可以畫出圖2.5這這樣的基本系統(tǒng)模型。樣的基本系統(tǒng)模型。圖圖2.5 定貨系統(tǒng)的基本系統(tǒng)模型定貨系統(tǒng)的基本系統(tǒng)模型從基本系統(tǒng)模型這樣非常高的層次開始畫數(shù)據(jù)流圖從基本系統(tǒng)模型這樣非常高的層次開始畫數(shù)據(jù)流圖是一個(gè)好辦法。在這個(gè)高層次的數(shù)據(jù)流圖上是否列是一個(gè)好辦法。在這個(gè)高層次的數(shù)據(jù)流圖上是否列出了所有給定的數(shù)據(jù)源點(diǎn)出了所有給定的數(shù)據(jù)源點(diǎn)/終點(diǎn)是一目了然的,因此終點(diǎn)是一目了然的,因此它是很有價(jià)值的通信工具。它是很有價(jià)值的通信工具。然而,圖然而,圖
38、2.5畢竟畢竟太抽象了太抽象了,從這張圖上對(duì)定貨系統(tǒng),從這張圖上對(duì)定貨系統(tǒng)所能了解到的信息非常有限。所能了解到的信息非常有限。下一步應(yīng)該把基本系下一步應(yīng)該把基本系統(tǒng)模型細(xì)化,描繪系統(tǒng)的主要功能統(tǒng)模型細(xì)化,描繪系統(tǒng)的主要功能。從表。從表2.1可知,可知,“產(chǎn)生報(bào)表產(chǎn)生報(bào)表”和和“處理事務(wù)處理事務(wù)”是系統(tǒng)必須完成的兩是系統(tǒng)必須完成的兩個(gè)主要功能,它們將代替圖個(gè)主要功能,它們將代替圖2.5中的中的“定貨系統(tǒng)定貨系統(tǒng)”(圖圖2.6)。此外,細(xì)化后的數(shù)據(jù)流圖中還增加了此外,細(xì)化后的數(shù)據(jù)流圖中還增加了兩個(gè)數(shù)據(jù)存儲(chǔ):兩個(gè)數(shù)據(jù)存儲(chǔ):處理事務(wù)需要處理事務(wù)需要“庫(kù)存清單庫(kù)存清單”數(shù)據(jù);產(chǎn)生報(bào)表和處理數(shù)據(jù);產(chǎn)生報(bào)表
39、和處理事務(wù)在不同時(shí)間,因此需要存儲(chǔ)事務(wù)在不同時(shí)間,因此需要存儲(chǔ)“定貨信息定貨信息”。除除了表了表2.1中列出的兩個(gè)數(shù)據(jù)流之外還有另外兩個(gè)數(shù)據(jù)中列出的兩個(gè)數(shù)據(jù)流之外還有另外兩個(gè)數(shù)據(jù)流,它們與數(shù)據(jù)存儲(chǔ)相同。這是因?yàn)閺囊粋€(gè)數(shù)據(jù)存流,它們與數(shù)據(jù)存儲(chǔ)相同。這是因?yàn)閺囊粋€(gè)數(shù)據(jù)存儲(chǔ)中取出來(lái)的或放進(jìn)去的數(shù)據(jù)通常和原來(lái)存儲(chǔ)的數(shù)儲(chǔ)中取出來(lái)的或放進(jìn)去的數(shù)據(jù)通常和原來(lái)存儲(chǔ)的數(shù)據(jù)相同,也就是說(shuō),數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流只不過(guò)是同據(jù)相同,也就是說(shuō),數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流只不過(guò)是同樣數(shù)據(jù)的兩種不同形式。樣數(shù)據(jù)的兩種不同形式。在圖在圖2.6中給處理和數(shù)據(jù)存儲(chǔ)都加了編號(hào),這樣做的中給處理和數(shù)據(jù)存儲(chǔ)都加了編號(hào),這樣做的目的是便于目的是便于引用
40、和追蹤引用和追蹤。圖圖2.6 定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖接下來(lái)應(yīng)該對(duì)功能級(jí)數(shù)據(jù)流圖中描繪的系統(tǒng)主要功接下來(lái)應(yīng)該對(duì)功能級(jí)數(shù)據(jù)流圖中描繪的系統(tǒng)主要功能進(jìn)一步細(xì)化能進(jìn)一步細(xì)化??紤]通過(guò)系統(tǒng)的邏輯數(shù)據(jù)流:當(dāng)發(fā)??紤]通過(guò)系統(tǒng)的邏輯數(shù)據(jù)流:當(dāng)發(fā)生一個(gè)事務(wù)時(shí)必須首先接收它;隨后按照事務(wù)的內(nèi)生一個(gè)事務(wù)時(shí)必須首先接收它;隨后按照事務(wù)的內(nèi)容修改庫(kù)存清單;最后如果更新后的庫(kù)存量少于庫(kù)容修改庫(kù)存清單;最后如果更新后的庫(kù)存量少于庫(kù)存量臨界值時(shí),則應(yīng)該再次定貨,也就是需要處理存量臨界值時(shí),則應(yīng)該再次定貨,也就是需要處理定貨信息。因此,定貨信息。因此,把把“處理事務(wù)處理事務(wù)”這個(gè)功能分解為這個(gè)功能分解
41、為下述下述3個(gè)步驟,這在邏輯上是合理的:個(gè)步驟,這在邏輯上是合理的:“接收事務(wù)接收事務(wù)”、“更新庫(kù)存清單更新庫(kù)存清單”和和“處理定貨處理定貨”(圖圖2.7)。當(dāng)當(dāng)對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性對(duì)數(shù)據(jù)流圖分層細(xì)化時(shí)必須保持信息連續(xù)性,也,也就是說(shuō),當(dāng)把一個(gè)處理分解為一系列處理時(shí),分解就是說(shuō),當(dāng)把一個(gè)處理分解為一系列處理時(shí),分解前和分解后的輸入輸出數(shù)據(jù)流必須相同。前和分解后的輸入輸出數(shù)據(jù)流必須相同。(參見(jiàn)(參見(jiàn)P34中間的分析)中間的分析)圖圖2.7 把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響數(shù)數(shù)據(jù)流圖中每個(gè)成分的
42、命名是否恰當(dāng),直接影響數(shù)據(jù)流圖的可理解性。因此,給這些成分起名字時(shí)應(yīng)據(jù)流圖的可理解性。因此,給這些成分起名字時(shí)應(yīng)該仔細(xì)推敲。下面講述在命名時(shí)應(yīng)注意的問(wèn)題:該仔細(xì)推敲。下面講述在命名時(shí)應(yīng)注意的問(wèn)題:1. 為數(shù)據(jù)流為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ)或數(shù)據(jù)存儲(chǔ))命名命名(1) 名字應(yīng)代表名字應(yīng)代表整個(gè)數(shù)據(jù)流整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ)或數(shù)據(jù)存儲(chǔ))的內(nèi)容的內(nèi)容,而,而不是僅僅反映它的某些成分。不是僅僅反映它的某些成分。(2) 不要使用空洞的、缺乏具體含義的名字不要使用空洞的、缺乏具體含義的名字(如如“數(shù)數(shù)據(jù)據(jù)”、“信息信息”、“輸入輸入”之類之類)。2.4.3 命名命名(3) 如果在為某個(gè)數(shù)據(jù)流如果在為某個(gè)數(shù)據(jù)流(或數(shù)據(jù)
43、存儲(chǔ)或數(shù)據(jù)存儲(chǔ))起名字時(shí)起名字時(shí)遇到遇到了困難了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)分解不恰當(dāng)造造成的,應(yīng)該試試成的,應(yīng)該試試重新分解重新分解,看是否能克服這個(gè)困難。,看是否能克服這個(gè)困難。2. 為處理命名為處理命名(1) 通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類習(xí)慣理命名。這樣命名比較容易,而且體現(xiàn)了人類習(xí)慣的的“由由表及里表及里”的思考過(guò)程。的思考過(guò)程。(2) 名字應(yīng)該反映名字應(yīng)該反映整個(gè)處理的功能整個(gè)處理的功能,而不是它的一部,而不是它的一部分功能。分功能。(3) 名字最好由
44、一個(gè)具體的及物動(dòng)詞加上一個(gè)具體的名字最好由一個(gè)具體的及物動(dòng)詞加上一個(gè)具體的賓語(yǔ)組成。應(yīng)該盡量避免使用賓語(yǔ)組成。應(yīng)該盡量避免使用“加工加工”、“處理處理”等空洞籠統(tǒng)的動(dòng)詞作名字。等空洞籠統(tǒng)的動(dòng)詞作名字。(4) 通常名字中通常名字中僅包括一個(gè)動(dòng)詞僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng),如果必須用兩個(gè)動(dòng)詞才能描述整個(gè)處理的功能,則把這個(gè)處理再分解詞才能描述整個(gè)處理的功能,則把這個(gè)處理再分解成兩個(gè)處理可能更恰當(dāng)些。成兩個(gè)處理可能更恰當(dāng)些。(5) 如果在為某個(gè)處理命名時(shí)如果在為某個(gè)處理命名時(shí)遇到困難遇到困難,則很可能是,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解重新分解。數(shù)據(jù)源
45、點(diǎn)數(shù)據(jù)源點(diǎn)/終點(diǎn)并不需要在開發(fā)目標(biāo)系統(tǒng)的過(guò)程中設(shè)終點(diǎn)并不需要在開發(fā)目標(biāo)系統(tǒng)的過(guò)程中設(shè)計(jì)和實(shí)現(xiàn),它并不屬于數(shù)據(jù)流圖的核心內(nèi)容計(jì)和實(shí)現(xiàn),它并不屬于數(shù)據(jù)流圖的核心內(nèi)容(增加(增加了完整性了完整性),只不過(guò)是目標(biāo)系統(tǒng)的外圍環(huán)境部分只不過(guò)是目標(biāo)系統(tǒng)的外圍環(huán)境部分(可可能是人員、計(jì)算機(jī)外部設(shè)備或傳感器裝置能是人員、計(jì)算機(jī)外部設(shè)備或傳感器裝置)。通常,。通常,為數(shù)據(jù)源點(diǎn)為數(shù)據(jù)源點(diǎn)/終點(diǎn)命名時(shí)采用它們?cè)趩?wèn)題域中習(xí)慣使終點(diǎn)命名時(shí)采用它們?cè)趩?wèn)題域中習(xí)慣使用的名字用的名字(如如“采購(gòu)員采購(gòu)員”、“倉(cāng)庫(kù)管理員倉(cāng)庫(kù)管理員”等等)。畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具
46、。具。分析員把他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的分析員把他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來(lái),供有關(guān)人員審查確認(rèn)。設(shè)想用數(shù)據(jù)流圖描繪出來(lái),供有關(guān)人員審查確認(rèn)。由于在數(shù)據(jù)流圖中通常僅僅使用由于在數(shù)據(jù)流圖中通常僅僅使用4種基本符號(hào),而且種基本符號(hào),而且不包含任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),因此,絕大多數(shù)不包含任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),因此,絕大多數(shù)用戶都可以理解和評(píng)價(jià)它。用戶都可以理解和評(píng)價(jià)它。數(shù)據(jù)流圖應(yīng)該分層,并且在把功能級(jí)數(shù)據(jù)流圖細(xì)化數(shù)據(jù)流圖應(yīng)該分層,并且在把功能級(jí)數(shù)據(jù)流圖細(xì)化后得到的處理超過(guò)后得到的處理超過(guò)9個(gè)時(shí),應(yīng)該采用畫分圖的辦法,個(gè)時(shí),應(yīng)該采用畫分圖的辦法,也就是把每個(gè)主要功能都
47、細(xì)化為一張數(shù)據(jù)流分圖,也就是把每個(gè)主要功能都細(xì)化為一張數(shù)據(jù)流分圖,而原有的功能級(jí)數(shù)據(jù)流圖用來(lái)描繪系統(tǒng)的整體邏輯而原有的功能級(jí)數(shù)據(jù)流圖用來(lái)描繪系統(tǒng)的整體邏輯概貌。概貌。2.4.4 用途用途數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工具。具。分析員在研究現(xiàn)有的系統(tǒng)時(shí)常用系統(tǒng)流程圖表分析員在研究現(xiàn)有的系統(tǒng)時(shí)常用系統(tǒng)流程圖表達(dá)他對(duì)這個(gè)系統(tǒng)的認(rèn)識(shí),這種描繪方法形象具體,達(dá)他對(duì)這個(gè)系統(tǒng)的認(rèn)識(shí),這種描繪方法形象具體,比較容易驗(yàn)證它的正確性;但是,開發(fā)工程的目標(biāo)比較容易驗(yàn)證它的正確性;但是,開發(fā)工程的目標(biāo)往往不是完全復(fù)制現(xiàn)有的系統(tǒng),而是創(chuàng)造一個(gè)能夠往往不是完全復(fù)制現(xiàn)
48、有的系統(tǒng),而是創(chuàng)造一個(gè)能夠完成相同的或類似的功能的新系統(tǒng)。用系統(tǒng)流程圖完成相同的或類似的功能的新系統(tǒng)。用系統(tǒng)流程圖描繪一個(gè)系統(tǒng)時(shí),系統(tǒng)的功能和實(shí)現(xiàn)每個(gè)功能的具描繪一個(gè)系統(tǒng)時(shí),系統(tǒng)的功能和實(shí)現(xiàn)每個(gè)功能的具體方案是混在一起的。因此,分析員希望以另一種體方案是混在一起的。因此,分析員希望以另一種方式進(jìn)一步總結(jié)現(xiàn)有的系統(tǒng),這種方式應(yīng)該著重描方式進(jìn)一步總結(jié)現(xiàn)有的系統(tǒng),這種方式應(yīng)該著重描繪系統(tǒng)所完成的功能而不是系統(tǒng)的物理實(shí)現(xiàn)方案。繪系統(tǒng)所完成的功能而不是系統(tǒng)的物理實(shí)現(xiàn)方案。數(shù)據(jù)流圖是實(shí)現(xiàn)這個(gè)目標(biāo)的極好手段。數(shù)據(jù)流圖是實(shí)現(xiàn)這個(gè)目標(biāo)的極好手段。當(dāng)用數(shù)據(jù)流圖輔助物理系統(tǒng)的設(shè)計(jì)時(shí),以圖中不同當(dāng)用數(shù)據(jù)流圖輔助物理系
49、統(tǒng)的設(shè)計(jì)時(shí),以圖中不同處理的定時(shí)要求為指南,能夠在數(shù)據(jù)流圖上畫出許處理的定時(shí)要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動(dòng)化邊界,每組自動(dòng)化邊界可能意味著一個(gè)多組自動(dòng)化邊界,每組自動(dòng)化邊界可能意味著一個(gè)不同的物理系統(tǒng),因此可以根據(jù)系統(tǒng)的邏輯模型考不同的物理系統(tǒng),因此可以根據(jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實(shí)現(xiàn)。慮系統(tǒng)的物理實(shí)現(xiàn)。例如,考慮圖例如,考慮圖2.7,事務(wù)隨時(shí)可,事務(wù)隨時(shí)可能發(fā)生,因此處理能發(fā)生,因此處理1.1(“接收事務(wù)接收事務(wù)”)必須是聯(lián)機(jī)的;必須是聯(lián)機(jī)的;采購(gòu)員每天需要一次定貨報(bào)表,因此處理采購(gòu)員每天需要一次定貨報(bào)表,因此處理2(“產(chǎn)生報(bào)產(chǎn)生報(bào)表表”)應(yīng)該以批量方式進(jìn)行。問(wèn)題描述并沒(méi)有對(duì)
50、其他應(yīng)該以批量方式進(jìn)行。問(wèn)題描述并沒(méi)有對(duì)其他處理施加限制,例如,可以聯(lián)機(jī)地接收事務(wù)并放入處理施加限制,例如,可以聯(lián)機(jī)地接收事務(wù)并放入隊(duì)列中,然而更新庫(kù)存清單、處理定貨和產(chǎn)生報(bào)表隊(duì)列中,然而更新庫(kù)存清單、處理定貨和產(chǎn)生報(bào)表以批量方式進(jìn)行以批量方式進(jìn)行(圖圖2.8)。當(dāng)然,這種方案需要增加一。當(dāng)然,這種方案需要增加一個(gè)個(gè)數(shù)據(jù)存儲(chǔ)以存放事務(wù)數(shù)據(jù)數(shù)據(jù)存儲(chǔ)以存放事務(wù)數(shù)據(jù)。圖圖2.8 這種劃分自動(dòng)化邊界的方法暗示這種劃分自動(dòng)化邊界的方法暗示以批量方式更新庫(kù)存清單以批量方式更新庫(kù)存清單改變自動(dòng)化邊界,把處理改變自動(dòng)化邊界,把處理1.1,1.2和和1.3放在同一個(gè)邊放在同一個(gè)邊界內(nèi)界內(nèi)(圖圖2.9),這個(gè)系統(tǒng)
51、將聯(lián)機(jī)地接收事務(wù)、更新庫(kù)存,這個(gè)系統(tǒng)將聯(lián)機(jī)地接收事務(wù)、更新庫(kù)存清單和處理定貨及輸出定貨信息;然而處理清單和處理定貨及輸出定貨信息;然而處理2將以批將以批量方式產(chǎn)生定貨報(bào)表。還能設(shè)想出建立自動(dòng)化邊界量方式產(chǎn)生定貨報(bào)表。還能設(shè)想出建立自動(dòng)化邊界的其他方案嗎的其他方案嗎?如果把處理如果把處理1.1和處理和處理1.2放在一個(gè)自放在一個(gè)自動(dòng)化邊界內(nèi),把處理動(dòng)化邊界內(nèi),把處理1.3和處理和處理2放在另一個(gè)邊界內(nèi),放在另一個(gè)邊界內(nèi),意味著什么樣的物理系統(tǒng)呢意味著什么樣的物理系統(tǒng)呢?數(shù)據(jù)流圖對(duì)更詳細(xì)的設(shè)計(jì)步驟也有幫助,本書第數(shù)據(jù)流圖對(duì)更詳細(xì)的設(shè)計(jì)步驟也有幫助,本書第5章章將講述從數(shù)據(jù)流圖出發(fā)映射出軟件結(jié)構(gòu)的方
52、法將講述從數(shù)據(jù)流圖出發(fā)映射出軟件結(jié)構(gòu)的方法面向數(shù)據(jù)流的設(shè)計(jì)方法。面向數(shù)據(jù)流的設(shè)計(jì)方法。圖圖2.9 另一種劃分自動(dòng)化邊界的方法建議另一種劃分自動(dòng)化邊界的方法建議以以聯(lián)機(jī)方式更新庫(kù)存清單聯(lián)機(jī)方式更新庫(kù)存清單數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義流圖中包含的所有元素的定義(從軟件開發(fā)的角度進(jìn)從軟件開發(fā)的角度進(jìn)行定義行定義)的集合的集合。任何字典最主要的用途都是供人查閱對(duì)不了解的條任何字典最主要的用途都是供人查閱對(duì)不了解的條目的解釋,目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計(jì)的過(guò)程中給人提
53、供關(guān)于數(shù)據(jù)的描述信息計(jì)的過(guò)程中給人提供關(guān)于數(shù)據(jù)的描述信息。數(shù)據(jù)流圖和數(shù)據(jù)字典數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型共同構(gòu)成系統(tǒng)的邏輯模型,沒(méi),沒(méi)有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格,然而沒(méi)有數(shù)據(jù)流圖有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格,然而沒(méi)有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對(duì)數(shù)據(jù)數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對(duì)數(shù)據(jù)流圖中每個(gè)元素的精確定義放在一起,才能共同構(gòu)流圖中每個(gè)元素的精確定義放在一起,才能共同構(gòu)成系統(tǒng)的規(guī)格說(shuō)明成系統(tǒng)的規(guī)格說(shuō)明(需求規(guī)格說(shuō)明書的一部分(需求規(guī)格說(shuō)明書的一部分)。2.5 數(shù)據(jù)字典數(shù)據(jù)字典一般說(shuō)來(lái),數(shù)據(jù)字典應(yīng)該由對(duì)下列一般說(shuō)來(lái),數(shù)據(jù)字典應(yīng)該由對(duì)下列4類元素的定義組類元素
54、的定義組成:成:(1) 數(shù)據(jù)流數(shù)據(jù)流(2) 數(shù)據(jù)流分量數(shù)據(jù)流分量(即數(shù)據(jù)元素即數(shù)據(jù)元素)(3) 數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)(4) 處理處理但是,對(duì)數(shù)據(jù)處理的定義用其他工具但是,對(duì)數(shù)據(jù)處理的定義用其他工具(如如IPO圖或圖或PDL)描述更方便,因此本書中描述更方便,因此本書中數(shù)據(jù)字典將主要由對(duì)數(shù)據(jù)字典將主要由對(duì)數(shù)據(jù)的定義組成數(shù)據(jù)的定義組成,這樣做可以使數(shù)據(jù)字典的內(nèi)容更,這樣做可以使數(shù)據(jù)字典的內(nèi)容更單純,形式更統(tǒng)一。單純,形式更統(tǒng)一。2.5.1 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的內(nèi)容除了數(shù)據(jù)定義之外,數(shù)據(jù)字典中還應(yīng)該包含關(guān)于數(shù)除了數(shù)據(jù)定義之外,數(shù)據(jù)字典中還應(yīng)該包含關(guān)于數(shù)據(jù)的一些其他信息。典型的情況是,在數(shù)據(jù)字典中據(jù)的
55、一些其他信息。典型的情況是,在數(shù)據(jù)字典中記錄數(shù)據(jù)元素的下列信息:記錄數(shù)據(jù)元素的下列信息: 一般信息一般信息(名字,別名,名字,別名,描述等等描述等等),定義,定義(數(shù)據(jù)類型,長(zhǎng)度,結(jié)構(gòu)等等數(shù)據(jù)類型,長(zhǎng)度,結(jié)構(gòu)等等),使,使用特點(diǎn)用特點(diǎn)(值的范圍,使用頻率,使用方式值的范圍,使用頻率,使用方式輸入、輸入、輸出、本地,條件值等等輸出、本地,條件值等等),控制信息,控制信息(來(lái)源,用戶,來(lái)源,用戶,使用它的程序,改變權(quán),使用權(quán)等等使用它的程序,改變權(quán),使用權(quán)等等)和分組信息和分組信息(父父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置結(jié)構(gòu),從屬結(jié)構(gòu),物理位置記錄、文件和數(shù)據(jù)記錄、文件和數(shù)據(jù)庫(kù)等等庫(kù)等等)。數(shù)據(jù)元素的數(shù)據(jù)元
56、素的別名別名就是該元素的其他等價(jià)的名字,出就是該元素的其他等價(jià)的名字,出現(xiàn)別名主要有下述現(xiàn)別名主要有下述3個(gè)原因:個(gè)原因:(1) 對(duì)于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;對(duì)于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;(2) 一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)使用了不同一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)使用了不同的名字;的名字;(3) 兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不同的名字。同的名字。(同樣的東西出現(xiàn)了兩個(gè)以上的名字)(同樣的東西出現(xiàn)了兩個(gè)以上的名字)雖然應(yīng)該盡量減少出現(xiàn)別名,但是不可能完全消除雖然應(yīng)該盡量減少出現(xiàn)別名,但是不可能完全消除別名。
57、別名。定義絕大多數(shù)復(fù)雜事物的方法,都是用被定義的事定義絕大多數(shù)復(fù)雜事物的方法,都是用被定義的事物的成分的某種組合表示這個(gè)事物,這些組成成分物的成分的某種組合表示這個(gè)事物,這些組成成分又由更低層的成分的組合來(lái)定義。又由更低層的成分的組合來(lái)定義。從這個(gè)意義上說(shuō),從這個(gè)意義上說(shuō),定義就是定義就是自頂向下的分解自頂向下的分解,所以數(shù)據(jù)字典中的定義,所以數(shù)據(jù)字典中的定義就是就是對(duì)數(shù)據(jù)自頂向下的分解對(duì)數(shù)據(jù)自頂向下的分解。那么,應(yīng)該把數(shù)據(jù)分。那么,應(yīng)該把數(shù)據(jù)分解到什么程度呢解到什么程度呢?一般說(shuō)來(lái),一般說(shuō)來(lái),當(dāng)分解到不需要進(jìn)一步當(dāng)分解到不需要進(jìn)一步定義,每個(gè)和工程有關(guān)的人也都清楚其含義的元素定義,每個(gè)和工程
58、有關(guān)的人也都清楚其含義的元素時(shí),這種分解過(guò)程就完成了。時(shí),這種分解過(guò)程就完成了。(方便于使用)(方便于使用)由數(shù)據(jù)元素組成數(shù)據(jù)的方式由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述三種基本類型:只有下述三種基本類型:2.5.2 定義數(shù)據(jù)的方法定義數(shù)據(jù)的方法(1) 順序順序 即以確定次序連接兩個(gè)或多個(gè)分量;即以確定次序連接兩個(gè)或多個(gè)分量;(2) 選擇選擇 即從兩個(gè)或多個(gè)可能的元素中選取一個(gè);即從兩個(gè)或多個(gè)可能的元素中選取一個(gè);(3) 重復(fù)重復(fù) 即把指定的分量重復(fù)零次或多次。即把指定的分量重復(fù)零次或多次。因此,可以使用上述因此,可以使用上述3種關(guān)系算符定義數(shù)據(jù)字典中的種關(guān)系算符定義數(shù)據(jù)字典中的任何條目。為了說(shuō)明重
59、復(fù)次數(shù),重復(fù)算符通常和重任何條目。為了說(shuō)明重復(fù)次數(shù),重復(fù)算符通常和重復(fù)次數(shù)的上下限同時(shí)使用復(fù)次數(shù)的上下限同時(shí)使用(當(dāng)上下限相同時(shí)表示重復(fù)當(dāng)上下限相同時(shí)表示重復(fù)次數(shù)固定次數(shù)固定)。當(dāng)重復(fù)的上下限分別為。當(dāng)重復(fù)的上下限分別為1和和0時(shí),可以用時(shí),可以用重復(fù)算符表示某個(gè)分量是可選的。但是,重復(fù)算符表示某個(gè)分量是可選的。但是,“可選可選”是由數(shù)據(jù)元素組成數(shù)據(jù)時(shí)一種常見(jiàn)的方式是由數(shù)據(jù)元素組成數(shù)據(jù)時(shí)一種常見(jiàn)的方式,把它單,把它單獨(dú)列為一種算符可以使數(shù)據(jù)字典更清晰一些。因此,獨(dú)列為一種算符可以使數(shù)據(jù)字典更清晰一些。因此,增加了下述的第增加了下述的第4種關(guān)系算符:種關(guān)系算符:(4) 可選可選 即一個(gè)分量是可有
60、可無(wú)的即一個(gè)分量是可有可無(wú)的(重復(fù)零次或一次重復(fù)零次或一次)。雖然可以使用自然語(yǔ)言描述由數(shù)據(jù)元素組成數(shù)據(jù)的雖然可以使用自然語(yǔ)言描述由數(shù)據(jù)元素組成數(shù)據(jù)的關(guān)系,但是為了更加清晰簡(jiǎn)潔,建議采用下列符號(hào):關(guān)系,但是為了更加清晰簡(jiǎn)潔,建議采用下列符號(hào):=意思是等價(jià)于意思是等價(jià)于(或定義為或定義為);+意思是和意思是和(即,連接兩個(gè)分量即,連接兩個(gè)分量); 意思是或意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)選擇一個(gè)),通常用,通常用“|”號(hào)隔開供選擇的分量號(hào)隔開供選擇的分量; 意思是重復(fù)意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量即,重復(fù)花括弧內(nèi)的分量);( )意思是可選意思
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6~9的認(rèn)識(shí)(說(shuō)課稿)-2024-2025學(xué)年一年級(jí)上冊(cè)數(shù)學(xué)人教版
- 2025以買賣合同擔(dān)保
- 2024年秋九年級(jí)化學(xué)上冊(cè) 第四單元 自然界的水說(shuō)課稿 (新版)新人教版
- 2023三年級(jí)英語(yǔ)上冊(cè) Assessment 3說(shuō)課稿1 湘少版
- Unit 4 My tidy bag Lesson 1 I have a big bag (說(shuō)課稿)-2024-2025學(xué)年粵人版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 2023八年級(jí)地理上冊(cè) 第一章 中國(guó)的疆域與人口第一節(jié) 中國(guó)的疆域說(shuō)課稿 (新版)湘教版
- 出租代工合同范例
- 2024年六年級(jí)品社下冊(cè)《我在聯(lián)合國(guó)做報(bào)告》說(shuō)課稿3 蘇教版
- 2024年九年級(jí)語(yǔ)文上冊(cè) 第六單元 第23課《答司馬諫議書》說(shuō)課稿1 北京課改版
- 兒童攝影退款合同范例
- 三級(jí)綜合醫(yī)院評(píng)審標(biāo)準(zhǔn)(2024年版)
- Lesson 6 What colour is it(教學(xué)設(shè)計(jì))-2023-2024學(xué)年接力版英語(yǔ)三年級(jí)下冊(cè)
- GB/T 4706.10-2024家用和類似用途電器的安全第10部分:按摩器具的特殊要求
- NB/T 11446-2023煤礦連采連充技術(shù)要求
- 2024年江蘇省蘇州市中考英語(yǔ)試題卷(含標(biāo)準(zhǔn)答案及解析)
- 第五單元任務(wù)二《準(zhǔn)備與排練》教學(xué)設(shè)計(jì) 統(tǒng)編版語(yǔ)文九年級(jí)下冊(cè)
- 2024北京海淀高三一模英語(yǔ)試卷(含參考答案)
- 全科醫(yī)學(xué)的基本原則和人文精神(人衛(wèi)第五版全科醫(yī)學(xué)概論)
- 船員健康知識(shí)課件
- 《揚(yáng)州東關(guān)街掠影》課件
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》健康領(lǐng)域內(nèi)容目標(biāo)與指導(dǎo)
評(píng)論
0/150
提交評(píng)論