軟件工程可行性分析進義_第1頁
軟件工程可行性分析進義_第2頁
軟件工程可行性分析進義_第3頁
軟件工程可行性分析進義_第4頁
軟件工程可行性分析進義_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四講軟件工程的可行性分析軟件計劃是軟件項目的開始, 是軟件開發(fā)過程的準(zhǔn)備時期, 也是軟件生命周期的第一個時期,該時期的主要任務(wù)是對問題求解進行定義,對問題可行性進行分析,對待開發(fā)項目進行論證,最終確定該軟件項目的開發(fā)價值,制定軟件項目計劃。軟件項目計劃是整個軟件開發(fā)和維護的規(guī)劃和實施依據(jù)。本章主要介紹軟件生命周期的問題定義和可行性研究兩個階段的任務(wù)、 步驟和內(nèi)容。2.1 問題定義問題定義階段是軟件生命周期的第一個階段, 也是最容易被忽視的階段。 該階段必須回答的問題是“是什么” 。 如果在問題尚未明確的情況下即著手解決問題,必然造成人力、 物力、時間等各方面的浪費, 最終得出的結(jié)果也未必有意

2、義。因此對此階段應(yīng)給予足夠的重視。問題定義的關(guān)鍵性任務(wù)就是確定問題的性質(zhì)、 工程的目標(biāo)和規(guī)模。 問題定義階段所需要的信息主要從用戶方面得到, 這就需要系統(tǒng)分析人員到用戶中去進行調(diào)查研究,取得第一手的資料。調(diào)查研究一般有下列幾種方式。以書面的形式了解用戶的要求。 系統(tǒng)分析員要把所要從用戶那里得到的信息,以書面的形式提出,并讓用戶填寫。系統(tǒng)分析人員應(yīng)認真閱讀和分析用戶填寫的材料。口頭形式了解用戶的要求。 系統(tǒng)分析人員應(yīng)去現(xiàn)場聽取用戶的口頭意見,并進行記錄。以閱讀資料的形式了解用戶的要求。 用戶把原來系統(tǒng)的有關(guān)資料提供給系統(tǒng)分析人員,分析人員應(yīng)認真閱讀并簡要地記錄下來。以開調(diào)查會的形式了解用戶的要求

3、。 軟件分析人員應(yīng)事先準(zhǔn)備好調(diào)查提綱,按照提綱進行調(diào)查,并獲取用戶的要求。使用上述方法把用戶的要求收集上來后, 軟件分析員應(yīng)認真分析問題。 在分析這些問題時,應(yīng)注意抓住實質(zhì)性的問題,以及解決該問題的辦法。例如有的用戶可能提出某種功能要求及解決方法,那么系統(tǒng)分析員就應(yīng)該進一步了解這項工作以前是怎樣做的,用戶提出的做法有哪些合理之處,可能會有的弊病等,從而弄清問題的本質(zhì)。1系統(tǒng)分析員對用戶提出的問題在了明確的認識后,應(yīng)該整理出一份書面調(diào)查報告,并提交用戶和部門負責(zé)人進行審查,以糾正不足之處。理想的做法是系統(tǒng)分析員、用戶和部門負責(zé)人坐在一起閱讀和討論這份報告,確定不清楚的部分,改正不正確的部分,通過

4、認真的修改得到一份大家一致同意的報告。這份任務(wù)書中應(yīng)包括項目名稱、開發(fā)背景、項目目標(biāo)、項目范圍、初步設(shè)想等內(nèi)容。系統(tǒng)開發(fā)任務(wù)書是軟件項目的第一個書面成果,既是軟件開發(fā)的指導(dǎo)性資料,也是項目立項的基礎(chǔ)性文檔,是用戶檢查系統(tǒng)最后開發(fā)結(jié)果一個重要依據(jù)。其內(nèi)容也可以由項目開發(fā)計劃和可行性研究報告來共同體現(xiàn)。在軟件開發(fā)工作開始階段就使系統(tǒng)分析人員、軟件開發(fā)人員、 最終用戶和用戶部門負責(zé)人對問題的性質(zhì)、目標(biāo)、規(guī)模取得完全一致的意見,這對確保今后開發(fā)工作的成功至關(guān)重要。如果對問題的理解不正確,最終開發(fā)出來的系統(tǒng)必然不能解決實際問題。如果系統(tǒng)分析員、用戶、用戶部門負責(zé)人對這份任務(wù)書取得了一致的意見,而且用戶部

5、門負責(zé)人也同意開發(fā)這個軟件項目,開發(fā)工作將轉(zhuǎn)入軟件生命周期的下一個階段,即可行性研究。例 1、項目建議書范例項目建議書編寫提綱一、項目概述(一)項目名稱(二)業(yè)主單位(三)工程背景(四)建設(shè)規(guī)模(五)投資概算二、項目的意義與必要性三、現(xiàn)狀及需求分析四、建設(shè)內(nèi)容、方案、規(guī)模五、系統(tǒng)功能及主要技術(shù)經(jīng)濟指標(biāo)六、建設(shè)工期及時間安排七、項目承擔(dān)單位或項目法人及協(xié)作單位概況八、投資估算、資金籌措九、效益分析2.2 可行性研究可行性研究的目的是用最小的代價、在盡可能短的時間內(nèi)確定問題是否能夠解決,以及是否值得解決,即可行性研究的結(jié)果是“做還是不做”而非“如何去2做”。在項目開發(fā)之前進行可行性論證是非常必要的

6、。 一個項目如果未經(jīng)過充分的可行性論證,只粗略地估計解決問題的花費和方法,就盲目上陣開始軟件開發(fā)工作,結(jié)果往往是不能在預(yù)定的系統(tǒng)規(guī)?;驎r間期限內(nèi)解決問題,甚至無法求解,最后造成花費在該項目上時間、人力、物力資源和經(jīng)費的浪費。因此,對于待開發(fā)的新系統(tǒng),在所具備的資源和其他條件的前提下,是否能夠完成軟件開發(fā)工作及獲得相應(yīng)的收益,需通過認真地論證其可行性來確定,避免盲目開發(fā),造成無謂的浪費。2.2.1可行性研究的任務(wù)在明確了問題定義之后, 首先由系統(tǒng)分析員給出系統(tǒng)的邏輯模型, 然后從該模型出發(fā),尋找可供選擇的解決問題的方法。 若有多種可行方案,還需對各種可能解法進行分析,通過判定解決問題的規(guī)模及系統(tǒng)

