配置管理培训PPT 141页

  • 2.94 MB
  • 2022-04-29 14:42:06 发布

配置管理培训PPT

  • 141页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'软件项目管理覃征教授课程编号:44100223大学本科教程 软件项目管理什么是项目?如何获得项目?如何管理项目?怎样提交项目?结项后应做什么?需求前延质量检验过程项目需求的实际验证课程体系8/4/20212清华大学软件学院软件项目管理课件研制组 如何管理项目?(howtomanageaproject?)8/4/20213清华大学软件学院软件项目管理课件研制组 以项目为基础(核心) 以分析为手段(方法)以过程为管理(控制)以资源为质量(风险) 以需求为目标(里程碑)8/4/20214清华大学软件学院软件项目管理课件研制组 软件配置管理(SoftwareConfigurationManagement)8/4/20215清华大学软件学院软件项目管理课件研制组 软件项目管理的关键技术…………需求管理…………项目估算…………进度管理…………成本管理…………配置管理…………风险管理…………质量管理…………资源管理管理配置管理风险管理质量管理资源管理需求估算项目管理进度管理成本8/4/20216清华大学软件学院软件项目管理课件研制组 课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具8/4/20217清华大学软件学院软件项目管理课件研制组 一个问题例子软件出问题了…我马上解决这个问题(忘了变更登记)8/4/20218清华大学软件学院软件项目管理课件研制组 结果…仍然有问题…我已经改过了>_<8/4/20219清华大学软件学院软件项目管理课件研制组 另一些可能的情况问题现象找不到软件我知道我已经写好了,但是不知道放哪儿了丢失连接原来还是好好的,但是现在它指向的代码已经不见了相互覆盖代码开发人员对相同的代码做了不同的修改,互相覆盖无法返回新的修改比原来的更差,但是无法撤回到原来的情况文档丢失落下一份没有页码的文档文档区分不清落下两分没有标题的文档,哪份是哪份?版本不清客户报告了错误,该给他哪个补丁呢?8/4/202110清华大学软件学院软件项目管理课件研制组 为什么需要配置管理?从软件产业统计数据看对软件系统的需求每10年增长900%软件行业的投资每10年增长200%然而软件的生产效率同期只增长了35%8/4/202111清华大学软件学院软件项目管理课件研制组 为什么需要配置管理?现今:规模:超过25,000,000行源代码人员:上千名程序员时间:大约持续五年花费:$500,000,000开发地点:世界的不同角落在软件开发早期:规模:1000机器代码行以内人员:1个程序员时间:很少超过一个月花费:<=$5000开发地点:1处从软件开发的规模看8/4/202112清华大学软件学院软件项目管理课件研制组 软件开发中的一系列普遍问题缺乏可视性不受控的变更缺少监控缺乏可跟踪性缺乏控制配置管理8/4/202113清华大学软件学院软件项目管理课件研制组 与国外的软件开发相比操作系统开发工具技术水平操作系统开发工具技术水平国外国内8/4/202114清华大学软件学院软件项目管理课件研制组 缺乏规范的管理操作系统开发工具技术水平操作系统开发工具技术水平管理国外国内8/4/202115清华大学软件学院软件项目管理课件研制组 配置管理给我们带来了什么好处问题提高软件开发生产率为配置管理设置专门的智能人员,并且要有一些软硬件环境支持,都增加了开发的成本降低软件维护费用确保构建正确的系统更好的质量保证减少缺陷对于简单系统的开发没有实际的意义使软件开发依赖于过程而不是依赖于人8/4/202116清华大学软件学院软件项目管理课件研制组 课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具8/4/202117清华大学软件学院软件项目管理课件研制组 配置的概念源于硬件C1C3C2C4C5问题:怎样组装和卸装一辆汽车?ListofPartsC1TireC2TireC3TireC4TireC5Engine问题:制造和维护产品需要做什么?8/4/202118清华大学软件学院软件项目管理课件研制组 软件配置管理的发展配置管理最早在美国的国防工业中被提出。1962年,美国空军发表了有关配置管理的标准-AFSCM375-1.这是第一个配置管理的标准。随着计算机程序越来越复杂和难于管理,软件项目团队越来越大和分布更广,SCM的概念被大多数软件组织接受和实施。8/4/202119清华大学软件学院软件项目管理课件研制组 软件配置管理的概念软件配置管理SCM,通过一套工程规范,在整个软件生命周期中跟踪、记录软件,保证全部变更都记录在案,并保证软件的当前状态是已知的和可重复的。规范工具配置管理人8/4/202120清华大学软件学院软件项目管理课件研制组 配置管理的基本概念配置项(ConfigurationItem)配置项是处于配置管理之下的软件或硬件的集合体。这个集合体在配置管理过程中作为一个实体出现。例如:项目计划,软件配置管理计划,设计文档,源代码,测试数据,项目数据,用户手册,等等。基线(Baseline)已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程来改变8/4/202121清华大学软件学院软件项目管理课件研制组 配置管理的基本概念(续)绿线为时间轴红线为基线化的文档或文件交付的产品系统需求软件需求设计规格说明需求分析软件设计编码/单元测试软件集成测试验收测试代码待交付的产品维护基线8/4/202122清华大学软件学院软件项目管理课件研制组 配置管理的基本概念(续)配置数据库(软件制品基线库)项目建立和访问软件制品库,这个制品库主要用来对保存配置项和一些与软件配置管理相关的记录。目前比较好的配置管理工具:Clearcase(Rational),Notes/Domino(Lotus),PVCS(Merant)andVSS(Microsoft).8/4/202123清华大学软件学院软件项目管理课件研制组 配置管理的基本概念(续)文档产品需求说明产品设计文档源代码文件产品数据开发及运行环境……配置数据库的内容包括软件产品及其开发过程中的所有的制品8/4/202124清华大学软件学院软件项目管理课件研制组 配置管理的基本概念(续)对配置数据库的操作:Check-in&Check-out一旦变更请求得到批准,配置管理员从受控库中复制配置项进行修改,这一过程被称为提取我们称复审、批准及将一项实体置于控制环境下的过程为提交8/4/202125清华大学软件学院软件项目管理课件研制组 配置管理的基本概念(续)提取变更请求分析并得到批准软件配置管理控制库测试,复审,批准修改后的配置项配置项更改提交Check-in&Check-out8/4/202126清华大学软件学院软件项目管理课件研制组 课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的活动软件配置管理的工具8/4/202127清华大学软件学院软件项目管理课件研制组 软件配置管理的目标目标1:软件配置管理活动被定义和计划目标2:软件开发过程中的制品被识别、控制和管理目标3:对于处于配置管理下的软件制品的修改被控制目标4:与软件制品相关的项目组和成员应该被通知制品的目前状态和被修改的信息8/4/202128清华大学软件学院软件项目管理课件研制组 软件配置管理的目标配置管理版本控制过程控制异地开发支持变更请求管理工作空间管理并行开发支持8/4/202129清华大学软件学院软件项目管理课件研制组 版本控制版本控制是所有配置管理系统的核心功能。配置管理系统的其它功能大都建立在版本控制功能之上。版本控制的对象是软件开发过程中涉及的所有文件系统对象,包括文件、目录和链接。版本控制的目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失、修改的丢失和相互覆盖。版本控制是实现团队并行开发、提高开发效率的基础。8/4/202130清华大学软件学院软件项目管理课件研制组 版本控制当时最新版本修改并粗略调试本地工作副本生成的最新版本源代码库修改调试获取最新版本提交最新版本123返回8/4/202131清华大学软件学院软件项目管理课件研制组 工作空间管理所谓工作空间,就是为了完成特定的开发任务(如开发新功能、进行软件测试、或修复BUG,等等),从版本库中选择一组正确的文件/目录的正确版本拷贝到开发人员的开发环境。举例说明:为修复一个旧版本,如REL1中的BUG,开发人员首先需要在自己的开发环境中完全重现REL1所对应的源文件和目录结构,也就是说,需要建立一个对应于REL1的工作空间。8/4/202132清华大学软件学院软件项目管理课件研制组 工作空间管理存在两类工作空间,一类是开发人员的私有空间,在私有空间中,开发人员可以相对独立地编写和测试自己的代码。另一类工作空间是团队共享的集成空间,该空间用于集成所有开发人员的开发成果。工作空间管理包括工作空间的创建、维护与更新、删除等工作空间应具备以下特点:稳定、一致、透明返回8/4/202133清华大学软件学院软件项目管理课件研制组 串行:并行开发支持并行:以增量开发为例开发…1开发…1开发…3开发…3开发…2开发…2开发…4开发…48/4/202134清华大学软件学院软件项目管理课件研制组 并行开发支持为实现并行开发,配置管理系统需要提供灵活的分支机制和工作空间管理。创建分支的过程实际上就是一个建立副本的过程,针对每个发布分别建立相应的分支,分支之间具备相对的独立性,这样不同的发布就可以在各自的分支上并行进行开发,在适当的时候,分支之间可以进行合并,从而实现将Release1中后期开发的功能合并到Release2中。8/4/202135清华大学软件学院软件项目管理课件研制组 并行开发中的冲突当时最新版本当时最新版本源代码库开发者A:修改中,尚未形成新版本开发者B:修改并首先提交8/4/202136清华大学软件学院软件项目管理课件研制组 解决冲突办法原始版本1.0开发者A:后来提交开发者B:修改并首先提交源代码库B的版本成为最新版本1.11.2把修改后的版本与1.1合并返回128/4/202137清华大学软件学院软件项目管理课件研制组 过程控制配置管理系统应该能够支持灵活的配置管理策略和配置管理流程,并实现过程自动化以提高配置管理效率例如,类似于商用关系型数据库中的触发器,配置管理系统应能够提供类似的机制,定义在执行特定的配置管理操作(如检出、检入)之前或之后自动执行特定的任务从而自动化实现预定义的配置管理策略。8/4/202138清华大学软件学院软件项目管理课件研制组 过程控制实例在版本库备份阶段对版本库进行加锁以禁止在备份过程中的版本库的修改;设置额外的安全访问机制以加强配置管理系统的安全策略;Rational提供了一个基于最佳实现经验的流程:统一变更管理UCM(UnifiedChangeManagement),UCM的经验来自上百个客户的数千个项目,用户可以在短时间内(不需要额外的定制,或仅仅通过简单的定制)共享到其他客户在软件配置管理上的经验,一方面可以充分发挥软件配置管理带来的好处,另外节省了大量时间及成本。返回8/4/202139清华大学软件学院软件项目管理课件研制组 异地开发支持经济全球化趋势、企业兼并以及软件规模和复杂性的增加等因素使地理分布的多个软件开发团队进行协作开发的开发模式日益普遍。配置管理系统应该能够有效支持地理上分布的团队之间的远程协作。由于广域网带宽的限制,单一的版本库模式被证明是低效和不实用的典型的异地开发模式在每个地点都有版本库的副本,日常开发针对本地版本库进行,版本库之间有复制和同步机制。Internet8/4/202140清华大学软件学院软件项目管理课件研制组 异地开发支持实例IBMRationalClearCaseMultiSite是业界比较公认的适用于地理位置分散的项目团队的高性能软件配置管理解决方案。支持跨多个地点的分布式开发:异地开发团队应该能共享开发成果复制和同步配置数据:远程网络的带宽总是相对有限的,因此如何高效、可靠地在异地之间复制和同步配置数据是异地开发和远程协作的关键。提供配置数据的本地存取:出于效率上的考虑,开发人员的日常开发工作应该是基于本地存取的方式,并应该依赖与远程网络连接。返回8/4/202141清华大学软件学院软件项目管理课件研制组 变更请求管理变更请求管理是软件配置管理的一个重要组成部分。变更请求管理记录、跟踪和报告针对软件系统的任何变更,其核心是一个适合软件开发组织的变更处理流程。8/4/202142清华大学软件学院软件项目管理课件研制组 变更请求管理典型的变更处理流程涉及如何提交变更请求,如何对变更请求进行复审以便决定是否实施,由谁实施,如何实施,如何确定变更请求准确实施完成等方面。变更请求管理系统应具备强大的统计、查询和报告功能,及时准确报告软件的变更现状,开发团队的工作进展和负荷,软件的质量水平以及变更的发展趋势。典型的变更请求有:新的功能需求、对已有功能的优化和改进、针对发现的缺陷的修复等。返回8/4/202143清华大学软件学院软件项目管理课件研制组 课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具8/4/202144清华大学软件学院软件项目管理课件研制组 SCM的相关角色主要角色配置经理模块主管配置管理员变更控制委员会CCB8/4/202145清华大学软件学院软件项目管理课件研制组 配置经理配置经理职能制定SCM规程,形成文档并分发给有关人员建立系统基线,包括备份规定确保对基线的变更都经过授权人员的批准确保对基线的所有变更都进行充分细致的记录,以便可以重新生成或回退确保所有基线变更都经过回归测试规定解决异常问题的关注焦点8/4/202146清华大学软件学院软件项目管理课件研制组 模块主管模块主管职能把握模块的设计为参与模块及其接口工作的人员提供建议控制模块的所有更改评审模块的变更和定期进行回归测试,确保模块的完整性8/4/202147清华大学软件学院软件项目管理课件研制组 配置管理员项目的SCM库系统的日常管理和维护受控库的访问管理受控库基线的备份和更新新版本的辅助验证协助自受控库的生成产品SCM活动记录规定的SCM测量SCM报告的生成和发布。编制SCM的有关文档,如版本说明文档参与配置审核8/4/202148清华大学软件学院软件项目管理课件研制组 变更控制委员会变更控制委员会职能软件变更控制委员会SCCB是大中型软件项目中协调变更的集中控制机制,是对每个变更进行评审,做出相关决策的实体。它批准建立软件配置项SCI的软件基线和标识,授权SCM组从软件基线库生成产品,对SCI变更要求的处理给出建设性意见。在实际操作中,软件开发经理常常兼任系统层CCB的主席。8/4/202149清华大学软件学院软件项目管理课件研制组 变更控制委员会(续)变更控制委员会(CCB)负责决定是否对配置项进行变更,对变更请求做出决策。有时,又被称为变更控制授权委员会(CCA)。包括下列人员:软件配置管理小组代表项目组代表质量保证小组代表公司管理层代表市场代表客户代表8/4/202150清华大学软件学院软件项目管理课件研制组 课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具8/4/202151清华大学软件学院软件项目管理课件研制组 配置管理过程模型SCM需求计划功能定义配置项定义配置控制状态核实子模块需求/控制设计复查配置管理配置审核发布软件产品概念需求设计编码/测试综合测试系统测试发布SCM的功能在软件开发过程中的体现8/4/202152清华大学软件学院软件项目管理课件研制组 软件配置管理的功能软件配置管理的功能主要有配置标识配置控制状态报告配置审核和复审8/4/202153清华大学软件学院软件项目管理课件研制组 软件配置管理的功能表软件配置管理配置控制配置标识配置项计划配置结构命名规则版本编码基线计划库系统管理配置项管理版本控制基线管理变更控制影响分析配置项修改控制回顾/测试配置状态报告数据收集生成报告数据分析配置审核基线审核FCAPCA8/4/202154清华大学软件学院软件项目管理课件研制组 配置标识配置标识是配置管理的一项内容。它包括为系统选择配置项并在技术文档中记录其物理和功能特性。配置标识的主要活动1、定义项目生存周期中所建立的基线2、识别和选择要纳入管理的配置项3、维护配置标识8/4/202155清华大学软件学院软件项目管理课件研制组 定义项目生存周期中的基线2初步确定基线生成的时间段3识别基线下的配置项和工作产品1选定项目的外部基线和开发基线步骤8/4/202156清华大学软件学院软件项目管理课件研制组 项目基线基线描述说明功能基线经评审和批准的文档,描述了系统的功能特性和证实这些规定的功能已实现所要求的验证。指派基线描述待开发软件所要实现功能的文档(又称需求基线)开发配置定义在软件开发进程中不断演化和累积的配置。(描述了在设计,编码和测试任一阶段的配置。)产品基线最初批准的描述配置项全部必要的功能和物理特性的文档;经产品验收测试验证所选择具有的功能和物理特性对软件,包括电子媒体上的软件代码和确保代码能再生和维护所要求的其它项(如,软件工具及文档)。8/4/202157清华大学软件学院软件项目管理课件研制组 项目开发周期内回顾和基线化活动软件活动回顾、审核需求分析初步设计详细设计编码测试模块测试模块联合测试系统概念需求分析发布测试整体测试软件开发SDRSSRFCAPCAPDRCDRTRR功能基线需求基线产品基线开发配置软件基线SRR8/4/202158清华大学软件学院软件项目管理课件研制组 典型的项目基线基线内容建立时机功能基线系统详细说明书操作定义工作状态系统需求回顾(SRR)系统设计回顾(SDR)合同签订需求基线软件需求说明书软件需求回顾(SRR)界面需求说明书开发配置软件顶层设计文档初步设计回顾(PDR)软件详细设计文档详细设计回顾(CDR)软件测试计划软件测试脚本源文件,可执行文件(单元,整体,系统)测试产品基线软件产品说明书功能配置审核(FCA)物理配置审核(PCA)源文件,目标文件,可执行代码用户文档返回8/4/202159清华大学软件学院软件项目管理课件研制组 标识配置项主要任务:识别和选择要纳入配置管理的配置项和其他项;建立并维护软件层次;按命名方案赋予配置项标识符;标识配置项特性,建立和更新配置项清单。8/4/202160清华大学软件学院软件项目管理课件研制组 配置项和其它项配置项包括交付给顾客的软件产品,及用以创建这些软件产品的其它项。通常标识配置项有:管理计划(SDP,SQAP,Testplan,SCMP,etc.)需求和设计文档;用户和维护文档及手册;测试文档,测试驱动,及数据;支持软件(包括编译器和操作系统);8/4/202161清华大学软件学院软件项目管理课件研制组 配置项和其它项数据字典和各种交叉引用资料;源代码,可执行代码包括外部构件;链接文件和其它由构建(build)过程形成的产品;产品发布记录和报告,如版本描述文档;用于构建或运行产品的数据库;接口控制文档;任何用于支持产品开发和运行的项。8/4/202162清华大学软件学院软件项目管理课件研制组 软件配置项列表ID配置项基线所属人状态版本属性来源1管理总述初步成本分析目标时间表功能王卫红初步调查1.0Doc调研2可行性工作计划现有系统回顾系统需求提议功能刘波初步调查1.0Java调研3现有系统回顾现有系统情况功能刘超飞可行性分析1.0Doc开发4系统需求问题和需求声明功能王猛可行性分析1.0PPT开发5需求/成本分析功能李达可行性分析1.0doc开发6数据/文件汇总系统需求提议功能赵磊可行性分析1.0Doc调研7程序清单输入/出列表功能张森可行性分析1.0Doc开发 软件配置项列表(续)ID配置项基线所属人状态版本属性来源8系统详细说明需求王卫红初步计划1.0Doc总结9软件需求需求刘波初步计划1.0Doc总结10界面需求说明需求施铮初步计划1.0Doc总结11软件顶层设计开发李世宁初始开发1.0Doc设计12软件详细设计开发陈祖宁初始开发1.0Doc设计13软件测试计划开发张森初始开发1.0Doc设计14软件测试脚本开发赵磊初始开发1.0Doc设计15源文件可执行文件开发李达初始开发1.0Doc开发16软件产品说明书产品王猛实现1.0Doc开发17源文件目标文件可执行代码产品刘超飞实现1.0Doc开发18用户文档产品王卫红实现1.0Doc开发返回 配置项的命名按已建立的命名方案对每一配置项都给予唯一的标识给文档和代码赋予名称和版本信息命名规则要求:唯一性、反映配置间的相互关系(可追溯性)通常采用树状命名和文本-数字命名规则。如何确定配置项如果这个文档(或制品,软件文件,硬件组件等)被丢失、损坏或者误用错误版本,那么会不会以任何形式影响到我们按时的,在预算范围内发布出正确地产品呢?8/4/202165清华大学软件学院软件项目管理课件研制组 树状命名(实例)PCL-TOOLSCOMPILEBINDEDITMAKE-GENFORMSSTRUCTURESHELPDISPLAYQUERYFORMS-SPECTSAST-INTERFACEFORM-108/4/202166清华大学软件学院软件项目管理课件研制组 命名方案项目名称/项目版本编号_相应工作产品名称_文档版本编号。以下划连线“_”分开各名称域。例如:FMS_SDP_1.0.doc;FMS_SQAP_2.1.doc;FMS_ModuleA_SRS_1.1.doc;FMS_ModuleA_DetailLevelDesign_1.doc8/4/202167清华大学软件学院软件项目管理课件研制组 相应工作产品名称应建立相应工作产品名称与其简称的对照表。相应工作产品名称的简称(例如SDP,SRS)不是必需的,但如果要使用,应遵守规定的标准。如下表:工作产品名称简称验收测试计划(AcceptanceTestPlan)验收测试报告(AcceptanceTestReport)软件构件设计文档(ComponentDesignDocument)详细设计文档(DetailDesignDocument)软件功能设计文档(FunctionalDesignDocument)软件功能说明书(FunctionalSpecification)…ATPATRCDDDDDFDDFS…8/4/202168清华大学软件学院软件项目管理课件研制组 文档版本编号起草版本的编号为0.1,0.2,0.3,...,0.10.版本编号可以根据项目需要延伸到若干层,例如,0.1,0.1.1,0.1.1.1。一旦文档版本得以确认后,版本编号应该始自1.0。版本编号不断变化为:1.0,1.1,1.2,...,1.10。项目可以根据需要将版本编号晋升为2.0,2.1,2.2等。返回8/4/202169清华大学软件学院软件项目管理课件研制组 配置控制在配置项的配置标识和基线正式确立之后,对其更改进行系统管制的过程。变化控制系统记录每次变化的相关信息(变化的原因、变化的实施者以及变化的内容等)。查看这些记录信息,有助于追踪出现的各种问题。记录正在执行的变更的信息,有助于做出正确的管理决策。返回8/4/202170清华大学软件学院软件项目管理课件研制组 建立配置管理的库系统开发者1开发者n集成工程师测试动态库工作空间受控配置管理员静态库基线备份已发布产品受控的机器Checkin/out配置项草稿文件8/4/202171清华大学软件学院软件项目管理课件研制组 配置管理的库系统——人力资源库姓名特长职责编组情况管理者王卫红系统分析管理、协调,系统设计开发小组王卫红刘波系统分析管理、协调,系统设计开发小组王卫红刘超飞编程子系统设计,代码实现开发小组王卫红王猛编程子系统设计,代码实现开发小组王卫红李达理论研究理论研究,算法实现开发小组王卫红赵磊理论研究理论研究,算法实现开发小组王卫红张森编程、测试代码实现,系统测试开发小组测试小组王卫红 配置管理的库系统——硬件资源库编号名称功能性能负责人1台式PC系统设计,软件开发优王卫红2台式PC系统设计,软件开发优刘波3台式PC系统实现良刘超飞4台式PC系统实现良王猛5台式PC系统实现,理论研究良李达6台式PC系统实现,文档亨利良赵磊7台式PC系统实现,系统测试良张森 配置管理的库系统——软件资源库编号名称版本作用1JBuilder2005软件开发、调试、测试2OfficeXP文档整理,理论研究3WTK2.2软件开发,程序调试 配置管理的库系统——文档资料库编号内容完成人版本属性来源1管理总述初步成本分析目标时间表王卫红1.0Doc调研2可行性工作计划现有系统回顾系统需求提议刘波1.0Java调研3现有系统回顾现有系统情况刘超飞1.0Doc开发4系统需求问题和需求声明王猛1.0PPT开发5需求/成本分析李达1.0doc开发6数据/文件汇总系统需求提议赵磊1.0Doc调研7程序清单输入/出列表张森1.0Doc开发 配置管理的库系统——文档资料库(续)编号内容完成人版本属性来源8系统详细说明王卫红1.0Doc总结9软件需求刘波1.0Doc总结10界面需求说明施铮1.0Doc总结11软件顶层设计李世宁1.0Doc设计12软件详细设计陈祖宁1.0Doc设计13软件测试计划张森1.0Doc设计14软件测试脚本赵磊1.0Doc设计16软件产品说明书王猛1.0Doc开发18用户文档王卫红1.0Doc开发 基线管理基线管理是保证开发团队共同工作的一种有效方式,基线管理包括:基线(产品)建立、发布和维护内部发布:内部使用的基线一般称为建造(Build);外部发布:交付给外部顾客的产品一般称为发布(Release)。基线报告和基线备份。8/4/202177清华大学软件学院软件项目管理课件研制组 基线的演进需求分析总体设计详细设计代码实现系统测试需求说明书总体设计说明详细设计说明待发产品V1.0V1.1V1.2V1.3V1.0V1.0V1.0V1.1V1.2V1.1V1.2V1.3V1.1V1.28/4/202178清华大学软件学院软件项目管理课件研制组 基线日志(报告)建造ID日期需求说明版本测试脚本设计说明…BD1(文档号)2/15V1.0…BD2(文档号)3/24V1.1V1.0…BD3(文档号)5/05V1.2V1.1V1.0…BD4(文档号)5/22V1.2V1.1V1.0…BD5(文档号)6/03V1.2V1.1V1.1…BD6(文档号)6/15V1.2V1.1V1.1…BD7(文档号)7/04V1.3V1.2V1.2…………………8/4/202179清华大学软件学院软件项目管理课件研制组 版本控制软件配置管理的一项基本功能是随着产品的开发和发布可靠地构建和重构产品的版本。版本控制;日常备份和灾难备份。为确保每一发布的产品版本能够重新生成,所有必要的信息都必须加以维护返回8/4/202180清华大学软件学院软件项目管理课件研制组 变更控制(ChangeControl)配置控制通过建立一个有序的变更控制过程来确保对每项变更的影响给于适当的考虑;对任何基线化的配置项的更改经过批准;批准的更改得以实施;记录必要的测量信息。8/4/202181清华大学软件学院软件项目管理课件研制组 变更控制过程是否通过?驳回归档通过分派给开发者Checkout变更评审评审向SCM提交申请、验证验证生成初始变更请求请求变更实施变更执行核实变更结果Checkin核实结束结束通知申请人结束需求变更功能增强功能欠缺8/4/202182清华大学软件学院软件项目管理课件研制组 提出变更识别变更需要,对受控的配置项的修改提出一个变更请求(ChangeRequest-CR)。变更请求-对软件变更需要的描述。变更控制过程通过CR的流动来实现。对基线配置项的任何修改都必须与某一CR相关。8/4/202183清华大学软件学院软件项目管理课件研制组 变更请求表单采购变更请求变更申请ID:021变更配置项:采购清单版本:v1.2变更描述:增加采购项变更原因:由于项目的进度原因,需要增加采购项优先级:2版本所有人:施铮日期:2005-5-5变更通过责任人签字:王卫红日期:2005-5-6变更所费时间(以天记):-10评价:为了节约时间计,增加采购项,应避免因采购引起风险导致进度拖延变更执行记录:采购清单版本:v1.2变更实施描述(或评论):变更合理,予以批准实施人:刘波日期:2005-5-6实施验收责任人签字:王卫红日期:2005-5-6 接受变更项目必须建立接收提交的变更请求并进行跟踪的机制。指定接收和处理变更请求的责任人;确认变更请求;检查变更请求的内容是否清晰,完整,正确;包括:已存在的重复请求,或误解。对变更请求赋予唯一的标识符;建立变更跟踪纪录。8/4/202185清华大学软件学院软件项目管理课件研制组 变更评价对请求变更的配置项进行系统的分析,确定变更影响的范围和修改的程度,为确定是否有必要进行变更提供参考依据。8/4/202186清华大学软件学院软件项目管理课件研制组 变更评价技术影响分析接口影响分析成本影响分析进度影响分析变更分类变更评价8/4/202187清华大学软件学院软件项目管理课件研制组 影响分析工具变更请求评价核查表识别变更类型按变更分类方案确定其急迫性、变更的性质、变更配置项的性质,抓住需特别关注的问题。技术影响分析主要考虑在总体上如何实施变更和何时实施为好。接口影响分析识别更改要涉及到的其它配置项,并描述对其它配置项进行变更的影响,受影响的配置项应包括各种计划成本影响分析分解实施变更的工作,核算实施变更所需花费的工作量,成本和其他附加资源进度影响分析估计实施进度,量化对项目里程碑或交付目标日期的影响。8/4/202188清华大学软件学院软件项目管理课件研制组 变更处置变更请求及附件提交SCCB进行评审并决策。处置结果说明批准指派实施;指派验证;更新版本;指派发布不批准请求的变更没有必要;不可行;有更好的替代解决推迟决定要求提供附加信息;返回评价,要求给予进一步的分析;等待必要的内或外协商8/4/202189清华大学软件学院软件项目管理课件研制组 变更处置对每一项批准的变更请求,由SCCB指定变更的完成日期(duedate)尽快;给出明确的实施期限;要求得到相应配置项的明确的版本。8/4/202190清华大学软件学院软件项目管理课件研制组 变更实施项目(软件)经理负责管理已批准变更请求的实施软件经理标识工作包(workpackages)安排工作进程和实施责任人监控进度和质量实施责任人检出(checkout)变更项;实施更改并记录更改信息;提交验证。8/4/202191清华大学软件学院软件项目管理课件研制组 变更验证对已实施的变更必须在配置项/单元不同层次上加以验证。验证包括:审查、(同级)评审或走查(inspection,peerrevieworwalkthrough);重新运行测试计划中规定的测试;或对测试计划增添相应的附加内容;进行回归测试。验证实施后,验证组织提交验证结果及必要的证据;将通过验证的配置项检入(checkin)受控库,记录配置信息。8/4/202192清华大学软件学院软件项目管理课件研制组 结束变更结束变更的准则:经验证表明变更已正确的实施;变更未产生非预期的副作用;有关的代码、文档和数据项已全部更新并已纳入受控库。配置管理员职责必要时将原基线备档,建立新的基线;完成配置记录;关闭CR,并通知变更提请人(originator)返回8/4/202193清华大学软件学院软件项目管理课件研制组 配置状态报告状态纪实记录和描述受控库中的配置项在任何给定时间的状态。记录的配置状态至少应包括:软件项和相关文档的标识及其当前状态;基线进化的状态;建议和已批准变更的状态;已批准更改的实施状态。配置报告的目的:将记录中所包含的信息形成文件并进行传播。8/4/202194清华大学软件学院软件项目管理课件研制组 变更日志变更ID变更状态发起人开始日期配置项版本(新/旧)实施人结束日期021执行中李达3.5采购清单V1.1V1.0王卫红3.15022执行中刘超飞4.11采购清单V1.2V1.1刘波4.13023执行中张森5.20采购清单V1.2V1.2王卫红5.26进展报告从2005年5月5日到2005年6月20日变更ID相关任务ID工作概况状况021020与供应商订立合同已完成008合同验收待完成 配置状态报告(实例)变更ID变更状态发起人开始日期配置项版本(新/旧)实施人结束日期021执行中linda5.5采购清单V1.1V1.2付欣5.15………………………变更日志项目名称:××公司MIS系统进展报告项目名称:××公司MIS系统进展报告从2005年5月5日到2005年6月20日变更ID相关任务ID工作概况状况021020与供应商订立合同已完成008合同验收待完成…………8/4/202196清华大学软件学院软件项目管理课件研制组 配置状态报告(实例)配置项状态报告配置项名称描述位置采购清单所有采购组件清单/采购/采购内容/清单采购合同采购合同清单及合同附件…合同验收报告已通过验收的合同报告…………备注位置:配置项存储位置的受控库的名称描述:配置项的版本信息以及关联项的详细信息返回8/4/202197清华大学软件学院软件项目管理课件研制组 配置审核目的:验证配置管理过程和标准在项目的开发活动中得到遵循;已开发的产品配置与规定的要求相符合。配置审核可分为:过程审核-基线审核;在项目的配置管理计划中安排基线审核活动;按计划和软件基线审核规程实施审核。产品审核8/4/202198清华大学软件学院软件项目管理课件研制组 产品审核目的:为验收产品和启动软件的运行使用向顾客或用户提供充分的证据;建立软件产品基线。产品审核包括:功能配置审核(FunctionalConfigurationAudit)物理配置审核(PhysicalConfigurationAudit)8/4/202199清华大学软件学院软件项目管理课件研制组 功能配置审核验证待交付软件产品的实际性能与已成为基线的需求和设计文档的要求一致。确保软件配置项的功能完整性。RequirementMatrix可以用作FCA的检查工具之一8/4/2021100清华大学软件学院软件项目管理课件研制组 物理配置审核对照已成为基线的技术文档,对待交付软件产品的版本进行正式的检查。确保软件配置项的物理完整性。PCA的完成表明产品基线的建立。返回8/4/2021101清华大学软件学院软件项目管理课件研制组 课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具8/4/2021102清华大学软件学院软件项目管理课件研制组 软件配置管理的工具在配置管理中使用工具的目的是为了尽可能的实现非创造性、繁琐活动的自动化,但是没有那个工具可以完全代替人实现完全自动化。配置管理的工具支持的复杂度和成熟度是不同的。根据这一点可将它们分为三类:个人支持工具与项目有关的支持工具公司范围内使用的支持工具8/4/2021103清华大学软件学院软件项目管理课件研制组 配置管理的工具的分类变更控制版本控制联编处理个人支持工具与项目有关的支持工具集成配置管理活动公司范围内使用的支持工具工作项工作项工作项工作项8/4/2021104清华大学软件学院软件项目管理课件研制组 常用配置管理的工具 -个人支持工具个人支持工具主要功能是版本控制、联编处理和变更控制,这些都是比较原始的配置管理工具。可作为入门级的工具例如:CVS,VisualSourceSafe等等。他们是目前使用最多的工具。8/4/2021105清华大学软件学院软件项目管理课件研制组 常用配置管理的工具 -与项目有关的支持工具与项目有关的支持工具能够满足开发团队和集成人员的需求。这些工具大都能用于分布式环境下的开发并且能够创建、合并、变更以及发布交付和单个配置项。这些工具通常包括一些工作空间处理的功能。这类工具常见的例子:CLEARCASE,PVCS8/4/2021106清华大学软件学院软件项目管理课件研制组 常用配置管理的工具 -公司范围内使用的支持工具又称为“面向整个开发过程的工具”,为配置管理提供了一个完整的解决方法。企业级配置管理工具,在实现传统意义的配置管理的基础上又具有比较强的过程管理功能。常见的例子:ALLFUSIONHarvest。8/4/2021107清华大学软件学院软件项目管理课件研制组 软件配置管理工具 应具备的先进性易于使用、配置和管理配置管理与变更请求管理以及需求管理天然地集成可靠而独立的安全机制支持远程开发开放而全面的API(主流技术)全面支持中文(双字节)内容…8/4/2021108清华大学软件学院软件项目管理课件研制组 ClearCase能够解决的问题你的开发人员是否能在一种无法控制的状态下访问原代码?修改过的错误是否还会出现?你的集成过程是否拖延了产品投放市场的时间?你是否能有效的管理多个任务?你当前的解决方案是否能应付变化的需求?你是否有同步开发的问题?你是否能重构所有的建立(Build)?8/4/2021109清华大学软件学院软件项目管理课件研制组 SoDApreVueSQASuiteQuantifyCoveragePurifyRequisiteProRoseClearQuestClearCasePowerBuilder,MicrosoftVisualStudio,Developer2000ModelsandSub-UnitsBase-lineProjectsChangeRequestsandSoftwareClearCase的集成(Windows)8/4/2021110清华大学软件学院软件项目管理课件研制组 与资源管理器的集成8/4/2021111清华大学软件学院软件项目管理课件研制组 被集成到自然的工作环境中与开发工具的集成8/4/2021112清华大学软件学院软件项目管理课件研制组 版本控制建立管理工作空间管理过程控制ClearCase功能8/4/2021113清华大学软件学院软件项目管理课件研制组 控制任何文件的版本可对目录和子目录进行版本控制采用版本树结构完美归并功能文本比较丰富的注释和版本报告信息654321203主支CheckoutEditCheck-inRel1修复错误建立分支CheckoutEditCheck-in归并、比较增量存储Rel1ClearCase版本控制8/4/2021114清华大学软件学院软件项目管理课件研制组 ClearCase并行开发自动建立分支自动进行归并8/4/2021115清华大学软件学院软件项目管理课件研制组 ClearCase并行开发确保修改过的错误不会再出现归并效用能够找到所有未归并的文件减少集成时间对于一个项目可以节省几个月,对于一个建立(Build)可以节省几天归并的工作能跨越多个存储库在多个平台上同时发布归并功能可以同时归并32个文件传送一个缺陷的修改到多个版本可以在任何方向上建立分支和进行归并不会拖延产品投放市场的时间使高风险的工作隔离在单独的分支上8/4/2021116清华大学软件学院软件项目管理课件研制组 工作空间管理的重要性提供一个与开发人员友好的环境为开发人员创建可靠的工作空间保证在集成期间能够继续开发为开发工作提供可靠的同步机制8/4/2021117清华大学软件学院软件项目管理课件研制组 foo.cfoo.hVOBbar.c私人存储srcfoo.cbar.cfoo.hVIEWClearCase工作空间管理建立灵活的工作空间透明的访问版本元素支持非ClearCase主机访问视图8/4/2021118清华大学软件学院软件项目管理课件研制组 ClearCase工作空间管理ClearCase是最好的SCM解决方案,可以提供两种工作模式在Unix和WindowsNT上提供动态视图在WindowsNT上提供快照视图8/4/2021119清华大学软件学院软件项目管理课件研制组 ClearCase工作空间管理动态视图使用网络连接ClearCase的存储库直接更新访问数据历史代码库的整体视图审核建立(Build)网络建立(Build)8/4/2021120清华大学软件学院软件项目管理课件研制组 ClearCase工作空间管理快照试图在WindowsNT上能够可靠地被分离使用只能定期更新可以远离办公室工作可以在本地进行建立(Build)操作8/4/2021121清华大学软件学院软件项目管理课件研制组 同步开发是永远可靠的ClearCase为同步开发提供最多的自动机制8/4/2021122清华大学软件学院软件项目管理课件研制组 ClearCase工作空间管理的益处集成期间不影响开发工作继续进行在集成工作进行过程中能够保护个人的视图同步开发是永远可靠的为被检出的开发工作提供标识自动检测多个同时被检出的文件并确保它们被适当的归并8/4/2021123清华大学软件学院软件项目管理课件研制组 ClearCase建立管理提供100%的重构能力全面的审核追踪:谁做的做了什么怎么做的什么时间自动生成配置报告了解建立(Build)之间的差异比较两个建立(Build)确定文件是否有改动8/4/2021124清华大学软件学院软件项目管理课件研制组 工作站工作站工作站工作站HPSunSGIRS/6000DECSunHPVOBServerVOBServerVOB可以分布在多个服务器之间在多台主机间进行Build操作ClearCase建立管理支持UNIX和Windows平台的建立跨越多台主机进行分布式构造8/4/2021125清华大学软件学院软件项目管理课件研制组 ClearCase全面支持ISO9000唯一确定地标识每一个软件项的版本确定地标识每个软件项及其在整个软件产品的版本确定标识软件产品在开发、分配和安装过程中的各个状态管理同一个软件部分被多名开发人员同时更改协调多个软件产品根据需要在多个地点的更新8/4/2021126清华大学软件学院软件项目管理课件研制组 长方形表示一个分支;圆形表示检入的时间排序的版本号;箭头表示从一个分支到另一个分支的变更回归(归并);“发布版本1.0/1.1”是这个版本上的标签。目录是元素,也是版本对象。ClearCase对目录也进行版本管理。为了能在前一个版本中修复BUG,或者从新版本退回到就版本,就有必要恢复一个旧的版本。目录被修改,在检入的时候,也要进行记录。还可以借助目录机制,重建或构造软件系统的前一个版本。343210Release1.0main2103rel1_bugfix2rel210Release1.1配置管理的版本树8/4/2021127清华大学软件学院软件项目管理课件研制组 3210main2103Bugfix4210main3432Telecom10Release1.0Telecom1.0并行开发的版本控制8/4/2021128清华大学软件学院软件项目管理课件研制组 ClearQuest变更需求管理工具可以了解谁改了什么、为什么正确及时的项目状态报告最大限度的利用你的工程师资源利于团队交流8/4/2021129清华大学软件学院软件项目管理课件研制组 提供图形化的项目状况8/4/2021130清华大学软件学院软件项目管理课件研制组 支持Web8/4/2021131清华大学软件学院软件项目管理课件研制组 可视化的项目状况8/4/2021132清华大学软件学院软件项目管理课件研制组 易学易用8/4/2021133清华大学软件学院软件项目管理课件研制组 小结软件配置管理是应用于整个软件过程中的保护性活动。SCM标识、控制、审核和报告软件在开发过程中及其在发布之后发生的修改。除文档、程序和数据外,开发环境也置于配置控制之下。一旦配置项已被开发并经过评审,将建立基线;对基线配置的修改将导致该配置生成新的版本,及新基线的建立。8/4/2021134清华大学软件学院软件项目管理课件研制组 小结配置项的修改历史应进行跟踪,并能恢复历史版本。变更控制应形成规程,以保证在对配置对象进行修改时保持一致性。配置状态报告应提供给所有受影响的人。对配置管理过程活动和软件产品进行必要的审核。8/4/2021135清华大学软件学院软件项目管理课件研制组 本章前沿作为CMM二级的六个关键过程域之一,配置管理本身是一个软件过程,因此,软件配置管理系统必须提供过程管理的功能。传统配置管理系统的过程支持能力比较弱,而且它们的版本管理模型是基于文件的,不适应基于构件的软件开发,针对这两个问题进行研究作为目前的一个研究方向。8/4/2021136清华大学软件学院软件项目管理课件研制组 本章前沿针对配置管理系统对过程支持的需求,用工作流技术开发过程支持工具和基于Petri网的过程建模方法,不失为一个研究的突破口。有人提出一个基于Petri网的软件过程元模型,及其映射为工作流模型的方法。另外,CMM只规定了配置管理所应遵循的规范,但没有规定具体的做法,还提出一个符合CMM规范的配置管理过程Petri模型。8/4/2021137清华大学软件学院软件项目管理课件研制组 本章前沿针对开发、集成和维护过程中构件的分类与检索、相关关系维护等需求,可以考虑给出一个基于构件的版本管理模型,它的版本标识具有分类属性和关系属性,更适合基于构件的配置管理。基于J2EE框架的、B/S结构的配置管理系统实现方案,使系统以工作流系统为底层支撑环境,提供过程建模工具,支持复杂过程的建模和例化,具有分布式、跨平台的特点,提供变更控制等较完整的配置管理功能。8/4/2021138清华大学软件学院软件项目管理课件研制组 思考题配置文档的规范化是配置管理的一个要求。请你设计一个一页纸的功能说明书模板。练习使用vss或者cvs版本控制工具8/4/2021139清华大学软件学院软件项目管理课件研制组 总结以过程为管理(控制)软件项目控制过程项目估算进度管理成本管理配置管理自底向上方法自顶向下方法Delphi技术类比估计功能点方法COCOMO模型自动估算工具基本概念进度管理技术-关键路径法-进度管理工具成本预算成本控制成本管理技术-盈余量-预算基线-挣值分析配置管理必要性配置管理概念配置管理目标配置管理角色配置管理功能配置管理工具8/4/2021140清华大学软件学院软件项目管理课件研制组 本章结束8/4/2021141清华大学软件学院软件项目管理课件研制组'