更新时间:2025-09-29 09:20:37
《系统与软件工程功能规模测量IFPUG方法》(GB/T42449-2023)等同采用ISO/IEC20926:2009《软件与系统工程软件测量IFPUG功能规模测量方法2009》,同时结合国内实际情况进行了最小限度的编辑性改动,如将标准名称调整为《系统与软件工程功能规模测量IFPUG方法》,并新增附录NA(资料性)本文件应用案例,使其更契合国内系统与软件工程领域的应用场景。该标准隶属于ICS35.080和CSSL77范畴,由全国信息技术标准化技术委员会(SAC/TC28)提出并归口,于2023年3月17日发布,2023年10月1日正式实施,为国内系统与软件工程领域的功能规模测量提供了权威、统一的标准依据。本文将围绕该标准内容展开解读,并结合“ILF与EIF取值冲突分析”“复杂度与复用度概念对比分析”两类实际问题深入探讨。同时,也可结合我们以往的分析文章进行阅读:
一、核心目标与价值
支持多维度分析与估算:助力组织开展质量和生产率分析,精准估算软件开发、增强及维护过程中所需的成本与资源,为项目规划和资源调配提供科学数据支撑。
提供标准化对比因子:为不同软件产品、项目之间的对比提供统一的规模度量标准,使软件的评估和比较更具客观性与公正性。
辅助应用程序包评估:通过对应用程序包内所有功能进行功能分级,确定采购应用程序包的规模;同时,帮助用户依据自身特定需求确定应用程序包带来的益处,为软件采购决策提供有力参考。
二、关键术语与定义
标准中明确了众多核心术语,是理解和应用该标准的基础,以下为部分关键术语解读:
三、测量过程详解
(一)测量流程总览
功能点计数过程遵循严谨的逻辑顺序,主要包括收集可用文档、确定计数范围和边界并识别功能用户需求、测量数据功能、测量事务功能、计算功能规模、记录功能点计数、报告功能点计数结果七大核心活动,各活动环环相扣,共同构成完整的功能规模测量体系。
(二)各环节关键操作
1.收集可用文档
需收集能描述软件交付功能或被测量软件项目所影响功能的文档,如需求文档、数据/对象模型、类图、数据流程图、用例、过程描述、报告框架、屏幕布局、用户手册等。若文档存在空白,需与主题专家沟通获取补充信息,确保后续测量工作有充分的数据支撑。
2.确定计数范围、边界及功能用户需求
识别计数目的:明确功能点计数的具体原因,如确定特定软件版本规模、估算项目成本等,计数目的直接决定计数范围。
识别计数类型:根据项目性质,分为开发项目功能点计数、应用程序功能点计数、增强项目功能点计数三类。
确定计数范围与边界:基于计数目的和类型,界定功能点计数所涵盖的功能范围,并从用户视角确定应用程序边界,而非技术视角。
识别功能用户需求:从用户需求中区分出功能需求,排除非功能需求(如质量约束、组织约束、环境约束、实现约束等)。
3.测量数据功能
识别逻辑数据并分组:在计数范围内找出所有逻辑相关且用户可识别的数据或控制信息,排除无应用程序维护的实体、代码数据、无用户所需属性的实体等,将有实体依赖关系的相关实体整合。
分类数据功能:若数据功能被应用程序使用且维护,归类为内部逻辑文件(ILF);若仅被引用且由其他应用程序识别为内部逻辑文件(ILF),归类为外部接口文件(EIF)。
统计DET与RET:统计数据元素类型(DET),计数范围内,执行基本过程时独特、用户可识别且不重复的维护/检索属性计1个,多应用共享仅计当前应用使用的,关联属性各计1个,依属性使用方式确定归为1个或多个;统计记录元素类型(RET),每个数据功能默认计1个,内有含多DET的特定附加逻辑子组(如非关键属性关联实体等)各额外计1个,无数据模型可查重复数据组,单个重复属性、同时发生的多组DET不计为RET。
确定功能复杂度与规模:依据RET和DET数量,参考标准中的数据功能复杂度矩阵确定复杂度,再结合数据功能类型(ILF/EIF)和复杂度,通过数据功能规模矩阵确定功能规模。
这里我将关联同为功能规模测量核心方法的NESMA方法作补充说明:NESMA源于IFPUG,2003年升级为ISO/IEC国际标准(现行ISO/IEC24570:2018),我国2016年发布等效采用ISO/IEC24570:2005的电子行业标准,2023年亦发布NESMA方法国标,其与IFPUG方法类似,将功能点分为事务功能类(EI、EO、EQ)与数据功能类(ILF、EIF/ELF)。
需注意的是,两类方法在功能点取值上存在差异:NESMA方法中,行标、国标及国际标准ILF默认取值为7,EIF默认取值为5,而北京地标《信息化项目软件开发费用测算规范》(DB11/T1010—2019)及之后的《中国软件行业基准数据》(CSBMK®)与大部分省市如湖南、广西、辽宁、安徽、海南、厦门等地费用标准采用ILF默认取10,EIF默认取7(对应IFPUG方法中功能复杂度为‘中’的情况),这会导致规模计算结果不同。这种冲突或因标准制定背景、经验规则、更新滞后性等方面的差异,而这也为理解GB/T42449-2023中IFPUG方法的取值逻辑与应用边界,提供了行业层面的参考视角。如下图在“软件造价喵”中截取的软件行业基准数据分析的两大软件造价基准机构的功能点取值情况,更多的省市功能点取值情况可以前往官网免费获取:
4.测量事务功能
识别基本过程:将用户功能需求分解为对用户有意义、构成完整事务、自包含且使应用程序业务处于一致状态的最小活动单元(基本过程)。
分类事务功能:根据基本过程的主要目的和处理逻辑,分为外部输入(EI)、外部输出(EO)、外部查询(EQ)。
其中,外部输入(EI):含接受应用程序边界外数据/控制信息的处理逻辑,主要目的为维护一个或多个内部逻辑文件(ILF),或改变应用程序行为;外部输出(EO):主要目的是向用户呈现信息,且包含至少一项额外处理逻辑(如执行数学计算、更新ILF、生成衍生数据、改变应用程序行为);外部查询(EQ):主要目的是向用户呈现信息,仅引用数据功能检索数据/控制信息,不满足EO的额外处理逻辑条件。
统计FTR与DET:计数事务功能的FTR时,每个事务功能访问(读取或写入)的每个唯一数据功能(ILF或EIF)计为1个FTR;计数DET时,审查事务功能处理中通过(进入或退出)应用程序边界的操作,每个唯一、用户可识别且非重复的属性计为1个DET,单个事务功能的多响应消息、多启动操作各仅计1个DET,报告标题、系统生成时间戳等非用户输入/输出属性不计为DET。
确定功能复杂度与规模:依据FTR和DET数量,参考相应的事务功能复杂度矩阵确定复杂度,再结合事务功能类型和复杂度,通过事务功能规模矩阵确定功能规模。
在软件项目功能点测算与成本评估中,有两个重要影响因素复杂度与复用度。
复杂度:指功能点的复杂程度,在IFPUG功能点计数法中,通过数据元素类型(DET)、记录元素类型(RET)和文件类型引用(FTR)等参数来评估。例如,对于内部逻辑文件(ILF)和外部接口文件(EIF),根据其DET和RET的数量确定复杂度等级;对于事务功能(EI、EO、EQ),则根据DET和FTR的数量来确定复杂度等级,不同的复杂度等级对应不同的计数权重,进而影响功能点的计算。
复用度:又称重用程度、重用系数等,是国内软件造价评估中的特色调整系数,用于衡量代码、组件或功能的重复使用程度,核心作用是影响开发工作量评估——该因子未包含在国外功能点估算标准中,由我国各地区结合实际需求新增。具体来看,在两大基准机构方面存在差异,北京软件造价评估技术联盟于2024年最新CSBMK数据里,将其命名为“功能点计数项吻合度调整因子”,划分成高(1/3)、中(2/3)、低(1)三个档次,默认取值为“低”,且仅在开发工作量评估时使用,中国软件行业协会软件造价分会则未采用该调整因子;在全国15个使用该因子的地区(四川、海南、湖南、安徽、陕西、贵州、山东、广东、广西、西藏、辽宁、北京、重庆、江西、内蒙古)间,也存在细节差异,命名上北京称“复用度调整因子”,四川称“重用程度”,广东称“复用度调整系数”;取值分级上多数地区分高(1/3)、中(2/3)、低(1)三档,湖南还额外增设“超高”档,取值1/6,适用于移动终端与PC端重复功能的调整;默认值方面四川、海南、湖南默认取“中(2/3)”,安徽默认取“低(1)”,其余地区未规定默认值时,可在0-1区间灵活确定取值。如下图所示的复用度相关数据,更多可前往“软件造价喵”官方免费获取:
5.计算功能规模
开发型项目:采用公式DFP=ADD+CFP计算,其中DFP为开发型项目功能点计数;ADD为开发型项目交付用户的功能规模;CFP为转换功能的规模。
开发型项目完成后或者在应用程序生存周期内任何时间测量的应用程序功能规模应使用如下公式计算:
AFP=ADD
其中AFP为应用程序功能点数;ADD为开发型项目交付用户的功能规模(不包含转变功能的规模),或者在任意时间对应用程序计数时都存在的功能规模。
增强项目:采用公式EFP=ADD+CHGA+CFP+DEL计算,EFP为增强项目功能点计数;ADD为增强项目新增的功能规模;CHGA为增强项目实施后变更的功能规模;CFP为转变功能的规模;DEL为增强项目删除的功能规模。
增强项目完成后的应用程序功能规模采用如下公式计算:
AFPA=(AFPB+ADD+CHGA)-(CHGB+DEL)
其中AFPA为增强项目完成后的应用程序功能点数;AFPB为增强项目完成前的应用程序功能点数;ADD为增强项目新增的功能规模;CHGA为增强项目实施后或者将要实施后变更的功能规模;CHGB为增强项目实施前或者曾经实施前变更的功能规模;DEL为增强项目删除的功能规模。
6.记录与报告
记录内容:包括计数目的和类型、范围和系统边界、日期、所有数据功能和事务功能的详细信息(类型、复杂度、功能点数量)、计数结果、假设和问题解决方案等,还可根据需求记录原始文件、参与者信息、DET与FTR数量、交叉引用等内容。
报告要求:遵循标准格式报告结果,完整遵循标准时格式为“SFP(IFPUG-GB/T)”;其中S为功能点计数的结果;FP为IFPUG功能规模测量方法的大小单位;GB/T为国家标准(GB/T42449—2023);本地定制时格式为“SFP(IFPUG-GB/T)”(c为表明不完全遵循标准的字符),使报告具有一致性和可读性。
四、附录
(一)附录A
该附录汇总了标准中所有的功能复杂度和功能规模表,具体已在前面对应内容处依次展示。
(二)附录NA
附录NA是本文件应用案例,以银行柜员终端系统增加支持开立“借贷一体卡”功能为例,详细展示了如何按照标准的测量过程开展功能规模测量工作,从收集文档、确定计数范围和边界、分析数据功能与事务功能,到计算功能规模,每一步都结合实际业务场景进行说明。此处由于文章内容的限制,仅讲解了大概内容,详细信息可参照原文件获取。
总结
综上,《系统与软件工程功能规模测量IFPUG方法》(GB/T42449-2023)作为等同采用国际标准并结合国内实际优化的规范,以清晰的核心目标、明确的术语定义、严谨的测量流程及实用的附录案例,为系统与软件工程领域的功能规模测量提供了标准化、可操作的方法论,不仅能支撑项目成本估算、质量分析与软件采购决策,也为行业内不同项目、产品的规模对比与管理规范化奠定了基础,对提升软件项目管理效率与行业发展规范性具有重要实践意义,相关组织可结合实际需求遵循标准开展功能规模测量工作,充分发挥其在软件全生命周期管理中的价值。