第2章 可行性研究_第1頁
第2章 可行性研究_第2頁
第2章 可行性研究_第3頁
第2章 可行性研究_第4頁
第2章 可行性研究_第5頁
已閱讀5頁,還剩60頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章可行性研究2.1可行性研究的任務(wù)2.2可行性研究過程2.3系統(tǒng)流程圖2.4數(shù)據(jù)流圖2.5數(shù)據(jù)字典2.6成本/效益分析2.7小結(jié)習(xí)題本章要求掌握可行性研究的基本任務(wù)和基本步驟掌握系統(tǒng)流程圖的作用、符號(hào)及其畫法;掌握數(shù)據(jù)流圖的作用、符號(hào)及其畫法掌握數(shù)據(jù)字典的作用和用法了解成本估計(jì)的方法;成本/效益分析方法2.1可行性研究的任務(wù)

可行性研究的目的不是解決問題,而是確定問題是否值得去解決。可行性研究實(shí)質(zhì)上是要進(jìn)行一次大大壓縮簡化了的系統(tǒng)分析和設(shè)計(jì)的過程,也就是在較高層次上以較抽象的方式進(jìn)行的系統(tǒng)分析和設(shè)計(jì)的過程。一般說來,至少應(yīng)該從下述三方面研究每種解法的可行性:(1)技術(shù)可行性使用現(xiàn)有的技術(shù)能實(shí)現(xiàn)這個(gè)系統(tǒng)嗎?(2)經(jīng)濟(jì)可行性這個(gè)系統(tǒng)的經(jīng)濟(jì)效益能超過它的開發(fā)成本嗎?(3)操作可行性系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)行得通嗎?一般說來,可行性研究的成本只是預(yù)期的工程總成本的5%~10%。2.2可行性研究過程典型的可行性研究過程有下述一些步驟。1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)2.研究目前正在使用的系統(tǒng)3.導(dǎo)出新系統(tǒng)的高層邏輯模型4.進(jìn)一步定義問題5.導(dǎo)出和評(píng)價(jià)供選擇的解法6.推薦行動(dòng)方針7.草擬開發(fā)計(jì)劃8.書寫文檔提交審查1.確定項(xiàng)目規(guī)模和目標(biāo)2.研究正在運(yùn)行的系統(tǒng)3.建立新系統(tǒng)的高層邏輯模型4.導(dǎo)出和評(píng)價(jià)各種方案5.推薦可行的方案6.編寫可行性研究報(bào)告1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)分析員訪問關(guān)鍵人員,仔細(xì)閱讀和分析有關(guān)的材料,以便對(duì)問題定義階段書寫的關(guān)于規(guī)模和目標(biāo)的報(bào)告書進(jìn)一步復(fù)查確認(rèn),改正含糊或不確切的敘述,清晰地描述對(duì)目標(biāo)系統(tǒng)的一切限制和約束。

這個(gè)步驟的工作,實(shí)質(zhì)上是為了確保分析員正在解決的問題確實(shí)是要求他解決的問題。現(xiàn)有的系統(tǒng)是信息的重要來源。新的目標(biāo)系統(tǒng)必須也能完成它的基本功能;另一方面,如果現(xiàn)有的系統(tǒng)是完美無缺的,用戶自然不會(huì)提出開發(fā)新系統(tǒng)的要求,因此,現(xiàn)有的系統(tǒng)必然有某些缺點(diǎn),新系統(tǒng)必須能解決舊系統(tǒng)中存在的問題。此外,運(yùn)行使用舊系統(tǒng)所需要的費(fèi)用是一個(gè)重要的經(jīng)濟(jì)指標(biāo),如果新系統(tǒng)不能增加收入或減少使用費(fèi)用,那么從經(jīng)濟(jì)角度看新系統(tǒng)就不如舊系統(tǒng)。

這個(gè)步驟的目的是了解現(xiàn)有系統(tǒng)能做什么,而不是了解它怎樣做這些工作。2.研究目前正在使用的系統(tǒng)優(yōu)秀的設(shè)計(jì)過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā),導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型,再參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標(biāo)系統(tǒng)的邏輯模型,最后根據(jù)目標(biāo)系統(tǒng)的邏輯模型建造新的物理系統(tǒng)。通過前一步的工作,分析員對(duì)目標(biāo)系統(tǒng)應(yīng)該具有的基本功能和所受的約束已有一定了解,能夠使用數(shù)據(jù)流圖(參看2.4節(jié)),描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的情況,從而概括地表達(dá)出他對(duì)新系統(tǒng)的設(shè)想。通常為了把新系統(tǒng)描繪得更清晰準(zhǔn)確,還應(yīng)該有一個(gè)初步的數(shù)據(jù)字典(參看2.5節(jié)),定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,以后可以從這個(gè)邏輯模型出發(fā)設(shè)計(jì)新系統(tǒng)。3.導(dǎo)出新系統(tǒng)的高層邏輯模型新系統(tǒng)的邏輯模型實(shí)質(zhì)上表達(dá)了分析員對(duì)新系統(tǒng)必須做什么的看法。分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標(biāo),這次復(fù)查應(yīng)該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)。如果分析員對(duì)問題有誤解或者用戶曾經(jīng)遺漏了某些要求,那么現(xiàn)在是發(fā)現(xiàn)和改正這些錯(cuò)誤的時(shí)候了。

