资源描述:
《如何实施配置管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、公司如何实施配置管理背呆:对于配置管理来说,配置库是保存公司资产的仓库,属于逻辑概念,而实现上,可以根据实际情况以及以往的习惯,选择适当的工具來辅助配置管理工作的实施。常见的用于支持配置管理的工具冇CVS、Subversion.VSS、starTcam.CC等等。基于费用以及维护工作鼠的考虑,优先考虑CVS和Subversiono区別:evs和svn冇廿较大的差別,1)evs在server上保存的是workspace的实际拷贝(意思是你能够在服务器上找到一个目录和木地工作空间的内容一模一样的),而svn在ser
2、ver上保存的是转换过的数据(与本地工作空间的内容完全不一样),2)evs的把版本信息和修改內容是通过与文件相关联的附属文件进行记录的,而svn是通过全库快照进行保存的,3)基于2的原因,evs中,各个文件都有自己的版本,而svn屮同一时间所有文件的版本都是一致的(单库),4)也基于2的原因,evs只能对文件进行版本控制,文件夹不在控制范围之内,而svn则能控制文件和文件夹,并且冇历史版木信息。5)evs上tags和branch的实现是通过在文件的附属文件中添加标记来标识某一个版本的内容范闱,而svn则是通过c
3、opy的方式实现。选择:对于实施配置管理来说,evs比较接近CMMI中版本和基线跟踪的概念,但是基于evs的第三方支持工具相对较少(也许未发现)和以往的开发习惯,还是决定使用svn来实现配置库。概念:对配胃•管理來说,需耍冇几个逻辑库的概念,1)开发库,用来保存开发过程中的不稳定源码;2)文档库,用于保存开发过程中不稳定的文档;3)产品库,用來保存阶段性发布的产物(源码和文档)。策略:我们会将这些不同的库集成在一个或多个实体库之中。对与svn來说,同一个库内的任意文件的修改都会导致整个库的版木好递增,因此需要通
4、过多库來隔离变化。分析:1)不同的项目需要在配置库中实现统一管理,2)各个项目的文件夹具冇相应的访问控制权限,3)可以通过http进行远程访问,4)ssl安全访问(可选),结合上述需求以及潜在需求分析,确定配置库需实现如下功能:1)文档库、开发库、产品库的版本不相互影响,2)默认权限:项目leader具有的权限(开发库:nv,文档库:rw,产品库:r),开发人员具有的权限(开发库:rw,文档库:r,产品库:none),技术总监具有的权限(开发库:rw,文档库:rw,产品库:rw),配置管理员具有的权限(管理权限
5、),3)能够实现基线的概念和实现基线跟踪。4)需要添加一个构建库的概念,用于给STE提供稳定的测试版本。实现:在一个svnserver中使用多库共存,分别为,开发库(dev),文档库(doc),产品库(pd),构建库(db),然后将多库的顶层H录映射为apache的一个虚拟忖录,通过apache的svnmodule进行访问权限控制(rw权限),通过ldap进行webdav的访问控制(access权限)。总体过程:1)项H启动:项H经理(PL)填写项目初始化申请书,提交配置管理员(CMO),2)CMO根据项H名称
6、、优先级、配置库类型、访问列表及权限要求,对配置进行初始化,填写回执返还PL,3)PLL开发团队验证访问权限,然后开始文档开发和源码开发工作,4)文档和源码经过严格评审后,建立各白相应的基线,5)该阶段的所有配置项都经过故后的基线化后,建立产品基线。6)发布版本。变更过程:对于小型公司来说,对所有库都进行严格的读写控制会带来较大的工作量,因此,对应的做法是只对文档库和产品库做变更控制,不为开发库做变更控制。文档基线化过程:文档开发人员完成文档开发后,由PL组织评审会议,确定无问题后,将文档上传文档库,为1.0版
7、本;出现变更并确定要变更后,文档开发人员修订文档,再次进行评审,通过后形成1」版木。后续的坏节进行变更迭代。到阶段性产品基线建立的时候,作为产品基线的一个元素纳入产品基线。源码基线化过程:源码开发人员完成模块或了系统开发后,通过运行白动构建(跑单元测试和集成测试)得出单元测试通过率和集成测试通过率,PL将这些信总提交测试经理(TM),TM到构建库(ftp或sharefolder)获取开发版本,组织预测试(QuickTest:运行基本功能测试套件),判断交付版本是否具冇足够质战支撑后续工作,若冇,进入该版木的系统
8、测试,否则,退出打回版木。通过测试退出标准freeze该项目的源码。产品基线化过程:当阶段性文档和项目源码都基线化后,PL提交产品基线化中请书,其中包括产品基线的名称以及该产品基线具有的所有元素的基线名称列表,CMO收到足够信息后,在产品库建立完成的产品基线。产品发布过程:PL提交产品发布申请书(产品基线的名称,产品基线中需交付的元素名称列表),CM0获取足够信息后,对待发布元素进行打