基于ClearCase系统的软件配置库控制模式研究

时间:2022-04-09 06:34:33

基于ClearCase系统的软件配置库控制模式研究

摘 要:本文介绍了军标中对软件配置管理和三库的相关要求,同时对使用配置管理工具实施既符合军标要求又满足软件开发规则的难点进行了分析。针对ClearCase配置管理工具的优势,提出了基于ClearCase系统实施软件三库控制的模式,较具体地阐述了利用工具实施软件三库控制解决的问题,以及实施的效果。

关键词:军标要求;三库管理;团队开发;控制;ClearCase系统

0 引言

随着我国国防现代化的迅速发展,软件在军工产品中的应用呈现急剧上升的趋势,而软件配置管理是软件开发管理的核心所在。

软件配置管理是指一套管理软件开发和软件维护及其中各种中间软件产品的方法和规则,配置管理通过在特定的时刻选择软件配置,系统的控制对配置的修改,并在整个软件生命周期中维护配置的完整性和可追踪性,简单而言就是管理软件的变化。作为软件配置管理的基石——配置库的控制在软件开发过程中扮演着不可或缺的角色,它所控制的对象是软件开发过程中涉及的所有文件系统对象,其架构的目的在于对软件开发进程中文件目录的发展过程提供有效的追踪手段,保证在需要时可回到旧版本,避免文件丢失和相互覆盖,通过对版本库的访问控制避免未经授权的访问和修改,达到有效保护软件资产和知识产权的目的。

1 标准依据

1.1 配置管理要求

根据GJB5235-2004《军用软件配置管理》的要求,软件配置管理活动应贯穿整个生存周期,保证软件产品的完整性和可追溯性。软件配置管理的任务包括:配置标识;配置变更控制;配置状态记录;配置审计;管理。

1.2 配置库的要求

根据GJB5716-2006《军用软件开发库、受控库和产品库通用要求》的内容,有几下几方面基本要求:

军用软件开发组织应建立软件三库,明确软件三库管理机构职责,并制定三库管理规定。

软件三库管理机构应是软件配置管理机构的组织部分,由库管理员、各库管理负责人等组成。软件开发库由项目组管理,软件受控库由研制管理部门管理,软件产品库由组织的技术档案管理部门管理。

软件三库管理规定的内容包括入库控制、访问控制、出库控制、更改控制、配置状态报告、配置审核、维护规程、库间转换。

库属性一般应包括:配置管理项;配置标识;配置管理项位置;开发人;入库时间;更改人;更改时间;出库项;软件提取人;出库时间等。

组织应为软件三库提供必要的场地和设备,以适应软件三库管理,保证库中内容正确性、完备性和安全性。软件三库管理应采用适宜的工具,以利于存取、检索、比较和回复,确保软件三库的使用和管理方便、有效。

1.3 实施难点分析

软件三库的建立可以进一步确保软件配置管理的控制。利用配置管理工具实施既符合军标要求,又满足软件开发规则的难点有:

1)由团队开发引出的数据合并、分支开发问题。由于开发库介入人员较多,设计人员需要独立、安全、有效地开发环境,这就引发了并行开发以及分支开发的问题,如果不能有效、完整地归并数据、创建特定版本分支,必然造成软件版本混乱、软件失控的局面。

2)三库如何隔离的问题。实施软件三库逻辑隔离有助于软件配置管理的实施,脱离了逻辑隔离的三库,层级管理难以有效实施,人员权限将陷入混乱,组织对软件开发的结果很难掌握。

3)如何控制大量变更的问题。大型软件项目存在变更多、版本多的特点。如何有效、正确地掌握每次变更情况,控制各个版本成为配置管理工作的重中之重。

4)配置标识在项目间、三库间不唯一的问题。由于必须确保配置标识的唯一性,同一配置管理项的配置标识在各库中必须有所区别。另外,如果仅依赖人工操作,无法确保配置标识在系统中的唯一性,容易造成质量事故。

5)版本重用。配置管理要求记录软件开发过程中的所有工作成果,三库策略能够有效地分层级对软件工作成果进行管理,但是记录大量的软件历史版本的同时,仍能够清楚地显示最新版本,更便于开发和管理。

6)库间软件版本的对应关系。配置管理工作要求确保配置管理项的可追溯性,其中库间软件配置管理项的对应关系依靠人工记录,一是不便于工作查询,而是容易出错。

2 ClearCase工具的优势

