• 1. 配置管理—Cm 介绍
  • 2. 配置管理不得不进行配置管理的原因: 复杂的开发环境 — 业务领域的发展变化 — 开发平台的多样化 — 项目的并行开发 …… 安华明锐科技公司 www.inquiry-tech.com
  • 3. CM 介绍什么是CM CM的定义 SCM的主要功能 常用的CM工具 CVS的实践安华明锐科技公司 www.inquiry-tech.com
  • 4. 什么是CMCM就是 配置管理(configure Management) 为了建立规范化的软件开发环境,软件配置管理作为软件开发过程中一个重要过程已经逐渐受到各软件企业的重视安华明锐科技公司 www.inquiry-tech.com
  • 5. CM的定义配置标识--产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取。 版本控制--通过建立产品基线,控制软件产品的发布和在整个软件生命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的最新版本中实现的问题。 状态统计--记录并报告构件和修改请求的状态,并收集关于产品构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文件的问题。安华明锐科技公司 www.inquiry-tech.com
  • 6. CM的定义审计和审查--确认产品的完整性并维护构件间的一致性,即确保产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所用的文件的版本是否正确的问题。 过程管理--确保软件组织的规程、方针和软件周期得以正确贯彻执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。 小组协作--控制开发统一产品的多个开发人员之间的协作。例如,它将解决是否所有本地程序员所做的修改都已被加入到新版本的产品中的问题。安华明锐科技公司 www.inquiry-tech.com
  • 7. CM的主要功能一、权限控制(Access Control)其核心概念是:   行为主体:即用户(User)。用户组(User Group)并不是行为主体,但它的引入大大方便了权限管理。   行为客体:即项目和项目成员(Member)。不管从SCM工具的开发者还是使用者的角度,项目和项目成员都是不同的行为客体。   行为:即由主体施加在客体之上的特定操作,签入和签出是再典型不过的例子。安华明锐科技公司 www.inquiry-tech.com
  • 8. CM的主要功能(续)二、版本控制(Version Control) SCM工具记录项目和文件的修改轨迹,跟踪修改信息,使软件开发工作以基线(Baseline)渐进方式完成,从而避免了软件开发不受控制的局面,使开发状态变得有序。 SCM工具可以对同一文件的不同版本进行差异比较,可以恢复个别文件或整个项目的早期版本,使用户方便地得到升级和维护必需的程序和文档。安华明锐科技公司 www.inquiry-tech.com
  • 9. CM的主要功能(续)三、增强的版本控制(Enhanced Version Control) 快照(Snapshot)和分支(Branch)以基本的版本控制功能为基础,使版本控制的功能又更进一步增强。安华明锐科技公司 www.inquiry-tech.com
  • 10. —分支的作用第一,分支和合并(Merge)一起,是支持并行开发(Concurrent Development)的有力支持; 第二,分支支持多版本开发,这对发布后的维护尤其有用。安华明锐科技公司 www.inquiry-tech.com
  • 11. CM的主要功能(续)四、变更管理(Change Management) CM工具提供有效的问题跟踪(Defect Tracking)和系统变更请求(System Change Requests (SCRs))管理。通过对软件生命周期各阶段所有的问题和变更请求进行跟踪记录,来支持团队成员报告(Report)、抓取(Capture)和跟踪(Track)与软件变更相关的问题,以此了解谁改变了什么,为什么改变。安华明锐科技公司 www.inquiry-tech.com
  • 12. CM的主要功能(续)五、独立的工作空间(Independent Workspaces) 使用沙箱(Sandbox),开发人员能够将所有必要的项目文件拷贝到私有的一个树型目录,修改在这些副本上进行。一旦对修改感到满意,就可以将修改合并(Merge)到开发主线(Main Line)上去;当然,如果该文件只有该成员一人修改,只需将修改过的文件签入(Check In)到主项目中即可。安华明锐科技公司 www.inquiry-tech.com
  • 13. CM的主要功能(续)六、报告(Report) 为保证项目按时完成,项目经理必须监控开发进程并对发生的问题迅速做出反应。 报告功能使项目经理能够随时了解项目进展情况;通过图形化的报告,开发的瓶颈可以一目了然地被发现安华明锐科技公司 www.inquiry-tech.com
  • 14. CM的主要功能(续)七、过程自动化(Process Automation) SCM工具使用事件触发机制(Event Trigger),即让一个事件触发另一个事件产生行为,来实现过程自动化安华明锐科技公司 www.inquiry-tech.com
  • 15. CM的主要功能(续)八、管理项目的整个生命周期 CM工具的使命“始于项目开发之初,终于产品淘汰之时”。SCM工具应预先提供典型的开发模式的模板,以减少用户的劳动;另一方面,也应支持用户自定义生命周期模式,以适应特殊开发需要。安华明锐科技公司 www.inquiry-tech.com
  • 16. CM的主要功能(续)九、与主流开发环境的集成 将版本控制功能与主流集成开发环境(IDE)集成,极大地方便了软件开发过程。从集成开发环境的角度看,版本控制是其一项新功能;从SCM工具的角度看,集成开发环境充当了沙箱的角色。安华明锐科技公司 www.inquiry-tech.com
  • 17. CM的使用工具软件配置管理的解决方案涉及面很广,将影响软件开发环境、软件过程模型、配置管理系统的使用者、软件产品的质量和用户的组织机构安华明锐科技公司 www.inquiry-tech.com
  • 18. CM 管理工具现在常用的软件配置管理工具主要分为三个级别: I. Rational ClearCase,CA CCC/Havest II. Merant PVCS lII Microsoft VSS,CVS ,SVN安华明锐科技公司 www.inquiry-tech.com
  • 19. VSS和CVS的比较Microsoft Visual Source Safe(VSS) 优点:操作简单,容易掌握;权限划分可到文件夹级,有Read、CheckOut&&CheckIn、Add/Rename/Delete、Destroy四种权限级别。 缺点:权限管理基于文件共享形式,只能从文件夹共享的权限设定对整个库文件夹的权限;有锁定的概念,不能进行并行处理安华明锐科技公司 www.inquiry-tech.com
  • 20. VSS和CVS的比较CVS 是 Concurrent Version System(并行版本系统)的缩写 SVN(subversion)是最新崛起的版本管理工具,是cvs的接替。目前,绝大多数开源软件都使用svn作为代码版本管理软件。 SVN是目前主流的配置管理工具安华明锐科技公司 www.inquiry-tech.com
  • 21. SVN介绍基本工作思路: 在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由系统统一管理这些源程序.这样,就好象只有一个人在修改文件一样.避免了冲突. 安华明锐科技公司 www.inquiry-tech.com
  • 22. SVN介绍 每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。 用户做的任何修改首先都是在本地进行,然后用 相关命令或者客户端进行提交,由 svn系统指令统一 修改.这样就可以做到跟踪文件变化,冲突控制等等.  安华明锐科技公司 www.inquiry-tech.com
  • 23. SVN介绍SVN是典型的 C/S 结构的软件,因此它也分成服务器端和客户端两部分。 安华明锐科技公司 www.inquiry-tech.com
  • 24. SVN介绍运行方式 svn服务器有2种运行方式:独立服务器和借助apache运行。 数据存储 svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。安华明锐科技公司 www.inquiry-tech.com
  • 25. SVN介绍(组网图)安华明锐科技公司 www.inquiry-tech.com
  • 26. SVN操作简介四种操作 import 导入 checkout 检出/导出 commit 提交 update 更新 安华明锐科技公司 www.inquiry-tech.com
  • 27. SVN操作简介 Server SandBox Local SandBox import - <-- P P P checkout P0 --> P1 P0 P0 update A0 --> A1 A0 A1+DeltaA0 commit A2 <-- A1 A2+DeltaA1 A1安华明锐科技公司 www.inquiry-tech.com
  • 28. SVN操作规范1. 每天早上执行一次update 2. 每次修改前,先update 3. 修改后,先update,再commit两次 4. 下午结束前,执行一次commit安华明锐科技公司 www.inquiry-tech.com