1、第5章 软件项目配置管理,什么是软件配置项?软件配置项主要有几类?分别包含哪些内容? 基线的概念是什么? 在实施阶段配置管理主要包括哪些活动? 目前配置管理工具分为哪几个级别?,内容提要,5.2 软件项目配置管理过程,5.3 配置管理组织与实施,5.4 配置管理实例介绍,5.5 本章小结,5.1 软件项目配置管理概念,5.1 软件项目配置管理概念,配置的概念来自硬件,例如,计算机系统的CPU、磁盘以及外设配置等等 配置管理(Configuration management)是指用于控制系统一系列变化的学科。 通过一系列技术,方法和手段来维护产品的历史,鉴别和定位产品独有的版本,并在产品的开发和
2、发布阶段控制变化 通过有序管理和减少重复性工作,配置管理保证了生产的质量和效率。,软件领域引入配置的原因,随着计算机软件的发展,软件开发已由最初的“程序设计阶段”“软件系统阶段”“软件工程阶段”。 软件的复杂性日益增大,软件项目开发中可能会遇到如下问题: 开发人员使用错误的版本修改程序 开发人员未经授权修改代码或文档,或修改的结果不能及时反映到各个相关部分;,5.1 软件项目配置管理概念,软件领域引入配置的原因-2,人员流动,交接工作不彻底造成软件关键部件遗失; 已修复的Bug在新版本中出现 找不到某个文件的历史版本; 无法重新编译某个历史版本,使维护工作十分困难; 因协同开发或者异地开发,版
3、本变更混乱导致整个项目失败; ,5.1 软件项目配置管理概念,软件领域引入配置的原因-3,随着软件团队人员的增加,软件版本不断变化,开发时间的紧迫以及多平台开发环境的使用,使得软件开发面临越来越多的问题。 解决这些问题的唯一途径是加强管理,配置管理是有效管理变更的手段,它是软件开发管理的核心。 软件配置管理是软件项目运作的一个支撑平台,这种支撑贯穿着几乎软件的整个生命周期。人们越来越重视软件配置的管理工作。,5.1 软件项目配置管理概念,软件配置管理作为支撑平台,5.1 软件项目配置管理概念,实例:软件项目开发管理的新需求,你在一家小公司做软件工程师,开始的时候,你只有一个人,配了2个助手。你
4、们研究了一种算法(例如:图象压缩、数据加密等),编写了一个实现模块。有一天老板看到了你的演示,认为很有市场潜力,可以结合进公司正在给某行业用户正在准备开发的系统中,成为该系统的核心技术或一个别人没有的卖点。 下一周,你的队伍增加到14(你的老板准备就此豪赌一把了),与你3个人的小组不同的是,公司从其他部门为你配备了系统分析师,还有文档编制员、测试员。你的核心模块已经被大量的用户功能所包装,成为一个行业应用系统,并开始给用户试用,这是你的系统的第一版。,5.1 软件项目配置管理概念,实例:软件项目开发管理的新需求-1,3个月后,公司决定把系统升级到第二版,除增加了许多新的功能外,公司决定支持多平
5、台,同时,为了提高系统的性能和效率,准备采用第三方厂家的中间件,取代自己做的接口。第一版的缺陷修改,也要反映到第二版中。 第2版经过2个多月的开发,最终推向了市场。公司的这个产品不但被用户所欢迎,也被一家大公司所看中(就像IBM收购了Lotus和Rational、Informix、Visio一样),你们的产品,正好可以填补这家大公司产品线的空缺,你所在的公司被这家公司买去了。,5.1 软件项目配置管理概念,实例:软件项目开发管理的新需求-2,公司为你的项目组派来了产品经理、项目经理。公司决定这个产品的测试,由公司总部独立的测试部门承担。同时,公司决定把项目组增加到50人,其中有20多人并不在你
6、所在的城市。在新公司里,产品管理、项目管理、测试、质量等等,都与你过去的环境和做法不同,特别不同的是,公司准备开发的第3版系统与公司原有的产品要进行融合,使他们看上去是一家出来的不同的兄弟和姐妹。 与软件的第1版、第2版相比,你的项目管理有什么不同?,5.1 软件项目配置管理概念,实例:软件项目开发管理的新需求-3,随着这个产品的演变,项目发生了四个变化: 系统的复杂性发生了很大变化;用于开发该系统的项目环境发生了很大变化; 在不同的项目生命周期内,项目控制本身的要求和力度发生了很大变化; 由于组织的变化,管理流程、人员、方式发生了很大变化。 前二类变化要求项目的组织和管理适应系统扩展的需要,
7、后二种变化则要求项目管理具有适应性和灵活性。,5.1 软件项目配置管理概念,软件配置管理概念,软件配置管理(Software Configuration Management,SCM)是对产品进行标志、存储和控制,以维护其完整性、可追溯性以及正确性,它为软件开发提供了一套管理办法和活动原则。 SCM提供了结构化的,有序化的,产品化的管理软件工程的方法。它涵盖了软件生命周期的所有领域并影响所有数据和过程。,5.1 软件项目配置管理概念,软件配置管理的目的,它是一种标识、组织和控制修改的技术,目的是 记录软件产品的演化过程 确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置。 最终保证
8、软件产品的完整性、一致性、追朔性、可控性 使错误达到最小并最有效地提高生产效率。,5.1 软件项目配置管理概念,软件配置管理的目标,SCM活动的目标是为了: 标识变更; 控制变更; 确保变更正确地实现; 向其他有关的人员报告变更。 在软件工程过程中产生的所有信息项(文档、报告、程序、表格、数据)构成了软件配置。,5.1 软件项目配置管理概念,软件配置管理的主要功能,版本管理 变更管理 其它(过程管理),5.1 软件项目配置管理概念,软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,支持和控制着整个软件生命周期。 若要有效地实施软件配置管理,除了培养软件开发者的管理意识外,更重要的是使
9、用优秀的软件配置管理工具。,软件配置管理的三个应用层次(技术),SCM从应用层次上可以从低到高分为三级: 版本控制:主要应用于个人独立开发或小组开发,它可以控制任何文件的版本、实现分支和归并功能、进行文本比较、标记注释和版本报告信息,主要工具有MS的Visual SourceSafe。 以开发者为中心(变更需求管理):主要应用于部门级开发,它可用于软件维护、不断增加的开发任务、并行开发、QA及测试,它面向大型团队、利于交流、能最大限度地利用人力资源,主要工具为Rational ClearCase。 过程驱动:主要应用于企业级开发,着重解决新的工具引入、IT审核、管理报告、复杂的生命周期、应用工
10、具包、集成解决方案、资料库等问题,实现真正规范的团队开发。,5.1 软件项目配置管理概念,配置管理给项目组带来的好处,节约费用 缩短开发周期 、减少施工费用 有利于知识库的建立 代码对象库、业务及经验库 规范管理 量化工作量考核、规范测试 加强协调与沟通实现高效的团队沟通,使工作成果及时共享,5.1 软件项目配置管理概念,配置管理给项目组带来的好处-2,造成项目周期拖延或费用超过预算的原因很多,但没有好的阶段和里程碑划分无疑是其中最重要的原因。,5.1 软件项目配置管理概念,内容提要,5.2 软件项目配置管理过程,5.3 配置管理组织与实施,5.4 配置管理实例介绍,5.5 本章小结,5.1
11、软件项目配置管理概念,5.2 软件项目配置管理过程,配置管理过程围绕配置管理的5项活动进行,软件项目配置的基本活动,配置管理过程 配置项标识、跟踪 配置管理环境建立 基线变更管理 基线审核 配置状态统计 配置管理计划,配置项标识、跟踪配置项的概念,软件配置项(Software Configuration Item,SCI)凡是纳入配置管理范畴的工作成果统称为配置项。 以下包含了所有在软件过程中产生的信息的工作成果总称为软件配置项: 计算机程序(源代码和可执行程序) 描述计算机程序的文档(针对技术开发者和用户) 数据(包含在程序内部或外部)。 项目管理的有关文件、信息记录等。 软件配置管理的对象
12、就是软件配置项(SCI)。,5.2 软件项目配置管理过程,配置项标识、跟踪软件配置项涵盖的范围,系统规格说明 软件项目实施计划 软件需求说明 可执行的原型 初步的用户手册 设计规格说明 源代码清单,测试计划和过程、测试用例和测试结果记录操作和安装手册可执行程序(可执行程序模块、连接模块)数据库描述(模式和文件结构、初始内容)正式的用户手册维护文档(软件问题报告、维护请求、工程变更次序),5.2 软件项目配置管理过程,配置项标识、跟踪CMM定义的配置管理对象,CMM(Software Capability Maturity Model,软件能力成熟度模型)把配置管理对象,称之为软件工作产品,在C
13、MM配置管理定义中,可作为配置项/单元标识的软件工作产品实例有: 与过程相关的文档(例如:计划、标准或规程) 软件需求 软件设计,软件代码单元 软件测试规程 为软件测试活动建立的软件系统 交付给客户或最终用户的软件系统 编译程序 其他支持工具,5.2 软件项目配置管理过程,配置项标识、跟踪软件配置项的类型及属性,配置项主要有两大类: 属于产品组成部分的工作成果,即软件产品,例如源代码、需求文档、设计文档、测试用例等等。 在管理过程中产生的文档,例如各种计划、状态报告等等,这些文档虽然不是产品的组成部分,但是值得保存。 每个配置项的主要属性有:名称、标识符、文件状态、版本、作者、日期等。 所有配
14、置项都被保存在配置库里,确保不会混淆、丢失;配置项及其历史记录反映了软件的演化过程。,5.2 软件项目配置管理过程,配置项标识、跟踪软件配置项的状态变迁,配置项的状态有三种:“草稿”(Draft)、“正式发布”(Released)和“正在修改”(Changing)。 配置项刚建立时其状态为“草稿”;配置项通过评审(或审批)后,其状态变为“正式发布”;此后若更改配置项,必须依照“变更控制流程”执行,其状态变为“正在修改”。当配置项修改完毕并重新通过评审(或审批)时,其状态又变为“正式发布”,如此循环。,5.1 软件项目配置管理概念,配置项标识、跟踪软件部件分解图,配置标识就是查询、识别和确定配置
15、管理对象。,配置管理对象呈现为一种层次结构,因此,为了标识配置管理的对象,我们需要对软件系统进行分解。,5.2 软件项目配置管理过程,配置项标识、跟踪配置项标识的主要任务,将软件项目中需要进行控制的部分拆分成软件配置项。 对所有配置项都应按照相关规定建立唯一的标识。 建立相互间的对应关系,进行系统的跟踪和版本控制,以确保项目过程中的产品与需求和规格的要求相一致。 在引入软件配置管理工具进行管理后,这些配置项都应以一定的目录结构保存在配置库中。 最终可根据要求将配置项组合生成适用于不同应用环境的正确的软件产品评估版本。,5.2 软件项目配置管理过程,配置项标识、跟踪配置项的拆分例子,设计规格说明
16、书数据设计描述总体结构设计描述模块设计描述界面设计描述 界面设计1 界面设计2 对象描述,(某医疗网站)需求规格SCI 辅助功能.doc 性能.doc 产品目录.doc 医务管理.doc 医疗专业区.doc 首页.doc,5.2 软件项目配置管理过程,配置项标识、跟踪配置项的标识约定举例,配置项被唯一的标识,5.2 软件项目配置管理过程,配置项标识、跟踪配置项的跟踪,建立相互间的对应关系,5.2 软件项目配置管理过程,最基本的配置项管理文档,软件产品比较容易标识,而文档相对比较复杂。 开发文档文档在软件开发人员、软件管理人员、维护人员、用户以及计算机之间,起到了多种的桥梁作用。软件开发人员在软
17、件生命的各个阶段中,以文档作为前阶段工作成果的体现和后阶段工作的依据,这个作用是显而易见的。 管理文档或项目文档软件开发过程中软件开发人员需制定一些工作计划或工作报告,这些计划和报告都要提供给管理人员,并得到必要的支持。管理人员则可通过这些文档了解软件开发项目安排、进度、资源使用和成果等。 用户文档软件开发人员需为用户了解软件的使用、操作和维护提供详细的资料。,5.2 软件项目配置管理过程,文档分类,5.2 软件项目配置管理过程,文档,用户文档,用户手册 操作手册 维护修改建议 软件需求(规格)说明书,开发文档,软件需求(规格)说明书 数据要求说明书 概要设计说明书 详细设计说明书 可行性研究
18、报告 项目开发计划,管理文档,项目开发计划 测试计划 测试报告 开发进度月报 开发总结报告,文档的生成阶段,5.2 软件项目配置管理过程,文档的作用,5.2 软件项目配置管理过程,配置管理环境建立,建立配置管理库,简称配置库。软件配置管理库是用来存储所有基线配置项及相关文件的等内容的系统,是在软件产品的整个生存期中建立和维护软件产品完整性的主要手段。 开发库 开发周期的某个阶段,存放与该阶段工作有关系的信息;开发库也称为工作空间 受控库 开发周期的某个阶段结束时,存放做为该阶段产品及其相关的信息,配置管理对其中的信息进行管理,也称配置库 产品库 存放最终产品的软件库,5.2 软件项目配置管理过
19、程,配置管理环境建立受控操作,配置库是集中控制的文件库,提供对所存储文件的版本控制。 从受控库导出的文件自动被锁定直到文件重新被导入,一个版本号自动与新版本文件相关联。 配置库中文件不能更改,任何更改都被视为创建了一个新版本文件。 文件的所有配置管理信息和文件的内容都存储在配置库中。,5.2 软件项目配置管理过程,配置管理环境建立配置库,5.2 软件项目配置管理过程,版本与版本控制,在软件开发过程中,由于软件开发所固有的特征,可能会形成众多的软件版本,而且我们并不能保证不出现错误的修改,而这样的一个困难局面却又非常现实地摆在项目开发管理者的面前,他/她该如何有效地解决这些问题,具体地说就是如下
20、一些问题: 怎样对研发项目进行整体管理; 项目开发小组的成员之间如何以一种有效的机制进行协调; 如何进行对小组成员各自承担的子项目的统一管理; 如何对研发小组各成员所作的修改进行统一汇总; 如何保留修改的轨迹,以便撤销错误的改动; 对在研发过程中形成的软件的各个版本如何进行标识,管理及差异识辨等等。 综上所述,我们须要引进一种管理机制版本管理机制,而且是广义上的版本管理,它不仅需要对源代码的版本进行管理,而且还要对整个项目进行管理。,5.2 软件项目配置管理过程,版本与版本控制概念、目的,版本与版本控制软件的每一个版本都是源代码、文档、数据以及相关的系统环境的一个收集,且各个版本都可能由不同的
21、变种组成。 版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。 版本控制是SCM的基础,它管理并保护开发者的软件资源。使混乱的开发状态变得有序!,5.2 软件项目配置管理过程,版本与版本控制版本控制规则,处于“草稿”状态的配置项的版本号格式为:0.YZ YZ数字范围为01-99。 随着草稿的不断完善,“YZ”的取值应递增。“YZ”的初值和增幅由用户自己把握。 处于“正式发布”状态的配置项的版本号格式为:X.Y X为主版本号,取值范围为1-9。Y为次版本号,取值范围为1-9。 配置项第一次“正式发布”时,版本号为1.0。
22、如果配置项的版本升级幅度比较小,一般只增大Y值,X值保持不变。只有当配置项版本升级幅度比较大时,才允许增大X值。 处于“正在修改”状态的配置项的版本号格式为:X.YZ 配置项正在修改时,一般只增大Z值,X.Y值保持不变。 当配置项修改完毕,状态重新成为“正式发布”时,将Z值设置为0,增加X.Y值。,5.2 软件项目配置管理过程,版本与版本控制版本图,版本控制管理在软件工程过程中建立起配置对象的不同版本。使用演变图来表示系统的不同版本。 版本管理可以把一些属性结合到各个软件版本上。,5.2 软件项目配置管理过程,版本与版本控制配置项的版本,版本控制工具 Rational ClearCase Mi
23、crosoft Visual SourceSafe Microsoft Project 2000 Sybase ObjectCycle Manager,5.2 软件项目配置管理过程,变更管理,是团队开发过程中的通讯基础 可以了解谁改了什么、为什么 正确及时的项目状态报告 最大限度的利用你的工程师资源 利于团队交流 软件工程过程中某一阶段的变更,均要引起软件配置的变更,这种变更必须严格加以控制和管理,保持修改信息。 变更控制包括建立控制点和建立报告与审查制度。,5.2 软件项目配置管理过程,变更管理变更控制过程,5.2 软件项目配置管理过程,加强团队间的沟通,真正掌握开发状态!,变更管理变更的两
24、种情况,为改正小错误需要的变更。 为了增加或者删掉某些功能、或者为了改变完成某个功能的方法而需要的变更。 如果变更的代价比较小且对软件系统其它部分没有影响,或影响很小,通常应批准这个变更。 如果变更的代价比较高,或者影响比较大,则必须权衡利弊,以决定是否进行这种变更。 如果同意这种变更,需要进一步确定由谁来支付变更所需要的费用。如果是用户要求的变更,则用户应支付这笔费用;否则,必须完成某种成本效益分析,以确定是否值得做这种变更。,5.2 软件项目配置管理过程,基线变更管理基线的概念,基线(Baseline)是软件生存期中各开发阶段末尾的特定点,又称里程碑。 基线的作用是把各阶段工作的划分更加明
25、确化,以便于检验和肯定阶段成果。 基线由一组配置项组成,一个(些)配置项形成并通过审核,即形成基线,这些配置项构成了一个相对稳定的逻辑实体。基线中的配置项被“冻结”了,不能再被随意修改。 基线标志开发过程一个阶段的结束和里程碑(Milestone),一个产品可以有多个基线,也可以只有一个基线。,5.2 软件项目配置管理过程,基线变更管理软件项目形成的基线,基线的主要属性有:名称、标识符、版本、日期等。 通常将交付给客户的基线称为一个“Release”;为内部开发用的基线则称为一个“Build”。,5.2 软件项目配置管理过程,基线变更管理基线变更系统,项目基线(配置项)可能由于种种原因会发生变
26、更,如:客户需求变化、进度变更、成本变更、产品环境变化等。 基线修改(变更)应受到控制,变更管理也称为配置控制,这种变化要经SCCB授权,按正式的程序进行控制并记录基线修改的过程。,5.2 软件项目配置管理过程,配置管理委员会,配置管理委员会 配置管理委员会(Software Configuration Control Board,SCCB)是实现有序、及时和正确处理软件配置项的基本机制。 主要负责评估变更 批准变更申请 在生存期内规范变更申请流程 对变更进行反馈 与项目管理层沟通,对于一个新的变更申请,首先应该依据配置项和基线,将相关的配置项分配给适当的SCCB,SCCB根据技术的、逻辑的、
27、策略的、经济的和组织的角度,以及基线的层次,评估基线的变更对项目的影响,并决定是否变更。,5.2 软件项目配置管理过程,基线变更管理变更请求,5.2 软件项目配置管理过程,基线变更管理变更评估,5.2 软件项目配置管理过程,基线变更管理变更批准/拒绝,5.2 软件项目配置管理过程,基线变更管理变更实现,5.2 软件项目配置管理过程,配置审核,配置审核作为变更控制的补充手段,目的是为了确保某一变更请求已被确切实现。 配置审核主要包括两方面的内容: 配置管理活动审核 确保项目组成员的所有配置管理活动,遵循已批准的软件配置管理方针和规程 基线审核 保证基线的配置项(SCI)正确的构造和实现,并满足功
28、能要求,5.2 软件项目配置管理过程,配置审核功能审核、物理审核,配置审核有过程审核、功能审核、物理审核和质量系统审核四种形式。 功能配置审核 (Functional Configuration Audit, FCA):通过对软件产品的功能和性能的审核,以及与需求说明的一致性来对软件制品的评估。 由项目经理提出请求 由软件质量工程师计划并实施 对评审过程和标准有专门的文档规定,5.2 软件项目配置管理过程,配置审核功能审核,功能审核的目标是核实软件配置项的实际性能是否符合它的需求。以下各项说明从配置管理角度来看支持功能审核所需要做的工作。 准备一个验证表,列出所有功能方面的需求,而且对每个需求
29、都引用测试过程、测试行为的实例(时间戳或其他测试实例标识符)、相应的测试结果和/或完整记录需求验证情况的分析和/或演示报告。 核实是否已正确实施了所有变更请求。 核实是否已对软件正确应用了所有更改。 文档差异、建立纠正操作和完成日期。,5.2 软件项目配置管理过程,配置审核物理审核,物理配置审核(Physical Configuration Audit,PCA):主要用来验证软件的功能是否与其设计一致,是否可以发布。 物理配置评审跟随在功能配置评审之后; 由项目经理提出请求; 由软件质量工程师和项目配置经理计划和实施; 对于物理配置评审过程和标准,有专门的文档规定; 在实际操作过程中,一般认为
30、审核是一种事后活动,很容易被忽视。但是“事后”也是有相对性的,在项目初期审核发现的问题,对项目后期工作总是有指导和参考价值的。,5.2 软件项目配置管理过程,配置状态统计,检查配置管理系统以及内容,检测配置项变更历史的过程称为配置状态统计。 检查配置管理系统以及内容 检测配置项变更历史 配置状态统计的范围可因项目而不同。IEEE标准828-1998规定用于计算配置状态的最小数据集包括: 被批准的配置项 配置项的所有请求的变化状态 配置项所有被批准的变更实现状态,5.2 软件项目配置管理过程,评估一个配置系统状态,变更请求的数量 变更请求的历史报告 存储量的增长 配置管理系统以及SCCB在运作中
31、发生异常的次数等等,5.2 软件项目配置管理过程,配置管理计划,配置管理计划过程就是确定软件配置管理的解决方案。 配置管理计划由配置管理者负责制定,是软件配置管理规划过程的产品,并且在整个软件项目开发过程中作为配置管理活动的依据进行使用和维护。 流程通常是首先由项目经理确定配置管理者,配置管理者通过参与项目规划过程,确定配置管理的策略,并制定详细的配置管理计划,交配置管理委员会审核,配置管理委员会通过配置管理计划后交项目经理批准,发布实施。 配置管理计划首先的一个关键任务是确定要控制哪些文档。,5.2 软件项目配置管理过程,内容提要,5.2 软件项目配置管理过程,5.3 配置管理组织与实施,5
32、.4 配置管理实例介绍,5.5 本章小结,5.1 软件项目配置管理概念,5.3 配置管理组织与实施,配置管理组织的角色 项目经理(Project Manager,PM) 配置控制委员会(Configuration Control Board,CCB) 配置管理员(Configuration Management Officer,CMO) 系统集成员(System Integration Officer,SIO) 开发人员(Developer,DEV),角色的职责 肩负对项目成功负责的重要职责 评估开发团队当前配置管理现状 定义实施的范围 计划资源要素,配置管理组织角色具体职责,5.3 配置管理
33、组织与实施,配置管理组织与实施主要活动,确定初始基线由SCCB确定研发活动的初始基线; 配置库管理配置人员根据软件配置管理规划设立配置库和工作空间,为执行软件配置管理做好准备,并定期执行备份和清理工作; 授权开发开发人员按照统一的软件配置管理策略,根据获得授权的资源进行项目研发工作; 集成系统集成人员按照项目进度集成组内开发人员的工作成果,构建系统,推进版本演进; 管理基线SCCB根据项目的进展情况,并适时地建立基线,批准基线变更,保证开发和维护工作有序地进行; 产品开发系统集成人员进行产品集成,由SCCB批准,进行发布。,5.3 配置管理组织与实施,配置管理组织与实施配置管理工具的功能,SC
34、M首先是一个方法,其次是一个过程,第三才是一系列的工具。 工具应具有的功能: 版本管理 变更管理 问题追踪 建立管理 状态统计(查询和报告) 配置审核 访问控制和安全控制,5.3 配置管理组织与实施,常用配置管理的工具 ClearCase&ClearQuest PVCS Harvest CVS VSS,配置管理组织与实施配置管理工具的级别,常用配置管理工具 分为3个级别 第一个级别 版本控制工具,是入门级的工具。例如,CVS、Visual Source Safe。 第二个级别 项目级配置管理工具,适合管理中小型的项目,在版本管理的基础上增加变更控制、状态统计的功能。例如ClearCase、Cl
35、earQuest 、PVCS。 第三个级别 企业级配置管理工具,在实现传统意义的配置管理的基础上又具有比较强的过程管理功能。例如, Harvest,5.3 配置管理组织与实施,配置管理组织与实施配置管理工具选择,除了配置管理工具本身的功能和特性外,经费也是一个考虑的主要因素。 选择开放源代码的自由软件 还是选择商业软件 如果选择商业软件,选择哪个档次的商业软件都取决于可获得的经费 在选择商业软件时,还要考虑工具的市场占有率以及厂商支持能力等因素,5.3 配置管理组织与实施,配置管理组织与实施Rational ClearCase介绍,ClearCase主要用于Windows和Unix开发环境。
36、特点: 推进并行开发 强有力的版本控制 透明的工作区管理 有效的build管理 有弹性的流程管理,功能: 版本控制 工作空间管理 建立管理 过程控制,5.3 配置管理组织与实施,Rational ClearCase功能版本控制,ClearCase的核心功能是版本控制,它是对软件开发进程中一个文件或一个目录发展过程进行追踪的手段。 ClearCase可对所有文件系统对象(包括文件、目录和链接)进行版本控制,同时还提供了先进的版本分支和归并功能用于支持并行开发。 因而,ClearCase提供的能力已远远超出资源控制的范围,它还可以帮助开发团队在开发软件时为其所处理的每一种信息类型建立一个安全可靠的
37、版本历史记录。,5.3 配置管理组织与实施,Rational ClearCase功能工作空间管理,所谓空间管理,即保证开发人员拥有自己独立的工作环境,拥有自己的私人存储区,同时可以访问成员间的共享信息。 ClearCase给每一位开发者提供了一致、灵活的可重用工作空间域。它采用名为View的新技术,通过设定不同的视图配置规格,帮助程序员选择特定任务的每一个文件或目录的适当版本,并显示它们。 View使开发者能在资源代码共享和私有代码独立的不断变更中达到平衡。,5.3 配置管理组织与实施,Rational ClearCase功能建立管理,使用ClearCase,构造软件的处理过程可以和传统的方法
38、兼容。 对ClearCase控制的数据,你既可以使用自制脚本也可使用本机提供的make程序,但ClearCase的建立工具clearmake(支持Unix)和make(支持NT)为构造提供了重要的特性:自动完成任务、保证重建的可靠性、存储时间和支持并行的分布式结构的建立。 此外,ClearCase还可以自动追踪、建立产生永久性的资料清单。,5.3 配置管理组织与实施,Rational ClearCase功能过程控制,软件开发的策略和过程由于行业和开发队伍的不同而有很大差异,但是有一点是肯定的:即提高软件质量、缩短产品投放市场时间。 ClearCase为团队通信、质量保证、变更管理提供了非常有效
39、的过程控制和策略控制机制。,5.3 配置管理组织与实施,Rational ClearCase应用总结,ClearCase支持全面的软件配置管理功能,给那些经常跨越复杂环境(如Unix、Windows系统)进行复杂项目开发的团队带来巨大效益。 ClearCase也支持广泛的开发环境,它所拥有的特殊组件已成为当今软件开发人员工程人员和管理必备的工具。 ClearCase的先进功能直接解决了原来开发团队所面临的一些难以处理的问题,并且通过资源重用帮助开发团队,使其开发的软件更加可靠。在当今日益激烈的市场竞争中,ClearCase作为规范的软件配置管理工具,能完全满足软件开发人员的需求,同时健全了软件
40、开发的科学管理。,5.3 配置管理组织与实施,内容提要,5.2 软件项目配置管理过程,5.3 配置管理组织与实施,5.4 配置管理实例介绍,5.5 本章小结,5.1 软件项目配置管理概念,5.4 配置管理实例介绍,XXX公司软件配置管理报告 1、关于人员配置 由于公司近期发展目标,在人员规模上不作较大变动。现在有页面设计人员2人,软件开发人员5人,测试人员由其中人员兼任,单元测试由程序员本人负责,但集成测试不得由程序开发本人担任。 系统设计人员同时需负责项目数据库和版本管理维护,并开发其中通用组件(JavaBeans和JavaScript)。 软件工程师完成编写JSP代码和界面协调以及部分所需
41、组件。,2、CASE开发环境,计划制定:考虑到公司有project工具的使用经验,对于公司有原型或项目经验的大型开发项目,需采用MS Project2000作为计划制定工具,可以由初步到深入,由粗略到详细。 设计工具:现在业界标准的OO设计描述语言是UML,但由于公司项目大多是小型项目,而且基于OO的设计模式很少,采用RationalRose未免大材小用。而PowerDesigner在数据库设计方面的强大和方便是有有目共睹的,而且较易掌握,可以作为公司软件设计阶段的首选工具。 版本控制:毫无疑问PVCS应是现在使用最为广泛的软件配置管理工具,在国外几乎占据了70% 的市场。但国内使用甚少,几乎
42、没有任何资料。即使使用也无法发挥他强大的功能,而且腾出一个人专门负责也是不现实的。而MS的VSS6.0简单易用,基本实现了版本控制的功能,对提高团队开发效率大有好处,值得选用。,5.4 配置管理实例介绍,3、开发工具(可选),对于开发工具仁者见仁,智者见智,个人喜好不同。 根据项目工期而定。 MS .Net(、C#.net、VB.net等等) JAVA VC、VB、Delphi等等,5.4 配置管理实例介绍,内容提要,5.2 软件项目配置管理过程,5.3 配置管理组织与实施,5.4 配置管理实例介绍,5.5 本章小结,5.1 软件项目配置管理概念,5.5 本章小结,软件项目范围核实 配置管理的基本概念 配置项 基线 sccb 配置管理过程 配置管理计划的基本内容,配置管理建议,制定规则:实现版本管理 小企业,小项目 制定规则和(版本管理)工具:实现部分配置管理 中小企业,中小项目 制定规则和(配置管理)工具:实现配置管理 大企业,大项目 异地开发模式 配备专门的配置管理人员,5.5 本章小结,