第2章 可行性分析_第1頁
第2章 可行性分析_第2頁
第2章 可行性分析_第3頁
第2章 可行性分析_第4頁
第2章 可行性分析_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第2章章 可行性研究可行性研究2.1 可行性研究的任務可行性研究的任務2.2 可行性研究過程可行性研究過程2.3 系統(tǒng)流程圖系統(tǒng)流程圖2.4 數(shù)據(jù)流圖數(shù)據(jù)流圖2.5 數(shù)據(jù)字典數(shù)據(jù)字典2.6 成本成本/效益分析效益分析2.7 小結(jié)小結(jié)2.1 可行性研究的任務可行性研究的任務 可行性研究的目的不是解決問題,而是確定可行性研究的目的不是解決問題,而是確定問題是否值得去解決。問題是否值得去解決。 怎樣達到這個目的呢怎樣達到這個目的呢? 當然不能靠主觀猜想而只能靠客觀分析。必須當然不能靠主觀猜想而只能靠客觀分析。必須分析幾種主要的可能解法的利弊,從而判斷原定的分析幾種主要的可能解法的利弊,從而判斷原定

2、的系統(tǒng)規(guī)模和目標是否現(xiàn)實,系統(tǒng)完成后所能帶來的系統(tǒng)規(guī)模和目標是否現(xiàn)實,系統(tǒng)完成后所能帶來的效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。因此,效益是否大到值得投資開發(fā)這個系統(tǒng)的程度。因此,可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的可行性研究實質(zhì)上是要進行一次大大壓縮簡化了的系統(tǒng)分析和設計的過程,也就是在較高層次上以較系統(tǒng)分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統(tǒng)分析和設計的過程。抽象的方式進行的系統(tǒng)分析和設計的過程。 首先需要進一步分析和澄清問題定義。在問題首先需要進一步分析和澄清問題定義。在問題定義階段初步確定的規(guī)模和目標,如果是正確的就定義階段初步確定的規(guī)模和目標,如果是正確

3、的就進一步加以肯定,如果有錯誤就應該及時改正,如進一步加以肯定,如果有錯誤就應該及時改正,如果對目標系統(tǒng)有任何約束和限制,也必須把它們清果對目標系統(tǒng)有任何約束和限制,也必須把它們清楚地列舉出來。楚地列舉出來。 在澄清了問題定義之后,分析員應該導出系統(tǒng)在澄清了問題定義之后,分析員應該導出系統(tǒng)的邏輯模型。然后從系統(tǒng)邏輯模型出發(fā),探索若干的邏輯模型。然后從系統(tǒng)邏輯模型出發(fā),探索若干種可供選擇的主要解法種可供選擇的主要解法(即系統(tǒng)實現(xiàn)方案即系統(tǒng)實現(xiàn)方案)。對每種。對每種解法都應該仔細研究它的可行性,一般說來,至少解法都應該仔細研究它的可行性,一般說來,至少應該從下述三方面研究每種解法的可行性:應該從下

4、述三方面研究每種解法的可行性:(1) 技術(shù)可行性技術(shù)可行性:使用現(xiàn)有的技術(shù)能實現(xiàn)這個系統(tǒng)嗎使用現(xiàn)有的技術(shù)能實現(xiàn)這個系統(tǒng)嗎?(2) 經(jīng)濟可行性經(jīng)濟可行性:這個系統(tǒng)的經(jīng)濟效益能超過它的開這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎發(fā)成本嗎?(3) 操作可行性操作可行性:系統(tǒng)的操作方式在這個用戶組織內(nèi)系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通嗎行得通嗎? 必要時還應該從法律、社會效益等更廣泛的方必要時還應該從法律、社會效益等更廣泛的方面研究每種解法的可行性。面研究每種解法的可行性。 可行性研究可行性研究需要的時間長短取決于可行性研究可行性研究需要的時間長短取決于工程的規(guī)模。一般說來,可行性研究的成本只是預工程的

5、規(guī)模。一般說來,可行性研究的成本只是預期的工程總成本的期的工程總成本的5%10%。2.2 可行性研究過程可行性研究過程典型的可行性研究過程有下述一些步驟。典型的可行性研究過程有下述一些步驟。1. 復查系統(tǒng)規(guī)模和目標復查系統(tǒng)規(guī)模和目標 分析員訪問關(guān)鍵人員,仔細閱讀和分析有關(guān)的分析員訪問關(guān)鍵人員,仔細閱讀和分析有關(guān)的材料,以便對問題定義階段書寫的關(guān)于規(guī)模和目標材料,以便對問題定義階段書寫的關(guān)于規(guī)模和目標的報告書進一步復查確認,改正含糊或不確切的敘的報告書進一步復查確認,改正含糊或不確切的敘述,清晰地描述對目標系統(tǒng)的一切限制和約束。這述,清晰地描述對目標系統(tǒng)的一切限制和約束。這個步驟的工作,實質(zhì)上是

6、為了確保分析員正在解決個步驟的工作,實質(zhì)上是為了確保分析員正在解決的問題確實是要求他解決的問題。的問題確實是要求他解決的問題。2. 研究目前正在使用的系統(tǒng)研究目前正在使用的系統(tǒng) 現(xiàn)有的系統(tǒng)是信息的重要來源。新的目標系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來源。新的目標系統(tǒng)必須也能完成它的基本功能;另一方面,如果現(xiàn)有必須也能完成它的基本功能;另一方面,如果現(xiàn)有的系統(tǒng)是完美無缺的,用戶自然不會提出開發(fā)新系的系統(tǒng)是完美無缺的,用戶自然不會提出開發(fā)新系統(tǒng)的要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點,新統(tǒng)的要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點,新系統(tǒng)必須能解決舊系統(tǒng)中存在的問題。系統(tǒng)必須能解決舊系統(tǒng)中存在的問題。 此外,運

7、行使用舊系統(tǒng)所需要的費用是一個重此外,運行使用舊系統(tǒng)所需要的費用是一個重要的經(jīng)濟指標,如果新系統(tǒng)不能增加收入或減少使要的經(jīng)濟指標,如果新系統(tǒng)不能增加收入或減少使用費用,那么從經(jīng)濟角度看新系統(tǒng)就不如舊系統(tǒng)。用費用,那么從經(jīng)濟角度看新系統(tǒng)就不如舊系統(tǒng)。 應該仔細閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用應該仔細閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊,也要實地考察現(xiàn)有的系統(tǒng)。手冊,也要實地考察現(xiàn)有的系統(tǒng)。應該注意了解這應該注意了解這個系統(tǒng)可以做什么,為什么這樣做,還要了解使用個系統(tǒng)可以做什么,為什么這樣做,還要了解使用這個系統(tǒng)的代價。這個系統(tǒng)的代價。 但注意:這個步驟的目的是了解現(xiàn)有系統(tǒng)能做但注意:這個步驟的目

