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

下载本文档

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

文档简介

第6章软件配置管理SoftwareConfigurationManagement2023/6/151§6.1概述配置的概念来源于制造系统管理,目标是识别和管理组成复杂系统的各个局部——工件随着软件复杂性的大幅提升,将软件看作单一产品面临许多无法解决的问题,而将其分解为子系统、模块、构件等“工件〞并实施配置管理是富有成效和现实的技术2023/6/152IEEE将SCM定义为:软件配置管理由适于所有软件开发工程的最正确工程实践组成,通过以下手段来提高软件的可靠性和质量:在整个软件生命周期中提供标识和控制文档、源代码、接口定义和数据库等工件机制提供满足需求、符合标准、适应工程管理及其他组织策略的软件开发和维护的方法学为管理和产品发布提供支持信息,如基线状态、变更控制、测试、发布、审计等2023/6/153实施SCM的目的 目的是在软件生命周期内建立和维护软件产品的完整性,保证团队的有效协作 目标是标识变更、控制变更、确保变更正确实现并向其他人员报告变更SCM要解决的问题多人同时修改程序或文档人员流动软件维护中的历史重现控制软件的复杂性影响工程进度的特殊因素已修复的错误仍然存在协同开发中的工作重复2023/6/154SCM的益处可以解决一些常见的问题可以节约用户资金

复用和共享

增强沟通能力可以提高软件开发管理的水平

管理和改进过程,提高成熟度等级

管理工作空间,实现变更控制

管理工作量

管理沟通可以保护企业的知识财富

建立完善的知识管理体系:代码、经验、平安性、可靠性……2023/6/155 所有在软件过程中产生的信息,总称为软件配置项〔SoftwareConfigurationItem,SCI〕,主要包括:计算机程序〔源代码和可执行程序〕描述计算机程序的文档〔针对开发者和用户〕数据〔包含在程序内部或外部〕§6.2配置项SCI2023/6/156

配置项的内容配置项包含内容项目管理过程文档项目任务书个人日报和周报项目计划项目会议纪要项目周报培训记录和培训文档QA过程文档QA不符合报告QA周报评审记录工作产品需求文档测试文档设计文档软件说明书和手册代码第三方产品例如:Oracle,Java等2023/6/157

软件配置控制配置控制是配置管理的核心工作,主要包括:存取控制:设定软件开发人员对软件基准库的存取权限,保证软件开发过程及软件产品的平安性版本控制:是配置管理的根本要求,使得组织在任何时刻都可以获得配置项的任何一个版本变更控制:为软件产品变更提供一个明确的流程,要求任何进行配置管理的软件产品变更都要经过相应的授权与批准才能实施产品发布:保证提交给客户的软件产品是完整的、正确的2023/6/158

配置项标识软件配置项标识是管理配置的前提。标识包括文件名和版本。确定配置项:软件工程在开发过程中会产生成千上百个配置项,那么确定配置项是很重要的明确配置项标识的要求:工程组人员按照标识规那么对配置项进行标识,最后提交给配置管理员纳入配置库统一管理配置项命名:(1)唯一性:在一个工程内不能出现重名(2)可追溯性:名字应能表达相邻配置项之间的关系2023/6/159命名实例程序实体的标识程序名.扩展名:DataVerified.java文档的标识:必须统一工程管理PM立项说明PM-prj开发方案PM-plan工程设计PD需求说明PD-req概要设计PD-prldsg详细设计PD-dtldsg2023/6/1510§6.3基线baselineIEEE关于软件基线的定义 基线是已经通过正式技术评审的某种产品,可以作为进一步开发的根底,并且只能通过正式的变更控制而改变基线是工程库中每个工件的版本快照snapshot基线标识软件过程阶段的里程碑milestone2023/6/1511常用软件基线系统工程需求分析软件设计代码测试系统规格说明书软件需求规格说明书设计规格说明书源代码测试方案过程/数据可操作的系统2023/6/1512基线的属性通过正式评审过程建立存在于基线库,对基线的变更接受更高权限的控制基线是进一步开发和修改的基准和出发点进入基线前,不对变化进行管理;进入基线后,对变化进行有效管理不会变化的内容不纳入基线,变化对其它无影响的也不纳入基线基线具有名称、标识符、版本、日期等属性交付给客户的基线成为一个Release,内部开发用的基线为一个Build2023/6/1513基线的优点重现性

当更新不稳定或不可信时,基线提供一种取消变更的方法可追溯性

建立工程工件之间的前后继承关系版本隔离新工程与随后对原始工程所进的变更进行隔离2023/6/1514基线的种类功能基线(FunctionalBaseline)系统分析、软件定义阶段的系统规格说明指派基线(AllocatedBaseline)软件需求分析阶段的需求规格说明产品基线(ProductionBaseline)组装和测试阶段有关产品的规格说明其他基线2023/6/1515软件过程中的配置基线需求分析设计编码测试方案基线需求基线设计基线编码基线测试基线方案工程开发方案用户手册需求规格分析详细设计说明书概要设计说明书源代码测试报告2023/6/1516§6.4版本控制版本控制是对系统不同版本进行标识和跟踪管理的过程,是SCM的核心版本控制的对象是软件开发过程中涉及的所有文件系统对象,如文件、目录、链接等版本控制的目的在于跟踪控制对象的变更,防止丧失,提供访问授权,实现并行开发……2023/6/1517

