资源描述
摘要v绪论绪论vCMM体系结构v可重复级(第2级)v已定义级(第3级)v已管理级(第4级)v优化级(第5级)vCMM过程控制和ISO9000评价标准的区别1 绪论v软件与软件产业的发展过程vCMM的发展过程vCMM与软件产业1.1 软件与软件产业的发展过程v软件相对于硬件面临的问题v软件成本高v软件开发的进度难于控制v估计软件工作量很困难v软件质量难于保证v修正维护软件困难55 60 65 70 75 80 85 90 95 2000 年代百分比 80 60 40 20软件硬件图1.1 软硬件费用之比1.1 软件与软件产业的发展过程v软件开发技术状况图1.2 软件发展趋势Continue年代年代软件开发技术的状况软件开发技术的状况40年代50年代处理对象机器码用途科学计算;军事应用环境与目的 裸机;确定计算机硬件的动作序列开发方法逻辑能力60年代处理对象多种符号语言(独立于机器的)用途科学计算;商业、银行等领域环境与目的 高效的程序设计语言;确定程序设计人员定义的动作序列开发方法功能性程序设计技术;依赖于才智与技巧;以“软件工程”来解决“软件危机”70年代处理对象程序设计=数据结构+算法,“小规模系统程序的设计”用途非数值计算的商业事务应用,以及之能领域的应用环境与目的 发展了应用系统的基础设施;确定数据结构及相应算法Continue开发方法1、程序中分离出数据结构和算法2、结构化分析与设计形成了系统软件与应用软件;开始提出软件开发模型”瀑布模型”80年代处理对象大规模系统的程序设计用途以数据库为中心的计算机信息系统环境与目的 网络、分布系统和个人计算机的普及,软件系统规模扩大;CASE及相应的集成化工具开发方法重点转向构造系统的方法;强调开发组的协作;技术上:关系数据库的客户/服务器计算,COCOMO和CMM的提出,面向对象技术90年代处理对象多媒体用途网络环境与目的 Internet;信息共享,协同工作开发方法Internet的遍布,出现了JAVA;强调集成和可重复性,复用经验,以及过程管理1.1 软件与软件产业的发展过程v软件工程与软件过程管理软件工程(Software Engineering)v指导计算机软件开发和维护的工程科学v旨在确定软件开发技术规范,其中软件开发技术包含:软件开发方法学软件开发方法学、软件工具软件工具和软软件工程环境件工程环境v应用计算机科学计算机科学(用于构造模型预算法)、工程科学工程科学(用于制定规范、设计模型、评估成本及权衡利弊)和管理科学管理科学(用于计划、资源、质量、成本等管理)的基本原理v与其他工程的区别:产品是程序v特点:规范化规范化、文档化文档化Continue1.1 软件与软件产业的发展过程v软件工程与软件过程管理软件过程管理v对软件开发全过程规范化及标准化的管理v软件过程管理技术包括:软件管理学软件管理学和软件软件工程经济学工程经济学v目前,国外普遍采用的软件过程管理方法是:美国卡内基梅隆大学软件工程研究所(SEI)提出的软件能力成熟度模型软件能力成熟度模型(SW-CMM)v目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效益和社会效益v包括:成本估计、进度计划、人员组织、质量保证等1.1 软件与软件产业的发展过程v软件产业与CMM的提出软件产业的发展图1.3 软件产业发展过程Continue1.1 软件与软件产业的发展过程v软件产业与CMM的提出目前国际上最流行的、使用最广泛的是专门针对软件产业制定的CMM认证体系世界上软件发展的水平参差不齐v美国、欧洲、日本和印度等国家:水平高、质量好、规模大v我国进展显著发展速度相对落后1 绪论v vCMM的发展过程vCMM与软件产业1.2 CMM的发展过程vCMM概况解决“软件危机”CMM工作最初是应美国联邦政府的要求提供一种评估软件承包商能力的方法而进行的。Capability Maturity Model For Software(SWCMM),软件能力成熟度模型是由美国卡内基梅隆大学的软件工程研究所(Software Engineering Institute SEI)在1991年推出的。CMM的用途包括:软件过程改进;软件过程评估;软件组织开发能力评价.CMM不是特定的软件开发技术。1.2 CMM的发展过程vCMM的理论基础“丹明链”“全面质量管理”“质量管理顾问公司(质量研究所)”1.2 CMM的发展过程v20世纪30年代,Walter Shewart公布了统计质量控制原理vW.Edward Deming(现代质量思想理论的鼻祖)提出了丹明链式反应的现象1.一个企业改进他的生产过程并坚持不懈地按此运动2.质量改进了3.因为减少了返工、错误和延迟,设计得更好,更有效地使用资源,成本下降了4.因为上升了的质量及降低了的售价,产品的市场占有率提高了5.利润增加了1.2 CMM的发展过程v全面质量管理(TQM,Total Quality Management)CMM产生的理论基础CMM是TQM在软件业应用中的升华目标:满足现在和将来的客户需求项目A项目B项目C项目X系统硬件软件机构TQMCMM过程管理1.2 CMM的发展过程v“质量管理顾问公司(质量研究所)”质量管理学家克罗斯比在1979年成立了一家名为质量管理顾问的公司(质量研究所)IBM公司的罗恩.拉德斯和瓦茨.汉弗莱1.2 CMM的发展过程vCMM的发展1987年9月 SEI 软件能力成熟度框架和软件成熟度问卷1991年 SEI推出了CMM 1.0版本1993年 SEI推出了CMM 1.0版本目前 CMMI(Capability Maturity Model Integration)计划CMM 2.0图1.4 CMM的发展过程1.2 CMM的发展过程vCMM的发展方向CMM的主要特点v基于实际实践v最好的反映了实践的情况v反映了软件过程改进和软件过程评估执行人员的需求v形成文档v文档可以公开使用CMM是活的文档在稳定性需求和不断的过程改进之间提供适当和实际的平衡点1 绪论v v vCMM与软件产业1.3 CMM与软件产业vCMM的用途用于软件过程评估(SPA,Software Process Assessment)、软件过程改进(SPI,Software Process Improvement)和软件能力评价(SCE,Software Capability Evaluation)中设计CMM,就是为了指导软件企业通过判断当前自身的过程成熟度,提出几个对软件质量和过程提高最为关键的问题,以此来选择过程的提高策略1.3 CMM与软件产业v我国软件产业发展软件本身的标准化和提高软件开发管理水平,提高软件质量我国软件企业平均规模较小(75人/企业),企业软件生产总值和出口额与较发达国家(如印度等)相比较存在较大差距(3倍),通过CMM2级认证的企业很少(10家左右)与软件水平较发达的地区(如印度)相比较,国内软件企业的开发水平需要大幅的提高。Continue1.3 CMM与软件产业中国企业CMM认证情况(2001年数据):v是软件企业参与国际竞争的试金石。我国软件要大幅度提高开发能力,走向世界,必须向国际上公认的软件评估标准靠拢。v CMM对中国软件产业是非常有价值的。CMM5级1摩托罗拉CMM3级1东软CMM2级6家左右鼎新、联想、用友、金碟、创智、东软等1 绪论v v v 摘要v绪论vCMM体系结构体系结构v可重复级(第2级)v已定义级(第3级)v已管理级(第4级)v优化级(第5级)vCMM过程控制和ISO9000评价标准的区别2 CMM体系结构vCMM基础知识vCMM主要内容vCMM各级之间的关系vCMM实施的人员构成和组织机构划分vCMM初始级2.1 CMM基础知识v过程(Process)为实现给定目标所执行的一系列操作步骤过程人有技能、受过训练的,以及有积极性的人员过程和方法定义任务之间关系的规程和方法工具和设备ABCD2.1 CMM基础知识v软件过程(Software Process)软件开发人员开发和维护软件及相关残品(如项目计划、设计文档、代码、测试用例和用户手册)的一套行为、方法、实践及变化过程作用对象:软件及其相关产品包括:活动、方法实践和革新2.1 CMM基础知识v软件过程能力(Software Process Capability)描述了遵循某软件过程可能达到的预期结果预期结果的范围v软件过程性能(Software Process Performance)表示一个过程所达到的实际结果实际结果的一种度量2.1 CMM基础知识v软件过程成熟度(Software Process Maturity)针对具体的软件过程进行明确定义、管理、评价、控制和生产实施的程度表明软件工程能力增长的潜能表明机构软件过程的丰富性及其应用于项目的一致性软件过程成熟度意味着必须进行软件过程能力不成熟的软件组织成熟的软件组织v 没有计划/临时计划v 不按计划执行v 没有判断产品质量的基准v 用户不可见v 反应式的工作性质v 经费超支 项目超时v 功能和质量的大打折扣v 组织和管理的能力v 按照计划执行v 软件过程定义的必要更新v 软件过程的明确规则v 全员参与,职责清晰v 质量和过程的监督、评价和分析v 基于经验的进度和预算制定 所有参与者都能自觉遵循软件过程的有关规则,在一种有序的状态下开展软件过程的活动2.1 CMM基础知识1 初始级2 可重复级3 已定义级4 已管理级5 优化级图2.1 CMM分级标准无序、混乱的软件过程。依赖个别人的努力和机遇。建立基本的项目管理过程。相似项目,重复以往成果。文档化、标准化和标准的软件软件过程。软件过程和产品质量有详细的度量标准。持续的对过程进行改进。vCMM体系结构分级标准Continue2.1 CMM基础知识vCMM体系结构内部结构v各关键过程域中规定了执行约定、执行能力、执行活动、质量和验证的标准等组织保证v管理者:经理、各级经理、领导、职员和个人v软件小组:软件工程组、软件工程过程组、软件相关组等2 CMM体系结构v vCMM主要内容vCMM各级之间的关系vCMM实施的人员构成和组织机构划分vCMM初始级2.2 CMM主要内容v软件过程可视性 VS.CMM图2.2 软件过程的可视性软件过程是一个不定形的实体(一个黑盒);需求失控方式in,产品失控方式out客户需求和工作产品受到控制,已建立基本的项目管理实践;“黑盒链”,传输节点上可视盒子的内部结构,即项目定义软件过程中的任务,具有可视性;定义的软件过程得到定量使用和控制,预测结果的能力和准确性提高不断尝试新的和改进的软件开发方法,以受控方式提高生产率和软件质量2.2 CMM主要内容vCMM的内容CMM为软件企业的过程能力提供了一个阶梯式的进化框架,采用分层的方式安排它的组成部分,以适应不同机构使用的需要Continue2.2 CMM主要内容图2.3 五个成熟度级别 Continue2.2 CMM主要内容v初始级类型内容过程特征 软件过程不稳定,项目执行无序、混乱,没有稳定的开发环境工作组 可能存在 度量 没有进行数据集成和分析改进方向 建立项目管理 完善需求 建立软件项目计划 开展SQAContinue2.2 CMM主要内容v可重复级类型内容过程特征 规则化的工作组 系统测试组、软件评估组、软件质量保证组、软件配置管理组、合同管理组、文档支持组和培训组度量 每一个项目建立资源计划改进方向 总结项目成功经验 确定全组织的标准软件过程 建立SPEG 积累数据 加强培训Continue2.2 CMM主要内容v已定义级类型内容过程特征 标准的、一致的工作组 增加了:软件工程过程组、软件工程活动组、软件评估组度量 全过程中收集使用数据 全项目中系统性的共享数据改进方向 软件过程的定量分析 通过质量管理达到软件的质量目标Continue2.2 CMM主要内容类型内容过程特征 可预测的工作组 增加了:软件相关组、定量过程管理活动度量 全组织内进行数据收集与确定 度量标准化数据用于定量的理解软件过程及稳定软件过程改进方向 缺陷防范 主动进行技术改革管理、标识、选择和评价新技术过程变更管理Continue2.2 CMM主要内容v优化级类型内容过程特征 不断改进工作组 增加了:软件相关组、缺陷防范活动协调组、技术改革管理活动组、软件过程改进组度量 数据评估,选择过程改进改进方向 保持持续不断的软件过程改进2.2 CMM主要内容vCMM的内部结构CMM由5个成熟度级别组成每个成熟度级别(除级别1)包含了实现该级别的若干个关键过程域(KPA)每一个KPA进一步被分为称为公共特征的5个部分这些公共特征包括了关键实践(KP),即每一个KPA包括5类KP实现了这些KP后,就实现了关键过程域的目标Continue2.2 CMM主要内容成熟级别关键过程域公共特性关键实践过程能力基本设施及活动目标实施及规范具有由组成具有标志达到说明描述图2.4 CMM的内部结构2.2 CMM主要内容v关键过程域(KPA,Key Process Area)一系列相互关联的操作活动某一级别的一组目标,用以衡量是否具有此级别的能力。每个KPA的目标总结了它的关键实践(KP),目标说明了每一个KPA的界限、范围、内容和关键实践不同级别的KPA(项目、数目、内容)是不同的,但其中很多项都有深层次的联系(上级是下级的深化和延伸)18个关键过程域,分布在25级Continue2.2 CMM主要内容 过程分类过程分类等级等级管理方面管理方面组织方面组织方面工程方面工程方面优化级技术改革管理过程变更管理缺陷防范可管理级定量过程管理软件质量管理已定义级集成软件管理组间协调组织过程焦点组织过程定义培训程序软件产品工程同级评审可重复级需求管理软件项目计划软件项目跟踪与监控软件转包合同管理软件质量保证软件配置管理初始级无序过程无序过程2.2 CMM主要内容v级别2的关键过程域(6个)主要涉及项目管理方面的内容需求管理(RM)对分配需求进行管理。作出详尽的需求,并指出若需求变动时,对时间及金钱的追加软件项目计划(SPP)制定实施软件工程与管理软件项目的合理的计划。重点:可操作性软件项目跟踪和检测(SPTO)按照软件项目计划对软件完成情况和结果进行跟踪和评审,并在必要时作一些纠正软件转包合同管理(SSM)选择高质量的软件分承制方,并进行有效的管理,使对分包商的一种约束软件质量保证(SQA)对软件项目和软件产品质量进行监督和控制,提供了适度的可见性,表现为黑盒之间的断点软件配置管理(SCM)保证软件项目生成的产品在软件生命周期中的完整性2.2 CMM主要内容v级别3的关键过程域(7个)主要涉及项目和机构的问题机构过程焦点(OPF)为改进机构的整体软件过程能力,建立负责软件过程活动的机制机构过程定义(OPD)开发和维护机构标准软件过程及相关资源培训程序(TP)提高个人的技能和知识,更有效、更好的完成工作集成软件管理(ISM)将软件工程和管理活动结合成为密切相关、定义完整的软件过程软件产品工程(SPE)严格定义及过程控制组间协调(IC)内部协调为主(如定期小组会议),外部协调为辅同级评审(PR)同一级别的其他软件人员对该软件项目产品系统评审的方法,以便尽早、有效的排除缺陷2.2 CMM主要内容级别4的关键过程域(2个)主要是定量监测,属于技术活动定量过程管理(QPM)以过程为中心进行管理,定量的控制软件项目的过程效能软件质量管理(SQM)以产品为中心进行管理,定量的评价软件产品的质量,并实现具体的质量目标2.2 CMM主要内容v级别5的关键过程域(3个)主要解决可控制问题,进行问题预防缺陷防范(DP)明确产生缺陷的原因并预防它们再次发生技术改革管理(TCM)确定新技术(如工具、方法和过程),并有序地将这些技术引入机构内过程变更管理(PCM)不断改进机构中所使用的软件过程,提高软件质量和生产率,缩短生命周期
展开阅读全文