8、的是了解現(xiàn)有系統(tǒng)能做什么,而不是了解它怎樣做這些工作。什么,而不是了解它怎樣做這些工作。分析員應該分析員應該畫出描繪現(xiàn)有系統(tǒng)的畫出描繪現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖高層系統(tǒng)流程圖,并請有關(guān)人,并請有關(guān)人員檢驗他對現(xiàn)有系統(tǒng)的認識是否正確。千萬不要花員檢驗他對現(xiàn)有系統(tǒng)的認識是否正確。千萬不要花費太多時間去了解和描繪現(xiàn)有系統(tǒng)的實現(xiàn)細節(jié)。費太多時間去了解和描繪現(xiàn)有系統(tǒng)的實現(xiàn)細節(jié)。 沒有一個系統(tǒng)是在沒有一個系統(tǒng)是在“真空真空”中運行的,絕大多中運行的,絕大多數(shù)系統(tǒng)都和其他系統(tǒng)有聯(lián)系。應該注意了解并記錄數(shù)系統(tǒng)都和其他系統(tǒng)有聯(lián)系。應該注意了解并記錄現(xiàn)有系統(tǒng)和其他系統(tǒng)之間的現(xiàn)有系統(tǒng)和其他系統(tǒng)之間的接口情況接口情況,

9、這是設計新,這是設計新系統(tǒng)時的重要約束條件。系統(tǒng)時的重要約束條件。3. 導出新系統(tǒng)的高層邏輯模型導出新系統(tǒng)的高層邏輯模型 優(yōu)秀的設計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出優(yōu)秀的設計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā),導出現(xiàn)有發(fā),導出現(xiàn)有系統(tǒng)的邏輯模型系統(tǒng)的邏輯模型,再參考現(xiàn)有系統(tǒng)的,再參考現(xiàn)有系統(tǒng)的邏輯模型,設想目標系統(tǒng)的邏輯模型,最后根據(jù)目邏輯模型,設想目標系統(tǒng)的邏輯模型,最后根據(jù)目標系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。標系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。 通過前一步的工作,分析員對目標系統(tǒng)應該具通過前一步的工作,分析員對目標系統(tǒng)應該具有的基本功能和所受的約束已有一定了解,能夠使有的基本功能和所受的約束已有

10、一定了解,能夠使用用數(shù)據(jù)流圖數(shù)據(jù)流圖,描繪,描繪數(shù)據(jù)數(shù)據(jù)在系統(tǒng)中流動和處理的情況,在系統(tǒng)中流動和處理的情況,從而概括地表達出他對新系統(tǒng)的設想。從而概括地表達出他對新系統(tǒng)的設想。 通常為了把新系統(tǒng)描繪得更清晰準確,還應該通常為了把新系統(tǒng)描繪得更清晰準確,還應該有一個初步的有一個初步的數(shù)據(jù)字典數(shù)據(jù)字典,定義系統(tǒng)中使用的數(shù)據(jù)。,定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型邏輯模型,以后可以從這個邏輯模型出發(fā)設計新系統(tǒng)。以后可以從這個邏輯模型出發(fā)設計新系統(tǒng)。4. 進一步定義問題進一步定義問題 新系統(tǒng)的邏輯模型實質(zhì)上表達了分析員對新系新系統(tǒng)的邏輯

11、模型實質(zhì)上表達了分析員對新系統(tǒng)必須做什么的看法。統(tǒng)必須做什么的看法。分析員應該和用戶一起再次分析員應該和用戶一起再次復查問題定義、工程規(guī)模和目標,這次復查應該把復查問題定義、工程規(guī)模和目標,這次復查應該把數(shù)據(jù)流圖和數(shù)據(jù)字典數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎。如果分析員作為討論的基礎。如果分析員對問題有誤解或者用戶曾經(jīng)遺漏了某些要求,那么對問題有誤解或者用戶曾經(jīng)遺漏了某些要求,那么現(xiàn)在是發(fā)現(xiàn)和改正這些錯誤的時候了?,F(xiàn)在是發(fā)現(xiàn)和改正這些錯誤的時候了。 可行性研究的前可行性研究的前4個步驟實質(zhì)上構(gòu)成一個循環(huán)。個步驟實質(zhì)上構(gòu)成一個循環(huán)。分析員定義問題,分析這個問題,導出一個試探性分析員定義問題,分析這個

12、問題,導出一個試探性的解;在此基礎上再次定義問題,再一次分析這個的解;在此基礎上再次定義問題,再一次分析這個問題,修改這個解;繼續(xù)這個循環(huán)過程,直到提出問題,修改這個解;繼續(xù)這個循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標。的邏輯模型完全符合系統(tǒng)目標。5. 導出和評價供選擇的解法導出和評價供選擇的解法 分析員應該從他建議的系統(tǒng)邏輯模型出發(fā),導出若干個分析員應該從他建議的系統(tǒng)邏輯模型出發(fā),導出若干個較高層次的較高層次的(較抽象的較抽象的)物理解法供比較和選擇。導出供選擇物理解法供比較和選擇。導出供選擇的解法的最簡單的途徑,是從技術(shù)角度出發(fā)考慮解決問題的解法的最簡單的途徑,是從技術(shù)角度出發(fā)考慮解決

13、問題的不同方案。還可以使用組合的方法導出若干種可能的物的不同方案。還可以使用組合的方法導出若干種可能的物理系統(tǒng)。理系統(tǒng)。 當從技術(shù)角度提出了一些可能的物理系統(tǒng)之后,應該當從技術(shù)角度提出了一些可能的物理系統(tǒng)之后,應該根據(jù)根據(jù)技術(shù)可行性技術(shù)可行性的考慮初步排除一些不現(xiàn)實的系統(tǒng)。把技的考慮初步排除一些不現(xiàn)實的系統(tǒng)。把技術(shù)上行不通的解法去掉之后,就剩下了一組技術(shù)上可行的術(shù)上行不通的解法去掉之后,就剩下了一組技術(shù)上可行的方案。方案。 其次可以考慮其次可以考慮操作方面操作方面的可行性。分析員應該根據(jù)使的可行性。分析員應該根據(jù)使用部門處理事務的原則和習慣檢查技術(shù)上可行的那些方案,用部門處理事務的原則和習慣檢

14、查技術(shù)上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。方案。 接下來應該考慮接下來應該考慮經(jīng)濟方面經(jīng)濟方面的可行性。分析員應該估計余的可行性。分析員應該估計余下的每個可能的系統(tǒng)的開發(fā)成本和運行費用,并且估計相下的每個可能的系統(tǒng)的開發(fā)成本和運行費用,并且估計相對于現(xiàn)有的系統(tǒng)而言這個系統(tǒng)可以節(jié)省的開支或可以增加對于現(xiàn)有的系統(tǒng)而言這個系統(tǒng)可以節(jié)省的開支或可以增加的收入。在這些估計數(shù)字的基礎上,對每個可能的系統(tǒng)進的收入。在這些估計數(shù)字的基礎上,對每個可能的系統(tǒng)進行行成本成本/效益分析效益分析。一般說來,只有投資預計能帶來利潤的

15、。一般說來,只有投資預計能帶來利潤的系統(tǒng)才值得進一步考慮。系統(tǒng)才值得進一步考慮。 最后為每個在技術(shù)、操作和經(jīng)濟等方面都可行的系統(tǒng)制最后為每個在技術(shù)、操作和經(jīng)濟等方面都可行的系統(tǒng)制定實現(xiàn)進度表,這個進度表不需要定實現(xiàn)進度表,這個進度表不需要(也不可能也不可能)制定得很詳細,制定得很詳細,通常只需要估計生命周期每個階段的工作量。通常只需要估計生命周期每個階段的工作量。5. 導出和評價供選擇的解法導出和評價供選擇的解法6. 推薦行動方針推薦行動方針 根據(jù)可行性研究結(jié)果應該做出的一個關(guān)鍵性決根據(jù)可行性研究結(jié)果應該做出的一個關(guān)鍵性決定是,定是,是否繼續(xù)進行這項開發(fā)工程是否繼續(xù)進行這項開發(fā)工程。分析員必須