可行性研究的前4個(gè)步驟實(shí)質(zhì)上構(gòu)成一個(gè)循環(huán)。分析員定義問題,分析這個(gè)問題,導(dǎo)出一個(gè)試探性的解;在此基礎(chǔ)上再次定義問題,再一次分析這個(gè)問題,修改這個(gè)解;繼續(xù)這個(gè)循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標(biāo)。4.進(jìn)一步定義問題

分析員應(yīng)該從他建議的系統(tǒng)邏輯模型出發(fā),導(dǎo)出若干個(gè)較高層次的(較抽象的)物理解法供比較和選擇。導(dǎo)出供選擇的解法的最簡單的途徑,是從技術(shù)角度出發(fā)考慮解決問題的不同方案。還可以使用組合的方法導(dǎo)出若干種可能的物理系統(tǒng)。當(dāng)從技術(shù)角度提出了一些可能的物理系統(tǒng)之后,應(yīng)該根據(jù)技術(shù)可行性的考慮初步排除一些不現(xiàn)實(shí)的系統(tǒng)。把技術(shù)上行不通的解法去掉之后,就剩下了一組技術(shù)上可行的方案。5.導(dǎo)出和評(píng)價(jià)供選擇的解法操作方面的可行性:分析員應(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é))。一般說來,只有投資預(yù)計(jì)能帶來利潤的系統(tǒng)才值得進(jìn)一步考慮。

