软件项目成本估算模型COCOMOII(软件项目成本估算模型COCOMOII中,后体系)

软件项目成本估算模型COCOMOII(软件项目成本估算模型COCOMOII中,后体系)缩略图

项目成本估算方法的COCOMO模型

项目成本估算方法的COCOMO模型

COCOMO模型是普及程度比较高的一种自顶向下项目成本估算模型,是比较精确,易于使用的成本估算方法。该模型的项目成本估算公式为:

E=A(KDSI)b

其中:E为开发成本:DSI为项目源代码行数,但不包括注释行数,DSI以千行为一个基本单位,即1KDSI=1024DSI:A、b为两个常数,具体值由项目的种类而定。

在COCOMO模中,根据开发环境及项目规模等因素,可把项目分为以下3种:

● 组织模式:指规模较小的、简单的软件项目;

● 半分离模式:指在南侧模和复杂性上处于中等程度的软件项目;

● 嵌入模式:指必须要求在一组紧密联系的硬件、软件及操作约束下开发的软件项目。

相应的,COCOMO模型的层次也包括3种基本形式,即初级COCOMO模型、中级COCOMO模型和高级COCOMO模型。

软件开发项目成本的估算模型

软件开发项目成本的估算模型

常用软件成本估算模型的估算方法,提出了一种新的Web系统软件开发项目成本估算模型——人天评估模型,抛开了…在实际开发过程中,软件开发项目分为核心部分和非核心部分。核心部分主要是随项目变化比较大的业务模… 推荐CAJ下载 …

软件项目计划的成本估算

软件项目计划的成本估算

自顶向下估算方法

估算人员参照以前完成的项目所耗费的总成本,来推算将要开发的软件的总成本,然后把它们按阶段、步骤和工作单元进行 分配,这种方法称为自顶向下估算方法。

它的优点是对系统级工作的重视,所以估算中不会遗漏系统级的诸如集成、用户手册和配置管理之类的事务的成本估算,且估算工作量小、 速度快。它的缺点是往往不清楚低级别上的技术性困难问题,而往往这些困难将会使成本上升。

自底向上估算方法

自底向上估算方法是将待开发的软件细分,分别估算每一个子任务所需要的开发工作量,然后将它们加起来 ,得到软件的总开发量。这种方法的优点是对每个部分的估算工作交给负责该部分工作的人来做,所以估算 较为准确。其缺点是其估算往往缺少与软件开发有关的系统工作级工作量,所以估算往往偏低。

差别估算方法

差别估算是将开发项目与一个或多个已完成的类似项目进行比较,找到与某个相类似项目的若干 不同之处,并估算每个不同之处对成本的影响,导出开发项目的总成本。该方法的优点是可以提高估算的准确度, 缺点是不容易明确“差别”的界限。

其他

除上三种还有:

(1)专家估算法。

(2)类推估算法。

(3)算式估算法。 COCOMO估算模型

机构性成本模型COCOMO(Constructive Cost Mode)是最精确、最易于使用的成本估算方法之一。

该模型分为:基本COCOMO模型,是一个静态单变量模型,它是对整个软件系统进行估算;中级COCOMO模型,是一个静态多变量模型;详细COCOMO模型,将软件系统模型分为系统、子系统和模块三个层次。

①基本COCOMO模型估算公式:

E=ab(KLOC)exp(bb)

D=cb(E)exp(db)

式中E为开发所需的人力(人/月)。D为所需的开发时间(月)。KLOC为估计提交的代码行。

ab、bb、cb和db是指不同软件开发方式的值。

②中级COCOMO模型。

其估算公式为:E=ai(KLOC)exp(bi)×乘法因子,ai,bi

Putnam成本估算经验模型

Putnam估算模型是一种动态多变模型,它是假设在软件开发的整个生存期中工作量的分布。如下图:

根据曲线导出关于提交的代码行数L,人力K(人/年)和时间td(年)之间估算公式:

式中Ck是技术状况有关的常数,它的典型值如下:

对于差的开发环境 Ck=2500

对于好的开发环境 Ck=10000

对于有的开发环境 Ck=12500

由上述公式可以得到所需开发工作量的公式:

软件项目的成本如何估算?

一、系统软件的成本构成

系统软件的成本作为一个经济学范畴,应反映软件产品在其生产过程中所耗费的各项费用,为原材料、燃料、动力、折旧、人工费、管理费用、财务费用待项开支的总和。

从财务角度来看,列入系统软件的成本有如下的项目:

(1)硬件购置费如计算机及相关设备的购置,不 间断电源、空调器等的购置费。

(2)软件购置费,如操作系统软件、数据库系统软件和其它应用软件的购 置费。

(3)人工费,主要是开发人员、操作人员、管理人员、的工资福利费等。

(4)培训费。

(5)通讯费,如 购置计算机网络设备、通讯线路器材、租用公用通讯线路等的费用。

(6)基本建设费,如新建、扩建机房、购置计算机机台、机柜等的费用。

(7)财务费用。

(8)管理费用,如办公费、差旅费、会议费、交通费。

(9)材料费,如打印纸、包带、磁盘等的购置费。

(10)水、电、汽、气费。

(11)专有技术购置费。

(12)其它费用,如资料费、固定资产折旧费及咨询费。

从系统软件生命周期构成的两阶段即开发阶段和维护阶段看,系统软件的成本由开发成本和维护成本构成。其中开发成本由软件开发成本、硬件成本和其他成本组成,包括了系统软件的分析/设计费用(含系统调研、需求分析、系统分析)、实施费用(含编程/测试、硬件购买与安装、系统软件购置、数据收集、人员培训)及系统切换等方面的费用;维护成本由运行费用(含人工费、材料费、固定资产折旧费、专有技术及技术资料购置费)、管理费(含审计费、系统服务费、行政管理费)及维护费(含纠错性维护费用及适应性维护费用)。

二、系统软件成测算

综上所述,系统软件的成本由软件的开发和维护成本所构成,即: C=C1+C2 (1)

式中:C为系统软件的开发成本;C1为系统软件的开发成本所构成;C2为系统软件的维护成本。

1、系统软件的开发成本C1的测算。

我们认为系统软件的开发成本按其工作量及单位工作量成本来测算是可行的,具体测算方法为按系统软 件的软件规模(一般为软件源程序的指令行数,不包括注释行)、社会平均规模指数以及工作量修正因素来 进行。尤其是CAD系统软件的实际测算,结合国内外研究成果的综合分析和专家咨询,软件社会平均生产率 参数和软件社会平均规模指数可分别确定为3.5和1.3左右;软件工作量订由八个因子、五个等级组成。

2、系统软件维护成本C2的测算。

系统软件的维护为修正现有可运行软件并维护欺其主要功能不变的过程。系统软件在其交付使用后,其维护阶段在软件生命周期或生存期中占较大比重,有的可达软件生存周期的50-70%。因此,系统软件的维护成本是软件成本测算中不可忽略的一部分。

系统软件的维护包括三类:A、改正、纠正性维护;B、适应性维护;C、完美性维护。其中C类是为扩充 功能、提高性能而进行的维护,在软件资产价值评估中一般不计入该系统软件成本,而A、B两类,则与软 件的开发过程有着紧密的联系,应计入软件成本。

在系统软件维护阶段,对软件工作量的影响因素与开发阶段的影响因素基本相同,是开发阶段影响因素 的后的影响。因此,系统维护的可靠性越大,规模越复杂,隐错越难发现,纠错越难。系统软件越复杂, 要使其适应软、硬环境变化,进行适应性维护也越困难。当然,可靠性大、复杂度高的系统软件,其可维 护性要求也越高,软件在运行中出错的可能性也会少些。基于上述分析,系统软件维护成本的测算,可按 系统软件开发成本乘以一个该系统软件的维护参数来求取。这一维护参数,可按系统软件的复杂度从简单 到一般、到复杂的顺序,分别取0.15、0.20、0.25及0.30、0.35、0.40等。

