前言
最近小编看马士兵视频,学习软件配置管理工具,发现这个视频有个特点,英文讲解,英文理论,非常给力。而且马老师的英语发音也是非常好听,当然这不是重点,纯属个人客观点评,重点是下面的干货。
主体—SCM
- SCM是什么? 英文的全称:Software Configuration Management。
- 核心:版本控制(Beyond Version Control)集成系统:构建系统(Build system)、更改管理请求系统(change request management)、需求管理系统(requirement management)、处理bug系统(bugzilla)。
- 定义:SCM是一门用来记录并控制软件产品数据的管理工具。
- 常用的版本控制工具:CVS、SVN。
软件开发中的问题
当需要开发一个满足客户需求的团队项目时,不同角色的人会遇到下面的问题:
software engineer
软件工程师,在进行团队项目开发时:
- 更改源文件,但不知道哪个是最新的;
- 不知道团队中其他人对于文件的修改过程;
- 两人以上修改同一个文件,导致文件覆盖,有的人修改白做;
- 团队整合编译项目时,文件版本不一致;
- 程序误删,未备份;
- 解决一周前团队成员已解决的错误,重复工作;
Project manager
项目经理,在管理开发的项目时:
- 调试过程中,出现“扯皮”,不知道哪一个人出现问题;
- 版本混乱,不宜查看;
- 无法很好估计项目成员工作进度和成果。
the boss
公司老板,在交付客户产品时;
- 用户发现产品“缺斤短两”、安装时才发现问题,并且不能得到很好地解决;
- 无法掌握项目开发的进度和情况;
解决之道
SCM可以帮助解决:
- 多个开发者同一时间同一代码处编辑;
- 多个平台支持,不仅限于Windows系统、Linux系统;
- 多个版本的保留;
- 多个IDE工具的支持;
历史发展
既然SCM如此厉害,那么它是如何出现,如何发展起来的呢?
配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标
准“AFSCM375-1,CM During the Development & Acquisition Phases”。
最早的配置管理工具:Change and Configuration Control(CCC);
从最初的只有版本控制,到现在提供工作控件管理、并行开发支持、过程管理、权限控制、变更管理等一系列
全面的管理能力,代表的产品:最著名的ClearCase;开源产品CVS;入门级工具Microsoft VSS;新秀Hansky
Firefly,现在常用的就是SVN工具了。
小结
通过这样了解SCM感觉很不错,知道了它是怎么来的,如何发展的,解决什么问题的,不过理论之后,我们还是要实践的,实践篇请见下文!