一种软件版本管理模型设计

一种软件版本管理模型设计

软件版本管理是针对软件开发过程中涉及到的各种软件资源进行管理,是实现软件配置管理的基础和核心。配置管理的目的是利用配置标识、配置控制、配置状态纪实和配置审计建立和维护工作产品的完整性。版本控制是配置管理的一个关键问题。版本通过记录配置项的当前状态,为后续开发提供依据;而且还可以追朔版本以前的状态。当前系统软件的规模日益大型化和复杂化,一般由若干承研单位共同开发,软件更新升级十分频繁,软件版本管理在系统集成联试过程中显得尤为重要。而且软件研发平台的多样性带来了入库软件包的多样性,如Windows平台支持的rar、zip压缩包,Linux平台支持的tar、zip、gz压缩包,这些给版本管理带来了复杂性。此外现有的软件版本管理软件不能比较出新旧版本软件之间具体组成文件的差异和共有文件内容差异,不能有效辅助联试人员快速定位出调试或使用过程中出现的问题。针对以上问题和从外场集成联试人员使用角度,本文设计了软件版本管理模型,除具有常用配置管理功能,能屏蔽处理Windows和Linux两个平台入库包类型差异,在入库时就获取并记录包内组成文件的信息,对比出相邻版本软件之间差异,快速定位出出现问题的文件范围,辅助研发人员迅速解决。

1设计决策

软件版本管理模型以软件配置项为最小管理单元,以项目为根节点,各项目由若干软件配置项组成,每个软件配置项可与运行支持平台关联。为便于用户操作使用以及跨平台使用需求,遵循简约的设计风格,采用基于Qt的tab页组成界面设计。设定固定的界面样式风格便于跨平台使用时保持一致。应用多线程机制将界面显示与业务处理逻辑分开,避免耗时业务阻塞造成界面假死。对于Windows文件系统下不区分大小写以及Linux文件系统下区分大小写的细节予以考虑。从项目配置管理和使用角度可分为入库软件查询比较、自定义软件比较、更新组成文件说明、软件入库、软件出库、参数设定六个功能。

2软件版本管理设计

软件版本管理各功能分别以tab页集成在主界面中,可通过tab页之间切换到每个功能。主界面最上方标识出已经建立的项目名和配置项名,用户可以选定查询指定项目和该项目下指定配置项,来进行相关操作。

2.1入库软件查询比较

入库版本查询比较以表格的形式显示已入库配置项的相关信息,包括入库项名称、版本号、支持平台、入库时间、已入库类别和备注,其中已入库类别显示该版本配置项已经入库的类别,可选的类别包括可执行程序包(EXE)、源码包(SRC)、安装包(IST)、说明文件(TXT)和附属文件(SUP),已入库类别必须包含EXE类型。入库配置项默认按入库时间倒序排列,默认选中两行(两者对应支持平台一致,如果选中为首次入库版本则只能选一行),并以不同颜色标示,分别为当前选中入库版本和之前入库版本。双击当前选中行会弹出列表显示该版本EXE包的具体文件组成并以树形结构展示,包括对应的文件名、修改日期、功能描述、研发单位和备注信息。点击右下角比较按钮会弹出相邻两个版本EXE包内的比较,分别以树形展现组成文件和目录结构,并标识出变更的地方,包括新增、修改和删除。通过比较能够发现升级版本后变更的地方,并且能够在出现问题后快速定位出改动见范围,联试人员可以迅速向有关人员反馈问题并协助定位。此外用户还可以设定时间范围搜索出时间范围内的入库配置项。

2.2自定义软件比较

自定义软件比较用于比较相关软件对象,软件对象通过路径选择对话框进行设定,比较对象分为组成文件和单个文件两种类型。组成文件比较类型包括压缩包和文件夹,用于比较压缩包或文件夹内的组成文件的修改情况(包括新增、修改和删除),对于修改的文件可双击继续比较具体内容差异。单个文件比较用于比较两个文件是否为同一文件。

2.3更新组成文件说明

更新组成文件说明用于对已经入库的软件版本的可执行程序包(EXE)组成文件进行更新说明,替换已有的组成文件说明,说明内容每行按照文件名、目录、功能,研制单位和备注格式排列。有助于对联试人员了解每个文件功能归属情况。

2.4软件入库

软件入库用于对选定配置项进行入库操作,该tab页由入库参数项和入库表格组成,入库表格与入库查询比较的表格一样。入库参数项是对该配置项入库前的参数设定,包括文件类别、支持平台、版本号、命名校验、文件选择、附属包、说明文件、备注、入库和入库时间。文件类别包括可执行程序包、安装包和源码包三种类型,可单选或复选,但首次入库成功必须包含可执行程序包。支持平台为下拉列表,包括项目中已设定的支持平台。版本号文本框用来填写本次入库的版本号。命名校验为勾选框,用来标识是否对版本号和文件名进行校验,勾选后不符合命名规范的文件将无法入库。文件选择与文件类别对应,选定准备入库且符合文件类别的配置项软件,当所选类别不匹配或命名规范有问题给出提示原因。附属包用来提交本次入库相关的其他软件或文档,如安装手册、相关数据库软件等。说明文件主要说明本版本软件功能或配置变动情况。附属包和说明文件可与配置项一起入库,也可随后入库。在设定完入库参数后可执行入库操作,入库过程中对三种操作系统(Unix、Windows和Linux)的压缩包格式区分处理,并对包内文件状态统计记录,对于入库失败提示原因。并显示执行入库的时间。在入库表格下面有当前硬盘剩余空间余量显示,以及修改、删除操作选项。修改用于完成对最新一次软件入库项的版本号、支持平台和备注进行修改,删除操作用于对最近一次入库版本进行删除。

2.5软件出库

软件出库在入库表格中选中待出库的软件版本后勾选出库的类型,然后提取到指定目录下获取该版本软件相关文件。

2.6参数设定

参数设定主要设定软件版本管理软件的项目配置、支持平台和命名校验参数信息。项目配置用来设定项目和配置项的参数,包括增、删、改操作。支持平台用来设定某项目的所有软件配置项运行的平台,包括增、删、改操作。命名校验用来根据设定项目代号和项目阶段对软件入库时的入库文件名进行规范性的校验,项目阶段可根据实际情况定义为开发、软件集成、系统集成、试验、用户试用和设计定型阶段的子集。

3结束语

本文根据软件集成和联试使用的角度出发,设计了一种软件管理模型,能够根据实际项目需要定制规范,屏蔽操作系统差异,对相应版本的配置项进行入库操作,并记录组成文件状态,对相邻版本间差异可比较,有力地协助联试人员定位问题。同时对软件版本进行有效管理,提高了软件开发和联试的效率,增强了配置管理的质量。

参考文献

[1]徐一华.如何加强系统联试过程中的软件版本管理[J].信息技术与标准化,2014,7:64-67.

[2]顾梦华.基于CMMI的软件配置管理模型研究[J].微计算机信息,2012,28(10):238-240.

[3]曹弘岚,郑玲.软件开发过程中的软件配置管理研究[J].信息化研究,2014,40(04):53-56.

作者:杨智 单位:中国电子科学研究院