软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,管理过程十分繁杂,管理对象错综复杂,因此,引入自动化工具成为了做好软件配置管理工作的必要条件之一。

ClearCase配置管理系统提供了比其他工具更全面的配置管理功能——包括版本控制、工作空间管理和过程控制。

2.1 版本控制

ClearCase的核心功能是版本控制,它能够支持软件开发进程中一个文件或一个目录发展过程进行追踪的手段。能够提供版本分支开发和归并功能;支持较其他工具更较广泛的文件类型;变更控制达到元素级;能够更清晰地展示版本变更情况。

2.2 工作空间

ClearCase提供空间管理,即保证开发人员拥有自己独立的工作环境,拥有自己的私人存储区,同时可以访问项目的共享信息。能够提供一致、灵活的可重用工作空间域,支持选择特定文件或目录的适当版本,实现资源代码共享和私有代码独立,以及版本间的透明访问。

2.3 过程控制

ClearCase为团队通信、质量保证、变更管理提供了更成熟的过程控制和策略控制机制,体现在以下几方面:历史记录;定义事件触发机制;访问控制;查询功能。

3 基于ClearCase系统的三库控制模式

3.1 三库架构与职责

ClearCase实现配置控制管理的基础是VOB,采用UCM模式,以项目为个体创建VOB,以此控制各项目组成员的操作权限;同时在项目VOB下采用以三库为基础的多流管理方式,配置开发库、受控库、产品库3个流,实现各库的逻辑隔离。

在以往的配置管理工具实施中,每个项目到各版本文件、目录全部依赖于系统管理员手工操作录入,各项目、各库间统一目录结构、文件命名的难度极大且容易出错。同时,也是最大的问题。对此,利用集成流配置各配置库中的共有内容,实现目录、文件夹、文档、代码及各元素的控制。例如同步各配置库的文档目录、统一各配置库中的代码目录、控制代码名称等。集成流仅允许系统管理员访问变更。系统管理员将集成流上的共有内容通过创建基线、Rebase基线到各库及各子流,能够实现统一项目内各工作区的文件目录结构。

根据GJB5716的规定,对三库管理做出不同层级的配置管理职责要求:软件开发库由项目组内部控制;软件受控库是部门级的控制;软件产品库是组织级的控制。通过项目VOB锁、三库流锁、目录锁、文件锁等层级控制人员权限。具体如下:

3.2 基于CC的实施流程

根据标准要求,受控库的配置管理项必须来自于开发库,产品库的配置管理项必须来自于受控库。在此,我们以开发库提交到受控库为例。

项目启动后由项目软件负责人通知受控库配置管理员创建项目VOB,项目组成员提交权限申请。由项目负责人定义代码及文档目录,由院级配置管理员统一创建、管理、维护。通过对项目VOB、三库流、文件目录、代码目录及元素分级控制,实现各项目组成员对各级元素的操作权限。

之后由配置管理员统一为项目组成员制定配置管理工作规范。项目负责人可以为项目提出分支开发的要求,由配置管理员实施并确保每个项目组成员在适当的项目分支上。

开发人员工作前要创建视图。如果需要进行开发库入库,开发人员进入开发视图并实施创建/修改,完成各自的分支后,由配置管理员根据申请合并分支,并操作make baseline生成该软件配置管理项的开发库版本。最后依据申请操作deliver提置管理项到受控库(目的库)。受控库及产品库操作类似,但是受控库及产品库中的版本生成操作将触发邮件通知,通知对象为项目组成员。

如果需要进行开发库出库,由开发库配置管理员根据申请在开发库下的出库子流操作,对指定配置管理项的指定版本操作rebase。完成后通知开发人员提取。受控库及产品库操作类似。

4 解决的问题

4.1 分支开发

结合我院软件开发过程的实际情况和项目开发需求,在受控库与产品库不变动的情况下,将开发库按使用角色再细分为:测试人员(用)开发库、配置管理员(用)开发库和质量保证人员(用)开发库,方便各角色负责人分派任务、归并数据(参见图1)。

图1 ClearCase实施示意图

图2 项目下创建分支流的分支开发模式

项目的分支开发需要根据分支开发需求,通过在项目VOB下创建新项目或者在原项目下创建分支流实现。这样的分支策划可以帮助项目软件团队实现多项目软件在某一共同数据基础上的并行开发,或者在原软件某版本基础上的分支开发。

4.2 追溯性

4.2.1 标识