最后為每個(gè)在技術(shù)、操作和經(jīng)濟(jì)等方面都可行的系統(tǒng)制定實(shí)現(xiàn)進(jìn)度表,這個(gè)進(jìn)度表不需要(也不可能)制定得很詳細(xì),通常只需要估計(jì)生命周期每個(gè)階段的工作量。6.推薦行動(dòng)方針根據(jù)可行性研究結(jié)果應(yīng)該做出的一個(gè)關(guān)鍵性決定即:是否繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程。分析員必須清楚地表明他對(duì)這個(gè)關(guān)鍵性決定的建議。如果分析員認(rèn)為值得繼續(xù)進(jìn)行這項(xiàng)開發(fā)工程,那么他應(yīng)該選擇一種最好的解法,并且說明選擇這個(gè)解決方案的理由。通常使用部門的負(fù)責(zé)人主要根據(jù)經(jīng)濟(jì)上是否劃算決定是否投資于一項(xiàng)開發(fā)工程,因此分析員對(duì)于所推薦的系統(tǒng)必須進(jìn)行比較仔細(xì)的成本/效益分析。7.草擬開發(fā)計(jì)劃分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計(jì)劃,除了制定工程進(jìn)度表之外還應(yīng)該估計(jì)對(duì)各類開發(fā)人員和各種資源的需要情況,應(yīng)該指明什么時(shí)候使用以及使用多長時(shí)間。此外還應(yīng)該估計(jì)系統(tǒng)生命周期每個(gè)階段的成本。最后應(yīng)該給出下一個(gè)階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。8.書寫文檔提交審查應(yīng)該把上述可行性研究各個(gè)步驟的工作結(jié)果寫成清晰的文檔,請(qǐng)用戶、客戶組織的負(fù)責(zé)人及評(píng)審組審查,以決定是否繼續(xù)這項(xiàng)工程及是否接受分析員推薦的方案。可行性研究報(bào)告的主要內(nèi)容:(1)引言(2)可行性研究前提(3)對(duì)現(xiàn)有系統(tǒng)的分析(4)所建議系統(tǒng)的技術(shù)可行性分析(5)所建議系統(tǒng)的經(jīng)濟(jì)可行性分析(6)社會(huì)因素可行性分析(7)其他可供選擇的方案(8)結(jié)論意見報(bào)告格式案例1案例2案例3案例4案例52.3系統(tǒng)流程圖系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪組成系統(tǒng)的每個(gè)部件(程序,文檔,數(shù)據(jù)庫,人工過程等)。系統(tǒng)流程圖表達(dá)的是數(shù)據(jù)在系統(tǒng)各部件之間流動(dòng)的情況,而不是對(duì)數(shù)據(jù)進(jìn)行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號(hào)和程序流程圖的符號(hào)形式相同,但是它卻是物理數(shù)據(jù)流圖而不是程序流程圖。2.3.1符號(hào)當(dāng)以概括的方式抽象地描繪一個(gè)實(shí)際系統(tǒng)時(shí),僅僅使用圖2.1中列出的基本符號(hào)就足夠了。圖中每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部件,然而并沒有指明每個(gè)部件的具體工作過程;圖中的箭頭確定了信息通過系統(tǒng)的邏輯路徑。2.3.1符號(hào)當(dāng)需要更具體地描繪一個(gè)物理系統(tǒng)時(shí)還需要使用圖2.2中列出的系統(tǒng)符號(hào),利用這些符號(hào)可以把一個(gè)廣義的輸入輸出操作具體化為讀寫存儲(chǔ)在特殊設(shè)備上的文件(或數(shù)據(jù)庫),把抽象處理具體化為特定的程序或手工操作等。系統(tǒng)流程圖的習(xí)慣畫法是使信息在圖中從頂向下或從左向右流動(dòng)。2.3.2例子某裝配廠有一座存放零件的倉庫,倉庫中現(xiàn)有的各種零件的數(shù)量以及每種零件的庫存量臨界值等數(shù)據(jù)記錄在庫存清單主文件中。當(dāng)倉庫中零件數(shù)量有變化時(shí),應(yīng)該及時(shí)修改庫存清單主文件,如果哪種零件的庫存量少于它的庫存量臨界值,則應(yīng)該報(bào)告給采購部門以便定貨,規(guī)定每天向采購部門送一次定貨報(bào)告。圖2.3庫存清單系統(tǒng)的系統(tǒng)流程圖該裝配廠使用一臺(tái)小型計(jì)算機(jī)處理更新庫存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。零件庫存量的每一次變化稱為一個(gè)事務(wù),由放在倉庫中的CRT終端輸入到計(jì)算機(jī)中;系統(tǒng)中的庫存清單程序?qū)κ聞?wù)進(jìn)行處理,更新存儲(chǔ)在磁盤上的庫存清單主文件,并且把必要的定貨信息寫在磁帶上。最后,每天由報(bào)告生成程序讀一次磁帶,并且打印出定貨報(bào)告舉例:《軟件設(shè)計(jì)師》試題

某公司將其生產(chǎn)的商品通過若干個(gè)銷售點(diǎn)進(jìn)行銷售。銷售點(diǎn)在收到商品后的規(guī)定時(shí)間內(nèi)把貨款匯給公司O流程圖描述了該公司發(fā)貨、收款、催款的處理過程。其中部分文件和單據(jù)的格式如下:商品文件:商品代號(hào),商品名稱,單價(jià)。銷售點(diǎn)文件:銷售點(diǎn)代號(hào),銷售點(diǎn)名稱,地址。發(fā)貨單:發(fā)貨日期,銷售點(diǎn)代號(hào),商品代號(hào),數(shù)量,金額。收款單:收款日期,銷售點(diǎn)代號(hào),商品代號(hào),數(shù)量,金額,該商品的發(fā)貨日期

處理1~3,把當(dāng)天的發(fā)貨單合并到發(fā)貨文件。處理4~6把當(dāng)天的收款單合并到收款文件。處理7在發(fā)貨文件中當(dāng)天己收款的記錄上加上已收款標(biāo)記。處理8和處理9在月末執(zhí)行一次,主要用于輸出月發(fā)貨報(bào)告、催款通知單、月收款報(bào)告。[問題1]詳細(xì)寫出流程圖中商品文件和銷售點(diǎn)文件對(duì)處理1的作用。

