郝延刚

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

摘 要:采用Spring、MyBatis以及Activiti等技术,设计了符合GJB 5000A软件配置管理要求的软件配置管理系统。该系统可以有效保证软件研制过程中配置标识、配置控制、配置状态统计以及配置审核等活动的规范性。

关键词:GJB 5000A;配置管理;过程域

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 批准后由配置管理人员建立。

姓名:李彩霞,性别:女,出生年月:1967,12,民族:汉,籍贯:河南省平顶山市郏县,学历:硕士研究生,职称:副教授。研究方向:英语应用语言学工作单位:平顶山学院。

2.6 变更管理

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中配置管理过程域二级的要求。结合良好的软件配置管理系统,可以提高软件产品的质量,提高工作效率,降低开发成本,从而推动软件研制过程的标准化发展。

参考文献:

[1] 闫宇华.军用软件研制能力成熟度模型GJB 5000A-2008[M].北京:总装备部军标出版发行部,2009.

[2] 石柱.军用软件配置管理 GJB 5235-2004[M]. 北京: 总装备部军标出版发行部,2004.

[3] 林震.基于需求基线的软件配置管理[D]. 西南交通大学,2005.

[4] 聂华北,谦艺超.软件配置管理工具综述[J].计算化系统应用,2008:128-128.

[5] 刘莹.软件开发过程中实施软件配置管理的研究[D].北京邮电大学硕士论文,2008.

Research on software configuration management and system implementation based on GJB 5000A

HAO Yan-gang

(No. 2 Military Representatives Office of Navy Equipment Department in Nanjing, Nanjing 211153)

Abstract: The software configuration management system is designed in accordance with the GJB 5000A software configuration management requirements through the Spring, MyBatis and Activiti technologies, and it can ensure the normalization of configuration identification, configuration control, configuration state statistics as well as configuration and verification effectively in the process of software development.

Keywords: GJB 5000A; configuration management; process domain

中图分类号:TP31

文献标志码:A

文章编号:1009-0401(2019)04-0065-04

收稿日期:2019-10-08

作者简介:郝延刚,男,1987年生,硕士,研究方向:雷达工程。

软件的接口设计图_基于GJB 5000A的软件配置管理研究与系统实现相关推荐

  1. 软件的接口设计图_软件工程复习6670组考题

    黑色字体为原本答案,蓝色字体修改补充了 复习题组「66-70/66-70/14/14」 一名词解释 71.压力测试 在软件工程中,压力测试是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接 ...

  2. 软件的接口设计图_刚进装修公司该学什么软件

    学室内装饰设计需要先学什么软件 楼主 1.AutoCAD 精确绘制建筑施工图 --主要是大致的框架,用CAD可以绘制精确的墙线和房屋内部构造框架 2.3DMax 三维建模,装修效果图或者虚拟装修实境 ...

  3. 软件的接口设计图_你真的懂电脑吗?电子设备的硬件及软件认识,一起分享学习!...

    海商报业集团这里是你梦想的栖息地关注 电脑已经是工作生活中不可缺少的电子产品,无论工作.娱乐都离不开他们.那么经常运用电脑,在熟练掌握最基本的操作技巧之外,有一些在日常运用中的错误认知是需要我们了解并 ...

  4. 软件的接口设计图_面向服务架构(SOA)的汽车软件分析和设计

    --后台回复"资料",领取特斯拉专利技术解析报告-- 文章转自:联合电子 本文将先重温下SOA架构的核心要素与优势,并重点讨论话题"面向服务架构(SOA)的汽车软件分析和 ...

  5. 软件的接口设计图_软件的生命周期amp;测试基本流程

    软件的生命周期&测试基本流程 软件的生命周期 问题定义及规划- - - 需求分析阶段- - - 系统设计 - - - 软件编程 - - - 软件测试 - - - 软件维护 瀑布模型有弊端 1用 ...

  6. 软件的接口设计图_【学术论文】高速接口JESD204B的灵敏放大器设计

    摘要 采用UMC 28 nm CMOS工艺,在低电源电压下设计实现了一种高速.低失调的灵敏放大器.在传统差分放大器.AB类锁存器等电路的基础上进行改进,提出了一种新型结构的灵敏放大器.利用Cadenc ...

  7. 软件的接口设计图_产品基础 | 软件生命周期

    一.什么是软件生命周期? 软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义.可行性分析.总体描述.系统设计.编码.调试和测试.验收与运行.维护升级到废 ...

  8. 软件接口设计_基于PREEvision的AUTOSAR Adaptive设计——上篇

    AUTOSAR Adaptive概述 2003年,汽车行业的高端玩家们发起了汽车嵌入式系统软件架构标准化项目--AUTOSAR(汽车开放系统架构).2017年,为适应汽车的发展趋势(智能化.网联化等) ...

  9. qt 历史记录控件_基于Qt图形界面软件的操作日志记录方法及系统_2015106293015_说明书_专利查询_专利网_钻瓜专利网...

    技术领域 本发明涉及一种软件系统的日志记录技术,特别涉及一种基于Qt图形界面软件的操作日志记录方法及系统. 背景技术 软件操作日志是记录用户在使用软件的过程中,通过鼠标和键盘在操作界面上执行的点击和输 ...

最新文章

  1. windows平台,开发环境变量配置
  2. HTTP和RPC的优缺点
  3. 【转】C#正则表达式小结
  4. python笔记之利用BeautifulSoup爬取糗事百科首页段子
  5. UIAlertView UIActionSheet随笔笔记
  6. javascript---001-运行原理01_前端三大技术_JS重要性_Atwood定律_JS应用_JS让人迷惑_TypeScript会取代JS吗_JS是一门编程语言_浏览器工作原理_浏览器内核
  7. 小甲鱼 OllyDbg 教程系列 (五) : 破解 PC Surgeon 之 查找字符串
  8. Java并发编程实战————可重入内置锁
  9. Spark structured 记录一次kudu扩容导致无法写入数据的问题
  10. 每天Leetcode 刷题 初级算法篇-汉明距离
  11. [2017BUAA软工]提问回顾
  12. shell正则表与文本工具sed
  13. 信号量有没有容量限制?
  14. ASP.NET Core 的启动和运行机制
  15. 基于词嵌入技术的微博博文情感分析系统设计实现
  16. 论文阅读:Enhanced Pix2pix Dehazing Network
  17. python实现Apriori算法
  18. Linux 下的 FFmpeg 安装编译环境配置总结
  19. GlobeLand30影像下载、去除黑边、镶嵌、裁剪、重分类
  20. 使用计算机时按什么键打开,电脑怎么重启按什么键

热门文章

  1. 解决 RaspberryPi 树莓派 NTP服务异常 无法自动同步时间
  2. 把uliweb项目变成可安装的python包
  3. PYTHON SOCKET编程简介
  4. Python基础(8)素数输出
  5. semi-global matching 算法总结
  6. 《玩转D语言系列》一、通过四个版本的 Hello Word 初识D语言
  7. Testing - Codereview Checklist
  8. 大数据之-Hadoop3.x_Yarn_容量调度器---大数据之hadoop3.x工作笔记0145
  9. Vue强制绑定class和style_使用字符串_对象_素组的方式实现强制绑定---vue工作笔记0007
  10. Netty工作笔记0045---异步模型原理剖析