计算机系统软件作为计算机系统的组成部分,是信息社会的重要商品,也是知识经济社会中的重要资产。 系统软件同其他计算机软件一样,具有如下的特点:

1、系统软件是由许多人共同完成的高强度智力劳动的结晶,是建立在知识、经验和智慧基础上的具有独 创性的产物。系统软件的开发可以工程化,软件生产可以工厂化,因此,系统软件具有价值和使用价值。 同时,系统软件具有独创性(即原始性),所以软件著作权人对系统软件产品依法享有发表权、开发者身份权、使用权、许可权、获取报酬权及转让权。

2、系统软件产品是无形的,存在于磁盘等介质的有形载体中,通过载体进行交易。因此,带有系统 软件的磁盘交换价值,是磁盘自声价值与系统软件之和,而且主要是系统软件的价值。

3、系统软件产品的复制(批量生产)相应简单,其复制成本同其开发成本比较,几乎可以忽略不 计。因此,系统软件产品易被复制乃至剽窃。为保护系统软件产品的著作权,必须依法登记。

4、系统软件产品一般没有有形损耗,仅有无形损耗。系统软件产品的维护,一是由于系统软件自身 的复杂性,特别是为了对运行中新发现的隐错进行改正性维护;二是由于系统软件对其硬、软件环境有依赖性。硬、软环境改变时,系统软件要进行适应性维护;三是由于需求的变化,要求增强系统软件功能和提高系统软件性能,系统软件要进行完美性维护。因此,系统软件的维护在其生命周期中占有重要地位。同时,系统软件的维护过程是一个软件价值的增值过程。由上述测算方法可知,系统软件的维护费用,即使不计入完善性维护费用也已相当昂贵。不断的升级的新版本代替旧版本软件也是系统软件价值评估中应予考虑的一个特点.

.

如何进行软件的成本估算

首先可以用代码行定量估算方法,把开发软件中实现每一个功能所需要的源代码行数与成本联系起来.其次可以用任务分解技术估算成本.

一个软件项目如何评估工作量和成本?

软件开发成本估算过程可进一步细分为软件规模估算、工作量估算、成本估算和确定软件开发成本等四个过程。

其中成本估算需要对直接人力成本、间接人力成本、间接非人力成本及直接非人力成本分别进行估算。

国家标准《GB/T 36964-2018 软件工程 软件开发成本度量规范》中建议的软件开发成本估算基本流程如下图所示:

国家准中的四个估算过程,层层递进,逐步细化,最终达到科学、一致的成本估算。

一、软件规模估算

通常情况下,规模估算是软件成本估算过程的起点。

估算规模是后续计算软件项目的工作量、成本和进度的主要输入,是项目范围管理的关键,因此,在条件允许的情况下,应首先进行规模估算。

在规模估算过程中,需要注意以下情况:

1. 在规模估算开始前,应根据可行性研究报告或类似文档明确项目需求及系统边界。项目需求除包含最基本的业务需求外,还应进行初步的子系统/模块划分,并对每一子系统或模块的基本用户需求进行说明,以保证可以根据项目需求进行规模预估。

2. 依据项目特点和需求详细程度不同,通常估算人员在选择估算方法时应采用纳入国际标准的功能点方法进行功能规模估算,在适用IFPUG或NESMA方法时,可以根据需求的粒度和管理需要,选择预估功能点方法、估算功能点方法或者详细功能点方法。

3. 若当前的项目需求极其模糊或不确定,可不进行规模估算,而直接采用类比法或类推法估算工作量和成本。

二、工作量估算