如果不能保证配置管理项的配置标识在项目间、配置库间以及配置库中的唯一性,你会发现标识正确的文件的正确版本是多么的困难,因为到处都有拷贝。最坏的情况,极易丢失或错误标识文件的版本,导致降低了系统的质量,甚至项目的失败。

对此,对配置标识的命名必须进行规范要求:型号名称-组件名称-存储库名称-种类-版本号。例如MONI-FK-CL-DM-V2.0,其中CL表示受控库,DM表示代码。按照这样的要求进行配置标识,能够确保配置管理项的配置标识在配置库间以及配置库中的唯一性。

根据我院软件开发的时机情况,曾出现过同一开发人员开发的不同项目软件的代码具有相同文件名称的情况,最终出现严重的质量事故。为解决该问题以及同项目软件代码不同版本的名称识别问题,可以通过开发为用户定制的触发机制,实现对配置管理项名称的控制。该触发机制要求设计人员提交装机文件时必须在文件名称中添加版本号,按照这样的要求进行配置标识,能够确保配置管理项的配置标识在项目间的唯一性。

4.2.2 变更信息

可维护和控制的配置管理项类型广泛,可以是源代码、二进制文件、目录内容、可执行文件、文档、测试包、编译器、库文件等。变更控制细致且规范。

在变更的同时,每个数据的每个版本还附有丰富的信息,ClearCase可以为软件开发过程的每一种信息类型建立一个安全可靠的版本历史。

4.2.3 历史记录

元素版本的组织结构体现在系统版本树中。

ClearCase能够对开发过程做出记录,也可以反应开发的历史情况。系统自动追踪元素级的变更情况,任何变更可触发活动(Activity),自动产生常规日志,存放在数据库中,如:谁做的、做什么、什么时候、在哪个地方、为什么形成的版本等,这些配置状态情况配置管理员可以通过版本树和查看历史查看历史情况的方式实施监控。这样一来,既实现了版本追溯,又减少了错误发生。

因而,基于ClearCase系统实施的配置库的控制模式,可以帮助团队在开发软件时为确保他们所处理的每一种信息数据的可追溯性。

4.3 版本

软件技术状态一般依赖配置管理员人工识别并,伴随而来的是大量的版本信息和漏洞百出的错误信息,容易出现版本十分混乱的失控局面。

利用ClearCase的功能与邮件进行触发配置,能够实现受控库、产品库配置管理员每创建一个配置标识或者基线,均可通过邮件系统自动将该配置标识或基线信息发送至该项目组全体成员。解决了以往版本无法受控的情况,有效且智能地实现了版本控制。

5 实施效果

该系统已在全院范围内运行,并顺利通过保密审查。软件配置管理控制改进效果如下:

1)满足军标要求;

2)符合软件开发过程控制要求;

3)既减少了控制的难度,又达到了配置控制的目标;

4)软件开发过程更加规范化、科学化;

5)完整详细的历史信息。

然而,现阶段的运行仍然存在一些安全机制问题。依据相关保密要求,系统中文档、代码必须标密处理,使得出库后的文档或代码可被识别密级和保密期限,保证我院保密工作有效开展。但是ClearCase配置管理系统并没有相关功能,对此,可利用ClearCase的触发器开发空间,编写用户提交的信息资源必须标明密级和保密期限的触发机制,使软件开发管理符合保密相关要求。同时,ClearCase的配置和使用相对较复杂,需要进行专门的培训和实践应用,才能够能为一个合格的配置管理员。

6 结束语

综上所述,通过ClearCase版本控制系统实施配置库控制机制,可以规范软件的配置管理过程,对开发过程中的各文档及程序标识清晰,版本可追溯,更改控制规范,保证了软件质量。通过将工作成果存储到ClearCase配置管理工具中,使得软件开发过程更加透明化,保证了软件状态的可控制性,更加有效的提高了产品的可靠性和质量。伴随着软件工程日趋成熟地发展,伴随而来的问题可能越来越多,软件配置管理探索的脚步也永不停歇。

参考文献:

[1] 郑人杰.实用软件工程.清华大学出版社,1997.

[2] 周之英.现代软件工程.科学.科学出版社,1999.

[3] 何新贵,石柱,王纬,等.GJB5000《军用软件成熟度模型》实施指南[M].国防工业出版社,2004.

作者简介:陈元洁(1988-),女,江苏无锡人,本科,研究方向为软件工程。

上一篇:完善资助流程 加强学生管理 下一篇:鄂尔多斯市产业结构调整分析及对策研究