7、完成的成本效益等內(nèi)容,選擇一種可行性最好的方案。 可行性研究實際上是一次簡化的系統(tǒng)分析和設(shè)計的過程。通常情況下,可行性分析應(yīng)從技術(shù)可行性、經(jīng)濟可行性、操作可行性和社會可行性等方面著手。技術(shù)可行性技術(shù)可行性是根據(jù)用戶提出的系統(tǒng)功能、性能及實現(xiàn)系統(tǒng)的各項約束條件,從技術(shù)角度研究實現(xiàn)系統(tǒng)的可行性。 技術(shù)可行性研究往往是系統(tǒng)開發(fā)過程中難度最大的工作。技術(shù)可行性研究包括:風(fēng)險分析、資源分析和技術(shù)分析。風(fēng)險分析的任務(wù)是: 在給定的約束條件下, 判斷能否設(shè)計并實現(xiàn)系統(tǒng)所需要的功能和性能。資源分析的任務(wù)是: 論證是否具備系統(tǒng)開發(fā)所需的管理人員和各類專業(yè)技術(shù)人員,人員是否進行了必要的培訓(xùn),開發(fā)人員是否對術(shù)語、縮

8、寫、開發(fā)模式有一致的理解,是否具備必須的軟件、硬件資源和工作環(huán)境等。技術(shù)分析的任務(wù)是: 當(dāng)前的科學(xué)技術(shù)能否支持系統(tǒng)開發(fā)的全過程。 使用現(xiàn)有的技術(shù),能否在預(yù)定的時間內(nèi)實現(xiàn)該系統(tǒng)的功能; 所選擇的技術(shù)是否先進、 合理;在開發(fā)過程中存在哪些技術(shù)難點,能否克服。經(jīng)濟可行性經(jīng)濟可行性分析主要包括: “成本效益”分析和“短期長遠利益”分析。3“成本效益”是估算軟件開發(fā)成本、系統(tǒng)交付后的運行維護成本以及效益,確定系統(tǒng)的經(jīng)濟效益是否能超過各項花費。費用估算包括:設(shè)備計算機硬件、輸入輸出設(shè)備、空調(diào)、電源、機房及其他設(shè)施和系統(tǒng)軟件、數(shù)據(jù)庫管理系統(tǒng)以及各種應(yīng)用軟件 ( 包括軟件包) 的支出費用。人力研制人員( 系統(tǒng)

9、分析人員) ,操作人員( 系統(tǒng)管理人員、操作人員、數(shù)據(jù)錄入員、維護人員) 的工資、獎金以及他們的培訓(xùn)費用。材料水、電、打印紙、色帶和各種易耗物品及設(shè)備的維修費用。管理由于采用新的軟件系統(tǒng)和工作方式會帶來變化,管理人員的任務(wù)也發(fā)生改變,這些變化會增加一些額外的管理費用,其中有些是一次性的,有些是經(jīng)常性的。普遍存在的問題是費用估計往往偏低,例如只考慮主機價格而不考慮外設(shè)價格( 有時主機價格僅占總費用的 1/3 左右) 。對軟件費用、日常維護費用、人員培訓(xùn)費用考慮不周,其結(jié)果是一次次地追加費用,造成騎虎難下的局面?!岸唐陂L遠利益” 是分析該軟件的短期和長遠利益, 估算系統(tǒng)的整體經(jīng)濟效益和社會效益是否

10、滿足要求。操作可行性操作可行性主要是分析系統(tǒng)的運行方式、 操作規(guī)程在用戶組織內(nèi)是否可以有效、順利實施等問題。社會可行性社會可行性是指開發(fā)后的系統(tǒng)能否得到社會的認可。 從社會責(zé)任方面考慮,需要判定系統(tǒng)的開發(fā)過程或使用需要承擔(dān)哪些責(zé)任,是否會觸犯法律或是存在侵權(quán)行為;從社會環(huán)境方面考慮,需要判定系統(tǒng)能夠在市場上占有什么樣的位置。如果是涉足未成熟的市場,要盡可能準(zhǔn)確地估計該產(chǎn)品的潛在的市場有多大、自己能占多少份額、多長時間能實現(xiàn)等,如果是要擠進成熟的市場,則要考慮在競爭的狀態(tài)下能夠得到的收益是多少。4可行性研究最根本的任務(wù)是對以后的行動方針提出建議。 系統(tǒng)分析員應(yīng)該為每個可行的解法進行評估,形成一個

11、可行性分析報告,作為開發(fā)該項目及選擇方案的依據(jù)。 如果問題求解沒有可行的方案,分析員應(yīng)該建議終止該項目計劃,以避免人力、物力、財力和時間的浪費。如果問題值得去做,系統(tǒng)分析員應(yīng)該推薦一個較好的解決方案,并且制定一個初步的計劃??尚行匝芯啃枰臅r間長短取決于工程的規(guī)模。 一般說來,可行性研究的成本大概是預(yù)期的工程總成本的 510。2.1.2可行性研究的步驟為了保證可行性研究的結(jié)果全面、準(zhǔn)確、有效,并盡量減少所需成本,可行性研究可按照以下步驟進行。確定系統(tǒng)規(guī)模和目標(biāo)分析員通過對關(guān)鍵人員進行調(diào)查訪問, 仔細閱讀和分析有關(guān)的材料, 確認目標(biāo)系統(tǒng)的規(guī)模和目標(biāo),并清晰地描述對目標(biāo)系統(tǒng)的一切限制和約束,以確保

12、分析員正在解決的問題確實是要求他解決的問題。研究目前正在使用的系統(tǒng)現(xiàn)有的系統(tǒng)是信息的重要來源。 因為當(dāng)前正運行的系統(tǒng), 不論是人工操作的系統(tǒng),還是計算機系統(tǒng),一定能完成某些有用的工作,這些功能,往往是新的目標(biāo)系統(tǒng)必須完成的基本功能。同時,現(xiàn)有的系統(tǒng)必然還存在某些問題,這些問題在新系統(tǒng)中必須要解決。此外,運行使用舊系統(tǒng)所需要的費用是一個重要的經(jīng)濟指標(biāo)。從經(jīng)濟角度看,要求新系統(tǒng)能增加收入或減少使用費用。對當(dāng)前系統(tǒng)的研究,可通過仔細閱讀分析現(xiàn)有系統(tǒng)的文檔資料和使用手冊、實地考察現(xiàn)有的系統(tǒng)、訪問有關(guān)的人員等途徑實現(xiàn)。研究時應(yīng)該注意了解這個系統(tǒng)可以做什么,為什么這樣做,以及使用這個系統(tǒng)的代價。由于絕大多

