软件项目的配置管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
因此,从某种意义上讲,SCM本质上是变更的管理。 SCM使软件产品和过程的变更变为受控的和可预见的,它要求并在适当 的工具支持下能够做到这样几点: (1)谁做的变更? (2)软件有什么变更? (3)什么时间做的变更? (4)为何要变更?
2021/4/18
10
软件项目的配置管理
随着计算机软件的发展,软件开发已由最初的“程序设计阶段” 经历了“软件系统阶段”进而演变为后来的“软件工程阶段”, 软件的复杂性日益增大。此时,如果仍然把软件看成一个单一 的个体,就无法解决所面临的问题,于是配置的概念逐渐引入 软件领域,人们越来越重视软件配置的管理工作。
公司决定支持多平台,同时,为了提高系统的性能和效率,准备采用 第三方厂家的中间件,取代自己做的接口。第一版的缺陷修改,也要 反映到第二版中。
✓ 第2版经过2个多月的开发,最终推向了市场。公司的这个产品不但被
用 户 所 欢 迎 , 也 被 一 家 大 公 司 所 看 中 ( 就 像 IBM 收 购 了 Lotus 和 Rational、Informix一样),你们的产品,正好可以填补这家大公司 产品线的空缺,你所在的公司被这家公司买去了。
配置审核将验证软件产品的构造是否符合需求、标准、或合同 的要求,目的是根据SCM的过程和程序,验证所有的软件产品 已经产生并有正确标识和描述,所有的变更需求都已解决。它
回答:系统和需求是否吻合?是否所有变更都是在版本控制下?
2021/4/18
20
SCM的三个应用层次
SCM从应用层次上可以从低到高分为三级:版本控制、以开发者 为中心、过程驱动。
状态和被修改的信息
从对配置目的的定义可以看出,CMM2的配置管理应包括这样一些 活动:标识给定时间点的软件配置(即所选择的工作产品及其描 述),系统地控制这些配置的更改,并在软件生命周期中保持这 些配置的完整性和可跟踪性。
CMM2认为,受控于配置管理的工作产品,包括交付给用户的软 件产品(如:代码等),以及生成软件产品所需要的有关项(如: 项目管理文件)。
▪ 对软件产品配置的标志和识别
▪ 系统地控制对处于配置管理下的各种软 件制品的修改和更新
▪ 维护软件开发过程中的各种制品的一致 性和可跟踪性
2021/4/18
12
SCM 的目标
❖ 目标1: 软件配置管理活动被定义和计划 ❖ 目标2: 软件开发过程中的制品被识别、控制和管理 ❖ 目标3: 对于处于配置管理下的软件制品的修改被控制 ❖ 目标4: 与软件制品相关的项目组和成员应该被通知制品的目前
2. 协调和实现软件配置管理的组织已经建立; 3. 为进行软件配置管理所需要的各项资源已经分配; 4. 软件配置管理组织里的成员已经接受了软件配置目
标、流程、方法方面的培训; 5. 软件项目组或是其他的相关的部门经过培训,可以
执行他们的软件配置管理活动;
2021/4/18
14
CMM 中对SCM 规定的活动
因此,从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的 是使错误降为最小并最有效地提高生产效率。
SCM通过以下方法,强化软件的可靠性和质量: (1)提供用于识别和控制文档、代码、接口、数据库的结构框架,适用 于软件开发生命周期的所有阶段; (2)全面支撑某一特定开发及维护工作方法,能够适应各种类型的需求、 标准、政策、组织机构以及相关的管理策略; (3)针对特定的基线状态、变更控制、测试、发布版本或审查活动,生 成相应的管理信息和产品信息。
CMM2的配置管理活动最主要的内容是:建立软件基线库,该库 存储开发的软件基线。通过软件配置管理的更改控制和配置审核 功能,系统地控制基线变更和由软件基线库生成的软件产品版本。
2021/4/18
13
要达到 CMM 规定的 SCM要求所需具备的能力
1. 具有对软件基线产品有管理权限的组织已经建立, 例如:软件配置管理委员会;
配置管理是指用于控制系统一系列变化的学科。 通过一系列技术,方法和手段来维护产品的历史,鉴
别和定位产品独有的版本,并在产品的开发和发布阶段 控制变化。 通过有序管理和减少重复性工作,配置管理保证了生 产的质量和效率。
2021/4/18
9
我们知道,在软件建立时,变更是不可避免的,而变更加剧了项目中软 件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确 保变更正确实现并向其他有关人员报告变更。
✓ 下一周,你的队伍增加到14(你的老板准备就此豪赌一把了),与你
3个人的小组不同的是,公司从其他部门为你配备了系统分析师,还 有文档编制员、测试员。你的核心模块已经被大量的用户功能所包装, 成为一个行业应用系统,并开始给用户试用,这是你的系统的第一版。
✓ 3个月后,公司决定把系统升级到第二版,除增加了许多新的功能外,
软件项目的配置管理
2021/4/18
1
2021/4/18
第八章 • 目录
8.1 软件配置及其管理的概念 8.2 配置管理活动和流程 8.3 配置管理需求 8.4 版本管理 8.5 变更管理 8.6 配置状态监测与报告
8.7 基于配置管理的软件项目管理 8.8 配置管理的技术手段和工具
2
2021/4/18
2021/4/18
8
软件配置管理 SCM(Software Configuration Management)
软件配置管理(SCM)是指在开发过程中各阶段,管理 计算机程序演变的学科,它作为软件工程的关键元素, 已经成为软件开发和维护的重要组成部分…… SCM提供了结构化的,有序化的,产品化的管理软件工 程的方法。它涵盖了软件生命周期的所有领域并影响所 有数据和过程。
立,并通知受到影响的项目组和个人; 10. 根据文档化的流程进行软件制品基线的评审;
2021/4/18
16
组织规定和相关责任
❖ 项目级配置管理
▪ 项目配置经理(Project Configuration Manager) 与软件配置管理计划
▪ 变更控制委员会(Change Control Board)
版本控制主要应用于个人独立开发或小组开发,它可以控制任 何文件的版本、实现分支和归并功能、进行文本比较、标记注 释 和 版 本 报 告 信 息 , 主 要 工 具 有 MS 的 Visual SourceSafe 及 Intersolv PVCS。
与软件的第1版、第2版相比,你的项目管理有什么不同?
随着这个产品的演变,项目发生了四个变化: (1)系统的复杂性发生了很大变化; (2) 用于开发该系统的项目环境发生了很大变化; (3)在不同的项目生命周期内,项目控制本身的要求和力度发生了很
大变化; (4)由于组织的变化,管理流程、人员、方式发生了很大变化。
前二类变化要求项目的组织和管理适应系统扩展的需要,后二种变 化则要求项目管理具有适应性和灵活性。
2021/4/18
7
缺乏管理所造成的问题
软件开发人员之间缺乏必要的交流 产品升级和维护所必需的程序和文档非常混乱 开发过程中的人员流动经常发生 因管理不善致使未经测试的软件加入到产品中 项目开发状态不清楚 软件生产达不到规模化
评审、批准并根据文化化的流程对其进行跟踪;
2021/4/18
15
CMM 中对SCM 规定的活动
6. 对于进入基线的制品的修改必须遵循文档化的流程; 7. 发布的产品必须从软件配置库中取出,并且产品发
布的流程须依照文档化的流程和规定; 8. 根据文档化的流程和规定,软件配置项的状态被记
录和跟踪; 9. 记录软件配置管理活动和软件基线内容的报告被建
2021/4/18
6
✓ 公司为你的项目组派来了产品经理、项目经理。公司决定这个产品的
测试,由公司总部独立的测试部门承担。同时,公司决定把项目组增 加到50人,其中有20多人并不在你所在的城市。在新公司里,产品管 理、项目管理、测试、质量等等,都与你过去的环境和做法不同,特 别不同的是,公司准备开发的第3版系统与公司原有的产品要进行融 合,使他们看上去是一家出来的不同的兄弟和姐妹。
❖ 组织级配置管理
▪ 组织配置管理库(Organizational Configuration Management Cell)
1. 负责项目完成后的软件配置管理活动 2. 管理组织级的文档
2021/4/18
17
8.1.2 IEEE来自百度文库配置管理定义
IEEE标准729-1983就配置管理的内容进行了规范的定义: (1)标识:识别产品的结构、产品的构件及其类型,为其分配唯一的 标识符,并以某种形式提供对它们的存取。 (2)控制:通过建立产品基线,控制软件产品的发布和在整个软件生 命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的 最新版本中实现的问题。 (3)状态统计:记录并报告构件和修改请求的状态,并收集关于产品 构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文 件的问题。 (4)审计和审查:确认产品的完整性并维护构件间的一致性,即确保 产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所 用的文件的版本是否正确的问题。 (5)生产:对产品的生产进行优化管理。它将解决最新发布的产品应 由哪些版本的文件和工具来生成的问题。 (6)过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻 执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。 (7)小组协作:控制开发统一产品的多个开发人员之间的协作。例如, 它将解决是否所有本地程序员所做的修改都已被加入到新版本的产品 中的问题。
8.1.2 IEEE的配置管理定义 8.1.3 配置管理概述
8.1.4 配置管理活动的作用
4
配置的概念
配置的概念来自硬件 软件工程师是如何处理接口的? 广而言之:
软件的变化可以发生在一秒钟内 软件的变化可以发生在每一秒钟 软件开发过程下一秒钟是不确定的 情况将会怎样?怎么办?
2021/4/18
第八章 • 目录
8.1 软件配置及其管理的概念 8.2 配置管理活动和流程 8.3 配置管理需求 8.4 版本管理 8.5 变更管理 8.6 配置状态监测与报告
8.7 基于配置管理的软件项目管理 8.8 配置管理的技术手段和工具
3
2021/4/18
8.1 软件配置及其管理的概念 8.1.1 CMM2的配置管理概念
个生命周期中标识系统各部件并提供对软件过程及其软件产品 的跟踪能力。它回答:什么是受控的?
配置变更控制包括在软件生命周期中控制软件产品的发布和变
更,目的是建立确保软件产品质量的机制。它回答:受控产品 怎样变更?谁控制变更?何时接受,恢复,验证变更?
配置状态统计包括记录和报告变更过程,目标是不间断记录所 有基线项的状态和历史,并进行维护,它解决以下问题:系统 已经做了什么变更?此问题将会对多少个文件产生影响?配置 变更控制是针对软件产品,状态统计针对软件过程。因此,二 者的统一就是对软件开发(产品、过程)的变更控制。
2021/4/18
18
8.1.3 配置管理功能概述
CMM2的定义比较抽象,IEEE的定义就比较具体。结合各 体系的定义和要求,我们下面具体来讨论配置管理的概念。
2021/4/18
19
SCM的四大功能领域
配置标识或者又称为配置需求,包括标识软件系统的结构,标
识独立部件,并使它们是可访问的。配置标识的目的,是在整
不懂软件项目的配置管理,就不懂软件开发管理
不对软件项目进行配置管理,就没有进行软件项目 开发管理
2021/4/18
11
8.1.1 CMM2的配置管理概念
软件配置管理是CMM2中6个关键过程域的第6个关 键域。CMM2认为,SCM 的目的是为了建立和维护 软件开发过程中各种制品的完整性和一致性,包括 以下内容:
1. 根据文档化的流程,项目软件配置管理计划已准备 完毕;
2. 文档化的已获批准的软件配置管理计划可用作以后 软件配置管理活动的基础;
3. 软件配置管理库已经创建,并可用作进入基线的软 件制品的存贮库;
4. 处于软件配置管理下的软件制品被标志和识别; 5. 对于配置项的变更请求和问题报告被初始化、计划、
5
软件项目开发管理的新需求
✓ 你在一家小公司做软件工程师,开始的时候,你只有一个人,配了2
个助手。你们研究了一种算法(例如:图象压缩、数据加密等),编 写了一个实现模块。有一天老板看到了你的演示,认为很有市场潜力, 可以结合进公司正在给某行业用户正在准备开发的系统中,成为该系 统的核心技术或一个别人没有的卖点。
2021/4/18
10
软件项目的配置管理
随着计算机软件的发展,软件开发已由最初的“程序设计阶段” 经历了“软件系统阶段”进而演变为后来的“软件工程阶段”, 软件的复杂性日益增大。此时,如果仍然把软件看成一个单一 的个体,就无法解决所面临的问题,于是配置的概念逐渐引入 软件领域,人们越来越重视软件配置的管理工作。
公司决定支持多平台,同时,为了提高系统的性能和效率,准备采用 第三方厂家的中间件,取代自己做的接口。第一版的缺陷修改,也要 反映到第二版中。
✓ 第2版经过2个多月的开发,最终推向了市场。公司的这个产品不但被
用 户 所 欢 迎 , 也 被 一 家 大 公 司 所 看 中 ( 就 像 IBM 收 购 了 Lotus 和 Rational、Informix一样),你们的产品,正好可以填补这家大公司 产品线的空缺,你所在的公司被这家公司买去了。
配置审核将验证软件产品的构造是否符合需求、标准、或合同 的要求,目的是根据SCM的过程和程序,验证所有的软件产品 已经产生并有正确标识和描述,所有的变更需求都已解决。它
回答:系统和需求是否吻合?是否所有变更都是在版本控制下?
2021/4/18
20
SCM的三个应用层次
SCM从应用层次上可以从低到高分为三级:版本控制、以开发者 为中心、过程驱动。
状态和被修改的信息
从对配置目的的定义可以看出,CMM2的配置管理应包括这样一些 活动:标识给定时间点的软件配置(即所选择的工作产品及其描 述),系统地控制这些配置的更改,并在软件生命周期中保持这 些配置的完整性和可跟踪性。
CMM2认为,受控于配置管理的工作产品,包括交付给用户的软 件产品(如:代码等),以及生成软件产品所需要的有关项(如: 项目管理文件)。
▪ 对软件产品配置的标志和识别
▪ 系统地控制对处于配置管理下的各种软 件制品的修改和更新
▪ 维护软件开发过程中的各种制品的一致 性和可跟踪性
2021/4/18
12
SCM 的目标
❖ 目标1: 软件配置管理活动被定义和计划 ❖ 目标2: 软件开发过程中的制品被识别、控制和管理 ❖ 目标3: 对于处于配置管理下的软件制品的修改被控制 ❖ 目标4: 与软件制品相关的项目组和成员应该被通知制品的目前
2. 协调和实现软件配置管理的组织已经建立; 3. 为进行软件配置管理所需要的各项资源已经分配; 4. 软件配置管理组织里的成员已经接受了软件配置目
标、流程、方法方面的培训; 5. 软件项目组或是其他的相关的部门经过培训,可以
执行他们的软件配置管理活动;
2021/4/18
14
CMM 中对SCM 规定的活动
因此,从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的 是使错误降为最小并最有效地提高生产效率。
SCM通过以下方法,强化软件的可靠性和质量: (1)提供用于识别和控制文档、代码、接口、数据库的结构框架,适用 于软件开发生命周期的所有阶段; (2)全面支撑某一特定开发及维护工作方法,能够适应各种类型的需求、 标准、政策、组织机构以及相关的管理策略; (3)针对特定的基线状态、变更控制、测试、发布版本或审查活动,生 成相应的管理信息和产品信息。
CMM2的配置管理活动最主要的内容是:建立软件基线库,该库 存储开发的软件基线。通过软件配置管理的更改控制和配置审核 功能,系统地控制基线变更和由软件基线库生成的软件产品版本。
2021/4/18
13
要达到 CMM 规定的 SCM要求所需具备的能力
1. 具有对软件基线产品有管理权限的组织已经建立, 例如:软件配置管理委员会;
配置管理是指用于控制系统一系列变化的学科。 通过一系列技术,方法和手段来维护产品的历史,鉴
别和定位产品独有的版本,并在产品的开发和发布阶段 控制变化。 通过有序管理和减少重复性工作,配置管理保证了生 产的质量和效率。
2021/4/18
9
我们知道,在软件建立时,变更是不可避免的,而变更加剧了项目中软 件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确 保变更正确实现并向其他有关人员报告变更。
✓ 下一周,你的队伍增加到14(你的老板准备就此豪赌一把了),与你
3个人的小组不同的是,公司从其他部门为你配备了系统分析师,还 有文档编制员、测试员。你的核心模块已经被大量的用户功能所包装, 成为一个行业应用系统,并开始给用户试用,这是你的系统的第一版。
✓ 3个月后,公司决定把系统升级到第二版,除增加了许多新的功能外,
软件项目的配置管理
2021/4/18
1
2021/4/18
第八章 • 目录
8.1 软件配置及其管理的概念 8.2 配置管理活动和流程 8.3 配置管理需求 8.4 版本管理 8.5 变更管理 8.6 配置状态监测与报告
8.7 基于配置管理的软件项目管理 8.8 配置管理的技术手段和工具
2
2021/4/18
2021/4/18
8
软件配置管理 SCM(Software Configuration Management)
软件配置管理(SCM)是指在开发过程中各阶段,管理 计算机程序演变的学科,它作为软件工程的关键元素, 已经成为软件开发和维护的重要组成部分…… SCM提供了结构化的,有序化的,产品化的管理软件工 程的方法。它涵盖了软件生命周期的所有领域并影响所 有数据和过程。
立,并通知受到影响的项目组和个人; 10. 根据文档化的流程进行软件制品基线的评审;
2021/4/18
16
组织规定和相关责任
❖ 项目级配置管理
▪ 项目配置经理(Project Configuration Manager) 与软件配置管理计划
▪ 变更控制委员会(Change Control Board)
版本控制主要应用于个人独立开发或小组开发,它可以控制任 何文件的版本、实现分支和归并功能、进行文本比较、标记注 释 和 版 本 报 告 信 息 , 主 要 工 具 有 MS 的 Visual SourceSafe 及 Intersolv PVCS。
与软件的第1版、第2版相比,你的项目管理有什么不同?
随着这个产品的演变,项目发生了四个变化: (1)系统的复杂性发生了很大变化; (2) 用于开发该系统的项目环境发生了很大变化; (3)在不同的项目生命周期内,项目控制本身的要求和力度发生了很
大变化; (4)由于组织的变化,管理流程、人员、方式发生了很大变化。
前二类变化要求项目的组织和管理适应系统扩展的需要,后二种变 化则要求项目管理具有适应性和灵活性。
2021/4/18
7
缺乏管理所造成的问题
软件开发人员之间缺乏必要的交流 产品升级和维护所必需的程序和文档非常混乱 开发过程中的人员流动经常发生 因管理不善致使未经测试的软件加入到产品中 项目开发状态不清楚 软件生产达不到规模化
评审、批准并根据文化化的流程对其进行跟踪;
2021/4/18
15
CMM 中对SCM 规定的活动
6. 对于进入基线的制品的修改必须遵循文档化的流程; 7. 发布的产品必须从软件配置库中取出,并且产品发
布的流程须依照文档化的流程和规定; 8. 根据文档化的流程和规定,软件配置项的状态被记
录和跟踪; 9. 记录软件配置管理活动和软件基线内容的报告被建
2021/4/18
6
✓ 公司为你的项目组派来了产品经理、项目经理。公司决定这个产品的
测试,由公司总部独立的测试部门承担。同时,公司决定把项目组增 加到50人,其中有20多人并不在你所在的城市。在新公司里,产品管 理、项目管理、测试、质量等等,都与你过去的环境和做法不同,特 别不同的是,公司准备开发的第3版系统与公司原有的产品要进行融 合,使他们看上去是一家出来的不同的兄弟和姐妹。
❖ 组织级配置管理
▪ 组织配置管理库(Organizational Configuration Management Cell)
1. 负责项目完成后的软件配置管理活动 2. 管理组织级的文档
2021/4/18
17
8.1.2 IEEE来自百度文库配置管理定义
IEEE标准729-1983就配置管理的内容进行了规范的定义: (1)标识:识别产品的结构、产品的构件及其类型,为其分配唯一的 标识符,并以某种形式提供对它们的存取。 (2)控制:通过建立产品基线,控制软件产品的发布和在整个软件生 命周期中对软件产品的修改。例如,它将解决哪些修改会在该产品的 最新版本中实现的问题。 (3)状态统计:记录并报告构件和修改请求的状态,并收集关于产品 构件的重要统计信息。例如,它将解决修改这个错误会影响多少个文 件的问题。 (4)审计和审查:确认产品的完整性并维护构件间的一致性,即确保 产品是一个严格定义的构件集合。例如,它将解决目前发布的产品所 用的文件的版本是否正确的问题。 (5)生产:对产品的生产进行优化管理。它将解决最新发布的产品应 由哪些版本的文件和工具来生成的问题。 (6)过程管理:确保软件组织的规程、方针和软件周期得以正确贯彻 执行。它将解决要交付给用户的产品是否经过测试和质量检查的问题。 (7)小组协作:控制开发统一产品的多个开发人员之间的协作。例如, 它将解决是否所有本地程序员所做的修改都已被加入到新版本的产品 中的问题。
8.1.2 IEEE的配置管理定义 8.1.3 配置管理概述
8.1.4 配置管理活动的作用
4
配置的概念
配置的概念来自硬件 软件工程师是如何处理接口的? 广而言之:
软件的变化可以发生在一秒钟内 软件的变化可以发生在每一秒钟 软件开发过程下一秒钟是不确定的 情况将会怎样?怎么办?
2021/4/18
第八章 • 目录
8.1 软件配置及其管理的概念 8.2 配置管理活动和流程 8.3 配置管理需求 8.4 版本管理 8.5 变更管理 8.6 配置状态监测与报告
8.7 基于配置管理的软件项目管理 8.8 配置管理的技术手段和工具
3
2021/4/18
8.1 软件配置及其管理的概念 8.1.1 CMM2的配置管理概念
个生命周期中标识系统各部件并提供对软件过程及其软件产品 的跟踪能力。它回答:什么是受控的?
配置变更控制包括在软件生命周期中控制软件产品的发布和变
更,目的是建立确保软件产品质量的机制。它回答:受控产品 怎样变更?谁控制变更?何时接受,恢复,验证变更?
配置状态统计包括记录和报告变更过程,目标是不间断记录所 有基线项的状态和历史,并进行维护,它解决以下问题:系统 已经做了什么变更?此问题将会对多少个文件产生影响?配置 变更控制是针对软件产品,状态统计针对软件过程。因此,二 者的统一就是对软件开发(产品、过程)的变更控制。
2021/4/18
18
8.1.3 配置管理功能概述
CMM2的定义比较抽象,IEEE的定义就比较具体。结合各 体系的定义和要求,我们下面具体来讨论配置管理的概念。
2021/4/18
19
SCM的四大功能领域
配置标识或者又称为配置需求,包括标识软件系统的结构,标
识独立部件,并使它们是可访问的。配置标识的目的,是在整
不懂软件项目的配置管理,就不懂软件开发管理
不对软件项目进行配置管理,就没有进行软件项目 开发管理
2021/4/18
11
8.1.1 CMM2的配置管理概念
软件配置管理是CMM2中6个关键过程域的第6个关 键域。CMM2认为,SCM 的目的是为了建立和维护 软件开发过程中各种制品的完整性和一致性,包括 以下内容:
1. 根据文档化的流程,项目软件配置管理计划已准备 完毕;
2. 文档化的已获批准的软件配置管理计划可用作以后 软件配置管理活动的基础;
3. 软件配置管理库已经创建,并可用作进入基线的软 件制品的存贮库;
4. 处于软件配置管理下的软件制品被标志和识别; 5. 对于配置项的变更请求和问题报告被初始化、计划、
5
软件项目开发管理的新需求
✓ 你在一家小公司做软件工程师,开始的时候,你只有一个人,配了2
个助手。你们研究了一种算法(例如:图象压缩、数据加密等),编 写了一个实现模块。有一天老板看到了你的演示,认为很有市场潜力, 可以结合进公司正在给某行业用户正在准备开发的系统中,成为该系 统的核心技术或一个别人没有的卖点。