16、清。分析員必須清楚地表明他對這個關(guān)鍵性決定的建議。如果分析員楚地表明他對這個關(guān)鍵性決定的建議。如果分析員認為值得繼續(xù)進行這項開發(fā)工程,那么他應該選擇認為值得繼續(xù)進行這項開發(fā)工程,那么他應該選擇一種最好的解法,并且說明選擇這個解決方案的理一種最好的解法,并且說明選擇這個解決方案的理由。通常使用部門的負責人主要根據(jù)由。通常使用部門的負責人主要根據(jù)經(jīng)濟上經(jīng)濟上是否劃是否劃算決定是否投資于一項開發(fā)工程,因此分析員對于算決定是否投資于一項開發(fā)工程,因此分析員對于所推薦的系統(tǒng)必須進行比較仔細的成本所推薦的系統(tǒng)必須進行比較仔細的成本/效益分析。效益分析。7. 草擬開發(fā)計劃草擬開發(fā)計劃 分析員應該為所推薦的方

17、案草擬一份開發(fā)計劃,分析員應該為所推薦的方案草擬一份開發(fā)計劃,除了制定工程進度表之外還應該估計對各類開發(fā)人除了制定工程進度表之外還應該估計對各類開發(fā)人員和各種資源的需要情況,應該指明什么時候使用員和各種資源的需要情況,應該指明什么時候使用以及使用多長時間。此外還應該估計系統(tǒng)生命周期以及使用多長時間。此外還應該估計系統(tǒng)生命周期每個階段的成本。最后應該給出下一個階段每個階段的成本。最后應該給出下一個階段(需求需求分析分析)的詳細進度表和成本估計。的詳細進度表和成本估計。8. 書寫文檔提交審查書寫文檔提交審查 應該把上述可行性研究各個步驟的工作結(jié)果寫應該把上述可行性研究各個步驟的工作結(jié)果寫成清晰的文

18、檔,請用戶、客戶組織的負責人及評審成清晰的文檔,請用戶、客戶組織的負責人及評審組審查,以決定是否繼續(xù)這項工程及是否接受分析組審查,以決定是否繼續(xù)這項工程及是否接受分析員推薦的方案。員推薦的方案。2.3 系統(tǒng)流程圖系統(tǒng)流程圖 系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪組成它的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件系統(tǒng)的每個部件(程序,文檔,數(shù)據(jù)庫,人工過程程序,文檔,數(shù)據(jù)庫,人工過程等等)。 系統(tǒng)流程圖表達的是系統(tǒng)流程圖表達的是數(shù)據(jù)數(shù)據(jù)在系統(tǒng)各部件之間流在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進行加

19、工處理的控制過程,動的情況,而不是對數(shù)據(jù)進行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序號形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。流程圖。2.3.1 符號符號 當以概括的方式抽象地描繪一個實際系統(tǒng)時,當以概括的方式抽象地描繪一個實際系統(tǒng)時,僅僅使用圖僅僅使用圖2.1中列出的基本符號就足夠了。中列出的基本符號就足夠了。 當需要更具體地描繪一個物理系統(tǒng)時還需要使當需要更具體地描繪一個物理系統(tǒng)時還需要使用圖用圖2.2(見書(見書29頁)中列出的系統(tǒng)符號,利用這頁)中列出的系統(tǒng)符號,利

20、用這些符號可以把一個廣義的輸入輸出操作具體化為讀些符號可以把一個廣義的輸入輸出操作具體化為讀寫存儲在特殊設備上的文件(或數(shù)據(jù)庫),把抽象寫存儲在特殊設備上的文件(或數(shù)據(jù)庫),把抽象處理具體化為特定的程序或手工操作等。處理具體化為特定的程序或手工操作等。圖圖2.1 基本符號基本符號2.3.2 例子例子 介紹系統(tǒng)流程圖的最好方法可能是通過一個具介紹系統(tǒng)流程圖的最好方法可能是通過一個具體例子說明它的用法。下面是一個簡單的例子。體例子說明它的用法。下面是一個簡單的例子。例:某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種例:某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界

21、值等數(shù)據(jù)記錄在庫零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當倉庫中零件數(shù)量有變化時,應該及時存清單主文件中。當倉庫中零件數(shù)量有變化時,應該及時修改庫存清單主文件,如果哪種零件的庫存量少于它的庫修改庫存清單主文件,如果哪種零件的庫存量少于它的庫存量臨界值,則應該報告給采購部門以便定貨,規(guī)定每天存量臨界值,則應該報告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報告。向采購部門送一次定貨報告。該裝配廠使用一臺小型計算機處理更新庫存清單主文件和該裝配廠使用一臺小型計算機處理更新庫存清單主文件和產(chǎn)生定貨報告的任務:產(chǎn)生定貨報告的任務:零件庫存量的每一次變化稱為一個零件庫存量的

22、每一次變化稱為一個事務事務,由放在倉庫中的,由放在倉庫中的CRT終端終端輸輸入到計算機中;入到計算機中;系統(tǒng)中的系統(tǒng)中的庫存清單程序庫存清單程序?qū)κ聞者M行處理,更新存儲在對事務進行處理,更新存儲在磁盤上的庫存清磁盤上的庫存清單主文件單主文件,并且把必要的,并且把必要的定貨信息寫在磁帶上定貨信息寫在磁帶上;每天由每天由報告生成程序報告生成程序讀一次磁帶,并且打印出定貨報告。下圖的系統(tǒng)讀一次磁帶,并且打印出定貨報告。下圖的系統(tǒng)流程圖描繪了上述系統(tǒng)的概貌。流程圖描繪了上述系統(tǒng)的概貌。2.3.2 例子(續(xù))例子(續(xù))圖圖2.3 庫存清單系統(tǒng)的系統(tǒng)流程圖庫存清單系統(tǒng)的系統(tǒng)流程圖注:系統(tǒng)流程圖注:系統(tǒng)流程

23、圖的習慣畫法是使的習慣畫法是使信息在圖中從頂信息在圖中從頂向下或從左向右向下或從左向右流動。流動。 圖中每個符號用黑盒圖中每個符號用黑盒子形式定義了組成系子形式定義了組成系統(tǒng)的一個部件,然而統(tǒng)的一個部件,然而并沒有指明每個部件并沒有指明每個部件的具體工作過程;圖的具體工作過程;圖中的箭頭確定了信息中的箭頭確定了信息通過系統(tǒng)的邏輯路徑。通過系統(tǒng)的邏輯路徑。課堂練習課堂練習請畫出系統(tǒng)流程圖請畫出系統(tǒng)流程圖機票預訂系統(tǒng):機票預訂系統(tǒng): 把預訂機票的旅客信息輸入到系統(tǒng)中,系統(tǒng)為把預訂機票的旅客信息輸入到系統(tǒng)中,系統(tǒng)為旅客安排航班;旅客安排航班; 客戶支付定金,系統(tǒng)打印出取票通知和帳單給客戶支付定金,系