13、數(shù)系統(tǒng)都和其他系統(tǒng)有聯(lián)系,所以還應(yīng)該注意了解并記錄現(xiàn)有系統(tǒng)和其他系統(tǒng)之間的接口情況,這是設(shè)計新系統(tǒng)時的重要約束條件。分析員可畫出現(xiàn)有系統(tǒng)的高層系統(tǒng)流程圖 ( 參見后面 2.3 節(jié)) ,描述其對當(dāng)前系統(tǒng)的認識,并請有關(guān)人員檢驗是否正確。分析現(xiàn)有的系統(tǒng)不應(yīng)花費過多時間。 這個步驟的目的是了解現(xiàn)有系統(tǒng)能做什么,而不是了解它怎樣做這些工作。5導(dǎo)出新系統(tǒng)的高層邏輯模型通過前一步的工作, 分析員在逐步明確目標(biāo)系統(tǒng)應(yīng)該具有的基本功能、 處理流程和所受的約束的基礎(chǔ)上,可利用建立邏輯模型的工具,定義新系統(tǒng)的邏輯模型。如利用數(shù)據(jù)流圖(下一課具體介紹)描繪數(shù)據(jù)在系統(tǒng)中流動和處理的情況,利用初步的數(shù)據(jù)字典(下一課具體

14、介紹)定義系統(tǒng)中使用的數(shù)據(jù)。數(shù)據(jù)流圖和數(shù)據(jù)字典共同定義了新系統(tǒng)的邏輯模型,概括地表達出分析員對新系統(tǒng)的設(shè)想,以后可以從這個邏輯模型出發(fā)設(shè)計新系統(tǒng)。重新定義問題分析員通過新系統(tǒng)的邏輯模型表達對新系統(tǒng)必須做什么的看法后, 應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標(biāo),以發(fā)現(xiàn)并改正分析員對問題的誤解或者用戶曾經(jīng)遺漏的某些要求。這次復(fù)查應(yīng)該把數(shù)據(jù)流圖和數(shù)據(jù)字典作為討論的基礎(chǔ)??尚行匝芯康那?4 個步驟實質(zhì)上構(gòu)成一個循環(huán)。 分析員定義、 分析問題,導(dǎo)出一個試探性的解。在此基礎(chǔ)上再重新定義問題,再一次分析這個問題,修改這個解。繼續(xù)這個循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標(biāo)。導(dǎo)出和評價供選擇的方案分

15、析員在建立了完全符合系統(tǒng)目標(biāo)的系統(tǒng)高層邏輯模型后, 要給出若干個較高層次的(較抽象的)物理解法供比較和選擇。導(dǎo)出供選擇的解法的最簡單的途徑,是從技術(shù)角度出發(fā)考慮解決問題的不同方案。首先從技術(shù)可行性出發(fā),初步排除一些無法滿足功能需求的處理方案。其次從操作可行性出發(fā),分析員充分考慮使用系統(tǒng)的用戶的工作方式和習(xí)慣,檢查技術(shù)上可行的那些方案,將那些操作方式或操作過程不能被用戶接受的方案去除。接下來分析員應(yīng)該從經(jīng)濟可行性出發(fā), 估算余下的各種方案的開發(fā)成本和運行費用,進行成本/ 效益分析(參見后面 2.5 節(jié)),對預(yù)計能帶來利潤的系統(tǒng)進行比較,選擇那些所帶來的預(yù)期利潤更理想的方案。最后分析員需要詳細說明

16、選擇各行動方案的理由制定進度表, 估計各行動方案在生命周期每個階段的工作量,為項目負責(zé)人進行決策提供充分的依據(jù)。推薦一個方案并說明理由6根據(jù)上述可行性研究結(jié)果, 分析員應(yīng)該做出是否繼續(xù)進行這項開發(fā)工程的決定。如果結(jié)論是值得繼續(xù)進行這項工程,則應(yīng)該推薦一種最好的解法,并且說明選擇這個解決方案的理由。通常情況下,根據(jù)分析員對于所推薦的系統(tǒng)的成本/效益分析結(jié)果,由項目負責(zé)人決定是否承接該項目,并選擇一種經(jīng)濟效益最為理想的解法作為實施方案。推薦行動方針分析員應(yīng)該為所推薦的方案草擬一份開發(fā)計劃。 該計劃除了制定工程進度表之外,還應(yīng)該估計對各類開發(fā)人員 (例如,系統(tǒng)分析員、 程序員)和各種資源(計算機硬件

17、、軟件工具等)的需要情況,并指明什么時候使用以及使用多長時間。此外還應(yīng)該估計系統(tǒng)生命周期每個階段的成本。最后應(yīng)該給出下一個階段(需求分析)的詳細進度表和成本估計。書寫計劃任務(wù)書并提交審查將上述可行性研究各個步驟的工作結(jié)果寫成清晰的文檔, 請用戶和使用部門的負責(zé)人及評審組審查, 以決定是否繼續(xù)這項工程及是否接受分析員推薦的方案。其中,可行性研究的文檔內(nèi)容可依照以下提綱書寫。引言簡單介紹系統(tǒng)背景情況,包括國內(nèi)外相關(guān)系統(tǒng)的發(fā)展水平和市場需求程度,實現(xiàn)系統(tǒng)的環(huán)境,以及與其他系統(tǒng)之間的關(guān)系。系統(tǒng)技術(shù)描述總體設(shè)計方案,系統(tǒng)分解情況,涉及的關(guān)鍵技術(shù),各階段目標(biāo)。系統(tǒng)經(jīng)濟效益即經(jīng)濟可行性,包括設(shè)計開發(fā)總花費、

