CMM的理论与实践_第1页
CMM的理论与实践_第2页
CMM的理论与实践_第3页
CMM的理论与实践_第4页
CMM的理论与实践_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

1、软件项目管理与CMM吉林大学 计算机科学与技术学院李文辉E-mail: 教材与参考资料1. CMM in Practice-Processes for Executing Software Projects at Infosys (pankaj jalote,2000)2. Capability Maturity Model for Software, SEI-91-TR-24, 1991(M.C. Paulk)3. Software Project Management in Practice (pankaj jalote,2002) 第一章 绪论 主要内容1. 软件开发的现状2. CMM简

2、介3. INFOSYS公司的项目管理实践一. 软件开发的现状1. 课程的意义2. 软件危机的提出3. 世界软件产业发展现状及中国软件业的差距 1. 课程的意义1. 软件开发是一个高风险的过程2. 软件过程的管理是软件成功的关键3. 我国现阶段对软件项目管理的人才需求旺盛2. 软件危机的提出“软件危机” 的三个主要原因:1. 用户不易准确描述对软件的需求,经常存在二义性,遗漏甚至错误 2. 大型软件往往需要成百上千人的合作,由于软件系统结构复杂,如何有效组织管理、充分发挥团队作用就成为软件开发成功的关键。 3. 缺乏有效的软件开发方法和工具的支持,过分依靠程序设计在开发中的技巧和创造性,加剧了软

3、件产品的个性化。3. 世界软件产业发展现状及中国软件业的差距 美国印度爱尔兰中国的软件现状 (与印度的比较及反思)软件产值的比较 印度 中国 (软件产值:亿)1999: 53.2 67.52000: 71.7 88.52001: 96.3 102.3软件出口的比较 印度 中国 (软件出口)1999: 39 2.52000: 62 42001: 77.8 7.2 二. 软件能力成熟度模型1. CMM简介2. CMM的成熟度级别3. 不同级别的KPA 4. CMM 的评估方法1. CMM简介CMMcapability maturity model for software软件能力成熟度模型是一种描

4、述有效软件过程的关键元素的框架,CMM描述一条从无序的不成熟的过程到成熟的、有纪律的过程的进化的改进途径。 CMM包括对软件开发和维护进行策划、工程化和管理的实践。遵循这些关键实践,就能改进组织在实现有关成本、进度、功能和产品质量等目标上的能力。CMM的起源与发展我国的CMM现状几个基本概念软件过程 软件过程能力 软件过程性能 软件过程成熟度软件过程 人们用于开发和维护软件及其相关过程的一系列活动,包括软件工程活动和软件管理活动。 软件过程能力 描述(开发组织或项目组)遵循其软件过程能够实现预期结果的程度,它既可对整个软件开发组织而言,也可对一个软件项目而言。 软件过程性能表示(开发组织或项目

5、组)遵循其软件过程所得到的实际结果,软件过程性能描述的是已得到的实际结果,而软件过程能力则描述的是最可能的预期结果,它既可对整个软件开发组织而言,也可对一个特定项目而言。 2. CMM的成熟度级别1. 成熟度等级 分为5级2. 成熟度等级的五个级别的主要特征3. 软件过程的可视性 4. 过程能力和性能预测 成熟度等级1-5初始级 可重复级 已定义级 已管理级 优化级 成熟度等级的五个级别的主要特征初始级特征:软件过程的特点是无秩序的,偶尔甚至是混乱的,几乎没有什么过程是经过定义的,成功依赖于个人努力。 可重复级特征:已建立基本的项目管理过程去跟踪成本进度和功能,必要的过程纪律已经就位,使具有类

6、似应用的项目能重复以前的成功。 已定义级特征:管理活动和工程活动两方面的软件过程均已文档化、标准化,并集成到组织的标准软件过程中,全部项目均采用供开发和维护软件用的组织标准软件过程的一个经批准的普及剪裁版本。 成熟度等级的五个级别的主要特征(续)已管理级特征:已采集详细的有关软件过程和产品质量的度量,无论软件过程还是产品均得到定量了解和控制。优化级特征:利用来自过程和来自新思想、新技术的先导性实验的定量反馈信息,使持续过程的改进成为可能。 软件过程的可视性等级1一个黑盒等级2 项目里程碑处具有管理可视性等级3盒子的内部结构可视等级4软件过程被配备上度量,并得到定量地控制等级5对过程不断改进 过

