软件度量标准
一、工信部行业标准《软件研发成本度量规范》
软件研发成本度量规范简介
本标准规定了软件研发成本度量方法、过程及原则,包括软件研发成本的构成、软件研发成本度量过程、软件研发成本度量的应用。本标准适用于度量成本与功能规模密切相关的软件研发项目的成本。本标准不涉及软件定价,但相关各方可依据本标准明确研发成本,从而为软件定价提供重要依据。
标准研制背景
长期以来,如何度量和评估软件研发项目的成本一直是产业界的难题。目前我国尚无科学统一的软件研发项目成本度量标准体系以指导、规范、管理软件项目的研发成本,较大程度导致做预算时无据可依,造成极大浪费;在软件项目招评标过程中,由于无法界定软件工程项目的合理成本范围,常常出现恶意低价或超高价格竞标现象;软件开发商在项目实施过程中,由于缺乏成本控制的科学依据,也经常出现时间滞后、费用远远超出最初估算水平的情况。
标准研制过程
在国家工业和信息化部软件服务业司领导下,从2010年开始启动我国软件成本度量标准体系的研制工作。中国软件行业协会系统与软件过程改进分会 (以下简称 “过程改进分会”)和中国电子技术标准化研究院(以下简称“电子四所”)围绕软件研发成本度量标准体系建设开展了基础性研究工作,梳理了标准体系。核心标准《软件研发成本度量规范》于2010年12月正式立项,计划号为2010-3194T-SJ,由过程改进分会和电子四所共同牵头起草,组织产、学、研、 用约40家单位共同参与,历时3年,为软件项目预算、立项审批、招投标、项目计划、变更管理等工作提供“科学依据”。
标准的价值
1、倡导使用统一的国际功能点方法度量软件规模,使度量结果可比对;
2、倡导使用基准数据估算软件工期和成本,使估算结果更科学;
3、倡导使用一致的估算过程和公式,使估算过程透明化、估算结果可追溯。
标准试点应用
《软件研发成本度量规范》从2012年开始试点应用。海关总署、中国人民银行、东软集团等单位都参与了试点工作,分别在预算审批、项目立项、招投标、项目计划等场景进行应用,取得了很好的效果。截至2013年年底,共有约2000人参加CCEP培训,近1500人通过考试并成为国内首批CCEP(软件成本估算专家)。采用标准规定的方法后,极大的解决了试点企业长期以来面临的问题。
标准发布
行业标准《软件研发成本度量规范》(SJ/T11463-2013) 由中华人民共和国工业和信息化部于2013年10月17日正式发布,并于2013年12月1日开始正式实施。
最新进展
经推荐,该标准由中关村智联软件服务业质量创新联盟牵头 ,正在申请升级为国家标准,于2015年7月31日正式下达计划号:20151553-T-469
标准应用配套书籍
随着工信部行业标准《软件研发成本度量规范》的正式发布,越来越多的软件企业、政府机关及各大行业(如金融、电信、能源、制造等)的软件开发及信息化建设部门开始采用该标准用于指导软件研发成本的度量工作,并广泛应用于预算、招投标、项目策划、变更管理、过程改进及项目后评价等场景。而能否正确理解《软件研发成本度量规范》并了解标准涉及方法的背景与原理,成为该标准是否可以在行业内深化应用的关键。
《软件研发成本度量规范释义》第2版 、《软件成本度量标准实施指南》
二、北京市地方标准《信息化项目软件开发费用测算规范》
规范研制背景
北京作为全国软件与信息服务业之都,产业规模一直位居全国前列,并且保持着较快的增长水平,软件和信息服务业在全市经济发展中也占有越来越重要的地位。随着十二五规划的逐步实施,北京市各行各业信息化建设投资也不断加大,仅全市每年属于市级财政拨款范畴的信息化项目就可达700至800个,金额总量可达三十多亿元,涉及上千家企事业单位。然而本市一直没有科学统一的标准以支撑、规范、管理信息化项目软件开发费用的测算,这大大制约了北京软件产业的健康可持续发展。由于相关标准的缺失,如何测算信息化项目软件开发的合理费用一直都是北京软件产业发展中的难点,因而常常导致软件项目预算审批无依据、恶意竞标等问题的发生。
规范的价值
由北京市经济和信息化委员会归口指导,北京软件和信息服务交易所、北京软件行业协会过程改进分会联合制订的北京市首个软件成本度量地方标准《信息化项目软件开发费用测算规范》正式实施,这标志着我市信息化项目软件开发工作拥有了科学、标准的费用评估方法,有助于规范行业市场、推动软件企业提升生产效率,提升产业增长质量。
三、联盟标准《行标应用指南(预算场景)》
编制背景
长期以来,如何度量软件研发成本一直是产业界的难题,尤其是在预算、招投标、项目计划等活动中因为缺失科学统一的软件研发成本度量标准,较大程度导致项目做预算时无据可依,进而造成预算浪费或预算不足;在软件项目招投标过程中,因为缺乏软件研发成本度量依据,恶意竞标、低价中标现象频频发生;开发方在项目实施过程中,由于缺乏成本控制的科学依据,也经常出现时间滞后,费用远远超出最初预算的情况。科学统一的软件研发成本度量标准既是有效进行软件项目管理的重要依据,也是当前软件产业发展的迫切需要。
为此,工业与信息化部软件服务业司委托中国软件行业协会系统与软件过程改进分会牵头组织编制了《软件研发成本度量规范》。标准中规定了软件研发成本度量的方法及过程,包括软件研发成本的构成、软件研发成本度量的过程、软件研发成本度量的应用。其目的是帮助软件研发涉及各方科学、一致地进行成本度量。但标准中没有包含软件研发成本度量过程中所需要的估算模型、行业基准数据及其在不同场景进行成本估算的详细步骤和方法,因此需要制订标准的应用指南,以便相关各方针对不同的应用场景、正确使用行业数据和模型,有效开展软件研发成本度量相关工作。
编制目的与范围
本指南是《软件研发成本度量规范》系列应用指南之一,针对预算场景。
《软件研发成本度量规范》中的成本度量,特指对软件研发成本的预计值进行估算或对实际值进行测量、分析的过程。而《软件研发成本度量规范》中,预算是指根据项目成本估算的结果确定预计项目费用的过程。因此,本指南主要描述在预算场景下如何开展成本估算工作,而不涉及编制预算的其他方面。
在《软件研发成本度量规范》及本指南中,软件研发过程包括从项目立项开始到项目完成验收之间的需求分析、设计、编码、集成、测试、验收交付活动及相关的项目管理、支持活动。因此,本指南中软件研发成本仅包括软件研发过程中的所有直接成本和间接成本,但不包括数据迁移、软件维护等成本。本指南中所涉及工作量、工期也仅为软件研发过程所用工作量、工期。
本指南编制的主要目的是指导预算活动相关各方,基于《软件研发成本度量规范》有效开展成本估算工作,并为确定软件项目预算提供科学依据。
本指南明确了基于《软件研发成本度量规范》和基准数据开展成本估算相关活动的步骤与方法,并通过示例,明确了典型情况的估算及调整方法;对于其他特殊情况,相关人员应根据本指南及《软件研发成本度量规范》中的相关原则,结合项目特点,选择适当的估算方法或对估算结果进行合理调整。
对于与预算类似的其他早期估算应用场景,相关人员也可参照本指南的相关原则与方法,开展项目估算活动。2100433B
COCOMO模型
COCOMO模型是普及程度比较高的一种自顶向下项目成本估算模型,是比较精确,易于使用的成本估算方法。该模型的项目成本估算公式为:
E=A(KDSI)b
其中:E为开发成本:DSI为项目源代码行数,但不包括注释行数,DSI以千行为一个基本单位,即1KDSI=1024DSI:A、b为两个常数,具体值由项目的种类而定。
在COCOMO模中,根据开发环境及项目规模等因素,可把项目分为以下3种:
● 组织模式:指规模较小的、简单的软件项目;
● 半分离模式:指在南侧模和复杂性上处于中等程度的软件项目;
● 嵌入模式:指必须要求在一组紧密联系的硬件、软件及操作约束下开发的软件项目。
相应的,COCOMO模型的层次也包括3种基本形式,即初级COCOMO模型、中级COCOMO模型和高级COCOMO模型。
面向规模(LOC)的度量
面向规模的软件度量通过规范化质量和生产率测量的方法得到,这种测量是基于所生产软件的规模(Size)确定的。为了与其他项目中的同类度量相比较,选择代码行作为规范化,这样,就可以为每个项目产生一组简单的、面向规模的度量标准:
●每千行代码(KLOC)的错误数。
●每千行代码行(KLOC)的缺陷数。
●每千行代码行(KLOC)的成本。
●每千行代码行(KLOC)的文档页数。
●每人月错误数。
●每页文档的成本。
面向规模的软件度量,通常并不被认为是软件开发过程中最优的方法,因为有很多因素直接影响代码的行数。例如,代码行数依靠软件和硬件的选择,应用商业数据库管理系统就不用再编写有关数据库管理部分的代码。而用ADA语言就比用FORTRAN语言的代码行要多等。因此,在1979年Albercht提出面向功能点(FP)软件度量。
面向功能点(FP)的度量
面向功能点法是由Albrecht最先提出的,并且在1983年由Albrecht和Gaffney进行了改进。功能点可由以下4个参数计算出来:
● 外部输入和输出数
● 外部接口数
● 用户交互数
● 系统要用的文件数
每个参数都可以根据复杂性进行评估,一般它们的权理为3~15.功能点是通过完成如图1所示的功能点度量计算出来的。其中,FP计数等于数量与加权因子之积,加权因子根据功能点的复杂程度取不同的值。
功能点法是通过建立一个标准来确定某个特定的测量参数(简单、平均或复杂)的功能点数,但权重的确定多少带有一定的主观性。
一般,可以采用下面的方工计算功能点:
FP = 总计数值*[0.65 0.01*SUM(Fi)]
其中总计数值是上表中所得到的所有条目的总和。Fi(i=1,2,3,...14)是对以下14个问题回答的结果而得出的权重调整值(0~5)。等式中的常数和参数的加权因子是根据经验确定的。
序号 问题
1 系统是否需要可靠的备份和恢复
2 是否需要数据通信
3 是否有分布处理功能
4 系统是否很关键
5 系统是否在一个已有的、很实用的操作环境中运行
6 系统是否需要联机处理
7 联机数据项是否需要在多屏幕或多操作之间切换以完成操作
8 是否需要联机更新主文件
9 输入、输出及文件查询是否很复杂
10 内部处理是否复杂
11 代码是否需要设计成可复用的
12 设计中是否需要包括转换及安装
13 系统的设计是否支持不同组织的多次安装
14 应用的设计是否方便用户修改及使用
问题的答案及相应权重如下表所示
Fi的取值 |
|||||
0 |
1 |
2 |
3 |
4 |
5 |
没有影响 |
偶有影响 |
轻微影响 |
平均影响 |
较大影响 |
严重影响 |
一旦计算出功能点,就可以采用类似面向规模的方法来使用,以便规范软件生产率、质量及其他属性的测量:
● 每个功能点(FP)的错误数。
● 每个功能点(FP)的缺陷数。
● 每个功能点(FP)的成本。
● 每个功能点(FP)的文档页数。
● 每人月完成的功能点(FP)数。
面向功能点(FP)和面向规模(LOC)两种度量方法之间的关系为:LOC=AVC*功能点的数量,其中AVC是指该语言在实现一个功能点时所要用的平均代码行数。
所有分部分项都可套面积套。
建筑物重置成本估算方法中,预算调整法和重编预算法的区别是什么
零基预算是指在编制成本费用预算时,不考虑以往会计期间所发生的费用项目或费用数额,而是以所有的预算支出为零作为出发点,一切从实际需要与可能出发,逐项审议预算期内各项费用的内容及其开支标准是否合理,在综合...
土建:1600左右,安装300左右;车库土建2500左右,安装不好估计,根据管道及设备而定
估算方法
对于一个大型的IT软件项目,由于项目的复杂性及IT项目的独特性,开发成本的估算不是一件容易的事情,它需要进行一系列的估算处理,因此,主要依靠分析和类比推理的手段进行,最基本的估算方法有以下几种:
● 成本建模技术
根据项目特征,用数学模型来预测项目的成本。一般采用历史成本信息(这些信息与项目成本的一些软件度量标准相关)来建立估算模型,并通过这个模型预测工作量和成本。
● 专家判定技术
也称为Delphi法,聘请一个或多个领域专家和软件开发技术人员,由他们分别对项目成本进行估计,并最后达成一致而获得最终的成本。
● 类比评估技术
根据以前类似项目的实际成本作为当前项目的估算依据。
● Parkson法则
Parkson法则表示工作能够由需要的时间来反映。在软件成本估计中,这意味着成本是由可获得的资源而不是由目标评价决定的。如果一个软件需要在12个月内由5个人来完成,那么工作量就是12 X 5 = 60个人月(PM)。
● 自上向下估算法
成本的估算,主要依据工作分解结构、产品的功能以及实现该功能的子功能组成形式逐层分配成本。
● 自下而上估算法
首先估计每个组成单元的成本,然后根据工作分解结构,通过累加方式得到最终的成本估计。
● 赢利定价法
软件的成本通过估计用户愿意在该项目上的投资来计算,成本的预算依靠客户的预算而不是软件的功能。
上面这些估算法都有它们的优势和不足,不能简单评价某种方法和好坏。在一个大型的IT项目中,通常要同时采用几种估算方法并且比较它们估算的结果,如果采用不同方法估算的结果大相径庭,就说明没有收集到足够的成本信息,应该继续设法获取更多的成本信息,重新进行成本估算,直到几种方法估算的结果基本一致为止。
成本预算是在确定总体成本后的分解过程。分解主要是作两个方面的工作:一是按工作分解结构和工作任务(工作包)分摊成本,这样可以对照检查每项工作的成本,出现偏差时可以确定是哪项工作出了问题;二是按工期时段分摊成本,将预算成本分摊到项目工期的各个时段,这样,可以确定在未来某个时段累计应该花费的成本,并检查偏差,评价成本绩效。
目前最常用且最好用的度量方法主要用3种:面向规模(LOC)、面向功能点(FP)及COCOMO模型的度量方法。
本文论述了案例推理的步骤、原理及应用,给出了判断矩阵的构造及其一致性的检验法则,研究了相似度及权重的计算方法,在指数平滑数学模型的基础上,经过必要的技术处理,建立了施工成本估算模型。
别墅可以说是人类居住的最终形态, 如今,随着社会经济的发展, 越来越多人回到农村盖建 别墅,落叶归根,享受生活。那么,要建一座农村别墅,大概造价是多少呢。 农村别墅的造价会因为面积、楼层、结构、形式的不同而不同,我们可以通过快速估算,大 概得出一个预估造价,下面就教你估算造价的方法。 一、整体估算造价 整体估算是一种非常粗略的估算, 主要及时针对房屋整体的造价水平进行一种类比估算。 最 同行的办法就是通过了解同类型房屋的总体造价来获得一个基本的数值。 例如,周围邻居去年刚 建好的楼房,大概花费了 20 万元,自己也大概要建这么大小的房屋,但是装修可能要稍微好一 点,这样,价格可能就在 23 万元左右。还有就是通过造价指标来进行估算,比如一般的自检小 别墅造价指标为 1500-2000 元 /平方左右,只要知道大概的建筑面积,就能够得出一个基本总 价。不过这样的估算,虽然最快,但是误差也比较
这是一种在项目成本估算精确度要求不是很高的情况下使用的项目成本估算方法。这种方法也被叫做自上而下法,是一种通过比照已完成的类似项目的实际成本,去估算出新项目成本的方法。
这是利用项目特性参数去建立数学模型来估算项目成本的方法。例如,工业项目使用项目设计生产能力、民用项目使用每平米单价等。
这是依据国家或地方主管部门,或者项目成本管理咨询机构编制的标准定额估算项目成本的方法。
进度计划是从时间的角度对项目进行规划,而成本估算则是从费用的角度对项目进行规划。这里的费用应理解为一个抽象概念,它可以是工时、材料或人员等。
成本估算是对完成项目所需费用的估计和计划,是项目计划中的一个重要组成部分。要实行成本控制,首先要进行成本估算。理想的是,完成某项任务所需费用可根据历史标准估算。但对许多工业来说,由于项目和计划变化多端,把以前的活动与现实对比几乎是不可能的。费用的信息,不管是否根据历史标准,都只能将其作为一种估算。而且,在费时较长的大型项目中,还应考虑到今后几年的职工工资结构是否会发生变化,今后几年原材料费用的上涨如何,经营基础以及管理费用在整个项目寿命周期内会不会变化等问题。所以,成本估算显然是在一个无法以高度可靠性预计的环境下进行。在项目管理过程中,为了使时间、费用和工作范围内的资源得到最佳利用,人们开发出了不少成本估算方法,以尽量得到较好的估算。这里简要介绍以下几种。
进行估计的人应有专门知识和丰富的经验,据此提出一个近似的数字。这种方法是一种最原始的方法,还称不上估算,只是一种近似的猜测。它对要求很快拿出一个大概数字的项目是可以的,但对要求详细的估算显然是不能满足要求的。
这是比较科学的一种传统估算方法。它以过去为根据来预测未来,并利用数学知识。它的基本方法是利用规模和成本图。图上的线表示规模和成本的关系,图上的点是根据过去类似项目的资料而描绘,根据这些点描绘出的线体现了规模和成本之间的基本关系。这里画的是直线,但也有可能是曲线。成本包括不同的组成部分,如材料、人工和运费等。这些都可以有不同的曲线。项目规模知道以后,就可以利用这些线找出成本各个不同组成部分的近似数字。
这里要注意的是,找这些点要有一个“基准年度”,目的是消除通货膨胀的影响。画在图上的点应该是经过调整的数字。例如以1980年为基准年,其他年份的数字都以1980年为准进行调整,然后才能描点划线。项目规模确定之后,从线上找出相应的点,但这个点是以1980年为基准的数字,还需要再调整到当年,才是估算出的成本数字。此外,如果项目周期较长,还应考虑到今后几年可能发生的通货膨胀、材料涨价等因素。
做这种成本估算,前提是有过去类似项目的资料,而且这些资料应在同一基础上,具有可比性。
即利用WBS方法,先把项目任务进行合理的细分,分到可以确认的程度,如某种材料,某种设备,某一活动单元等。然后估算每个WBS要素的费用。采用这一方法的前提条件或先决步骤是:
①对项目需求作出一个完整的限定。
②制定完成任务所必需的逻辑步骤。
③编制WBS表。
项目需求的完整限定应包括工作报告书、规格书以及总进度表。工作报告书是指实施项目所需的各项工作的叙述性说明,它应确认必须达到的目标。如果有资金等限制,该信息也应包括在内。规格书是对工时、设备以及材料标价的根据。它应该能使项目人员和用户了解工时、设备以及材料估价的依据。总进度表应明确项目实施的主要阶段和分界点,其中应包括长期定货、原型试验、设计评审会议以及其他任何关键的决策点。如果可能,用来指导成本估算的总进度表应含有项目开始和结束的日历时间。
一旦项目需求被勾划出来,就应制定完成任务所必需的逻辑步骤。在现代大型复杂项目中,通常是用箭头图来表明项目任务的逻辑程序,并以此作为下一步绘制CPM或PERT图以及WBS表的根据。
编制WBS表的最简单方法是依据箭头图。把箭头图上的每一项活动当作一项工作任务,在此基础上再描绘分工作任务。
进度表和WBS表完成之后,就可以进行成本估算了。在大型项目中,成本估算的结果最后应以下述的报告形式表述出来:
①对每个WBS要素的详细费用估算。还应有一个各项分工作、分任务的费用汇总表,以及项目和整个计划的累积报表。
②每个部门的计划工时曲线。如果部门工时曲线含有“峰”和“谷”,应考虑对进度表作若干改变,以得到工时的均衡性。
③逐月的工时费用总结。以便项目费用必须削减时,项目负责人能够利用此表和工时曲线作权衡性研究。
④逐年费用分配表。此表以WBS要素来划分,表明每年(或每季度)所需费用。此表实质上是每项活动的项目现金流量的总结。
⑤原料及支出预测,它表明供货商的供货时间、支付方式、承担义务以及支付原料的现金流量等。
采用这种方法估算成本需要进行大量的计算,工作量较大,所以只计算本身也需要花费一定的时间和费用。但这种方法的准确度较高,用这种方法作出的这些报表不仅仅是成本估算的表述,还可以用来作为项目控制的依据。最高管理层则可以用这些报表来选择和批准项目,评定项目的优先性。 以上介绍了三种成本估算的方法。除此之外,在实践中还可将几种方法结合起来使用。例如,对项目的主要部分进行详细估算,其他部分则按过去的经验或用因素估算法进行估算。
项目成本的分析与考核:项目成本的考核
考核的目的是贯彻落实责权利相结合的原则,促进项目成本管理工作健康发展,更好地实现工程项目成本地目标。因此,因从质量、工期、安全完成情况,人工费、材料费、结构接费、机械使用费等的节超情况。按照不同的职能部门,不同的人员的项目成本管理责任制,以不同的工作阶段进行考核,奖罚兑现,以提高全员的工作积极性,提高工程成本项目的降低率,提高企业的经济效益。