1、 版权所有 侵权必究 1 SJ/T XXXXXXXXX软件研发成本度量规范 应用指南预算场景 (试行版) 中国软件行业协会系统与软件过程改进分会 二一二年十月 版权所有 侵权必究 I 版 权 声 明 本文档版权归中国软件行业协会系统与软件过程改进分会所有,仅供学习、参考使用,未经许可,任何单位或个人不得以任何方式复制或抄袭本书之部分或全部内容,不得以任何方式用于谋取商业利益。 版权所有,侵权必究。 版权所有 侵权必究 II 编制委员会 组长:王 钧 副组长:王海青 穆京丽 李华北 成员:(按拼音首字母排序) 常留华 陈 颖 陈卓慧 代寒玲 付冰川 胡美鑫 李淮泾 李莹莹 刘文彬 刘文圣 刘小茵
2、 麻妮娜 彭宇翔 杨 川 杨 杨 余杨华 张超辉 赵玉民 评审委员会 组长:郑人杰 副组长:王智玉 成员:(按拼音首字母排序) 陈 林 郝宗伟 蒋 松 李世欣 林 波 孙洪林 王海滨 王 进 张兰英 周大勇 参与单位(按拼音首字母排序) 北京久其软件股份有限公司 北京先进数通信息技术有限公司 北京宇信易诚科技有限公司 北京紫光华宇软件股份有限公司 广州赛宝认证中心服务有限公司 黑龙江邮政易通信息网络有限责任公司 深圳市怡化时代科技有限公司 深圳市易思博软件技术有限公司 神华和利时信息技术有限公司 审计署计算机技术中心 水利部水利信息中心 太极计算机股份有限公司 云南南天电子信息产业股份有限公司
3、 重庆南华中天信息技术有限公司 总后勤部后勤科学研究所 版权所有 侵权必究 III 目 录 1 概述 . 1 1.1 编制背景 . 1 1.2 编制目的与范围 . 1 1.3 结构及预期读者 . 2 1.4行业基准数据说明 2 2 估算过程 . 3 2.1 概述 . 3 2.2 估算规模 . 4 2.3 规模调整 . 4 2.4 估算工作量 . 5 2.5 估算工期 . 6 2.6 确定预算 . 6 2.7 预算审批 . 8 3 估算方法应用示例及说明 . 9 3.1 方程法应用示例 . 9 3.2 其他估算方法示例 11 3.3 委托方与开发方应用差异说明 13 参考资料 14 附 录 A
4、术语 15 附 录 B 常用模板样例及参数表 19 版权所有 侵权必究 1 软件研发成本度量规范应用指南预算场景 1 概述 1.1 编制背景 长期以来,如何度量软件研发成本一直是产业界的难题,尤其是在预算、招投标、项目计划等活动中因为缺失科学统一的软件研发成本度量标准,较大程度导致项目做预算时无据可依,进而造成预算浪费或预算不足;在软件项目招投标过程中,因为缺乏软件研发成本度量依据,恶意竞标、低价中标现象频频发生;开发方在项目实施过程中,由于缺乏成本控制的科学依据,也经常出现时间滞后、费用远远超出最初预算的情况。科学统一的软件研发成本度量标准既是有效进行软件项目管理的重要依据,也是当前软件产业
5、发展的迫切需要。 为此,工业与信息化部软件服务业司委托中国软件行业协会系统与软件过程改进分会牵头组织编制了软件研发成本度量规范。标准中规定了软件研发成本度量的方法及过程,包括软件研发成本的构成、软件研发成本度量过程、软件研发成本度量的应用。其目的是帮助软件研发涉及各方科学、一致地进行成本度量。但标准中没有包含软件研发成本度量过程中所需要的估算模型、行业基准数据及其在不同场景进行成本估算的详细步骤和方法,因此需要制订标准的应用指南,以便相关各方针对不同的应用场景、正确使用行业数据和模型,有效开展软件研发成本度量相关工作。 1.2 编制目的与范围 本指南是软件研发成本度量规范系列应用指南之一,针对
6、预算场景。 软件研发成本度量规范中的成本度量,特指对软件研发成本的预计值进行估算或对实际值进行测量、分析的过程。而软件研发成本度量规范中,预算是指根据项目成本估算的结果确定预计项目费用的过程。因此,本指南主要描述在预算场景下如何开展成本估算工作,而不涉及编制预算的其他方面。 版权所有 侵权必究 2 在软件研发成本度量规范及本指南中,软件研发过程包括从项目立项开始到项目完成验收之间的需求分析、设计、编码、集成、测试、验收交付活动及相关的项目管理、支持活动。因此,本指南中软件研发成本仅包括软件研发过程中的所有直接成本和间接成本,但不包括数据迁移、软件维护等成本。本指南中所涉及工作量、工期也仅为软件
7、研发过程所用工作量、工期。 本指南编制的主要目的是指导预算活动相关各方,基于软件研发成本度量规范有效开展成本估算工作,并为确定软件项目预算提供科学依据。 本指南明确了基于软件研发成本度量规范和基准数据开展成本估算相关活动的步骤与方法,并通过示例,明确了典型情况的估算及调整方法;对于其他特殊情况,相关人员应根据本指南及软件研发成本度量规范中的相关原则,结合项目特点,选择适当的估算方法或对估算结果进行合理调整。 对于与预算类似的其他早期估算应用场景,相关人员也可参照本指南的相关原则与方法,开展项目估算活动。 1.3 结构及预期读者 本指南包括概述、估算过程、估算方法应用示例及说明、参考资料、附录等
8、五部分。预期读者为参与预算活动的软件成本估算人员、预算申报人员、预算审核人员及其他相关人员或主管领导。 利用本指南进行成本估算的人员,应了解软件研发成本度量规范所涉及的成本估算基本方法、过程与要点,并掌握预估功能点方法。 1.4 行业基准数据说明 本指南中所涉及主要公式及参数取值均基于行业基准数据(SSM-BK-201204,包含国际、国内项目数据超过4000套)分析结果。其中,人力成本费率及功能点单价基准数据和地区调整因子是对6个典型城市的代表软件企业进行大量抽样调查后计算相应第50百分位数获得;当前估算模型中所采用的其余调整因子(包括规模、业务领域、应用类型、开发语言、开发团队背景)是基于
9、对行业基准数据进行相关性分析后确定的主要影响因素。调整因子的增减或取值有可能随着行业基准数据的变化而变化。 版权所有 侵权必究 3 行业基准数据由中国软件行业协会系统与软件过程改进分会负责维护,并在每年4月份发布。对于委托方和第三方,建议使用或参考行业基准数据制订预算;对于开发方,在引入行业基准数据的基础上,可逐步建立组织级基准数据库,以提高估算精度。组织级基准数据定义应与行业基准数据定义保持一致,以便于与行业基准数据进行比对分析,并持续提升组织能力。 2 估算过程 2.1 概述 在预算过程中,通常采用方程法进行项目估算。方程法,即基于基准数据建立参数模型,并通过输入各项参数,确定待估算项目工
10、作量、工期或成本估算值的方法。采用方程法确定项目预算的典型过程如下图所示: 说明:上图中UFP 为未调整功能点数,ILF为内部逻辑文件数量;EIF 为外部接口文件数量;S 代表调整后规模;CF 为规模变更调整因子;AE 代表调整后工作量,单位为人时;PDR 代表功能点耗时率,单位为人时每功能点; SWF为软件因素调整因子;RDF为开发因素调整因子;D代表工期,单位为月;F2代表人月费率(含开发方直接人力成本、开发方间接成本及开发方毛利润),单位为元每人月;DNC 代表开发方直接非人力成本,单位为元;P代表预算费用,单位为元。 确定预算P=AE/176*F2+DNC估算工期D=1.277*(AE
11、/176)0.404估算工作量AE=(PDR*S) *SWF*RDF 主要考虑软件因素规模调整S=UFP*CF 通常CF取值为1.5,不考虑复用估算规模UFP=35*ILF+15*EIF 采用预估功能点方法版权所有 侵权必究 4 2.2 估算规模 应根据初步的项目功能描述,采用预估功能点计数方法,估算未调整的功能点数。功能点估算公式如下: UFP=35*ILF+15*EIF 式中: UFP:未调整的功能点数,单位为功能点; ILF:内部逻辑文件数量,单位为个; EIF:外部接口文件数量,单位为个。 功能点的计数规则,请参考NESMA相关标准。 【示例1】 项目范围描述:公文管理包括公文起草、审
12、核、审批、备案、发布。审批时要对电子签名进行验证 采用预估功能点计数方法,可以识别出上述需求中包含一个 ILF(公文信息),一个 EIF(电子签名信息),因此,此部分需求未调整的功能点数 UFP为 50。 【补充说明】 在估算前应依据可行性研究报告或类似文档明确项目范围及系统边界。项目范围描述文档中除包含最基本的业务需求外,还应进行初步的子系统/模块划分,并对每一子系统或模块的基本用户需求进行描述或说明,以保证可以根据项目范围描述文档进行预估功能点计数。如果当前的项目范围描述文档过于粗略,无法进行预估功能点计数时,则不进行规模估算,而直接采用类比法或类推法估算工作量、工期或成本。 在使用预估功
13、能点方法进行规模估算时,通常规模估算偏差小于20%。 2.3 规模调整 考虑到预算时需求较模糊,未来将有很多隐含需求及需求变更。因此,需对估算规模进行调整,公式如下: S=UFP*CF 式中: S:调整后的软件规模,单位为功能点; CF:规模变更调整因子,依据行业数据,预算阶段通常取值为1.5。如果预算阶段需求较为清晰,可对该因子取值进行适当调整。 版权所有 侵权必究 5 在预算阶段,开发方尚未确定,难以确定未来开发的重用程度,因而通常不进行重用度调整。如果制订预算时可进行重用度调整,可参照附录B.1中的公式计算调整后的软件规模。 2.4 估算工作量 根据调整后软件规模,估算工作量,公式如下:
14、 AE=(PDR*S)*SWF*RDF 式中: AE:调整后的估算工作量,单位为人时; S:调整后的软件规模,单位为功能点; PDR:功能点耗时率,单位为人时每功能点。PDR的取值可参见附录B.2; SWF:软件因素调整因子,通常包含规模、业务领域、应用类型及质量特性调整因子,上述调整因子的取值可参见附录B.3-B.6; RDF:开发因素调整因子,通常包含开发语言及开发团队背景调整因子,在预算时如无特殊要求,取值为1。如果需要调整,取值可参见附录B.7-B.8; 可根据上述公式及附录B.2中PDR数据的P25、P50、P75值,分别计算出工作量估算结果的上下限及最有可能值。 【示例2】 项目范
15、围描述:为政府部门甲新开发一OA系统,以支持其网上办公、文档流转等电子政务需求。具体功能包括收文管理、发文管理、会议管理、日程安排;其中收文管理功能要求;日程安排功能要求。 估算软件规模:假设根据需求描述,识别内部逻辑文件13个,外部接口文件4个,则未调整的功能点数UFP=35*13+15*4=515; 软件规模调整:规模变更调整因子取值为1.5,因此计算出调整后软件规模S=UFP*1.5=772.5。软件规模估算及调整可采用附录B.1所示模板; 估算工作量:根据附录B.2,PDR取值分别为3.58、7.17、12.99;由于此时对开发没有特殊要求,所以RDF取值为1;而规模调整因子依据附录B
16、.3计算出SF=1.06,业务领域BD依据附录B.4确定为0.93,应用类型调整因子AT依据附录B.5均确定为1,质量特性调整因子QR依据附录B.6计算出等于1;由此,可计算出调整后的估算工作量AE的最有可能值=(7.17*1030)*1*0.97*0.93*1*1=5452.21人时,而工作量估算最终结果的合理范围在2726.28人时到9892.28人时之间。 版权所有 侵权必究 6 2.5 估算工期 估算工期可根据工作量-工期模型计算,公式如下: D=1.277*(AE/HM1)0.404 式中: D:工期,单位为月; AE:调整后工作量,单位为人时; HM1:折算系数,单位为人时每月,取
17、值为176。 当期望工期短于估算工期的下限时,应对项目需求进行分析并适当调整。通常,压缩工期会增加项目工作量,及导致生产效率降低。 【示例3】 项目情况:同示例2; 工作量估算结果:同示例2; 估算工期: 根据工作量-工期模型,计算出最有可能工期=1.277*(6622.10/176)0.404=5.54月。合理工期范围在4.19月到7.05月之间(采用工作量估算合理范围的上下限值分别计算); 工期及工作量估算调整: 如果期望工期为4.5个月,根据经验,当期望工期多于估算工期下限但少于最有可能工期时,每压缩10%的工期,将导致10%的工作量增加。因此,本项目如果要求4.5个月完成,总工作量大致
18、会增加20%。 2.6 确定预算 在获得了工作量估算结果后,可采用以下公式估算项目预算: P=AE/HM2*F2+DNC 式中: P:预算费用,单位为元; AE:调整后工作量,单位为人时; HM2:人月折算系数,单位为人时每人月,取值为176; F2 :平均人力成本费率(包括开发方直接人力成本、间接成本及毛利润),单位为元每人月; DNC:直接非人力成本,单位为元; 版权所有 侵权必究 7 其中,平均人力成本费率F2可根据本组织历史数据或附录B.10确定,如果潜在开发方不在北京,可参照附录B.9和附录B.10进行折算;直接非人力成本可按照附录B.11分项估算。 如果委托方基于已确定的功能点单价
19、估算预算费用,则采用以下公式: P=S*PP*SWF*RDF+DNC 式中: P:预算费用,单位为元; S:调整后的软件规模,单位为功能点; PP:功能点单价,单位为元每功能点;PP的取值可参见附录B.10; SWF:软件因素调整因子,通常包含质量要求调整因子及应用类型调整因子,上述调整因子的取值可参见附录B.4-B.7;在基于功能点单价确定预算时,为便于结算,通常委托方不使用规模调整,如果委托方使用规模调整因子,取值可参见附录B.3; RDF:开发因素调整因子,通常包含开发语言、开发团队背景等,在预算时如无特殊要求,取值为1。如果需要调整,取值可参见附录B.7-B.8; DNC:直接非人力成
20、本,单位为元; 【示例4】 项目情况:同示例2; 工作量估算结果:同示例2; 工期估算结果:同示例3; 确定预算:假设该组织历史项目的平均人力成本费率为15000元,直接非人力成本预计有培训费20000元,业务费10000元,采购费30000元,合计为60000元。则计算得到最有可能的预算费用P=(6662.10/176*15000)+60000=627800元,预算的合理范围在343500元到1088700元之间。如果项目无特殊要求,通常以最有可能值申报预算。 【补充说明】 对于委托方,也可利用不含毛利润的开发方人力成本费率(即只包含直接人力成本和间接成本)估算软件研发成本,再根据开发方毛利
21、润水平,确定预算费用,公式如下: SDC= AE/HM2*F1+DNC 式中: SDC:软件研发成本,单位为元; AE :调整后工作量,单位为人时; HM2:人月折算系数,单位为人时每人月,取值为176; F1:平均人力成本费率(包括开发方直接人力成本、间接成本),单位为元每人月; 版权所有 侵权必究 8 DNC:直接非人力成本,单位为元。 P=SDC*(1+GP) 式中: P:预算金额,单位为元; GP:毛利润率,建议不超过30%。 上报预算时应依据规模、工作量、工期、成本、预算金额的估算结果,并考虑此类项目的特殊因素。例如,对于质量、进度要求较高的项目,为了确保项目成功可按照预算金额的上限
22、值上报预算。如无特殊情况,不应以低于预算金额下限或高于预算金额上限的金额上报预算。 对于采用功能点方法进行规模估算的项目,上报预算时还应附上功能清单及对应功能点数。 2.7 预算审批 审批预算时应考虑以下因素: 预算的合理性; 可用于本项目的资金情况; 概算或年初总预算额; 其他预算项目可行性及投资收益率对比和平衡; 预算审批人应参照软件研发成本度量规范5.1条的规定对预算的合理性进行评估,也可委托第三方机构进行评估。在预算审批时,可采用不同于预算申请时所用的估算方法进行交叉验证。 预算审批可参考B.14审批预算检查单样例。 如果预算审批不通过,应将预算驳回,并要求重新进行预算。 当市场环境、
23、经营条件、政策法规、需求范围等发生重大变化,引起工作量、工期、成本等指标严重偏离预算时,应对预算方案进行相应地变更调整,重新上报预算审批人批准。 版权所有 侵权必究 9 3 估算方法应用示例及说明 3.1 方程法应用示例 3.1.1 需求示意 项目背景:某开发方为政府部门甲新开发一OA系统,以支持其网上办公、文档流转等电子政务需求。开发方需根据初步需求确定项目预算。本项目预算期需求较明确,开发方了解各功能的重用情况,并确定采用JAVA开发,无特殊质量要求,团队为其他行业开发过此类系统。 主要功能:收文管理、发文管理、会议管理、日程安排; 功能描述:收文管理功能要求;日程安排功能要求。 3.1.
24、2 估算规模 假设根据需求描述,识别内部逻辑文件15个,外部接口文件4个,识别各功能可重用程度后,填写下表得: 功能类型 不同重用度文件数 功能点数 功能点数合计 ILF 低_9_ *1 *35= _315_ 中_3_ *2/3*35= _70_ 高_3_ *1/3*35= _35_ ILF计数合计: _420_ EIF 低_2_ *1 *15= _30_ 中_0_ *2/3*15= _0_ 高_2_ *1/3*15= _ 10_ EIF计数合计: _40_ US(ILF计数合计+ EIF计数合计) 规模变更因子: S(调整后规模总计): _460_ _1.26_ _579.6_ 说明: 规模
25、变更因子预算时取值为1.5,招投标时取值为1.26; 功能规模SUS*规模变更因子 由于需求较明确,所以规模变更因子参照招投标场景取值,为1.26。 版权所有 侵权必究 10 3.1.3 确定预算 依据附录B.12模板得到以下估算结果: 功能点估算规模、工作量、工期、成本表 1.未调整功能点数UFP(功能点) / 经过重用调整后的功能点数US(功能点) 460 设定规模变更因子CF 1.26 2.调整后的功能点数S(功能点) S=UFP*CF(不调整重用度) / S=US*CF(调整重用度) 579.6 基准数据(生产率) 功能点耗时率(人时/功能点)(P25) 3.58 功能点耗时率(人时/
26、功能点)(P50) 7.17 功能点耗时率(人时/功能点)(P75) 12.99 3.未调整的工作量UE(人时) 计算公式:UE=PDR*S 下限(人时) 2074.97 最有可能(人时) 4155.73 上限(人时) 7529.00 设定调整因子 规模调整因子SF 1.17 业务领域调整因子BD 0.93 应用类型调整因子AT 1.00 质量特性调整因子QR 0.90 开发语言调整因子SL 1.00 开发团队背景调整因子DT 1.00 4.调整后的工作量AE(人时) 计算公式:AE=UE*SWF*RDF; 其中SWF=SF*BD*AT*QR,RDF=SL*DT 下限(人时) 2040.03
27、最有可能(人时) 4085.76 上限(人时) 7402.23 人月折算系数HM2(人时/人月) 176 平均人力成本费率(含直接人力成本和间接成本)F1(元/人月) 19000 平均人力成本费率(含直接人力成本和间接成本及开发方毛利润)F2(元/人月) / 直接人力成本与间接成本之和HRC(元) 计算公式:HRC=(AE/HM2*F1) 下限(元) 220200 最有可能(元) 441100 上限(元) 799100 直接非人力成本合计DNC(元) 60000 5.工期D(月) 计算公式:D=1.277*(AE/HM1)0.404 下限(月) 3.44 最有可能(月) 4.55 版权所有 侵
28、权必究 11 上限(月) 5.78 6软件研发成本SDC(元) 计算公式:SDC=HRC+DNC 下限(元) 280200 最有可能(元) 501100 上限(元) 859100 设定开发方合理毛利率GP(%) 毛利润率(%) 30% 7.费用/价格P(元) 计算公式1:P=SDC*(1+GP) 计算公式2:P=AE/HM2*F2+DNC 下限(元) 364300 最有可能(元) 651400 上限(元) 1116800 项目预算(元) 651400 功能点单价(元/功能点) 1089 3.2 其他估算方法示例 对于需求极其模糊的项目,可采用类比法或类推法确定预算费用。 3.2.1 类比法 类
29、比法,即将本项目的部分属性与类似的一组基准数据进行比对,进而获得待估算项目工作量、工期或成本估算值的方法。选择类比法进行估算,应根据项目的主要属性,在基准数据库中选择主要属性相同的项目进行比对。在使用行业级基准数据库时,如果筛选出的可比对项目数量过少,将影响比对结果的可信度。通常认为,筛选后项目数量不少于20个,则具有很高的可信度;超过7个但不足20个,具备一定的可信度;不超过7个,可信度较低。如果根据多个属性进行筛选后,可比对项目数量不超过7个,可选择单一属性分别筛选比对,之后采用平均值作为估算结果。如果是企业级基准数据库。通常筛选后项目数量超过7个就具有很高的可信度;超过2个但不足7个也具
30、备一定的可信度;不超过2个时可考虑改用类推方法。 【示例5】 项目范围描述:为政府部门甲新开发一OA系统,以支持其网上办公、文档流转等电子政务需求。 估算过程: 主要属性识别:可以识别出项目的3个主要属性是开发类型、业务领域和应用类型。其中开发类型为“新开发”,业务领域为“政府”,应用类型为“OA”; 筛选比对:假设查询行业基准数据库后发现,同时符合3个筛选条件的项目只有2个,数量过少,因此选择单一属性分别比对,获得如下工作量数据(单位为人时)查询结果: 版权所有 侵权必究 12 属性 项目数量 P10 P25 P50 P75 P90 备注 新开发 105 1005 1983 5892 124
31、06 98727 政府 52 892 2416 4713 9319 43658 OA 34 576 2025 5128 7144 21990 估算工作量:该项目所需工作量的最有可能值为(5892+4713+5128)/3,即5244人时。工作量估算的合理范围大致在2141人时和9623人时之间(采用P25和P75的值分别计算平均值); 估算工期:采用附录模板B.12中的工期-工作量模型估算出该项目所需工期的最有可能值为1.277*(5244/176)0.404=5.03月。合理工期范围在3.50月到6.43月之间(采用工作量估算合理范围的上下限值分别计算); 确定预算:可参照附录模板B.11和
32、B.12中的相关内容计算。 3.2.2 类推法 类推法,即将本项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,适当调整后获得待估算项目工作量、工期或成本估算值的方法。选择类推法进行估算,通常只参照一、两个高度类似的项目,同时根据待估算项目与参照项目的差异,进行适当调整。 【示例6】 项目范围描述:为政府部门甲新开发一OA系统,以支持其网上办公、文档流转等电子政务需求。 历史项目情况:政府部门乙开发过类似系统,甲、乙部门对功能要求有所差别,但项目规模、难度、质量要求等差异不大。 参考项目数据:开发总工期为4.92个月,总工作量为4625人时,其中项目策划阶段78人时,需求阶段555
33、人时,设计阶段694人时,构建阶段1619人时,测试阶段922人时,移交阶段757人时。 估算工作量: 估算工作量:考虑到该项目可将为乙部门开发的系统做为原型了解客户需求,假设需求分析阶段可减少约1/3工作量,则预计项目工作量=555*2/3+694+1619+922+757=4440人时。 估算工期:假设需求分析阶段可缩短大约一周,则预计项目工期=4.92-(7/30)=4.69月; 估算成本:可参照附录模板B.11和B.12中的相关内容计算。 估算合理范围:采用类推方法,只能得到估算的最有可能值。如果要估算合理范围,通常可依据历史项目的估算偏差。例如,假设工作量估计偏差的P25为-11.3
34、%,P75为17.1%,则可计算出合理的工作量范围在3938人时到5199人时之间。如果没有估计偏差相关历史数据,也可以依据专家经验设定合理范围(如+20%之间); 确定预算:可参照附录模板B.11和B.12中的相关内容计算。 版权所有 侵权必究 13 3.3 委托方与开发方应用差异说明 委托方、开发方在制订软件研发项目预算时均可参照本指南。但开发方在制订预算时通常存在以下三方面差异: 需求更明确; 可评估待实现功能的可复用情况; 工作量估算时,很多开发因素已确定。 因此,开发方在制订预算时可根据情况参照软件成本度量规范相关要求,对规模估算结果或工作量估算结果适当调整,以合理确定预算。 版权所
35、有 侵权必究 14 参考资料 1软件研发成本度量规范 2ISO/IEC 19761 软件工程COSMIC:一种功能规模度量方法(Software eng ineering - COSMIC: a functional size measurement method) 3ISO/IEC 20926 软件和系统工程软件度量IFPUG功能规模度量方法2009(Software and systems engineering - Software measurement - IFPUG functional size measurement method 2009) 4ISO/IEC 20968 软件
36、工程Mk 功能点分析计数实践手册(Software engineering - Mk Function Point Analysis - Counting Practices Manual) 5ISO/IEC 24570 软件工程NESMA功能规模度量方法2.1版功能点分析应用定义和计数指南(Software engineering - NESMA functional size measurement method version 2.1 - Definitions and counting guidelines for the application of Function Point A
37、nalysis) 6ISO/IEC 29881 信息技术系统和软件工程FiSMA1.1功能规模度量方法(Information technology Systems and software engineering - FiSMA 1.1 functional size measurement method) 版权所有 侵权必究 15 附 录 A 术语 A.1 功能点 function point FP 衡量软件功能规模的一种单位。 A.2 系统边界 system boundary 被度量软件与用户或其他系统之间的界限。 A.3 NESMA Netherlands Software Metri
38、cs Association 荷兰软件度量协会。 A.4 内部逻辑文件 internal logical file ILF 在系统边界内维护的用户可识别的逻辑相关数据组或控制信息。其主要目的是保存由被计数的应用的一个或多个基本处理所维护的数据。 A.5 外部接口文件 external interface file EIF 被本系统引用但在另一系统边界内被维护的,用户可识别的逻辑相关数据组或控制信息。其主要目的是保存由被计数的系统边界内的一个或多个基本处理所引用的数据。这意味着被一个系统所计数的 EIF 必定是另一个系统的 ILF。 A.6 外部输入 external input EI 数据或控
39、制信息由外向内跨越系统边界的一个基本处理过程。其主要目的是维护一个或多个ILF,或改变系统行为。 A.7 外部输出 external output EO 版权所有 侵权必究 16 发送数据或控制信息到系统边界外的一个基本处理过程。其主要目的是通过检索数据或控制信息,并通过处理逻辑来向用户或其他系统提供信息。其处理逻辑必须包含至少一个数学公式或计算,或产生衍生数据。一个外部输出也可以维护一个或多个 ILF,或改变系统行为。 A.8 外部查询 external inquiry EQ 发送数据或控制信息到系统边界外的一个基本处理过程。其主要目的是通过检索来自 ILF或 EIF的数据或控制信息,向用户
40、提供信息。处理逻辑不包含数学公式或计算,也不产生衍生数据。处理期间不维护ILF,也不能改变系统行为。 A.9 预估功能点计数 the indicative function point count 按照 NESMA功能点方法,只进行 ILF和 EIF计数,每个ILF 计为 35个功能点,每个 EIF计为 15个功能点。 A.10 估算功能点计数 the estimate function point count 按照 NESMA功能点方法,对 ILF、EIF、EI、EO和 EQ分别计数,但不进行复杂度调整,每个 ILF计为10 个功能点,每个 EIF计为 7个功能点,每个 EI或者EQ 计为
41、4个功能点,每个 EO计为 5个功能点。 A.11 功能点耗时率 person hours per functional size unit 每功能点所消耗的人时数。 A.12 项目交付速率 project deliver rate PDR 完成单位规模软件开发所需的工作量,在本指南中即为功能点耗时率,单位为人时每功能点。 A.13 基准 benchmark 经过筛选并维护在数据库中的一个或一组测量值或者派生测量值,用来表征目标对象(如项目或项目群)相关属性与这些测量值的关系。 A.14 版权所有 侵权必究 17 基准比对 benchmarking 将目标对象(如项目或项目群)属性与基准相比较
42、,并建立目标对象属性相应值的全部过程。 A.15 百分位数 percentile 在某实数集合中,对于集合内某元素 X,如果该集合中有且仅有 p%的数据不大于 X,则称 X为该集合的 p 百分位数。例如,如果仅有 50%的数据不大于X,则 X 为该机和的 50百分位数,简称 P50。 A.16 委托方 sponsor 软件项目的出资方。 A.17 开发方 developer 受委托方委托,负责软件研发的组织或团队。 A.18 第三方 third-party 委托方和开发方之外的主要利益相关方,如监理、审计、咨询机构等。 A.19 软件研发成本 software research and dev
43、elopment cost 为达成软件研发项目目标开发方所需付出的各种资源代价总和。资源包括人、财、物、信息等。 A.20 软件研发收入 software research and developmentincome 因向客户交付软件研发工作成果所获得的收益。 A.21 毛利润 grass profit 软件研发项目的收入与软件研发项目的成本之差。毛利润一般包含经营管理费用分摊、市场销售费用分摊、各种税费及税后净利。 A.22 直接成本 direct cost 版权所有 侵权必究 18 为达成软件研发项目目标而直接付出的各种资源代价总和。如可直接计入软件研发项目成本的直接材料、 直接人工等。
44、A.23 间接成本 indirect cost 与达成软件研发项目目标相关,但同一种投入可以支持一个以上项目的联合成本。如研发管理人员工资、研发设备折旧、停工损失等。 A.24 人力成本 human resource cost 为达成软件研发项目目标所需付出的各种人力资源代价总和。 A.25 非人力成本 non-human resource cost 为达成软件研发项目目标所需付出的人力成本之外的其他成本。 A.26 预算 budgeting 根据项目成本估算的结果确定预计项目费用的过程。 A.27 方程法 equation 基于基准数据建立参数模型,并通过输入各项参数,确定待估算项目工作量、
45、工期或成本估算值的方法。 A.28 类比法 comparison 将本项目的部分属性与类似的一组基准数据进行比对,进而获得待估算项目工作量、工期或成本估算值的方法。 A.29 类推法 analogy 将本项目的部分属性与高度类似的一个或几个已完成项目的数据进行比对,适当调整后获得待估算项目工作量、工期或成本估算值的方法。 版权所有 侵权必究 19 附 录 B 常用模板样例及参数表 B.1预估功能点计数表样例 功能类型 不同重用度文件数 功能点数 功能点数合计 ILF 低_ *1*35= _ 中_ *2/3*35= _ 高_ *1/3*35= _ ILF计数合计: _ EIF 低_ *1 *15
46、= _ 中_ *2/3*15= _ 高_ *1/3*15= _ EIF计数合计: _ US(ILF计数合计+ EIF计数合计) 规模变更因子: S(调整后规模总计): _ _ 说明: 在预算阶段,重用度调整系数通常取值为1(即假设重用度低); 规模变更因子预算时取值为1.5,招投标时取值为1.26; 功能规模SUS*规模变更因子 版权所有 侵权必究 20 B.2生产率基准数据表 单位:人时每功能点 P10 P25 P50 P75 P90 1.79 3.58 7.17 12.99 17.81 补充说明:在估算时,通常使用P50的取值估算最有可能值,使用P25和P75的值估算上下限,在特殊情况(如
47、项目成本、工期、质量约束极其严格)下,也可采用P10和P90的值估算上下限。 B.3规模调整因子计算公式 SF=(269.6446+S*0.7094)/S(式中S为调整后软件功能规模) B.4业务领域调整因子参数表 业务领域 调整因子 政府(含公共管理和社会组织) 0.93 信息技术、电信 1.02 金融 2.62 其他 1.00 B.5应用类型调整因子参数表 应用类型 范围 调整因子 业务处理 办公自动化系统;人事、会计、工资、销售等经营管理及业务处理用软件等 1.0 应用集成 企业服务总线、应用集成等 1.2 科技 科学计算、模拟、统计等 1.2 多媒体 图形、影像、声音等多媒体应用领域;
48、地理信息系统;教育和娱乐应用等 1.3 智能信息 自然语言处理、人工智能、专家系统等 1.7 系统 操作系统、数据库系统、集成开发环境、自动化开发/设计工具等 1.7 通信控制 通信协议、仿真、交换机软件、全球定位系统等 1.9 流程控制 生产管理、仪器控制、机器人控制、实时控制、嵌入式软件等 2.0 版权所有 侵权必究 21 B.6质量特性调整因子参数表 调整因子 判断标准 影响度 分 布 式处理 指应用能够在各组成要素之间传输数据 没有明示对分布式处理的需求事项 -1 通过网络进行客户端/服务器及网络基础应用分布处理和传输 0 在多个服务器及处理器上同时相互执行应用中的处理功能 1 性能 指用户对应答时间或处理率的需求水平 没有明示对性能的特别需求事项或活动,因此提供基本性能 -1 应答时间或处理率对高峰时间或所有业务时间来说都很重要,存在对连动系统结束处理时间的限制 0 为满足性能需求事项,要求设计阶段开始进行性能分析,或在设计、开发阶段使用分析工具 1 可靠性 指发生故障的影响程度 没有明示对可靠性的特别需求事项或活动,因此提供基本的可靠性 -1 发生故障时可以轻易修复,带来一定不便或经济损失 0 发生故障时很难修复,发生重大经