7、程能力和性能预测随着成熟度增加,预定目标结结果与实际结果间的差距减少随着成熟度增长,实际结果相对预定目标结果的偏差范围减小随着成熟度增加,预定目标结果得到改善3. 不同级别的KPA关键过程区域(key process area)每个关键过程区域 识别出一串相关活动,当这些活动全部完成时,能达到一组对增强过程能力至关重要的目标CMM共有18个KPA,2级6个;3级7个;4级2个;5级3个。KPA的特性:A 每个识别出一串相关活动B 每KPA定义在单个成熟度等级上 C. KPA鉴别出为达到某一成熟度等级所必须解决的问题 等级2的KPAl需求管理 RM(requirements management

8、)l软件项目策划SPP(software project planning)l软件项目跟踪和监督SPTO(spftware project tracking and oversight)l子合同管理SSM (software subcontract management)l质量保证SQA(software quality assurance)l 软件配置管理 SCM(software configuration management)等级3的KPAl组织过程焦点OPF (organization process focus)l组织过程定义OPD(organization process def

9、inition)l培训大纲TP(training program)l集成软件管理ISM (integrated software management )l软件产品工程SPE(software product engineering)l组间协调IC(intergroup coordination)l同行评审PR( peer reviews) 等级4的KPA l定量过程管理QPM (quantitative process management)l 软件质量管理SQM (software quality management)等级5的KPAl 缺陷预防DP (defect prevention)

10、l 技术改革管理TCM (technology change management )l 过程更改管理 PCM (process change management )关键过程域(KPA)的结构目标共同特点(执行约定,执行能力,执行活动,测量和分析,验证实施) 目标目标概括一个PKA中的所有关键实践,并能用于确定一个组织或项目是否已有效地实施此KPA。目标表示每个关键过程域地范围、边界和意图。 共同特点执行约定(Commitment to Perform) 执行能力(Ability to Perform) 执行活动(Activities Performed) 度量和分析(Measurement

11、 and Analysis) 验证实施(Verifying Implementation) 执行约定(Commitment to Perform)执行约定是企业为了建立和实施相应KPA所必须采取的行动,这些行动主要牵涉到企业范围的政策和高层管理的责任。 执行能力(Ability to Perform) 执行能力描述为了使某软件过程得以始终如一地执行的必须在项目或企业中存在的先决条件,是企业实施KPA的前提条件。企业必须采取措施,在满足了这些条件后,才有可能执行KPA的实践活动。执行能力关注于项目计划的实践;资源的配置;责任的布置与授权;以及各种有关的培训等,这些都是为了执行这个关键过程域的活动

12、而对特定人以及作为整体的机构的能力开发起非常重要作用的事务。 执行活动(Activities Performed) 执行活动描述了执行KPA所需求的必要行动、任务和步骤。在五个公共属性中,执行活动是唯一与项目执行相关的属性,其余四个属性则涉及企业CMM能力基础设施的建立。执行活动一般包括计划、执行的任务、任务执行的跟踪等。 验证实施(Verifying Implementation) 验证实施是验证执行活动是否与建立的过程一致,核实以确保所实施的过程是按照原定的计划以及达到其目标,着眼于保证过程的实现要通过独立的个人和高级管理人员验证。涉及到管理的评审和审计以及质量保证活动,包括:过程执行的确

13、保,产品要求的确保,高层管理人员进行的审核和项目经理进行的审核。 测量和分析(Measurement and Analysis) 测量和分析关注于这个关键过程域的活动需要作的度量和度量分析要求。典型的测量和分析的要求是确定执行活动的状态和执行活动的有效性。 4. CMM 的评估方法1. 过程评估与过程评价2. 过程评估的方法过程评估与过程评价软件过程评估:用于确定一个组织的当前软件过程的状态,确定组织所面临的具有高优先级的与软件过程有关的问题,和获得组织对软件过程改进的支持软件过程评价:由于识别合格的能完成软件工作的承包商或者监控现有软件工作中所应用的软件过程的状态过程评估的方法成熟度问卷文档