[問題2]說明處理8為何要寫發(fā)貨文件。[問題3]說明處理9除制作月收款報(bào)告外還對(duì)收款文件做什么操作。[問題4]為了提高處理效率,流程圖需作何改動(dòng)?《軟件設(shè)計(jì)師》試題1(P108):某公司將其生產(chǎn)的商品通過若干個(gè)銷售點(diǎn)進(jìn)行銷售。銷售點(diǎn)在收到商品后的規(guī)定時(shí)間內(nèi)把貨款匯給公司流程圖描述了該公司發(fā)貨、收款、催款的處理過程。其中部分文件和單據(jù)的格式如下:商品文件:商品代號(hào),商品名稱,單價(jià)。銷售點(diǎn)文件:銷售點(diǎn)代號(hào),銷售點(diǎn)名稱,地址。發(fā)貨單:發(fā)貨日期,銷售點(diǎn)代號(hào),商品代號(hào),數(shù)量,金額。收款單:收款日期,銷售點(diǎn)代號(hào),商品代號(hào),數(shù)量,金額,該商品的發(fā)貨日期。參考答案[問題1]檢查發(fā)貨單中非法銷售代號(hào)、非法商品代號(hào)、數(shù)量*單價(jià)#金額等錯(cuò)誤。[問題2]"刪除發(fā)貨文件中己做收款標(biāo)記的所有記錄"或"將未收到款的記錄重新組成新發(fā)貨文件"。[問題3]"刪除收款文件中的所有記錄"或"刪除已收到款的記錄"或"對(duì)收款文件初始化"。[問題4]把從收款文件到處理7的連線改成從日收款分類文件到處理7的連線。2.3.3分層面對(duì)復(fù)雜的系統(tǒng)時(shí),一個(gè)比較好的方法是分層次地描繪這個(gè)系統(tǒng)。首先用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,畫在單獨(dú)的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過程逐步深入地了解一個(gè)復(fù)雜的系統(tǒng)。2.4數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù),它描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過程中所經(jīng)受的變換。

在數(shù)據(jù)流圖中沒有任何具體的物理部件,它只是描繪數(shù)據(jù)在軟件中流動(dòng)和被處理的邏輯過程。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示,即使不是專業(yè)的計(jì)算機(jī)技術(shù)人員也容易理解它,因此是分析員與用戶之間極好的通信工具。

設(shè)計(jì)數(shù)據(jù)流圖時(shí)只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實(shí)現(xiàn)這些功能。2.4.1符號(hào)數(shù)據(jù)流圖有四種基本符號(hào):正方形(或立方體)表示數(shù)據(jù)的源點(diǎn)或終點(diǎn);圓角矩形(或圓形)代表變換數(shù)據(jù)的處理;開口矩形(或兩條平行橫線)代表數(shù)據(jù)存儲(chǔ);箭頭表示數(shù)據(jù)流,即特定數(shù)據(jù)的流動(dòng)方向。數(shù)據(jù)流與程序流程圖中用箭頭表示的控制流有本質(zhì)不同,千萬不要混淆。在數(shù)據(jù)流圖中應(yīng)該描繪所有可能的數(shù)據(jù)流向,而不應(yīng)該描繪出現(xiàn)某個(gè)數(shù)據(jù)流的條件。2.4.2例子假設(shè)一家工廠的采購部每天需要一張定貨報(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)某種零件的庫存數(shù)量少于庫存量臨界值時(shí)就應(yīng)該再次定貨。數(shù)據(jù)流圖有4種成分:源點(diǎn)或終點(diǎn),處理,數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)流。第一步可從問題描述中提取數(shù)據(jù)流圖的4種成分圖2.5定貨系統(tǒng)的基本系統(tǒng)模型圖2.6定貨系統(tǒng)的功能級(jí)數(shù)據(jù)流圖圖2.7把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖2.4.3命名數(shù)據(jù)流圖中每個(gè)成分的命名是否恰當(dāng),直接影響數(shù)據(jù)流圖的可理解性。因此,給這些成分起名字時(shí)應(yīng)該仔細(xì)推敲。下面講述在命名時(shí)應(yīng)注意的問題:1.為數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))命名(1)名字應(yīng)代表整個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))的內(nèi)容,而不是僅僅反映它的某些成分。(2)不要使用空洞的、缺乏具體含義的名字(如“數(shù)據(jù)”、“信息”、“輸入”之類)。(3)如果在為某個(gè)數(shù)據(jù)流(或數(shù)據(jù)存儲(chǔ))起名字時(shí)遇到了困難,則很可能是因?yàn)閷?duì)數(shù)據(jù)流圖分解不恰當(dāng)造成的,應(yīng)該試試重新分解,看是否能克服這個(gè)困難。(1)通常先為數(shù)據(jù)流命名,然后再為與之相關(guān)聯(lián)的處理命名。這樣命名比較容易,而且體現(xiàn)了人類習(xí)慣的“由表及里”的思考過程。(2)名字應(yīng)該反映整個(gè)處理的功能,而不是它的一部分功能。(3)名字最好由一個(gè)具體的及物動(dòng)詞加上一個(gè)具體的賓語組成。應(yīng)該盡量避免使用“加工”、“處理”等空洞籠統(tǒng)的動(dòng)詞作名字。(4)通常名字中僅包括一個(gè)動(dòng)詞,如果必須用兩個(gè)動(dòng)詞才能描述整個(gè)處理的功能,則把這個(gè)處理再分解成兩個(gè)處理可能更恰當(dāng)些。(5)如果在為某個(gè)處理命名時(shí)遇到困難,則很可能是發(fā)現(xiàn)了分解不當(dāng)?shù)嫩E象,應(yīng)考慮重新分解。2.為處理命名2.4.4用途畫數(shù)據(jù)流圖的基本目的是利用它作為交流信息的工具。分析員把他對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來,供有關(guān)人員審查確認(rèn)。由于在數(shù)據(jù)流圖中通常僅僅使用4種基本符號(hào),而且不包含任何有關(guān)物理實(shí)現(xiàn)的細(xì)節(jié),因此,絕大多數(shù)用戶都可以理解和評(píng)價(jià)它。

