温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
软件
项目
管理
配置管理
第九章第九章 配置管理配置管理 Contents 配置管理概述配置管理概述 1 相关概念相关概念 2 配置管理的组织配置管理的组织 3 配置管理的计划配置管理的计划 4 配置管理的主要活动配置管理的主要活动 5 配置管理工具配置管理工具 6 1.配置管理概述配置管理概述 我马上解决这个问题我马上解决这个问题(忘了变更登记)(忘了变更登记)软件出问题了软件出问题了 结果结果 我已经改过了。我已经改过了。仍然有问题。仍然有问题。软件项目过程中还可能会遇到以下情况软件项目过程中还可能会遇到以下情况 找不到某个文件的历史版本 开发人员使用错误的版本修改程序 开发人员未经授权修改代码或文档 人员流动,交接工作不彻底 无法重新编译某个历史版本 因协同开发中,或异地开发,版本变更混乱导致整个项目失败 配置的概念源于硬件配置的概念源于硬件 C1 C3 C2 C4 C5 问题:怎样组装和卸装一辆汽车?List of Parts C1 Tire C2 Tire C3 Tire C4 Tire C5 Engine 软件配置管理的发展软件配置管理的发展 配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准AFSCM375-1。20世纪60年代末70年代初,Leon Presser教授在承担美国海军的航空发动机研制合同期间,撰写了一篇名为“Change and Configuration Control”的论文,提出控制变更和配置的概念,软件配置管理概念被首次提出。随着计算机程序越来越复杂和难于管理,软件项目团队越来越大和分布更广,软件配置管理的概念被大多数软件组织接受和实施。软件配置管理的概念软件配置管理的概念 软件配置管理(Software Configuration Management,SCM)的定义为:软件配置管理是一门应用技术、管理各监督相结合的学科,通过标识和文档来记录配置项的功能和物理特性,控制这些特性的变更,记录和报告变更的过程和状态,并验证它们与需求是否一致。为什么需要配置管理?为什么需要配置管理?从软件产业统计数据看从软件产业统计数据看 对软件系统的需求对软件系统的需求每每1010年增长年增长900900 软件行业的投资软件行业的投资每每1010年增长年增长200200 然而软件的生产效率然而软件的生产效率同期只增长了同期只增长了3535 从软件开发的规模看从软件开发的规模看 配置管理给我们带来了什么?配置管理给我们带来了什么?好处好处 问题问题 提高软件开发生产率提高软件开发生产率 为配置管理设置专为配置管理设置专门的职能人员,并门的职能人员,并且要有一些软硬件且要有一些软硬件环境支持,都增加环境支持,都增加了开发的成本了开发的成本 降低软件维护费用降低软件维护费用 确保构建正确的系统确保构建正确的系统 更好的质量保证更好的质量保证 减少缺陷减少缺陷 对于简单系统的开对于简单系统的开发没有实际的意义发没有实际的意义 使软件开发依赖于过程而不是依赖于人使软件开发依赖于过程而不是依赖于人 2.相关概念相关概念 软件配置是指一个软件产品,在软件生命周期各个阶段,产生的各种形式和各种版本的文档、程序及其数据的集合。软件配置项是该集合中的一个元素。软件配置项软件配置项(Software Configuration Item,SCI)例如:项目计划、设计文档、源代码、测试数据、用户手册、管理工具等。软件配置项的状态软件配置项的状态 设计态设计态 受控态受控态 测试态测试态 运行态运行态 交付交付 维护维护 验证验证 验证验证 纠错纠错 测试完测试完 软件配置项的版本软件配置项的版本 数据库设计说明 数据库设计说明V1.1 数据库设计说明V1.2 数据库设计说明V2.0 配置项和配置项的版本类似于面向对象的类和实例。图9.3 软件配置项类及实例 配置项类 配置项实例 配置项的不同版本是从最原始的配置项逐渐演变而来,尽管每个都不相同,但具有相关性。V1.0 V1.1 V1.2 V1.3 V1.4 V2.0 V2.1 软件配置项的分类软件配置项的分类 基线(Base Line)已经正式通过复审和评审的某规约或产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程改变。定义定义 软件设计软件设计 需求分析需求分析 系统工程系统工程 代码编写代码编写 软件测试软件测试 系统提交系统提交 系统规格说明系统规格说明 软件需求规格说明软件需求规格说明 软件设计说明软件设计说明 源代码源代码 测试计划、过程、数据测试计划、过程、数据 可运行系统可运行系统 建立基线的原因建立基线的原因 (1)重现性 (2)可追踪性 (3)报告 建立基线的优点建立基线的优点 基线为开发部件提供了一个定点和快照;新项目可以从基线提供的定点处建立;作为在隔离的私有工作区中进行更新的基础;为团队提供一种取消变更的方法;重新建立基于某个特定发布版本的配置;确保各开发人员的工作保持同步。7 版本是某一配置项已标识了的实例。一个系统版本就是一个系统实例。版本演变的两种方式:版本演变的两种方式:串行演变:串行演变:所形成的每一个新版本都是由当前最新版本演变而来的。并行演变:并行演变:采用一对多的方式进行。两种版本演变形式通常结合在一起,形成更为普通带分支的版本图,也称为版本树版本树。版本版本 文档文档 产品需求说明产品需求说明 产品设计文档产品设计文档 源代码文件源代码文件 产品数据产品数据 开发及运行环境开发及运行环境 配置数据库配置数据库(CMDB)包括软件产品及其开发过程中的所有的制品。对配置数据库的操作:Check-in&Check-out 一旦变更请求得到批准,配置管理员从受控库中复制配置项进行修改,这一过程被称为Check-out(检出)称复审、批准及将一项实体置于控制环境下的过程为Check-in(检入)变更请求分析并变更请求分析并得到批准得到批准 软件配置管理控制库软件配置管理控制库 测试,复审测试,复审,批准批准 修改后的配置项修改后的配置项 配置项配置项 Check-out Check-in Modify