随着信息技术的发展和应用系统规模的增大,无论是系统的建设方还是承建方,都迫切需要建设组织自身的数据度量体系,以便加强项目过程控制、提高生率、降低生产成本,提升市场竞争优势。
组织要建设适合自身需要的度量体系,首先要确定度量所采用的工具和方法,其次要确定度量的要素,即要度量哪些数据,然后建设可信的度量数据库,最后根据度量的数据进行分析,持续改进过程绩效。以下通过某组织的基于功能点分析法的度量库建设实践,对建设度量体系的基本过程简述如下:
1、采用功能点分析法(FPA)
功能点分析法具有30多年的发展历史,是由IBM的工程师Allan Albrecht在1984年第一个公开发布了用于软件功能规模度量的功能点分析方法。1986年国际功能点用户组(IFPUG)成立以来,其不断增强软件功能规模度量的Albrecht方法,现已形成了功能点度量方法的国际标准,即ISO/IEC 20926《IFPUG功能规模度量方法》。该标准规定了详细功能点度量方法,其是从用户的角度识别数据功能(ILF内部逻辑文件和EIF外部接口文件)和事务功能(EI外部输入/EQ外部查询/EO外部输出),通过计算其复杂度并结合14个调整因子,得出估算的功能点数(即软件规模数据)。nesMA(荷兰软件度量协会)对功能点度量方法进行了改进,形成了国际标准ISO/IEC 24570《功能点分析应用定义和计数指南》。该标准指出,在不同的需求阶段,采用不同的估算参数,比如在产品初期阶段,需求尚未完全明确以及拆分,FPA中只计数ILF和ELF 数据文件数即可初步获得软件规模。计算规则如下:总体UFP(未调整功能点)=35xILF+15xELF;在系统需求逐步明确后,则采用估算功能点方法计算功能点。计算规则如下:总体UFP(未调整功能点)=10xILF+7xELF+4xEI+5xEO+4xEQ。北京软件造价评估技术创新联盟(以下简称“联盟”)推出的计算规则,就是基于以上两种场景下的估算功能点方法,通过相应的调整因子,计算出调整后的应用系统的功能点数。
功能点分析法(FPA)已经成为了国际标准,并得到了大多数国家的认可,该方法是一致性的标准,可以满足应用并且具有可接受的一致性准则。自2013年工信部行业标准《软件研发成本度量规范》以及北京市地方标准《信息化项目软件开发费用测算规范》发布以来,国内越来越多的软件建设方和承建方积极组织学习FPA方法,并在组织的度量体系建设中,以及项目实施中得到广泛的应用。
应用系统建设方,可采用功能点分析法,结合行业基准数据,预估出项目的造价预估值,为申报预算、项目招标或审计提供基础依据;在应用系统建设过程中,可通过收集的过程数据,对承建方进行评价和管理,及时发现问题、化解项目风险。应用系统承建方,采用功能点方法,只需要估算出项目的功能点数,结合行业基准数据或组织自己的基准数据,乘以相应的调整因子,就能获得相应的度量数据。
利用功能点分析法的好处在于,该方法是基于业务的角度,从用户的视角识别数据文件和基本流程,而不用关心技术上如何实现,利于用户理解和应用。对于组织度量的初始源数据来说,该方法具有高度的可信性。在组织度量体系建设过程中,功能点分析方法是核心能力,需要熟练掌握。
2、度量的要素
组织要对项目进行有效的管理,提高项目和组织过程绩效,就必须通过建立组织级的度量数据库来完善度量体系。功能点分析法作为各方一致性理解的方法,有利于度量数据的采集和计算,目前越来越多的组织采用该方法获得所需的度量数据。
根据软件过程改进的特点,组织进行软件度量的要素有很多,与功能点分析法相关的度量要素主要包括估算功能点数、最终功能点数、功能点偏差率、规模变更因子、缺陷密度、生产效率等数据。通过这些有效的量化数据,组织可以完善自身的软件项目度量体系,逐步形成组织的生产效率数据标准值,质量数据标准值等数据。与功能点数相关的度量要素如表1所示:
表1 度量的要素
基于功能点分析法的度量要素确定后,组织就可以完善或建设自己的度量库了。
3、建设度量数据库
组织度量数据库是多项目度量数据的集合。要建设度量数据库,组织必须通过相应的统计模板或建设度量应用系统来完成。此外,组织还要通过制度的形式规定项目组什么时候提供什么数据,通过什么方式提供,以及哪个部门进行收集、整理和验证等。度量数据的收集和管理必须由专人负责,领导重视,不能流于形式,否则收集上来的数据就是不准确的、无用的数据,达不到建设度量库的目的。
下面通过某组织的度量库建设样例做具体说明,如表2所示。除了表格中展示的度量要素外,该组织还收集了其他度量数据,如挣值分析数据、客户满意度等。
注1:表2中功能点的初始数据来源于估算功能点方法,默认项目需求已经明确,否则可按预估功能点方法进估算。
注2:对于应用系统交付后的系统维护任务,由于涉及的因素较多,相关数据需要采用改进的功能点方法度量,不在本文的讨论范围内。
表2 项目度量数据
4、 度量数据分析
组织获得了每个项目的度量数据,达到一定项目数量规模后,就形成了项目数据度量库。组织有了度量库是第一步工作,关键是如何充分利用这些数据,组织可对度量数据进行不同维度的分析,发现项目的特征和规律,辨证施策。例如,上述组织通过分析近3年的数据,发现财务管理类应用系统的平均生产效率是11.2人时/功能点、核心业务类应用系统的平均生产效率为14.6人时/功能点、办公自动化类应用系统的平均生产效率为9人时/功能点,这样在做类似项目或售后维护时,就可将该类应用的平均生产效率作为基准,结合调整后的功能点数,估算应用系统工作量。此外,经过统计分析,该组织3年内承接的应用系统的平均规模变更系数为1.2,则在估算功能点时将规模变更调整因子定为1.2。这些数据的取得,有效地指导了该组织项目的顺利开展,项目实施过程清晰,数据收集和统计准确及时。同时,利用度量库的数据分析结果,也可对个案项目的绩效进行评价,或通过过程数据的比对,及时发现问题,降低项目实施风险。在组织层面上,可以通过数据分析的结果,为持续改进组织绩效、考核项目、更新组织度量基准数据等方面提供有力的支持。
因此,基于功能点分析法(FPA)的度量体系建设,对于提升组织和项目的过程控制和管理能力是十分有效的。相信随着信息技术的发展、国家标准的发布,以及功能点分析方法的不断完善,越来越多的组织必然会通过认识、学习和利用功能点分析法,打造组织自身的度量数据库,建设高效的度量体系。(本文版权归北京软件造价评估技术创新联盟所有,转载需标明出处)