數(shù)據(jù)流圖應(yīng)該分層,并且在把功能級(jí)數(shù)據(jù)流圖細(xì)化后得到的處理超過9個(gè)時(shí),應(yīng)該采用畫分圖的辦法,也就是把每個(gè)主要功能都細(xì)化為一張數(shù)據(jù)流分圖,而原有的功能級(jí)數(shù)據(jù)流圖用來描繪系統(tǒng)的整體邏輯概貌。數(shù)據(jù)流圖的另一個(gè)主要用途是作為分析和設(shè)計(jì)的工具。分析員在研究現(xiàn)有的系統(tǒng)時(shí)常用系統(tǒng)流程圖表達(dá)他對(duì)這個(gè)系統(tǒng)的認(rèn)識(shí),這種描繪方法形象具體,比較容易驗(yàn)證它的正確性;但是,開發(fā)工程的目標(biāo)往往不是完全復(fù)制現(xiàn)有的系統(tǒng),而是創(chuàng)造一個(gè)能夠完成相同的或類似的功能的新系統(tǒng)。用系統(tǒng)流程圖描繪一個(gè)系統(tǒng)時(shí),系統(tǒng)的功能和實(shí)現(xiàn)每個(gè)功能的具體方案是混在一起的。因此,分析員希望以另一種方式進(jìn)一步總結(jié)現(xiàn)有的系統(tǒng),這種方式應(yīng)該著重描繪系統(tǒng)所完成的功能而不是系統(tǒng)的物理實(shí)現(xiàn)方案。數(shù)據(jù)流圖是實(shí)現(xiàn)這個(gè)目標(biāo)的極好手段。當(dāng)用數(shù)據(jù)流圖輔助物理系統(tǒng)的設(shè)計(jì)時(shí),以圖中不同處理的定時(shí)要求為指南,能夠在數(shù)據(jù)流圖上畫出許多組自動(dòng)化邊界,每組自動(dòng)化邊界可能意味著一個(gè)不同的物理系統(tǒng),因此可以根據(jù)系統(tǒng)的邏輯模型考慮系統(tǒng)的物理實(shí)現(xiàn)。例如,考慮圖2.7,事務(wù)隨時(shí)可能發(fā)生,因此處理1.1(“接收事務(wù)”)必須是聯(lián)機(jī)的;采購員每天需要一次定貨報(bào)表,因此處理2(“產(chǎn)生報(bào)表”)應(yīng)該以批量方式進(jìn)行。問題描述并沒有對(duì)其他處理施加限制,例如,可以聯(lián)機(jī)地接收事務(wù)并放入隊(duì)列中,然而更新庫存清單、處理定貨和產(chǎn)生報(bào)表以批量方式進(jìn)行(圖2.8)。當(dāng)然,這種方案需要增加一個(gè)數(shù)據(jù)存儲(chǔ)以存放事務(wù)數(shù)據(jù)。圖2.8這種劃分自動(dòng)化邊界的方法暗示

以批量方式更新庫存清單圖2.9另一種劃分自動(dòng)化邊界的方法建議

