杨明鹏 邓焕 胡业火
贵州航天风华精密设备有限公司 贵州 贵阳 550009
为推进软件产品价格改革工作,规范软件产品计价工作,提高经费使用效益,国家相关业务管理部门下发了软件产品报价要求,用于指导软件产品报价工作。
软件产品价格由研制开发概算价格和软件购置费组成。软件研制开发概算价格是指软件需求分析、设计、编码、集成、测试、测评、试验、验收等过程产生的直接人力成本、直接非人力成本、间接人力成本、间接非人力成本和收益的总和。软件购置费由软件产品交付后的技术支持费、升级费和其他费用组成。
软件产品报价采用以上数据进行统计。如果采用人工统计的方式工作量很大,数据格式不统一,给报价、审价带来一定的工作难度。本文研究Excel VBA二次开发的方法,设计并实现了报价系统,具体实现方式如下。
软件产品报价系统基于Excel VBA二次开发,报价系统由4个数据表:支撑数据、汇总数据、软件配套表、规则定义表组成。
规则定义表中定义了软件应用类型、质量特性的取值,在后续界面中供用户选择。软件配套表定义了产品中所有的软件项目及软件基本信息及测评信息。支撑数据定义了软件功能点原始数据。汇总数据表定义了汇总后的报价统计结果[1]。
报价系统用户分为报价用户和审价用户,报价系统启动时提示用户选择,用户也可以在菜单中切换。启动选择用户进入报价系统,菜单界面如图1所示,点击用户角色选择可以切换为报价用户或审价用户。
图1 报价系统后的菜单界面
软件基本信息包括系统代号、软件类别、应用类型、质量特性、开发语言、代码重用度等。报价系统根据以上信息计算相关因子,并根据相关因子进行价格测算。
报价系统将计算相关因子信息保存在Excel表中,并通过VBA二次开发调用对话框,方便用户编辑。系统调用流程如图2所示。
图2 系统调用流程
软件测评信息包括软件名称、测评技术难度、测评附加信息等。通过测评信息可以得到测评费比例系数,用于价格测算。
依据需求规格说明统计内部逻辑文件、外部接口文件、外部输入、外部输出、外部查询的数量,并按照一定系数进行计算。报价系统根据用户角色实现编辑和统计。在功能点编辑界面中。其用户角色为审价用户,文本框中的内部逻辑文件、外部接口文件数量为审价用户确定的数量,其后显示的数量为报价用户确定的数量,二个数量作为报价用户、审价用户的对比[2]。
报价系统根据软件功能点及基本信息、测评信息等数据进行统计汇总,汇总界面如图3所示。
图3 汇总界面
本文基于Excel VBA实现了软件产品报价系统,规范了报价、审价过程中的数据交付,简化了功能点统计,极大提高了工作效率和报价准确度,已应用于多个项目软件产品报价工作。