基于GJB 5000A的软件配置管理研究与系统实现

2019-03-10 03:17郝延刚
雷达与对抗 2019年4期
关键词:配置管理架构设计基线

郝延刚

(海军装备部驻南京地区第二军事代表室,南京 211153)

0 引 言

随着现代软件技术的发展,对软件项目的需求日益复杂,变更频繁发生。同时,软件工程的发展也要求软件开发从手工作坊上升到团队化、规模化的开发模式。当开发团队发展到一定规模时会越来越强调开发过程的规范化和成熟度。[1]

针对软件技术发展的趋势,2008 年颁布了《军用软件研制能力成熟度模型》(GJB 5000A-2008),规定了军用软件研制和维护活动中的重要管理过程和工程过程实践,以提高军工企业软件研制能力,其中软件配置管理更是在软件项目开发过程中起着重要的作用。本文采用Spring、MyBatis以及Activiti技术,定义软件配置业务流程,设计满足 GJB 5000A 的软件配置管理系统。

1 配置管理过程域

软件配置管理是指在开发过程中各阶段管理计算机程序演变的学科。作为软件工程的关键元素,它己经成为软件开发和维护的重要组成部分,提供了结构化的、有序化的、产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。[2-3]

依据GJB 5000A,软件配置管理过程域主要包括3个专用目标:建立基线、跟踪和控制更改以及保证完整性。

2 配置管理功能需求

在软件项目的初期阶段,配置管理组开始策划配置管理活动并建立配置管理系统,且随着项目进展建立并发布相关基线。通过配置管理的配置控制、变更管理和配置审核等功能,对配置管理系统中的工作产品的发布和基线的变更实施系统性的控制和监督。

根据GJB 5000A-2008对配置管理的要求,配置管理系统应满足如图1所示功能需求。

图1 配置管理功能需求

2.1 标识配置项

配置项是软件配置管理指定的实体。配置项的管理可以按多个粒度级实施。一般来说,配置项包括需求、设计、文档、测试数据和代码等。但是,在最极端的情况下配置项可以是一行代码或是一行文档。

2.2 配置管理计划制定

项目管理计划应当涵盖以下内容:

(1) 确定配置控制委员会(CCB)组长、成员以及组内分工;

(2) 标识配置项;

(3) 策划各配置项的受控时机;

(4) 定义基线;

(5) 策划项目产品入产品库的时机;

(6) 策划配置审核、配置状态报告活动,明确时机或频度。

2.3 配置管理环境建立

依据配置管理库目录结构,可以使用配置管理工具或资源管理器建立项目的开发库、受控库、产品库,并设置访问权限。

2.4 三库管理

对软件配置管理库的操作是软件配置管理中的核心内容,主要涵盖检入、检出、分支、合并、版本比较和版本标签功能。[4]

2.5 基线建立与发布

基线是一组经过验证或确认并作为后续工作开展依据的一个或一组工作产品。基线建立的条件是基线配置项均已纳入受控库受控,已通过相应审批。

项目在开发过程中需要建立的基线通常有功能基线、分配基线、设计基线、实现基线、产品基线等。软件生命周期中每一条基线都应具有唯一的标识,并且基线的建立应该经过相应级别 CCB 批准后由配置管理人员建立。

2.6 变更管理

变更管理是在软件研制和维护过程中,对发现的软件问题进行确认,分析产生问题的根源,确定受影响的应更改的受控软件配置项,并实施软件变更的过程。满足 GJB 5000A 要求的软件项目在开发及维护过程中任何一个基线配置项的更改都应在严格有效的变更控制下进行。

2.7 配置审核

配置审核分为针对基线的基线审计和定期审核。对于配置审核中发现的问题应根据具体的问题处理规程进行处理。[5]

2.8 配置状态报告

配置状态发布是建立与维护配置项的记录,可为相关人员提供准确的配置信息,通过记录和报告变更请求的状态为产品的质量、进度、趋势等跟踪提供数据。

3 配置管理系统分层架构设计

随着Internet技术的兴起,浏览器已经统一了客户端。将系统功能实现的核心部分集中到服务器上,可简化系统的开发、维护和使用。因此,本文配置管理系统采用B/S架构进行设计。

运行时从界面到数据存储经历多个功能层次的交互,依次进行数据展现与输入、数据传输与接入、服务请求派发、业务逻辑执行和数据持久化操作等多个阶段,形成如图2所示的分层结构。

