`

软件配置管理(Configuration Management)

阅读更多
软件配置管理(Configuration Management)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。

初读上述定义,感觉不是一点点的有点绕口,枯燥和眩晕了,实际上如果仔细去研究软件工程的理论书籍,有一大堆关于配置管理的概念,定义,理论,工具,总之就是一些把初学者搞晕的东东。所以初学者最好避开这些理论,先去实践一个最基本的代码管理工具,如果公司有Clearcase环境当然是学习Clearcase比较好,如果没有,下载一些共享的代码管理,如CVS(现在已经升级到SVN了),安装在自己的电脑上,把自己的HelloWorld代码全部用这些代码管理工具管理起来,就是基本的配置管理了,如果再改进一下HelloWorld,做一个2.0版本,那就已经初窥门径了。当然,路漫漫其修远兮,推开一扇门,后面是汪洋大海,慢慢的遨游吧。

笔者有幸接触过以下几种常用的配置管理工具:VSS、SVN、Clearcase,在此做一个小小的总结,并Ctrl+C了以前一些网友的对比评论,不一定准确,只是希望通过这些总结对自己和初学者有所帮助。如果想进一步了解这些工具,请baidu和google,如果想深入了解,敬请到图书馆借书并实践。

一、 Visual Source Safe( 简称 VSS )

VSS是微软的产品,是配置管理的一种很好的入门级的工具。VSS最初的名字叫Source Safe,是一家小公司的产品,92年曾经获了最佳小型管理工具奖,然后立即被微软收购。但是微软收购的只是source safe的Windows版本,在美国还有另外两家公司分别获得了继续开发和销售source safe的Mac版本和Unix版本的许可,在MS买进vss之后,基本上没有对vss进行任何的研发,MS内部自身也不用vss。

SourceSafe长得很象早先土气的文件管理器,的确难看。但是难看不碍事,SourceSafe的优点可以用8个字来概括“简单易用,一学就会”,这个优点是它老妈Microsoft遗传下来的,是天生的。虽然SourceSafe并不是免费的,但是在国内人们以接近于零的成本得到它,网上到处可以下载啊。当然Microsoft也不在乎这个小不点的软件,它属于“买大件送小件”的角色。如果你合法地得到Visual Studio,你就得到了免费的SourceSafe。

评价如下:

易用性:★★★★★

易学易用是 VSS 的强项, VSS 采用标准的 windows 操作界面,只要对微软的产品熟悉,就能很快上手。 VSS 的安装和配置非常简单,对于该产品,不需要外部的培训(可以为公司省去一笔不菲的费用)。只要参考微软完备的随机文档,就可以很快的用到实际的工程当中。

功能:★★★

VSS 的配置管理的功能比较基本,提供文件的版本跟踪功能,对于 build 和基线的管理, VSS 的打标签的功能可以提供支持。 VSS 提供 share (共享 ) 、 branch( 分支)和合并( merge) 的功能,对于团队的开发进行支持。 VSS 不提供对流程的管理功能,如对变更的流程进行控制。 VSS 不能提供对异地团队开发的支持。此外 VSS 只能在 windows 平台上运行,不能运行在其他操作系统上。

安全性:★★★

VSS 的安全性不高,对于 VSS 的用户,可以在文件夹上设置不可读,可读,可读 / 写 , 可完全控制四级权限。但由于 VSS 的文件夹是要完全共享给用户后,用户才能进入,所以用户对 VSS 的文件夹都可以删除。这一点也是 VSS 的一个比较大的缺点。

总体成本:★★★★

VSS 没有采用对许可证进行收费的方式,只要安装了 VSS ,对用户的数目是没有限制的。因此使用 VSS 的费用是较低的。

技术支持:★★★★★

由于 VSS 是微软的产品,可以得到稳定的技术支持。

二、 SVN(Subversion) - CVS(Concurrent Version System)的替代和升级版本

先说说CVS,CVS是开源代码的配置管理工具,其源代码和安装文件都可以免费下载。记得在学校读研的时候,学校实验室的代码全部都用CVS管理,为啥?很简单,两个字:免费!它与Eclipse配合,基本上Java的代码编写,代码管理和版本管理都可以“免费”搞定了。

SVN(Subversion)是近年来崛起的版本管理工具,被誉为cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。虽然在 2006年时SVN的使用族群仍然远少于传统的CVS,但已经有许多开放源码团体决定将CVS转换为SVN。已经转换使用SVN的包括了 FreeBSD、Apache Software Foundation、KDE、GNOME、GCC、Python、Samba、Mono 以及许多团体。许多开发团队换用SVN是因为 Trac、SourceForge、CollabNet、CodeBeamer等专案协同作业软件以及Eclipse、NetBeans等IDE提供SVN的支援整合。 除此之外,一些自由软件开发的协作网如SourceForge.net除了提供CVS外,现在也提供专案开发者使用SVN作为原码管理系统,JavaForge、Google Code以及 BountySource 则以SVN作为官方的源码管理系统。2009年,绝大多数CVS服务已经改用SVN。CVS已经停止维护。

易用性 : ★★★★

Subversion支持linux和windows,更多是安装在linux下。svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。目前业界评价的SVN易用性正在提高。

功能:★★★★

SVN 的功能除具备 VSS 的功能外,还具有:

它的客户机 / 服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码;它的无限制的版本管理检出 (checkout :注 1)的模式避免了通常的因为排它检出模式而引起的人工冲突;它的客户端工具可以在绝大多数的平台上使用。同样, SVN 也不提供对变更流程的自动管理功能。

安全性:★★★★

一般来说, SVN 的权限设置单一,无法完成复杂的权限控制;但是 SVN 通过 SVN ROOT 目录下的脚本,提供了相应功能扩充的接口,不但可以完成精细的权限控制,还能完成更加个性化的功能。

总体成本:★★★★★

SVN 是开发源码软件,无需支付购买费用。

技术支持:★★★

同样因为 SVN 是开发源码软件,没有生产厂家为其提供技术的支持。如发现问题,通常只能靠自己查找网上的资料进行解决。

三、 ClearCase

Rational公司的ClearCase是软件行业公认的功能最强大、价格最昂贵的配置管理软件。

ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。ClearCase通过TCP/IP来连接客户端和服务器。另外,ClearCase拥有的浮动License可以跨越UNIX和 Windows NT平台被共享。

ClearCase的功能比CVS、SourceSafe强大得多,但是其用户量却远不如CVS、SourceSafe的多。主要原因是:ClearCase价格昂贵,如果没有批量折扣的话,每个License大约5000美元。对于中国用户而言,这无疑是天价。用户只有经过几天的培训后(费用同样很昂贵),才能正常使用ClearCase。如果不参加培训的话,用户基本上不可能无师自通。

易用性:★★★

ClearCase 的安装和维护远比 VSS 复杂,要成为一个合格的 ClearCase 的系统管理员,需要接收专门的培训。 ClearCase 提供命令行和图形界面的操作方式,但从 ClearCase 的图形界面不能实现命令行的所有功能。如果Unix/Linux服务器上安装了Samba服务,可以直接通过Windows下Clearcase的客户端直接访问源代码,相对比较简单。

功能:★★★★★

ClearCase 提供 VSS, SVN所支持的功能,但不提供变更管理的功能。 Rational 另提供了 ClearQuest 工具提供对变更管理的功能,与 VSS不同, ClearCase 后台的数据库是专有的结构。 ClearCase 对于 windows 和 unix 平台都提供支持。 ClearCase 通过多点复制支持多个服务器和多个点的可扩展性,并擅长设置复杂的开发过程。

安全性:★★★★

ClearCase 的权限设置功能与 SVN 相比, SVN 有独立的安全管理机制, ClearCase 没有专用的安全性管理机制,依赖于操作系统。

总体成本:★★

要选用 ClearCase ,需要考虑的费用除购买 license 的费用外,还有必不可少的技术服务费用,没有 Rational 公司的专门的技术服务,很难发挥出 ClearCase 的威力。如现在网上虽有 ClearCase 的破解软件,但尝试应用的公司大多失败的缘故。另外,对于 web 访问的支持,对于变更管理的支持功能都要另行购买相应的软件。

技术支持:★★★★★

Rational 公司已被 IBM 公司收购,所以有可靠的售后服务保证。


四、总结

工具对比一览表

特性           VSS           SVN             ClearCase

易用性         ★★★★      ★★★          ★★★

功能           ★★★        ★★★★        ★★★★★

安全性         ★★★        ★★★★        ★★★★

总体成本       ★★★★      ★★            ★★★★★

技术支持       ★★★★      ★★★          ★★★★★


以上几种工具的总结如下:

1. VSS 的使用简便易学,但 VSS 的功能和安全性较弱,且只对 windows 平台进行支持,建议作为项目配置管理的入门时采用的工具;

2. SVN 的安全性和版本管理功能较强,可以实现异地开发的支持,但 SVN 安装和使用多采用命令行方式,学习曲线高,同时不提供对变更管理的功能,对于小型团队,可以采用 SVN 进行管理。

3. ClearCase 功能完善,安全性好,可以支持复杂的管理,但学习曲线和学习成本高,需要集成 ClearQuest 才能完成完整的配置管理功能。大公司如果采用异地多研发中心同时开发的模式,一般推荐使用ClearCase。
分享到:
评论

相关推荐

    Software Configuration Management Overview 软件配置管理

    软件配置管理(Software Configuration Management,简称 SCM)是一门控制复杂软件系统演化的学科。本篇内容由 Walter Tichy 教授撰写,作为密歇根州立大学(Michigan State University)SCM 课程的教材。 在介绍 ...

    配置管理(Configuration Management,CM)

    1. **定义**:配置管理(Configuration Management,简称CM)是一种通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。 2. **目标**:记录软件产品的演化过程,确保在软件生命周期各...

    GJB 5880-2006军用软件配置管理.pdf

    软件配置管理(Software Configuration Management, SCM)是软件工程中用来追踪和控制软件的修改、维护和管理的过程。在军用领域,软件配置管理尤为重要,因为这直接关系到武器系统的可靠性和安全性。 在详细展开...

    软件配置管理规范

    1.1.3.1 软件配置管理(Software Configuration Management,SCM) 软件配置管理是对软件修改进行标识、组织和控制的技术,用来协调和控制整个过程。是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制...

    软件配置管理计划

    - SCM(Software Configuration Management):软件配置管理。 - CCB(Change Control Board):变更控制委员会。 - COTS(Commercial Off-The-Shelf):商用现成软件。 - RUP(Rational Unified Process):统一...

    Configuration Management With Ansible

    《配置管理与Ansible》 配置管理是IT领域中一项至关重要的任务,它涉及系统、网络设备、应用程序等资源的设定、更新和维护,确保环境的一致性、可重复性和可审计性。在这个领域,Ansible以其简洁易用、无需代理的...

    软件配置管理--配置管理解决方案

    软件配置管理(Software Configuration Management,SCM)是IT行业中一项至关重要的实践,它涉及软件开发过程中版本控制、变更管理、构建管理和审计等关键环节。在软件工程领域,配置管理是确保项目可追溯性、一致性...

    Software_Configuration_Management_Patterns

    **软件配置管理**(Software Configuration Management, SCM)是一种管理软件开发过程中的变更的方法论,确保团队能够有效地协作,同时保持软件版本的一致性和稳定性。它通过标准化流程来管理软件产品的不同版本,并在...

    GJB 5880-2006 软件配置管理.pdf

    软件配置管理(Software Configuration Management,简称SCM)是一门涉及软件工程流程的重要学科,它确保在软件开发全生命周期中对软件产品及其相关文档进行有效控制,保证了软件质量、可追溯性和一致性。...

    GJB 5880-2006 软件配置管理

    1. 配置项(Configuration Item, CI):配置项是软件配置管理的对象,它可以是软件开发中的任何可标识的输出,比如源代码文件、设计文档、用户手册、测试用例等。确保这些配置项的准确性和完整性是软件配置管理的...

    软件配置管理

    软件配置管理是软件开发过程中的关键环节,它旨在确保软件产品的完整性和一致性,以及在整个开发周期中的可控变更。配置管理(Configuration Management,简称CM)主要关注软件开发中的配置项(Software ...

    软件配置管理计划.pdf

    标题《软件配置管理计划》和描述《软件配置管理计划》表明本文档是一个关于软件配置管理(Software Configuration Management, SCM)的计划性文件。软件配置管理是软件工程中的一个重要分支,它涉及软件开发、维护...

    软件配置管理规范及模板

    《软件配置管理规范及模板》是一份至关重要的文档,它为软件开发团队提供了一套标准的操作流程和模板,以确保软件开发过程中的有序性、可追溯性和一致性。配置管理是软件工程的重要组成部分,旨在控制软件产品的变更...

    软件配置管理规范.pdf

    软件配置管理规范 软件配置管理规范是软件开发和维护过程中的一个重要环节,它的目的是确保在整个软件生命周期中软件产品的完整性。本文档指导项目开展配置管理活动,涵盖了配置管理的目的、范围、词汇和参考信息等...

    软件工程第17章 软件配置管理

    **软件配置管理(Software Configuration Management, SCM)**是软件工程中的关键环节,旨在有效地管理和控制软件开发过程中的变化。在软件开发过程中,由于各种因素,如市场需求、客户需求、组织策略调整以及时间与...

    软件配置管理流程

    软件配置管理(SCM, Software Configuration Management)是软件工程中的一个重要组成部分,其目的是确保软件产品的完整性和一致性。通过有效的配置管理流程,可以实现对软件项目的有效控制,保证软件产品的质量和稳定...

    未雨绸缪理解软件配置管理+GJB5235.rar

    《未雨绸缪理解软件配置管理》一书和GJB5235标准共同构成了对软件配置管理(Software Configuration Management, SCM)的深入探讨。SCM是IT领域中至关重要的一环,尤其在大型项目和军事应用中,它确保了软件开发过程...

    实验5:软件项目配置管理计划.docx

    配置管理的工具是指用于实施配置管理的软件工具,例如 Version Control System(VCS)、Configuration Management System(CMS)等。这些工具可以帮助软件项目团队更好地实施配置管理,例如自动化的版本控制、变更...

Global site tag (gtag.js) - Google Analytics