您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 软件配置管理课程清华大学ppt课件
软件项目管理覃征教授课程编号:44100223大学本科教程2020/6/1清华大学软件学院软件项目管理课件研制组2软件项目管理什么是项目?如何获得项目?如何管理项目?怎样提交项目?结项后应做什么?需求前延质量检验过程项目需求的实际验证课程体系2020/6/1清华大学软件学院软件项目管理课件研制组3如何管理项目?(howtomanageaproject?)2020/6/1清华大学软件学院软件项目管理课件研制组4以项目为基础(核心)以分析为手段(方法)以过程为管理(控制)以资源为质量(风险)以需求为目标(里程碑)2020/6/1清华大学软件学院软件项目管理课件研制组5软件配置管理(SoftwareConfigurationManagement)2020/6/1清华大学软件学院软件项目管理课件研制组6软件项目管理的关键技术…………需求管理…………项目估算…………进度管理…………成本管理…………配置管理…………风险管理…………质量管理…………资源管理2020/6/1清华大学软件学院软件项目管理课件研制组7课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具2020/6/1清华大学软件学院软件项目管理课件研制组8一个问题例子软件出问题了…我马上解决这个问题(忘了变更登记)2020/6/1清华大学软件学院软件项目管理课件研制组9结果…仍然有问题…我已经改过了_2020/6/1清华大学软件学院软件项目管理课件研制组10另一些可能的情况问题现象找不到软件我知道我已经写好了,但是不知道放哪儿了丢失连接原来还是好好的,但是现在它指向的代码已经不见了相互覆盖代码开发人员对相同的代码做了不同的修改,互相覆盖无法返回新的修改比原来的更差,但是无法撤回到原来的情况文档丢失落下一份没有页码的文档文档区分不清落下两分没有标题的文档,哪份是哪份?版本不清客户报告了错误,该给他哪个补丁呢?2020/6/1清华大学软件学院软件项目管理课件研制组11为什么需要配置管理?从软件产业统计数据看对软件系统的需求每10年增长900%软件行业的投资每10年增长200%然而软件的生产效率同期只增长了35%2020/6/1清华大学软件学院软件项目管理课件研制组12为什么需要配置管理?现今:规模:超过25,000,000行源代码人员:上千名程序员时间:大约持续五年花费:$500,000,000开发地点:世界的不同角落在软件开发早期:规模:1000机器代码行以内人员:1个程序员时间:很少超过一个月花费:=$5000开发地点:1处从软件开发的规模看2020/6/1清华大学软件学院软件项目管理课件研制组13软件开发中的一系列普遍问题缺乏可视性不受控的变更缺少监控缺乏可跟踪性缺乏控制配置管理2020/6/1清华大学软件学院软件项目管理课件研制组14与国外的软件开发相比操作系统开发工具技术水平操作系统开发工具技术水平国外国内2020/6/1清华大学软件学院软件项目管理课件研制组15缺乏规范的管理操作系统开发工具技术水平操作系统开发工具技术水平管理国外国内2020/6/1清华大学软件学院软件项目管理课件研制组16配置管理给我们带来了什么好处问题提高软件开发生产率为配置管理设置专门的智能人员,并且要有一些软硬件环境支持,都增加了开发的成本降低软件维护费用确保构建正确的系统更好的质量保证减少缺陷对于简单系统的开发没有实际的意义使软件开发依赖于过程而不是依赖于人2020/6/1清华大学软件学院软件项目管理课件研制组17课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的功能软件配置管理的工具2020/6/1清华大学软件学院软件项目管理课件研制组18配置的概念源于硬件C1C3C2C4C5问题:怎样组装和卸装一辆汽车?ListofPartsC1TireC2TireC3TireC4TireC5Engine问题:制造和维护产品需要做什么?2020/6/1清华大学软件学院软件项目管理课件研制组19软件配置管理的发展配置管理最早在美国的国防工业中被提出。1962年,美国空军发表了有关配置管理的标准-AFSCM375-1.这是第一个配置管理的标准。随着计算机程序越来越复杂和难于管理,软件项目团队越来越大和分布更广,SCM的概念被大多数软件组织接受和实施。2020/6/1清华大学软件学院软件项目管理课件研制组20软件配置管理的概念软件配置管理SCM,通过一套工程规范,在整个软件生命周期中跟踪、记录软件,保证全部变更都记录在案,并保证软件的当前状态是已知的和可重复的。规范工具配置管理人2020/6/1清华大学软件学院软件项目管理课件研制组21配置管理的基本概念配置项(ConfigurationItem)配置项是处于配置管理之下的软件或硬件的集合体。这个集合体在配置管理过程中作为一个实体出现。例如:项目计划,软件配置管理计划,设计文档,源代码,测试数据,项目数据,用户手册,等等。基线(Baseline)已经通过正式复审和批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变更控制过程来改变2020/6/1清华大学软件学院软件项目管理课件研制组22配置管理的基本概念(续)绿线为时间轴红线为基线化的文档或文件交付的产品系统需求软件需求设计规格说明需求分析软件设计编码/单元测试软件集成测试验收测试代码待交付的产品维护基线2020/6/1清华大学软件学院软件项目管理课件研制组23配置管理的基本概念(续)配置数据库(软件制品基线库)项目建立和访问软件制品库,这个制品库主要用来对保存配置项和一些与软件配置管理相关的记录。目前比较好的配置管理工具:Clearcase(Rational),Notes/Domino(Lotus),PVCS(Merant)andVSS(Microsoft).2020/6/1清华大学软件学院软件项目管理课件研制组24配置管理的基本概念(续)文档产品需求说明产品设计文档源代码文件产品数据开发及运行环境……配置数据库的内容包括软件产品及其开发过程中的所有的制品2020/6/1清华大学软件学院软件项目管理课件研制组25配置管理的基本概念(续)对配置数据库的操作:Check-in&Check-out一旦变更请求得到批准,配置管理员从受控库中复制配置项进行修改,这一过程被称为提取我们称复审、批准及将一项实体置于控制环境下的过程为提交2020/6/1清华大学软件学院软件项目管理课件研制组26配置管理的基本概念(续)提取变更请求分析并得到批准软件配置管理控制库测试,复审,批准修改后的配置项配置项更改提交Check-in&Check-out2020/6/1清华大学软件学院软件项目管理课件研制组27课程内容软件配置管理的必要性软件配置管理的概念软件配置管理的目标软件配置管理的相关角色软件配置管理的活动软件配置管理的工具2020/6/1清华大学软件学院软件项目管理课件研制组28软件配置管理的目标目标1:软件配置管理活动被定义和计划目标2:软件开发过程中的制品被识别、控制和管理目标3:对于处于配置管理下的软件制品的修改被控制目标4:与软件制品相关的项目组和成员应该被通知制品的目前状态和被修改的信息2020/6/1清华大学软件学院软件项目管理课件研制组29软件配置管理的目标配置管理版本控制过程控制异地开发支持变更请求管理工作空间管理并行开发支持2020/6/1清华大学软件学院软件项目管理课件研制组30版本控制版本控制是所有配置管理系统的核心功能。配置管理系统的其它功能大都建立在版本控制功能之上。版本控制的对象是软件开发过程中涉及的所有文件系统对象,包括文件、目录和链接。版本控制的目的在于对软件开发进程中文件或目录的发展过程提供有效的追踪手段,保证在需要时可回到旧的版本,避免文件的丢失、修改的丢失和相互覆盖。版本控制是实现团队并行开发、提高开发效率的基础。2020/6/1清华大学软件学院软件项目管理课件研制组31版本控制当时最新版本修改并粗略调试本地工作副本生成的最新版本源代码库修改调试获取最新版本提交最新版本123返回2020/6/1清华大学软件学院软件项目管理课件研制组32工作空间管理所谓工作空间,就是为了完成特定的开发任务(如开发新功能、进行软件测试、或修复BUG,等等),从版本库中选择一组正确的文件/目录的正确版本拷贝到开发人员的开发环境。举例说明:为修复一个旧版本,如REL1中的BUG,开发人员首先需要在自己的开发环境中完全重现REL1所对应的源文件和目录结构,也就是说,需要建立一个对应于REL1的工作空间。2020/6/1清华大学软件学院软件项目管理课件研制组33工作空间管理存在两类工作空间,一类是开发人员的私有空间,在私有空间中,开发人员可以相对独立地编写和测试自己的代码。另一类工作空间是团队共享的集成空间,该空间用于集成所有开发人员的开发成果。工作空间管理包括工作空间的创建、维护与更新、删除等工作空间应具备以下特点:稳定、一致、透明返回2020/6/1清华大学软件学院软件项目管理课件研制组34串行:并行开发支持并行:以增量开发为例开发…1开发…1开发…3开发…3开发…2开发…2开发…4开发…42020/6/1清华大学软件学院软件项目管理课件研制组35并行开发支持为实现并行开发,配置管理系统需要提供灵活的分支机制和工作空间管理。创建分支的过程实际上就是一个建立副本的过程,针对每个发布分别建立相应的分支,分支之间具备相对的独立性,这样不同的发布就可以在各自的分支上并行进行开发,在适当的时候,分支之间可以进行合并,从而实现将Release1中后期开发的功能合并到Release2中。2020/6/1清华大学软件学院软件项目管理课件研制组36并行开发中的冲突当时最新版本当时最新版本源代码库开发者A:修改中,尚未形成新版本开发者B:修改并首先提交2020/6/1清华大学软件学院软件项目管理课件研制组37解决冲突办法原始版本1.0开发者A:后来提交开发者B:修改并首先提交源代码库B的版本成为最新版本1.11.2把修改后的版本与1.1合并返回122020/6/1清华大学软件学院软件项目管理课件研制组38过程控制配置管理系统应该能够支持灵活的配置管理策略和配置管理流程,并实现过程自动化以提高配置管理效率例如,类似于商用关系型数据库中的触发器,配置管理系统应能够提供类似的机制,定义在执行特定的配置管理操作(如检出、检入)之前或之后自动执行特定的任务从而自动化实现预定义的配置管理策略。2020/6/1清华大学软件学院软件项目管理课件研制组39过程控制实例在版本库备份阶段对版本库进行加锁以禁止在备份过程中的版本库的修改;设置额外的安全访问机制以加强配置管理系统的安全策略;Rational提供了一个基于最佳实现经验的流程:统一变更管理UCM(UnifiedChangeManagement),UCM的经验来自上百个客户的数千个项目,用户可以在短时间内(不需要额外的定制,或仅仅通过简单的定制)共享到其他客户在软件配置管理上的经验,一方面可以充分发挥软件配置管理带来的好处,另外节省了大量时间及成本。返回2020/6/1清华大学软件学院软件项目管理课件研制组40异地开发支持经济全球化趋势、企业兼并以及软件规模和复杂性的增加等因素使地理分布的多个软件开发团队进行协作开发的开发模式日益普遍。配置管理系统应该能够有效支持地理上分布的团队之间的远程协作。由于广域网带宽的限制,单一的版本库模式被证明是低效和不实用的典型的异地开发模式在每个地点都有版本库的副本,日常开发针对本地版本库进行,版本库之间有复制和同步机制。2020/6/1清华大学软件学院软件项目管理课件研制组41异地开发支持实例IBMRationalClearCaseMultiSite是业界比较公认的适用于地理位置分散的
本文标题:软件配置管理课程清华大学ppt课件
链接地址:https://www.777doc.com/doc-5684252 .html