版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章 可行性研究我們?cè)谧鋈魏喂ぷ饕郧?,必須明確工作的性質(zhì)、任務(wù)、制定完成任務(wù)的計(jì)劃。顯然完成一個(gè)軟件系統(tǒng)的開(kāi)發(fā),也應(yīng)解決好類(lèi)似的問(wèn)題。明確軟件開(kāi)發(fā)系統(tǒng)的任務(wù),完成任務(wù)的價(jià)值,制定出完成任務(wù)的計(jì)劃,是軟件系統(tǒng)可行性研究的目的。2.1 可行性研究2.1.1可行性研究的任務(wù)如果不限時(shí)間、不限資源、則任何研制項(xiàng)目都是可行的!然而在開(kāi)發(fā)以計(jì)算機(jī)為基礎(chǔ)的系統(tǒng)時(shí),需要用最小的代價(jià),在盡可能短的時(shí)間內(nèi)確定問(wèn)題是否能夠解決。這種可行性研究的目的是確定我們所研究的問(wèn)題是否值得去解,系統(tǒng)完成后所能帶來(lái)的效益是否大到值得投資開(kāi)發(fā)這個(gè)系統(tǒng)的程度。可行性研究的實(shí)質(zhì)就是要進(jìn)行一次壓縮,簡(jiǎn)化了的系統(tǒng)分析和設(shè)計(jì)的過(guò)程,也就是
2、在較高層次上以較抽象方式進(jìn)行系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過(guò)程,可行性研究應(yīng)著重考慮如下五個(gè)方面。1.技術(shù)可行性。是指使用現(xiàn)有的技術(shù)能否實(shí)現(xiàn)這個(gè)系統(tǒng)。它包括開(kāi)發(fā)風(fēng)險(xiǎn)在限制條件范圍內(nèi)達(dá)到必需的功能與性能;資源配置指現(xiàn)有的技術(shù)人員是否勝任,開(kāi)發(fā)系統(tǒng)的軟、硬件資源是否能如期得到;技術(shù)指現(xiàn)有的技術(shù)是否已發(fā)展到這樣的水平,能夠支持系統(tǒng)的研制。2.經(jīng)濟(jì)可行性。指新系統(tǒng)的經(jīng)濟(jì)效益能否超過(guò)開(kāi)發(fā)成本。包括評(píng)價(jià)經(jīng)濟(jì)的合理性,權(quán)衡支出的費(fèi)用和收到的利益,正確估計(jì)開(kāi)發(fā)費(fèi)用以及最終從所開(kāi)發(fā)的系統(tǒng)獲得的收入和利益。其中經(jīng)濟(jì)的合理性包括成本/效益分析,長(zhǎng)期的總體的經(jīng)營(yíng)策略,對(duì)其他獲利中心或獲利產(chǎn)品的影響,開(kāi)發(fā)工作需用資源的購(gòu)置費(fèi)用、
3、潛在的市場(chǎng)等等。3.運(yùn)行可行性。指為新系統(tǒng)規(guī)定的運(yùn)行方式是否可行。如果新系統(tǒng)是建立在原來(lái)已擔(dān)負(fù)其他任務(wù)的計(jì)算機(jī)系統(tǒng)上,就不能要求它在實(shí)時(shí)在線狀態(tài)下運(yùn)行,以免與原有的任務(wù)相矛盾。 4.操作可行性。指系統(tǒng)的操作方式在這個(gè)用戶組織內(nèi)是否行得通。它包括人事政策,科技政策和必要的管理措施。5.法律可行性。指新系統(tǒng)的開(kāi)發(fā)是否會(huì)侵犯他人、集體或國(guó)家的利益,是否違反了國(guó)家的法律,并由此而承擔(dān)法律責(zé)任??尚行匝芯坎⒉槐WC一個(gè)系統(tǒng)經(jīng)濟(jì)上明顯合理、技術(shù)風(fēng)險(xiǎn)低,很少法律問(wèn)題,而且不存在其他合理方案。然而,我們之所以要進(jìn)行可行性研究,其目的是對(duì)以后的行動(dòng)方針提出建議。如果問(wèn)題沒(méi)有可行的解,那么分析員應(yīng)該建議停止這項(xiàng)開(kāi)發(fā)
4、工程,以避免時(shí)間、資源、人力和金錢(qián)的浪費(fèi)。如果問(wèn)題值得解,那么分析員應(yīng)該推薦一個(gè)較好的解決方案,并為工程制定一個(gè)初步計(jì)劃??尚行匝芯啃枰臅r(shí)間長(zhǎng)短取決于系統(tǒng)的規(guī)模。一般來(lái)說(shuō),可行性研究的成本只是預(yù)期工程總成本的510%。2.1.2 可行性研究的步驟1.復(fù)查系統(tǒng)規(guī)模和目標(biāo)。要仔細(xì)閱讀和分析分析員在問(wèn)題定義階段書(shū)寫(xiě)的關(guān)于系統(tǒng)目標(biāo)和規(guī)模的報(bào)告書(shū),確定報(bào)告書(shū)的內(nèi)容,修改不確切的敘述,清晰地描述對(duì)目標(biāo)系統(tǒng)的一切限制和約束,確保分析員提交的報(bào)告書(shū)確實(shí)是用戶要求解決的問(wèn)題。2.研究現(xiàn)有的系統(tǒng)?,F(xiàn)有系統(tǒng)是信息的重要來(lái)源,現(xiàn)有系統(tǒng)要完成的工作,就是新系統(tǒng)所必須具備的功能?,F(xiàn)有系統(tǒng)存在的缺點(diǎn),新系統(tǒng)必須加以改進(jìn)。
5、現(xiàn)有系統(tǒng)所不具備的功能,又是用戶必須的,則新系統(tǒng)一定要預(yù)以增加?,F(xiàn)有系統(tǒng)所需要的費(fèi)用是新系統(tǒng)的一個(gè)重要的投資依據(jù)。這樣的調(diào)查研究,是了解一個(gè)陌生應(yīng)用領(lǐng)域的最快方法。既可以使新系統(tǒng)脫胎而生,又不全盤(pán)照抄。另外還要注意現(xiàn)有系統(tǒng)與其他系統(tǒng)之間的通信接口,這是新系統(tǒng)設(shè)計(jì)的重要約束條件。3.導(dǎo)出新系統(tǒng)的高層邏輯模型。軟件工程設(shè)計(jì)總是從現(xiàn)有的物理系統(tǒng)出發(fā),導(dǎo)出現(xiàn)有物理系統(tǒng)的邏輯模型;再以現(xiàn)有物理系統(tǒng)的邏輯模型為基礎(chǔ),設(shè)計(jì)出新系統(tǒng)的高層邏輯模型;最后根據(jù)高層邏輯模型建造新的物理系統(tǒng)。依據(jù)新系統(tǒng)的功能和約束條件,我們可以使用數(shù)據(jù)流圖(DFD圖)來(lái)描繪數(shù)據(jù)在系統(tǒng)中流動(dòng)和處理的情況,使用數(shù)據(jù)字典來(lái)定義系統(tǒng)中使用的
6、數(shù)據(jù),從而完成新系統(tǒng)的邏輯模型。至于物理系統(tǒng)采用系統(tǒng)流程圖來(lái)表示。4.重新定義問(wèn)題。新系統(tǒng)的邏輯模型是否能滿足用戶的要求,分析員和用戶應(yīng)該一起進(jìn)行復(fù)審。復(fù)審以數(shù)據(jù)流圖和數(shù)據(jù)字典為依據(jù),對(duì)問(wèn)題的定義、工程模型和目標(biāo)進(jìn)行審查。如果有分岐和遺漏等問(wèn)題,應(yīng)立即進(jìn)行改正。上述可行性研究步驟實(shí)質(zhì)上是一個(gè)循環(huán),即定義系統(tǒng)目標(biāo)復(fù)查系統(tǒng)目標(biāo)和規(guī)模研究現(xiàn)有系統(tǒng)設(shè)計(jì)新系統(tǒng)再定義系統(tǒng)目標(biāo)。重復(fù)這個(gè)循環(huán)過(guò)程,直到提出的新系統(tǒng)邏輯模型完全符合系統(tǒng)目標(biāo)和規(guī)模為止。5.提出供選擇的方案。從系統(tǒng)的邏輯模型出發(fā),以系統(tǒng)要求為目標(biāo),利用在數(shù)據(jù)流圖上劃分自動(dòng)化邊界的方法,我們可以提出若干種較高層次的物理解法供用戶選擇。針對(duì)多種供選方
7、案,用戶應(yīng)從如下三個(gè)方面進(jìn)行篩選:(1) 從技術(shù)角度排除那些不現(xiàn)實(shí)的方案;(2) 從操作角度去掉那些操作方式或操作過(guò)程用戶不能接受的方案;(3) 從經(jīng)濟(jì)角度估算每個(gè)可能系統(tǒng)的成本/效益。一般來(lái)說(shuō),只有投資預(yù)計(jì)能帶來(lái)利潤(rùn)的系統(tǒng)才值得開(kāi)發(fā)。只有在技術(shù)、操作經(jīng)濟(jì)等方面都可行的系統(tǒng),我們才為其制定實(shí)現(xiàn)進(jìn)度表。此進(jìn)度表不需要很詳細(xì),只是要估計(jì)生存周期每個(gè)階段的工作量。6.推薦建議方案。在對(duì)上一步提出的各種可行方案的分析、比較的基礎(chǔ)上,向用戶提出推薦的方案,在推薦方案中應(yīng)清楚地表明(1) 本項(xiàng)目的開(kāi)發(fā)價(jià)值;(2) 推薦這個(gè)方案的理由;(3) 制定實(shí)現(xiàn)項(xiàng)目的進(jìn)度表。7.決策。使用部門(mén)的負(fù)責(zé)人根據(jù)經(jīng)濟(jì)實(shí)力及分
8、析員在可行性研究階段對(duì)開(kāi)發(fā)此項(xiàng)工程成本/效益情況的分析結(jié)論,決定是否繼續(xù)這項(xiàng)開(kāi)發(fā)工程。8.制定開(kāi)發(fā)計(jì)劃。分析員應(yīng)為推薦的系統(tǒng)制定一份開(kāi)發(fā)計(jì)劃,它包括工程的進(jìn)度、人材資源的需求及使用、設(shè)備資源的需求及使用(軟、硬件工具)、估算生存周期每個(gè)階段的成本等,最后給出下一階段(需求分析)的詳細(xì)進(jìn)度表和成本估計(jì)。9.書(shū)寫(xiě)文檔提交審查。把上述可行性研究各個(gè)步驟的結(jié)果寫(xiě)成清晰的文檔,請(qǐng)用戶和使用部門(mén)的負(fù)責(zé)人仔細(xì)審查,也可以召開(kāi)論證會(huì)。論證會(huì)成員由用戶、使用部門(mén)負(fù)責(zé)人及有關(guān)方面的專(zhuān)家組成,負(fù)責(zé)對(duì)提出的方案進(jìn)行論證,最后由論證會(huì)成員簽署意見(jiàn),指明該開(kāi)發(fā)計(jì)劃是否通過(guò)。2.1.3 可行性論證報(bào)告的主要內(nèi)容1.系統(tǒng)概述
9、。是對(duì)問(wèn)題的簡(jiǎn)單陳述,包括系統(tǒng)的開(kāi)發(fā)目的、目標(biāo)、業(yè)務(wù)對(duì)象和范圍,新系統(tǒng)和它的各子系統(tǒng)的功能與特性,新系統(tǒng)與當(dāng)前系統(tǒng)的比較,所需資源以及費(fèi)用和進(jìn)度的概況等。2.可行性分析。這是報(bào)告的主體部分,包括新系統(tǒng)在經(jīng)濟(jì)上、技術(shù)上、操作上、運(yùn)行上、法律上的可行性,以及對(duì)新系統(tǒng)的主客觀條件的分析。若存在多種方案,則應(yīng)對(duì)各種方案進(jìn)行比較,指明推薦的方案。3.限制。指對(duì)系統(tǒng)開(kāi)發(fā)有影響的管理方面和技術(shù)方面的限制,包括項(xiàng)目的外部環(huán)境、接口、設(shè)計(jì)與實(shí)現(xiàn)、資源、費(fèi)用或進(jìn)度等。4.費(fèi)用。估算軟、硬件費(fèi)用,制定出費(fèi)用限額并注明。5.擬定開(kāi)發(fā)計(jì)劃。它包括工程進(jìn)度表,人員配備情況,資源配備情況,估算出每個(gè)階段的成本、約束條件等。
10、6.結(jié)論意見(jiàn)。綜上分析,說(shuō)明新系統(tǒng)是否可行,其結(jié)論分為以下三類(lèi):(1) 可立即進(jìn)行;(2) 推遲進(jìn)行;(3) 不能或不值得進(jìn)行。2.2 系統(tǒng)流程圖系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號(hào)以黑盒子形式描繪系統(tǒng)里面的每個(gè)部件。包括程序、文件、數(shù)據(jù)庫(kù)和各種表格、人工過(guò)程等。它表達(dá)了信息在系統(tǒng)各部件之間的流動(dòng)情況。請(qǐng)讀者注意它與程序流程圖之間的區(qū)別。2.2.1 符號(hào)國(guó)家標(biāo)準(zhǔn)(GB1526-89)信息處理數(shù)據(jù)流程圖、程序流程圖、系統(tǒng)流程圖、程序網(wǎng)絡(luò)圖和系統(tǒng)資源圖的文件編制符號(hào)及約定為我們推薦了一套標(biāo)準(zhǔn)符號(hào)和使用約定。該標(biāo)準(zhǔn)是與國(guó)際標(biāo)準(zhǔn)化組織公布的標(biāo)準(zhǔn)ISO5807-85 Inform
11、ation processing documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts相一致。系統(tǒng)流程圖含有5種基本符號(hào),如圖2-1所示。11種系統(tǒng)符號(hào)如圖2-2所示。符號(hào) 名稱(chēng) 說(shuō)明處理 能改變數(shù)據(jù)值或數(shù)據(jù)位置的加工或部件,例如,程序、處理機(jī)、人工加工等都是處理。輸入/輸出 表示輸入或輸出(或既輸入又輸出),是一個(gè)廣義的不指明具體設(shè)備的符號(hào)。連接 指出轉(zhuǎn)到圖的另一部分或從圖的另一部分轉(zhuǎn)來(lái),
12、通常在同一頁(yè)上。換頁(yè)連接 指出轉(zhuǎn)到另一頁(yè)圖上或由另一頁(yè)圖轉(zhuǎn)來(lái)。數(shù)據(jù)流 用來(lái)連接其他符號(hào),指明數(shù)據(jù)流動(dòng)方向。圖2-1 基本符號(hào)符號(hào) 名稱(chēng) 說(shuō)明穿孔卡片 表示用穿孔卡片輸入或輸出,也可表示一個(gè)穿孔卡片文件。文 檔 通常表示打印輸出,也可表示用打印終端輸入數(shù)據(jù)。磁 帶 磁帶輸入/輸出,或表示一個(gè)磁帶文件。聯(lián)機(jī)存儲(chǔ) 表示任何種類(lèi)的聯(lián)機(jī)存儲(chǔ),包括磁盤(pán)、磁鼓、軟盤(pán)和海量存儲(chǔ)器件等。磁 盤(pán) 磁盤(pán)輸入/輸出,也可表示存儲(chǔ)在磁盤(pán)上的文件或數(shù)據(jù)庫(kù)。磁 鼓 磁鼓輸入/輸出,也可表示存儲(chǔ)在磁鼓上的文件或數(shù)據(jù)庫(kù)。顯 示 CRT終端或類(lèi)似的顯示部件,可用于輸入或輸出,也可既輸入又輸出。人工輸入 人工輸入數(shù)據(jù)的脫機(jī)處理,例
13、如,填寫(xiě)表格。人工操作 人工完成的處理,例如,會(huì)計(jì)在工資支票上簽名。輔助操作 使用設(shè)備進(jìn)行的脫機(jī)操作。通信鏈路 通過(guò)遠(yuǎn)程通信線路或鏈路傳送數(shù)據(jù)。圖2-2 系統(tǒng)符號(hào)2.2.2 應(yīng)用系統(tǒng)流程圖是一種極好的設(shè)計(jì)工具,它有助于開(kāi)發(fā)人員和用戶交流信息,利用系統(tǒng)的每個(gè)具體物理元素可以更準(zhǔn)確地估計(jì)成本和制定系統(tǒng)的開(kāi)發(fā)進(jìn)度。下面通過(guò)例子來(lái)說(shuō)明系統(tǒng)流程圖的使用。例 某工廠有一座零件倉(cāng)庫(kù),倉(cāng)庫(kù)中現(xiàn)有各種零件的數(shù)量以及每種零件的庫(kù)存量臨界值等數(shù)據(jù)記錄在庫(kù)存清單主文件中。當(dāng)倉(cāng)庫(kù)中零件數(shù)量發(fā)生變化時(shí),應(yīng)及時(shí)修改庫(kù)存清單主文件。當(dāng)某種零件的庫(kù)存量少于它的庫(kù)存量臨界值時(shí),則應(yīng)報(bào)告給采購(gòu)部門(mén)以便定貨。規(guī)定每天向采購(gòu)部門(mén)送一次
14、定貨報(bào)告。工廠使用一臺(tái)微機(jī)處理更新庫(kù)存清單主文件和產(chǎn)生定貨報(bào)告的任務(wù)。倉(cāng)庫(kù)中的每一項(xiàng)業(yè)務(wù)都通過(guò)CRT終端輸入到計(jì)算機(jī)中。系統(tǒng)中的庫(kù)存清單程序負(fù)責(zé)對(duì)事務(wù)進(jìn)行處理,更新存儲(chǔ)在磁盤(pán)上的庫(kù)存清單主文件,把必要的定貨信息寫(xiě)在磁帶上。每天由報(bào)告生成程序讀一次磁帶,生成并打印出定貨報(bào)告。如圖2-3所示。圖中的箭頭確定了信息流動(dòng)的途徑,對(duì)于復(fù)雜的系統(tǒng),可以采用分層描述的方法來(lái)描繪整個(gè)系統(tǒng)。用一張高層次的系統(tǒng)流程圖描繪系統(tǒng)總體概貌,然后分別把每個(gè)關(guān)鍵功能擴(kuò)展到適當(dāng)?shù)脑敿?xì)程度,便于閱讀者按照從抽象到具體的過(guò)程逐步深入地了解一個(gè)復(fù)雜系統(tǒng)。圖2-3 庫(kù)存清單系統(tǒng)的系統(tǒng)流程圖HT2.3 數(shù)據(jù)流圖數(shù)據(jù)流圖簡(jiǎn)稱(chēng)DFD(Da
15、ta Flow Diagram)圖,它是描述數(shù)據(jù)處理過(guò)程的有力工具。數(shù)據(jù)流圖從數(shù)據(jù)傳送、加工的角度,以圖形方式刻畫(huà)數(shù)據(jù)處理系統(tǒng)的工作狀況。數(shù)據(jù)流圖描繪系統(tǒng)的邏輯模型,它是一種極好的通信工具。2.3.1 符號(hào)數(shù)據(jù)流圖有四種基本符號(hào),如圖2-4(a)所示。有六種附加符號(hào),如圖2-4(b)所示。數(shù)據(jù)的源點(diǎn)/終點(diǎn)表示該系統(tǒng)數(shù)據(jù)的外部來(lái)源或去處,不受系統(tǒng)控制,是系統(tǒng)以外的人或事物。例如,倉(cāng)庫(kù)的管理員、工廠的采購(gòu)員、供貨單位、售票處等。也可以是另外一個(gè)數(shù)據(jù)處理系統(tǒng)向該系統(tǒng)提供數(shù)據(jù)或接收該系統(tǒng)向它發(fā)出的數(shù)據(jù)。加工(處理)并不一定是一個(gè)程序,它可以代表一系列程序,單個(gè)程序或者程序的一個(gè)模塊,也可以代表用穿孔機(jī)
16、穿孔或目視檢查數(shù)據(jù)正確性等人工處理過(guò)程。數(shù)據(jù)存儲(chǔ)不是指數(shù)據(jù)保存的物理地點(diǎn)或物理存儲(chǔ)介質(zhì),而是對(duì)數(shù)據(jù)存儲(chǔ)的邏輯描述。數(shù)據(jù)存儲(chǔ)并不等同于一個(gè)文件,它可以表示一個(gè)文件,文件的一部分,數(shù)據(jù)庫(kù)的元素或記錄的一部分等等。數(shù)據(jù)可以存儲(chǔ)在磁盤(pán)、磁帶、主存、微縮膠片等介質(zhì)上。數(shù)據(jù)存儲(chǔ)有四種形式,即把一個(gè)數(shù)據(jù)存入數(shù)據(jù)存儲(chǔ);用一個(gè)數(shù)據(jù)去修改數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù);從數(shù)據(jù)存儲(chǔ)中讀出一個(gè)數(shù)據(jù);從數(shù)據(jù)存儲(chǔ)中檢索出一批數(shù)據(jù)。圖2-4 數(shù)據(jù)流圖的符號(hào)數(shù)據(jù)流表示數(shù)據(jù)在系統(tǒng)中的流動(dòng)方向,一般分單向數(shù)據(jù)流和雙向數(shù)據(jù)流兩種。它可以由某一個(gè)外部項(xiàng)產(chǎn)生,也可以由某一個(gè)處理邏輯產(chǎn)生,還可以來(lái)自某一個(gè)數(shù)據(jù)存儲(chǔ)。附加符號(hào)中的星號(hào)(*)表示數(shù)據(jù)流之間
17、是“與”關(guān)系;加號(hào)(+)表示數(shù)據(jù)流之間是“或”關(guān)系;符號(hào)表示只能從數(shù)據(jù)流中選一個(gè)(互斥關(guān)系)。2.3.2 應(yīng)用舉例例1 一家工廠的采購(gòu)部每天需要一張定貨報(bào)表,報(bào)表按零件編號(hào)排序,列出所有需要再次定貨的零件。對(duì)于需要訂貨的零件列出其零件編號(hào)、零件名稱(chēng)、定貨數(shù)量、單價(jià)、供應(yīng)者。零件入庫(kù)或出庫(kù)稱(chēng)為事務(wù),通過(guò)放在倉(cāng)庫(kù)中的CRT終端把事務(wù)報(bào)告給定貨系統(tǒng)。當(dāng)某種零件的庫(kù)存量少于臨界值時(shí)就應(yīng)該再次定貨。下面用軟件工程的方法畫(huà)出該系統(tǒng)的數(shù)據(jù)流圖。 分析過(guò)程如下:第一步首先確定系統(tǒng)的源點(diǎn)和終點(diǎn),本題倉(cāng)庫(kù)管理員是數(shù)據(jù)的源點(diǎn),采購(gòu)員是數(shù)據(jù)的終點(diǎn)。其次是加工(處理),本題應(yīng)該完成定貨系統(tǒng)這樣一個(gè)功能。最后考慮數(shù)據(jù)流,
18、事務(wù)需從倉(cāng)庫(kù)送到系統(tǒng)中,顯然事務(wù)是一個(gè)數(shù)據(jù)流;系統(tǒng)要把定貨報(bào)表送給采購(gòu)部,定貨報(bào)表也是一個(gè)數(shù)據(jù)流。依據(jù)以上三點(diǎn)我們畫(huà)出定貨系統(tǒng)的基本數(shù)據(jù)流圖,如圖2-5所示。圖2-5定貨系統(tǒng)基本數(shù)據(jù)流圖第二步首先將加工(處理)定貨系統(tǒng)進(jìn)行功能分解,變成事務(wù)處理和產(chǎn)生報(bào)表兩部分。其次要考慮有關(guān)數(shù)據(jù)的存儲(chǔ)問(wèn)題,在本題中涉及到存儲(chǔ)的信息有:庫(kù)存清單、定貨信息。依據(jù)圖2-5和以上兩點(diǎn),我們畫(huà)出定貨系統(tǒng)功能級(jí)數(shù)據(jù)流圖,見(jiàn)圖2-6所示。圖2-6定貨系統(tǒng)功能級(jí)數(shù)據(jù)流圖第三步將事務(wù)處理進(jìn)一步分解為接收事務(wù),更新庫(kù)存清單、處理定貨三部分。依據(jù)本分析和圖2-6我們可以畫(huà)出定貨系統(tǒng)功能分解后的數(shù)據(jù)流圖。見(jiàn)圖2-7所示。其中1.1、
19、1.2、1.3是圖2-6中功能1的分解編號(hào)。圖2-7定貨系統(tǒng)功能分解后的數(shù)據(jù)流圖例2 銀行取款系統(tǒng)的數(shù)據(jù)流圖(活期儲(chǔ)蓄)。分析過(guò)程如下:第一步源點(diǎn)和終點(diǎn)都是儲(chǔ)戶。加工(處理)是完成取款的功能。數(shù)據(jù)流是取款單、存折、現(xiàn)款。依據(jù)以上三點(diǎn)畫(huà)出銀行取款系統(tǒng)的基本數(shù)據(jù)流圖,如圖2-8所示。圖2-8取款系統(tǒng)基本數(shù)據(jù)流圖第二步取款工作實(shí)際上是由儲(chǔ)戶資格審查、登錄、付款三部分組成。數(shù)據(jù)存儲(chǔ)部分涉及儲(chǔ)戶的帳卡和存折上數(shù)據(jù)的更新。依據(jù)圖2-8及以上二點(diǎn)分析,我們可以畫(huà)出取款系統(tǒng)的功能級(jí)數(shù)據(jù)流圖,如圖2-9所示。圖2-9取款系統(tǒng)功能級(jí)數(shù)據(jù)流圖讀者可以根據(jù)自己的需要,將圖2-9進(jìn)一步細(xì)化,本書(shū)不再給出分解后的數(shù)據(jù)流圖
20、。例3 病員監(jiān)視系統(tǒng)的數(shù)據(jù)流圖。該系統(tǒng)監(jiān)視病房中的每個(gè)病人的重要病情信號(hào),更新及管理病人的病歷,若出現(xiàn)問(wèn)題立即通知護(hù)理人員,并且在需要時(shí)給出某一病人的有關(guān)報(bào)告。分析過(guò)程如下:第一步源點(diǎn)來(lái)自于病人本身或護(hù)士。終點(diǎn)是護(hù)士,因?yàn)橐磺袌?bào)告和告警信息應(yīng)匯集到護(hù)士處。加工(處理)是病員監(jiān)視系統(tǒng)。數(shù)據(jù)流包括病情信號(hào)、報(bào)告、告警信息和要求報(bào)告。數(shù)據(jù)存儲(chǔ)是指病員病歷。依據(jù)以上分析,我們畫(huà)出病員監(jiān)視系統(tǒng)的基本數(shù)據(jù)流圖,如圖2-10所示。圖2-10病員監(jiān)視系統(tǒng)基本數(shù)據(jù)流圖第二步對(duì)系統(tǒng)分析后,劃分出四種功能,即通過(guò)一個(gè)床邊監(jiān)視器實(shí)現(xiàn)本地監(jiān)視,在護(hù)士辦公室實(shí)現(xiàn)中央監(jiān)視,病人病歷的更新,護(hù)士辦公室提出報(bào)告。依據(jù)圖2-10
21、和以上分析,我們畫(huà)出病員監(jiān)視系統(tǒng)功能級(jí)數(shù)據(jù)流圖,如圖2-11所示。圖2-11病員監(jiān)視系統(tǒng)功能級(jí)數(shù)據(jù)流圖第三步將中央監(jiān)視系統(tǒng)劃分為四個(gè)處理部分,包括分解病員信號(hào),檢查是否超出界限,產(chǎn)生告警信息,整理病員數(shù)據(jù)。依據(jù)圖2-11和本次功能分解,我們可以畫(huà)出病員監(jiān)視系統(tǒng)功能分解后的數(shù)據(jù)流圖,如圖2-12所示。圖2-12病員監(jiān)視系統(tǒng)功能分解后的數(shù)據(jù)流圖2.3.3 畫(huà)數(shù)據(jù)流圖的原則1.確定系統(tǒng)的源點(diǎn)和終點(diǎn),對(duì)于數(shù)據(jù)流圖而言它是系統(tǒng)的外部項(xiàng)。2.確定系統(tǒng)的輸入和輸出數(shù)據(jù)流。隨著加工(處理)的細(xì)化,功能也就越來(lái)越具體,數(shù)據(jù)流也就越來(lái)越多,輸入和輸出也會(huì)相應(yīng)地增加,但要保持分解前后輸入/輸出數(shù)據(jù)流必須相同。3.用
22、“自頂向下”的方法,逐層畫(huà)出數(shù)據(jù)流圖。每張數(shù)據(jù)流圖中加工(處理)的個(gè)數(shù)不能超過(guò)9個(gè)。4.將必要的存儲(chǔ)與加工(處理)相匹配。5.在畫(huà)數(shù)據(jù)流圖時(shí)應(yīng)避免線條交叉,必要時(shí)可使用重復(fù)的外部項(xiàng)(源點(diǎn)或終點(diǎn))或數(shù)據(jù)存儲(chǔ)符號(hào)。6.畫(huà)出出錯(cuò)及例外條件處理情況。2.3.4 數(shù)據(jù)流圖的用途1.作為交流信息的工具。系統(tǒng)分析人員把他對(duì)系統(tǒng)的認(rèn)識(shí)或?qū)δ繕?biāo)系統(tǒng)的設(shè)想用數(shù)據(jù)流圖描繪出來(lái),供有關(guān)人員審查確認(rèn)。由于數(shù)據(jù)流圖中使用的符號(hào)不含任何物理實(shí)現(xiàn)細(xì)節(jié),所以大多數(shù)用戶都可以理解和評(píng)價(jià)它。2.作為分析和設(shè)計(jì)的工具。分析員在研究現(xiàn)有的系統(tǒng),描繪其功能時(shí)常用數(shù)據(jù)流圖表達(dá)他們對(duì)現(xiàn)有系統(tǒng)的認(rèn)識(shí),這種描繪方法形象、具體,它不同于系統(tǒng)流程圖
23、,使系統(tǒng)的功能和實(shí)現(xiàn)每個(gè)功能的具體方案區(qū)別開(kāi)來(lái)。3.數(shù)據(jù)流圖可以輔助物理系統(tǒng)的設(shè)計(jì)。在數(shù)據(jù)流圖上依據(jù)不同處理的定時(shí)要求,可以畫(huà)出許多組自動(dòng)化邊界,每組自動(dòng)化邊界就是一個(gè)不同的物理系統(tǒng)。例題1中的圖2-7,由于自動(dòng)化邊界的劃分方法不同,產(chǎn)生了兩種不同的物理系統(tǒng),即批處理方式和聯(lián)機(jī)方式,見(jiàn)圖2-13、2-14所示。4.數(shù)據(jù)流圖對(duì)詳細(xì)設(shè)計(jì)也有幫助,它是面向數(shù)據(jù)流設(shè)計(jì)(SD)方法的基礎(chǔ)。圖2-13這種劃分自動(dòng)化邊界的方法暗示以批量方式更新庫(kù)存清單圖2-14另一種劃分自動(dòng)化邊界的方法暗示以聯(lián)機(jī)方式更新庫(kù)存清單2.4數(shù)據(jù)字典數(shù)據(jù)字典是對(duì)數(shù)據(jù)流圖中包含的所有元素定義的集合,即對(duì)數(shù)據(jù)流圖中出現(xiàn)的所有名子(數(shù)據(jù)
24、流、文件、數(shù)據(jù)單項(xiàng)、基本加工)進(jìn)行定義。它的主要用途是供人們查閱對(duì)不了解條目的解釋?zhuān)谲浖治龊驮O(shè)計(jì)過(guò)程中給人提供關(guān)于數(shù)據(jù)的描述信息。數(shù)據(jù)流圖和數(shù)據(jù)字典共同構(gòu)成系統(tǒng)的邏輯模型。數(shù)據(jù)流圖描述了系統(tǒng)的“分解”,它表明系統(tǒng)由哪些部分組成。數(shù)據(jù)字典則為數(shù)據(jù)流圖中出現(xiàn)的每一部分都給出“嚴(yán)格定義”,二者的有機(jī)配合,完整地描述了系統(tǒng)。2.4.1 數(shù)據(jù)字典的內(nèi)容及定義方法一般來(lái)說(shuō),數(shù)據(jù)字典應(yīng)該由如下四類(lèi)元素組成,它們是數(shù)據(jù)流、文件、數(shù)據(jù)單項(xiàng)、基本加工(處理)。在組成數(shù)據(jù)字典時(shí),要注意避免冗余,遵循有關(guān)數(shù)據(jù)流向在數(shù)據(jù)流圖中描述,有關(guān)數(shù)據(jù)的組成在數(shù)據(jù)字典中描述,有關(guān)數(shù)據(jù)的加工細(xì)節(jié)在數(shù)據(jù)字典中描述的三原則。要盡量避
25、免遺漏,如果確有遺漏發(fā)生,應(yīng)該補(bǔ)充,這對(duì)于設(shè)計(jì)、編碼、調(diào)試、維護(hù)會(huì)帶來(lái)方便。同時(shí)應(yīng)及時(shí)溝通,設(shè)法消除不一致性,減少別名的出現(xiàn)。1.數(shù)據(jù)流數(shù)據(jù)流通常有一個(gè)名字,它是由一組數(shù)據(jù)項(xiàng)組成的。數(shù)據(jù)流可以從加工流向加工,也可以從源點(diǎn)流向加工,或從加工流向終點(diǎn)。數(shù)據(jù)流還可以從加工流向文件,或從文件流向加工。任意兩者之間可有一股或多股數(shù)據(jù)流,同一數(shù)據(jù)流圖上不能有兩股數(shù)據(jù)流同名。描述數(shù)據(jù)流時(shí),要用到下述符號(hào):=表示等價(jià)于(或定義為);+表示與;表示或; 表示重復(fù);( )表示選擇;mn表示界域。例如 運(yùn)動(dòng)員成績(jī)=運(yùn)動(dòng)員號(hào)碼+項(xiàng)目名+成績(jī)+破記錄課程=課程名+教員+教材名+課程表課程表=星期幾+第幾節(jié)課+教室2.文
26、件文件是用來(lái)存儲(chǔ)數(shù)據(jù)的,每個(gè)文件都有一個(gè)名子。文件的形式可以是數(shù)據(jù)庫(kù),也可以是規(guī)定結(jié)構(gòu)的數(shù)據(jù)組織。指向文件的數(shù)據(jù)流可理解為寫(xiě)入文件,從文件引出的數(shù)據(jù)流可理解為自文件中讀出數(shù)據(jù)。在分層的數(shù)據(jù)流圖中,文件一般局部于某一層或某幾層。例如 定期存款=帳號(hào)+戶名+地址+款額+存期存期3.數(shù)據(jù)單項(xiàng)數(shù)據(jù)單項(xiàng)是指不可再分的數(shù)據(jù)項(xiàng)。例如 帳號(hào)=000000999999學(xué)生=姓名+年齡+性別+班級(jí)4.基本加工(處理)基本加工是加工的分量,是數(shù)據(jù)流圖中不能再分解的加工?;炯庸び苫炯庸さ男≌f(shuō)明和相應(yīng)的描述構(gòu)成。小說(shuō)明集中描述一個(gè)加工“做什么”,目前小說(shuō)明一般用自然語(yǔ)言、判定表和判定樹(shù)來(lái)描述。(1) 用結(jié)構(gòu)化自然語(yǔ)
27、言描述小說(shuō)明結(jié)構(gòu)化自然語(yǔ)言是介于形式語(yǔ)言與自然語(yǔ)言之間的一種語(yǔ)言。結(jié)構(gòu)化自然語(yǔ)言的語(yǔ)法通常分為內(nèi)外兩層,外層語(yǔ)法描述操作的控制結(jié)構(gòu)順序、選擇、循環(huán)等,這些控制結(jié)構(gòu)將加工中各個(gè)操作連接起來(lái);內(nèi)層語(yǔ)法一般沒(méi)有限制。小說(shuō)明的形式如下:加工編號(hào):在數(shù)據(jù)流圖中某個(gè)加工的編號(hào)加工名:在數(shù)據(jù)流圖中某個(gè)加工的名字加工邏輯:此加工中實(shí)行的操作有關(guān)信息:執(zhí)行此加工的條件例如 有一個(gè)加工為統(tǒng)計(jì)房產(chǎn)的功能可寫(xiě)為:加工編號(hào):3.4加工名:統(tǒng)計(jì)房產(chǎn)加工邏輯:ZK()讀房產(chǎn)文件,按面積分類(lèi),統(tǒng)計(jì)已分和未分配的住房數(shù),輸出統(tǒng)計(jì)表有關(guān)信息:有統(tǒng)計(jì)要求時(shí)執(zhí)行此加工(2) 用判定表描述小說(shuō)明判定表是用來(lái)描述一些不易用語(yǔ)言表達(dá)清楚的
28、加工。它由條件類(lèi)別、條件組合、操作、操作執(zhí)行四部分組成。例 某旅游預(yù)訂票系統(tǒng)規(guī)定,在旅游旺季7、8、9、12月份,如果訂票數(shù)超過(guò)100張,則優(yōu)惠票價(jià)的20%;100張以下,優(yōu)惠10%。在旅游淡季,1至6月份、10、11月份,若訂票數(shù)超過(guò)50張,則優(yōu)惠25%;50張以下優(yōu)惠10%。判定表的一般形式如表2-1所示。表2-1 旅游預(yù)訂票系統(tǒng)判定表 (3) 用判定樹(shù)描述小說(shuō)明判定樹(shù)本質(zhì)上與判定表沒(méi)什么兩樣,只不過(guò)它是圖形表示法,更為人們熟悉和易于理解,上面的預(yù)訂票系統(tǒng),用判定樹(shù)表示見(jiàn)圖2-15所示。圖2-15旅游預(yù)訂票系統(tǒng)的判定樹(shù)基本加工(處理)可用語(yǔ)言、表格、圖形等多種形式來(lái)描述,也可將它們組合起來(lái)
29、使用。2.4.2 數(shù)據(jù)字典的用途數(shù)據(jù)字典是分析階段的工具,它有助于分析員和用戶之間的交流與通信,它可以消除許多可能的誤解與不一致性,是開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)的第一步。一般來(lái)說(shuō),中小規(guī)模的數(shù)據(jù)處理系統(tǒng)建立一個(gè)人工的數(shù)據(jù)字典就夠了,對(duì)于大規(guī)模的數(shù)據(jù)處理系統(tǒng),則應(yīng)建立一個(gè)自動(dòng)的數(shù)據(jù)字典。無(wú)論哪一種數(shù)據(jù)字典都應(yīng)由專(zhuān)人管理,目的是保持其字典內(nèi)容的一致與完整性,通常數(shù)據(jù)字典有如下五種用途。1.按要求列表,從數(shù)據(jù)字典中檢索出所需要的信息,具有列全表、摘要列表、專(zhuān)項(xiàng)列表三種。2.修改和補(bǔ)充數(shù)據(jù)流圖。數(shù)據(jù)流圖初步畫(huà)好后,相應(yīng)的數(shù)據(jù)字典也隨著建立起來(lái)。隨著分析、設(shè)計(jì)的深入,修改和優(yōu)化是再所難免的。對(duì)任何數(shù)據(jù)單項(xiàng)或數(shù)據(jù)結(jié)構(gòu)
30、,可通過(guò)數(shù)據(jù)字典找出使用該內(nèi)容的項(xiàng)目,進(jìn)行必要的修改,一般不會(huì)出現(xiàn)遺漏。3.可以由描述內(nèi)容檢索名稱(chēng)。若只知道一個(gè)數(shù)據(jù)單項(xiàng)的內(nèi)容,而不知道它的名稱(chēng),可通過(guò)內(nèi)容檢索知其名。4.保證一致性和完整性。根據(jù)數(shù)據(jù)字典,可以查出沒(méi)有指明來(lái)源或去處的數(shù)據(jù)流,可以查出沒(méi)有指明數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)單項(xiàng)和沒(méi)有指明所屬數(shù)據(jù)流的數(shù)據(jù)單項(xiàng),可以指明沒(méi)有被加工(處理)引用的數(shù)據(jù)單項(xiàng),可以指明被加工(處理)引用而在輸入數(shù)據(jù)流或輸出數(shù)據(jù)流中未曾出現(xiàn)的數(shù)據(jù)單項(xiàng)等。5.數(shù)據(jù)定義可以直接使用在編程上。用戶可以使用數(shù)據(jù)字典中的數(shù)據(jù)定義,對(duì)程序里的有關(guān)記錄進(jìn)行描述,幫助程序員進(jìn)行程序設(shè)計(jì)。2.4.3 數(shù)據(jù)字典的實(shí)現(xiàn)方法數(shù)據(jù)字典的實(shí)現(xiàn)方法有三種
31、,全人工過(guò)程、全自動(dòng)化過(guò)程和混合過(guò)程。1.全人工過(guò)程(1) 為每個(gè)要定義的名字準(zhǔn)備一張卡片;(2) 在卡片上注明其類(lèi)型,即數(shù)據(jù)流、文件、數(shù)據(jù)單項(xiàng)、基本加工(處理)四種類(lèi)型之一; (3) 寫(xiě)名子的定義;(4) 寫(xiě)該名子的其他特性或限制;(5) 將所有卡片按一定方式排序,如英文字母順序或漢字筆畫(huà)多少等。2.全自動(dòng)化過(guò)程此類(lèi)字典一般容量較大,有專(zhuān)門(mén)的計(jì)算機(jī)程序來(lái)管理,該管理程序本身應(yīng)具有如下功能: (1) 規(guī)定字典的條目格式,條目指數(shù)據(jù)流、文件、數(shù)據(jù)單項(xiàng)等;(2) 接受按規(guī)定格式的字典條目的輸入;(3) 具有查錯(cuò)措施,如報(bào)告非法輸入、語(yǔ)法和重復(fù)定義錯(cuò)誤等;(4) 具有編輯功能,對(duì)字典的條目能進(jìn)行插、
32、刪、改等;(5) 能輸出按次序的字典條目清單;(6) 能產(chǎn)生各類(lèi)查閱報(bào)告。3.混合過(guò)程是將上述兩種技術(shù)有機(jī)地結(jié)合在一起,形成數(shù)據(jù)字典的過(guò)程。其中字典的共性部分用全自動(dòng)化過(guò)程完成,字典的某些個(gè)性部分用全人工過(guò)程來(lái)完成。具體實(shí)現(xiàn)不詳述。但全人工過(guò)程一般適合于小系統(tǒng),全自動(dòng)化過(guò)程一般適合于大系統(tǒng),混合過(guò)程一般適合于中等大小的系統(tǒng)或某些專(zhuān)門(mén)用途的系統(tǒng)。2.5 成本/效益分析開(kāi)發(fā)一個(gè)系統(tǒng)實(shí)質(zhì)上是一種投資,而投資的目的是為了在將來(lái)獲得更大的經(jīng)濟(jì)效益。成本/效益分析從經(jīng)濟(jì)角度揭示了開(kāi)發(fā)一個(gè)新系統(tǒng)是否劃算,也為使用部門(mén)的負(fù)責(zé)人決策是否投資于某項(xiàng)開(kāi)發(fā)工程提供了依據(jù)。2.5.1 成本估計(jì)成本估計(jì)是一種不精確的方法
33、,使用時(shí)應(yīng)該用幾種不同的估計(jì)技術(shù)相互校驗(yàn)。下面介紹三類(lèi)成本估算技術(shù)。1.代碼行技術(shù)是一種比較簡(jiǎn)單定量的估算方法,把開(kāi)發(fā)每個(gè)軟件功能的成本和實(shí)現(xiàn)這個(gè)功能需要用的源程序代碼行數(shù)聯(lián)系起來(lái),若有歷史數(shù)據(jù)作參考的話,這種方法還是有效的。設(shè) T軟件成本;N軟件源代碼行數(shù);A每行源代碼的平均成本。則有:T=A·N其中A取決于軟件的復(fù)雜程度和工資水平。2.任務(wù)分解技術(shù)把軟件系統(tǒng)分解為若干個(gè)獨(dú)立的任務(wù),然后再分別估計(jì)每個(gè)單獨(dú)開(kāi)發(fā)任務(wù)的成本,最后累加起來(lái)得到軟件系統(tǒng)的總成本。設(shè) T軟件總成本;B每個(gè)單獨(dú)開(kāi)發(fā)任務(wù)的成本;系數(shù)。則有: T=B (1)又 C完成每個(gè)單獨(dú)任務(wù)所需的人力(月);D每人每月的平均工
34、資。則有 B=C·D (2)由(1)和(2)得T=·C·D在典型環(huán)境下,各個(gè)階段要使用的人力如表2-2所示。3.估算模型采用經(jīng)驗(yàn)公式來(lái)計(jì)算軟件的成本已有許多種方法,但到目前為止還沒(méi)有任何一種估算模型能適用于所有各種軟件和各種開(kāi)發(fā)環(huán)境,而且大多數(shù)模型的一些經(jīng)驗(yàn)數(shù)據(jù)都是從有限的項(xiàng)目樣本中得出的,因此估算模型必須審慎地使用。(1) 參數(shù)方程大多數(shù)資源模型是根據(jù)過(guò)去的經(jīng)驗(yàn),并通過(guò)大量的統(tǒng)計(jì)和分析推導(dǎo)出來(lái)的。它們揭示了在一定條件下資源花費(fèi)和軟件規(guī)模的內(nèi)在關(guān)系。1) 靜態(tài)單變量靜態(tài)單變量模型的一般形式如下:資源=C1·(估計(jì)特點(diǎn))·eC2表2-2典型環(huán)境下
35、各個(gè)開(kāi)發(fā)階段需要使用人力的百分比任務(wù) 人力%可行性研究 5需求分析 10設(shè)計(jì) 25編碼和單元測(cè)試 20綜合測(cè)試及維護(hù) 40 總計(jì) 100其中 資源通常指人力、開(kāi)發(fā)工作所需的工作量,以人/月或人/日、人/年為單位計(jì)算。也可以是工程期限,需要的人數(shù)或文檔數(shù)量等;C1、C經(jīng)驗(yàn)數(shù)據(jù);估計(jì)特點(diǎn)源代碼行數(shù)。例 Doty在1977年發(fā)表的估算開(kāi)發(fā)工作量的算法列在表2-3中。表2-3估算開(kāi)發(fā)工作量的算法應(yīng)用范圍 目標(biāo)碼 源代碼全 部 MM=4.790I0.991 MM=5.258I1.057命令和控制 MM=4.573I1.228 MM=4.089I1.263科學(xué)計(jì)算 MM=4.495I1.068 MM=7.
36、054I1.019商業(yè) MM=2.895I0.784 MM=4.495I0.781實(shí)用程序 MM=12.039I0.719 MM=10.078I0.811表中MM是開(kāi)發(fā)所需要用的人力,包括分析、設(shè)計(jì)、編碼、測(cè)試、調(diào)試等工作,以月為單位計(jì)算;I是估計(jì)的程序長(zhǎng)度,單位以千條(或千行)計(jì)算。2) 靜態(tài)多變量靜態(tài)多變量模型是根據(jù)歷史數(shù)據(jù)導(dǎo)出的經(jīng)驗(yàn)公式,公式的典型形式為:資源=c11·e1·ec12+c21·e2·ec22+其中 ei軟件的第i個(gè)特點(diǎn);ci1,ci2與第i個(gè)特點(diǎn)有關(guān)的經(jīng)驗(yàn)常數(shù)。3) 動(dòng)態(tài)多變量是1979年putnam在軟件開(kāi)發(fā)生存期雷利(Rayle
37、igh)曲線模型的基礎(chǔ)上提出的SLIM商業(yè)化成本估算模型。這類(lèi)模型把資源需求看作是開(kāi)發(fā)時(shí)間的函數(shù),則有:L=Ck·K1/3·td4/3 (9-1)其中 L源代碼行數(shù);K開(kāi)發(fā)所需用的人力,以人年為單位;td開(kāi)發(fā)所需用的時(shí)間,以年為單位;Ck技術(shù)水平常數(shù),它的典型值為:對(duì)于差的開(kāi)發(fā)環(huán)境Ck=2500對(duì)于好的開(kāi)發(fā)環(huán)境Ck=10000對(duì)于優(yōu)越的開(kāi)發(fā)環(huán)境Ck=12500從方程(9-1)可以解出開(kāi)發(fā)所需要的工作量K=L3·Ck-3·td-44) IBM模型是由IBM公司的Waston和Felix在1977年總結(jié)了IBM聯(lián)合系統(tǒng)中60個(gè)項(xiàng)目的數(shù)據(jù)而得出來(lái)的估算公式:E
38、=5.2·L0.91D=4.1·L0.36=2.47·E0.85S=0.54·E0.6DOC=49·L1.01其中 E工作量,單位為人/月;D項(xiàng)目持續(xù)時(shí)間,單位為月;DOC估算的源代碼行數(shù)。從而有生產(chǎn)率 L=DD(;)29i=1DDWjXi其中 Xi取值為-1,0,+1,取決于第i個(gè)因素對(duì)項(xiàng)目的影響情況;Wj加權(quán)值,具體的計(jì)算為:Wj=0.5log10(PCi)其中 PCi生產(chǎn)率比值,與第i個(gè)項(xiàng)目成本因素有關(guān)系。(2) 標(biāo)準(zhǔn)值法本方法主要使用開(kāi)發(fā)各類(lèi)程序的標(biāo)準(zhǔn)生產(chǎn)率,估計(jì)開(kāi)發(fā)工程的總工作量。標(biāo)準(zhǔn)生產(chǎn)率根據(jù)以往的開(kāi)發(fā)經(jīng)驗(yàn)導(dǎo)出。主要從使用的程序設(shè)計(jì)
39、語(yǔ)言,處理方式(批處理,實(shí)時(shí)處理),程序難易程度,技術(shù)人員水平和開(kāi)發(fā)范圍幾個(gè)方面來(lái)劃分程序開(kāi)發(fā)類(lèi)型。使用標(biāo)準(zhǔn)值法估算開(kāi)發(fā)工作量,首先需要確定程序的開(kāi)發(fā)類(lèi)型,并估計(jì)程序的規(guī)模。為了使程序規(guī)模的估計(jì)值更接近實(shí)際值,可請(qǐng)若干名有經(jīng)驗(yàn)的軟件工程師分別作出估計(jì)。每個(gè)人都應(yīng)該估計(jì)程序的最小規(guī)模(a),最大規(guī)模(b)和最可能的規(guī)模(m),分別求出這三種規(guī)模的平均值a-,b-和m-之后,再用下式計(jì)算程序規(guī)模的估計(jì)值L=a-+4m-+b-/6然后使用開(kāi)發(fā)該類(lèi)程序的標(biāo)準(zhǔn)生產(chǎn)率和適當(dāng)?shù)男拚禂?shù)估算開(kāi)發(fā)工作量工作量=修正系數(shù)×(程序長(zhǎng)度/標(biāo)準(zhǔn)生產(chǎn)率)其中標(biāo)準(zhǔn)生產(chǎn)率的單位通常是每人日可開(kāi)發(fā)的程序長(zhǎng)度(源程序行
40、數(shù)或目標(biāo)指令條數(shù)),修正系數(shù)反映其他因素對(duì)開(kāi)發(fā)工作量的影響,當(dāng)考慮從需求分析直到測(cè)試的開(kāi)發(fā)過(guò)程時(shí),它的算法是:修正系數(shù)=1+0.1n其中n是符合下列條款的數(shù)目:1) 目標(biāo)系統(tǒng)情況·修改文檔不完備的程序·需求中有不明確的或尚未決定的內(nèi)容·系統(tǒng)規(guī)模較大·工作帶有試探性質(zhì)(需多次試探)·系統(tǒng)接口不明確或接口復(fù)雜·聯(lián)機(jī)實(shí)時(shí)系統(tǒng)(測(cè)試?yán)щy)·數(shù)據(jù)庫(kù)需要復(fù)雜的安全措施2) 項(xiàng)目管理和人員組成情況·中途改變項(xiàng)目管理人·項(xiàng)目組不協(xié)調(diào)(人事關(guān)系不好)·新手或初級(jí)人員比例較高·需要培訓(xùn)程序員·項(xiàng)
41、目管理人沒(méi)有數(shù)據(jù)處理經(jīng)驗(yàn)·項(xiàng)目管理人沒(méi)有應(yīng)用領(lǐng)域經(jīng)驗(yàn)·系統(tǒng)分析員沒(méi)有應(yīng)用領(lǐng)域經(jīng)驗(yàn)·系統(tǒng)設(shè)計(jì)員沒(méi)有應(yīng)用領(lǐng)域經(jīng)驗(yàn)·程序員沒(méi)有應(yīng)用領(lǐng)域經(jīng)驗(yàn)3) 用戶情況·用戶對(duì)計(jì)算機(jī)數(shù)據(jù)處理知之甚少·系統(tǒng)需要在不同場(chǎng)合使用·系統(tǒng)需滿足使用部門(mén)的標(biāo)準(zhǔn)或手續(xù)·使用部門(mén)提供的測(cè)試數(shù)據(jù)沒(méi)經(jīng)過(guò)驗(yàn)證·使用部門(mén)不同意開(kāi)發(fā)計(jì)劃·開(kāi)發(fā)過(guò)程中用戶需求發(fā)生了變化·使用部門(mén)負(fù)責(zé)人變動(dòng)4) 開(kāi)發(fā)環(huán)境情況·現(xiàn)有的操作系統(tǒng)功能不足·將來(lái)預(yù)定使用的計(jì)算機(jī)尚未測(cè)試·工作場(chǎng)所分散·主存和輔存受限制
42、83;計(jì)算機(jī)使用時(shí)間不能充分保障·計(jì)算機(jī)機(jī)房管理不善·工作中途中斷(3) COCOMO模型此模型是最精確的成本估計(jì)方法之一,是由Boehm于1981年出版的軟件工程經(jīng)濟(jì)學(xué)一書(shū)中提出的,命名為構(gòu)造性成本模型(Constructive Cost Model)。在這種模型中,軟件開(kāi)發(fā)工作量表示成據(jù)估計(jì)應(yīng)該開(kāi)發(fā)的代碼行數(shù)的非線性函數(shù):MM=C1·KLOCa·DD(;)15i=1DDfiJY(92)其中 MM開(kāi)發(fā)工作量,以人月為單位;C1模型系數(shù);KLOC估計(jì)代碼行數(shù),以千行為單位;a模型指數(shù);fi成本因素,i=1到15。每個(gè)成本因素都根據(jù)它的重要程度和影響大小賦
43、予一定數(shù)值,一般把成本因素劃分成生產(chǎn)因素、計(jì)算機(jī)因素、人員因素和項(xiàng)目因素等。下面簡(jiǎn)單介紹主要的成本因素。1) 生產(chǎn)因素 要求的軟件可靠性(RELY)這個(gè)因素反映了為保證軟件可靠性應(yīng)作出的努力的大小。例如,軟件復(fù)審的次數(shù)和正式程度;正式應(yīng)用質(zhì)量保證和配置管理過(guò)程的程度;運(yùn)行期間軟件失效的影響。 數(shù)據(jù)庫(kù)規(guī)模(DATA)應(yīng)該開(kāi)發(fā)或集成到目標(biāo)系統(tǒng)中的數(shù)據(jù)庫(kù)的規(guī)模和復(fù)雜程度。應(yīng)該考慮數(shù)據(jù)庫(kù)設(shè)計(jì)、信息元素的數(shù)目、訪問(wèn)方法和查詢(xún)技術(shù)等等。 軟件產(chǎn)品復(fù)雜程度(CPLX)所開(kāi)發(fā)的軟件的邏輯和結(jié)構(gòu)等方面的復(fù)雜程度。2) 計(jì)算機(jī)因素 執(zhí)行時(shí)間的約束(TIME)指軟件需求中對(duì)程序執(zhí)行時(shí)間限制的程度。一般說(shuō)來(lái),在實(shí)時(shí)應(yīng)
44、用和某些交互式系統(tǒng)中會(huì)遇到時(shí)間約束問(wèn)題。 存儲(chǔ)約束(STOR)對(duì)存放程序和數(shù)據(jù)時(shí)可以使用的存儲(chǔ)容量的限制。 環(huán)境變更率(VIRT)軟件外部環(huán)境(例如,計(jì)算機(jī)硬件、操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng))在軟件開(kāi)發(fā)期間變動(dòng)的頻率和范圍。 計(jì)算機(jī)換向時(shí)間(TURN)指程序設(shè)計(jì)環(huán)境的響應(yīng)時(shí)間。3) 人員因素 系統(tǒng)分析員的能力(ACAP)分析員從事分析工作的經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí)的多少。 應(yīng)用經(jīng)驗(yàn)(AEXP)開(kāi)發(fā)人員對(duì)他們面臨的應(yīng)用領(lǐng)域所具有的經(jīng)驗(yàn)的多少。 程序員的能力(PCAP)程序員在程序設(shè)計(jì)方面具有的經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí)的多少。 環(huán)境知識(shí)(VEXP)開(kāi)發(fā)人員對(duì)所用的軟件開(kāi)發(fā)環(huán)境的經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí)的多少。 語(yǔ)言知識(shí)(LEXP)
45、開(kāi)發(fā)人員對(duì)這個(gè)工程項(xiàng)目選定的程序設(shè)計(jì)語(yǔ)言的經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí)的多少。4) 項(xiàng)目因素 程序設(shè)計(jì)實(shí)踐(MODP)在開(kāi)發(fā)期間使用現(xiàn)代程序設(shè)計(jì)技術(shù)(自頂向下程序設(shè)計(jì)方法論,自頂向下測(cè)試技術(shù),結(jié)構(gòu)化編碼方法,面向?qū)ο蠓椒▽W(xué)等等)的程度。 軟件工具(TOOL)軟件工程每個(gè)步驟可以使用的軟件工具的多少。 進(jìn)度約束(SCED)對(duì)工程進(jìn)度限制的程度,它影響應(yīng)用軟件工程技術(shù)的程度。5) 其他因素 語(yǔ)言經(jīng)驗(yàn)表明,匯編語(yǔ)言或機(jī)器語(yǔ)言每條指令的成本,大約是高級(jí)程序設(shè)計(jì)語(yǔ)言每個(gè)源語(yǔ)句成本的兩倍。 實(shí)時(shí)應(yīng)用實(shí)時(shí)軟件每條指令的成本大約是一般程序每條指令成本的5倍。 軟件類(lèi)型操作系統(tǒng)每條指令的成本大約是應(yīng)用程序或?qū)嵱贸绦虻?.5倍
46、。 經(jīng)驗(yàn)開(kāi)發(fā)不熟悉的程序比開(kāi)發(fā)熟悉的程序大約需要多付出50100%的勞動(dòng)。 文檔數(shù)量經(jīng)驗(yàn)表明,文檔的成本大約占軟件開(kāi)發(fā)總成本的10%。 用戶需求和開(kāi)發(fā)環(huán)境的穩(wěn)定程度這些是決定軟件成本的重要因素,但是目前只能主觀地估計(jì)它們的影響。 管理這是非常重要的因素,但是目前也只能主觀地估計(jì)它的影響。COCOMO模型是層次型模型,按詳細(xì)程度分成三級(jí)。最上層是對(duì)各種規(guī)模軟件的宏觀估計(jì)模型;最下層是微觀模型,它具有任務(wù)分解結(jié)構(gòu)和一系列階段敏感因子。下面簡(jiǎn)單介紹中層COCOMO模型。軟件開(kāi)發(fā)項(xiàng)目可以分成組織式、半獨(dú)立式和嵌入式三種模式。對(duì)組織式軟件的要求通常不苛刻,開(kāi)發(fā)人員經(jīng)驗(yàn)豐富,而且對(duì)軟件的使用環(huán)境很熟悉(通
47、常是為自己所在的組織開(kāi)發(fā)軟件),程序規(guī)模一般不大(小于5萬(wàn)行代碼)。例如,簡(jiǎn)單的商業(yè)數(shù)據(jù)處理系統(tǒng)即屬于組織式。嵌入式軟件需要在很強(qiáng)的約束條件下運(yùn)行,通常和某些硬設(shè)備緊密結(jié)合在一起(例如,空中交通管理軟件),對(duì)這類(lèi)軟件系統(tǒng)的要求通常十分苛刻。對(duì)半獨(dú)立式軟件的要求通常介于上述兩類(lèi)軟件之間,但是這類(lèi)軟件的規(guī)模一般都比較大(可達(dá)30萬(wàn)行代碼)。上述三種開(kāi)發(fā)模式的正常工作量方程列在表2-4中。所謂正常開(kāi)發(fā)工作量也就是所有影響成本的因素都取正常值,即在9-2式中fi=1(i=1,2,,15)如果某些因素不能取正常值,則需要把這些因素的實(shí)際值(稱(chēng)為工作量系數(shù))乘以正常開(kāi)發(fā)工作量,才能得出對(duì)系統(tǒng)實(shí)際開(kāi)發(fā)工作量的正確估計(jì)。表25中列出了影響軟件開(kāi)發(fā)成本的工作量系數(shù)。表2-4正常開(kāi)發(fā)工作量方程開(kāi)發(fā)模式 正常開(kāi)發(fā)工作量組織式 MM=3.2(KLOC)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)蔬菜大棚管行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年濕膜暗裝式加濕器項(xiàng)目可行性研究報(bào)告
- 2025年雜物盒組件項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)復(fù)合緊襯抗負(fù)壓管道行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 延安2024年陜西延安市縣以下醫(yī)療衛(wèi)生機(jī)構(gòu)定向招聘大學(xué)生鄉(xiāng)村醫(yī)生補(bǔ)錄27人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年冷軋鋼材料項(xiàng)目可行性研究報(bào)告
- 2025年不干膠條碼標(biāo)簽紙項(xiàng)目可行性研究報(bào)告
- 2025至2030年高光外墻水性漆項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年中國(guó)銅包鋁鎂線數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)酒店財(cái)務(wù)管理系統(tǒng)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 護(hù)理部用藥安全質(zhì)量評(píng)價(jià)標(biāo)準(zhǔn)
- 最新小學(xué)二年級(jí)口算及豎式計(jì)算練習(xí)題
- 校園信息化設(shè)備管理檢查表
- 新版抗拔樁裂縫及強(qiáng)度驗(yàn)算計(jì)算表格(自動(dòng)版)
- API SPEC 5DP-2020鉆桿規(guī)范
- 創(chuàng)新思維課件(完整版)
- DB34∕T 4161-2022 全過(guò)程工程咨詢(xún)服務(wù)管理規(guī)程
- 注塑成型工藝參數(shù)知識(shí)講解
- 安全生產(chǎn)專(zhuān)業(yè)化管理
- 初中生成長(zhǎng)檔案模板
- GB_T 17468-2019 電力變壓器選用導(dǎo)則(高清正版)
評(píng)論
0/150
提交評(píng)論