小公司如何实施配置管理(一)
背景:对于配置管理来说,配置库是保存公司资产的仓库,属于逻辑概念,而实现上,可以根据实际情况以及以往的习惯,选择适当的工具来辅助配置管理工作的实施。常见的用于支持配置管理的工具有CVS、Subversion、VSS、starTeam、CC等等。基于费用以及维护工作量的考虑,优先考虑CVS和Subversion。
区别:cvs 和svn有着较大的差别,
1)cvs在server上保存的是workspace的实际拷贝(意思是你能够在服务器上找到一个目录和本地工作空间的内容一 模一样的),而svn在server上保存的是转换过的数据(与本地工作空间的内容完全不一样),
2)cvs的把版本信息和修改内容是通过与文件相关联的附属文件进行记录的,而svn是通过全库快照进行保存的,
3)基于2的原因,cvs中,各个文件都有自己的版本,而svn中同一时间所有文件的版本都是一致的(单库),
4)也基于2的原因,cvs只能对文件进行版本控制,文件夹不在控制范围之内,而svn则能控制文件和文件夹,并且有历史版本信息。
5) cvs上tags和branch的实现是通过在文件的附属文件中添加标记来标识某一个版本的内容范围,而svn则是通过copy的方式实现。
选择:对于实施配置管理来说,cvs比较接近CMMI中版本和基线跟踪的概念,但是基于cvs的第三方支持工具相对较少(也许未发现)和以往的开发习惯,还是决定使用svn来实现配置库。
概念:对配置管理来说,需要有几个逻辑库的概念,1)开发库,用来保存开发过程中的不稳定源码;2)文档库,用于保存开发过程中不稳定的文档;3)产品库,用来保存阶段性发布的产物(源码和文档)。
策略:我们会将这些不同的库集成在一个或多个实体库之中。对与svn来说,同一个库内的任意文件的修改都会导致整个库的版本号递增,因此需要通过多库来隔离变化。
分析:1) 不同的项目需要在配置库中实现统一管理,2)各个项目的文件夹具有相应的访问控制权限,3)可以通过http进行远程访问,4)ssl安全访问(可选), 结合上述需求以及潜在需求分析,确定配置库需实现如下功能:1)文档库、开发库、产品库的版本不相互影响,2)默认权限:项目leader具有的权限(开发库:rw,文档库:rw,产品库:r),开发人员具有的权限(开发库:rw,文档库:r,产品库:none),技术总监具有的权限(开发库:rw,文档库:rw,产品库:rw),配置管理员具有的权限(管理权限),3)能够实现基线的概念和实现基线跟踪。4)需要添加一个构建库的概念,用于给STE提供稳定的测试版本。
实现:在一个svnserver中使用多库共存,分别为,开发库(dev),文档库(doc),产品库(pd),构建库(db),然后将多库的顶层目录映射为apache的一个虚拟目录,通过apache的svn module进行访问权限控制(rw权限),通过LDAP进行webdav的访问控制(access权限)。
总体过程:1) 项目启动:项目经理(PM)填写项目初始化申请书,提交配置管理员(CMO),2)CMO根据项目名称、优先级、配置库类型、访问列表及权限要求,对配置进行初始化,填写回执返还PM,3)PM与开发团队验证访问权限,然后开始文档开发和源码开发工作,4)文档和源码经过严格评审后,建立各自相应的基线, 5)该阶段的所有配置项都经过最后的基线化后,建立产品基线。6)发布版本。
变更过程:对于小型公司来说,对所有库都进行严格的读写控制会带来较大的工作量,因此,对应的做法是只对文档库和产品库做变更控制,不为开发库做变更控制。
文档基线化过程:文档开发人员完成文档开发后,由PM组织评审会议,确定无问题后,将文档上传文档库,为1.0版本;出现变更并确定要变更后,文档开发人员修订文档,再次进行评审,通过后形成1.1版本。后续的环节进行变更迭代。到阶段性产品基线建立的时候,作为产品基线的一个元素纳入产品基线。
源码基线化过程:源码开发人员完成模块或子系统开发后,通过运行自动构建(跑单元测试和集成测试)得出单元测试通过率和集成测试通过率,PM将这些信息提交测试经理(TM),TM到构建库(ftp或share folder)获取开发版本,组织预测试(Quick Test:运行基本功能测试套件),判断交付版本是否具有足够质量支撑后续工作,若有,进入该版本的系统测试,否则,退出打回版本。通过测试退出标准后,freeze该项目的源码。
产品基线化过程:当阶段性文档和项目源码都基线化后,PM提交产品基线化申请书,其中包括产品基线的名称以及该产品基线具有的所有元素的基线名称列表,CMO收到足够信息后,在产品库建立完成的产品基线。
产品发布过程:PM提交产品发布申请书(产品基线的名称,产品基线中需交付的元素名称列表),CMO获取足够信息后,对待发布元素进行打包,在发布申请书上填写处理结果,待PM确认后,完成产品内部交付过程。
自动构建过程:通过引入自动构建工具,监控开发库的所有变化,每当开发库有修改,都会触发自动构建,完成后以邮件形式在将修改的文件列表和修改者的信息发给PM和QA和TM,进行三方源码监控,保证源码的有效性和正确性。
以上是个人的一些关于如何实施配置管理过程,以及配置管理与关联过程的交互方面的积累,一人计短,难免会有bug的出现,欢迎大家共同讨论。
小公司如何实施配置管理(二)
在上一篇《小公司如何实施配置管理(一)》中,我们主要阐述了小公司如何实施配置管理的设计方案,包括配置管理的一些基本概念、配置管理工具的对比、配置管理的需求、以及部分配置管理的子过程设计,本篇的主要目标是结合《小公司如何实施配置管理(一)》中的设计方案,初步给出实施方案。
结构:配置库分为开发库、文档库、产品库、构建库,这四个库分别是独立的单库,版本不相互影响。上述四个库的第一层目录均为项目全称的缩写字母(lowcase)。例如,项目一在开发库下的相对路径为:/dev/pro1,在pro1下为该项目的具体源码结构树;项目一在文档库下的相对路径为: /doc/pro1,在pro1下为该项目的文档树结构(包括且不限于项目立项、项目结项、项目计划、项目监控、风险管理、配置管理...),相应的文档放入到相应的文件夹中;项目一在构建库下的相对路径为:/db/pro1,在pro1下为该项目不同时期的构建版本(格式:项目缩写_阶段_主版本.次版本.修订版本-YYYYMMDD.后缀名);项目一在产品库下的相对路径为:/pd/pro1,在pro1下为该项目不同时期的基线发布,如1.0基线包括的所有发布内容(交付文档和源码)统一保存在/pd/pro1/1.0/路径中。
实现:采用ubuntu + apache + subversion + openldap, apache实现http或https方式通过webdav协议浏览svn目录结构,openldap实现web的安全访问验证。
总体步骤:1.安装Ubuntu基系统,2.更新基系统所有组件,3.安装apache2、subversion、libapache2-svn、 slapd、ldap-utils,4.建立ldap目录结构(group & user),5.创建配置库结构,6.整合apache2和subversion(权限和虚拟目录),7.整合apache2和ldap(web访问验证),8.域名绑定。详细的配置过程将会在后续的文章中进行阐述。
注意:由于subversion对URL是有规则截取的,规则:只使用域名或IP地址后的内容作为配置库的寻址路径,因此,只能使用域名直接映射IP地址的方式,而不能使用域名映射为IP/context的方式。
到此我们已经把基于配置库的配置管理框架搭建起来,但是工具只是用来辅助管理的,重要的还是过程,在配置管理中,变更管理、配置审计、状态统计等等支撑过程,还没有完全的确定下来,没关系,事情是不能一蹴而就的,在后续的篇章中,我们会逐个阐述,分析和交流这些过程实施的重点和难点。
以上是个人的一些关于如何实施配置管理过程,以及配置管理与关联过程的交互方面的积累,一人计短,难免会有bug的出现,欢迎大家共同讨论。
分享到:
相关推荐
软件配置管理详细规定 软件配置管理是软件生命周期中的一种重要...通过制定配置标准、实施配置步骤、实施日常工作和使用软件配置管理工具,可以确保软件配置管理工作的顺利进行,并提高组织的软件使用效率和安全性。
小项目实施软件配置管理的重要性与方法 在当前的软件行业中,软件能力成熟度模型(CMM)已经成为评估和提升软件开发过程质量的标准。虽然CMM最初设计时主要针对大型项目和组织,但在小项目和小型组织中应用CMM也日...
在本文中,我们将对配置管理的概念、 importance 和实践进行详细的介绍,并结合学工请假系统项目的配置管理过程设计及实施进行实践分析。 配置管理的概念 配置管理是软件开发过程中对软件配置项的 identification...
配置管理员需要确定本项目的配置管理软件,例如Microsoft 公 司 的 VisualSourceSafe 或者Rationa 公司的 ClearCase。同时,需要确定计算机资源,包括内存、外存、CPU 等。 三、配置项计划 配置管理员需要标识配置...
需要企业根据自身特点和项目情况合理的进行人员的配置,协调项目经理、系统分析员、系统设计员、程序员、测试员以及实施员之间的岗位、职责与权限,保证项目在开发过程中的可靠性、连续性和一致性,既符合软件工程的...
配置管理的工具是指用于实施配置管理的软件工具,例如 Version Control System(VCS)、Configuration Management System(CMS)等。这些工具可以帮助软件项目团队更好地实施配置管理,例如自动化的版本控制、变更...
以下将对配置管理进行详尽的解释,并结合“IT公司软件配置管理.ppt”可能涵盖的内容展开讨论。 首先,我们要明确配置管理的目标:维护软件产品在开发过程中的完整性和一致性,以确保每次修改都能被追踪,同时减少...
* 配置管理软件:例如采用 Microsoft 公司的 TFS 或者 IBM 公司的 ClearCase * 配置管理硬件:根据配置管理软件的要求,确定计算机资源(考虑内存、外存、CPU 等) 四、权限分配 * 角色:项目经理、配置管理员、...
项目配置管理计划的实施需要相关人权责的明确,包括项目经理、配置控制委员会、配置管理员、程序库管理员和开发人员等。每个角色都有其明确的责任和权利,需要严格执行配置管理计划,以确保项目的成功。
说明了实施配置管理活动所需的培训需求、资源规划和软件工具选择,以保障团队具备必要的技能和资源,顺利完成配置管理任务。 #### 六、分包商和厂商软件控制 阐述了对外部供应商和服务提供商的软件控制策略,包括...
《酒店管理系统配置管理计划》是一份详尽的文档,其主旨在于确保酒店管理系统开发项目能够有序、有效地进行,并最终交付符合客户需求的高质量产品。计划的目标是通过规范配置管理活动,来维护开发过程的稳定性,保证...
8. 持续改进:问题集中可能会探讨如何根据项目实施情况不断改进配置管理流程,提升配置管理的效率和效果。 由于提供的文件内容经过OCR扫描识别,可能存在一些识别错误或漏识,但从中我们可以得知,文档内容与CM配置...
这是2011年一个经历的项目总结出的项目配置管理实施方案。对初次接触软件配置管理的人员有一定的指导作用,但是需要从事配置管理人员有一定的项目管理知识。
软件配置管理是软件工程中至关重要的一环,主要目的是在软件开发和维护过程中有效控制和跟踪软件的变化,确保软件质量并提高生产效率。中南大学软件学院的复习重点中,详细阐述了软件配置管理的核心概念、目标、关键...
2. 配置管理的基本要求:规定了软件配置管理的组织、职责以及实施配置管理时的基本原则。 3. 配置管理活动:包括配置识别、配置控制、配置状态统计、配置审计等几个核心环节,文档应详细描述这些活动的步骤和要求。...
### 配置管理基础知识 #### 一、引言 配置管理是软件开发过程中不可或缺的一部分,其目的是为了确保软件产品在...通过实施有效的配置管理流程和技术,可以极大地提高软件开发的效率和质量,减少潜在的风险和问题。
配置管理计划是项目实施的关键组成部分,它涉及到软件研发项目的各个阶段,从计划、开发到维护。计划阶段,项目经理需制定整体项目计划,随后配置管理计划的制定至关重要,因为没有配置管理计划,项目可能会陷入混乱...
在实施配置管理时,需要建立配置管理系统,这包括存储配置项的介质、运行的程序和工具,以及变更请求的记录和管理。此外,每个配置项应有唯一的标识符,明确其重要特征、纳入配置管理的时间点以及负责人,确保责任...
敏捷配置管理实施是一种将敏捷开发方法与传统的配置管理实践相结合的策略,旨在提高软件开发团队的效率、灵活性和产品质量。在传统的瀑布模型中,配置管理往往是在项目后期才被重视,而在敏捷环境中,配置管理需要从...
根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍ITIL五大核心流程图,具体涉及突发事件管理流程、问题管理流程、变更管理流程、发布管理流程和配置管理流程。 ### 一、突发事件管理流程 #### 流程...