一胆屿、軟件項(xiàng)目計(jì)劃
1箭养、目標(biāo)
軟件項(xiàng)目計(jì)劃的目標(biāo)是提供一個(gè)框架慕嚷,使得管理人員對資源、成本和進(jìn)度做出合理估算毕泌。
這些估算應(yīng)當(dāng)在項(xiàng)目開始時(shí)的一個(gè)有限的時(shí)間段內(nèi)做出喝检,并且隨著項(xiàng)目的進(jìn)展定期進(jìn)行更新。
2撼泛、步驟
(1)Scoping(范圍)—— 確定軟件范圍挠说;
(2)Estimation(估算)—— 估算資源、工作量愿题、成本损俭;
(3)Risk(風(fēng)險(xiǎn))—— 風(fēng)險(xiǎn)管理蛙奖;
(4)Schedule(進(jìn)度)—— 進(jìn)度安排;
(5)Control strategy(控制策略)—— 指定控制策略杆兵。
二雁仲、軟件范圍
1、軟件范圍定義
(1)估算開始時(shí)琐脏,應(yīng)對功能進(jìn)行評價(jià)攒砖,并適當(dāng)細(xì)化以提供更詳細(xì)的細(xì)節(jié)。
(2)由于成本和進(jìn)度的估算都與功能有關(guān)日裙,因此常常采用某種程度的功能分解吹艇。
(3)軟件范圍包括功能、性能昂拂、約束掐暮、接口和可靠性,無二義和可理解政钟。
2路克、軟件范圍——引例
思考這樣一個(gè)問題:針對這個(gè)軟件的范圍描述,請找出軟件范圍的功能养交、性能精算、約束、接口等碎连。
考慮開發(fā)一個(gè)驅(qū)動傳送帶分類系統(tǒng)(CLSS)的軟件灰羽,對該軟件的范圍陳述如下:
(1)傳送帶分類系統(tǒng)將沿傳送帶移動的盒子進(jìn)行分類,每個(gè)盒子由一個(gè)包含零件號的條形碼來標(biāo)識鱼辙,并在傳送帶的末端分送到六個(gè)箱子中的一個(gè)廉嚼,這些盒子要通過一個(gè)由條形碼閱讀器和一臺PC所組成的分類站。
(2)分類站的PC連接到一個(gè)分流器上倒戏,它把盒子分送到不同的箱子中怠噪,盒子以隨機(jī)的順序通過且其間的距離相同,傳送帶以每分鐘5英尺的速度移動杜跷。
(3)CLSS軟件以和傳送帶速度一致的時(shí)間間隔接受來自條形碼閱讀器的信息傍念。條形碼數(shù)據(jù)被解碼成盒子的標(biāo)識格式,軟件將在最多可容納1000個(gè)條目的零件號數(shù)據(jù)庫中進(jìn)行檢索葛闷,以確定當(dāng)前在閱讀器(分類站)位置的盒子應(yīng)該放到哪個(gè)箱子中憋槐。
(4)該箱子的信息被傳送到分流器,以把盒子放進(jìn)合適的箱子中淑趾,每個(gè)盒子所放進(jìn)的箱子的記錄均被保存起來以供以后提取及報(bào)告阳仔。
(5)CLSS軟件同時(shí)也接受來自脈沖流速計(jì)的輸入,用于使控制信號與分流器同步扣泊,根據(jù)分類站和分流器之間產(chǎn)生的脈沖數(shù)近范,軟件將產(chǎn)生一個(gè)控制信號給分流器赤嚼,以適當(dāng)?shù)囟ㄎ缓凶印?/p>
通過分析,這個(gè)過程將產(chǎn)生如下功能:
- 讀取條形碼輸入
- 讀取脈沖流速計(jì)
- 解碼零件編碼數(shù)據(jù)
- 檢索數(shù)據(jù)庫
- 確定合適的箱子
- 產(chǎn)生分流器的控制信號
- 維護(hù)盒子目的地的記錄
性能取決于傳送帶的速度顺又,對于每個(gè)盒子的處理必須在下個(gè)盒子到達(dá)條形碼閱讀器之前完成。
約束條件包括:
- 盒子以隨機(jī)的順序通過且其間的距離相同等孵,傳送帶以每分鐘5英尺的速度移動稚照;
- CLSS軟件以和傳送帶速度一致的時(shí)間間隔接受來自條形碼閱讀器的信息;
- 控制信號與分流器同步俯萌。
接口:條形碼閱讀器果录,分流器,PC等
三咐熙、影響估算的因素
軟件項(xiàng)目管理過程開始于項(xiàng)目計(jì)劃弱恒,在做項(xiàng)目計(jì)劃時(shí),重要的一項(xiàng)活動就是估算棋恼。
那么返弹,影響估算的因素有哪些呢?
復(fù)雜性越高爪飘,估算的風(fēng)險(xiǎn)就越高义起。
項(xiàng)目的規(guī)模越大,開發(fā)工作量越大师崎,估算的風(fēng)險(xiǎn)越高默终。
項(xiàng)目的結(jié)構(gòu)化程度越高,進(jìn)行精確估算的能力就能提高,而風(fēng)險(xiǎn)將減少犁罩。
歷史信息的有效性也影響估算的風(fēng)險(xiǎn)齐蔽。歷史信息越有效, 總的風(fēng)險(xiǎn)就越少。
如果對軟件項(xiàng)目的作用范圍還不是十分清楚床估,或者用戶的要求經(jīng)常變更含滴,也會增加估算的風(fēng)險(xiǎn)。
計(jì)劃人員應(yīng)當(dāng)要求在軟件系統(tǒng)的規(guī)格說明中給出完備的功能丐巫、性能蛙吏、接口的定義。
四鞋吉、軟件項(xiàng)目資源
軟件項(xiàng)目計(jì)劃的第二個(gè)任務(wù)是對完成該軟件項(xiàng)目所需的資源進(jìn)行估算鸦做。
1、軟件項(xiàng)目資源構(gòu)成
(1)最基本的谓着、重要的資源——人員泼诱;
(2)現(xiàn)成的用意支持軟件開發(fā)的工具——硬件工具;
(3)現(xiàn)成的用意支持軟件開發(fā)的工具——軟件工具(CASE)赊锚;
(4)可復(fù)用構(gòu)件治筒。
2屉栓、分析圖
接下來對各構(gòu)成要素進(jìn)行一一分析。
3耸袜、人力資源
(1)在考慮各種軟件開發(fā)資源時(shí)友多,人是最重要的資源;
(2)在安排開發(fā)活動時(shí)必須考慮人員的技術(shù)水平堤框、專業(yè)域滥、人數(shù)、以及在開發(fā)過程中對各階段人員的需要蜈抓;
(3)對于一些規(guī)模較小的項(xiàng)目启绰,只要向?qū)<易鲂┳稍儯苍S一個(gè)人就可以完成所有的軟件工程步驟沟使;
(4)對一些規(guī)模較大的項(xiàng)目委可,在整個(gè)軟件生存期中,各種人員的參與情況是不一樣的腊嗡。
以下通過一張圖了解各階段人員對軟件生命周期的共享度着倾。
4、硬件資源
硬件是作為軟件開發(fā)項(xiàng)目的一種工具而投入的燕少,分別包含以下三種類型:
(1)宿主機(jī)(Host)—— 軟件開發(fā)時(shí)使用的計(jì)算機(jī)及外圍設(shè)備屈呕;
(2)目標(biāo)機(jī)(Target)—— 運(yùn)行已經(jīng)開發(fā)成功軟件的計(jì)算機(jī)及外圍設(shè)備;
(3)其它硬件設(shè)備 —— 專用軟件開發(fā)時(shí)需要的特殊硬件資源棺亭;
5虎眨、軟件工具
軟件工程人員在軟件開發(fā)期間使用了許多軟件工具來幫助開發(fā)驰坊,這種軟件工具集叫做計(jì)算機(jī)輔助軟件工程(CASE)碰辅。分別包括:
(1)業(yè)務(wù)系統(tǒng)計(jì)劃工具集穆壕;
(2)項(xiàng)目管理工具集洒敏;
(3)支援工具 —— 文檔生成工具平酿、網(wǎng)絡(luò)系統(tǒng)軟件饼疙、數(shù)據(jù)庫盅藻、電子郵件霍骄、通報(bào)板涝缝,以及配置管理工具扑庞;
(4)分析和設(shè)計(jì)工具;
(5)編程工具拒逮;
(6)組裝和測試工具罐氨;
(7)原型化和模擬工具;
(8)維護(hù)工具滩援;
(9)框架工具 —— 這些工具能夠提供建立集成項(xiàng)目支撐環(huán)境(IPSE)的框架栅隐。
6、可復(fù)用構(gòu)件
(1)可復(fù)用的軟件資源,被稱為構(gòu)件租悄〗骶浚可復(fù)用構(gòu)件分別包含:
- 成品(off-the-shelf)構(gòu)件:已存在的構(gòu)件,能夠從第三廠商獲得泣棋,被準(zhǔn)備用于當(dāng)前的項(xiàng)目胶哲,并已被完全確認(rèn)。
- 具有完全經(jīng)驗(yàn)的構(gòu)件:當(dāng)前項(xiàng)目成員在這些構(gòu)件上有豐富的經(jīng)驗(yàn)潭辈。
- 具有部分經(jīng)驗(yàn)的構(gòu)件:與當(dāng)前項(xiàng)目相關(guān)鸯屿,但需做實(shí)質(zhì)性的修改;項(xiàng)目成員對此構(gòu)件的經(jīng)驗(yàn)有限萎胰。
- 新構(gòu)件:為滿足項(xiàng)目組的特定需要而專門開發(fā)的軟件構(gòu)件。
(2)使用可復(fù)用構(gòu)件時(shí)棚辽,應(yīng)考慮:
- 成品構(gòu)件能夠滿足項(xiàng)目的需求 —— 采用技竟!因?yàn)?code>低成本和低風(fēng)險(xiǎn)。
- 具有完全經(jīng)驗(yàn)的構(gòu)件可以使用屈藐,但在項(xiàng)目計(jì)劃中應(yīng)反映出來 —— 修改和集成的風(fēng)險(xiǎn)可接受榔组。
- 具有部分經(jīng)驗(yàn)的構(gòu)件使用時(shí)必須詳細(xì)分析 —— 如果要大量的修改,所需的成本可能超過開發(fā)新構(gòu)件的成本联逻。
五搓扯、軟件工作量與成本的估算
在軟件成本和工作量的估算中,不確定因素非常大包归,包括人锨推、技術(shù)、環(huán)境公壤、政治等因素都會影響估算結(jié)果换可。
軟件項(xiàng)目的估算能夠通過一系列系統(tǒng)化的步驟,在可接受的風(fēng)險(xiǎn)范圍內(nèi)提供估算結(jié)果厦幅。
對于每一個(gè)可用的軟件成本估算的選擇沾鳄,其效果好壞取決于用于估算的歷史數(shù)據(jù)!
先用一張圖了解軟件工作量和成本的估算方法确憨。
接下來講解三種估算方法译荞。
1、基于LOC估算工作量和成本
(1)估算步驟
①給出軟件范圍 —— 項(xiàng)目計(jì)劃人員可對每一個(gè)分解的功能提出一個(gè)有代表性的估算值范圍休弃;
②進(jìn)行功能分解 —— 利用歷史數(shù)據(jù)或憑實(shí)際經(jīng)驗(yàn)(當(dāng)其它的方法失效時(shí))吞歼,對每個(gè)功能分別按最佳的、可能的塔猾、悲觀的三種情況給出LOC或FP估計(jì)值 浆熔,記作a、m、b医增;
③估算每一個(gè)子功能 —— 計(jì)算LOC或FP的期望值 E慎皱;
-
④計(jì)算總LOC數(shù)(∑) —— <u>所有子功能的總估算變量值除以相應(yīng)于該估算變量的平均生產(chǎn)率度量</u>得到項(xiàng)目的總工作量;
例如,若假定總的FP估算值是310叶骨,基于過去項(xiàng)目的平均FP生產(chǎn)率是 5.5 FP/PM茫多,則項(xiàng)目的總工作量是:工作量 = 310/5.5 = 56 PM,即每個(gè)月需要56個(gè)人
-
⑤給出兩個(gè)歷史數(shù)據(jù) ——
第一種:給出生產(chǎn)率和勞動率價(jià)格忽刽,可以算出工作量和成本天揖;
第二種:給出生產(chǎn)率和每行代碼成本,也可以算出工作量和成本跪帝。
下面通過一張圖了解這兩種方法分別如何計(jì)算出工作量和成本:
基于LOC估算工作量和成本
(2)引例
系統(tǒng)定義評審指明今膊,軟件是在一個(gè)工作站上運(yùn)行,其接口必須使用各種計(jì)算機(jī)圖形設(shè)備伞剑,包括鼠標(biāo)器斑唬、數(shù)字化儀、高分辨率彩色顯示器和激光打印機(jī)黎泣。在這個(gè)實(shí)例中恕刘,使用LOC做為估算變量。根據(jù)系統(tǒng)規(guī)格說明抒倚, 軟件范圍的初步敘述如下:
“軟件將從操作員那里接收2維或3維幾何數(shù)據(jù)褐着,操作員通過用戶界面與 CAD系統(tǒng)交互并控制它,這種用戶界面將表現(xiàn)出很好的人機(jī)接口設(shè)計(jì)特性托呕。所有的幾何數(shù)據(jù)和其它支持信息保存在一個(gè)CAD數(shù)據(jù)庫內(nèi)含蓉。要開發(fā)一些設(shè)計(jì)分析模塊以產(chǎn)生在各種圖形設(shè)備上顯示的輸出。軟件要設(shè)計(jì)得能被控制项郊,并能與各種外部設(shè)備進(jìn)行交互谴餐,外部設(shè)備包括鼠標(biāo)器、數(shù)字化儀呆抑、激光打印機(jī)和繪圖儀岂嗓。”
從以上的例子可以得出:
①經(jīng)過分解, 識別出下列主要軟件功能:
- 用戶界面和控制功能鹊碍;
- 二維幾何分析厌殉;
- 三維幾何分析;
- 數(shù)據(jù)庫管理侈咕;
- 計(jì)算機(jī)圖形顯示功能公罕;
- 外設(shè)控制PC;
- 設(shè)計(jì)分析模塊耀销。
②可得到如下估算表:
功能 最佳值 a 可能值 m 悲觀值 b 期望值 E 元/行 行/PM 成本(元) 工作量(PM) 用戶接口控制 1800 2400 2650 2340 14 315 32760 7.4 二維幾何造型 4100 5200 7400 5380 20 220 107600 24.4 三維幾何造型 4600 6900 8600 6800 20 220 136000 30.9 數(shù)據(jù)結(jié)構(gòu)管理 2950 3400 3600 3350 18 240 60300 13.9 計(jì)算機(jī)圖形顯示 4050 4900 6200 4950 22 200 108900 24.7 外部設(shè)備控制 2000 2100 2450 2140 28 140 59920 15.2 設(shè)計(jì)分析 6600 8500 9800 8400 18 300 151200 28.0 總計(jì) 33360 656680 144.5 ③從歷史的基線數(shù)據(jù)求出生產(chǎn)率度量楼眷,即 行/PM 和 元/行。
④根據(jù)復(fù)雜性程度的不同,對各功能使用不同的生產(chǎn)率度量值罐柳。根據(jù)估算表可得:
成本 = LOC的期望值E 乘以 元/行掌腰;
工作量 = LOC 的期望值E 除以 行/PM;
因此可得张吉,該項(xiàng)目總成本的估算值為657,000元齿梁,總工作量的估算值為每個(gè)月145人。
(3)基于LOC估算的相關(guān)計(jì)算
Question:
基于LOC估算某軟件項(xiàng)目的工作量和人工成本肮蛹,假設(shè)項(xiàng)目的子功能有三個(gè)勺择,估算的LOC數(shù)分別為1000,2000伦忠,3000省核,項(xiàng)目的生產(chǎn)率為600LOC/PM,勞動力價(jià)格為6000元/PM昆码,則項(xiàng)目總的LOC數(shù)气忠、工作量、人工成本分別為多少未桥?寫出計(jì)算公式及計(jì)算過程笔刹。
Answer:
2芥备、基于FP估算工作量和成本
(1)估算步驟
①給出軟件范圍冬耿;
②進(jìn)行功能分解(無需很細(xì));
③計(jì)算五個(gè)信息域計(jì)數(shù)值萌壳;
④計(jì)算總計(jì)算值(應(yīng)考慮加權(quán)因子)亦镶;
⑤回答14個(gè)問題,算出∑Fi (Fi為復(fù)雜度校正值) 袱瓮;
⑥計(jì)算FP缤骨;
-
⑦給出兩個(gè)歷史數(shù)據(jù),生產(chǎn)率(FP/PM)尺借、人工價(jià)(元/PM)绊起;
工作量=總FP/生產(chǎn)率=PM;
成本=工作量x人工價(jià)=元
(2)引例
某項(xiàng)目有5個(gè)信息域計(jì)數(shù)和1個(gè)算法計(jì)數(shù)燎斩,如下圖所示虱歪。假設(shè)已知該項(xiàng)目的兩個(gè)歷史數(shù)據(jù),分別為:生產(chǎn)率為4FP/PM栅表,人工價(jià)為3000元/PM笋鄙,試計(jì)算出復(fù)雜度校正值∑Fi,工作量和成本的值怪瓶。
測量參數(shù) | 計(jì)數(shù)值 | 權(quán)重(加權(quán)因子) | 求和 |
---|---|---|---|
輸入數(shù) | 40 | 4 | 160 |
輸出數(shù) | 25 | 5 | 125 |
查詢數(shù) | 12 | 4 | 48 |
文件數(shù) | 4 | 7 | 28 |
外部接口數(shù) | 4 | 7 | 28 |
算法 | 60 | 3 | 18 |
總計(jì)數(shù)值 | 569 | ||
復(fù)雜度調(diào)整因子 | 0.84 | ||
特征點(diǎn) | 478 |
由上圖可知:
復(fù)雜度調(diào)整因子為0.84萧落,即0.65+0.01∑Fi=0.84,由此可計(jì)算出復(fù)雜度校正值∑Fi=19;
若要得到工作量找岖,需先求功能點(diǎn)FP陨倡,即:FP=總計(jì)數(shù)值x(0.65+0.01∑Fi)=569x0.84=478FP;
(3)基于FP估算的相關(guān)計(jì)算
Question:
基于FP估算某軟件項(xiàng)目的工作量和人工成本宣增,假設(shè)項(xiàng)目的輸入數(shù)玫膀、輸出數(shù)、查詢數(shù)爹脾、文件數(shù)帖旨、接口數(shù)分別為59、20灵妨、10解阅、5、2泌霍,加權(quán)因子取平均值4货抄、5、4朱转、10蟹地、7,14個(gè)問題的回答取值總和為15藤为。那么該項(xiàng)目的總計(jì)數(shù)值是多少怪与?項(xiàng)目的功能點(diǎn)FP又是多少?假設(shè)項(xiàng)目的生產(chǎn)率為16FP/PM缅疟,勞動力價(jià)格為6000元/PM分别,則工作量和人工成本分別為多少?寫出計(jì)算公式及計(jì)算過程存淫。
Answer:
寫到這里耘斩,對基于LOC和FP的估算做個(gè)小結(jié):
- 這兩種類型的估算的基本思想都是,先計(jì)算出LOC和FP的值桅咆,然后根據(jù)組織生產(chǎn)率和每個(gè)勞動力價(jià)格(人工價(jià))的歷史數(shù)據(jù)括授,估算總成本和工作量。
- 如果在估算的時(shí)候岩饼,遇到估算差別很大時(shí)荚虚,一般有以下兩種原因:①項(xiàng)目的范圍未能被充分理解或被誤解;②基于問題的估算技術(shù)中所使用的的生產(chǎn)率數(shù)據(jù)對于該應(yīng)用是不合適的忌愚,或是太陳舊了曲管,或是被無用了。
3硕糊、COCOMO Ⅱ模型估算
(1)COCOMO Ⅱ模型中項(xiàng)目估算的三個(gè)階段
階段 | 時(shí)間 | 功能描述(此階段要做什么) |
---|---|---|
應(yīng)用組裝階段(Application Composition) | 早期院水、確定系統(tǒng)性能時(shí) | ①利用應(yīng)用點(diǎn)application point來進(jìn)行估算規(guī)模腊徙;②利用原型來解決高風(fēng)險(xiǎn)問題。 |
早期設(shè)計(jì)階段(early design) | 需求穩(wěn)定檬某,體系結(jié)構(gòu)已建立時(shí) | ①研究可選的體系結(jié)構(gòu)和概念撬腾;②用功能點(diǎn)funtion point來做估算規(guī)模。 |
體系結(jié)構(gòu)后階段(post architecture) | 軟件在構(gòu)造中恢恼,知道更多系統(tǒng)信息時(shí) | ①以FP民傻、LOC作為估算單位。 |
補(bǔ)充說明應(yīng)用點(diǎn)知識:
應(yīng)用點(diǎn)场斑,即對象點(diǎn)漓踢。一種間接的軟件測量,其計(jì)算需要使用以下三個(gè)元素:
- 用戶界面上的屏幕數(shù)screens漏隐;
- 報(bào)表數(shù)reports喧半;
- 建造應(yīng)用可能需要的構(gòu)件數(shù)3GLcomponents。
(2)COCOMO Ⅱ模型估算步驟
- ①計(jì)算屏幕數(shù)青责、報(bào)表數(shù)和構(gòu)件挺据;
- ②計(jì)算對象點(diǎn)OP,即∑(三個(gè)計(jì)算值×加權(quán)因子)脖隶;
- ③計(jì)算NOP=OP × (1-復(fù)用度) 扁耐;
- ④查表得到生產(chǎn)率參數(shù)的值PROD;
- ⑤工作量E=NOP/PROD产阱;
- ⑥給出一個(gè)歷史數(shù)據(jù):人工價(jià)(元/PM)婉称;
- ⑦成本=E×人工價(jià)。
以下給出對象點(diǎn)和PROD的具體數(shù)值表:
圖 不同類型對象的復(fù)雜度加權(quán)
復(fù)雜度加權(quán) | |||
---|---|---|---|
對象類型 | 簡單 | 中等 | 困難 |
屏幕 | 1 | 2 | 3 |
報(bào)表 | 2 | 5 | 8 |
3GL構(gòu)件 | 10 |
圖 不同水平的開發(fā)者經(jīng)驗(yàn)和不同開發(fā)環(huán)境成熟度下的生產(chǎn)率
因素 | 影響 | ||||
---|---|---|---|---|---|
開發(fā)者的經(jīng)驗(yàn)/能力 | 非常低 | 低 | 正常 | 高 | 非常高 |
環(huán)境成熟度/能力 | 非常低 | 低 | 正常 | 高 | 非常高 |
PROD | 4 | 7 | 13 | 25 | 50 |
(3)基于COCOMO Ⅱ模型的計(jì)算
Question:
使用COCOMO II模型來估算構(gòu)造一個(gè)簡單的ATM軟件所需的工作量和人工成本(單位分別是人月和元)心墅,該軟件產(chǎn)生11個(gè)屏幕(有3個(gè)簡單酿矢,3個(gè)中等榨乎,5個(gè)困難)怎燥,10個(gè)報(bào)表(有4個(gè)簡單,6個(gè)困難)蜜暑,72個(gè)構(gòu)件铐姚,復(fù)用度為20%,假設(shè)開發(fā)者的經(jīng)驗(yàn)?zāi)芰楦吒睾矗h(huán)境的成熟度能力為低隐绵,勞動力價(jià)格為5000元/PM。則NOP拙毫、生產(chǎn)率能力PROD依许、工作量E和人工成本C分別為多少。寫出計(jì)算公式及計(jì)算過程缀蹄。
Answer:
寫在最后
創(chuàng)作不易峭跳,如果這篇文章對你有用膘婶,記得點(diǎn)贊收藏哦~