软件成本估算

17 Mar 2025 | 4 分钟阅读

对于任何新的软件项目,都必须知道开发成本以及所需的开发时间。 这些估计需要在开发开始之前进行,但是如何完成呢? 已经开发了几种估计程序,并且具有以下共同属性。

  1. 必须预先确定项目范围。
  2. 软件指标用作进行评估的支持。
  3. 项目被分成小的PC,这些PC被单独估算。
    为了实现真正的成本和进度估算,会出现几种选择。
  4. 延迟估算
  5. 使用符号分解技术来生成项目成本和进度估算。
  6. 获取一个或多个自动估算工具。

成本估算的使用

  1. 在计划阶段,需要选择该项目需要多少工程师,并制定时间表。
  2. 在监视项目的进度时,需要访问项目是否按过程进行,并在必要时采取纠正措施。

成本估算模型

模型可以是静态的或动态的。 在静态模型中,将单个变量用作计算成本和时间的关键要素。 在动态模型中,所有变量都是相互依赖的,并且没有基本变量。

Software Cost Estimation

静态,单变量模型:当模型使用单个变量来计算所需的值(例如成本,时间,工作量等)时,称为单变量模型。 最常见的等式是

                                C=aLb

其中    C = 成本
                L= 大小
                a和b是常数

软件工程实验室建立了一个名为SEL模型的模型,用于估算其软件产量。 该模型是静态,单变量模型的示例。

                E=1.4L0.93
                DOC=30.4L0.90
                D=4.6L0.26

其中    E= 工作量(人/月)
                DOC=文档(页数)
                D = 持续时间(D,以月为单位)
                L = 每行代码的行数

静态,多变量模型:这些模型基于方法(1),它们取决于描述软件开发环境各个方面的几个变量。 在某些模型中,需要几个变量来描述软件开发过程,并且选择的方程式将这些变量组合起来,以给出时间和成本的估算。 这些模型称为多变量模型。

WALSTON和FELIX在IBM开发的模型提供了以下公式,该公式给出了源代码行数和工作量之间的关系

                E=5.2L0.91

以相同的方式,开发的持续时间由下式给出

                D=4.1L0.36

生产力指数使用29个变量,发现这些变量与生产力高度相关,如下所示

Software Cost Estimation

其中Wi是第ith个变量的权重因子,而Xi={-1,0,+1}是估算器根据变量的减少,没有影响或增加,给出Xi-1、0或+1

示例:比较Walston-Felix模型和SEL模型在预期涉及8人年的工作量上的软件开发。

  1. 计算可以生成的源代码行数。
  2. 计算开发的持续时间。
  3. 计算LOC/PY的生产力
  4. 计算平均人员配备

解决方案

所涉及的人力资源= 8PY=96人/月

(a)可以通过反转方程式来获得源代码的行数,以给出

Software Cost Estimation

那么

                L (SEL) = (96/1.4)1⁄0.93=94264 LOC
                L (SEL) = (96/5.2)1⁄0.91=24632 LOC

(b)可以通过方程式计算月份的持续时间

                D (SEL) = 4.6 (L) 0.26
                               = 4.6 (94.264)0.26 = 15 个月
                D (W-F) = 4.1 L0.36
                               = 4.1 (24.632)0.36 = 13 个月

(c)生产力是每人/月(年)产生的代码行

Software Cost Estimation

(d)平均人员配备是项目中每月所需的平均人数

Software Cost Estimation
下一个主题COCOMO模型