「软件项目管理」成本估算模型——Walston-Felix模型和COCOMO Ⅱ模型

简介: 该文章深入探讨了两种软件项目成本估算模型——Walston-Felix模型和COCOMO II模型,详细解释了各自的计算公式、应用背景及步骤,并通过具体示例展示了如何使用这两种模型来进行准确的成本预测。

序言

在软件项目的成本计划中,有一个较为重要的环节是成本估算。那在下面的文章中,我们将讲解两种成本估算的模型: Walston-Felix 模型 和 COCOMO Ⅱ 模型。

下面开始进入本文的讲解~

一、Walston-Felix模型

1. 公式

1977年, IBMWalstonFelix 提出了如下的估算公式:

  • E = 5.2×(KLOC)0.91KLOC是源代码行数,E是工作量(以PM计)
  • D = 4.1×(KLOC)0.36D是项目持续时间(以月计)
  • S = 0.54×E0.6S是人员需要量(以人计)
  • DOC = 49×(KLOC)1.01DOC是文档数量(以页计)

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× $\prod_{i=1}^n $ EMi

A可以校准的常量

SKLOC软件规模

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)系数表

方式 a b
有机 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)系数表

方式 a b
有机 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) 。

但实际的值依据下表所示:

中等COCOMO 81

当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工作量乘数的阶段差异性示例,如下所示:

Cost drivers Development phase Rating levels
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× $ \frac{100-r}{100} $ ,即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:
基于COCOMO Ⅱ模型的相关计算答案

八、结束语

到这里,我们讲解了项目管理中的两种成本估算模型。一种是 Walaton-Felix 模型,另一种是 COCOMO Ⅱ 模型。

关于本文的介绍到这里就结束啦!希望对大家有帮助~

如果您觉得这篇文章有帮助到您的的话不妨点赞支持一下哟~~😉

🛵专栏直通车

软件项目管理👉https://juejin.cn/column/7024826582841688077

相关文章
|
11天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
8天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2520 17
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
7天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1522 15
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
3天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
9天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
574 14
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19282 30
|
10天前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
481 49
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18839 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17528 13
Apache Paimon V0.9最新进展
|
2天前
|
云安全 存储 运维
叮咚!您有一份六大必做安全操作清单,请查收
云安全态势管理(CSPM)开启免费试用
364 4
叮咚!您有一份六大必做安全操作清单,请查收