24、統(tǒng)打印出取票通知和帳單給旅客;旅客; 旅客在飛機起飛前一天憑取票通知和帳單交余旅客在飛機起飛前一天憑取票通知和帳單交余款,取票系統(tǒng)核對無誤后打印出機票給旅客。款,取票系統(tǒng)核對無誤后打印出機票給旅客。2223 預訂機票信息輸入到系統(tǒng)中預訂機票信息輸入到系統(tǒng)中 系統(tǒng)為旅客安排航班系統(tǒng)為旅客安排航班 旅客交付預訂金旅客交付預訂金 系統(tǒng)打印取票通知和帳單給旅客系統(tǒng)打印取票通知和帳單給旅客 旅客憑取票通知和帳單,交余款旅客憑取票通知和帳單,交余款 系統(tǒng)核對訂單信息無誤后打印出機票給旅客系統(tǒng)核對訂單信息無誤后打印出機票給旅客24航班安排程序航班安排程序航班安排航班安排取票通知、賬單生成程序取票通知、賬單生

25、成程序交納訂金交納訂金訂金信息訂金信息核對程序核對程序交款信息交款信息交余款交余款旅客信息旅客信息取票通知、賬單取票通知、賬單機票機票機票打印程序機票打印程序2.3.3 分層分層 面對復雜的系統(tǒng)時,一個比較好的方法是面對復雜的系統(tǒng)時,一個比較好的方法是分層分層次次地描繪這個系統(tǒng)。首先用一張高層次的系統(tǒng)流程地描繪這個系統(tǒng)。首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個關(guān)鍵功能擴展到適當?shù)脑敿毘潭龋嬙诜謩e把每個關(guān)鍵功能擴展到適當?shù)脑敿毘潭?,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀單獨的一頁紙上。這種分層次的描繪

26、方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個復雜者按從抽象到具體的過程逐步深入地了解一個復雜的系統(tǒng)。的系統(tǒng)。2.4 數(shù)據(jù)流圖數(shù)據(jù)流圖 數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù),是一種圖形化技術(shù),它描繪信它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換換。在數(shù)據(jù)流圖中。在數(shù)據(jù)流圖中沒有任何具體的物理部件沒有任何具體的物理部件,它只,它只是描繪數(shù)據(jù)在是描繪數(shù)據(jù)在軟件軟件中中流動和被處理流動和被處理的邏輯過程。數(shù)的邏輯過程。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)的計算機技術(shù)人員也容易理解它

27、,因此是分析員與的計算機技術(shù)人員也容易理解它,因此是分析員與用戶之間極好的通信工具。用戶之間極好的通信工具。 此外,設計數(shù)據(jù)流圖時只需考慮系統(tǒng)必須完成此外,設計數(shù)據(jù)流圖時只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實現(xiàn)的基本邏輯功能,完全不需要考慮怎樣具體地實現(xiàn)這些功能,所以它也是今后進行軟件設計的很好的這些功能,所以它也是今后進行軟件設計的很好的出發(fā)點。出發(fā)點。2.4.1 符號符號 數(shù)據(jù)流圖有四種基本符號:數(shù)據(jù)流圖有四種基本符號:u正方形正方形(或立方體或立方體)表示數(shù)據(jù)的源點或終點;表示數(shù)據(jù)的源點或終點;u圓角矩形圓角矩形(或圓形或圓形)代表變換數(shù)據(jù)的處理;代表變換數(shù)據(jù)的處

28、理;u開口矩形開口矩形(或兩條平行橫線或兩條平行橫線)代表數(shù)據(jù)存儲;代表數(shù)據(jù)存儲;u箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動方向。u處理并不一定是一個程序。處理并不一定是一個程序。一個處理框可以代表一個處理框可以代表一系列程序、單個程序或者程序的一個模塊;它甚一系列程序、單個程序或者程序的一個模塊;它甚至可以代表用穿孔機穿孔或目視檢查數(shù)據(jù)正確性等至可以代表用穿孔機穿孔或目視檢查數(shù)據(jù)正確性等人工處理過程。人工處理過程。u一個數(shù)據(jù)存儲也并不等同于一個文件,一個數(shù)據(jù)存儲也并不等同于一個文件,它可以表它可以表示一個文件、文件的一部分、數(shù)據(jù)庫的元素或記錄示一個文件、文件的一

29、部分、數(shù)據(jù)庫的元素或記錄的一部分等;數(shù)據(jù)可以存儲在磁盤、磁帶、磁鼓、的一部分等;數(shù)據(jù)可以存儲在磁盤、磁帶、磁鼓、主存、微縮膠片、穿孔卡片及其他任何介質(zhì)上主存、微縮膠片、穿孔卡片及其他任何介質(zhì)上(包包括人腦括人腦)。2.4.1 符號符號 數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)數(shù)據(jù)存儲和數(shù)據(jù)流都是數(shù)據(jù),僅僅所處的狀態(tài)不同。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是不同。數(shù)據(jù)存儲是處于靜止狀態(tài)的數(shù)據(jù),數(shù)據(jù)流是處于運動中的數(shù)據(jù)。處于運動中的數(shù)據(jù)。 通常在數(shù)據(jù)流圖中忽略出錯處理,也不包括諸通常在數(shù)據(jù)流圖中忽略出錯處理,也不包括諸如打開或關(guān)閉文件之類的內(nèi)務處理。如打開或關(guān)閉文件之類的內(nèi)務處理。數(shù)據(jù)流圖的基數(shù)

30、據(jù)流圖的基本要點是描繪本要點是描繪“做什么做什么”而不考慮而不考慮“怎樣做怎樣做”。2.4.1 符號符號 除了上述除了上述4種基本符號之外,有時也使用幾種附種基本符號之外,有時也使用幾種附加符號。下圖給出了這些附加符號的含義。加符號。下圖給出了這些附加符號的含義。2.4.1 符號符號2.4.2 例子例子假設一家工廠的采購部每天需要一張定貨報表,報表按零假設一家工廠的采購部每天需要一張定貨報表,報表按零件編號排序,表中列出所有需要再次定貨的零件。對于每件編號排序,表中列出所有需要再次定貨的零件。對于每個需要再次定貨的零件應該列出下述數(shù)據(jù):零件編號,零個需要再次定貨的零件應該列出下述數(shù)據(jù):零件編號

31、,零件名稱,定貨數(shù)量,目前價格,主要供應者,次要供應者。件名稱,定貨數(shù)量,目前價格,主要供應者,次要供應者。零件入庫或出庫稱為事務,通過放在倉庫中的零件入庫或出庫稱為事務,通過放在倉庫中的CRT終端把終端把事務報告給定貨系統(tǒng)。當某種零件的庫存數(shù)量少于庫存量事務報告給定貨系統(tǒng)。當某種零件的庫存數(shù)量少于庫存量臨界值時就應該再次定貨。臨界值時就應該再次定貨。 數(shù)據(jù)流圖有數(shù)據(jù)流圖有4種成分:源點或終點,處理,數(shù)據(jù)種成分:源點或終點,處理,數(shù)據(jù)存儲和數(shù)據(jù)流。存儲和數(shù)據(jù)流。u第一步第一步,可以從問題描述中提取數(shù)據(jù)流圖的可以從問題描述中提取數(shù)據(jù)流圖的4種成分:種成分: 首首先考慮數(shù)據(jù)的源點和終點,從上面對系

