《SP302-09软件项目配置管理计划》由会员分享,可在线阅读,更多相关《SP302-09软件项目配置管理计划(42页珍藏版)》请在金锄头文库上搜索。
1、北方民族大学 计算机科学与工程学院 陶铮 2009年9月1课件 SP302开头的话 回顾软件质量计划回顾软件质量计划 制定质量计划的依据是:制定质量计划的依据是:所谓软件质量管理主要是监控项目的交付物和 生产交付物的执行过程,目的是确保它们都是 符合相关标准的:这叫做质量保证过程;同时,也要按照正确方法来排除那些不合格项 能够排除:这叫做质量控制过程。2 什么是交付物?交付物怎么管理?什么是交付物?交付物怎么管理? 我们已经知道:质量管理对象,是针对项我们已经知道:质量管理对象,是针对项 目过程中那些对最终产品起着重要的作用目过程中那些对最终产品起着重要的作用 的中间产品的中间产品这就是交付物
2、(最终交付物这就是交付物(最终交付物 的前身),主要是:的前身),主要是:1.需求规格、设计说明书2.源程序3.测试计划4.测试结果等。3交付物的演变情况试想五个人一起编程开发,各有五个人一起编程开发,各有1010个模块任务。一个模块任务。一 个人一天一个模块,个人一天一个模块,1010天完成天完成问:问:到第10天,每个人的10个模块有多少个版本?10个人开发的100个模块共有多少个版本?集成这100个模块有多少个集成方案?每个集成方案有多少个版本? 版本问题版本问题从需求描述开始:从需求描述开始:系统需求在软件开发和使用的过程中总是不断地变 化着,我们不得不把这些需求合并到新的系统版本 中
3、配置对选定的软件工作产品的新的描述。4配置管理的必要性 进化中的系统之所以需要管理,是因为系统在进化时会产生进化中的系统之所以需要管理,是因为系统在进化时会产生 许多不同的版本,这些版本包含了变更建议、错误修正以及许多不同的版本,这些版本包含了变更建议、错误修正以及 对不同硬件和操作系统的适应等诸多内容。对不同硬件和操作系统的适应等诸多内容。 对于对于可能同时开发、同期使用可能同时开发、同期使用的的几个版本几个版本,需要跟踪需要跟踪它们,它们, 明确明确已经实现的变更以及这些变更是怎样包含在软件产品中已经实现的变更以及这些变更是怎样包含在软件产品中 的。的。5一个软件的系统系列 配置管理的必要
4、性配置管理的必要性-2-2如果没有有效的配置管理规程,就可能浪费精 力修改一个错误的系统版本或发放一个错误版 本给用户,甚至不知道系统源代码存放在什么 地方。 例如,配置管理不善,会导致软件测试陷例如,配置管理不善,会导致软件测试陷 入入“ “泥潭泥潭” ”:缺陷只能在测试环境出现,但是在开发环境中 无法重现; 已经修复的缺陷在测试时又重现; 发布程序在内部确认测试中测试通过,但是发 布时却发生系统运行失效的情况。679.1.1 配置管理定义软件配置管理(Software configuration Management,SCM),是指一套管理软件开发和 软件维护以及各种中间软件产品的方法和规
5、则 。特别是:中间的软件产品和用于创建中间软件 产品的信息,都应处于软件配跟管理控制之下 。 信息指文档。软件配置管理是控制软件系统演变的学科。8你是怎样管理自己的文件的?1.最基本的,文件夹-文件名-保存(修改)的时 间2.高级的,标注版本3.再高级的呢没了。因为是你自己的,自己 管。 但是,配置管理是管理大家的工作产品,但是,配置管理是管理大家的工作产品, 是必要且复杂的工作。是必要且复杂的工作。9既然软件配置是管理大家做的软件和文档既然软件配置是管理大家做的软件和文档 ,所以需要系统化、集成化管理,所以需要系统化、集成化管理难点难点 就在这里!就在这里!统一标识在给定时间点上软件的配置;
6、系统地控制对配置的更改;不间断地维护整个软件生存周期中的配置的完 整性和可追溯性。10示例:每日构建配置管理1.1.开发机构规定好系统组件的提交时间开发机构规定好系统组件的提交时间比如下午2点此时,如果开发者正在写这些组件的新版本,那么他们 必须在规定时间之前提交。组件可能不完备,但是必须具备一些基本的、 可以测试的功能。 2.2.规定代码编译和新版本软件的建立规定代码编译和新版本软件的建立通过编译和连接这些组件使之形成一个完整的系统,这样系统的新版本就 建立起来了。 3.3.提交测试提交测试新版本的系统被提交到测试团队,由他们来完成预先确定好的一组系统测 试。注意:在这期间,开发人员仍然在处
7、理他们的组件,或增加组件的功能, 或修改测试中发现的错误。 4.4.测试后的工作测试后的工作将系统测试过程中发现的错误编写成文档,交给系统开发人员。他们在这 个组件的后续版本中修改这些错误。119.1.2 配置管理的目标配置管理的目标配置管理的目标软件配置的完整性和可追软件配置的完整性和可追 溯性。溯性。 达到这个目标,需要一个过程控制某个配置项 及其后续变更,记录并报告配置项的状态以及变更 要求。什么是配置项?什么是配置项?配置管理的子目标配置管理的子目标 标识变更。 控制变更。 确保变更正确实现。 向有关的人员报告变更。12配置管理是一个复杂的信息管理 软件配置管理的主要思想和具体内容在于
8、软件配置管理的主要思想和具体内容在于 版本控制。版本控制。139.1.3 配置管理在软件开发中的作 用 配置管理是对系统变更所做的管理。在维护一个系统时,配配置管理是对系统变更所做的管理。在维护一个系统时,配 置管理团队的作用是保证变更是在受控状态下完成的。置管理团队的作用是保证变更是在受控状态下完成的。配置管理,是项目经理最费心的事务性管理 版本控制版本控制管理版本信息管理版本信息对软件开发过程中各种程序代码、配置文件及说明文档等文件变 化的管理。最主要的功能就是追踪文件的变更。记录了每个配置项的发展历史,这样就保证了版本之间的可追踪 性。并行开发的版本管理解决版本的同步以及不同开发者之间的
9、 开发通信问题,提高协同开发的效率14软件配置管理是软件项目管理中的一种非常有效 和现实的技术,它能非常有效地适应软件开发需 求。版本控制不等于配置管理,版本控制,并不能解 决开发管理中的深层问题。项目管理(需求、计划、进度、里程碑、变更 )对开发者工作空间的管理(资源、任务分配、绩 效)15169.2.1 配置项软件配置项(软件配置项(Software Configuration ItemSoftware Configuration Item, SCISCI),是项目定义其受控于软件配置管理的),是项目定义其受控于软件配置管理的 项。即标题。项。即标题。示例(本章案例内容):配置项标识示例(
10、本章案例内容):配置项标识命名命名 规范规范 命名规范,适用于过程文档、生存期中各阶段的计 划、需求、设计、代码、测试、手册等文件。项目文件命名规范由5个字段组成,从左到右依次为 :公司、项目、类型、编号和版本号,如图9A-1所 示。这些字段用一横线(-)分隔。1718图9A-1文档命名规范类类 型主要配置项项/控制项项技术术合同合同 SOW 计计划项项目计计划 质质量保证计证计 划 配置管理计计划 需求需求规规格说说明书书 用户户DEMO 设计设计总总体设计说设计说 明书书 数据库设计库设计 详细设计说详细设计说 明书书 设计术语设计术语 及规规范 编编程源程序 编码规则编码规则 测试测试测
11、试计测试计 划 测试测试 用例 测试报测试报 告 提交运行产产品 验验收报报告 用户户手册19再看配置管理概念图20项目经理 关注的信 息集合9.2.2 基线 基线(基线(Basic LineBasic Line):):“已经正式通过复审和批准的某规约或产品,它 因此可作为进一步开发的基础,并且只能通过 正式的变化控制过程改变。” IEEE对基线的定义 为了管理变更,就要有所区别为了管理变更,就要有所区别所有需加所有需加 以控制的配置项分为以控制的配置项分为基线配置项基线配置项和和非基线非基线 配置项配置项两类。基线配置项最重要。两类。基线配置项最重要。21 基线配置项基线配置项可能包括所有的
12、设计文档可能包括所有的设计文档 和源程序等和源程序等 非基线配置项非基线配置项可能包括项目的各类计可能包括项目的各类计 划和报告等。划和报告等。 注意:基线是一个或者多个配置项的集合注意:基线是一个或者多个配置项的集合 ,因此它的形成往往需要一定的过程。,因此它的形成往往需要一定的过程。内容和状态已经通过技术的复审,并在生存 期的某一阶段被接受了。22 关于配置项复审关于配置项复审目标是验证配置项被接受之前的正确性和完整 性一旦配置项经过复审,并正式成为一个初始基 线,那么该基线就可以作为项目生存期下面开 发活动的起始点。23基线的图示(1) 总体情况24图9.4基线图示(转向)图9.4基线图
13、示基线1基线2基线3 基线4思考:怎样得到基线4?基线的图示(2):细节情况25如何规划一个UCM工程 http:/ 对基线图示(2)的解释26请问:这里的配置项是依据什么 确定的?基线的表格描述也是对基线图 示(2)的解释27建立基线的好处 好处:控制配置项不得随意改动,同时又好处:控制配置项不得随意改动,同时又 不过分阻止合理的变化。不过分阻止合理的变化。对于已成为基线的配置项,虽然可以修改,但 必须接照一个特殊的、正式的过程进行评估, 确认每一处修改。相反,对于未成为基线的配置项,可以进行非 正式修改。28基线不是不让变化!变化意味着两个连续的版本之间的不同(如从配置变化意味着两个连续的
14、版本之间的不同(如从配置 项中添加和去掉的线和图)。项中添加和去掉的线和图)。不能简单地认为变化就是改变。这里的关键词是“不同” 。基线是否可以改变,要看变化本身的特征基线是否可以改变,要看变化本身的特征通常,修复一个系统错误或添加一个功能到系统上,要求 对几个配置项做变化形成变化集。 如果两个变化集不重叠(即,如果它们用于不同的且无关如果两个变化集不重叠(即,如果它们用于不同的且无关 的配置项集合时),它们能够以任意的顺序应用到同样的的配置项集合时),它们能够以任意的顺序应用到同样的 基线上,基线上,这为选择配置的开发者提供了更多的灵活性。29怎样做到这一点 ?有变化才有产品的发布309.2
15、.3 配置控制委员会配置控制委员会(配置控制委员会(Software configuration Software configuration Control BoardControl Board,SCCBSCCB) 可以是一个人也可以是一个小组,基本是由项目经 理及其相关人员组成。SCCBSCCB承担变更控制的所有责任,具体责任承担变更控制的所有责任,具体责任 如下:如下: 评估变更。 批准变更申请。 在生存期内规范变更申请流程。 对变更进行反馈。与项目管理层沟通。 31329.3.1 配置项标识跟踪 配置项应该被唯一标识,同时应该定义软件配配置项应该被唯一标识,同时应该定义软件配 置项的表达约定。置项的表达约定。通常,一个配置项与其他的配置项存在一定的关系 ,跟踪配置项之间的关系是很重要的。图9-6是需求规格配置项和系统测试用例配置项的 跟踪关系。33349.3.2 配置管理环境的建立配置管理环境配置管理环境配置管理库,简称配置库。配置管理库,简称配置库。是用于更好地进行软件配置管理的系统环境。配置库存储内容配置库存储内容所有配置项的集合和配所有配置项的集合和配 置项