以聯(lián)機(jī)方式更新庫存清單2.5數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,也就是對(duì)數(shù)據(jù)流圖中包含的所有元素的定義的集合。任何字典最主要的用途都是供人查閱對(duì)不了解的條目的解釋,數(shù)據(jù)字典的作用也正是在軟件分析和設(shè)計(jì)的過程中給人提供關(guān)于數(shù)據(jù)的描述信息。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型,沒有數(shù)據(jù)字典數(shù)據(jù)流圖就不嚴(yán)格,然而沒有數(shù)據(jù)流圖數(shù)據(jù)字典也難于發(fā)揮作用。只有數(shù)據(jù)流圖和對(duì)數(shù)據(jù)流圖中每個(gè)元素的精確定義放在一起,才能共同構(gòu)成系統(tǒng)的規(guī)格說明。2.5.1數(shù)據(jù)字典的內(nèi)容一般說來,數(shù)據(jù)字典應(yīng)該由對(duì)下列4類元素的定義組成:(1)數(shù)據(jù)流(2)數(shù)據(jù)流分量(即數(shù)據(jù)元素)(3)數(shù)據(jù)存儲(chǔ)(4)處理但是,對(duì)數(shù)據(jù)處理的定義用其他工具(如IPO圖或PDL)描述更方便,因此本書中數(shù)據(jù)字典將主要由對(duì)數(shù)據(jù)的定義組成,這樣做可以使數(shù)據(jù)字典的內(nèi)容更單純,形式更統(tǒng)一。除了數(shù)據(jù)定義之外,數(shù)據(jù)字典中還應(yīng)該包含關(guān)于數(shù)據(jù)的一些其他信息。典型的情況是,在數(shù)據(jù)字典中記錄數(shù)據(jù)元素的下列信息:一般信息(名字,別名,描述等等),定義(數(shù)據(jù)類型,長度,結(jié)構(gòu)等等),使用特點(diǎn)(值的范圍,使用頻率,使用方式——輸入、輸出、本地,條件值等等),控制信息(來源,用戶,使用它的程序,改變權(quán),使用權(quán)等等)和分組信息(父結(jié)構(gòu),從屬結(jié)構(gòu),物理位置——記錄、文件和數(shù)據(jù)庫等等)。數(shù)據(jù)元素的別名就是該元素的其他等價(jià)的名字,出現(xiàn)別名主要有下述3個(gè)原因:(1)對(duì)于同樣的數(shù)據(jù),不同的用戶使用了不同的名字;(2)一個(gè)分析員在不同時(shí)期對(duì)同一個(gè)數(shù)據(jù)使用了不同的名字;(3)兩個(gè)分析員分別分析同一個(gè)數(shù)據(jù)流時(shí),使用了不同的名字。雖然應(yīng)該盡量減少出現(xiàn)別名,但是不可能完全消除別名。2.5.2定義數(shù)據(jù)的方法定義絕大多數(shù)復(fù)雜事物的方法,都是用被定義的事物的成分的某種組合表示這個(gè)事物,這些組成成分又由更低層的成分的組合來定義。從這個(gè)意義上說,定義就是自頂向下的分解,所以數(shù)據(jù)字典中的定義就是對(duì)數(shù)據(jù)自頂向下的分解。那么,應(yīng)該把數(shù)據(jù)分解到什么程度呢?一般說來,當(dāng)分解到不需要進(jìn)一步定義,每個(gè)和工程有關(guān)的人也都清楚其含義的元素時(shí),這種分解過程就完成了。由數(shù)據(jù)元素組成數(shù)據(jù)的方式只有下述三種基本類型:(1)順序即以確定次序連接兩個(gè)或多個(gè)分量;(2)選擇即從兩個(gè)或多個(gè)可能的元素中選取一個(gè);(3)重復(fù)即把指定的分量重復(fù)零次或多次。因此,可以使用上述3種關(guān)系算符定義數(shù)據(jù)字典中的任何條目。為了說明重復(fù)次數(shù),重復(fù)算符通常和重復(fù)次數(shù)的上下限同時(shí)使用(當(dāng)上下限相同時(shí)表示重復(fù)次數(shù)固定)。當(dāng)重復(fù)的上下限分別為1和0時(shí),可以用重復(fù)算符表示某個(gè)分量是可選的。但是,“可選”是由數(shù)據(jù)元素組成數(shù)據(jù)時(shí)一種常見的方式,把它單獨(dú)列為一種算符可以使數(shù)據(jù)字典更清晰一些。因此,增加了下述的第4種關(guān)系算符:(4)可選即一個(gè)分量是可有可無的(重復(fù)零次或一次)。雖然可以使用自然語言描述由數(shù)據(jù)元素組成數(shù)據(jù)的關(guān)系,但是為了更加清晰簡潔,建議采用下列符號(hào):=意思是等價(jià)于(或定義為);+意思是和(即,連接兩個(gè)分量);[]意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)),通常用“|”號(hào)隔開供選擇的分量;{}意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量);()意思是可選(即,圓括弧里的分量可有可無)。常常使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。一種注釋方法是在開括弧的左邊用上角標(biāo)和下角標(biāo)分別表明重復(fù)的上限和下限;另一種注釋方法是在開括弧左側(cè)標(biāo)明重復(fù)的下限,在閉括弧的右側(cè)標(biāo)明重復(fù)的上限。下面舉例說明上述定義數(shù)據(jù)的符號(hào)的使用方法:某程序設(shè)計(jì)語言規(guī)定,用戶說明的標(biāo)識(shí)符是長度不超過8個(gè)字符的字符串,其中第一個(gè)字符必須是字母字符,隨后的字符既可以是字母字符也可以是數(shù)字字符。使用上面講過的符號(hào),我們可以像下面那樣定義標(biāo)識(shí)符:標(biāo)識(shí)符=字母字符+字母數(shù)字串字母數(shù)字串=0{字母或數(shù)字}7字母或數(shù)字=[字母字符|數(shù)字字符]由于和項(xiàng)目有關(guān)的人都知道字母字符和數(shù)字字符的含義,因此,關(guān)于標(biāo)識(shí)符的定義分解到這種程度就可以結(jié)束了。2.5.3數(shù)據(jù)字典的用途數(shù)據(jù)字典最重要的用途是作為分析階段的工具。在數(shù)據(jù)字典中建立的一組嚴(yán)密一致的定義很有助于改進(jìn)分析員和用戶之間的通信,因此將消除許多可能的誤解。對(duì)數(shù)據(jù)的這一系列嚴(yán)密一致的定義也有助于改進(jìn)在不同的開發(fā)人員或不同的開發(fā)小組之間的通信。如果要求所有開發(fā)人員都根據(jù)公共的數(shù)據(jù)字典描述數(shù)據(jù)和設(shè)計(jì)模塊,則能避免許多麻煩的接口問題。數(shù)據(jù)字典中包含的每個(gè)數(shù)據(jù)元素的控制信息是很有價(jià)值的。因?yàn)榱谐隽耸褂靡粋€(gè)給定的數(shù)據(jù)元素的所有程序(或模塊),所以很容易估計(jì)改變一個(gè)數(shù)據(jù)將產(chǎn)生的影響,并且能對(duì)所有受影響的程序或模塊作出相應(yīng)的改變。最后,數(shù)據(jù)字典是開發(fā)數(shù)據(jù)庫的第一步,而且是很有價(jià)值的一步。2.5.4數(shù)據(jù)字典的實(shí)現(xiàn)目前,數(shù)據(jù)字典幾乎總是作為CASE“結(jié)構(gòu)化分析與設(shè)計(jì)工具”的一部分實(shí)現(xiàn)的。在開發(fā)大型軟件系統(tǒng)的過程中,數(shù)據(jù)字典的規(guī)模和復(fù)雜程度迅速增加,人工維護(hù)數(shù)據(jù)字典幾乎是不可能的。如果在開發(fā)小型軟件系統(tǒng)時(shí)暫時(shí)沒有數(shù)據(jù)字典處理程序,建議采用卡片形式書寫數(shù)據(jù)字典,每張卡片上保存描述一個(gè)數(shù)據(jù)的信息。這樣做更新和修改起來比較方便,而且能單獨(dú)處理描述每個(gè)數(shù)據(jù)的信息。每張卡片上主要應(yīng)該包含下述這樣一些信息:名字、別名、描述、定義、位置。數(shù)據(jù)字典卡片2.6成本/效益分析開發(fā)一個(gè)軟件系統(tǒng)是一種投資,期望將來獲得更大的經(jīng)濟(jì)效益。經(jīng)濟(jì)效益通常表現(xiàn)為減少運(yùn)行費(fèi)用或(和)增加收入。但是,投資開發(fā)新系統(tǒng)往往要冒一定風(fēng)險(xiǎn),系統(tǒng)的開發(fā)成本可能比預(yù)計(jì)的高,效益可能比預(yù)期的低。效益分析的目的正是要從經(jīng)濟(jì)角度分析開發(fā)一個(gè)特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負(fù)責(zé)人正確地作出是否投資于這項(xiàng)開發(fā)工程的決定。為了對(duì)比成本和效益,首先需要估計(jì)它們的數(shù)量。2.6.1成本估計(jì)

