软件产品库管理在军品开发中的探索和实践
软件“三库”管理是软件配置管理工作的重要内容,产品库作为“三库”中的重要部分,是档案部门在参与军品开发管理的重要环节。本文以笔者所在的军工科研所为背景,结合实际工作,阐述了军用软件产品库在软件生命周期中扮演的角色、做好软件产品库管理的意义,以及开展军用软件产品库管理的实践方法。随着科学技术的迅猛发展,软件作为特殊的商品,已成为制约武器装备发展的核心技术之一。军用软件的特殊性决定了它必须具有严格的保密性、可靠性、有效性,因此必须从软件工程化管理的理念出发,规范军用软件开发全过程管理。在实施软件工程化的过程中,配置管理是关键过程域之一,也是软件质量保证的重中之重。配置管理过程中软件“三库”的建立是关键环节,是软件版本受控的前提和基础,也是确保软件版本可追溯的必不可少的前提条件。
一、认识软件产品库
(一)“三库”的概念和联系
在软件实施开发过程中,把不同时期存储配置的库划分为开发库、受控库和产品库。开发库:开发库用于软件的设计、编码、调试和内部测试,由项目组管理,项目CM维护,主要放置项目组正在开发但还没被批准的工作产品。受控库:受控库存放评审通过并完成评审缺陷修改后的工作产品,由项目CM管理和维护。产品库:产品库用于存放验收通过后的产品,用于交付、生产等,由档案管理员控制。
软件开发组日常的工作在开发库中开展,当工作达到里程碑时,再迁移到受控库,在受控库中经过更严格的测试后,再上升到产品库,最后发布。配置项在三库之间迁移,一级比一级的控制更加严格。通过权限和流程的控制来实现配置项在不同库的访问。
(二)产品库管理的必要性和重要性
软件的产品库相当于工厂的成品库,它存放的是最终提交给用户的产品。如同其他科技档案在军品科研、生产中的扮演的角色一样,产品库的软件产品在武器装备中具有举重若轻的地位。从软件产品库出去的软件必须是唯一的、现行有效的,如果用于生产的设备安装的是不受控的非法的软件,那么带来的后果不堪设想。
首先,软件是一种数字产品,其复制成本极低,几乎为零,复制过程中不会降低软件本事的质量,与原始版本基本没有差别,而软件版权保护的关键技术,如软件水印技术、加密技术和混淆技术,还不是很完善,并不能给软件真正意义上的安全,这就给盗版提供了机会,不同于传统意义的盗版光盘,这里说的盗版活动是指生产调试人员为了省事而将私自留存的软件自行修改、刻录的行为,如果此类不受控制的软件用于生产,会造成软件故障无法追溯和查询的困境。
其次,软件的复用性和移用性程度高,设计师通过局域网进行软件的共享和传递,一方面造成软件不受控,另一方面,由于安全漏洞的原因,往往造成软件病毒的传播,这对公共调试网和武器装备造成了巨大的危害和损失。
最后,软件与硬件不同,在使用过程中没有磨损、没有消耗,但软件是有生命的,在软件的整个生命周期中,需求专人跟踪、管理。
因此,开展科学合理的软件产品库管理必不可少。
二、软件产品库管理实践
(一)加强技术支持,实现优化配置
为软件开发和管理配置管理工具,因为配置管理是以软件在整个生命周期内建立和维护产品的完整性为目的的,主要用来标识软件配置项,对配置项的修改加以系统控制,建立和维护产品基线库、了解产品基线库的状态,如果缺乏良好的配置管理工具,要顺利进行配置管理工作十分困难。我所应用的是QONE平台,配置项发布、变更都会通过平台通知利益相关方,项目组成员能通过平台了解和掌握软件产品的状态。
在软件产品库的管理过程中,除了硬件工具外,还必须有一套适合自身特点的配置管理程序和制度,并配备完整的三库管理人员。在GJB5000A标准的指导下,结合自身管理特点,编制适合我所的相关规范文件,如《配置项和基线标识规范》《三库管理规范》《变更控制规程》《软件档案管理制度》等。我所在实施软件工程化管理的过程中,成立了软件配置管理组(SCM组),明确档案人员作为SCM中的软件产品库管理员。软件产品库管理员是本单位最高级别的管理员,其授权也高于开发库和受控库,产品库管理员根据软件规章制度和规范文件,结合档案管理要求,保证产品库软件配置项的归属明确、分类合理、标识明确,确保在实现软件配置项严格控制的同时方便科研人员的利用。
(二)加强产品库的科学管理,确保软件产品的有效控制
为保证产品库内软件的稳定可靠。产品库内的软件在未经审批,不允许对其进行任何删除和更改。产品库中的软件都是已写入了不可擦写的光盘中进行物理归档的,产品库管理员要对其进行一致性、完整性、有效性等一系列检查,具体操作是,根据《产品库物理审核检查单》,对比光盘中的配置项和QONE平台上的软件配置管理计划,以及归档入库单,检查配置项的命名、标识、版本是否符合相关要求。完成检查后还要进行信息录入和光盘备份,然后发布产品库信息并通知利益相关方。
软件产品库的重要性在于它是直接用于生产的,因此必须严格执行出库申请,不能擅自使用产品库以外的软件用于生产和交付。当由于产品交付、生产的需要时,由项目CM申请产品出库,填写《产品库出库申请单》提交部门主管和所级CCB审批。档案管理员根据审批通过的《产品库出库申请单》办理产品出库。
软件产品的更改控制和版本管理是产品库管理的重要工作之一。产品库内的软件一般是不允许更改的,若确须更改,须经用户同意或在用户提出更改要求并经军方领导同意后。由产品库管理员提取软件到受控库,按照受控库中文件更改的相关要求。在履行严格的审批手续后,方能进行更改。更改后的文件,经专家评审确认满足规定的功能和性能要求,并经用户同意和批准后,再次存入软件产品库,从而完成对产品库中软件产品的有效更改。具体做法是:当软件配置项需要更改时,由问题提出者填写《软件问题报告单》,《软件问题报告单》被批准(同意更改)后,由软件开发人员根据《软件问题报告单》填写《软件产品出库单》,配置管理员“拣出”须更改的软件,关闭配置项的发行,并向软件开发人员发布出库通知。当更改和测试完成后,由软件开发人员填写《软件更改报告》,根据评审后通过的《软件更改报告》,软件配置管理员将更改后的程序及相关文档重新“拣入”产品库,配置项版本升级成新的文件版本。
三、结语
在军工企业中,科学有效的产品库管理是提高和保证软件产品质量的有力保障。软件产品库管理是一项系统工程,通过将档案管理和软件配置管理相结合,在软件开发全周期过程中对软件产品状态全过程进行跟踪和管理,从而最终保证电子装备系统的质量。
作者:梁小凤 来源:大观 2016年6期
上一篇:嵌入式软件开发中UML的应用探讨