32、統(tǒng)的描述可以知道先考慮數(shù)據(jù)的源點和終點,從上面對系統(tǒng)的描述可以知道“采購部每天需要一張定貨報表采購部每天需要一張定貨報表”,“通過放在倉庫中的通過放在倉庫中的CRT終端把事務報告給定貨系統(tǒng)終端把事務報告給定貨系統(tǒng)”,所以,所以采購員是采購員是數(shù)據(jù)終數(shù)據(jù)終點點,而,而倉庫管理員是倉庫管理員是數(shù)據(jù)源點數(shù)據(jù)源點。u接下來接下來,考慮考慮處理處理,再一次閱讀問題描述,再一次閱讀問題描述,“采購部需要采購部需要報表報表”,顯然他們還沒有這種報表,因此必須有一個,顯然他們還沒有這種報表,因此必須有一個用于用于產(chǎn)生報表的處理產(chǎn)生報表的處理。事務的后果是改變零件庫存量,然而任。事務的后果是改變零件庫存量,然而

33、任何何改變數(shù)據(jù)的操作都是處理,因此對事務進行的加工是另改變數(shù)據(jù)的操作都是處理,因此對事務進行的加工是另一個處理。一個處理。(注意,在問題描述中并沒有明顯地提到需要對事務進行處理,但是通注意,在問題描述中并沒有明顯地提到需要對事務進行處理,但是通過分析可以看出這種需要。過分析可以看出這種需要。)2.4.2 例子例子分析(基本系統(tǒng)模型)分析(基本系統(tǒng)模型)u最后,考慮最后,考慮數(shù)據(jù)流和數(shù)據(jù)存儲數(shù)據(jù)流和數(shù)據(jù)存儲:系統(tǒng)把定貨報表送給采系統(tǒng)把定貨報表送給采購部,因此購部,因此定貨報表定貨報表是一個數(shù)據(jù)流是一個數(shù)據(jù)流;事務需要從倉庫送到事務需要從倉庫送到系統(tǒng)中,顯然系統(tǒng)中,顯然事務事務是另一個數(shù)據(jù)流。是另

34、一個數(shù)據(jù)流。產(chǎn)生報表和處理事務產(chǎn)生報表和處理事務這兩個處理在時間上明顯不匹配這兩個處理在時間上明顯不匹配每當有一個事務發(fā)生每當有一個事務發(fā)生時立即處理它,然而每天只產(chǎn)生一次定貨報表。因此,用時立即處理它,然而每天只產(chǎn)生一次定貨報表。因此,用來產(chǎn)生定貨報表的數(shù)據(jù)必須存放一段時間,也就是來產(chǎn)生定貨報表的數(shù)據(jù)必須存放一段時間,也就是應該有應該有一個一個數(shù)據(jù)存儲數(shù)據(jù)存儲。(注意,并不是所有數(shù)據(jù)存儲和數(shù)據(jù)流都能直接從問題描述中提取出注意,并不是所有數(shù)據(jù)存儲和數(shù)據(jù)流都能直接從問題描述中提取出來。來。)2.4.2 例子例子分析(基本系統(tǒng)模型)分析(基本系統(tǒng)模型)上圖中總結(jié)了上面分析的結(jié)果,其中加星號標記的是

35、在問上圖中總結(jié)了上面分析的結(jié)果,其中加星號標記的是在問題描述中隱含的成分。題描述中隱含的成分。2.4.2 例子例子分析(基本系統(tǒng)模型)分析(基本系統(tǒng)模型)表2.1組成數(shù)據(jù)流圖的元素可以從描述問題的信息中提取 任何系統(tǒng)的基本模型都由若干個數(shù)據(jù)源點任何系統(tǒng)的基本模型都由若干個數(shù)據(jù)源點/終點以及一終點以及一個處理組成,這個處理就代表了系統(tǒng)對數(shù)據(jù)加工變換的基個處理組成,這個處理就代表了系統(tǒng)對數(shù)據(jù)加工變換的基本功能。對于上述的定貨系統(tǒng)可以畫出圖下圖這樣的基本本功能。對于上述的定貨系統(tǒng)可以畫出圖下圖這樣的基本系統(tǒng)模型。系統(tǒng)模型。2.4.2 例子例子分析(基本系統(tǒng)模型)分析(基本系統(tǒng)模型)圖圖2.5 定貨系

36、統(tǒng)的基本系統(tǒng)模型定貨系統(tǒng)的基本系統(tǒng)模型 從基本系統(tǒng)模型這樣非常高的層次開始畫數(shù)據(jù)流圖是一從基本系統(tǒng)模型這樣非常高的層次開始畫數(shù)據(jù)流圖是一個好辦法。在這個高層次的數(shù)據(jù)流圖上是否列出了所有給個好辦法。在這個高層次的數(shù)據(jù)流圖上是否列出了所有給定的數(shù)據(jù)源點定的數(shù)據(jù)源點/終點是一目了然的,因此它是很有價值的通終點是一目了然的,因此它是很有價值的通信工具。信工具。 然而,圖然而,圖2.5畢竟太抽象了,從這張圖上對定貨系統(tǒng)所能畢竟太抽象了,從這張圖上對定貨系統(tǒng)所能了解到的信息非常有限。下一步應該把基本系統(tǒng)模型細化,了解到的信息非常有限。下一步應該把基本系統(tǒng)模型細化,描繪系統(tǒng)的主要功能。描繪系統(tǒng)的主要功能。2

37、.4.2 例子例子分析(功能級數(shù)據(jù)流圖)分析(功能級數(shù)據(jù)流圖)數(shù)據(jù)流圖細化:數(shù)據(jù)流圖細化:u從表從表2.1可知,可知,“產(chǎn)生報表產(chǎn)生報表”和和“處理事務處理事務”是系統(tǒng)必須是系統(tǒng)必須完成的兩個主要功能,完成的兩個主要功能,它們將代替圖它們將代替圖2.5中的中的“定貨系統(tǒng)定貨系統(tǒng)”。u細化后的數(shù)據(jù)流圖中還增加了細化后的數(shù)據(jù)流圖中還增加了兩個數(shù)據(jù)存儲兩個數(shù)據(jù)存儲: 處理事務需要“庫存清單”數(shù)據(jù); 產(chǎn)生報表和處理事務在不同時間,因此需要存儲“定貨信息”。u 除了表除了表2.1中列出的兩個數(shù)據(jù)流之外中列出的兩個數(shù)據(jù)流之外還有另外兩個數(shù)據(jù)流還有另外兩個數(shù)據(jù)流,它們與數(shù)據(jù)存儲相同。它們與數(shù)據(jù)存儲相同。 這

38、是因為從一個數(shù)據(jù)存儲中取出來的或放進去的數(shù)據(jù)通常和原來存儲的數(shù)據(jù)相同,也就是說,數(shù)據(jù)存儲和數(shù)據(jù)流只不過是同樣數(shù)據(jù)的兩種不同形式。u在圖在圖2.6中給處理和數(shù)據(jù)存儲增加編號,這樣做的目的是中給處理和數(shù)據(jù)存儲增加編號,這樣做的目的是便于引用和追蹤。便于引用和追蹤。2.4.2 例子例子分析(功能級數(shù)據(jù)流圖)分析(功能級數(shù)據(jù)流圖)圖圖2.6 定貨系統(tǒng)的功能級數(shù)據(jù)流圖定貨系統(tǒng)的功能級數(shù)據(jù)流圖接下來應該對功能級數(shù)據(jù)流圖中描繪的系統(tǒng)主要功接下來應該對功能級數(shù)據(jù)流圖中描繪的系統(tǒng)主要功能進一步細化:能進一步細化: 考慮通過系統(tǒng)的邏輯數(shù)據(jù)流:當發(fā)生一個事務時必須考慮通過系統(tǒng)的邏輯數(shù)據(jù)流:當發(fā)生一個事務時必須首首先