軟件開發(fā)成本主要表現(xiàn)為人力消耗(乘以平均工資則得到開發(fā)費(fèi)用)。成本估計(jì)不是精確的科學(xué),因此應(yīng)該使用幾種不同的估計(jì)技術(shù)以便相互校驗(yàn)。1.代碼行技術(shù)

一旦估計(jì)出源代碼行數(shù)以后,用每行代碼的平均成本乘以行數(shù)就可以確定軟件的成本。每行代碼的平均成本主要取決于軟件的復(fù)雜程度和工資水平。這種方法首先把軟件開發(fā)工程分解為若干個(gè)相對(duì)獨(dú)立的任務(wù)。再分別估計(jì)每個(gè)單獨(dú)的開發(fā)任務(wù)的成本,最后累加起來得出軟件開發(fā)工程的總成本。

估計(jì)每個(gè)任務(wù)的成本時(shí),通常先估計(jì)完成該項(xiàng)任務(wù)需要用的人力(以人月為單位),再乘以每人每月的平均工資而得出每個(gè)任務(wù)的成本。2.任務(wù)分解技術(shù)

采用自動(dòng)估計(jì)成本的軟件工具可以減輕人的勞動(dòng),并且使得估計(jì)的結(jié)果更客觀。但是,采用這種技術(shù)必須有長期搜集的大量歷史數(shù)據(jù)為基礎(chǔ),并且需要有良好的數(shù)據(jù)庫系統(tǒng)支持。3.自動(dòng)估計(jì)成本技術(shù)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)用。雖然許多系統(tǒng)在開發(fā)時(shí)預(yù)期生命周期長達(dá)10年以上,但是時(shí)間越長系統(tǒng)被廢棄的可能性也越大,為了保險(xiǎn)起見,以后在進(jìn)行成本/效益分析時(shí)一律假設(shè)生命周期為5年。應(yīng)該比較新系統(tǒng)的開發(fā)成本和經(jīng)濟(jì)效益,以便從經(jīng)濟(jì)角度判斷這個(gè)系統(tǒng)是否值得投資,但是,投資是現(xiàn)在進(jìn)行的,效益是將來獲得的,不能簡單地比較成本和效益,應(yīng)該考慮貨幣的時(shí)間價(jià)值。通常用利率的形式表示貨幣的時(shí)間價(jià)值。假設(shè)年利率為i,如果現(xiàn)在存入P元,則n年后可以得到的錢數(shù)為:F=P(1+i)n這也就是P元錢在n年后的價(jià)值。反之,如果n年后能收入F元錢,那么這些錢的現(xiàn)在價(jià)值是P=F/(1+i)n例如,修改一個(gè)已有的庫存清單系統(tǒng),使它能在每天送給采購員一份定貨報(bào)表。修改已有的庫存清單程序并且編寫產(chǎn)生報(bào)表的程序,估計(jì)共需5000元;系統(tǒng)修改后能及時(shí)定貨將消除零件短缺問題,估計(jì)因此每年可以節(jié)省2500元,5年共可節(jié)省12500元。但是,不能簡單地把5000元和12500元相比較,因?yàn)榍罢呤乾F(xiàn)在投資的錢,后者是若干年以后節(jié)省的錢。1.貨幣的時(shí)間價(jià)值假定年利率為12%,利用上面計(jì)算貨幣現(xiàn)在價(jià)值的公式可以算出修改庫存清單系統(tǒng)后每年預(yù)計(jì)節(jié)省的錢的現(xiàn)在價(jià)值,如表2.3所示。通常用投資回收期衡量一項(xiàng)開發(fā)工程的價(jià)值。所謂投資回收期就是使累計(jì)的經(jīng)濟(jì)效益等于最初投資所需要的時(shí)間。顯然,投資回收期越短就能越快獲得利潤,因此這項(xiàng)工程也就越值得投資。例如,修改庫存清單系統(tǒng)兩年以后可以節(jié)省4225.12元,比最初的投資(5000元)還少774.88元,第三年以后將再節(jié)省1779.45元。774.88/1779.4520.44,因此,投資回收期是2.44年。

投資回收期僅僅是一項(xiàng)經(jīng)濟(jì)指標(biāo),為了衡量一項(xiàng)開發(fā)工程的價(jià)值,還應(yīng)該考慮其他經(jīng)濟(jì)指標(biāo)。2.投資回收期衡量工程價(jià)值的另一項(xiàng)經(jīng)濟(jì)指標(biāo)是工程的純收入,也就是在整個(gè)生命周期之內(nèi)系統(tǒng)的累計(jì)經(jīng)濟(jì)效益(折合成現(xiàn)在值)與投資之差。這相當(dāng)于比較投資開發(fā)一個(gè)軟件系統(tǒng)和把錢存在銀行中(或貸給其他企業(yè))這兩種方案的優(yōu)劣。如果純收入為零,則工程的預(yù)期效益和在銀行存款一樣,但是開發(fā)一個(gè)系統(tǒng)要冒風(fēng)險(xiǎn),因此從經(jīng)濟(jì)觀點(diǎn)看這項(xiàng)工程可能是不值得投資的。如果純收入小于零,那么這項(xiàng)工

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論