14、面谈三. INFOSYS公司的项目管理实践1. INFOSYS公司的背景知识 2 SEPG对项目的支持3 高层经理参与项目4 项目经理培训5. 项目管理过程(项目规划, 项目执行, 项目收尾)第二章 软件项目管理概述项目管理的概念项目管理的主要内容项目管理的阶段划分1什么是项目管理?Badiru(1991)将项目管理定义为:一种为高效恰当地完成某个既定的目标而对资源进行管理、分配和调度的过程。 我们也可以把项目管理定义为:一种为实现既定目标而对技术、人力及金融资源所进行的系统集成。 项目的特征一个明确的范围和目标;一个预期的完成时间;有可以利用的资源;一种已定义的性能评估方法;评审工作时使用的

15、评估等级。 2. 项目管理的主要内容项目管理的8方面内容: 范围管理 、质量管理 、 时间管理 、成本管理 、 风险管理 、人力资源管理 、 合同/采购管理 、通讯管理 项目管理主要有三个大的阶段项目规划项目执行项目收尾 项目规划:主要是项目经理审阅合同条款,并制定一个满足他们的计划,实际上包括:定义生命周期、估计工作量和进度、制定任务进度计划等。项目执行:包括执行项目计划、跟踪项目的状态,并在项目的绩效偏离项目计划设定的绩效时采取措施进行纠正。项目收尾:主要是在客户接收工作产品之后对项目进行系统的总结。数据分析是这一阶段的主要任务。 第三章 需求规格和需求管理 需求过程: 需求开发(分析和产

16、生需求的过程, 发生在软件生命周期的开始) 需求管理 (包括对需求的评审, 跟踪和控制活动,贯穿于整个生命周期) 一. 需求分析和需求规格需求分析的过程需求规格说明书 (需求规格说明书的要求)二. 需求变更管理需求是会发生变化的,而且需求的变更可以在项目生命周期的任何时间发生。越是发生在后期,对项目的影响越大。如何管理好需求变更的申请是非常重要的。 变更管理过程 变更管理过程规定如何发出变更申请、何时需要正式批准等。在出现需求变更申请时,必须执行需求变更管理过程。 一般的变更管理过程 记录变更分析变更对工作产品的影响估计变更申请所需的工作量重新估计交付时间表执行累计的成本影响风险如果影响超出一

17、定的限度,则与高级主管一起评审影响客户不再提出变更申请修改工作产品 三. 需求的跟踪管理跟踪矩阵跟踪矩阵的维护和使用第四章 过程定义和过程裁剪过程描述:是项目可以用来遵照执行某些任务的一系列步骤,以及执行这些步骤的指南。开发过程开发过程是提炼用户需求,设计、构建和测试满足这些需求的软件并最终将其交付给客户所需的过程:概要设计详细设计编码和单元测试集成测试系统测试验收测试和安装文档整理系统维护概要设计主要给出从计算机的逻辑角度开发针对用户需求的解决方案。输入准则:需求规格文档经过评审并授权输入:需求规格文档输出准则:概要设计文档经过评审和授权输出:概要设计文档、项目标准、概要设计评审记录度量:工

18、作量、缺陷主要步骤:详细设计进一步对概要设计中的整体应用分解,分解成模块和程序,对程序进行逻辑设计。输入准则:概要设计文档经过评审和授权输入:概要设计文档输出准则:详细设计文档和单元测试计划已经经过评审和授权输出:详细设计文档和单元测试计划度量:工作量、缺陷主要步骤:编码和单元测试根据详细设计用编程语言编写所需要的程序输入准则:详细设计文档经过评审并授权输入:详细设计文档、项目标准、单元测试计划、程序框架输出准则:成功执行所有单元测试计划中的测试用例输出:源代码、可执行代码、测试数据度量:工作量、缺陷主要步骤:集成测试已通过单元测试的模块构建成一个完整软件结构的系统方法输入准则:概要设计文档经

19、过评审和授权输入:概要设计文档和程序输出准则:成功执行所有集成测试计划中的测试用例输出:源代码、可执行代码、测试数据度量:工作量、缺陷主要步骤:系统测试是依据需求规格验证软件产品有效性的活动;目的是为了发现那些只有通过测试整个系统才能暴露的缺陷输入准则:需求规格和概要设计文档经过评审和授权输入:需求规格和概要设计文档输出准则:成功执行所有集成测试计划中的测试用例输出:源代码、可执行代码、测试数据度量:工作量、缺陷主要步骤:验收测试和安装把软件产品集成到它的操作环境中,并在这个环境中经受测试,确保它按需求执行。输入准则:成功的完成系统测试输入:测试后的软件和验收测试文档输出准则:客户签署验收单输

