[计算机软件及应用]Ch06 软件配置管理.ppt_第1页
[计算机软件及应用]Ch06 软件配置管理.ppt_第2页
[计算机软件及应用]Ch06 软件配置管理.ppt_第3页
[计算机软件及应用]Ch06 软件配置管理.ppt_第4页
[计算机软件及应用]Ch06 软件配置管理.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2019/3/29,,1,第6章 软件配置管理,Software Configuration Management,2019/3/29,,2,6.1 概述,配置的概念来源于制造系统管理,目标是识别和管理组成复杂系统的各个部分工件 随着软件复杂性的大幅提升,将软件看作单一产品面临许多无法解决的问题,而将其分解为子系统、模块、构件等“工件”并实施配置管理是富有成效和现实的技术,2019/3/29,,3,IEEE将SCM定义为: 软件配置管理由适于所有软件开发项目的最佳工程实践组成,通过以下手段来提高软件的可靠性和质量: 在整个软件生命周期中提供标识和控制文档、源代码、接口定义和数据库等工件机制 提供满足需求、符合标准、适应项目管理及其他组织策略的软件开发和维护的方法学 为管理和产品发布提供支持信息,如基线状态、变更控制、测试、发布、审计等,2019/3/29,,4,实施SCM的目的 目的是在软件生命周期内建立和维护软件产品的完整性,保证团队的有效协作 目标是标识变更、控制变更、确保变更正确实现并向其他人员报告变更 SCM要解决的问题 多人同时修改程序或文档 人员流动 软件维护中的历史重现 控制软件的复杂性 影响项目进度的特殊因素 已修复的错误仍然存在 协同开发中的工作重复,2019/3/29,,5,SCM的益处 可以解决一些常见的问题 可以节约用户资金 复用和共享 增强沟通能力 可以提高软件开发管理的水平 管理和改进过程,提高成熟度等级 管理工作空间,实现变更控制 管理工作量 管理沟通 可以保护企业的知识财富 建立完善的知识管理体系:代码、经验、安全性、可靠性,2019/3/29,,6,所有在软件过程中产生的信息,总称为软件配置项(Software Configuration Item,SCI),主要包括: 计算机程序(源代码和可执行程序) 描述计算机程序的文档(针对开发者和用户) 数据(包含在程序内部或外部),6.2 配置项SCI,2019/3/29,,7,6.2.1 配置项的内容,2019/3/29,,8,6.2.2 软件配置控制,配置控制是配置管理的核心工作,主要包括: 存取控制:设定软件开发人员对软件基准库的存取权限,保证软件开发过程及软件产品的安全性 版本控制:是配置管理的基本要求,使得组织在任何时刻都可以获得配置项的任何一个版本 变更控制:为软件产品变更提供一个明确的流程,要求任何进行配置管理的软件产品变更都要经过相应的授权与批准才能实施 产品发布:保证提交给客户的软件产品是完整的、正确的,2019/3/29,,9,6.2.3 配置项标识,软件配置项标识是管理配置的前提。 标识包括文件名和版本。 确定配置项:软件项目在开发过程中会产生成千上百个配置项,那么确定配置项是很重要的 明确配置项标识的要求:项目组人员按照标识规则对配置项进行标识,最后提交给配置管理员纳入配置库统一管理 配置项命名: (1) 唯一性:在一个项目内不能出现重名 (2) 可追溯性:名字应能体现相邻配置项之间的关系,2019/3/29,,10,命名实例,程序实体的标识 程序名.扩展名: DataVerified.java 文档的标识:必须统一 项目管理PM 立项说明PM-prj 开发计划PM-plan 项目设计PD 需求说明PD-req 概要设计PD-prldsg 详细设计PD-dtldsg,2019/3/29,,11,6.3 基线baseline,IEEE关于软件基线的定义 基线是已经通过正式技术评审的某种产品,可以作为进一步开发的基础,并且只能通过正式的变更控制而改变 基线是项目库中每个工件的版本快照snapshot 基线标识软件过程阶段的里程碑milestone,2019/3/29,,12,常用软件基线,系统工程,需求分析,软件设计,代码,测试,系统规格说明书,软件需求规格说明书,设计规格说明书,源代码,测试计划,过程/数据,可操作的系统,2019/3/29,,13,基线的属性,通过正式评审过程建立 存在于基线库,对基线的变更接受更高权限的控制 基线是进一步开发和修改的基准和出发点 进入基线前,不对变化进行管理;进入基线后,对变化进行有效管理 不会变化的内容不纳入基线,变化对其它无影响的也不纳入基线 基线具有名称、标识符、版本、日期等属性 交付给客户的基线成为一个Release,内部开发用的基线为一个Build,2019/3/29,,14,基线的优点,重现性 当更新不稳定或不可信时,基线提供一种取消变更的方法 可追溯性 建立项目工件之间的前后继承关系 版本隔离 新项目与随后对原始项目所进的变更进行隔离,2019/3/29,,15,基线的种类,功能基线(Functional Baseline) 系统分析、软件定义阶段的系统规格说明 指派基线(Allocated Baseline) 软件需求分析阶段的需求规格说明 产品基线(Production Baseline) 组装和测试阶段有关产品的规格说明 其他基线,2019/3/29,,16,软件过程中的配置基线,需求分析,设计,编码,测试,计划 基线,需求 基线,设计 基线,编码 基线,测试 基线,计划,项目开发计划,用户手册,需求规格分析,详细设计说明书,概要设计说明书,源代码,测试报告,2019/3/29,,17,6.4 版本控制,版本控制是对系统不同版本进行标识和跟踪管理的过程,是SCM的核心 版本控制的对象是软件开发过程中涉及的所有文件系统对象,如文件、目录、链接等 版本控制的目的在于跟踪控制对象的变更,防止丢失,提供访问授权,实现并行开发,2019/3/29,,18,6.4.1 版本的控制与同步控制,版本的访问控制 工作区中的源文件是从库中恢复得到的一个复制文件。一般有两种工作模式: 在工作区域一旦有“读”请求,就做一次恢复操作,获得复制文件,当“读”操作结束,该复制文件被删除 仅当软件库中的内容发生更改时,才发生交互,而不是每次“读”操作都与软件库中的文件发生交互 版本的同步控制 检入Checkin:将软件配置项从用户的工作环境存入到软件配置库的过程 检出Checkout:将软件配置项从软件配置库中取出的过程,2019/3/29,,19,软件 工程师,软件配置库,检入,检出,访问控制,配置对象 (修改版本),配置对象 (基线版本),审计信息,解锁,拥有者信息,加锁,配置对象 (基线版本),配置对象 (提取版本),访问和同步控制的流程图,2019/3/29,,20,6.4.2 版本分支和合并,版本分支 人工方法是从主版本复制一份文件,做上标记。实行版本控制之后,版本的分支是一份复制文件,复制过程和标记动作由版本系统自动完成 版本合并 版本合并通过对文件的比较来进行,有两种途径: 将版本A的内容附加到版本B中 合并A和B的内容,形成新的C 后一种途径更容易理解,也符合软件开发的思路,2019/3/29,,21,6.4.3 版本的历史记录,文件和目录的版本演化的历史可以形象的表示为图形化的版本树 版本树由版本依次连接形成,每个结点代表一个版本,根结点是初始版本,叶结点代表最新的版本 典型的软件系统包含多个文件和目录,每个文件和目录都有自己的版本树 版本的历史记录有助于对软件配置项进行审计,有助于追踪问题的来源 版本的历史记录应该包含版本号、修改时间、修改者、修改描述等内容,2019/3/29,,22,版本树,最简单的版本树只有一个分支,就是版本树的枝干;复杂的版本树除了主干外,还可以包含很多的分支,分支可以进一步包含子分支。,2019/3/29,,23,6.5 变更控制,软件开发过程中会产生很多变更,如配置项、配置、基线、构建的版本、发布的版本等,变更控制是一种机制,以保证所有变更都是可控的、可跟踪的和可重现的 对变更进行控制的机构称为CCB(Change Control Board,变更控制委员会),CCB定期开会对近期产生的变更进行分析、整理,并作出决定,2019/3/29,,24,变更机制,2019/3/29,,25,功能变更 功能变更是为了增加或者删除某些功能、或者为了完成某个功能的方法而需要的变更;这类变更必须经过某种正式的变更评价过程,以估计变更需要的成本和其对软件系统其他部分的影响 缺陷变更 缺陷修补是为了修复漏洞需要进行的变更。在项目前期,它是必须进行的,通常不需要从管理角度对这类变更进行审查和批准。在项目后期,如果发现错误的阶段在造成错误的阶段的后面,则必须遵照标准的变更控制过程来进行,6.5.1 变更类型,2019/3/29,,26,6.5.2 变更请求管理,2019/3/29,,27,变更请求提交 识别变更需求,提交并记录变更申请 变更请求接收 必须建立接收提交的变更请求并进行跟踪的机制。指定接收和处理变更请求的责任人,确认变更请求 变更请求评估 评估变更风险,确定优先等级 变更请求决策 制定变更计划,6.5.3 变更管理的实施步骤,2019/3/29,,28,变更请求实现 增强性变更需要更多的设计工作,而缺陷修复需要建立一个环境,在该环境中可以对缺陷进行重现并测试相应的解决方案 变更请求验证 增强请求的测试通常涉及验证所做变更是否满足该增强请求的需要。缺陷测试则简单的验证开发人员的修复是否真正消除了该缺陷。 变更请求完成 由提交请求的原有请求者中止这一循环过程,2019/3/29,,29,6.6 软件配置管理系统,软件配置管理系统功能: 并行开发支持:同时更改同一模块 修订版管理:跟踪变更的时间、原因、责任人,以加快问题解决 版本控制:版本重现 产品发布管理 构建管理:构建过程自动化 过程控制:实施访问安全、开发规则 变更请求管理 代码共享,2019/3/29,,30,6.6.1 软件配置标准,EIA Standard IS-649 National Consensus Std for Configuration Management, Aug. 1995 给出基本的CM规则和业界最好的实践经验来指导标识产品配置并进行高效、有条理的软硬件产品管理 IEEE Std 1042-1987, Guide to Software Configuration Management (ANSI) 描述CM规则在软件工程项目中的应用 IEEE Std 828-1990, Standard for Software Configuration Management Plans (ANSI) 是IEEE Std 1042-1987的补充 IEEE/EIA 12207.0-1996, Industry Implementation of International Standard ISO/IEC 12207:1995 (ISO/IEC 12207) Standard for Information Technology Software Lifecycle Processes, Mar 1998 用明确的术语定义了软件生命周期的一个公共框架,2019/3/29,,31,IEEE/EIA 12207.1-1996, Lifecycle data, April 1998 给出了在IEEE/EIA 12207.01996中的活动和任务执行过程中哪些数据可以记录的指导 IEEE/EIA 12207.2-1996, Implementation Considerations, April 1998 给出了实现IEEE/EIA 12207.0过程要求的指导 ISO 9000-3:1991 (E), Quality Mgmt & Quality Assurance Stds-Part 3:Guidelines for the application of ISO 9001 to the development, supply and maintenance of software 为应用ISO 9001的开发、供应、维护软件的组织提出的指导方针 MIL-HDBK-61, Configuration Management Guidance 提供了DoD采购经理、后勤管理员和其他个人已指派的CM职责方面的指导和信息 MIL-STD-2549, Configuration Management Data interface 给出了通过CM数据库进行信息交换时政府的详细接口要求;定义了从一种活动转到另一种活动时商业规则上必要信息和相互关系 计算机软件配置管理计划规范GB/T 12505-90 适应于重要软件的SCM计划的制订,2019/3/29,,32,CVS(Concurrent Versions System,并发版本系统)是主流的开放源码、网络透明的版本控制系统。它的客户机/服务器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。它的无限制的版本管理检出的模式避免了通常的因为排它检出模式而引起的人工冲突。它的客户端工具可以在绝大多数的平台上使用。,6.6.2 并发版本系统CVS,2019/3/29,,33,CVS基本概念,仓库Reository:是CVS服务器的根目录,所有的工作都保存在这个仓库 模块Module:模块里面放的是一个项目的所有文件 导入Import:将本地软件项目导入到CVS仓库中 导出Checkout:将仓库中的一个模块中的东西到处到本地工作目录下 提交修改Commit:将本地修改的文件提交到CVS仓库 同步Update:从CVS下载修改过的文件来更新本地文件 文件版本Revision:指的是单个文件版本 发行版本Release:整个产品的版本 标签Tag:对一个文件或多个文件给的符号名,2019/3/29,,34,CVS简单命令集,检出 CVS checkout -r rev-D date-d dir-j merg files 提交 CVS commit -Rl-m msg files 删除 CVS remove options files 增加 CVS add -k flags-m msg files,2019/3/29,,35,文件状态,2019/3/29,,36,使用CVS进行版本控制,检出Checkout:小组成员从CVS服务器上检出各自负责的模块进行开发,结束后把文件提交到CVS服务器 提交新文件:在项目中有新的文件加入,要提交到服务器 提交修改文件 分三种情况: 只有一个人对文件进行修改时,简单提交 两个人以上对同一文件的不同部分进行修改,第1人简单提交,其他人要先合并再提交 两个人以上对同一文件的相同部分进行修改,第1人可提交,其他人不能提交 标记:标识修改者 分支管理:用于跟踪缺陷,控制缺陷的扩散,2019/3/29,,37,6.6.3 IBM-Rational ClearCase & ClearQuest,ClearCase 软件可用来管理和控制软件开发资产,集成了设计、开发、构建、测试和部署工具,为支持在整个生命周期中对软件资产进行受控访问提供了完整的解决方案 CC具有成熟的版本控制,可进行自动化的工作空间管理,支持并行开发、基线管理以及构建和发布管理,为创建、更新、构建、交付、复用和维护关键业务型资产提供了所需的功能 ClearQuest 软件增强了开发流程并使之自动化,同时还提高了软件生命周期的可理解性、可预测性和可控制性 CQ和CC共同协作,提供了无缝和全面的变更和配置管理解决方案,2019/3/29,,38,ClearCase的功能,Version control版本控制 为所有文件和目录建立版本 Build management构建管理 为每一个软件要素的集成提供担保 正确的重现每一个版本 跟踪和重建构建 Workspace management工作空间管理 与其他开发人员并行工作 Process control过程控制 记录和报告活动、历史和里程碑 定制过程,2019/3/29,,39,版本控制,这是ClearCase的核心功能: 支持广泛的文件类型 在版本树中观察构件发展的过程 对目录和子目录进行版本控制 使用常见的检出/编辑/检入范例 丰富的数据信息 自动的比较和版本间的归并,0,1,2,3,2019/3/29,,40,工作空间管理,工作空间管理保证开发人员拥有自己独立的工作环境,拥有自己的私人存储区,同时可以访问成员间的共享信息 ClearCase给每一位开发者提供了一致、灵活的工作空间域: 版本间的透明访问

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论