39、先接收它;接收它;隨后隨后按照事務的內(nèi)容修改庫存清單;按照事務的內(nèi)容修改庫存清單;最后最后如果如果更新后的庫存量少于庫存量臨界值時,則應該再次定貨,更新后的庫存量少于庫存量臨界值時,則應該再次定貨,也就是需要處理定貨信息。也就是需要處理定貨信息。 因此,把因此,把“處理事務處理事務”這個功能分解為下述這個功能分解為下述3個步驟,個步驟,這在邏輯上是合理的:這在邏輯上是合理的:“接收事務接收事務”、“更新庫存清單更新庫存清單”和和“處理定貨處理定貨”(圖圖2.7)。(注意:注意:當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性,也就是說,當當對數(shù)據(jù)流圖分層細化時必須保持信息連續(xù)性,也就是說,當把一個處理

40、分解為一系列處理時,把一個處理分解為一系列處理時,分解前和分解后的輸入輸出數(shù)據(jù)流分解前和分解后的輸入輸出數(shù)據(jù)流必須相同。必須相同。)2.4.2 例子例子分析(功能級數(shù)據(jù)流圖的進一步細化)分析(功能級數(shù)據(jù)流圖的進一步細化)圖圖2.7 把處理事務的功能進一步分解后的數(shù)據(jù)流圖把處理事務的功能進一步分解后的數(shù)據(jù)流圖課堂練習課堂練習1請畫出數(shù)據(jù)流圖請畫出數(shù)據(jù)流圖機票預訂系統(tǒng):機票預訂系統(tǒng): 把預訂機票的旅客信息輸入到系統(tǒng)中,系統(tǒng)為把預訂機票的旅客信息輸入到系統(tǒng)中,系統(tǒng)為旅客安排航班;旅客安排航班; 客戶支付定金,系統(tǒng)打印出取票通知和帳單給客戶支付定金,系統(tǒng)打印出取票通知和帳單給旅客;旅客; 旅客在飛機起

41、飛前一天憑取票通知和帳單交余旅客在飛機起飛前一天憑取票通知和帳單交余款,取票系統(tǒng)核對無誤后打印出機票給旅客???,取票系統(tǒng)核對無誤后打印出機票給旅客。頂層頂層DFD:43第第0層層DFD:44處理處理信息信息生成生成機票機票45第一層DFD:交訂金信息交訂金信息課堂練習課堂練習1請畫出數(shù)據(jù)流圖請畫出數(shù)據(jù)流圖考務管理系統(tǒng)考務管理系統(tǒng)2.4.3 命名命名 數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影數(shù)據(jù)流圖中每個成分的命名是否恰當,直接影響數(shù)據(jù)流圖的可理解性。因此,給這些成分起名字響數(shù)據(jù)流圖的可理解性。因此,給這些成分起名字時應該仔細推敲。下面講述在命名時應注意的問題:時應該仔細推敲。下面講述在命名時應

42、注意的問題:1. 為數(shù)據(jù)流為數(shù)據(jù)流(或數(shù)據(jù)存儲或數(shù)據(jù)存儲)命名命名 (1) 名字應代表整個數(shù)據(jù)流名字應代表整個數(shù)據(jù)流(或數(shù)據(jù)存儲或數(shù)據(jù)存儲)的內(nèi)容,而不是的內(nèi)容,而不是僅僅反映它的某些成分。僅僅反映它的某些成分。 (2) 不要使用空洞的、缺乏具體含義的名字不要使用空洞的、缺乏具體含義的名字(如如“數(shù)據(jù)數(shù)據(jù)”、“信息信息”、“輸入輸入”之類之類)。 (3) 如果在為某個數(shù)據(jù)流如果在為某個數(shù)據(jù)流(或數(shù)據(jù)存儲或數(shù)據(jù)存儲)起名字時遇到了困起名字時遇到了困難,則很可能是因為對數(shù)據(jù)流圖分解不恰當造成的,應該難,則很可能是因為對數(shù)據(jù)流圖分解不恰當造成的,應該試試重新分解,看是否能克服這個困難。試試重新分解,

43、看是否能克服這個困難。2. 為處理命名為處理命名 (1) 通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。名。 這樣命名比較容易,而且體現(xiàn)了人類習慣的這樣命名比較容易,而且體現(xiàn)了人類習慣的“由表及由表及里里”的思考過程。的思考過程。 (2) 名字應該反映整個處理的功能,而不是它的一部分功名字應該反映整個處理的功能,而不是它的一部分功能。能。 (3) 名字最好由一個具體的及物動詞加上一個具體的賓語名字最好由一個具體的及物動詞加上一個具體的賓語組成。應該盡量避免使用組成。應該盡量避免使用“加工加工”、“處理處理”等空洞籠統(tǒng)等空洞籠統(tǒng)的動詞作名字。的動

44、詞作名字。2.4.3 命名命名 (4) 通常名字中通常名字中僅包括一個動詞僅包括一個動詞,如果必須用兩個動詞才,如果必須用兩個動詞才能描述整個處理的功能,則把這個處理再分解成兩個處理能描述整個處理的功能,則把這個處理再分解成兩個處理可能更恰當些??赡芨‘斝?。 (5) 如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)如果在為某個處理命名時遇到困難,則很可能是發(fā)現(xiàn)了分解不當?shù)嫩E象,應考慮重新分解。了分解不當?shù)嫩E象,應考慮重新分解。 數(shù)據(jù)源點數(shù)據(jù)源點/終點并不需要在開發(fā)目標系統(tǒng)的過程中設計和終點并不需要在開發(fā)目標系統(tǒng)的過程中設計和實現(xiàn),它并不屬于數(shù)據(jù)流圖的核心內(nèi)容,實現(xiàn),它并不屬于數(shù)據(jù)流圖的核心內(nèi)容

45、,只不過是目標系只不過是目標系統(tǒng)的外圍環(huán)境部分統(tǒng)的外圍環(huán)境部分(可能是人員、計算機外部設備或傳感器可能是人員、計算機外部設備或傳感器裝置裝置)。通常,為數(shù)據(jù)源點通常,為數(shù)據(jù)源點/終點命名時采用它們在問題域中終點命名時采用它們在問題域中習慣使用的名字習慣使用的名字(如如“采購員采購員”、“倉庫管理員倉庫管理員”等等)。2.4.3 命名命名2.4.4 用途用途 畫數(shù)據(jù)流圖的畫數(shù)據(jù)流圖的基本目的基本目的是:利用它作為交流信是:利用它作為交流信息的工具。分析員把他對現(xiàn)有系統(tǒng)的認識或?qū)δ繕讼⒌墓ぞ?。分析員把他對現(xiàn)有系統(tǒng)的認識或?qū)δ繕讼到y(tǒng)的設想用數(shù)據(jù)流圖描繪出來,供有關(guān)人員審查系統(tǒng)的設想用數(shù)據(jù)流圖描繪出來