18、預(yù)期經(jīng)濟效益以及長期效益。系統(tǒng)技術(shù)評價即技術(shù)可行性,包括開發(fā)隊伍的技術(shù)實力,設(shè)備條件和已有工作基礎(chǔ)。法律上的可行性系統(tǒng)開發(fā)是否存在侵權(quán)行為或要承擔(dān)的法律責(zé)任。其他與項目開發(fā)有關(guān)的問題, 比如對現(xiàn)有的系統(tǒng)進行分析, 并為開發(fā)系統(tǒng)提供可行性建議等。7結(jié)論可行性報告的最后必須提供一個明確的結(jié)論,結(jié)論的內(nèi)容可能是: 項目開發(fā)可以立即開始;或系統(tǒng)開始的前提是要具備某些條件或?qū)ο到y(tǒng)目標(biāo)進行某些修改;還可能是系統(tǒng)在技術(shù)、經(jīng)濟或操作等方面不可行,要求立即終止該項目的所有工作。例 2、福建工程學(xué)院學(xué)生基本信息管理系統(tǒng) 可行性研究報告暨初步設(shè)計方案編寫提綱一、項目概述(一)項目名稱(二)業(yè)主單位(三)工程背景(四

19、)建設(shè)規(guī)模(五)投資概算(六)設(shè)計依據(jù)(七)設(shè)計范圍(八)設(shè)計分工1. 系統(tǒng)集成商職責(zé)分工2. 設(shè)備供應(yīng)商職責(zé)分工3. 業(yè)主職責(zé)分工二、現(xiàn)狀與需求分析 (詳細描述項目現(xiàn)有軟硬件、 人才基礎(chǔ)情況和業(yè)務(wù)需求、數(shù)據(jù)量大小)(一)項目的意義和建設(shè)必要性(二)現(xiàn)狀分析(描述現(xiàn)有的信息化建設(shè)情況)(三)需求分析(描述業(yè)務(wù)需求和數(shù)據(jù)量大?。┤?、總體設(shè)計(一)建設(shè)目標(biāo)(描述從用戶角度看到的系統(tǒng)所實現(xiàn)的全貌)(二)建設(shè)內(nèi)容(詳細程度達到可以作為驗收的依據(jù))(三)系統(tǒng)的總體結(jié)構(gòu)(四)信息的分類編碼體系(五)質(zhì)量保證體系(列出系統(tǒng)設(shè)計所遵循的標(biāo)準(zhǔn))四、建設(shè)方案(一)網(wǎng)絡(luò) ( 通過分析和比較,推薦2 至 3 種系統(tǒng)建

20、設(shè)方案)1. 廣域網(wǎng)(描述與國家系統(tǒng)、數(shù)字福建基礎(chǔ)設(shè)施、下級系統(tǒng)、橫向系統(tǒng)、互聯(lián)網(wǎng)以及內(nèi)部網(wǎng)的關(guān)系;描述系統(tǒng)采用的各種接入方式)2. 局域網(wǎng)(系統(tǒng)內(nèi)所有信息點的網(wǎng)絡(luò)設(shè)計, 包括結(jié)構(gòu)、類型及采用的技術(shù))3.IP 地址及域名系統(tǒng)(包括與國家系統(tǒng)、數(shù)字福建以及下級系統(tǒng)的地址規(guī)范)4. 網(wǎng)絡(luò)管理系統(tǒng) (描述網(wǎng)管系統(tǒng)的類型、 功能、管理范圍以及操作規(guī)程)(二)主機及存儲系統(tǒng) (通過分析和比較,推薦 2 至 3 種系統(tǒng)建設(shè)方案;包括小型機、PC 服務(wù)器和存儲設(shè)備的業(yè)務(wù)應(yīng)用范圍、功能指標(biāo)、以及它們之間的8邏輯關(guān)系)(三)系統(tǒng)軟件 (通過分析和比較,推薦 2 至 3 種系統(tǒng)軟件的類型、購買數(shù)量、版本及應(yīng)用范圍

21、)1. 操作系統(tǒng)2. 數(shù)據(jù)庫管理系統(tǒng)3. 應(yīng)用服務(wù)器軟件4. 群件系統(tǒng)5. 工具軟件(四)應(yīng)用軟件1. 業(yè)務(wù)處理流程2. 功能設(shè)計(細化到模塊)3. 數(shù)據(jù)庫設(shè)計4. 技術(shù)路線5. 開發(fā)方案(五)其他系統(tǒng) (通過分析和比較,推薦2 至 3 種系統(tǒng)建設(shè)方案)1. 安全系統(tǒng)(根據(jù)系統(tǒng)的安全密級要求設(shè)計,包括防火墻、防病毒、入侵檢測、漏洞掃描、身份認證、數(shù)字簽名、信息加密、系統(tǒng)安全、制度建設(shè)等)2. 外部設(shè)備3. 布線系統(tǒng)4. 機房(根據(jù)系統(tǒng)的安全等級要求設(shè)計機房裝修和硬件設(shè)備, 包括電源系統(tǒng)、保密措施、空調(diào)、防雷、地線等)5. 接口系統(tǒng)(各系統(tǒng)之間的連接設(shè)計)(六)關(guān)鍵技術(shù)(七)標(biāo)準(zhǔn)化工作(八)數(shù)據(jù)

22、采集(數(shù)據(jù)采集的來源、方式、主體等)五、設(shè)備配置及安裝 (包括邏輯設(shè)計中出現(xiàn)的所有設(shè)備,每個設(shè)備均包括型號及性能指標(biāo)參數(shù))(一)網(wǎng)絡(luò)設(shè)備(二)存儲設(shè)備(三)主機設(shè)備(四)安全設(shè)備(五)外部設(shè)備(六)布線方案(七)機房設(shè)計(八)應(yīng)用軟件運行環(huán)境六、培訓(xùn)及維護(一)應(yīng)用培訓(xùn) (詳細列出培訓(xùn)計劃)(二)運行測試設(shè)計 (列出測試方案)(三)系統(tǒng)維護機制與定員 (提出系統(tǒng)運行所需的人員配備等必要條件及管理機制)七、項目實施(一)項目管理(二)項目建設(shè)工期及進度計劃( 項目進展跟蹤, 為分期驗收提供依據(jù) )(三)施工注意事項9八、概算編制(一)編制說明1編制依據(jù)2各種費率的取定3概算修改內(nèi)容4工程投資(二

23、)概算表格九、項目招標(biāo)方式十、項目效益分析十一、圖紙十二、設(shè)計單位資質(zhì)證書2.3 系統(tǒng)流程圖分析員在進行可行性研究時需要了解和分析現(xiàn)有的系統(tǒng),并以概括的形式表達對現(xiàn)有系統(tǒng)的認識。而在進入設(shè)計階段以后還需將設(shè)想的新系統(tǒng)的邏輯模型轉(zhuǎn)變成物理模型,因此需要描繪未來的物理系統(tǒng)的概貌。系統(tǒng)流程圖是概括地描繪物理系統(tǒng)的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪組成系統(tǒng)的每個部件 ( 程序、文檔、數(shù)據(jù)庫和人工過程等 ) 。系統(tǒng)流程圖表達的是數(shù)據(jù)在系統(tǒng)各部件之間流動的情況,而不是對數(shù)據(jù)進行加工處理的控制過程,因此盡管系統(tǒng)流程圖的某些符號和程序流程圖的符號形式相同,但是它表示的是物理數(shù)據(jù)流圖而不是程序流

24、程圖。2.3.1系統(tǒng)流程圖的符號系統(tǒng)流程圖符號如表2-1 所示。表 2-1 基本符號10表 2-1 基本符號續(xù)以概括方式描述一個實際系統(tǒng)時, 用表 2-1 列出的基本符號就足夠了, 但當(dāng)需要更具體地描繪一個物理系統(tǒng)時,還需要使用表 2-2 所示的系統(tǒng)符號。表 2-2 系統(tǒng)符號2.3.2系統(tǒng)流程圖的作用制作系統(tǒng)流程圖的過程是系統(tǒng)分析員全面了解系統(tǒng)業(yè)務(wù)處理概況的過程,它是系統(tǒng)分析員作進一步分析的依據(jù)。系統(tǒng)流程圖是系統(tǒng)分析員、管理人員、業(yè)務(wù)操作人員相互交流的工具。系統(tǒng)分析員可直接在系統(tǒng)流程圖上擬出可以實現(xiàn)計算機處理的部分??衫孟到y(tǒng)流程圖來分析業(yè)務(wù)流程的合理性。2.3.3系統(tǒng)流程圖舉例下面舉兩個例子

25、說明系統(tǒng)流程圖使用方法。11某圖書館借書系統(tǒng)流程如圖2-1 所示:圖 2-1 圖書館借書系統(tǒng)流程圖讀者須先被驗明證件后才能進入查詢室; 讀者在查詢室內(nèi)通過檢書卡或利用終端檢索圖書數(shù)據(jù)庫來查找自己所需的圖書;找到所需圖書并填好索書單后到服務(wù)臺借書;如果所借圖書還有剩余,管理員將填好借書單,從庫房中取出圖書交給讀者。某高校的考試考務(wù)業(yè)務(wù)流程如圖2-2 所示:圖 2-2 考試考務(wù)業(yè)務(wù)流程圖命題人員依據(jù)教學(xué)大綱的要求,從試題庫中抽取試題,生成試卷;教務(wù)部門印制試卷,安排考試日程及監(jiān)考人員,并制定日程安排表;根據(jù)考試日程安排,學(xué)生考試,完成答卷;教師批改試卷, 生成課程成績單, 交成績管理子系統(tǒng)處理。系

26、統(tǒng)流程圖的習(xí)慣畫法是使信息在圖中自頂向下或從左向右流動。由圖 2-1 和圖 2-2 可知,系統(tǒng)流程圖并沒有指明每個部件的具體工作過程,每個符號用黑盒子形式定義了組成系統(tǒng)的一個部件。圖中的箭頭確定了信息通過系統(tǒng)的邏輯路徑(信息流動路徑) 。2.3.4分層軟件工程的一個基本原則是采用分層次抽象,自頂向下、逐層細化的辦法控12制軟件開發(fā)過程的復(fù)雜性。面對復(fù)雜的系統(tǒng)時,一個比較好的方法是分層次地描繪這個系統(tǒng)。 所以在繪制系統(tǒng)流程圖時,首先繪制高層次的系統(tǒng)流程圖,描繪系統(tǒng)總體概貌,表明系統(tǒng)的關(guān)鍵功能。然后分別對每個關(guān)鍵功能進行詳細描述,畫在單獨的一頁紙上。這種分層次的描繪方法便于閱讀者按從抽象到具體的過

27、程逐步深入地了解一個復(fù)雜的系統(tǒng)。2.4 制定軟件計劃為了成功地開發(fā)軟件, 必須知道要做的工作的范圍、 要用的資源、 要花的工作量及應(yīng)遵循的進度,這些就是軟件計劃的任務(wù)。軟件計劃的內(nèi)容及過程如下。2.4.1確定軟件計劃軟件計劃以可行性研究報告為基礎(chǔ),由軟件人員和用戶共同確立軟件的功能和限制,提出軟件計劃任務(wù)書。計劃任務(wù)書是對軟件開發(fā)總體思想的一份簡潔的文檔說明,通常使用自然語言進行描述,必要時也可輔以圖表說明。文檔的內(nèi)容不涉及特別的專業(yè)知識,因此,無論是管理人員、技術(shù)人員還是一般的用戶都能很好地理解軟件需求描述。一個典型的軟件計劃任務(wù)書的內(nèi)容應(yīng)該包括如下 4 個方面。2.4.1.1軟件的工作范圍

28、軟件計劃的第一個任務(wù)是確定軟件工作范圍, 主要是對軟件功能、 性能、可靠性和接口等方面的需求進行描述,形成一個總體的任務(wù)說明,作為指導(dǎo)軟件開發(fā)各階段的工作的依據(jù)。功能需求說明是給出整個軟件系統(tǒng)所提供的服務(wù)的簡短描述, 主要由用戶提出要求,并與軟件人員共同商量,確定軟件功能的具體內(nèi)容。在進行功能需求描述時,重點在用戶所關(guān)心的最終服務(wù)要求,描述中應(yīng)盡量避免涉及與實現(xiàn)有關(guān)的概念和細節(jié),必要時,可根據(jù)情況進行功能分解,并提供更多的子功能描述。性能需求考慮系統(tǒng)提供的服務(wù)應(yīng)遵循的一些時間、 空間上的要求, 即對系統(tǒng)的執(zhí)行效率和所需存儲空間的要求。主要包括處理時間的約束、存儲限制以及具體使用環(huán)境的特點,對功

29、能和性能要同時考慮才能做出正確的估計。由于軟件將與計算機系統(tǒng)的其他部分交互作用, 計劃者必須考慮每一接口界面的性質(zhì)和復(fù)雜程度,以確定對開發(fā)資源、成本及進度的影響。最后,還要考慮軟件可靠性的要求,不同性質(zhì)的軟件有不同的要求,特殊性13質(zhì)的軟件可能要求特殊考慮以保證可靠性。2.4.1.2環(huán)境資源軟件計劃的另一任務(wù)是分析軟件開發(fā)所需要的資源情況,包括人力資源、 硬件和軟件的分配和使用情況,對每種資源的描述基本上可從資源的基本狀況描述、對資源要求的日程安排及對資源應(yīng)用的持續(xù)時間3 個方面來說明。其中,人是最主要的軟件開發(fā)資源。參與軟件開發(fā)的人員主要包括項目負責(zé)人、管理人員、系統(tǒng)分析員(高級技術(shù)人員)及

30、相關(guān)專業(yè)的程序員等。對這些人員的分配和使用需要考慮開發(fā)軟件的實際情況。如果開發(fā)的是相對較小的軟件項目,開發(fā)時間較短,人員一般需要一個或少數(shù)幾個人就可以完成所有的軟件開發(fā)工作。如果是開發(fā)大型的軟件工程項目,由于開發(fā)的持續(xù)時間長,參加人員的數(shù)量多,在整個生命周期中,人員組成的變動是不可避免的,這時必須考慮對人力資源的有效利用,合理規(guī)劃各開發(fā)階段的人員配置。圖 2-3 描繪了開發(fā)一個典型軟件時,在軟件工程不同階段對不同人員的要求。圖 2-3 軟件工程不同階段對不同人員的要求在項目需求分析和總體設(shè)計階段, 主要是高級技術(shù)人員參加; 進入系統(tǒng)詳細設(shè)計和編碼階段,主要由程序員承擔(dān)設(shè)計和編碼工作;而測試階段

31、各層次技術(shù)和管理人員都要求參加。硬件也是軟件開發(fā)過程中必不可少的資源。 主要包括開發(fā)系統(tǒng)、 目標(biāo)機器和新系統(tǒng)的其他部件。其中,開發(fā)系統(tǒng)是指軟件開發(fā)過程中使用的計算機系統(tǒng),它14能夠提供支持系統(tǒng)開發(fā)要求的多種軟件開發(fā)平臺,滿足用戶信息存儲與通信的要求,能夠模擬用戶運行環(huán)境。目標(biāo)機器是指目標(biāo)軟件實際運行的硬件系統(tǒng),是支撐軟件正常運行的配置。另外硬件資源還包括支撐系統(tǒng)運行的其他部件。從成本效益出發(fā),目標(biāo)機器應(yīng)該是在滿足用戶需求前提下的最低限度系統(tǒng)配置。軟件資源是指系統(tǒng)開發(fā)、 運行要求的支持軟件系統(tǒng), 這些軟件資源在軟件開發(fā)中起輔助的支持作用,有些甚至可以成為新軟件的一部分,比如操作系統(tǒng)、程序設(shè)計開發(fā)

32、環(huán)境、數(shù)據(jù)庫系統(tǒng)或特定領(lǐng)域的軟件包等。由于市場上開發(fā)的各類支持軟件很多, 經(jīng)過實踐檢驗且被認可的軟件也有不少,因此,對軟件資源的選擇余地很大。綜合技術(shù)、經(jīng)濟和操作等可行性因素,選擇一種有效的支持軟件組合,可以極大地提高軟件開發(fā)效率與質(zhì)量。選擇指定支持軟件的原則如下。該支持軟件是軟件開發(fā)中必不可少的資源。借助該支持軟件可以顯著提高質(zhì)量, 減少開發(fā)工作量, 且獲得該軟件的費用應(yīng)該小于等于不使用該軟件進行開發(fā)所要求的費用。若獲得的軟件資源需經(jīng)過部分修改才能有效使用, 則需考慮修改可能需要的費用。如果該費用所帶來的收益超過開發(fā)同等軟件所需的費用, 則可考慮使用。否則如果該費用所帶來的收益小于開發(fā)同等軟

33、件所需的費用,則需考慮更換其他軟件或自行開發(fā)。所有軟件資源的獲取手段應(yīng)合法、有效。2.4.1.3進度安排進度安排是軟件計劃工作中一項困難的任務(wù)。 較好的情況是軟件開發(fā)項目的進度安排從最佳利用各種開發(fā)資源的角度出發(fā), 估計各開發(fā)階段所需的工作時間,最后得到總的工作時間, 這是最合理的進度安排情況。 而實踐中最常見的情況是,用戶已經(jīng)確定軟件最終交付的日期,軟件開發(fā)人員必須在規(guī)定的時間期限內(nèi)完成任務(wù),這就使得計劃者必須綜合考慮各種因素,合理組織、分配各種可用資源,盡可能并行安排工作,保證能夠在指定期限內(nèi)完成開發(fā)任務(wù)。進度安排的主要內(nèi)容進度安排的主要工作是制定軟件進度表, 以明確開發(fā)各階段的任務(wù)和時間

34、安排情況。 軟件進度表的內(nèi)容包括軟件的任務(wù)劃分情況、各任務(wù)的起始時間和結(jié)束15時間、各任務(wù)的工作量和所需的人數(shù)、各任務(wù)之間的銜接關(guān)系、各任務(wù)所需的資源情況、各任務(wù)完成后所應(yīng)提交的文檔以及對各任務(wù)的審查和審查記錄等。在軟件開發(fā)過程中,嚴(yán)格按照進度表開展工作,并確保各任務(wù)在規(guī)定時限內(nèi)完成。對任務(wù)的時間進度安排可采用數(shù)據(jù)結(jié)構(gòu)中求關(guān)鍵路徑法,當(dāng)估計出各任務(wù)的工作量和時間要求以后,確定各任務(wù)的開發(fā)時間限制,找出影響開發(fā)進度的關(guān)鍵任務(wù),通過縮短這些關(guān)鍵任務(wù)的時間來確保開發(fā)任務(wù)及時完成。在做進度安排計劃時, 還需要考慮人員的使用問題, 要正確處理軟件開發(fā)進度與開發(fā)人員數(shù)量的關(guān)系。為保證軟件開發(fā)進度,開發(fā)人數(shù)

35、不能太少,但也不是說開發(fā)的人數(shù)越多開發(fā)進度越快,開發(fā)進度與人數(shù)之間不是簡單的正比關(guān)系。人數(shù)的增多只能說明每個人的任務(wù)減少,但同時人員的增加意味著增加了開發(fā)人員之間信息交流的復(fù)雜性,可能還會影響進度。因此,人數(shù)選擇的較好的比例關(guān)系是 402040 規(guī)則,即在軟件開發(fā)中, 軟件開發(fā)各階段的人員配備應(yīng)按照以下比例分配:編碼前的工作占 40,編碼占全部工作量的 20,編碼后的工作占 40。402040 規(guī)則是一個指導(dǎo)性的參考標(biāo)準(zhǔn),這種分配強調(diào)了軟件需求分析、設(shè)計以及軟件測試的重要性。軟件進度計劃的編制方法編制項目進度計劃的常用方法有甘特圖與網(wǎng)絡(luò)計劃法。甘特圖法甘特圖(Gantt Chart) 又稱線條

36、圖,是一種對各項活動進行計劃調(diào)度與控制的圖表,它具有簡單、醒目和便于編制等特點。一般甘特圖的橫方向表示時間,縱方向列出工作, 主要符號及含義如圖 2-4 所示。16圖 2-4 甘特圖中的符號及含義用甘特圖編制工作計劃示例如圖 2-5 所示。圖 2-5 甘特圖示例甘特圖標(biāo)明了各任務(wù)的計劃進度和當(dāng)前進度, 能夠動態(tài)反映軟件項目開發(fā)進展的情況。但這種圖難以反映多個任務(wù)之間存在的復(fù)雜的邏輯關(guān)系。網(wǎng)絡(luò)計劃法網(wǎng)絡(luò)計劃法是用網(wǎng)狀圖表安排與控制各項活動的方法, 可通過對網(wǎng)狀圖的分析,方便地確定完成整個工程至少需要多少時間,以及哪些子工程是影響工程進度的關(guān)鍵。一般適應(yīng)與工作步驟密切相關(guān)、錯綜復(fù)雜的工程項目的計劃

37、管理。網(wǎng)絡(luò)計劃法中常用的符號及含義如圖2-6 所示;圖 2-6 常用符號及含義一個簡單的網(wǎng)絡(luò)計劃如圖 2-7 所示。17圖 2-7 網(wǎng)絡(luò)計劃簡例網(wǎng)絡(luò)計劃方法的步驟如下。第一步:利用網(wǎng)絡(luò)計劃對項目進度進行控制, 要計算每個事件的最早時間與最遲時間。具體方法如下。事件最早時間:由始點事件順向計算,事件j 的最早時間 Tj E 等于前一事件i 的最早時間 Ti E 加上先行活動(i,j) 的時間。例如:圖 2-7 中事件 2 與事件 3 的最早時間分別為:T2E = T 1E + t 1,2T3E = T 2E + t 2,3= O + 1 = 1= 1 + 5 = 6當(dāng)事件的先行活動有兩個以上時,

38、 事件的最早時間按其中時間最大的活動計算。例如事件 5 取最早時間 12 與 7 中之大者,所以T5 E = 12。事件的最遲時間:由終點事件逆向計算。終點事件的TL 與 TE相等,事件 i的最遲時間 Ti 是后繼事件 j 的最遲時間 Tj L 減去活動(i,j)的時間。例如:圖 2-7 中事件 5 的最遲時間為:T5L = T 6L + t 5,6 = 14 2 = 12當(dāng)事件開始的活動有兩個以上時, 事件的最遲時間取對應(yīng)路線中時間的最小值。例如:事件 4 的最遲時間取 8 與 9 中的小者,所以T4L8。第二步:確定關(guān)鍵路線。如果兩個事件的最早時間與最遲時間相等,則稱其為關(guān)鍵事件,由關(guān)鍵事

39、件聯(lián)結(jié)的各個活動所組成的路線稱為關(guān)鍵路線。圖 2-7 中的關(guān)鍵路線為“12356” 。上述兩種編制開發(fā)計劃的方法, 各有特點。一般將軟件開發(fā)項目的工作計劃分兩個層次:第一層次:按開發(fā)階段安排,以作總體進度的控制。該層次宜采用甘特圖;第二層次:按各開發(fā)階段或子項目的工作步驟安排, 以便能在細節(jié)上安排人力,對項目進度進行控制,該層次宜采用網(wǎng)絡(luò)計劃方法。18由于軟件開發(fā)項目帶有不確定性與不穩(wěn)定性因素, 工作計劃不宜也不可能制定得過于具體,一般可在計劃前預(yù)留一定的機動時間,隨著計劃的進行,情況會逐步明朗,因此可在計劃落實過程中不斷修訂與充實。2.4.1.4軟件成本在計算機發(fā)展的初期,軟件成本在整個計算

40、機系統(tǒng)的成本中僅占很小的比重,軟件成本概算中即使出現(xiàn)數(shù)量級的誤差, 影響也不大。但如今大多數(shù)系統(tǒng)中,一個軟件的成本誤差可能會造成盈利和虧損間的巨大差異,導(dǎo)致嚴(yán)重的后果。由于影響軟件成本的變化因素很多,因此對成本的估算也存在很大的困難。軟件價格計算不可能是精確的,許多可變因素都可能影響軟件的最終價格。但是,可以采用一系列的方法對軟件價格進行估算,從而使估算的結(jié)果基本上是可以接受的。有關(guān)軟件成本估算詳見 2.5 節(jié)。2.4.2復(fù)審軟件計劃在實施軟件計劃之前, 應(yīng)該對軟件計劃的主要內(nèi)容, 包括人員安排、 進度安排、成本估算和開發(fā)資源保證進行復(fù)審。 復(fù)審中涉及有關(guān)軟件工作范圍和軟、硬件資源問題時,應(yīng)該

41、邀請用戶參加,用戶可提出建議,并與軟件開發(fā)人員協(xié)商以確定最終內(nèi)容。復(fù)審內(nèi)容可以分為管理與技術(shù)兩個方面。管理方面主要考慮的問題如下。計劃中描述的工作范圍是否符合用戶的需求?計劃中對資源的描述是否有效、合理?系統(tǒng)開發(fā)存在哪些風(fēng)險?計劃中系統(tǒng)開發(fā)成本與進度要求是否合理?計劃中人員的安排是否合理?技術(shù)評審要求考慮的問題如下。系統(tǒng)的任務(wù)劃分是否合理?系統(tǒng)的功能復(fù)雜性是否與開發(fā)風(fēng)險、成本、進度一致?系統(tǒng)規(guī)格說明是否為后續(xù)的開發(fā)提供了足夠的依據(jù)?系統(tǒng)規(guī)格說明中關(guān)于系統(tǒng)性能的要求是否恰當(dāng)?經(jīng)過評審,如果需要對軟件計劃進行修改,則必須由分析員 ( 計劃制定者)重新查看用戶需求文檔,然后再根據(jù)復(fù)審提出的問題或修改

42、要求進行修訂,形成最終指導(dǎo)軟件開發(fā)實施的計劃文檔。2.5 成本/ 效益分析開發(fā)一個軟件系統(tǒng)實際上是一種投資,期望將來獲得更大的經(jīng)濟效益。軟件系統(tǒng)的經(jīng)濟效益通常表現(xiàn)為減少運行費用或 ( 和) 增加收入。但是,投資開發(fā)新系統(tǒng)往往要承擔(dān)一定風(fēng)險,因為系統(tǒng)的開發(fā)成本可能比預(yù)計的高,效益可能比預(yù)期的低。成本/ 效益分析的目的正是要從經(jīng)濟角度分析開發(fā)一個特定的新系統(tǒng)是否劃算,從而幫助客戶組織的負責(zé)人正確地做出是否投資于這項開發(fā)工程的決定。而為了對比成本和效益,首先需要估計它們的數(shù)量。2.5.1成本估算19為了使開發(fā)項目能夠在規(guī)定的時間內(nèi)完成,而且不超過預(yù)算, 成本估算和管理控制是關(guān)鍵。成本估算是軟件費用管

43、理的核心,也是軟件工程管理中最困難、最易出錯的問題之一。下面介紹一些常用的成本估算方法。自頂向下成本估算這類方法基于軟件的整體。 根據(jù)被開發(fā)項目的整體特性, 首先估算出總的開發(fā)成本,然后在項目內(nèi)部進行成本分配。因這類估計通常僅由少數(shù)上層 ( 技術(shù)與管理) 人員參加,所以屬于專家判斷的性質(zhì)。 這些專家依靠從前的經(jīng)驗,把將要開發(fā)的軟件與過去開發(fā)過的軟件進行比較,以估計新的開發(fā)軟件所需要的工作量和成本。自頂向下估計的缺點是, 對開發(fā)中某些局部的問題或特殊困難容易低估, 甚至沒有考慮到。如果所開發(fā)的軟件缺乏可以借鑒的經(jīng)驗,在估計時就可能出現(xiàn)較大的誤差。當(dāng)參加估計的專家人數(shù)較多時,可采用特爾斐 (Del

44、phi) 法來匯集他們的意見。特爾斐(Delphi) 法的傳統(tǒng)做法是: 把系統(tǒng)定義文件或規(guī)格說明發(fā)給各位專家,各自單獨進行成本估計,填入成本估計表 ( 見圖 2-8) 。圖 2-8 特爾斐成本估計表然后由協(xié)調(diào)人綜合專家意見,摘要通知大家,并開始新的一輪估計。這種估計要反復(fù)多次,直到專家們的意見接近一致為止。自底向上成本估算與自頂向下估計相反, 由底向上估計不是從整體開始, 而是從一個個任務(wù)單元開始。其具體做法是,先將要開發(fā)的系統(tǒng)分解為若干個子系統(tǒng),子系統(tǒng)又分成若干個功能模塊,功能模塊再分成若干個子模塊,直到每一任務(wù)單元的內(nèi)容都足夠明確為止。然后把各個任務(wù)單元的工作量和成本估算出來,匯合成項目的

45、總成本。由于任務(wù)單元的成本可交給各該任務(wù)的開發(fā)人員去估算,得出的結(jié)果常比較實際。這種方法也有缺點。 由于具體工作人員往往只注意到自己范圍內(nèi)的工作, 對綜合測試、質(zhì)量管理和項目管理等涉及全局的費用可能估計不足, 甚至完全忽視。因此,就會有可能使成本估計偏低?;诖a行的成本估算與其他商品比較, 軟件成本估算的特殊性是軟件生產(chǎn)過程的非實物性。軟件20的開發(fā)過程也是軟件的生產(chǎn)過程。軟件是高度知識密集型的產(chǎn)品,開發(fā)過程中,幾乎沒有原材料或者能源消耗,設(shè)備折舊所占比例很小。因此軟件生產(chǎn)的成本主要是勞動力成本,即軟件開發(fā)全過程以勞動力消耗為主的全部代價作為軟件成本。因此軟件生產(chǎn)率是軟件成本估計的基礎(chǔ)。常用

46、的軟件成本估算計量單位有:源代碼行交付的可運行軟件中有效的源程序代碼行數(shù),通常不包括程序中的注釋。工作量指完成一項任務(wù)所需的程序員平均工作時間,其單位可以是人月(PM)、人年(PY)或者人日(PD)。軟件生產(chǎn)率開發(fā)全過程中單位勞動量能夠完成的平均軟件數(shù)量。例如,一個軟件的開發(fā)中工作量分配估算數(shù)據(jù)如表2-3 所示:表 2-3 工作量分配估算表若共交付源代碼2900 行,其中包括 500 行系統(tǒng)演示和測試代碼,則生產(chǎn)率是:生產(chǎn)率 = 2400行/9PM = 267 LOC/PM (LOC:Line Of Code)軟件生產(chǎn)率不僅可以用于成本估算,也可以用于軟件計劃的進度估算。行代碼估算方法是比較簡

47、單的定量估算方法。通常根據(jù)經(jīng)驗和歷史數(shù)據(jù)估計系統(tǒng)實現(xiàn)后的各功能的源代碼行數(shù),然后用每行代碼的平均成本相乘得到軟件功能成本估算。每行代碼的平均成本取決于軟件復(fù)雜程度和開發(fā)人員的工資水平。如果用軟件生產(chǎn)率相乘,則得預(yù)期開發(fā)期。進行功能或者任務(wù)分解,則可以估計開發(fā)進度。任務(wù)分解成本估算首先把軟件開發(fā)工程分解為若干個相對獨立的任務(wù), 再分別估計每個單獨的開發(fā)任務(wù)的成本,最后加起來得出軟件開發(fā)工程的總成本。 估計每個任務(wù)的成本21時,通常先估計完成該項任務(wù)需要用的人力,以人 月為單位,再乘以每人每月的平均工資而得出每個任務(wù)的成本。通常按開發(fā)階段劃分任務(wù)。 如果軟件系統(tǒng)很復(fù)雜, 由若干個子系統(tǒng)組成, 則可

48、以把每個子系統(tǒng)再按開發(fā)階段進一步分成更小的任務(wù)。應(yīng)該針對每個開發(fā)工程的具體特點, 并且參照以往的經(jīng)驗盡可能準(zhǔn)確地估計每個階段實際需要使用的人力,包括編制文檔需要的人力。 表 2-2 給出了各階段在生命周期中所占百分比。表 2-4 各階段在生命周期中所占百分比任務(wù)分解技術(shù)步驟如下:確定任務(wù),即每個功能都必須經(jīng)過需求分析、設(shè)計、編碼和測試工作。確定每項任務(wù)的工作量,估算需要的人月數(shù)。找出與各項任務(wù)的對應(yīng)的勞務(wù)費數(shù)據(jù),即每個單位工作量成本(元/人月)。因為各階段的勞務(wù)費不同, 需求分析和概要設(shè)計階段需要較多的高級技術(shù)人員;而詳細設(shè)計、編碼和早期測試要求較多初級技術(shù)人員,而他們的勞務(wù)費是不同的。計算各

49、個功能和各個階段的成本和工作量,然后計算總成本和總工作量。經(jīng)驗統(tǒng)計估算模型參數(shù)方程靜態(tài)單變量模型的一般形式:代價 = C1x( 估計特點)X exp(C2)式中代價可以是工作量、需要人數(shù)、項目持續(xù)時間等;估計特點通常是估計源代碼行數(shù)。例如Walston-Felix模型為:工作量 E = 5.2L 0.91 (PM)22項目時間 D = 4.1L 0.35 ( 月)源代碼長 L = 2.47E 0.36 ( 月)程序員人數(shù) S = 0.54E 0.6 ( 人)文檔資料 DOCL = 2.47E0.35 ( 頁)其中 L 為估計目標(biāo)程序指令代碼條數(shù),對于高級語言源程序, 應(yīng)該在不包括程序注釋、編譯命令的前提下,將所

溫馨提示

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

最新文檔

評論

0/150

提交評論