版本的控制与同步控制版本的访问控制 工作区中的源文件是从库中恢复得到的一个复制文件。一般有两种工作模式:在工作区域一旦有“读〞请求,就做一次恢复操作,获得复制文件,当“读〞操作结束,该复制文件被删除仅当软件库中的内容发生更改时,才发生交互,而不是每次“读〞操作都与软件库中的文件发生交互版本的同步控制检入Checkin:将软件配置项从用户的工作环境存入到软件配置库的过程检出Checkout:将软件配置项从软件配置库中取出的过程2023/6/1518软件工程师软件配置库检入检出访问控制配置对象〔修改版本〕配置对象〔基线版本〕审计信息解锁拥有者信息加锁配置对象〔基线版本〕配置对象〔提取版本〕访问和同步控制的流程图2023/6/1519版本分支和合并版本分支 人工方法是从主版本复制一份文件,做上标记。实行版本控制之后,版本的分支是一份复制文件,复制过程和标记动作由版本系统自动完成版本合并 版本合并通过对文件的比较来进行,有两种途径:将版本A的内容附加到版本B中合并A和B的内容,形成新的C 后一种途径更容易理解,也符合软件开发的思路2023/6/1520版本的历史记录文件和目录的版本演化的历史可以形象的表示为图形化的版本树版本树由版本依次连接形成,每个结点代表一个版本,根结点是初始版本,叶结点代表最新的版本典型的软件系统包含多个文件和目录,每个文件和目录都有自己的版本树版本的历史记录有助于对软件配置项进行审计,有助于追踪问题的来源版本的历史记录应该包含版本号、修改时间、修改者、修改描述等内容2023/6/1521版本树最简单的版本树只有一个分支,就是版本树的枝干;复杂的版本树除了主干外,还可以包含很多的分支,分支可以进一步包含子分支。V1.0V1.1V1.2V1.3V2.0V1.4V2.1V1.1.1V1.1.22023/6/1522§6.5变更控制软件开发过程中会产生很多变更,如配置项、配置、基线、构建的版本、发布的版本等,变更控制是一种机制,以保证所有变更都是可控的、可跟踪的和可重现的对变更进行控制的机构称为CCB〔ChangeControlBoard,变更控制委员会〕,CCB定期开会对近期产生的变更进行分析、整理,并作出决定2023/6/1523变更机制变更请求CCB评估修改测试或验证关闭变更请求接受提交拒绝2023/6/1524功能变更 功能变更是为了增加或者删除某些功能、或者为了完成某个功能的方法而需要的变更;这类变更必须经过某种正式的变更评价过程,以估计变更需要的本钱和其对软件系统其他局部的影响缺陷变更 缺陷修补是为了修复漏洞需要进行的变更。在工程前期,它是必须进行的,通常不需要从管理角度对这类变更进行审查和批准。在工程后期,如果发现错误的阶段在造成错误的阶段的后面,那么必须遵照标准的变更控制过程来进行

变更类型2023/6/1525批准变更请求?拒绝记录变更请求批准指派给相应的开发人员检出变更请求评估评估向SCM提交并验证变更请求验证相关责任人提出变更请求请求变更实现实现验证正确的变更请求检入验证变更请求关闭关闭通知相关责任人关闭变更需求软件增强缺陷

变更请求管理2023/6/1526变更请求提交识别变更需求,提交并记录变更申请变更请求接收必须建立接收提交的变更请求并进行跟踪的机制。指定接收和处理变更请求的责任人,确认变更请求变更请求评估评估变更风险,确定优先等级变更请求决策制定变更方案

变更管理的实施步骤2023/6/1527变更请求实现增强性变更需要更多的设计工作,而缺陷修复需要建立一个环境,在该环境中可以对缺陷进行重现并测试相应的解决方案变更请求验证增强请求的测试通常涉及验证所做变更是否满足该增强请求的需要。缺陷测试那么简单的验证开发人员的修复是否真正消除了该缺陷。变更请求完成由提交请求的原有请求者中止这一循环过程2023/6/1528§6.6软件配置管理系统软件配置管理系统功能:并行开发支持:同时更改同一模块修订版管理:跟踪变更的时间、原因、责任人,以加快问题解决版本控制:版本重现产品发布管理构建管理:构建过程自动化过程控制:实施访问平安、开发规那么变更请求管理代码共享2023/6/1529

软件配置标准EIAStandardIS-649NationalConsensusStdforConfigurationManagement,Aug.1995

给出根本的CM规那么和业界最好的实践经验来指导标识产品配置并进行高效、有条理的软硬件产品管理IEEEStd1042-1987,GuidetoSoftwareConfigurationManagement(ANSI)

描述CM规那么在软件工程工程中的应用IEEEStd828-1990,StandardforSoftwareConfigurationManagementPlans(ANSI)