在完成规模估算后,应当开展工作量估算工作,若当前项目未开展规模估算,也可直接启动工作量估算工作。

工作量估算时,可采用方程法、类比法、类推法、功能点法:

4. 方程法:即基于基准数据建立参数模型,通过输入各项参数,确定估算值。

5. 类比法:即将待估算项目的部分属性与类似的一组基准数据进行比对,进而确定估算值。

6. 类推法:即将待估算项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,并进行适当调整后确定估算值。

7. 功能点法:从用户视角出发,通过量化系统功能来度量软件的规模,这种度量主要基于系统的逻辑设计。功能点规模度量方法在国际上的应用已经比较广泛,并且已经取代代码行成为最主流的软件规模度量方法。

在开展工作量估算的过程中,需要注意以下情况:

1. 当需求极其模糊或不确定时,如果此时具有高度类似的历史项目,则可直接采用类推法,充分利用历史项目数据来粗略估算工作量。

2. 当需求极其模糊或不确定时,如果此时具有与本项目部分属性类似的一组基准数据,则可直接采用类比法,充分利用基准数据来粗略估算工作量。

3. 对于规模估算已经开展的项目,可采用方程法,通过输入各项参数,确定待估算项目的工作量。若客户或高层对项目的工期有明确的要求时,在采用方程法估算工作量时,工期要求有可能是方程的参数之一。

4. 为追求估算的准确性,建议在条件允许的情况下,可采用两种估算方法,对估算结果进行交叉验证,若估算结果差别不大,可直接使用两种估算结果的平均值或以某种估算结果为准,若差别较大,需进行差异分析。

5. 工作量的估算结果宜为一个范围而不是单一的值。

三、成本估算

在获得了工作量估算结果后,可采用科学的方法进行成本估算。

在成本估算过程中,应需要注意的情况:

1. 类比法和类推法,同样适用于需求极其模糊或不确定时的成本估算;

2. 间接成本是否与工作量估算结果相关取决于间接成本分摊计算方式。在绝大多数组织,项目周期越长,项目组成员越多,其分摊的间接成本就越高,此时项目的间接成本与工作量估算结果直接相关;

3. 直接非人力成本通常与工作量估算结果无关,宜单独分项测算;

4. 成本估算结果,也通常为一个范围,而不是单一的值。

四、确定软件开发成本

在《软件工程 软件开发成本度量规范》中,将软件开发成本分为四类,主要是为便于对成本构成(即哪些成本属于开发成本,哪些不属于开发成本)进行清晰界定。

而在实际确定软件开发成本时,通常并不是分别测定四类成本,加和后获得总成本,而是通常采用以下两种方式确定总成本:

5. 根据人力成本费率及工作量估算直接人力成本和间接成本之和,再加上直接非人力成本,获得总成本;

6. 根据规模综合单价和软件规模,测算出直接人力成本和间接成本之和,再加上直接非人力成本,获得总成本。

在进行软件的规模、工作量、成本估算时应遵循以下原则:

1. 在规模估算时,应根据项目特点和需求的详细程度选择合适的估算方法;

2. 充分利用基准数据,采用方程法、类比法或类推法,对工作量和成本进行估算;

3. 工作量和成本的估算结果宜为一个范围值;

4. 在进行成本估算时,如有明确的工期要求,应充分考虑工期对项目成本的影响,可以根据项目实际情况以及工期对项目的影响程度,对成本的估算结果进行调整;

5. 成本估算过程中宜采用不同的方法分别估算并进行交叉验证。如果不同方法的估算结果产生较大差异,可采用专家评审方法确定估算结果,也可使用较简单的加权平均方法;

6. 在软件项目的不同场景下(如预算、招投标、项目计划和变更管理等)采用国家标准时,相关要求见国家标准中附录A。

除了上述主要原则外,我们还需注意在使用基准数据时:

7. 对于委托方和第三方,建议使用或参考软件行业基准数据进行估算。估算模型的调整因子的增减或取值有可能随着行业基准数据的变化而变化。