图2 配置管理系统分层架构设计

(a) 展现层负责以文字、图形、表格等可视化界面向用户展示系统信息;

(b) 服务交互层提供用户请求数据的格式化、传输、封包与解包、URL处理的派发等功能,系统内部服务调用支持RESTful方式以JSON格式序列化,服务端采用Spring MVC中的DispatchServlet进行请求派发;

(c) 业务逻辑层进行具体的系统功能实现,系统逻辑组件包括Activiti框架组件,可实现工作流控制;

(d) 持久层采用MyBatis框架提供数据的持久化、数据访问能力。

4 配置管理功能架构设计

软件配置管理系统实现4大功能:配置管理、配置审核管理、报告管理、系统管理。功能架构设计如图3所示。

图3 配置管理系统功能架构

4.1 配置管理功能

配置管理功能模块包含配置项标识、配置管理计划制定、建立和维护配置管理环境、三库管理、建立并发布基线、变更控制等功能,是配置管理的核心功能。

4.2 配置审核功能

项目配置管理是根据项目配置管理计划,对项目的配置管理活动进行配置审核。配置审核功能包括功能审核和物理审核功能。功能审核的目的是验证配置项功能特征是否已达到其基线文档中所规定的需求,是否完备和正确。物理审核的目的是验证已构造的配置项是否完备,版本是否一致。

4.3 报告管理功能

报告功能主要由配置状态报告、配置审核报告、基线状态报告组成。

4.4 系统管理功能

根据配置规程及项目定义,系统定义多种角色:系统管理员、配置管理员、审批人员、开发人员。项目组成员根据自己的角色选择相应用户进行登录。登入系统后,根据角色的不同系统所授予的权限及功能不同。

5 配置管理系统流程设计

5.1 工作流程设计

系统基于Activiti框架定义工作流程。Activiti采用BPMN2.0标准。该标准通过XML定义业务流程相关的节点。Activiti工作流程引擎配置如下所示:

在Activiti引擎支撑下,配置管理系统的流程控制可以基于数据库实现流程节点的定义、修改与维护。

5.2 配置管理系统主流程设计

配置管理系统主流程涵盖了配置过程的关键活动。主流程设计如图4所示。

6 配置管理系统主要类包图设计

基于分层架构,采用Spring+MyBatis架构设计系统主要业务类包图,如图5所示。

UI包为前台,Controller、Service、Dao包为后台,遵循MVC架构设计。UI包主要负责前台页面的表示,通过RESTful接口与后台Controller包进行交互。

Controller包负责具体的业务模块流程的控制。在此包里面调用Service包对应的接口来控制业务流程。此包中主要包含配置管理相关的控制入口,如基线控制接口、配置项管理接口、变更控制接口、三库管理接口等。

图4 配置管理业务主流程设计

图5 配置管理系统业务包设计

Service包主要负责业务模块的逻辑应用流程实现。如果需要进行数据库交互,则调用Dao包的接口。此包中主要包含配置管理相关的控制逻辑,如基线控制逻辑、配置项管理逻辑、变更控制逻辑、三库管理逻辑等。

DAO层主要是做数据持久层的工作。本系统基于MyBatis架构实现数据持久化。由MyBatis框架自动实现Dao包与对应的Mapper.xml文件的关联,并执行Mapper文件中的数据操作语句,实现数据持久化与读取。

7 结束语

配置管理在软件开发过程中占有重要的地位。本文基于GJB 5000A以及长期的工作实践,采用Spring+MyBatis实现B/S架构的软件配置管理系统。按照本文所述,能有效满足GJB 5000A-2008中配置管理过程域二级的要求。结合良好的软件配置管理系统,可以提高软件产品的质量,提高工作效率,降低开发成本,从而推动软件研制过程的标准化发展。

猜你喜欢
配置管理架构设计基线
高度角对GNSS多系统组合短基线RTK影响
汽车委托外加工零件自动化配置管理
浅析工业网络安全架构设计
基于物联网的智能楼宇顶层架构设计
GNSS 静态相对定位精度分析与比较
基于最小二乘法的超短基线水声定位系统校准方法
雷达电子战信号级数字仿真系统架构设计
基于虚拟基线的相位干涉仪阵列优化设计
大数据时代计算机网络应用架构设计
论ISO20000体系量化指标梳理