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

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

序言

在软件项目的成本计划中,有一个较为重要的环节是成本估算。那在下面的文章中,我们将讲解两种成本估算的模型: 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× $\prod_{i=1}^n $ 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)系数表

方式 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

相关文章
|
图形学 容器
QT chart图表(温度曲线实战)
QT chart图表(温度曲线实战)
1245 0
浅析软件成本估算之NESMA方法的3种应用场景
NESMA为荷兰软件度量协会的简称(Netherland Software Measurement Association),NESMA功能点方法是五种ISO国际功能点标准之一,不但易学易用、快速、经济,而且容易开发和建立用户自己特有的估算模型。
4364 0
|
机器学习/深度学习 算法 测试技术
「软件项目管理」一文详解软件项目成本计划
该文章详细解释了软件项目成本估算的过程与方法,涵盖了代码行估算法、功能点估算法、用例点估算法、类比估算法、自下而上估算法、参数模型估算法及专家估算法等多种技术,并探讨了成本预算的制定步骤。
「软件项目管理」一文详解软件项目成本计划
|
人工智能 安全 网络安全
从不确定性到确定性,“动态安全+AI”成网络安全破题密码
2025年国家网络安全宣传周以“网络安全为人民,靠人民”为主题,聚焦AI安全、个人信息保护等热点。随着AI技术滥用加剧,智能化攻击频发,瑞数信息推出“动态安全+AI”防护体系,构建“三层防护+两大闭环”,实现风险前置识别与全链路防控,助力企业应对新型网络威胁,筑牢数字时代安全防线。(238字)
1342 1
|
数据采集 人工智能 自然语言处理
52_领域模型:BioBERT与FinBERT
在大语言模型(LLM)快速发展的今天,通用模型如GPT-4、Claude 3和Gemini虽然在广泛任务上表现出色,但在专业领域如医疗、金融和法律等场景中,往往难以达到专业人员的期待精度。2025年的研究表明,领域特定的预训练模型在垂直领域任务中能够显著超越通用模型,为专业应用提供更可靠的支持。本文将深入剖析BioBERT、FinBERT等代表性领域模型的技术原理、训练方法、性能评估及实际应用案例,探讨垂直领域预训练的独特优势与未来发展趋势。
1557 0
|
传感器 人工智能 算法
智能硬件创新:产品技术双驱,不玩 AI 硬凑
在智能硬件快速发展的今天,仅靠“AI+硬件”的简单叠加难以实现真正创新。产品创新需以用户需求为核心,从设计、功能到体验全方位优化;技术创新则通过新材料、新工艺和新算法提升性能、降低成本。两者深度融合、双轮驱动,方能打造卓越的智能硬件。例如苹果iPhone与大疆无人机,均凭借产品和技术的协同突破成为行业标杆。企业应避免常见“坑”,如用户体验不佳、技术难度高和成本控制难,以真创新引领市场。联系法思诺,探索更多创新可能!
573 0
|
人工智能 监控 安全
容器化AI模型的安全防护:构建可信的AI服务
在AI模型广泛应用的背景下,容器化AI模型的安全防护至关重要。主要安全威胁包括数据窃取、模型窃取、对抗样本攻击和模型后门攻击等。为应对这些威胁,需采取多层次防护措施:容器安全(如使用可信镜像、限制权限)、模型安全(如加密、水印)、数据安全(如加密、脱敏)和推理安全(如输入验证、异常检测)。此外,利用开源工具如Anchore Engine、Falco和ART等,可进一步加强防护。遵循安全开发生命周期、最小权限原则和深度防御等最佳实践,确保AI服务的安全性和可信度。
|
机器学习/深度学习 人工智能 算法
|
存储 Kubernetes 网络协议
在K8S中,有哪几种控制器类型?
在K8S中,有哪几种控制器类型?