详解流程成本案例国内行业(功能复杂度人月系数规模)「流程成本系统」

术语基本概念功能点 FP function point应用边界 application boundary控制信息 Control Information基本处理过程 elementary processProcessing Logic功能 function元素类型 element type估算方法IFPUG估算流程概览 【ISO规范】NESMA估算流程估算流程概览【国内行业规范-NESMA】规模估算估算流程概览【国内行业规范-IFPUG】调整因素国内ifpug标准国内NESMA方法应用工作量估算工期计算软件开发成本估算国标/行业标准所描述的功能点估算规范,既有IFPUG ,也有 NESMA,二者在流程和规则上,大部分是相同的,主要差异是:NESMA具有2个简易化模式,可以用于快速估算;IFPUG的处理过程比较复杂,没有简化模式;IFPUG和NESMA在调整因数的计算方法是不同的
IFPUG是14项基本特征的影响值TDI, NESMA是5项调整因子;对于延续项目,NESMA可以在 FP计数时,就按复用程度和修改类型进行估算FP; 而 IFPUG 则需要按新增、转换、变更分别进行初估,分别计算调整因子
功能 function功能分为 2 大类, 5种类型:数据功能交易功能数据功能:即满足内部或者外部数据需求的功能 :ILF内部逻辑文件【容纳一组在本应用中由一个或者一组基本处理来维护的数据】EIF外部接口文件【容纳一组在本应用中由一个或者一组基本处理引用到的数据】交易功能: 即处理数据的功能:EI 外部输入EO 外部输出EQ 外部查询元素类型 element type用来估计功能的复杂度,从而为功能估算出合适的FP数:DET data element type / 数据元素类型:为唯一、用户可识别、不重复的属性,即字段;
Data Element Type (DET) is the data subgroup within an FTR. They are unique and user identifiable.RET record element type / 记录元素类型:为用户可识别的 DET 的子集【部分】, 例如, 主从类型的数据模式, 订单,订单行, 要识别为 2个 RET, 订单自身是1个RET,订单行是1个RET;
A Record Element Type (RET) is the largest user identifiable subgroup of elements within an ILF or an EIF. It is best to look at logical groupings of data to help identify them.FTR file type referenced / 引用文件类型,被交易功能读取或者维护的数据功能, 是被交易功能 读取或者维护的 ILF,或者是被交易功能 读取的 EIF, 例如, 订单业务中,创建确认订单并建立交货单,要识别为2个FTR,订单自身是1个FTR,还需要将 交货单识别为1个FTR;
File Type Referenced (FTR) is the largest user identifiable subgroup within the EI, EO, or EQ that is referenced to.估算方法一、IFPUG估算流程概览 【ISO规范】收集可用的文档;确定计数类型【开发?、增强?、应用系统?】;确定计数范围,边界,以及用户的功能性需求;度量数据功能;
识别数据功能识别 ILF和EIF分别识别 ILF、EIF 的数据元素DET数量,记录元素RET数量,使用《功能元素复杂度计算表》确定复杂度,基于复杂度确定功能点数度量交易功能
识别每一个基本处理确定唯一的基本处理将交易功能分类为 EI、EO、EQ识别 EI、EO、EQ的数据元素DET数量,引用文件类型RFT数量,使用《功能元素复杂度计算表》确定复杂度,基于复杂度确定 功能点数度量转换功能度量增强功能计算功能规模
开发类型公式: DFP = ADD + CFP // ADD 开发项目要交付给用户的功能规模, CFP = conversion function point 转换功能的规模【 在开发完成后的应用系统的生命周期内,应用系统的 规模 计算为 AFP = ADD 】
增强类型公式: EFP = ADD + CHGA + CFP + DEL // CHGA 变更后的功能规模, DEL =deleted function point 删除的功能的规模【 在项目增强后,应用系统的 规模 计算为: AFPA = (AFPB +ADD + CHGA) - (CHGB +DEL) // CHGA 变更后的功能规模, CHGB 变更前的功能规模, AFPA 增强项目后的功能规模,AFPB 增强项目前的功能规模 】将功能点计数记录在案报告功能点计数结果, 至此 IFPUG 流程结束【依据SNAP】进行非功能性需求 的规模调整二、NESMA估算流程识别功能点,确定复用程度和修改类型;根据所处的估算时机,进行规模调整,得出未调整的功能点;基于调整因子进行调整,得出调整后的 功能点;在进行计数实践的时候,按照估算的时机,或者文档的完备性,可以分为 3 种估算方法1.Indicative方法, 预估功能点【用于项目早期】
只用识别出数据功能,即 ILF 和 EIF 的数量然后 按 公式 35ILF + 15 EIF 计算出 未调整的功能点数Indicative方法基于如下假设:平均情况下,每个ILF对应3个EI(对应添加、修改、删除这三个操作)、2个EO(对应两种统计报表操作)和1个EQ(对应查询操作);平均情况下,每个EIF对应1个EO和1个EQ;公式中的35和15这两个权重,则是全部ILF、EIF的复杂度默认为"低",EI、EO、EQ的复杂度默认为"中",再考虑系统整体的功能性得出的
2.Estimated方法, 估算功能点【用于项目中期】
识别出数据功能,以及交易功能, 即 ILF 和 EIF 的数量 以及 EI、EO、EQ的数量然后按公式 10ILF + 7 EIF + 4EI + 5EO + 4EQ 计算出未调整的功能点数
3.详细功能点【用于项目后期】
识别5类功能的功能个数识别各功能的功能要素,基于功能要素的数量,使用《功能元素复杂度计算表》确定各个功能的复杂程度,根据《功能点数与复杂度之间的对应关系》 查出相应功能的 功能点数汇总所有的功能点数为 未调整的功能点数Indicative方法 和 Estimated方法,均是是详细功能点估算方法的简化
Estimated方法就是按中等复杂度进行估算使用NESMA Estimated方法 估算未调整的功能点数时,可以基于复用程度、修改类型进行对各功能的功能点数进行调整, 调整系数为复用程度系数 修改类型系数功能点数与复杂度之间的对应关系调整因素按功能点计算出工作量后,再 根据下面的14项系统基本特征 评分得出调整系数,然后进行调整:数据通讯分布式数据处理性能大业务量配置交易处理率在线数据输入最终用户效率(用户界面友好程度)在线更新复杂处理(算法)可复用性易安装性易操作性多场地(多点运行)支持变更(客户化程度)上面每个项目的分值 从0 到 5分计算公式是: ∑14项因子0.01 + 0.65, 即14项目 加总后 0.01 + 0.65估算流程概览【国内行业规范-NESMA】1.规模估算收集可得文档确定计数范围和边界识别功能用户需求度量数据功能度量事务功能计算功能规模2.功能规模调整依据行业数据,确定CF【规模变更调整因子】,使用公式 S = UFP CF3.工作量计算AE = (PDR S)SWF RDF
其中:PDR 为生产率,取行业数据, SWF软件因素调整因子【完整性级别调整因子 应用类型调整因子 质量及特性调整因子】,RDF 开发因素调整因子【开发语言,开发团队背景】4.工期计算D = 1.227 ( AE/176)^0.404在规模估算时, 根据 项目阶段,使用不同的NESMA方法项目匡算,使用预估功能点,计算公式为UFP = 35 ILF + 15 EIF项目概算,使用估算功能点,计算公式为UFP=10 ILF + 7 EIF + 4 EI + 5EO + 4EQ
在估算功能点时,要考虑复用程度,按低/中/高分类,各自取值为1 、2/3 、1/3各预设功能点值项目阶段,使用详细功能点,计算公式为 UFP = ∑ ILF + ∑ EIF + ∑EI + ∑EO + ∑EQ
详细功能点估算时,要计算数据功能和交易功能的复杂度,基于复杂度计算 功能点,即得出各项功能的功能点数估算流程概览【国内行业规范-IFPUG】确定估算的类型开发项目、升级项目、应用系统识别分析范围和应用边界识别分析范围和应用边界中的定义定义应用边界计数数据功能
识别数据功能识别ILF,EIF确定复杂度,基于复杂度确定功能点计数交易功能
识别基本处理识别EI、EO、EQ确定复杂度,基于复杂度确定功能点确定调整系数
调整系数 VAF 基于 14个通用系统特性计算得出, 每个特性取值范围0~514 个值相加,然后加上 0.65计算调整功能点
开发项目: DFP = (UFP + CFP ) VAF
UFP 为应用在安装以后向用户提的 未经调整的功能点CFP 为额外的转换功能的未经调解的功能点升级项目: EFP = (ADD+CHGA+CFP) VAFA +DELVAFB
ADD = 升级项目中增加的未经调整的功能点CHGA = 升级项目中改变的功能在改变后所具有的未经调整的功能点CFP = 额外的转换功能的未经调整的功能点VAFA = 升级后的应用的调整系数DEL = 被删除的功能的未经调整的功能点VAFB = 升级前的应用的调整系数应用系统基线 AFP = ADD VAF
ADD = 安装的功能的UFPC VAF = 调整系数应用升级后 AFP = [(UFPB+ADD+CHGA) – (CHGB+DEL)]VAFA
UFPB = 应用升级前的未经调整功能点ADD = 新增功能的 UFPCCHGA = 升级后的修改功能的 UFPCCHGB = 升级前的修改功能的 UFPCVAFA = 升级后的调整系数 【注意该公式中不包含转换功能, 因为转换功能与应用直接提供的功能无关 】国内NESMA方法调整因子及案例分享1.评估阶段在估算功能点后,根据计数时机,按规模调整系数进行规模调整,从而确定未调整的功能点2.软件因素估算出未调整的 功能点后,再根据软件因素,和开发因素,一共5项调整因素计算得出的调整系数,然后进行调整计算公式是: ∏ 5项因子, 5 项得分相乘【 质量特性有4个维度,总体上应该是 8 个调整因素】应用类型质量特性质量因子 计算公式质量系数 = 1 + 0.025 以上调整因子之和完整性级别开发语言开发团队背景3.NESMA计算案例:工作量估算例如,使用NESMA 估算功能点法,估算出功能点为345.87 ,经规模调整后为480.75 ,基准生产率为7.10人时/功能点,那么工作量 = 480.75功能点 7.10 人时/功能点=3,413.325人时【480.757.10=3,413.325 人时 】=3,413.325/8=426.6656人天【规模调整因子是根据估算时机确定的,上例是以早期 1.39取值的】例如,调整因子得分如下:
调整系数 为 11.08 1.3 .6 1 = 0.8424所以调整后的 工作量 = 426.6656 人天 0.8424 = 359.4231 人天【基准生产率可以查行业数据,一般取中位数】工期计算工期=1.277 ( 工作量 /176 ) ^ 0.404【 此公式中工作量的单位是人时,工期的单位是月】
例如,工作量为359.4231人天 , 转换为人时为 3,413.325 人时, 计算得出工期为1.227( 3,413.325/176)^0.404=4.065 即 工期为 4.065 月进一步估算团队规模:359.4231人天=359.4231/22=16.3374 人月,16.3374人月/4.065 月 = 【16.3374/4.065】4.019 人软件开发价格计算软件开发价格=开发工作量 开发费用/人月其中:开发工作量 = 估算工作量 风险系数 复用系数开发费用/人月=【工资 + 国家规定的福利 + 奖金以及奖励 + 办公成本 + 人力资源成本 + 设备/基础设施 + 税金和利润 】 管理系数 优质系数国家规定的福利 = 工资 0.476奖金以及奖励 = 工资 1/5办公成本 = 工资 1/3人力资源成本 = 工资 1/5设备/基础设施 = 工资 0.15税金和利润 = 工资 1/3管理系数取值于1~ 1.2优质系数按 ISO9000 质量 或者 CMMI 认证确定,分别取值1.05,1.1,1.2,1.3一般综合下来, 按平均月薪 3.23 作为开发费用/人月人月开发费用,也可以采取行业基准数据,例如 2019年软件开发行业基准人月单价2.8767 万元 /人月, 不包含直接非人力成本继续上例359.4231人天换算为人月,为359.4231/21.75=16.5252 人月,软件开发价格为 47.538 万【16.52522.8767=47.538】
注意,FPA 方法是按瀑布模式运作项目的,如果是采用敏捷模式,工作量上应该会少很多对于系统集成项目
详解流程成本案例国内行业(功能复杂度人月系数规模)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息