20、出:安装后的软件度量:工作量和缺陷主要步骤:文档主要是操作手册,用户手册及客户需要的其他文档。主要活动:系统维护输入准则:输入:输出准则:输出:度量:主要步骤:过程裁剪过程裁剪是调整组织标准过程的过程,以此来获得用于项目的特定业务或技术需要的过程。主要有:概要裁剪指南详细裁剪指南概要裁剪指南提出基于某些项目特效,在项目中应该如何执行一些通常的活动。概要级剪裁:根据项目特征,应用总体指南标准对标准过程进行剪裁,用到如下特征。(1) 团队和项目经理的经验和熟练程度。(2) 团队人数最多时的人数。(3) 需求透明度(4) 项目持续时间(5) 应用的关键程度详细裁剪指南列出过程中各种生命周期阶段的所有

21、活动,还包括对每个活动相应的裁剪活动,指定每个步骤是必要的还是可裁剪,并给出选择的指南。第五章 过程数据库与过程能力基线 关键要素:过程数据库(process database, PDB)过程能力基线(process capability baseline , PCB)过程财富( process asset)一. 软件度量软件度量可以来量化地描述软件过程和软件产品的不同方面的特点。过程度量产品度量软件度量的作用项目计划控制项目过程分析和改进组织过程二. 过程数据库 是存放从项目可获得的过程性能数据的数据库,这些数据可以用于项目计划、估计、生产率和质量分析等。PDB由已经完成的项目的数据构成PD

22、B用途:1. PDB内容项目特征项目进度项目工作量项目规模故障风险 2. PDB的建立及其访问PDB由SEPG建立项目经理可以阅读二. 过程能力基线过程能力基线(PCB)的主要内容:已交付软件的质量生产率进度计划工作量分布故障引入率过程中故障排除率质量成本故障分布过程财富过程财富的组成:1、 组织标准软件过程2、 组织的软件过程数据库3、 软件生命周期描述4、 标准软件过程的剪裁指南和准则 5、软件有关文档 第六章 工作量估计和进度安排工作量估计模型自顶向下的估计方法 规模估计整体工作量各阶段工作量 COCOMO 模型自底向上的估计方法 各阶段的工作量整体的工作量 此方法可以直接估计工作量 自

23、底向上的估计方法1. 估计方法任务分解每个程序单元的复杂度定义估计每个单元的编码工作量计算整个程序的编码工作量导出整体项目的工作量各阶段的工作量2。程序单元分类的准则2. 程序单元分类的准则各种平台,各种语言,各种环境分类的标准不一样。3. 方法的有效性估计工作量与实际工作量的比较自顶向下的估计方法规模估计整体工作量各阶段工作量估计的步骤:规模估计方法软件规模估计的主要估算方法有代码行(LOC/KLOC)和功能点法 COCOMO模型基本COCOMO模型: 中级COCOMO模型 :进度计划整体进度计划详细进度计划(主要里程碑)第七章 质量计划和缺陷估计软件质量:是指软件产品满足规定的和隐含的需求

24、的能力和有关特征的集合,软件过程质量决定了软件质量。 质量管理量化质量管理计划一. 质量管理1. 软件质量和缺陷软件质量的定义:我们用已交付软件的故障密度作为软件质量的定义即,已交付软件中每个单位规模的故障数。质量管理的任务是规划合理的质量控制任务,然后正确地执行和控制它们,以实现项目的质量目标。 故障排除任务包括需求评审、设计评审、代码评审、单元测试、集成测试、系统测试和验收测试。 2. 质量管理的程序化方法3. 质量管理的量化方法两个关键工作:设定量化质量目标量化管理软件开发过程4. 基于缺陷预测的量化质量管理二. 量化质量管理计划设定质量目标质量过程计划其他阶段的缺陷估计第八章 风险管理

25、风险管理(Risk management)试图使由于意外事件而导致项目失败的概率降到最小。 主要包括: 风险评估 风险控制 一. 风险和风险管理概念 什么是风险:风险是那些可能发生的事件或者条件,如果它确实发生了,则它的发生会对项目产生有害的或者负面的影响。另一方面,风险是一种概率事件,可能发生也可能不发生。 风险管理的目标:旨在识别出风险,然后采取措施使它们对项目的影响最小特点:风险管理是要付出额外的成本;风险管理的价值不容易度量二. 风险评估 风险识别 识别风险常用的方法:风险等级划分 根据风险暴露度划分(RE) RE(r)=Prob (r) *Loss (r)三. 风险控制 风险管理规划