46、,供有關(guān)人員審查確認。由于在數(shù)據(jù)流圖中通常僅僅使用確認。由于在數(shù)據(jù)流圖中通常僅僅使用4種基本符種基本符號,而且不包含任何有關(guān)物理實現(xiàn)的細節(jié),因此,號,而且不包含任何有關(guān)物理實現(xiàn)的細節(jié),因此,絕大多數(shù)用戶都可以理解和評價它。絕大多數(shù)用戶都可以理解和評價它。 數(shù)據(jù)流圖應該分層,并且在把功能級數(shù)據(jù)流圖數(shù)據(jù)流圖應該分層,并且在把功能級數(shù)據(jù)流圖細化后得到的處理細化后得到的處理超過超過9個時個時,應該采用畫分圖的,應該采用畫分圖的辦法,也就是把每個主要功能都細化為一張數(shù)據(jù)流辦法,也就是把每個主要功能都細化為一張數(shù)據(jù)流分圖,而原有的功能級數(shù)據(jù)流圖用來描繪系統(tǒng)的整分圖,而原有的功能級數(shù)據(jù)流圖用來描繪系統(tǒng)的整體

47、邏輯概貌。體邏輯概貌。 數(shù)據(jù)流圖的另一個主要用途是作為分析和設計數(shù)據(jù)流圖的另一個主要用途是作為分析和設計的工具。的工具。分析員在研究現(xiàn)有的系統(tǒng)時常用分析員在研究現(xiàn)有的系統(tǒng)時常用系統(tǒng)流程系統(tǒng)流程圖圖表達他對這個系統(tǒng)的認識,這種描繪方法形象具表達他對這個系統(tǒng)的認識,這種描繪方法形象具體,比較容易驗證它的正確性;體,比較容易驗證它的正確性;但是,但是,開發(fā)工程的開發(fā)工程的目標往往不是完全復制現(xiàn)有的系統(tǒng),而是創(chuàng)造一個目標往往不是完全復制現(xiàn)有的系統(tǒng),而是創(chuàng)造一個能夠完成相同的或類似的功能的新系統(tǒng)。用系統(tǒng)流能夠完成相同的或類似的功能的新系統(tǒng)。用系統(tǒng)流程圖描繪一個系統(tǒng)時,系統(tǒng)的功能和實現(xiàn)每個功能程圖描繪一個

48、系統(tǒng)時,系統(tǒng)的功能和實現(xiàn)每個功能的具體方案是混在一起的。因此,分析員希望以另的具體方案是混在一起的。因此,分析員希望以另一種方式進一步總結(jié)現(xiàn)有的系統(tǒng),這種方式應該著一種方式進一步總結(jié)現(xiàn)有的系統(tǒng),這種方式應該著重描繪系統(tǒng)所完成的功能而不是系統(tǒng)的物理實現(xiàn)方重描繪系統(tǒng)所完成的功能而不是系統(tǒng)的物理實現(xiàn)方案。案。數(shù)據(jù)流圖數(shù)據(jù)流圖是實現(xiàn)這個目標的極好手段。是實現(xiàn)這個目標的極好手段。2.4.4 用途用途 當用數(shù)據(jù)流圖輔助物理系統(tǒng)的設計時,以圖中當用數(shù)據(jù)流圖輔助物理系統(tǒng)的設計時,以圖中不同處理的定時要求不同處理的定時要求為指南,能夠在數(shù)據(jù)流圖上畫為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動化邊界,出許多組自動化邊界

49、,每組自動化邊界可能意味著每組自動化邊界可能意味著一個不同的物理系統(tǒng)一個不同的物理系統(tǒng),因此可以根據(jù)系統(tǒng)的邏輯模,因此可以根據(jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實現(xiàn)。型考慮系統(tǒng)的物理實現(xiàn)。例如,考慮圖例如,考慮圖2.7,事務隨時可能發(fā)生,因此處理,事務隨時可能發(fā)生,因此處理1.1(“接收接收事務事務”)必須是聯(lián)機的;采購員每天需要一次定貨報表,因必須是聯(lián)機的;采購員每天需要一次定貨報表,因此處理此處理2(“產(chǎn)生報表產(chǎn)生報表”)應該以批量方式進行。應該以批量方式進行。2.4.4 用途用途圖圖2.8 這種劃分自動化邊界的方法暗示這種劃分自動化邊界的方法暗示以批量方式更新庫存清單以批量方式更新庫存清單可以

50、聯(lián)機地接收事務并放入隊列可以聯(lián)機地接收事務并放入隊列中,然而更新庫存清單、處理定中,然而更新庫存清單、處理定貨和產(chǎn)生報表以批量方式進行。貨和產(chǎn)生報表以批量方式進行。當然,這種方案需要當然,這種方案需要增加一個數(shù)增加一個數(shù)據(jù)存儲以存放事務數(shù)據(jù)據(jù)存儲以存放事務數(shù)據(jù)。 改變自動化邊界,把處理改變自動化邊界,把處理1.1,1.2和和1.3放在同一個邊界內(nèi),放在同一個邊界內(nèi),這這個系統(tǒng)將聯(lián)機地接收事務、更新個系統(tǒng)將聯(lián)機地接收事務、更新庫存清單和處理定貨及輸出定貨庫存清單和處理定貨及輸出定貨信息;然而處理信息;然而處理2將以批量方式將以批量方式產(chǎn)生定貨報表。產(chǎn)生定貨報表。2.4.4 用途用途圖圖2.9 另

51、一種劃分自動化邊界的方法建議另一種劃分自動化邊界的方法建議以聯(lián)機方式更新庫存清單以聯(lián)機方式更新庫存清單還能設想出建立自動化邊界的其他方案嗎還能設想出建立自動化邊界的其他方案嗎? 如果把處理如果把處理1.1和處理和處理1.2放在一個自動化邊界放在一個自動化邊界內(nèi),把處理內(nèi),把處理1.3和處理和處理2放在另一個邊界內(nèi),意味著放在另一個邊界內(nèi),意味著什么樣的物理系統(tǒng)呢什么樣的物理系統(tǒng)呢?2.4.4 用途用途2.5 數(shù)據(jù)字典數(shù)據(jù)字典 數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對數(shù)據(jù)流圖中包含的所有元素的定義的集合。數(shù)據(jù)流圖中包含的所有元素的定義的集合。 任何字典任何

52、字典最主要的用途最主要的用途都是供人查閱對不了解都是供人查閱對不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。和設計的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。 數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對數(shù)圖數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對數(shù)據(jù)流圖中每個元素的精確定義放在一起,才能共同據(jù)流圖中每個元素的精確定義放在一起,才能共同構(gòu)成系統(tǒng)的

53、規(guī)格說明。構(gòu)成系統(tǒng)的規(guī)格說明。2.5.1 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應該由對下列一般說來,數(shù)據(jù)字典應該由對下列4類元素的定義類元素的定義組成:組成: (1) 數(shù)據(jù)流數(shù)據(jù)流 (2) 數(shù)據(jù)流分量數(shù)據(jù)流分量(即數(shù)據(jù)元素即數(shù)據(jù)元素) (3) 數(shù)據(jù)存儲數(shù)據(jù)存儲 (4) 處理處理但是,對數(shù)據(jù)但是,對數(shù)據(jù)處理處理的定義用其他工具的定義用其他工具(如如IPO圖或圖或PDL)描述更方便,因此本書中描述更方便,因此本書中數(shù)據(jù)字典將主要由數(shù)據(jù)字典將主要由對數(shù)據(jù)的定義組成,這樣做可以使數(shù)據(jù)字典的內(nèi)容對數(shù)據(jù)的定義組成,這樣做可以使數(shù)據(jù)字典的內(nèi)容更單純,形式更統(tǒng)一。更單純,形式更統(tǒng)一。 除了數(shù)據(jù)定義之

54、外,數(shù)據(jù)字典中還應該包含關(guān)除了數(shù)據(jù)定義之外,數(shù)據(jù)字典中還應該包含關(guān)于數(shù)據(jù)的一些其他信息。于數(shù)據(jù)的一些其他信息。典型的情況是,在數(shù)據(jù)字典型的情況是,在數(shù)據(jù)字典中記錄數(shù)據(jù)元素的下列信息:典中記錄數(shù)據(jù)元素的下列信息: u一般信息一般信息(名字,別名,描述等等名字,別名,描述等等);u定義定義(數(shù)據(jù)類型,長度,結(jié)構(gòu)等等數(shù)據(jù)類型,長度,結(jié)構(gòu)等等);u使用特點使用特點(值的范圍,使用頻率,使用方式值的范圍,使用頻率,使用方式輸入、輸輸入、輸出、本地,條件值等等出、本地,條件值等等);u控制信息控制信息(來源,用戶,使用它的程序,改變權(quán),使用權(quán)來源,用戶,使用它的程序,改變權(quán),使用權(quán)等等等等);u 分組信息

55、分組信息(父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置記錄、文件記錄、文件和數(shù)據(jù)庫等等和數(shù)據(jù)庫等等)。2.5.1 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)元素的數(shù)據(jù)元素的別名別名就是該元素的其他等價的名字,出就是該元素的其他等價的名字,出現(xiàn)別名主要有下述現(xiàn)別名主要有下述3個原因:個原因:(1) 對于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;對于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;(2) 一個分析員在不同時期對同一個數(shù)據(jù)使用了不同的名字;一個分析員在不同時期對同一個數(shù)據(jù)使用了不同的名字;(3) 兩個分析員分別分析同一個數(shù)據(jù)流時,使用了不同的名兩個分析員分別分析同一個數(shù)據(jù)流時,使用了不同的名字。

