基于功能点进行银行信息系统研发精细化管理的思考与探索

2018-01-10 10:06胡文伯
海峡科技与产业 2017年11期
关键词:测试用例精细化矩阵

胡文伯

国家开发银行信息科技局 北京 100037

基于功能点进行银行信息系统研发精细化管理的思考与探索

胡文伯

国家开发银行信息科技局 北京 100037

在银行信息系统研发过程中,基于功能点可以进行系统规模度量和研发指标分析,通过对功能点研发生命周期的全面跟踪,能有效提高研发精细化管理的水平。

功能点;研发管理;NESMA

0 引言

近年来随着互联网金融的快速兴起,各家银行面临越来越激烈的竞争。在新的形势下,为了快速响应市场多元化的需求,各家银行都积极探索对研发流程进一步优化,期望通过精细化管理提升自身研发水平,使得IT开发能够实现高质量的交付,从而快速响应业务发展的要求。

1 银行信息系统研发管理过程现状

1.1 基于CMMI打造研发过程体系

多年以来,各大银行为了实现信息系统开发的高质量,提升软件研发过程的规范性和可度量性,基本上都引入了软件能力成熟度集成模型(CMMI)。通过引入CMMI体系模型,各大银行建立起一套可定义、可管理并可持续改进完善的研发过程管理体系,实现了研发管理过程的标准化和规范化。

1.2 引入功能点度量标准

自2009年中国软件行业协会系统与软件过程改进分会将功能点方法引入中国。各大银行均陆续将功能点方法引入到软件规模度量过程中,并开始基于功能点对软件研发项目进行工作量、交付速率、测试用例覆盖率、缺陷密度等与功能点相关的指标进行测量和分析,有效的提升了研发管理水平的精细化。

2 快速功能点法简介

2.1 功能点分析方法简介

功能点方法是从用户视角出发,依据一定规则,通过量化的方式来估量软件的规模。其核心思想是把软件按照不同类型的组件进行分解,从而确定软件的功能点数量。目前有多种功能点分析方法纳入ISO国际标准,包括COSMIC、IFPUG、MkⅡ和NESMA功能点法等,其中IFPUG和NESMA功能点法应用最为广泛。

2.2 NESMA功能点方法介绍

NESMA方法分为预算功能点法、快速功能点法和详细功能点法,分别适用于需求不清晰的项目预算阶段、需求明晰的立项或招标阶段,以及软件设计和数据库设计完成后的决算阶段。预算功能点法只识别逻辑文件和接口文件。快速功能点法除了识别逻辑文件和接口文件,还需要识别基本过程。详细功能点法则是在快速功能点法的基础上,引入了衡量复杂度的因子,详细功能点方法在使用过程中与IFPUG功能点方法基本等效。

3 功能点在银行信息系统研发管理的中应用

3.1 基于功能点在研发管理中进行分析

银行系统研发从立项开始到上线完成一般可划分为4个阶段,具体包括立项阶段、需求阶段、开发测试阶段和上线阶段,功能点分析作在各个研发阶段均可起到分析和评估的作用。在立项阶段,利用预算功能点法进行项目规模的测量,有助于给出明确的预算申请依据,使得预算过程更加透明。在需求阶段,由于快速功能点法要求需求清晰,在需求评审过程中会促进需求分析工作精准度的提高。在开发阶段,通过对交付速率的计算可以监控开发的进度。在测试阶段,通过测试用例覆盖度的计算,可以对测试用例的质量进行衡量;此外,缺陷密度也是衡量开发质量的一个重要指标。

表1 交易功能功能点跟踪矩阵参考表头

表2 数据功能(EIF)功能点跟踪矩阵表头

3.2 基于功能点在研发管理中进行跟踪

(1)需求跟踪矩阵

