杂志汇中国信息化

基于功能要素与界面的软件成本估算研究

作者:文|倪伟民
一、引言

对于庞大的、多变的软件项目来说有着太多的不确定性,合理估算软件项目开发规模在项目计划与实施中有指导性的作用。

软件项目开发规模能否被合理估算是软件开发成本和软件管理控制的一个要素。

目前估算软件规模的方法主要有:经验估算及量化法估算。经验估算虽然简单,但由于没有量化标准,不同人估算,差异很大,也不具说服力。量化法估算主要有:代码行法、COCOMO2模型法、功能点估算等。其中:代码行法由于用不同编程语言所需代码行数并不相同,且仅用代码代表整个软件的规模并不合理。COCOM2模型法测算相对准确些,但参数的确定有些难度,也不适用用户使用。近些年流行的功能点法,能较好的解决这些问题。

但目前功能点法测重的是系统对内外部逻辑文件增删改查打印等的功能的估算,而对很多系统,如电商软件,网页的设计占了很多的开发量,因此结合系统内部逻辑功能与界面估算功能点,能更科学地估算项目规模。

二、功能要素与界面估算方法的实施

功能要素与界面分析方法特点是用功能点度量软件系统的规模,它主要从逻辑设计的角度出发对客户的功能进行量化、对客户需求的界面复杂度进行判别,相对于其它的方法,它侧重于从用户的角度分析软件的规模 。

(一)软件项目调整前的规模估算

在本文介绍的估算法中,软件项目被分解为各功能要素与界面,功能要素分类为EI(外部输入处理)、EO(外部输出处理)、EQ(外部查询处理)、ILF(内部逻辑文件)、EIF(外部接口文件),界面用WP表示。确定软件系统未调整功能点数量需要分如下步骤进行:

1.分解项目,以模块确定功能点的计算范围

首先,我们从用户角度识别程序的边界;如果牵扯到多个子系统,那么必须将这多个子系统的边界全部描述清楚。比如电商系统,涉及多个子系统,软件之间、模块之间数据交互频繁复杂,为防止各模块内部数据单元重复计算,应以每个模块作为功能点核算单元边界。

2.识别项目的功能要素与界面

依据项目需求说明书,识别功能点时要分别对待项目功能要素,对外部输入EI、外部输出EO、外部查询 E Q复杂度的计算可理解为所需系统中间层的复杂度计算;而对内部逻辑文件ILF和外部接口文件EIF复杂度的计算可简单理解为对数据库复杂度的计算,对界面WP的复杂度可理解为界面层程序复杂度的实现。以电商系统为例:对某一商品的订购,可理解为外部输入。如果用户要查询自己的订单,可理解为外部查询EQ。如用户还要将自己的订单通过EXCEL导出,可理解为外部输出EO。系统中,会有很多界面,每个界面为一个WP。因此,依据用户分析软件规格书中的功能模块,列示出所需要进行编辑、查询、修改、输出等操作与界面,即可分别获得EI、EQ、EO、WP要素全集。

同样,将用户需求说明书中可识别的业务对象,即由EI、EO、EQ所操作的数据文件、数据库表,按照最小逻辑独立组合的原则一一列示,就可以得到获取内部逻辑文件UIF功能要素全集。同样,通过识别在其它应用提供的接口数据,则可得到外部接口文件功能要素全集。

3.计算项目功能要素与界面功能点的数量

依据功能要素及界面的类型、复杂度,确定每个功能要素所需要的功能点,统计形成功能要素统计表,即可计算软件未调整功能点的数量。依电商项目为例:

表1

其中基准功能点数,内部逻辑文件UIF为7,外部输入EI为3,外部查询EQ与外部输出EO都为2, 外部接口文件EIF为5,界面WP为7。

然后,确定功能要素的复杂度,复杂度为高中低三档,对内部逻辑文件ILF,复杂度高中低分别对应功能点数为10、7、5;对应外部输入EI,复杂度高中低分别对应功能点数为4、3、2;对就外部查询EQ与外部输出EO,复杂度高中低分别对应功能点数为3、2、1;对应外部接口文件EIF,复杂度高中低分别对应功能点数为7、5、3;对应界面WP,一个商品类别的管理界面WP比较简单,复杂度定为低,电商网站的主页面比较复杂,复杂度就定为高。复杂度高中低分别对应功能点数为10、7、5。

功能点数数量=基准功能点数量x复杂度调整因子

所有功能要素之和即为未调整功能点的数量。

(二)确定项目调整后的功能点数

每个项目的开发,都会因为项目质量特性的要求不同、开发团队前景不同、所用开发语言的不同所需的开发工作量也不同,因此,这些因素应该作为项目开发工作量的调整因子。下表为项目不同应用类型的调整应子表:

下图为根据开发语言与开发团队背景不同而设的调整应子:

从不同维度,确定项目的各类特性,项目未调整功能点数总和x符合特性的调整因子,即为调整后的项目功能点数。

(三)估算项目开发成本

在确定了软件规模的功能点数后,即可根据软件开发公司的开发效率,估算出项目开发成本。如某软件开发公司开发效率为xx(功能点/人月)的话,则该项目整体工时为:

项目功能点数/xx=人工月

如知道该公司IT人员平均月工资后,

则可估算出项目开发成本为:

人工月*平均月工资。

三、结论与应用

功能点成本估算法是当前软件项目成本估算法比较有技术含量的一种方法,传统的功能点估算法一般只统计EI(外部输入处理)、EO(外部输出处理)、EQ(外部查询处理)、ILF(内部逻辑文件)、EIF(外部接口文件)五种功能要素,本文根据电商项目网页占很大开发比例的特点,引入了界面WP要素,作了有益的尝试。

分析认为,功能点估算法在各项目开发的规模估算中并不是千篇一律的,执行者应根据不同项目的特征,对功能点法加以改进,摸索出最适合项目的度量方式,使项目估算更加有效。

作者单位:上海中远资讯科技有限公司

 

相关文章