基于GJB5000A的机载软件配置管理技术
2020-06-10王丝雨
王丝雨
(中国直升机设计研究所 江西省景德镇市 333001)
当前军用飞机呈现系列化、多用途的发展趋势,通过软件来实现的功能越来越多,以及对装备安全和任务执行效果的要求不断提高,对于机载软件的质量要求也在不断提高。然而军用软件具有生命周期长,需求变更较频繁等特点,由此可能会带来软件版本交叉复杂等问题,同时由变更引起的代码、文档等一系列变化给软件开发过程管理也带来了一定的难度,因此需要有效开展软件配置管理,以加强对软件开发过程的控制,使软件开发全生命周期得到管理。
GJB5000A-2008 军用软件研制能力成熟度模型参照美国卡耐基梅隆大学所属的软件工程研究所发布的软件能力成熟度集成模型CMMI1.2版本,进行适当的本地化和剪裁。总装备部于2008年颁布并实施推广该标准,以提高军工企业软件研制与管理能力[1]。
1 配置管理概述
配置管理简而言之就是管理软件的变化,是一种标识、组织和控制修改的技术[2],是贯穿于整个软件生命周期的活动。在软件项目建立的初期阶段,项目组开始策划配置管理活动并建立配置管理系统,随着项目的进展建立并发布基线。其目的是通过执行版本控制、变更控制等规程,以及使用配置管理软件,来保证所有配置项的完整性和可追踪性,以使得软件开发的混乱减到最小。
2 军用机载钦件配置管理现状
军用机载软件的研制存在型号节点紧、研制项目多、人力资源不足、生命周期长等特点。总装备部从 2008 年开始实施并推广GJB5000A-2008 军用软件研制能力成熟度模型,虽然配置管理经过了十余年的发展,但目前依然存在软件更改控制不严格、软件版本错误、基线控制不严格等问题。这给项目的进展带来了风险,也给日后使用和维护带来一定的安全隐患,因此解决这些问题成为当前配置管理活动的主要任务。
3 配置管理实践
软件配置管理实践的过程主要包括:
(1)构建配置管理库(含配置管理工具):为了控制配置项,在项目启动时需要设置配置库。包括软件开发库、受控库与产品库,从而控制工作产品。
配置管理工具是进行有效的配置管理的重要手段,配置管理组利用配置管理工具建立配置管理环境,可以实现对多种级别的权限进行设置、配置项出入库和变更管理、生成配置状态记录等。
(2)识别和标识配置管理项:配置管理组根据项目的大小和重要度级别,参照本单位质量体系及型号要求,选择配置管理对象。配置项包括各类管理文档、技术文档、源程序、目标程序以及各种数据等。
(3)制订配置管理计划:软件配置管理计划由软件配置管理员根据软件开发计划制定,是指导软件配置管理活动和软件实施活动的依据。
(4)出入库管理:配置项出入库将软件配置项纳入软件配置管理库进行管理,使其受到管理和控制,是使配置项有序受控的重要手段。
(5)版本管理:以版本的形式记录配置项的变化过程,版本号的命名规则可以根据单位和项目的特点制定。
(6)更改控制:对软件配置项的更改进行控制,包括跟踪受控库中每个配置项的更改、批准更改申请、更新基线等。
(7)建立和维护配置管理记录:记录软件的配置状态和管理工作,使得每个配置项的内容和状态都清晰。
针对目前机载软件研制配置管理过程中存在的主要问题和难点,提出以下解决方案:
(1)正确识别、标识配置管理项,实施分类型、分级别管理;
(2)严格控制软件更改,加强软件更改影响域分析;
(3)加强基线管理,包括基线建立、变更审批等,基线至少包括功能基线、分配基线和产品基线;
(4)加强版本管理,保证软件版本的正确性、可追踪性;
(5)加强配置管理审核,切实做好功能配置审核、物理配置审核和配置管理审核。
3.1 正确识别,标识配置管理项
配置标识不标准明确、配置项分类模糊、不严格分级受控,是目前配置项管理不到位的主要原因。针对现状,需要配置管理活动明确配置项选择范围,规范配置标识格式。具体方式如下:
3.1.1 配置项类型及受控级别
GJB5000A-2008军用软件研制能力成熟度模型中要求软件配置项分级管理和分级受控。其中软件配置项类型分为A类基线配置项,B类独立配置项,C类需管理配置项。软件配置项的受控级别包括:1级为基线控制,2级为受到管理和控制,3 级为受到管理(无版本)。根据要求,A类型配置项需进行1级控制,B类型配置项需进行2级控制,C类型配置项需进行3级控制。
3.1.2 软件配置项标识规定
配置管理项的识别标识应正确全面。正确标识配置项并有序管理配置项,需要明确配置项的标识准则。标识格式大致包括型号、系统名称、产品代号、标识符等要素。例如:
文档类配置项:
程序类配置项:
3.2 严格控制软件更改
软件的更改控制是配置管理中的重要一环,需要严格按照规定完成更改相关工作并履行审批手续。目前尚存在着一些问题,例如随意更改,更改流程制度不完善,更改影响域分析不到位等问题。这需要配置管理人员、开发人员和测试人员共同协作,保证软件更改活动符合体系文件要求。配置项的变更控制分为开发库配置项更改控制,受控库配置项更改控制以及产品库配置项的更改控制。不同库的配置项,其变更控制的要求不同。
软件开发库中的配置项如需更改,由项目配置管理组将软件配置项出库给软件工程组中相关责任人进行更改,不需审批。
软件受控库中的配置项如需更改,其步骤如下:
(1)由问题提出人和责任人一起提出“软件更改申请”后提交给项目软件负责人;
(2)项目软件负责人或其指定人员作为分析人员对变更进行影响域分析,分析人员参照变更申请的问题描述进行影响分析;
(3)分析人员根据分析结果,确定更改类型(更改类型分为程序、文档、其他);
(4)分析人员根据分析结果,确定更改级别(包括1类:影响到基线的变更,2类:其他类型变更);
(5)项目软件负责人对分析结果进行审核;
(6)变更责任人填写修改建议,由相关人员进行校对,项目软件负责人审核;
(7)根据影响分析结果和变更类型,审批配置项变更;
(8)实施软件配置项更改。
软件开发库中的配置项的更改,按照更改申请、配置项出库、更改实施、更改测试、配置项入库等流程执行
3.3 加强基线管理
基线是一组经过验证或确认的,并作为后续工作开展依据的一个或一组工作产品 。按照GJB5000A-2008基线管理要求以及软件项目的具体情況,包括功能基线、分配基线、产品基线等。
基线生成和发布步骤如下:
(1)基线责任人申请建立基线,填写《基线建立申请表》,并提交项目CCB;
(2)项目CCB审批《基线建立申请表》;
(3)项目配置管理组按照《基线建立申请表》中的审核项目对基线进行物理审核,填写审核结论,并发送给项目软件负责人,由项目软件负责人将审核中发现的问题记录在《项目问题列表》中,同时指定项目配置管理组跟踪解决;
(4)审核通过后,项目配置管理组完成基线的创建,及时更新《配置状态记录表》,并通过邮件通知利益相关方。
3.4 加强版本管理
由于军用机载软件的生命周期长项目多、状态多, 软件版本易出错,因此需要加强软件的版本管理。
其主要方式包括:
(1)根据开发计划制定配置管理计划,明确需纳入开发库、受控库及产品库的配置项;
(2)项目配置管理员应全程跟踪项目进程,参与例会,参与各阶段评审等,了解项目过程中的各配置项是否发生更改;
(3)使用配置管理工具,建立三库;
(4)严格履行出入库手续和软件更改手续。
3.5 加强配置管理审核
配置审核是为了验证一个配置项或构成基线的一组配置项是否符合规定的标准或需求所进行的一种审核。依据配置审核的内容,配置审核分成:配置管理审核、功能配置审核、物理配置审核三种类型。
均需在软件配置管理计划中明确审核的时间点和频度,要求:
(1)每年定期进行两次配置管理审核;
(2)产品发布前进行功能配置审核;
(3)软件配置项入库时进行物理配置审核。
以某军用飞机主机研究所为例,配置管理审核的过程包括:
(1)所级配置管理组和所级质量保证人员制定《配置管理审核计划》;
(2)按照《配置管理审核计划》中审核内容进行审核,形成《配置管理审核报告》并发送给项目 CM组和项目软件负责人;
(3)由所级配置管理组负责跟踪问题直至关闭。
功能配置审核时,项目配置管理组参加项目的软件验收,与验收组一起完成软件项目的功能配置审核,验证配置项的所测试功能特征是否已达到其功能基线文档中所规定的需求,且操作和支持文档是否完备和满意。
物理配置审核的过程包括:
(1)项目配置管理组在各软件配置项入库时按照《软件入库申请单》中物理配置审核内容进行物理配置审核:
(2)将审核未通过的《软件入库申请单》发送至项目软件负责人,由项目软件负责人将审核中发现的不符合项记录在《项目问题列表》中,并指定项目配置管理组负责跟踪直至关闭。
4 总结
GJB5000A-2008军用软件研制能力成熟度模型适用于对组织的软件研制能力进行评价和对软件过程进行评估和改进。本文在说明GJB5000A-2008对于软件配置管理的要求的同时,还结合军用飞机主机研发工作,罗列了进行配置管理中所面临的例如更改控制不严、基线控制不严以及版本控制出错等问题,并提出了例如做好配置项识别与标识,加强更改控制和版本控制,加强基线管理等解决方案。以此来维护工作产品的完整性,规范了开发过程,使军用机载软件更加安全、可靠。