研发管理过程中对于需求的跟踪通常是使用需求跟踪矩阵。通过使用需求跟踪矩阵,可以对需求的设计、开发、测试和上线状态进行跟踪管理。然而需求跟踪矩阵一般是基于业务需求用例,对于比较复杂、涉及面广的需求,难以实现精细化跟踪管理。具体不足包括:一是无法体现实现该需求的功能是否完成了软件、数据库和接口等相关设计;二是无法跟踪实现该需求的相关功能是否都进行了单元测试;三是无法跟踪该需求的所有测试用例是否都编写、测试和执行完成;四是对于部分功能上线的需求难以进行上线跟踪。

(2)功能点跟踪矩阵

由于功能点方法本身就是一种把复杂的系统分解为较小的组件进行评估的方法,因此我们可以通过对功能点进行跟踪,解决需求跟踪矩阵难以实现开发过程精细化跟踪管理的问题。功能点跟踪矩阵与需求跟踪矩阵形式类似,目的是将需求、设计、开发、测试、用户验收和上线有机融合起来,确保每一个上线的功能点都经过设计、测试和验收,从而提高系统研发质量。

功能点基本组件分为交易功能和数据功能两类,其中交易功能分为外部输入(EI)、外部查询(EQ)、外部输出(EO),主要与业务数据的增、删、改、查和统计分析有关。简化后的交易功能功能点跟踪矩阵参考表头示意如表1所示。

数据功能分为内部逻辑文件(ILF)、外部接口文件(EIF)两类。其中ILF通常与数据库中的表有关;EIF通常与外部系统的数据有关。简化后的数据功能(ILF)功能点跟踪矩阵和数据功能(EIF)功能点跟踪矩阵表头分别示意如表2所示。

需要指出的是功能点跟踪矩阵(交易功能)中的设计通常是针对操作功能进行设计,指软件设计文档;功能点跟踪矩阵(数据功能)中的设计通常是针对数据库和接口进行设计,指数据库设计文档和接口设计文档。此外,在实际应用中可以结合系统研发特点完善表头,例如增加需求重要度、评审信息、状态信息、上线版本、上线时间等。

使用功能点跟踪矩阵的能有效提升管理精细化并提升系统交付质量,具体包括:一是使用功能点跟踪客观上提高了需求的质量,对于进一步提升需求管理水平,实现需求条目化和结构化有着推动效果。二是通过功能点把设计纳入到跟踪的范畴,加强了系统研发过程中对设计的管理。三是加强了对系统修改把控的能力,由于功能点具备新增、修改和删除的调整因子,对于修改和删除的功能点可以追溯到原始功能设计文档和测试用例并做相应调整。四是提升了配置管理能力,在研发过程中如果需要将部分需求单独提前上线,基于功能点跟踪矩阵可以进行有效分析和管理,降低了版本管理的风险。

3.3 基于功能点进行研发管理的不足

任何一套方法论都不是万能的,虽然基于功能点进行研发管理的分析和跟踪,可以量化项目管理和提升交付质量。但是功能点方法任有一些不足之处,具体包括:一是需要增加培训成本和研发成本,由于功能点估算相对比较专业,熟悉使用需要一定过程,对于新接触的研发人员需要进行培训,同时功能点的拆分和确认流程也会提升整体的研发成本。二是快速功能点估算准确度在某些特殊场景下与实际偏差较大,由于快速功能点法只考虑可见部分的复杂度,对系统内部复杂性考虑太少,同时也没有考虑系统集成带来的额外开销。在对数据分析类和平台类系统进行估算时会与实际有较大偏差。三是没有考虑质量因素和技术因素,在非功能性需求越来越被银行研发团队重视的今天,功能点方法通常只站在用户角度考虑功能性需求,对于非功能性需求的涵盖能力有限。

F830.49

A

猜你喜欢
测试用例精细化矩阵
精细化管理的企业管理模式探讨
基于SmartUnit的安全通信系统单元测试用例自动生成
“精细化”全方位培养好参谋
基于混合遗传算法的回归测试用例集最小化研究
初等行变换与初等列变换并用求逆矩阵
如何打造精细化立法产品
矩阵
矩阵
矩阵
基于依赖结构的测试用例优先级技术