56、字。雖然應該盡量減少出現(xiàn)別名,但是不可能完全消除別名。雖然應該盡量減少出現(xiàn)別名,但是不可能完全消除別名。2.5.1 數(shù)據(jù)字典的內(nèi)容數(shù)據(jù)字典的內(nèi)容2.5.2 定義數(shù)據(jù)的方法定義數(shù)據(jù)的方法 定義絕大多數(shù)復雜事物的方法,都是用被定義定義絕大多數(shù)復雜事物的方法,都是用被定義的事物的成分的某種組合表示這個事物,這些組成的事物的成分的某種組合表示這個事物,這些組成成分又由更低層的成分的組合來定義。成分又由更低層的成分的組合來定義。 從這個意義上說,定義就是自頂向下的分解,從這個意義上說,定義就是自頂向下的分解,所以所以數(shù)據(jù)字典中的定義就是對數(shù)據(jù)自頂向下的分解。數(shù)據(jù)字典中的定義就是對數(shù)據(jù)自頂向下的分解。那么

57、,應該把數(shù)據(jù)分解到什么程度呢那么,應該把數(shù)據(jù)分解到什么程度呢?一般說來,一般說來,當分解到不需要進一步定義,每個和工程有關(guān)的人當分解到不需要進一步定義,每個和工程有關(guān)的人也都清楚其含義的元素時,這種分解過程就完成了。也都清楚其含義的元素時,這種分解過程就完成了。由由數(shù)據(jù)元素數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述三種基本類型:組成數(shù)據(jù)的方式只有下述三種基本類型:(1) 順序順序 即以確定次序連接兩個或多個分量;即以確定次序連接兩個或多個分量;(2) 選擇選擇 即從兩個或多個可能的元素中選取一個;即從兩個或多個可能的元素中選取一個;(3) 重復重復 即把指定的分量重復零次或多次。即把指定的分量重復零次或多

58、次。 因此,可以使用上述因此,可以使用上述3種關(guān)系算符定義數(shù)據(jù)字種關(guān)系算符定義數(shù)據(jù)字典中的任何條目。為了說明重復次數(shù),重復算符通典中的任何條目。為了說明重復次數(shù),重復算符通常和重復次數(shù)的上下限同時使用常和重復次數(shù)的上下限同時使用(當上下限相同時當上下限相同時表示重復次數(shù)固定表示重復次數(shù)固定)。當重復的上下限分別為當重復的上下限分別為1和和0時,可以用重復算符表示某個分量是可選的。時,可以用重復算符表示某個分量是可選的。但是,但是,“可選可選”是由數(shù)據(jù)元素組成數(shù)據(jù)時一種常見的方式,是由數(shù)據(jù)元素組成數(shù)據(jù)時一種常見的方式,把它單獨列為一種算符可以使數(shù)據(jù)字典更清晰一些。把它單獨列為一種算符可以使數(shù)據(jù)字

59、典更清晰一些。因此,增加了下述的第因此,增加了下述的第4種關(guān)系算符:種關(guān)系算符:2.5.2 定義數(shù)據(jù)的方法定義數(shù)據(jù)的方法 (4) 可選可選 即一個分量是可有可無的即一個分量是可有可無的(重復零次或一次重復零次或一次)。雖然可以使用自然語言描述由數(shù)據(jù)元素組成數(shù)據(jù)的雖然可以使用自然語言描述由數(shù)據(jù)元素組成數(shù)據(jù)的關(guān)系,但是為了更加清晰簡潔,建議采用下列符號:關(guān)系,但是為了更加清晰簡潔,建議采用下列符號:u =意思是等價于意思是等價于(或定義為或定義為);u +意思是和意思是和(即,即,連接連接兩個分量兩個分量);u 意思是或意思是或 (即,即,從方括弧內(nèi)列出的若干個分量中選擇一個從方括弧內(nèi)列出的若干個

60、分量中選擇一個),通,通常用常用“|”號隔開供選擇的分量;號隔開供選擇的分量;u 意思是重復意思是重復 (即,即,重復花括弧內(nèi)的分量重復花括弧內(nèi)的分量);u ( )意思是可選意思是可選 (即,即,圓括弧里的分量可有可無圓括弧里的分量可有可無)。 常常使用上限和下限進一步注釋表示重復的花括弧。一種注釋方常常使用上限和下限進一步注釋表示重復的花括弧。一種注釋方法是在開括弧的左邊用上角標和下角標分別表明重復的上限和下限;法是在開括弧的左邊用上角標和下角標分別表明重復的上限和下限;另一種注釋方法是在開括弧左側(cè)標明重復的下限,在閉括弧的右側(cè)標另一種注釋方法是在開括弧左側(cè)標明重復的下限,在閉括弧的右側(cè)標明

溫馨提示

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

評論

0/150

提交評論