《软件配置管理计划.ppt》由会员分享,可在线阅读,更多相关《软件配置管理计划.ppt(71页珍藏版)》请在三一办公上搜索。
1、案例引入,案例角色和人物,小王:软件项目负责人,老王:公司技术老总,开发小组:小李,老赵,小田,小谢,案例引入,软件项目已经成功实施了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品到了编码阶段已经有了近百个软件产品(包括技术文档、管理文档、程序模块等),项目组在管理这些产品方面感到繁琐和困难此时,用户提出要变更需求,软件项目组同意用户的需求变更请求,为此,修改了软件需求规格说明书项目组将更改后、新的软件需求规格说明书交给了软件设计小组,设计小组为此更改了设计。更改后的软件设计涉及诸多的软件模块和数据设计,为此导致许多的模块和源程序代码和可执行代码发生了变化,案例引入,软件项目已
2、经成功实施了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品由于变化的范围太大,项目组很难清晰地了解哪些作了变化、做了什么样的变化由此带来的新的问题是,项目组未能及时将这些变化通知给相关、受影响的小组和人员,从而出现软件产品之间的不一致(设计与编码不一致),所开发的产品没有完全符合和满足用户的需求,案例引入,软件项目已经成功实施了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品 对于某些模块更为糟糕,因为这些模块已经经过了多达67次的修改,而且每次修改都有意义,从而产生了不同版本的软件模块设计,由于没有相关的有效管理措施,开发人员已经很难清晰、有效识别、区分这些软件
3、模块,出现许多开发人员都有该模块的诸多版本,案例引入,软件项目已经成功实施了8个月,项目组已经进入编码阶段,在此过程中产生了许多的软件产品与此相对应的是,该模块的源代码也有许多版本在实际组装软件时,项目组不能有效提取出所需的软件产品,共同构成可运行的软件系统,案例提示,软件开发过程中会产生大量软件产品(包括文档、源代码和数据等),且这些产品之间存在关联关系同一软件产品,也会发生变更从而产生许多版本软件开发小组必须清晰的知道会有哪些产品、这些产品会有哪些不同的形式和版本开发小组必须清晰的知道如何将产品的变更通知给受影响的小组如果不能有效的了解软件产品及其变更,开发小组很难组装这些软件产品,从而得
4、到所需的软件产品,软件项目管理问题,什么是软件配置?软件配置需要关心哪些方面的问题?如何进行软件配置?如何撰写软件配置管理计划?有哪些软件工具支持软件配置活动?,软件项目管理,第10章软件配置管理计划,本章要点,一、软件项目配置管理基本概念软件配置管理(SCM:Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,软件配置管理(SCM)相关定义,(1)ISO 9000
5、-3(1997)质量管理和质量保证标准-第3部分 和ISO 9001-1994 在计算机软件开发、供应、安装和维护中的应用指南:配置管理是一个管理学科,它对配置项(包括软件项)的开发和支持生存期给予技术上的和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。(2)W.Babich 的解释 软件配置管理能协调软件开发,使混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效的提高生产率。,软件配置管理(SCM)相关定义,(3)GB/T 11457:1995软件工程术语国家标准 A.表示和确定系统中配置项的过程,在系统整个生存期内控制这些配置项的投放和更动,记录
6、并报告配置的状态和更动要求,验证配置项的完整性和正确性。B.对下列工作进行技术和行动指导与监督的一套规范:对配置项的功能特性和物理特性进行标识和文件编制工作;控制这些特性的更动情况;记录并报告这些更动进行的处理和实现的状态。,软件配置管理(1/5),什么是软件配置管理?在软件的整个生命周期中,对SCI进行以下工作系统地控制SCI的标识、存储、更动和发放记录、报告其状态验证SCI的正确性和一致性对上述工作的审计,软件配置管理(2/5),为什么需要SCM?软件产品的易改性与可控性团队开发时,多人并发存取需加控制(存取控制)多应用开发时,同一软件的不同版本可能对应于不同应用,对此需加控制(版本控制)
7、应对软件更动状态予以追踪,并及时向有关人员通报状态情况如果软件产品不能自始至终地保持清晰、互相一致,造成混乱、丢失,那么该软件系统会因无法使用而不得不报废,软件配置管理(3/5),SCM要解决的问题:如何标识SCI和管理SCI的诸多版本,以使得变化可以高效地进行如何在软件发布给用户之前和之后控制变化谁负责批准变化,并确定其优先级如何保证变化被恰当地进行采用什么机制告知有关人员已经实行了变化,软件配置管理(4/5),软件配置管理的任务SCI的标识SCI的识别:有哪些SCI?SCI的描述:分别是什么SCI?版本控制每个SCI有哪些版本控制版本的演化变化控制如何应对SCI的变化配置审计状态报告,软件
8、配置管理(5/5),SCM的目标必须使每个SCI保持与相关SCI的可追踪性(正确性)和完备性使相关的SCI之间满足文实相符,文文一致以确保SCI的有效性以清晰、明了、易管理的方式标识每个SCI,使其满足:可视性、唯一标识性使最终软件产品的正确地生成、改进和维护成为可能,保证最终软件产品的正确性,软件配置管理(SCM)定义,记录软件产品的演化过程确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置。最终保证软件产品的完整性、一致性、追朔性、可控性,本章要点,一、软件项目配置管理基本概念软件配置管理(Software Configuration Management)配置项(SCI:So
9、ftware Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,软件配置项(1/4),软件概要设计文档,模块1,数据设计文档,SRS,详细设计文档,模块n,模块m,组件:DLL,软件系统,软件配置项(2/4),什么是SCI?软件生命周期内产生、需进行配置管理的各种工作产品。包括:程序、文档、数据、标准和规约SCI的形式技术文档软件需求规格说明书软件概要设计规格说明书软件测试计划用户手册,软件配置项(2/4),什么是SCI?软件生命周期内产生、需进行配置管理的各种工
10、作产品。包括:程序、文档、数据、标准和规约SCI的形式管理文档软件开发计划软件配置管理计划软件质量保证计划,,软件配置项(2/4),什么是SCI?软件生命周期内产生、需进行配置管理的各种工作产品。包括:程序、文档、数据、标准和规约SCI的形式程序代码(源和可执行)模块1的源程序代码(例如,A.Java)模块1的可执行代码(例如,A.class)组件(程序包,例如,code.dll)可执行文件(例如,word.exe),软件配置项(2/4),什么是SCI?软件生命周期内产生、需进行配置管理的各种工作产品。包括:程序、文档、数据、标准和规约SCI的形式数据配置文件(例如,a.ini)数据文件(例如
11、,a.pot),,软件配置项(4/4),SCI的描述唯一的命名和编号如SRS属性版本(v1.0)类型(文档)关系与软件概要设计文档、数据设计文档关联,本章要点,一、软件项目配置管理基本概念软件配置管理(Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,基线(1/6),什么是基线?已经通过正式复审和批准的软件产品、标准或规约,它们可以作为进一步开发的基础,并且只能通
12、过正式的变化控制过程才允许对它们进行变更.(IEEE)为什么需要基线?,基线(2/6),软件产品典型基线,需求分析,软件设计,编码,测试,发布,SRS,软件设计文档,源代码,测试计划/报告,软件系统,基线(3/6),作为基线的SCI,Check in,Check out,基线(4/6),基线管理的步骤 1.在开发前确定基线的“配置”2.基线批准前,根据“配置”检查配置项是否齐备3.对各个配置项,确认其版本的正确性4.对每个配置项建立基线标志5.基线变更管理 6.基线的各类报告和审计信息,基线(5/6),图:基线、配置与配置项的关系,基线(6/6),表:基线信息跟踪表,本章要点,一、软件项目配置
13、管理基本概念软件配置管理(Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,配置项标识,配置项标识是:识别产品的结构、产品的构件及类型,为其分配唯一的标识符;并以某种形式提供对它们的存取;找出需要跟踪管理的项目中间产品,使其处于配置管理的控制之下,并维护它们之间的关系。,配置项标识,配置项标识的任务识别有哪些SCI详细描述每个SCI识别SCI的要求完整,不要有遗漏
14、系统,包括所有的技术文档、必须的管理文档、所有的程序(源码和可执行)、所有的数据,配置项标识,SCI描述的要求唯一和直观命名,在本项目中是唯一标识的,直觉意思明确,便于望文生义,有利于对该SCI的状态控制,便于增删、修改;描述属性,便于进一步详细了解SCI,如类型、创建者、时间、修改者,描述与其他SCI的关系,便于追踪和管理其影响,配置项标识-文档类SCI的命名和属性描述(1/3),文档编号命名(样板例子)形式:NUDTLIB-2-RA-v1.0-00项目名称或者编号:NUDTLIB子系统名称或者编号:2 or ReaderAdmin文档类型:RA序号:1,表示本文档在同类型中的排序版本号:v
15、1.0修订号:00,AD-结构设计CR-更动报告DD-详细设计DP-开发计划FA-可行性分析IC-接口控制IG-安装手册,QA-质量保证RA-需求分析SL-源码列表SS-系统规格说明书TP-测试计划TR-测试报告UM-用户手册序号,文档属性描述:编写人:例如,张三质检人:例如,李四审核人:例如,王五批准人:例如,刘八发布版本:例如,1.00发布日期:例如,2009/12/14变化情况,配置项标识-文档类SCI的命名和属性描述(1/3),为了便于变更控制时进行影响域评估,必须描述SCI之间的关联关系建立关联矩阵关联列表,配置项标识-描述关联关系,本章要点,一、软件项目配置管理基本概念软件配置管理
16、(Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,软件变更软件变更的不可避免性软价变更的复杂性软件配置项数量大版本多变更的迁延性人员沟通协调变更管理的任务分析变更记录和追踪变更采取措施保证变更在受控状态下进行,变更管理,配置库:CMMI中的配置库主要是指为管理(软件、硬件、系统)项目开发和件软维护以及其过程中各种中间软件产品而构建的基本方法和规则的目录存储结构。
17、如产品需求库、度量库、产品组件库等。配置库的作用:记录与配置相关的所有信息利用库中的信息可评价变更的后果可利用库中的信息查询,变更管理-配置库,三类库(1)开发库:存放开发过程中需要保留的各种信息,供开发人员个人专用。(2)受控库:用于存放经过验证后的产品(包括基线产品);建立测试 区,用于存放开发工作结束后需要进入测试的配置项,以及为变更实施提供工作空间。(3)产品库:在开发的软件产品完成系统测试之后,作为最终产品存入库内,等待交付用户或现场安装。,变更管理配置库,1.基线是软件生存期各开发阶段末尾的特定点,基线一般在指定的里程碑处创建,并与项目中的里程碑保持同步。在配置管理系统中,基线就是
18、一个CI或一组CIs在其生命周期的不同时间点上通过正式评审而进入正式受控的一种状态,,变更管理配置基线,软件配置基线,变更管理配置基线,2.基线与配置项3.典型的配置项和基线库内容初始库:包括项目开始时可供利用的配置项已有的源代码(如可以利用且需要)已有的软件文档(如可以利用且有需要)已有的测试计划和测试数据(如可利用且有需要)合同或建议书环境配置项:包括对稳定的开发环境或维护环境所必需的配置项编译器、操作系统、编辑程序、实用程序、RDBMS团组所用的工具(项目管理工具,进展表,测试工具,缺陷追踪等)第三方库文档工具(字处理器、电子表格等),变更管理配置基线,2.基线与配置项3.典型的配置项和
19、基线库内容定义库:在需求规格说明工作结束时生成的需求规格说明项目计划设计标准与设计准则验收测试计划设计库:在设计工作结束时所产生的系统设计说明书程序规格说明数据库设计编码标准、用户接口标准、测试标准系统测试计划用户手册,变更管理配置基线,2.基线与配置项3.典型的配置项和基线库内容构造库:在编码和段单元测试结束时生成的源代码标代码 单元测试数据测试库:系统测试完成后生成的系统测试数据运行手册和安装手册维护库:验收测试、安装和培训等之后将有变更的所有配置项,变更管理变更控制,1.SCCB 配置控制委员会(SCCB)可以是一个人或一个 组,基本是由项目经理及其相关人员组成。SCCB承担变更控制的所
20、有责任评估变更批准变更申请在生存期内规范变更申请流程对变更进行反馈与项目管理层沟通,变更管理变更控制,2.变更步骤第一步 变更申请。变更申请人向CCB提交变更申请,重点说明“变更内容”和“变更原因”。第二步 审批变更申请。CCB负责人(或项目经理)审批该申请,分析此变更对项目造成的影响。如果同意变更的话,则转向第三步,否则终止。第三步 安排变更任务。CCB指定变更执行人,安排他们的任务。CCB需要和变更执行人就变更内容达成共识。,变更管理变更控制,2.变更步骤第四步 执行变更任务。变更执行人根据CCB安排的任务,修改配置项。CCB监督变更任务的执行,如检查变更内容是否正确、是否按时完成工作等。
21、第五步 对更改后的配置项重新进行技术评审(或审批)。第六步 结束变更。当所有变更后的配置项都通过了技术评审或领导审批,这些配置项的状态从“正在修改”变迁为“正式发布”,本次变更结束。,本章要点,一、软件项目配置管理基本概念软件配置管理(Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,配置审计,配置审计的目的就是要保证所有人员(包括配置管理员、CCB、和普通项目成
22、员)都遵守配置管理规范。所以配置审计是质量人员的工作职责之一,可以归类为“过程检查活动”。配置审计的对象是项目的主要配置项,如果主要配置项符合“版本控制规则”和“变更控制规则”,并且定期备份了配置库,那么就可以认为配置管理符合既定的规范。,配置审计,为什么要实施配置审核?确保软件配置管理的有效性,不允许出现任何混乱现象。如何实施配置审核?1.实施配置审核的时机软件产品交付或是软件产品正式发行前软件开发的阶段工作结束之后在维护工作中,定期的进行2.实施配置审核的责任人 参与实施配置审核的审核人员包括:项目组人员和非项目组人员,例如其他项目的配置管理人员、软件组织的内部审核员以及软件组织的软件配置
23、管理人员。,本章要点,一、软件项目配置管理基本概念软件配置管理(Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,配置状态报告,什么是配置状态报告?1.配置状态报告(configuration status reporting)也称配置状态说明与报告(configuration status accounting&reporting)。任务:有效的记录和报告管理配
24、置所需要的信息目的:及时、准确的给出软件配置项的当前状况,供相关人员了解,以加强配置管理工作。2.需要跟踪捕捉的状态报告信息可以是:配置项的当前标识已交付软件的配置变更请求或问题报告的状态已获准变更的状态,配置状态报告,定期提交的配置状态报告的内容示例:各份变更请求概要:变更请求号、日期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期基线库状态:库标识、至某日预计库内配置项数、实际配置项数发行信息:发行版本、计划发行时间、实际发行时间、说明备份信息:备份日期、介质、备份存放位置配置管理工具状态配置管理培训状态,本章要点,一、软件项目配置管理基本概念软件配置管理(Software
25、Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,配置管理计划,软件配置管理计划就是确定软件配置管理的解决方案。在整个软件项目开发过程中作为配置管理活动的依据进行使用和维护。(详见:GB/T 12505-90)1.引言1.1 目的1.2 术语与缩略语1.3 参考资料,软件配置管理计划(2/3),2.管理2.1 机构2.2 任务2.3 职责2.4 接口控制2.5 里程碑2.6 适用的
26、标准、条例和约定,软件配置管理计划(3/3),3.配置管理活动3.1 配置标识3.2 配置控制3.3 配置状态登录与报告3.4 配置审计4.技术、方法与工具5.对供货单位的控制6.记录的收集、维护和保存,配置管理计划示例,本章要点,一、软件项目配置管理基本概念软件配置管理(Software Configuration Management)配置项(SCI:Software Configuration Item)基线(Baseline)二、软件项目配置管理过程配置项标识变更管理配置项审计配置项状态统计三、软件项目配置管理计划四、配置管理工具五、案例分析,配置管理工具,1 Visual Sourc
27、eSafe Visual SourceSafe是Microsoft公司推出的配置管理工具,是Visual Studio的套件之一。SourceSafe是国内最流行的配置管理工具,用户量绝对是第一位。,配置管理工具-VSS简单工作原理,将项目所有的源文件(包括各种文件类型)以特有的方式存入数据库;客户端将程序拷贝到各自的工作目录下进行调试修改,然后进行Checkin到服务器,进行综合更新;支持多个项目之间文件快速高效的共享;每个成员对项目文件所作的修改将被记录到数据库中;VSS可以很容易地与Microsoft Access、Visual Basic、Visual C+、Visual FoxPro
28、和其他的开发工具集成在一起.,SourceSafe的主要局限性:只能在Windows下运行,不能在Unix,Linux下运行。SourceSafe不支持异构环境下的配置管理,对用户而言是个麻烦事。这不是技术问题,是微软公司产品战略决定的。适合于局域网内的用户群,不适合于通过Internet连接的用户群,因为SourceSafe是通过“共享目录”方式存储文件的。,配置管理工具-VSS简单工作原理,2 CVS CVS 是 Concurrent Version System(并行版本系统)的缩写,它是著名的开放源代码的配置管理工具。,配置管理工具-CVS,CVS的官方网站是http:/官方提供的是C
29、VS服务器和命令行程序,但是官方并不提供交互式的客户端软件。许多软件机构根据CVS官方提供的编程接口开发了各色各样的CVS客户端软件,最有名的当推Windows环境的CVS客户端软件WinCVS。WinCVS是免费的,但是并不开放源代码。,配置管理工具-CVS,与SourceSafe相比,CVS的主要优点是:SourceSafe有的功能CVS全都有,CVS支持并发的版本管理,SourceSafe没有并发功能。CVS服务器的功能和性能都比SourceSafe高出一筹。CVS服务器是用Java编写的,可以在任何操作系统和网络环境下运行。CVS深受Unix和Linux 的用户喜爱。Borland公司
30、的JBuilder提供了CVS的插件,Java程序员可以在JBuilder集成环境中使用CVS进行版本控制。CVS服务器有自己专用的数据库,文件存储并不采用SourceSafe的“共享目录”方式,所以不受限于局域网,信息安全性很好。,配置管理工具-CVS,CVS的主要缺点在于客户端软件,真可谓五花八门、良莠不齐。Unix和Linux 的软件高手可以直接使用CVS命令行程序,而Windows用户通常使用WinCVS。安装和使用WinCVS显然比SourceSafe麻烦不少,这是令人比较遗憾的。,配置管理工具-CVS,3 ClearCaseRational公司的ClearCase是软件行业公认的功
31、能最强大、价格最昂贵的配置管理软件。,配置管理工具-ClearCase,ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)ClearCase通过TCP/IP来连接客户端和服务器。另外,ClearCase拥有的浮动License可以跨越UNIX和Windows NT平台被共享。,配置管理工具-ClearCase,ClearCase的功能比CVS、SourceSafe强大得多,但是其用户量却远不如CVS、SourceSafe的多。主要原因是:,配置管理工具-ClearCase,ClearCase价格昂贵,如果没有批量折扣的话,每个License大约5000美元。对于中国用户而言,这无疑是天价。用户只有经过几天的培训后(费用同样很昂贵),才能正常使用ClearCase。如果不参加培训的话,用户基本上不可能无师自通。,作业:,1.什么是软件配置管理?有什么作用?2.概念解释:基线、配置项。3.简述软件配置管理的过程。4.如何实施基线变更管理?,