软件配置管理
- 格式:pdf
- 大小:693.49 KB
- 文档页数:35
软件配置管理
1、简介
软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对于软件企业管理人员还是研发人员都有着重要的意义。软件配置管理可以提炼为三个方面的内容:
VersionControl-版本控制
ChangeControl-变更控制
ProcessSupport-过程支持
关键活动包括:配置项、工作空间管理、版本控制、变更控制、状态报告、配置审计等。
2、软件配置管理技术
软件配置管理是一组活动,是设计用来标识变更的工作产品、建立它们之间的关
系、定义管理这些工作产品不同版本、控制变更以及审计和报告所发生的变更。
每一个涉及到软件工程过程的人员均在某种程度上和SCM相关联。一般情况下
需要专门的SCM小组或专门的技术人员来管理和支持。下面通过依次介绍配置
管理过程中的主要活动来描述配置管理过程。
2.1识别配置项
在项目开发过程中,程序、数据和文档都可以作为配置管理的对象,下面
以图的形式来列举可能的配置项,如图2-1所示,由图可以看出配置项之间是
组合关系或者相互关系。
图2-1可能的配置项
2.2基于配置项版本控制
版本控制是将规程和工具相结合来管理在软件工程过程中所创建的配置对
象的不同版本,通过“属性元组”等其它技术来控制完整版本中的“变体”,
采用不同的工具不同的技术,版本控制的机制会有一些不同。
2.3变更控制
变更在软件开发过程中是不可避免的,但过于频繁的变更也会对项目的
开发产生负面的影响,如影响项目的进度、浪费人力物力,因此需要对变更进
行控制。
变更控制可以依照如下的步骤来进行:
(1)提交变更请求;
(2)审核变更请求;(3)分配和确定任务;
(4)提取变更项;
(5)执行变更;
(6)审核变更;
(7)更新配置管理库。
整个变更控制的产物主要是变更请求单、变更报告单、工程变更单或变更
确认单等。
2.4配置审计
配置审计一般包括两种,一种是正式的技术评审,另一种是软件配置审计。
在正式的技术评审中,将关注已经被修改的配置项的正确性,配置项的
评估配置项,以确定它与其他一致性、遗漏及潜在的副作用。正式评审应该针
对于所有的变更。
而另外一种软件配置审计,是来评估正式评审中没有考虑的那些特征,
可以考虑如下方面:
(1)工程变更单(ECO)中的相关内容是否已经完成;
(2)是否已经进行了正式的技术评审;
(3)变更过程中是否遵循了软件工程标准;
(4)在对配置项修改的同时,是否有相关的详细注释(comments);
(5)在配置管理工具中是否标注了变更后的配置项状态;
(6)所有与该配置项相关的配置项是否进行了相应的更新。
2.5发布配置状态报告
配置状态报告(ConfigurationStateReport,CSR)是SCM的一个任务,
它在中大型项目中扮演着重要的角色,内容可以包括:修改了什么、谁修改的、
修改是什么时候发生的以及修改有什么影响,一般情况下,是在一个配置项被赋上新的或已经修改的标识时,或者一个变更被批准时,或者产生配置审计结
果时产生配置状态报告。还可以将CSR放于一个联机数据库中,使得开发者、
维护者和管理者可以通过关键词等方式去访问。
2.6发布管理
当项目进行到一定的阶段,可能需要发布一个稳定的或相对比较稳定的版
本,这个时候就需要首先制定发布实施计划,然后生成发布准备报告,最后发
布完成生成发布报告。
3、软件配置管理工具RationalClearCase介绍
3.1VOB
VOB(VersionedObjectBase),即版本对象库,这是SCM系统的核心,用来存储文件、目录和元数据的永久数据存储池。它能够管理任何表示为文件
或目录的对象。它支持的特征包括:
(1)可扩展的。ClearCaseVOB中的元素可以从成百上千的文件演变成成
千上万的文件和目录,当VOB变得很大时,一个VOB中的文件和目
录可以在多个VOB间移动。一个VOB可以被分成多个VOB,多个VOB
也可以相互连接。
(2)容错性。ClearCaseVOB使用内部数据库,不需要进行额外的数据库
管理。
(3)分布式。ClearCaseVOB可以分布在网络的不同服务器上,对于最终
用户是透明的。
(4)可复制。这里的复制是指在不同地理位置上进行完全的复制并保持
相互间的同步更新。ClearCaseVOB可以在两点或多点进行复制。可
复制是异地分布开发的关键。
ClearCase有两种VOB,一种是标准VOB,另一种是项目VOB(projectVOB,简称PVOB),PVOB中包含与项目环境相关的对象。简言之,VOB存储和组织的对象组成了正在开发的系统,而PVOB存储的对象则用来组织和管理正在开发的
项目。
3.2配置规格(configspec)
定义在一个视图中可以看到哪些元素的哪些版本。对于使用UCM模型的项
目,ClearCase自动生成配置规格。对于不使用UCM的项目,可以使用默认配
置规格,或手工生成配置规格,还可以使用脚本生成配置规格。
3.3工作空间
在ClearCase中,工作空间被称为“视图(view)”,视图的主要目的是
为开发者提供一组稳定的、一致的软件内容,在视图中可以进行变更和执行单
元测试。视图依据一组配置规格定义从VOB内所有可用版本中选择文件和目录
的合适版本。
ClearCase提供了两种视图,快照视图(snapshot)和动态视图(dynamic)。
快照视图将文件的拷贝从VOB中下载到视图中,使用一个数据库跟踪下载到本
地工作目录中的版本,可以使用配置规格中的load语句来限制哪些元素从VOB
拷贝到快照视图中。
动态视图通过一个称为“多版本的文件系统(MultiversionedFile
System,简称MVFS)的虚拟文件系统提供对于元素版本的存取操作,不用将元素拷贝到本地目录中,这个虚拟文件系统直接指向VOB中的元素。当在MVFS文
件系统中使用编辑器的工具访问文件时,MVFS会中断文件打开命令,判断用户
在什么视图中工作,再判断选择文件的哪个版本正确,然后打开文件的那个版
本。动态视图是ClearCase所特有的。
3.4项目管理:项目、工作流和活动
由于软件开发活动的规模和复杂性,项目管理需要自动化和工具来协助组
织和管理大型软件项目。ClearCaseUCM拥有辅助管理和组织软件项目的对象
和自动化功能,包括:项目、工作流和活动。
项目管理研究所(PMI)学院如下定义项目:在有限资源条件下,人们用于规划、执行和控制活动而付出的努力。项目
是为了创建“一个”产品或者服务而付出的“临时性”的努力。“临时性”的
含义是每个项目都有明确的开始时间和结束时间。“一个”的含义是该产品或
者服务在某些方面与其他的产品或者服务有明确的不同之处。在组织机构的各
个层次都在进行着各种项目。项目中可能牵涉一个人或者是成百上千的人。项
目可能只花费不足100个小时,也许会耗费超过100000000个小时。项目可能
涉及一个机构的一个部门,也可能是跨越组织机构边界的合资或合作伙伴。项
目通常是贯彻机构业务策略的要件。
ClearCaseUCM中的项目代表一组独立的个人协作生成新的基线,这个基线由一个系统的一个或多个构件组成。使用ClearCase项目,其属性定义了项
目范围和工作的对象以及策略,策略包括:项目分配工作的策略,工作空间
(工作流和视图)的策略,还有项目成员执行哪些活动的策略。
一个工作流为其关联的一个或多个视图定义了工作配置,它包括为创建视
图自动生成配置规格所需要的信息。每个项目有一个集成流(integration
stream)和多个开发流(developmentstream)。
工作流主要有两个作用:
(1)配置与工作流相关联的视图。他们配置视图来选择正确的文件版
本,在工作流中从事项目工作。
(2)工作流物理地存储开发人员工作在视图中的活动。
活动用于跟踪完成一项开发任务的工作。它包括一个文本标题,标题描述
了任务和变更集,标题还标识了这个活动中所创建或者修改的所有版本。活动
对象的主要任务就是跟踪变更集和结果。
3.5版本对象:元素、分支和版本
在ClearCase中,元素(element)就是置于版本控制下的文件和目录。每
个元素记录了它所代表的文件或目录的版本。这些元素版本被组织成不同的分
支,分支就是版本的序列。3.6构件管理:构件和基线
将被一起开发、集成、基线和发布的文件和目录聚集在一起就形成了构件,
构件通过一个根目录来定义。
构件的一个版本就是一个基线。构件基线标识了构件中包含的每个元素的
零或一个版本。每个基线有一个用户定义质量和晋升级别。一个公司可以使用
ClearCase定义不同的测试水平并标识基线,表示每个基线已通过的测试水平。
3.7过程:标签、属性、超链、触发器
标签(Label)是一个标签类型的一个实例,并被关联到一个元素的一个版
本上。标签类型是一个冠名的标记符,用来标识一组相容的元素版本。在UCM
里不需要自己创建和生成标签。
属性类型由一对数据/值构成,能够把属性(Attribute)实例关联到几乎
所有的ClearCase对象上。
超链(Hyperlink)定义对象间的关系。
触发器(Trigger)是用户定义的事件,当某些ClearCase操作发生时被激
活。
触发器有两种不同的类型:事前触发和事后触发。事前触发的触发器在
ClearCase事件发生前被激活,可以取消触发的事件,它的典型应用是强制制度;事后触发在ClearCase事件发生后被激活,它的典型应用是通知。
4组织和职责
4.1配置管理组(CM)
配置管理组由配置经理和专职配置管理员组成,配置经理可以由技术经理
或其他人员担任。配置经理要熟悉机构的配置和变更管理流程,并且要熟悉所
采用的SCM工具。在开发人员开始工作之前,配置管理员一定要确立SCM环境,
这有两个关键步骤:建立硬件环境和建立开发环境。配置管理员协同系统管理