WORD格式可编辑专业知识分享信息化项目软件开发费用测算规范1范围本标准规定了定制类信息化项目软件开发费用测算的方法及过程,包括软件开发费用的构成、软件规模、工作量、费用及工期测算方法及过程。本标准适用于以功能性需求为主的定制类信息化项目软件开发费用测算。2规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。ISO/IEC20926软件和系统工程—软件度量—IFPUG功能规模度量方法2009(Softwareandsystemsengineering--Softwaremeasurement--IFPUGfunctionalsizemeasurementmethod2009)ISO/IEC24570软件工程—NESMA功能规模度量方法2.1版—功能点分析应用定义和计数指南(Softwareengineering--NESMAfunctionalsizemeasurementmethodversion2.1--DefinitionsandcountingguidelinesfortheapplicationofFunctionPointAnalysis)WORD格式可编辑专业知识分享3术语、定义和缩略语3.1术语和定义下列术语和定义适用于本文件。3.1.1信息化项目informationtechnologyproject旨在提高信息化水平的信息系统建设及优化任务。3.1.2委托方sponsor软件开发项目的出资方。3.1.3开发方developer受委托方委托,负责软件开发的组织或团队。3.1.4第三方third-party委托方和开发方之外的主要利益相关方。注:监理、审计、咨询机构等均为第三方。DB11/T1010—201323.1.5软件开发费用softwaredevelopmentcost委托方为达成软件开发项目目标而需向开发方支付的费用。3.1.6WORD格式可编辑专业知识分享直接成本directcost开发方为达成软件开发项目目标而直接付出的各种资源代价总和。注:可直接计入软件开发项目成本的直接材料、直接人工等属于直接成本。3.1.7间接成本indirectcost与达成软件开发项目目标相关,但同一种投入可以支持一个以上项目的开发方联合成本。注:开发方研发管理人员工资、研发设备折旧、停工补偿等属于间接成本。3.1.8人力成本humanresourcecost为达成软件开发项目目标所需付出的开发方人力资源成本总额。3.1.9非人力成本non-humanresourcecost开发方为达成软件开发项目目标所需付出的人力成本之外的其他成本总额。3.1.10直接人力成本directhumanresourcecost为达成软件开发项目目标而直接付出的开发方人力成本。3.1.11直接非人力成本directnon-humanresourcecostWORD格式可编辑专业知识分享开发方为达成软件开发项目目标而直接付出的非人力成本。3.1.12间接人力成本indirecthumanresourcecost开发方服务于软件研发管理整体需求的非项目组人员的人力成本。3.1.13间接非人力成本indirectnon-humanresourcecost开发方不为开发某个特定项目但服务于整体研发活动产生的非人力成本。3.1.14毛利润grossprofit软件开发费用与直接成本及间接成本之差。3.1.15DB11/T1010—20133基准数据benchmark经过筛选并维护数据库中的一个或一组测量值或者派生测量值,用来表征目标对象相关属性与这些测量值的关系。3.1.16方程法equation基于基准数据建立参数模型,并通过输入各项参数,确定待测算项目工作量、工期或费用估算值的WORD格式可编辑专业知识分享方法。3.1.17软件因素softwarefactor由于软件自身特点的差异而导致预期生产率发生变化的相关因素。注:业务领域、应用类型、质量特性等属于软件因素。3.1.18开发因素developmentfactor对于同一软件,由于开发团队或其采用的过程、技术差异而导致预期生产率发生变化的相关因素。注:采用技术、过程、团队经验、重用程度等属于开发因素。3.1.19系统边界systemboundary被测算软件与用户或其他系统之间的界限。3.1.20功能点functionpoint衡量软件功能规模的一种单位。3.1.21内部逻辑文件internallogicalfile在系统边界内维护的、用户可识别的逻辑相关数据组或控制信息。注:其主要目的是保存由被计数的应用的一个或多个基本处理所维护的数据。3.1.22WORD格式可编辑专业知识分享外部接口文件externalinterfacefile由一系统引用、另一系统维护的,用户可识别的逻辑相关数据组或控制信息。注:其主要目的是保存由被计数的系统边界内的一个或多个基本处理所引用的数据。一个系统所计数的外部接口文件必定是另一个系统的内部逻辑文件。3.1.23预估功能点计数theindicativefunctionpointcount只进行内部逻辑文件和外部接口文件计数的功能点计数方法。3.1.24DB11/T1010—20134百分位数percentile在某实数集合中,对于集合内某元素X,如果该集合中有且仅有p%的数据不大于X,则称X为该集合的p百分位数。示例:如果仅有50%的数据不大于X,则X为该集合的50百分位数,简称P50。3.1.25功能点耗时率personhoursperfunctionalsizeunit每功能点所消耗的人时数。3.1.26WORD格式可编辑专业知识分享功能点单价unitpriceoffunctionpoint每功能点的直接人力成本、间接人力成本、间接非人力成本及毛利润之和。3.2缩略语以下缩略语适用于本文件。EI:外部输入EO:外部输出EQ:外部查询EIF:外部接口文件FP:功能点ILF:内部逻辑文件4软件开发费用构成4.1费用构成软件开发过程应包括从信息化项目立项完成到项目验收之间的需求分析、设计、编码、集成、测试、安装、验收活动及相关的项目管理、支持活动。软件开发费用应包括软件过程中开发方的所有直接成本、间接成本和毛利润(如图1所示),不包括软件预研或可行性分析、数据迁移、软件维护等成本。直接成本包括直接人力成本和直接非人力成本。间接成本包括间接人力成本和间接非人力成本。本标准中所涉及工作量、工期仅为软件开发过程所用工作量、工期。WORD格式可编辑专业知识分享图1软件开发费用构成DB11/T1010—20135注:不同的组织在软件开发费用测算过程中应考虑已有财务或其他管理制度对软件开发费用构成的影响。例如,当软硬件购置费、测评费等费用单独列支时,不应再将上述费用作为软件开发费用的直接非人力成本重复计算。4.2直接人力成本构成直接人力成本包括开发方项目组成员的工资、奖金、福利等人力资源费用。其中,项目组成员包括参与该项目开发过程的所有研发或支持人员。对于非全职投入该项目开发工作的人员,按照项目工作量所占其总工作量比例折算其人力资源费用。注:项目组成员通常包括项目经理、需求分析人员、设计人员、开发人员、测试人员、部署人员、用户文档编写人员、质量保证人员、配置管理人员等。4.3直接非人力成本构成直接非人力成本包括:a)办公费,开发方为开发此项目而产生的行政办公费用,包括办公用品、通讯、邮寄、印刷、会议等;b)差旅费,开发方为开发此项目而产生的差旅费用,包括交通、住宿、差旅补贴等;c)培训费,开发方为开发此项目而安排的特别培训产生的费用;WORD格式可编辑专业知识分享d)业务费,开发方为完成此项目开发工作所需辅助活动产生的费用,包括招待费、评审费、验收费、第三方评测费等;e)采购费,开发方为开发此项目而需特殊采购专用资产或服务的费用,包括专用设备费、专用软件费、技术协作费、专利费等;f)其他,未在以上项目列出但确系开发方为开发此项目所需花费的费用。4.4间接人力成本构成间接人力成本包括软件研发部门经理、项目管理办公室(PMO)人员、工程过程组(EPG)人员、产品规划人员、组织级质量保证人员、组织级配置管理人员等的工资、奖金、福利等的分摊。4.5间接非人力成本构成间接非人力成本包括开发方研发场地房租、水电、物业,研发人员日常办公费用分摊及各种研发办公设备的租赁、维修、折旧分摊。4.6毛利润构成毛利润包含开发方直接成本和间接成本之外的经营管理费用分摊、市场销售费用分摊、应承担各种税费及税后净利。5软件开发费用测算5.1软件开发费用测算过程软件开发费用测算的基本流程如图2所示。DB11/T1010—2013WORD格式可编辑专业知识分享6图2软件开发费用测算基本流程工期测算的结果与费用测算结果相互关联、互相影响。工期测算的结果可导致重新测算工作量,并最终改变软件开发费用测算结果。对于有明确工期要求的项目,在采用方程法测算工作量时,工期要求可以是方程的参数之一。在软件开发费用测算过程中,应遵循以下原则:——充分利用基准数据,对工作量、工期、费用进行测算;——在测算规模时,应根据项目特点和需求的详细程度选择合适的方法;——工作量、工期、费用的测算结果宜为一个范围而不是单一值;——费用测算过程中宜采用不同方法分别测算并进行交叉验证。如果不同方法的测算结果产生较大差异,可采用专家评审方法或加权平均方法确定测算结果。5.2规模测算5.2.1功能点计数应根据已知的项目功能描述,采用功能点方法测算软件规模。在预算阶段,宜采用预估功能点计数方法,测算未调整的功能点数。在测算规模前应依据可行性研究报告或类似文档明确项目范围及系统边界。项目范围描述文档应包含最基本的业务需求,还应进行初步的子系统/模块划分,并对每一WORD格式可编辑专业知识分享子系统或模块的基本用户需求进行描述或说明,保证可根据项目范围描述文档进行预估功能点计数。采用预估功能点方法测算软件规模公式如下:UFP=35×ILF+15×EIF……………………………………(1)式中:UFP——未调整的功能点数,单位为功能点;ILF——内部逻辑文件数量,单位为个;EIF——外部接口文件数量,单位为个。功能点的计数规则,应符合ISO/IEC20926或ISO/IEC24570的规定。功能点计数的基本规则见附录A。示例:假设关于公文管理部分功能的描述如下:公文管理包括公文起草、审核、审批、备案、发布。审批时要对电子签名进行验证。采用预估功能点计数方法,可以识别出上述需求中包含一个ILF(公文信息),一个EIF(电子签名信息),因此,此部分需求未调整的功能点数UFP为50。5.2.2规模调整5.2.2.1复用程度调整应对待实现功能复用情况进行分析,识别出可复用的功能及可复用的程度。对于委托方,应评估待实现功能行业的平均复用水平,并根据复用程度对规模进行调整,公WORD格式可编辑专业知识分享式如下:DB11/T1010—20137US=RUF×UFP……………………………………………(2)式中:US——未调整的软件规模,单位为功能点;RUF——复用度调整因子,取值为0-1的任意实数;UFP——未调整的功能点数,单位为功能点。示例:假设关于公文管理部分功能的描述如下:公文管理包括公文起草、审核、审批、备案、发布。审批时要对电子签名进行验证。采用预估功能点计数方法,可以识别出上述需求中包含一个ILF(公文信息),一个EIF(电子签名信息),因此,此部分需求未调整的功能点数UFP为50。假设该部分的整体复用程度是开发方开发过类似功能,但需要适当调整,复用度调整因子取值为2/3,因此,未调整规模US=50×2/3=33.3(FP)。5.2.2.2隐含需求及需求变更调整采用预估功能点测算规模时,应根据隐含需求及未来需求变更对规模产生的影响并对测算规模进行调整,公式如下:S=US×CF……………………………………………(3)式中:WO