SCM系统理论概述

         

 最近在做机房收费系统的合作开发,在这个过程中我学习了SVN工具的使用,在此之前我们先了解一下的理论知识——SCM系统。下面时我对SCM系统理论知识的总结。

(一)SCM是什么?

          SCM(Software Configuration Management),软件配置管理。说的更直白点,就是版本的控制。它是一门用来记录并控制软件产品数据的管理工具。

(二)SCM主要解决什么问题?

         开发人员进行合作的时候,会出各种各样的问题。

        1)开发工程师

        开发过程中,开发工程师要修改源文件,但是不知道哪个是最新的。版本在A那,还是在B那,是控制不了的;

        Make时,经常有错文件的版本。Make,就是最后把大家的工作结果集中到一起,然后做一个完成的编译;

        多人修改一个文件,有些人的结果被冲掉了。

        程序误删了,只能重写。SCM可以帮我们做好备份;

        花了一段时间,终于查出了一个错误,但发现有个同事上周前已经修改过了同样的错误,但是我不知道,造成浪费,这也是所以的“知识管理”不够。

        2)项目经理

        整个项目由若干部分组成,项目有初期各人做各人的一部分,后期合并连调,但是整个周期很长,达数周甚至数月,开销非常大;

        调试过程中,经常出现"扯皮",搞不清楚哪的问题。

        版本太多,有的太旧,查看不方便。

        估计项目成员的工作进度和工作成果比较困难。

        3)老板

        交付给用户的产品“缺斤少两”,用户在安装时才发现问题。

        用户使用时发现的问题不能够即使得到解决。

        不能确切了解项目的进度,总是得到“差不多”“大概”之类的模糊回答。

        公司的运作过程无法控制,“不按我说的做”。

        总而言之,在开发过程中,源码控制的不是特别的好,你的知识控制的不是特别的好,对于开发工程师,对于项目经理,对于老板都会有各种各样的问题。而SCM系统就是为了解决这些问题的。

(三)SCM功能

          核心功能,记录开发历史,即版本控制。

          对于版本控制(Version Control),我们要知道它的几个基本概念。如Repository:仓库,主要由开发经理建立。Workspace:工作台。Delta:主要记录版本之间的差别,版本主要分项目版本和文件版本。Baseline(Head):基线,最开始的版本可以认为时基线。Branch:分支。Label(Tag):标签,比如版本发布的时候,我们会给版本打标签,如release 1.0, release1.1……。

          SCM除了Version Control功能外,还有其它很多功能,比如:

          Access Contorl:控制大家对特定资源的访问权限。

          Release Control:发布管理。

          Process Contorl:对于真个软件过程的控制。

          Build and release system:主要值自动化构建系统。

          Coordination:SCM系也具备了团队协作的功能。

(四)SCM系统的用户

          SCM系统有哪些人会用?主要有项目经理、开发工程师、质量控制部门(如测试经理)、测试人员、构建经理。

(五)SCM的好处:解决了在合作开发过程中的各种问题,在这里就不赘述。

(六)SCM的工具:SCM的工具很多,现在最常用的工具是:SVN.

          下面我在通过一张图对SCM系统理论知识点做个总结:

         SCM系统理论概述_第1张图片

 

 

 

 

 

 

 

你可能感兴趣的:(SCM系统理论概述)