26、 任务是确定使风险后果最小所需的措施,也称风险缓和措施。 风险监督和跟踪 第九章 项目管理计划项目管理计划(Project Management Plan-PMP)文档是项目经理承担的所有规划任务的核心。各种规划任务的结果都出现在该文档中,它是指导所有项目执行的基准文档。分四大部分:项目概述,项目计划,项目跟踪,团队。项目管理计划的主要使用者:业务主管项目经理项目的开发人员一. 项目概述项目的起止日期、项目经理、项目目标、与客户的联系、对客户的主要承诺以及所做的假设前提。二. 项目计划项目过程标准过程的描述、剪裁指南、需求变更管理工作量估计开发环境工具培训计划质量计划里程碑风险管理计划三. 项

27、目跟踪任务跟踪事宜跟踪客户反馈状态报告升级规程四. 项目团队项目机构项目组角色和职责第十章 配置管理软件配置管理(software configuration management, SCM)是项目管理 中专门用于关注系统地控制项目进行中发生的变更的那些部分,由用来识别组织软件产品并控制其修改的一系列活动构成。一. 配置管理概念 软件配置管理(software configuration management, SCM)是项目管理的一项内容,主要涉及对变更进行系统地控制,建立和维护在项目的整个软件生存周期中软件项目产品的完整性。主要包括:标识在给定时间点上软件的配置,系统地控制对配置项的更改、

28、并维护在整个软件生存周期中配置的完整性和可跟踪性。 配置管理的功能与机制配置管理的功能:(1、给出程序的状态;2、给出一个程序的最新版本;3、处理并发更新申请;4、取消一个程序变更;5、防止未授权的变更或者删除;6、提供需求变更申请和程序变更之间的可跟踪性;7、取消一个需求变更;8、显示相关的变更;9、收信当前系统的所有源代码、文档和其他信息。)配置管理的机制包括:(1、文件命名和组织的约定;2、版本控制;3、变更申请的可跟踪性;4、访问控制;5、协调过程;6、修改登记程序。) 二. 配置管理过程 主要有: 配置规划; 配置执行; 状态监控 配置管理规划和制定 标识出典型的配置项SCM人员或者

29、项目经理进行SCM规划。 该阶段的任务 主要有:执行配置管理 配置控制任务主要有两个: 一个涉及程序的状态转移管理; 另一个涉及必须被实现的变更申请的管理 变更申请的步骤:1、接受变更申请(影响分析之后);2、建立一种跟踪机制;3、检出需要进行变更的配置项;4、执行变更;5、注册配置项;6、在项目的整个生命期内维护该项目。 状态监督和审计 三. 配置管理计划示例第11章 评 审评审是最有效的也是最常用的标识故障的方法,可以对文档及代码进行评审。评审还可以使管理人员掌握项目的进展。评审的功能及特点:1、评审可以应用于软件开发各介阶段、产生的各种类型产品范围广;2、评审比软件测试更有效率,因为他看

30、到的是问题本身而不是征兆;3、通过评审不仅可能发现错误,还可以提出对软件产品的改进意见,防止再发生;4、评审可以在产品开发阶段进行,作者对产品细节很清楚,可以及时修改;5、不止发现错误,还有利于评审员、软件项目相关组熟悉有关产品。一. 评审过程 小组评审的几个阶段:评审规划、准备和概述、小组会议、返工及后续修改评审规划标识要评审的产品;选择评审成员及安排评审时间作者准备好相应的材料。 概述和准备1此阶段的目的:是将要评审的软件包交给评审人员,并在需要时,对工作产品进行说明。第一次会议;在正式会议之前,各评审员独立地评审工作产品,作评审日志。需要准备的材料:评审通知、评审标准、被评审的工作产品、正式的评审记录单、评审检查表、其他资料(如相关文档、标准等) 评审会议评审会议的目的:最终拿出故障列表会前检查准备工作;会议期间提出问题;会议结束时,给出问题和故障列表。结论分为:可以通过、不能通过和有条件通过 返工和后续措施作者执行返工,以改正评审会议上提出的所有故障。作者与评审

温馨提示

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

评论

0/150

提交评论