是IEEEStd1042-1987的补充IEEE/EIA12207.0-1996,IndustryImplementationofInternationalStandardISO/IEC12207:1995(ISO/IEC12207)StandardforInformationTechnology–SoftwareLifecycleProcesses,Mar1998

用明确的术语定义了软件生命周期的一个公共框架2023/6/1530IEEE/EIA12207.1-1996,Lifecycledata,April1998

给出了在IEEE/EIA12207.0-1996中的活动和任务执行过程中哪些数据可以记录的指导IEEE/EIA12207.2-1996,ImplementationConsiderations,April1998

给出了实现IEEE/EIA12207.0过程要求的指导ISO9000-3:1991(E),QualityMgmt&QualityAssuranceStds-Part3:GuidelinesfortheapplicationofISO9001tothedevelopment,supplyandmaintenanceofsoftware

为应用ISO9001的开发、供给、维护软件的组织提出的指导方针MIL-HDBK-61,ConfigurationManagementGuidance

提供了DoD采购经理、后勤管理员和其他个人已指派的CM职责方面的指导和信息MIL-STD-2549,ConfigurationManagementDatainterface

给出了通过CM数据库进行信息交换时政府的详细接口要求;定义了从一种活动转到另一种活动时商业规那么上必要信息和相互关系计算机软件配置管理方案标准GB/T12505-90

适应于重要软件的SCM方案的制订2023/6/1531CVS〔ConcurrentVersionsSystem,并发版本系统〕是主流的开放源码、网络透明的版本控制系统。它的客户机/效劳器存取方法使得开发者可以从任何因特网的接入点存取最新的代码。它的无限制的版本管理检出的模式防止了通常的因为排它检出模式而引起的人工冲突。它的客户端工具可以在绝大多数的平台上使用。

并发版本系统CVS2023/6/1532CVS根本概念仓库Reository:是CVS效劳器的根目录,所有的工作都保存在这个仓库模块Module:模块里面放的是一个工程的所有文件导入Import:将本地软件工程导入到CVS仓库中导出Checkout:将仓库中的一个模块中的东西到处到本地工作目录下提交修改Commit:将本地修改的文件提交到CVS仓库同步Update:从CVS下载修改正的文件来更新本地文件文件版本Revision:指的是单个文件版本发行版本Release:整个产品的版本标签Tag:对一个文件或多个文件给的符号名2023/6/1533CVS简单命令集检出CVScheckout[-rrev][-Ddate][-ddir][-jmerg]files提交CVScommit[-Rl][-mmsg]files删除CVSremove[options]files增加CVSadd[-kflags][-mmsg]files2023/6/1534文件状态状态状态描述Up-to-date与仓库中最新版本一致Locallymodified已修改但未检入仓库Locallyadded已用add加入但未检入仓库Locallyremoved已用remove删除但未检入仓库Needscheckout有人修改,但未检出Needspatch与上面相似但CVS只发送补丁Needsmerge他人检入新版本,也做了修改Filehadconflictsonmerge与上面相似,但上一个update命令产生过冲突2023/6/1535使用CVS进行版本控制检出Checkout:小组成员从CVS效劳器上检出各自负责的模块进行开发,结束后把文件提交到CVS效劳器提交新文件:在工程中有新的文件参加,要提交到效劳器提交修改文件 分三种情况: ①只有一个人对文件进行修改时,简单提交 ②两个人以上对同一文件的不同局部进行修改,第1人简单提交,其他人要先合并再提交 ③两个人以上对同一文件的相同局部进行修改,第1人可提交,其他人不能提交标记:标识修改者分支管理:用于跟踪缺陷,控制缺陷的扩散2023/6/1536IBM-RationalClearCase&ClearQuestClearCase®软件可用来管理和控制软件开发资产,集成了设计、开发、构建、测试和部署工具,为支持在整个生命周期中对软件资产进行受控访问提供了完整的解决方案CC具有成熟的版本控制,可进行自动化的工作空间管理,支持并行开发、基线管理以及构建和发布管理,为创立、更新、构建、交付、复用和维护关键业务型资产提供了所需的功能ClearQuest®软件增强了开发流程并使之自动化,同时还提高了软件生命周期的可理解性、可预测性和可控制性CQ和CC共同协作,提供了无缝和全面的变更和配置管理解决方案2023/6/1537ClearCase的功能Versioncontrol版本控制为所有文件和目录建立版本Buildmanagement构建管理为每一个软件要素的集成提供担保正确的重现每一个版本跟踪和重建构建Workspacemanagement工作空间管理与其他开发人员并行工作Processcontrol过程控制记录和报告活动、历史和里程碑定制过程2023/6/1538版本控制这是ClearCase的核心功能:支持广泛的文件类型在版本树中观察构件开展的过程对目录和子目录进行版本控制使用常见的检出/编辑/检入范例丰富的数据信息自动的比较和版本间的归并01232023/6/1539工作空间管理工作空间管理保证开发人员拥有自己独立的工作环境,拥有自己的私人存储区,同时可以访问成员间的共享信息ClearCase给每一位开发者提供

温馨提示

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

评论

0/150

提交评论