1、第二章 软件配置管理,软件项目管理,,第2页,本章内容提要,软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软件配置管理工具CVS,,第3页,第一节 软件配置管理的作用,服务器,存储所有文档和源程序,由版本控制系统管理,程序员1,程序员n,下载,提交,下载,提交, ,团队开发的一般模式,安装有版本控制系统客户端,,第4页,不同程序员对程序的更改会产生冲突,程序员A,程序员B,common-function.java,common-function.java,修改,修改,添加了函数checkStringlength(),添加了函数checkDate(),服务器,提交,提交,程序完整
2、性受到破坏,,第5页,软件项目中可能遇到如下的问题:,找不到某个文件的历史版本; 开发人员使用错误的程序版本; 开发人员未经授权修改代码或文档; 人员流动,交接工作不彻底; 无法重新编译软件的某个历史版本; 因协同开发,或者异地开发,版本变更混乱导致整个项目失败; ,,第6页,软件项目进行中面临的一个主要问题是持续不断的变化,变化可能导致混乱,而软件配置管理就是用于控制变化。软件配置管理(Software Configuration Management, SCM)是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则。它是控制软件系统演变的学科。中间软件产品和用于创建中间软件产
3、品的信息都应处于软件配置管理之下。,,第7页,软件配置管理的目标,标志变更 控制变更 确保变更正确实现 向受变更影响的组织和个人报告变更,,第8页,记录软件产品的演化过程。 确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置。 最终保证软件产品的完整性、一致性、可追溯性。,软件配置管理的效果,,第9页,版本控制:采用相应的流程和工具,对软件开发过程中产生的各种文件的版本进行管理。是软件配置管理的核心内容。 变更管理:为防止开发人员对软件的随意变更而进行的管理上的审核过程,包括变更请求、变更评估、变更批准/拒绝、变更实现。 其它:配置审计、配置状态统计等。,软件配置管理的主要功能,,
4、第10页,本章内容提要,软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软件配置管理工具CVS,,第11页,软件配置项(Software Configuration Item, SCI)软件配置管理的对象,一个软件配置项是项目中一个特定的、可文档化的工作产品集。常见的软件配置项:需求规格说明书、设计规格说明书、源代码、测试计划、测试用例、用户手册。构造软件的工具和软件赖以运行的环境也常常列入配置管理的范畴。,第二节 软件配置管理的相关概念,,第12页,基线(Baseline)已经正式通过复审和批准的某规约和产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程来改变。
5、基线通常标志开发过程一个阶段的结束(里程碑),软件配置项,基线配置项,非基线配置项,,第13页,软件开发各个阶段基线图示,系统工程,需求分析,软件设计,程序编写,测试,系统提交,系统规格说明,软件需求规格说明,软件设计说明,源代码,测试计划、过程、数据,可运行系统,,第14页,软件配置控制委员会(Software Configuration Control Board, SCCB)负责管理软件配置项变更的组织。评估变更 批准/拒绝变更申请 在项目生存期内规范变更申请流程 对变更进行反馈 与项目管理层沟通,,第15页,本章内容提要,软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软
6、件配置管理工具CVS,,第16页,第三节 软件配置管理过程,软件配置管理过程包括7项基本活动: (1)制定配置管理计划 (2)识别和标志配置项 (3)建立配置管理环境 (4)配置项的版本控制 (5)基线变更管理 (6)配置审核 (7)配置状态统计,,第17页,形成配置管理计划,规划配置管理任务,评审配置计划,参加项目规划,(1)制定配置管理计划,,第18页,配置管理组织及其职责 配置管理工具和配置库的组织结构 配置项标志和基线定义 变更管理流程 配置审核和配置状态统计,配置管理计划的主要内容,,第19页,(2)识别和标志配置项,将软件项目中需要进行控制的工作产品定义为配置项(SCI)。 为每一
7、个配置项分配唯一的标志。 建立配置项间的对应关系。,,第20页,配置项分为两类:,基本配置项:软件开发者在项目开发过程中所创建的基本工作单元。 集成配置项:一个集成配置项是基本配置项或其它集成配置项的集合。,,第21页,体系结构设计,数据库设计,详细设计,基本配置项,设计规格说明,集成配置项,校务管理系统需求规格说明,招生管理,学生日常管理,教务管理,通用功能,,第22页,配置项标志规范举例,注意:配置项标识并不是指程序/文档文件的文件名,而是该程序/文档作为一个配置项的标识。,,第23页,建立配置项间的关系,招生管理需求规约,校务管理系统需求规格说明,测试用例集A,part of,inter
8、related,可使用某种模块互联语言(Module Interconnection language, MIL)来描述配置项之间的关系。 Narayanaswamy K., W. Scacchi. Maintaining Configurations of Evolving Software Systems. IEEE Trans. Software Engineering, vol.SE-13,no.3, March 1987.,,第24页,(3)建立配置管理环境,配置管理环境是用于进行软件配置管理的系统环境,其中最重要的是配置管理库,简称配置库。配置库存储配置项(SCI)、修改请求、变化
9、记录等,并提供对库中所存储文件的版本控制。 为不同的开发人员分配不同的访问配置库的权限。,,第25页,一般需采用配置管理工具来建立配置库。 配置库中文件的更改是受控的。,,第26页,受控库,新版本,Check in,Check out,配置库,(4)配置项的版本控制,,第27页,配置库的检入检出和版本控制机制解决了软件开发中的两个重要问题: 访问控制:保证具有相应权限的人员才能修改配置项。 并行控制:保证不同人员同时对某配置项进行的修改不会互相覆盖。,,第28页,服务器,存储所有文档和源程序,由版本控制系统管理,程序员1,程序员n,下载,提交,下载,提交, ,团队开发的一般模式,安装有版本控制
10、系统客户端,,第29页,Source Object Lib,配置库,Source Object Lib,Source Object Lib,程序员1的工作目录,程序员n的工作目录,Check out,Check out,,第30页,SCI 1.0,SCI 1.1,SCI 1.2,SCI 1.3,SCI 1.4,SCI 2.0,SCI 2.1,SCI 1.1.1,SCI 1.1.2,配置项的演化图(Evolution Graph),,第31页,对配置项的修改(不同版本间的差别)应被记录下来。 更动者(姓名及其身份); 更动日期和时间; 被更动SCI(名及其版本号); 更动内容及其位置; 更动原因
11、; 受此更动影响的诸SCI名表。,,第32页,软件产品不同类型的版本的特性和所包含的配置项应被明确描述。保证可根据要求将配置项组合生成适用于不同应用环境的正确的软件产品版本。,,第33页,软件产品版本编号方法,数字顺序型版本编号 普通版本编号 和版本编号 属性版本编号,,第34页,数字顺序型版本编号,普通版本编号产品的版本号由若干数字组成,数字之间用“.”分隔。一种典型的编号策略如下:x.y.z,x为主版本号,y为特征版本号,z为缺陷修复版本号。 主版本号的增加表示提供给客户的主要产品功能的增强。 特征版本号的增加表示产品新增了一些特征或做了一些重要修改。,,第35页,普通版本编号 缺陷修复版
12、本号的增加表示在软件产品上做了一些缺陷修复工作。 和版本编号 在普通版本编号后面增加一个大写字符A或者B来分别表示版本或版本。例如1.2.4A或1.2.4B。 如果存在多次的发布和发布,可在A或B后面添加一个数字来说明发布的次数,例如:1.2.5A1,1.3.0B2。,数字顺序型版本编号,,第36页,把版本的重要属性反映在标识中。可以包括的属性有:客户名、开发语言、开发状态、硬件平台、生成日期等。例如:J2SDK.v.l.2.2:10/31/2000-18:00,native threads, jit-122包含的信息丰富,方便了查询和管理,版本间的关系易于保持,但由于太复杂,一般只用于软件组
13、织内部的管理。,属性版本编号,,第37页,(5)基线变更管理,基线变更管理过程,变更请求,变更评估,变更批准/拒绝,变更实现,,第38页,变更请求,,第39页,变更评估,变更评估,软件变更分类,技术影响分析,接口影响分析,进度影响分析,预算影响分析,,第40页,变更批准或拒绝,根据评估结果对变更作出决策: 直接实现变更 挂起或延迟变更 拒绝变更 对于批准的变更,要确定其实现进度: 立即实现变更 在特定的日期实现变更 在软件另外的版本中实现,,第41页,变更实现,检出(check out)基线,对基线进行变更,测试和验证,检入(check in)基线,,第42页,配置管理活动审核:确保所有配置管
14、理活动符合已批准的软件配置管理规程。 基线审核:审核基线配置项的完整性和一致性,从而保证基线配置项可被正确地构造。 配置库中是否包含了所有计划纳入的基线? 基线自身的内容是否完整? 编译所有的源代码,检查是否可产生最终软件产品。 检查需求、设计与代码间的一致性。,(6)配置审核,,第43页,配置管理系统的状态统计和评估 变更请求的数量。 变更管理活动的执行情况。 配置管理系统存储量的变化。 配置管理系统和SCCB在运作中发生异常的次数。,(7)配置状态统计和报告,,第44页,配置状态报告每次配置的更改被批准或实现时,都会产生一个配置状态报告,通知相关人员:更改了哪些内容?由谁更改?什么时候更改
15、?更改会产生哪些影响?对于大型项目的开发,配置状态报告非常重要,它促进了人员之间的通信。,,第45页,本章内容提要,软件配置管理的作用 软件配置管理的相关概念 软件配置管理过程 软件配置管理工具CVS,,第46页,第四节 软件配置管理工具CVS,软件配置管理工具 CVS概述 CVS操作的示例,,第47页,1. 软件配置管理工具,软件配置管理工具的主要功能 版本控制 变更管理 配置审核 状态统计(查询和报告) 问题跟踪(跟踪缺陷和变更) 访问控制和安全控制,,第48页,常用的配置管理工具 ClearCase&ClearQuest CVS Subversion(SVN) PVCS Harvest
16、Visual SourceSafe(VSS),,第49页,2. CVS概述,CVS (Concurrent Versions System, 并发版本系统)是一个被广泛应用的配置管理工具。Unix和Linux的发行版一般都带有CVS服务器,Eclipse内建有CVS客户端。CVS是自由软件,可免费获取其安装包和源代码。CVS提供了多种途径帮助开发团队成员之间的版本同步和开发通信,辅助解决版本冲突,提高协同开发的效率。,,第50页,C/S模式,CVS的几个特性,CVS服务器,CVS客户端1,CVS客户端2,CVS客户端n,网络,check out,check in,,第51页,基于“拷贝修改合并
17、”的并发控制 客户端check out后,有文件的一份独立拷贝。 开发者在自己的工作目录中修改文件。 若有版本冲突,则使用合并(merge)功能与其它开发者的修改合并,然后提交(check in)。 记录不同版本之间的差别,CVS的几个特性,,第52页,CVS支持Unix、Linux、Windows、Mac平台。可从http:/www.march-下载其安装包和源代码。 CVS在Windows上的版本称为CVSNT。 WinCVSWindows上的一个常用的CVS客户端。可从http:/ CVS操作的简单示例,创建仓库(repository) 导入项目/模块 检出项目/模块 修改并提交(检入)文件 检出最新版本的文件 取回文件的某个历史版本 文件比较,,第54页,本章小结,软件配置管理的作用控制变化 版本控制、变更管理 软件配置管理的相关概念软件配置项、基线、软件配置控制委员会 软件配置管理过程 软件配置管理工具CVS,,第55页,软件项目配置管理计划模板 软件项目配置管理计划案例,,第56页,练习题,阐述配置库的检入检出机制及其作用。 简述变更管理流程。,
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1