8. 对于开发方,在引入行业基准数据的基础上,可逐步建立组织级基准数据库,以提高估算精度。组织级基准数据定义应与行业基准数据定义保持一致,以便于与行业基准数据进行比对分析,并持续提升组织能力。

项目成本估算方法的IT项目开发成本的估算方法

对于一个大型的IT软件项目,由于项目的复杂性及IT项目的独特性,开发成本的估算不是一件容易的事情,它需要进行一系列的估算处理,因此,主要依靠分析和类比推理的手段进行,最基本的估算方法有以下几种:

● 成本建模技术

根据项目特征,用数学模型来预测项目的成本。一般采用历史成本信息(这些信息与项目成本的一些软件度量标准相关)来建立估算模型,并通过这个模型预测工作量和成本。

● 专家判定技术

也称为Delphi法,聘请一个或多个领域专家和软件开发技术人员,由他们分别对项目成本进行估计,并最后达成一致而获得最终的成本。

● 类比评估技术

根据以前类似项目的实际成本作为当前项目的估算依据。

● Parkson法则

Parkson法则表示工作能够由需要的时间来反映。在软件成本估计中,这意味着成本是由可获得的资源而不是由目标评价决定的。如果一个软件需要在12个月内由5个人来完成,那么工作量就是12 X 5 = 60个人月(PM)。

● 自上向下估算法

成本的估算,主要依据工作分解结构、产品的功能以及实现该功能的子功能组成形式逐层分配成本。

● 自下而上估算法

首先估计每个组成单元的成本,然后根据工作分解结构,通过累加方式得到最终的成本估计。

● 赢利定价法

软件的成本通过估计用户愿意在该项目上的投资来计算,成本的预算依靠客户的预算而不是软件的功能。

上面这些估算法都有它们的优势和不足,不能简单评价某种方法和好坏。在一个大型的IT项目中,通常要同时采用几种估算方法并且比较它们估算的结果,如果采用不同方法估算的结果大相径庭,就说明没有收集到足够的成本信息,应该继续设法获取更多的成本信息,重新进行成本估算,直到几种方法估算的结果基本一致为止。

成本预算是在确定总体成本后的分解过程。分解主要是作两个方面的工作:一是按工作分解结构和工作任务(工作包)分摊成本,这样可以对照检查每项工作的成本,出现偏差时可以确定是哪项工作出了问题;二是按工期时段分摊成本,将预算成本分摊到项目工期的各个时段,这样,可以确定在未来某个时段累计应该花费的成本,并检查偏差,评价成本绩效。

目前最常用且最好用的度量方法主要用3种:面向规模(LOC)、面向功能点(FP)及COCOMO模型的度量方法。

软件系统开发的成本如何估算

可以用Delphi方法(专家),或国际功能点估算法.如果用Delphi方法,大致步骤如下:1、先按WBS(工作任务分解)进行工作量估算(人日)2、再用工作量*每人日的费用就得到人员成本3、用人员成本+其它成本(房租水电的分摊、交通费、电话费等) 如果用国际功能点估算法,大致步骤如下::1、先计算软件的规模(即功能点数)2、用功能点*生产率=工作量(人日)3、再用工作量*每人日的费用就得到人员成本4、用人员成本+其它成本(房租水电的分摊、交通费、电话费等)

做软件开发的成本究竟如何估算

在对一个软件项目进行开发成本估算时,应该包括从项目立项直至项目研发活动结束所花费的资源总和,并且可以按阶段进行估算或测量。

软件开成本估算的过程可分为:估算规模、估算工作量、估算工期和估算成本这4个过程,最终确定软件成本。其中成本估算需要对直接人力成本、间接人力成本、间接非人力成本及直接非人力成本分别进行估算。

1、估算规模

