「软件项目管理」成本估算模型——Walston-Felix模型和COCOMO Ⅱ模型
Walston-Felix模型和COCOMO Ⅱ模型
- 序言
- 一、Walston-Felix模型
- 1. 公式
- 2. 舉例
- 二、COCOMO模型(Constructive Cost Model)
- 1. 模型定義
- 2. COCOMO模型的發展
- 3. COCOMO基本原理
- 三、COCOMO 81
- 1. 模型級別
- 2. 項目類型
- 3. 基本COCOMO-81
- (1)公式
- (2)系數表
- (3)舉例
- 4. 中等COCOMO-81
- (1)公式
- (2)系數表
- (3)乘法因子的成本驅動屬性
- (4)乘法因子的值
- (5)舉例
- 5、高級(詳細)COCOMO
- (1)定義
- (2)工作量乘數
- 四、COCOMO Ⅱ
- 1. COCOMO Ⅱ模型中項目估算的三個階段
- 2. 基于COCOMO Ⅱ的計算
- (1)基本模型
- (2)對象點計算
- (3)案例計算
- 八、結束語
- 🛵專欄直通車
序言
在軟件項目的成本計劃中,有一個較為重要的環節是成本估算。那在下面的文章中,我們將講解兩種成本估算的模型: Walston-Felix 模型 和 COCOMO Ⅱ 模型。
下面開始進入本文的講解~
一、Walston-Felix模型
1. 公式
1977年, IBM 的 Walston 和 Felix 提出了如下的估算公式:
- E = 5.2×(KLOC)0.91, KLOC是源代碼行數,E是工作量(以PM計)
- D = 4.1×(KLOC)0.36,D是項目持續時間(以月計)
- S = 0.54×E0.6,S是人員需要量(以人計)
- DOC = 49×(KLOC)1.01 ,DOC是文檔數量(以頁計)
2. 舉例
假設現有某項目,采用 java 語言完成。預估計該項目有 366 個功能點,那么
- L = 366×46 = 16386行 = 16.386 KLOC
- E = 5.2×(KLOC)0.91 = 5.2×16.3860.91= 66 人月
- DOC =49× (KLOC)1.01 = 49×16.3861.01 = 826 頁
二、COCOMO模型(Constructive Cost Model)
1. 模型定義
- 結構化成本模型
- 是目前應用最廣泛的參數型軟件成本估計模型
- 由Barry Boehm 團隊開發的
2. COCOMO模型的發展
COCOMO模型經過兩次發展,分別是:
- COCOMO 81
- COCOMO Ⅱ
3. COCOMO基本原理
將工作量表示為 KLOC 軟件規模和一系列成本因子的函數,基本估算公式為:
PM=A×SE× ∏i=1nEMi\prod_{i=1}^n EM^i∏i=1n?EMi
A 為可以校準的常量;
S 為KLOC軟件規模;
E 為規模的指數,說明不同規模軟件具有的相對規模經濟和不經濟性;
EM 為工作量乘數,反映某個項目特征對完成項目開發所需工作量的影響程度;
n 為描述軟件項目特征的成本驅動因子的個數。
三、COCOMO 81
1. 模型級別
模型級別有三個等級,分別為:
| 基本COCOMO | 靜態單變量模型 |
| 中等COCOMO | 基本模型基礎上考慮影響因素,調整模型 |
| 高級COCOMO | 中等COCOMO模型基礎上考慮各個步驟的影響 |
2. 項目類型
項目類型有三種類型,分別為:
| 有機 Organic | 各類應用程序,例如數據處理、科學計算等 |
| 受硬件的約束比較小,程序的規模不是很大 | |
| 嵌入式 Embedded | 受硬件的約束比較小,程序的規模不是很大 |
| 緊密聯系的硬件、軟件和操作的限制條件下運行,軟件規模任意 | |
| 半有機 Semidetached | 各類實用程序,介于上述兩種軟件之間,例如編譯器(程序) |
| 規模和復雜度都屬于中等或者更高 |
3. 基本COCOMO-81
(1)公式
E= a × (KLOC)b ,其中:
- E:工作量(人月)
- KLOC:是交付的代碼行
- a , b:依賴于項目自然屬性的系數
(2)系數表
| 有機 | 2.4 | 1.05 |
| 半有機 | 3.0 | 1.12 |
| 嵌入式 | 3.6 | 1.2 |
(3)舉例
假設現在有一個 33.3 KLOC 的軟件開發項目,屬于中等規模、半有機型的項目,采用基本COCOMO來開發。請計算出E值。
解: 依據以上題意可得:a=3.0,b=1.12。
因此,最終 E = 3.0 × L 1.12 = 3.0 × 33.3 1.12 = 152 PM
4. 中等COCOMO-81
(1)公式
E= a × (KLOC)b × 乘法因子,其中:
- a、b是系數
- 乘法因子是對公式的校正系數
(2)系數表
| 有機 | 2.8 | 1.05 |
| 半有機 | 3.0 | 1.12 |
| 嵌入式 | 3.2 | 1.2 |
(3)乘法因子的成本驅動屬性
包含四種類型,分別是:
- 產品屬性 → ①軟件可靠性、②軟件復雜性、③數據庫規模
- 平臺屬性 → ④程序執行時間、⑤程序占用內存的大小、⑥軟件開發環境的變化、⑦軟件開發環境的響應速度
- 人員屬性 → ⑧分析員的能力、⑨程序員的能力、⑩有關應用領域的經驗、⑩①開發環境的經驗、⑩②程序設計語言的經驗
- 過程屬性 → ⑩③軟件開發方法的能力、⑩④軟件工具的質量和數量、⑩⑤軟件開發的進度要求
(4)乘法因子的值
上面四種屬性共15個要素,每個要素的調節因子是 Fi (i=1,2,…,15),其中,Fi 的值有:
很低、低、正常、高、很高、極高,共六個等級。正常情況下 Fi=1。
Boehm推薦的Fi 值范圍分別為:(0.70, 0.85, 1.00, 1.15, 1.30, 1.65) 。
但實際的值依據下表所示:
當15個 Fi 的值選定后,乘法因子 EAF 的計算為:EAF=F1 × F2 × … × F15 。
調節因子集的定義和調節因子定值是由統計結果和經驗決定的。不同的軟件開發組織,在不同的歷史時期,隨著環境的變化,這些數據可能改變。
(5)舉例
現有一個 33.3 KLOC 的軟件開發項目,屬于中等規模、半有機型的項目,采用中等COCOMO模型來開發。且該項目的乘法因子為 0.70 × 0.85 × 1 × … × 1.15 = 1.09 ,請計算出E值。
解: 依據以上題意可得:a=3.0,b=1.12;
乘法因子為 0.70 × 0.85 × 1 × … × 1.15 = 1.09 ;
因此,最終 E = 3.0 × L 1.12 = 3.0 × 33.3 1.12 × 1.09 = 166 PM
5、高級(詳細)COCOMO
(1)定義
- 將項目分解為一些列的子系統或者子模型
- 更加精確地調整一個模型的屬性
(2)工作量乘數
下表給出關于高級COCOMO 81工作量乘數的階段差異性示例,如下所示:
| Very low | Low | Norminal | High | Very high | Extra high | ||
| RPD(requirement and product design) | 1.40 | 1.20 | 1.00 | 0.87 | 0.75 | … | |
| AEXP | DD(detailed design) | 1.30 | 1.15 | 1.00 | 0.90 | 0.80 | … |
| CUT(code and unit test) | 1.25 | 1.10 | 1.00 | 0.92 | 0.85 | … | |
| IT(integration and test) | 1.25 | 1.10 | 1.00 | 0.92 | 0.85 | … |
四、COCOMO Ⅱ
1. COCOMO Ⅱ模型中項目估算的三個階段
| 應用組裝模型(Application Composition) | 規劃階段 | 早期、確定系統性能時 | ①利用應用點application point來進行估算規模;②利用原型來解決高風險問題。 |
| 早期設計模型(early design) | 設計階段 | 需求穩定,體系結構已建立時 | ①研究可選的體系結構和概念;②用功能點funtion point來做估算規模。 |
| 后體系結構模型(post architecture) | 開發階段 | 軟件在構造中,知道更多系統信息時 | ①以FP、LOC作為估算單位。 |
補充說明應用點知識:
應用點,即對象點。一種間接的軟件測量,其計算需要使用以下三個元素:
- 用戶界面上的屏幕數screens;
- 報表數reports;
- 建造應用可能需要的構件數3GLcomponents。
2. 基于COCOMO Ⅱ的計算
(1)基本模型
基本模型的公式為:E=bSCm(X)
(2)對象點計算
在應用組裝階段,計算對象點:
- ①計算屏幕數、報表數和構件;
- ②對每一個對象點,按照簡單、中等、困難三個等級進行分類;
- ③得到簡單、中等、困難三種類型對應的對象點數目的復雜度加權;
- ④計算對象點OP,即∑(三個計算值×加權因子);
- ⑤如果 r% 的對象點來自以前項目的重用,則新對象點為:NOP=OP×100?r100\frac{100-r}{100}100100?r? ,即NOP=OP×(1-復用度);
- ⑥查表得到生產率參數的值PROD;
- ⑦工作量E=NOP/PROD;
- ⑧給出一個歷史數據:人工價(元/PM);
- ⑨成本=E×人工價。
以下給出對象點和 PROD 的具體數值表:
圖 不同類型對象的復雜度加權
| 對象類型 | 簡單 | 中等 | 困難 |
| 屏幕 | 1 | 2 | 3 |
| 報表 | 2 | 5 | 8 |
| 3GL構件 | 10 |
圖 不同水平的開發者經驗和不同開發環境成熟度下的生產率
| 開發者的經驗/能力 | 非常低 | 低 | 正常 | 高 | 非常高 |
| 環境成熟度/能力 | 非常低 | 低 | 正常 | 高 | 非常高 |
| PROD | 4 | 7 | 13 | 25 | 50 |
(3)案例計算
Question:
使用COCOMO II模型來估算構造一個簡單的ATM軟件所需的工作量和人工成本(單位分別是人月和元),該軟件產生11個屏幕(有3個簡單,3個中等,5個困難),10個報表(有4個簡單,6個困難),72個構件,復用度為20%,假設開發者的經驗能力為高,環境的成熟度能力為低,勞動力價格為5000元/PM。則NOP、生產率能力PROD、工作量E和人工成本C分別為多少。寫出計算公式及計算過程。
Answer:
八、結束語
到這里,我們講解了項目管理中的兩種成本估算模型。一種是 Walaton-Felix 模型,另一種是 COCOMO Ⅱ 模型。
關于本文的介紹到這里就結束啦!希望對大家有幫助~
如果您覺得這篇文章有幫助到您的的話不妨點贊支持一下喲~~😉
🛵專欄直通車
軟件項目管理👉https://juejin.cn/column/7024826582841688077
總結
以上是生活随笔為你收集整理的「软件项目管理」成本估算模型——Walston-Felix模型和COCOMO Ⅱ模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 「软件项目管理」一文详解软件项目成本计划
- 下一篇: 还不会ts?一文带你打开ts的大门