通常情况下,软件规模的估算是软件成本估算过程的起点。估算规模是后续计算软件项目的工作量、成本和进度的主要依据,是项目范围管理的关键,因此,在条件允许的情况下,应该进行软件项目规模估算。

规模估算时,要根据可行性研究报告或类似文档明确项目需求及系统边界。选择估算方法时,要依据项目特点和需求详细程度来决定。

若当前项目的需求不确定,可跳过这一环节,进入下个一环节。

2、估算工作量

软件项目工作量估算可采用方程法、类比法和类推法。

类推法:软件项目需求极其模糊或不确定时,如果有高度相似的历史项目,可采用此方法,利用历史项目数据来粗略估算工作量。

类比法:软件项目需求极其模糊或不确定时,如果有与本项目部分属性类似的一组基准数据,可采用类比法,利用基准数据来粗略估算工作量。

方程法:已经开展了规模估算的项目,可以采用方程法,通过各项参数来确定待估算项目的工作量。

项目工作量估算都应该采用两种估算方法来对估算结果进行交叉验证,以追求估算的准确性。工作量的估算结果是一个范围,不是单一的值。

3、估算工期

软件项目工期的估算同样可以采用类推法、类比法和方程法。

4、估算成本

类比法和类推法同样适用于需求极期模糊或不确定时的成本估算。

成本估算结果通常为一个范围。

在获得工作量和工期后,采用科学的方法来进行成本估算。中基数联做为北京软件造价评估技术创新联盟的授权合作伙伴,在对软件成本估算时,采用快速功能点法进行成本估算。

在估算IT项目成本时应注意哪些问

对于一个大型的it软件项目,由于项目的复杂性及it项目的独特性,开发成本的估算不是一件容易的事情,它需要进行一系列的估算处理,因此,主要依靠分析和类比推理的手段进行,最基本的估算方法有以下几种:

● 成本建模技术

根据项目特征,用数学模型来预测项目的成本。一般采用历史成本信息(这些信息与项目成本的一些软件度量标准相关)来建立估算模型,并通过这个模型预测工作量和成本。

● 专家判定技术

也称为delphi法,聘请一个或多个领域专家和软件开发技术人员,由他们分别对项目成本进行估计,并最后达成一致而获得最终的成本。

● 类比评估技术

根据以前类似项目的实际成本作为当前项目的估算依据。

● parkson法则

parkson法则表示工作能够由需要的时间来反映。在软件成本估计中,这意味着成本是由可获得的资源而不是由目标评价决定的。如果一个软件需要在12个月内由5个人来完成,那么工作量就是12 x 5 = 60个人月(pm)。

● 自上向下估算法

成本的估算,主要依据工作分解结构、产品的功能以及实现该功能的子功能组成形式逐层分配成本。

● 自下而上估算法

首先估计每个组成单元的成本,然后根据工作分解结构,通过累加方式得到最终的成本估计。

● 赢利定价法

软件的成本通过估计用户愿意在该项目上的投资来计算,成本的预算依靠客户的预算而不是软件的功能。

上面这些估算法都有它们的优势和不足,不能简单评价某种方法和好坏。在一个大型的it项目中,通常要同时采用几种估算方法并且比较它们估算的结果,如果采用不同方法估算的结果大相径庭,就说明没有收集到足够的成本信息,应该继续设法获取更多的成本信息,重新进行成本估算,直到几种方法估算的结果基本一致为止。

成本预算是在确定总体成本后的分解过程。分解主要是作两个方面的工作:一是按工作分解结构和工作任务(工作包)分摊成本,这样可以对照检查每项工作的成本,出现偏差时可以确定是哪项工作出了问题;二是按工期时段分摊成本,将预算成本分摊到项目工期的各个时段,这样,可以确定在未来某个时段累计应该花费的成本,并检查偏差,评价成本绩效。

目前最常用且最好用的度量方法主要用3种:面向规模(loc)、面向功能点(fp)及cocomo模型的度量方法。