软件过程管理Unit01.ppt_第1页
软件过程管理Unit01.ppt_第2页
软件过程管理Unit01.ppt_第3页
软件过程管理Unit01.ppt_第4页
软件过程管理Unit01.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

1、1,Unit One,Software Process Management Chen Gang International School of Software, WHU,2,软件过程管理,Unit One,第一单元 绪论 陈刚 武汉大学国际软件学院,3,教学安排,Unit One,包括课程报告、期终考试,内容为基本知识和课程设计。,总学时:,课时分配:,实践环节:,考核方式:,总成绩 = 平时成绩(40%) + 期终考试(60%),36学时,第一单元 4 第二单元 2 第三单元 6 第四单元 2 第五单元 2 第六单元 3 第七单元 3 第八单元 4 第九单元 5 第十单元 5 合 计 3

2、6,4,条件与准备,Unit One,软件工程、高级语言程序设计,预备知识:,教材及主要参考书:,一、教材 1. 朱少民,左智编著,软件过程管理,清华大学出版社,2007 2. 美Philippe Kruchten著,RUP导论,机械工业出版社,2004 二、主要参考书 1. 美克里西斯等著,CMMI过程集成与产品改进指南,清华大学出版社,2004 2. 谭云杰著,大象:Thinking in UML,中国水利水电出版社,2009,5,目录,Unit One,一、引言 二、软件与软件产业的发展过程 三、软件危机及其原因 四、过程及其要素 五、CMM与软件产业 六、CMM的发展过程 七、CMMI

3、简介,6,一、引言(1),Unit One,有七个人住在一起,每天分一大桶粥。由于物资匮乏,必须找到一个合理的分粥方案。,七人分粥问题,解决方案,方案1:指定一人负责分粥。,缺陷:这个人徇私舞弊。,改进:挑选一个道德高尚的人负责分粥。,缺陷:a.人是会变的;b.其他人争相讨好,相互猜忌。,方案2:指定一人分粥和一人监督。,缺陷:从权力制约走向权力合作。,方案3:轮流主持分粥。,缺陷:七天中只有一天能吃饱,每天还有浪费。,方案4:民主选举一个3人分粥委员会和一个4人监督委员会。,缺陷:效率低下,每天喝冷粥。,7,一、引言(2),Unit One,什么是过程?什么是软件过程? 什么是过程管理?软件

4、过程管理的目的是什么? 怎样进行软件过程管理?,同课程名称相关的几个问题,过程对结果的影响往往是决定性的。,结论,不但要重视技术,更要重视过程。,最佳方案,方案5:每人轮流值日分粥,但分粥的人最后一个领粥。,过程是需要定义的。,简要回答,过程是活动的集合,软件过程是与软件开发与维护相关的活动的集合。,8,一、引言(3),Unit One,产品实现过程;管理过程;支持过程,术语多(如CMM、CMMI、RUP、CBD等),概念多(如过程、流程、能力成熟度、迭代开发等),描述多。理解基本概念是关键。,过程的分类,本课程的主要特点,过程管理是制定过程和对过程活动进行动态监管。软件过程管理的目的是最大限

5、度地提高软件产品的质量和软件开发过程的生产率。 软件过程管理的途径:软件过程模型 组织标准软件过程 项目定义软件过程 过程实施与监控 软件过程改进。,在软件过程中,产品实现过程被称为“工程过程”。,9,一、引言(4),Unit One,是一门介绍过程、软件过程、软件过程管理、软件过程改进、统一软件开发过程的计算机课程,使读者对如何对软件开发进行管理有一个全面的认识。,课程涉及的主要内容,本课程包含两部分内容:CMM/CMMI的基本知识;RUP的基本知识。,10,一、引言(5),Unit One,理解软件能力成熟度模型CMM/CMMI 掌握CMM/CMMI各个级别中的机构、活动和测量 了解RUP

6、的基本内容 在软件开发过程中实践RUP与CMM/CMMI,软件工程及相关专业,预期目标,适用学科专业,11,二、软件与软件产业的发展过程(1),Unit One,软件发展趋势,软件开发技术状况,简单,复杂,小型,大型,封闭系统,开放系统,注重技巧,注重管理,目标管理,过程管理,网络化、服务化、国际化,12,二、软件与软件产业的发展过程(2),Unit One,软件开发模式的变迁,划分1,结构化生产时代(20世纪70年代),以过程为中心的时代(20世纪90年代),软件工业化生产时代(20世纪90年代至今),划分2,程序设计阶段,软件工程阶段,软件过程阶段,13,二、软件与软件产业的发展过程(2)

7、,Unit One,软件工业化生产的要素,软件的工业化生产,管理要素,技术要素,过程管理,基于构件的开发,软件的工业化生产需要技术的支持,也需要管理的支持。 规范的软件过程是软件工业化生产的必要条件。 基于构件的软件开发技术是软件工业化生产的技术基础。,14,二、软件与软件产业的发展过程(3),Unit One,15,二、软件与软件产业的发展过程(4),Unit One,16,Unit One,二、软件与软件产业的发展过程(5),软件工程( Software Engineering) 指导计算机软件开发和维护的工程科学 旨在确定软件开发技术规范,其中软件开发技术包含:软件开发方法学、软件工具和

8、软件工程环境 应用计算机科学(用于构造模型预算法)、工程科学(用于制定规范、设计模型、评估成本及权衡利弊)和管理科学(用于计划、资源、质量、成本等管理)的基本原理 与其他工程的区别:产品是程序 特点:规范化、文档化,17,Unit One,二、软件与软件产业的发展过程(5),软件过程管理 对软件开发全过程规范化及标准化的管理 软件过程管理技术包括:软件管理学和软件工程经济学 目前,国外普遍采用的软件过程管理方法是:美国卡内基梅隆大学软件工程研究所(SEI) 提出的软件能力成熟度模型(SW-CMM) 目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效

9、益和社会效益 包括:成本估计、进度计划、人员组织、质量保证等,18,三、软件危机及其原因(1),Unit One,软件特殊性,软件成本高 软件开发的进度难于控制 估计软件工作量很困难 软件质量难于保证 修正维护软件困难,19,三、软件危机及其原因(2),Unit One,美国审计总署GAO (US Government Accounting Office) 于1983年统计的软件项目 - 3% 交付给政府的软件产品可用 - 49% 完全不能用 - 48% 修改后才能使用 近年统计软件项目,软件危机事实(1),20,三、软件危机及其原因(3),Unit One,每100个IT项目立项启动后,有9

10、4个返工 大公司的IT项目 成本超出预算平均占178% 完成时间延迟平均占230% 项目开始时确定的产品特性 (feature) 只有42%在产品中真正得到实现 2001年美国大企业只有9%的软件项目在预算内如期完成。,软件危机事实(2),三、软件危机及其原因(4),22,三、软件危机及其原因(5),Unit One,23,三、软件危机及其原因(6),Unit One,软件开发面临的实际问题(1),24,三、软件危机及其原因(7),Unit One,软件开发面临的实际问题(2),25,三、软件危机及其原因(8),Unit One,软件开发面临的实际问题(3),26,三、软件危机及其原因(9),

11、Unit One,软件企业的4个困难,需求的完全识别 软件产品需求的完全传递 软件产品相关的变更控制 软件产品相关技术的快速变化,27,三、软件危机及其原因(10),Unit One,企业的目的 根本目的:合法地赚钱,获取尽可能多的利润。 第一推论:为了使利润最大化,产品开发应当“做得好、做得快并且少花钱” 软件工程学科的目的:提高软件产品质量、提高生产率并且降低开发成本 企业长期面临的软件工程难题 产品质量低下、进度延误、费用超支(软件工程学科发展30年尚未彻底解决) 经典软件工程:研究需求分析、系统设计、编程、测试、维护等领域的方法、技术和工具 问题之源:人们逐渐意识到,由于企业管理软件过

12、程的能力比较弱,常常导致项目处于混乱状态。过程混乱使得新技术、新工具的优势难以体现。经典的软件工程不是不好,而是不够用。 用于提高软件过程能力的实践通称为软件过程改进。,IT企业长期面临的软件工程难题,28,矛盾,软件发展落后于硬件,硬件在容量、速度、可靠性、输入输出等方面提供了优越的条件。 软件项目越来越大,越来越复杂。 软件技术未获突破性进步。,设想可能的出路,有银弹吗? CASE OO技术 .,争论,三、软件危机及其原因(11),Unit One,29,Unit One,软件项目出现的典型问题,三、软件危机及其原因(12),缺少用户的参与 需求及其说明不完整或经常变更 项目得不到高层管理

13、者的支持 技术能力不足或对新技术不熟悉 资源投入不足 预期要求过高 项目目标不清晰 人员配合存在问题,30,用户参与或与用户有良好的沟通 高层管理者支持和主动关心 需求得到清晰的描述 计划符合实际 项目进行具有可见性 人员能够胜任工作 有明确的目标并且是可以达到的 对可能遇到的风险做了分析,采取了有效的应对措施,Unit One,项目成功的原因,三、软件危机及其原因(13),31,净室(Clean Room)技术:净化软件过程 过程控制而不是产品控制:“质量是制造 出来的,不是检验出来的”,开发考虑维护,摆脱危机的措施:加强管理,阶段评审 Review, Inspection 实施软件工程标准

14、和质量体系认证制度 ISO9000 提高软件开发机构的能力 CMM,寻找出路的指导思想,Unit One,三、软件危机及其原因(14),32,Unit One,三、软件危机及其原因(15),33,设计说明书 设计员:我要让 软件怎么做,需求规格说明书 分析员:我可 以提供什么,源程序 程序员:我要让 计算机怎么做,软件需求 用户:我要 什么,运行结果 计算机:程序 运行得到这些,理解正确性 编码正确性,理解正确性 设计正确性 表达正确性,理解正确性 表达正确性,输入正确性 运行正确性,相符吗?,软件开发主要环节之间需要保持的关系,Unit One,三、软件危机及其原因(16),34,Unit

15、One,软件开发项目是在规定的成本和时间内,开发和提交满足客户某些需求的软件产品。 项目的三个基本特征是:成本、进度和质量(代表软件在多大程度上满足客户的要求) 一个项目的成功与否在于它是否达到或者超过成本、进度或者质量的预期目标 项目失败的原因可能有:不正确的估计、松散的需求管理、薄弱的项目管理、不正确的风险管理以及不好的工程解决方案等,这些原因都可以归结为过程失败(用于执行软件项目的过程),四、过程及其要素(1),35,过程失败,风险管理,成功的一个关键因素在于项目有一套过程,Unit One,目标不明确 计划差 没有项目管理方法 使用新技术 没有足够的人员,例如软件项目失控的主要原因是:

16、,四、过程及其要素(2),36,Unit One,过程定义,四、过程及其要素(3),韦氏词典:某物生产的操作体系.能导致结束或得到结果的一系列的活动、变革、或操作 IEEE:为实现给定目标所执行的一系列的步骤(IEEE-STD-610) 过程是为了达到给定目标所实施的一系列步骤,简单而言,过程就是做什么,是人们使用相应的规程、方法、工具和设备将原始材料(输入)转化成面向客户的产品(输出)所做的事情,37,Unit One,软件过程,四、过程及其要素(4),软件过程是指软件开发人员开发和维护软件以及相关产品(如项目计划、设计文档、代码、测试用例和顾客手册)的一套行为、方法、实践以及变化过程 软件

17、过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。 有效的软件过程可将人员、工具和方法进行有机结合。 作用对象:软件及其相关产品 包括:活动、方法实践和革新,38,Unit One,四、过程及其要素(5),对于机构而言,包含多个项目,而实现机构的高质量和生产率,依赖于三个因素:过程、人和技术 其中过程不仅仅是一系列步骤,还包含了机构所积累的经验,包含了机构可以从已成功的项目中所学到的一切 通过以过程的形式获取成功的经验,并在将来的项目中使用这些过程,机构就可以确保项目的持续成功 过程在有效地控制机构发展方面充当了关键角色,39,Unit One,四、过程及

18、其要素(6),一个组织的生产率及其产品的质量取决于所采用的过程的质量。,Watts S.Humphrey,40,不成熟过程和成熟过程的比较,Unit One,四、过程及其要素(7),41,不同成熟度的过程管理特征,Unit One,四、过程及其要素(8),42,基本术语,Unit One,软件过程能力software process capability 描述了遵循某软件过程可能达到的预期结果的范围 Paulk等1994定义过程能力为:遵循某一过程,可能达到预期结果的程度 Trillium,1994定义过程能力:开发机构以最低成本,在最短时间内,稳定地提交最少缺陷产品,以满足顾客期望的能力。

19、高的过程成熟度,其过程能力也较强。过程不成熟意味着:过程不稳定、无章可循。 机构的软件过程能力为该机构承担下一个软件项目时可能达到的最大期望结果提供了预测手段 关注预期结果 软件过程效能(性能) software process performance 表示遵循一个过程所达到的实际结果的一种度量 关注实际结果 由于项目要求和客观环境的差异,软件过程性能不可能充分反映软件过程的整体能力,即软件过程能力受限于它的环境,四、过程及其要素(9),43,Unit One,四、过程及其要素(10),软件过程成熟度 是指针对具体的软件过程进行明确定义、管理、测量以及控制的有效程度 表明软件工程能力增长的潜力

20、,表明机构软件过程的丰富性以及其应用于项目的一致性 过程成熟度意味着必须改进软件过程能力,改进软件过程要求软件机构加强管理机制,并能长期始终地关注关键过程 归于成熟的软件机构,需要机构的基础设施和机构文化支持软件开发中使用的方法、实践和规程,这样在最初定义它的人员离开之后,仍能持续进行,44,Unit One,软件过程管理,四、过程及其要素(11),对软件开发全过程规范化及标准化的管理 软件过程管理技术包括:软件管理学和软件工程经济学 重要前提是软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量 目前,国外普遍采用的软件过程管理方法是:美国卡内基梅隆大学软件工程研究所(SEI)

21、提出的软件能力成熟度模型(SW-CMM) 目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效益和社会效益 包括:成本估计、进度计划、人员组织、质量保证等,45,过程管理原则(五个),Unit One,四、过程及其要素(12),过程的稳定性: 片面强调个性的过程不可能进行有序而持久改进。 过程的明确性: 组织必须识别复杂过程的关键步骤,将关注焦点放在对其改进上。 过程和产品检验: 过程检验和产品检验同样重要。 系统方法: 孤立地解决问题将导致过程恶化。 过程支持: 不要期望过程能通过自身获得改进。,46,为了提高质量和效率,机构应该如何改进过程,改进

22、后的过程的特点是什么?,Unit One,四、过程及其要素(13),改进过程的一种已知方法是:基于从失败或者成功的项目中获得的经验来增强过程 从过程中获得经验,再将经验投入到过程中去验证 量化项目过程性能,量化过程能力,47,Unit One,四、过程及其要素(14),过程的成熟度 过程体系对看做某一成熟度级别的过程规定了必须符合一些特性 体系只是规定了不同级别的过程应该具有的特性,不描述任一过程 通过规定不同成熟度级别的过程特性,体系也提供了从一个成熟度级别向另外一个成熟度级别改进的指南 软件过程有很多体系可以使用,当前最有影响并广为流行的是ISO9001和CMM,48,软件产业发展过程,U

23、nit One,软件产业的发展,软件产业与CMM的提出,五、CMM与软件产业(1),49,Unit One,软件过程改进必须走规范化之路,五、CMM与软件产业(2),即“制定适合于本企业的软件过程规范,并按照此规范执行”。 “规范化”不会抑止人们的创造力,相反地,它使得团队可以大规模地复用前人积累的智慧和财富。这种方法非常适合于现代的工业化生产。(麦当劳与中餐馆对比) 麦当劳的特征:不论是制作汉堡还是炸署条,都有规范化的操作流程 中餐馆的特征:大厨掌握招牌菜,老板怕大厨。 业界实践已经证明,走“规范化”之路是“成本最低、见效最快、能持续发展”的软件过程改进方法,犹如人类的“养生之道”。任何IT

24、企业(不论大小),都有办法以其承受得起的代价“走规范化之路”,从而有效地提高软件过程能力。,50,软件产业与CMM的提出,Unit One,五、CMM与软件产业(3),专门针对软件产业制定的CMM认证体系(SW-CMM) 世界上软件发展的水平参差不齐 美国、欧洲、日本和印度等国家:水平高、质量好、规模大 我国进展显著,发展速度相对落后,51,不成熟组织与成熟组织的比较,Unit One,五、CMM与软件产业(4),不成熟组织的特征 软件过程一般由实践者及其管理者在项目过程中临时拼凑而成。 即使已规定了软件过程,也不能严格地遵守和贯彻它。 不成熟的软件组织是反应式的,通常经理们集中精力于解决即时

25、危机(称为消防)。 由于制定进度和预算不是基于现实的估计,因而超出进度和预算已成惯例。 当硬性规定时限时,为满足进度要求,常在产品功能和质量上作出让步,常缩短或取消像评审和测试这些旨在提高质量的活动。 不存在判断产品质量或者解决产品或过程问题的客观基础。因此,产品质量难以预测。,52,不成熟组织与成熟组织的比较,Unit One,五、CMM与软件产业(5),成熟软件组织的特征 具有全组织范围的管理软件开发和维护过程的能力。 软件过程被正确无误地通知到现有职员和新雇员,工作活动均按照己规划的过程进行。 所有的工作规范是适用的,而得到严格执行。 需要时就对已定义的过程进行更新,并且通过可控的先导性

26、试验和(或)费效分析使其得到改进。 在已定义的过程中,遍及所有项目和在整个组织中,所有的岗位及其职责都是清楚的。 经理监控产品的质量和顾客的满意程度。 在判断产品质量和分析产品及过程问题方面有客观的、定量的基础。 进度和预算是基于以前的性能数据,因而是现实的;通常都能达到产品的成本、进度、功能和质量的预期结果。 所有的参加者能一致地遵循一个有纪律的过程,并了解这样做的价值,且存在支持该过程的必要基础设施,53,Unit One,六、CMM的发展过程(1),什么是CMM CMM的发展过程 如何理解CMM CMM与ISO9001的区别,54,what is Capability Maturity

27、Model?,什么是CMM,Unit One,六、CMM的发展过程(2),CMM概况 解决“软件危机” 20世纪60年代中期,大型软件系统生产中爆发的软件危机,使程序中大量的错误难以消除,软件生产的进度无法预测,开发应用费用失去控制,程序员人数增长需求很难满足要求。 人们将工程的概念、原理、技术和方法引入了软件系统开发,在一定程度上解决了软件生产过程中遇到的问题。软件工程成为软件产业的重要分支。 直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。,55,Unit One,六、CMM的发展过程(3),70年代中期美国国防部曾立题专门研究软件项目做不好的原因

28、,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够。 90年代中期,软件工程管理不善的问题仍然存在。据美国软件工程实施现状的调查,大约只有10%的项目能够在预定的费用和进度下交付。 1995年,美国共取消了810亿美元的软件项目,其中31%的项目未做完就取消了,53%的软件项目进度通常要延长50%的时间,通常只有9%的软件项目能够及时交付并且费用也不超支。 结论:管理是影响软件研发项目全局的因素,而技术只影响局部。,56,Unit One,六、CMM的发展过程(4),80年代中期,美国联邦政府提出对软件承包商的软件开发能力进行评估的要求。在Mitre公司的帮助下,1987年9月,

29、美国卡内基-梅隆大学软件工程研究所发布了软件过程成熟度框架,并提供了软件过程评估和软件能力评价两种评估方法和软件成熟度提问单。 4年之后,SEI将软件过程成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM)。 1991年8月,SEI发布了最早的SW-CMM v1.0。 经过两年的试用,1993年SEI正式发布了SW-CMM v1.1,这是目前使用最为广泛的版本。,57,Unit One,六、CMM的发展过程(5),从1995年,CMM又进入了另一个修改的高峰期。 美国政府和软件业界大力支持和积极参与下,SEI先后发

30、表了CMM 2.0版的A版,B版和C版草案;1997年,CMM 2.0C版草案停止推进。 SEI宣布,CMM 1.1版和CMM 2.0C版草案都有效,并且SEI及其授权的机构为这两种版本提供相应的服务。 自CMM 1.1发布起,SEI相继研制并发布了“人员能力成熟度模型”(P-CMM),“软件访问能力成熟度模型”(SA-CMM)和“系统工程能力成熟度模型”(SE-CMM)及其支持文件。 经过试运行,产生了把SW-CMM, P-CMM, SA-CMM和SE-CMM合并在一起的想法,于是开始了名为“综合能力成熟度模型”(英文缩写为CMMI)的一个综合性模型投入研制。,58,Unit One,六、C

31、MM的发展过程(6),SEI的CMM为软件工程管理开辟了一条新的途经,其本质还是软件工程的一个部分。 迄今为止,CMM虽然只是美国卡内基-梅隆大学软件工程研究所(SEI)发表的一份技术报告,既不是政府也不是行业协会批准的标准,但它在美国和国际上已成为事实上的软件行业标准。鉴于CMM的巨大应用前景,SEI已在美国注册了CMM, Capability Maturity Model 和Capability Maturity Modeling的专利和商标。 围绕以CMM为基础的软件过程评估和软件能力评价,建立了从审核员培训到提供评估和评价的一整套服务体系。,59,Unit One,CMM的理论基础,六

32、、CMM的发展过程(7),“丹明链” “全面质量管理” “质量管理顾问公司(质量研究所)”,60,Unit One,六、CMM的发展过程(8),20世纪30年代,Walter Shewart公布了统计质量控制原理 W. Edward Deming(现代质量思想理论的鼻祖)提出了丹明链式反应的现象 一个企业改进他的生产过程并坚持不懈地按此运动 质量改进了 因为减少了返工、错误和延迟,设计得更好,更有效地使用资源,成本下降了 因为上升了的质量及降低了的售价,产品的市场占有率提高了 利润增加了,61,Unit One,六、CMM的发展过程(9),全面质量管理(TQM,Total Quality Ma

33、nagement) CMM产生的理论基础 CMM是TQM在软件业应用中的升华 目标:满足现在和将来的客户需求,62,Unit One,六、CMM的发展过程(10),“质量管理顾问公司(质量研究所)” 质量管理学家克罗斯比在1979年成立了一家名为质量管理顾问的公司(质量研究所) IBM公司的罗恩.拉德斯和瓦茨.汉弗莱,63,Unit One,SEI给CMM下的定义,对于软件组织在定义、实现、度量、控制和改善其软件过程的各个发展阶段的描述。这个模型便于确定软件组织的现有过程能力和查找出软件质量及过程改进方面的最关键的问题,从而为选择过程改进战略提供指南。,六、CMM的发展过程(11),如今的行情

34、是:一家软件企业如果不能通过相应等级的CMM评估,他的产品就少了一张进入国际市场的通行证。,64,Unit One,CMM的发展方向,六、CMM的发展过程(12),CMM的主要特点 基于实际实践 最好的反映了实践的情况 反映了软件过程改进和软件过程评估执行人员的需求 形成文档 文档可以公开使用 CMM是活的文档,在稳定性需求和不断的过程改进之间提供适当和实际的平衡点,65,CMM的用途包括:软件过程改进;软件过程评估;软件组织开发能力评价.但它不是特定的软件开发技术。 设计CMM,就是为了指导软件企业通过判断当前自身的过程成熟度,提出几个对软件质量和过程提高最为关键的问题,以此来选择过程的提高

35、策略,Unit One,六、CMM的发展过程(13),CMM为软件企业的过程能力提供了一个阶梯式的进化框架,它基于过去所有软件工程成果的过程改善的框架,吸取了以往软件工程的经验教训。 它指明了一个成熟的软件组织在软件开发方面需要管理的那些主要工作、这些工作之间的关系、以及以怎样的先后次序,一步一步的做好这些工作使软件组织走向成熟。是目前国际上最流行也是最实用的软件生产过程标准。,66,Unit One,六、CMM的发展过程(14),CMM建立了一个超脱于软件产品类型和组织结构的软件管理框架,描述要达到某个过程成熟度级所要求的关键软件实践,为软件过程的有序进行及一致性评价提供基础,为过程的持续改

36、进提供一个路标,为组织的过程能力的度量定义一种尺度。 CMM是一个模型,人称“事实上的标准” CMM描述了软件项目希望成功应做的事(What),但並未描述这些事应怎么做(How),这应由组织在规程(Procedure)中回答。CMM较少,甚至没有说明为什么这样做(Why),67,为什么我们需要学习CMM,Unit One,六、CMM的发展过程(15),对软件企业而言: 规范软件开发过程及其管理 规范市场竞争 帮助企业进行内部软件过程改进 增加企业的国际竞争力 降低软件开发风险,68,Unit One,六、CMM的发展过程(16),我国软件产业发展 我国软件产业发展很快。2005年,我国软件产业

37、累计完成软件收入3900亿元,同比增长40.3%,是电子信息产业中增长最快的领域之一。 但是,大部分国内软件企业都呈现出“人员规模比较小”、“业务比较分散”、“市场竞争能力比较弱”的特点。截至2005年底,中国有近12000家软件企业,人员规模在100人以下的占90以上,1000人以上的不到15家,多数软件企业的利润不到8。 中国的软件产业要找到符合自身条件的发展模式。,69,Unit One,六、CMM的发展过程(17),是软件企业参与国际竞争的试金石。我国软件要大幅度提高开发能力,走向世界,必须向国际上公认的软件评估标准靠拢。 CMM对中国软件产业是非常有价值的。,中国通过CMM/CMMI

38、5级别认证的企业(2007年3月数据),70,Unit One,六、CMM的发展过程(18),学习CMM的目的 学习有关软件开发过程的管理和改善 了解CMM提供的过程管理框架 学习CMM中对关键过程域的定义 能使用CMM进行软件过程的管理和改善,71,理解CMM需要注意以下几点,Unit One,六、CMM的发展过程(19),它仅指明该做什么,而没有指明如何做,它不是方法论,但我们在学习CMM时,可以从中学到分析问题的方法。 它仅指明该做的关键内容,它仅描述软件过程的本质属性,而并非面面俱到。抓问题的主要方面的思想贯穿在整个CMM模型中。 软件过程是指软件工程过程、软件管理过程和软件组织的过程

39、三者的有机结合。 软件工程过程是我们理解的常规的软件的需求分析、设计、编码、测试等过程; 软件管理过程是指为使软件工程过程顺利进行而进行的管理活动的集合。 上述两个过程是以软件工程组为主的活动。 软件组织的过程是企业级的对软件的组织活动,是以企业为主的活动。,72,Unit One,六、CMM的发展过程(20),它是从软件过程的角度考虑问题,而并非关注软件开发工具。这与框架软件生存周期无关,也与所采用的开发技术无关。 CMM为改善整个企业的软件过程提供了指南,而并非针对某个具体项目。SW-CMM并不能保证在这个过程框架下,产品开发百分之百的成功。产品的成功是多种因素的组合,例如市场等因素。 S

40、W-CMM认为过程的不断改进基于许多小的、进化的步骤而不是革命性的创新。 基于CMM的过程改善投资力度大、周期长,而技术投资则可能在短期内有较快回报。单独依靠技术改进可能在短期内有较快回报,但最终可能一无所获。,73,CMM间接或隐含涉及的问题,Unit One,六、CMM的发展过程(21),特定的工具、方法和技术 并行工程、联合应用开发和协调 系统工程、系统营销、系统测试与系统交付 人力资源 组织行为和文化,74,CMM和ISO9001都涉及质量管理和过程管理,并且都受到类似的利害关系驱动,两者之间有着相似之处。因此,往往产生这样的问题: 符合ISO9001的软件组织达到CMM的哪一级? 达

41、到CMM的第2或3级的软件组织是否符合ISO9001? 一个组织打算推进质量管理或改进软件过程时是采用ISO9001还是采用CMM?,ISO 9001与CMM异同,Unit One,六、CMM的发展过程(22),75,ISO:International Standard Organization 1974年成立,日内瓦 工作领域涉及除电工、电子以外的所有学科 ISO9000:ISO于1987年公布 组成 质量术语标准 质量保证标准 质量管理标准 质量管理和质量保证标准的选用和实施指南 支持性技术标准,ISO9000标准系列框架,Unit One,六、CMM的发展过程(23),76,Unit O

42、ne,六、CMM的发展过程(24),质量 保证 标准,标准 选用 与 实施 指南,质 量 管 理 标 准,ISO9001 设计、开发、生产和服务 ISO9002 生产、安装和服务 ISO9003 最终检验和试验,ISO9004-1指南 ISO9004-2 服务指南 ISO9004-3 流程性材料 ISO9004-4 质量改进,ISO9000-1 选择和使用指南 ISO9000-2 是ISO9001ISO9003实施通用指南 ISO9000-3 计算机软件中实施指南 ISO9000-4 可信性大纲指南,质量术语标准(69条),支持性术语,ISO9000标准系列框架,77,Unit One,六、C

43、MM的发展过程(25),对质量管理领域中常用的质量术语进行定义 包括(67条术语解释) 工作基本术语(13个) 与质量有关的术语(19个) 与质量体系相关的术语(16个) 与工具和技术相关的术语(19个),质量术语标准,8个标准 4个正在制定的标准,支持性标准,78,Unit One,六、CMM的发展过程(26),ISO9000系列的核心内容 包括三个模式 ISO9001:设计、开发、生产、安装和服务的质量保证模式;20个要素;包括ISO9002和ISO9003;标准多、评估费用高 ISO9002:生产、安装和服务的质量保证模式;19个要素 ISO9003:最终检验和试验的质量保证模式;16个

44、要素,质量保证标准,79,Unit One,六、CMM的发展过程(27),选择和使用指南ISO9000-1 实施通用指南ISO9000-2 软件开发、供应、维护的指南ISO9000-3 可信性大纲管理指南ISO9000-4,质量管理和质量保证标准的选用和实施指南,ISO9004-1:通用性指南 ISO9004-2:服务指南 ISO9004-3:流程性材料指南 ISO9004-4:质量改进指南,质量管理标准,80,Unit One,六、CMM的发展过程(28),2000版中,关注的重点是“过程质量”,而不是“产品质量” 2000版不仅包含产品和服务的内容,而且还需证实能有让顾客满意的能力 包括

45、四个核心标准 ISO9000:质量管理体系的基本原理和术语 ISO9001:质量管理体系的要求 ISO9004:质量管理体系的业绩改进指南 ISO90011:质量/环境审核指南 若干技术报告,ISO90002000版简介,81,Unit One,六、CMM的发展过程(29),ISO9001被认为是适用于所有各类专业领域的一种质量保证模式;但对于软件组织来说,尽管加上了ISO9000-3作为实施指南,ISO9001似乎仍然不够贴切,留给审核员作解释的回旋余地相当大。于是就软件能力评定而言,按ISO 9001进行认证时,不确定性很大;换言之,同是通过了ISO 9001认证的组织,其间的软件能力可能

46、有很大差别。 CMM是专门针对软件组织设计的一种描述软件过程能力的模型。CMM研制的主要目的是:一是用于帮助事先确定承包商的软件能力;二是用于软件组织的过程改进。考虑到按ISO9001对软件组织进行认证审核时存在的较大不确定性,在设计CMM时,应尽量缩小审核员解释的回旋余地,因此,不仅对每个关键过程域给出了明确的目标和体现这些目标的各个关键实践,而且对各个关键实践都给出了明确的定义和详细的说明,以期按CMM进行评估时能有较大的一致性和可靠性。结果,CMM成了一个“庞然大物”长达500余页。,82,ISO 9001与CMM异同,Unit One,六、CMM的发展过程(30),CMM与ISO900

47、1的设计思路不同,并且一个是“专用”,一个是“泛用”,因此,尽管两者都由于涉及质量管理和过程而有着相似之处,但也存在很大差别。下面依次按ISO9001的20个要素对CMM作一些简单比较。,83,Unit One,六、CMM的发展过程(31),ISO 9001与CMM异同 管理职责 质量体系 合同评审 设计控制 文件控制 采购 顾客提供的产品 产品标识和溯源 过程控制 检验和测试 检验,测量和测试设备 检验和测试状态 不合格品的控制 纠正措施 搬运,储存,包装和交付 质量记录 内部质量审核 培训 服务 统计技术,84,Unit One,六、CMM的发展过程(32),与ISO标准系列相比,CMM更

48、为软件产业所看好 原因是它专门针对软件工程控制而设置的,不仅进行软件企业工程能力的评估,更致力于软件开发过程的管理,强调“对软件开发过程进行持续改进”,引导软件开发过程走向成熟。 相同点 CMM和ISO 9001标准系列都着眼于质量和过程管理,二者都为了解决同样的问题。 不同点 CMM是动态的、开放的和持续改进的,强调没有最好只有更好,强调不断改进,强调人在软件开发方面的思想认识和主动性,适用于软件过程的改进。 CMM模型只关注软件,它能解决“软件危机” 这个世界性的问题。 ISO 9001是静态的质量控制,只要达到几个关键指标就能完成质量控制,更适用于硬件制造生产线的质量控制。 ISO 90

49、01的适应范围更广,包括硬件、软件和服务。,85,Unit One,七、CMMI简介(1),CMMI的起源 实施CMMI的意义 CMMI的两种实施方法,86,CMMI的起源,Unit One,七、CMMI简介(2),CMMI 的全称为Capability Maturity Model Integration,即能力成熟度模型集成。 CMMI是CMM模型的最新版本。早期的CMMI(CMMI-SE/SW/IPPD)1.02版本是应用于软件业项目的管理方法,SEI在部分国家和地区开始推广和试用。 随着应用的推广与模型本身的发展,CMMI演绎成为一种被广泛应用的综合性模型。,87,CMMI的起源,Un

50、it One,七、CMMI简介(3),1994 年,SEI 正式发布软件CMM。随着人们对CMM研究的不断深入,其他学科也结合本系统的特点,陆续推出了自己的CMM模型。例如,人力资源能力成熟度模型、系统工程能力成熟度模型等等: (1)SW-CMM (Software CMM) 软件CMM(2)SE-CMM (System Engineering CMM) 系统工程CMM(3)SA-CMM (Software Acquisition CMM) 软件采购CMM(4)IPT-CMM (Integrated Product Team CMM) 集成产品群组CMM(5) P-CMM (People CM

51、M) 人力资源能力成熟度模型,88,CMMI的起源,Unit One,七、CMMI简介(4),不能集中其不同过程改进的能力以取得更大成绩; 要进行一些重复的培训、评估和改进活动,因而增加了许多成本; 不同模型对某些相同事物说法不一致,或活动不协调,甚至相抵触。,虽然这些模型在许多组织都得到了良好的应用,但对于一些大型软件企业来说,可能会出现需要同时采用多种模型来改进自己多方面过程能力的情况。这时他们就会发现存在一些问题,其中主要问题体现在:,89,CMMI的起源,Unit One,七、CMMI简介(5),CMMI 与CMM 最大的不同点在于: CMMISM-SE/SW/IPPD/SS 1.1

52、版本有四个集成成分,即:系统工程(SE)和软件工程(SW)是基本的科目,对于有些组织还可以应用集成产品和过程开发方面(IPPD)的内容,如果涉及到供应商外包管理可以相应的应用SS(Supplier Sourcing)部分。,于是,希望整合不同CMM 模型的需求产生了。1997 年,美国联邦航空管理局(FAA)开发了FAA-iCMMSM(联邦航空管理局的集成CMM),该模型集成了适用于系统工程的SE-CMM、软件获取的SA-CMM 和软件的SW-CMM 三个模型中的所有原则、概念和实践。该模型被认为是第一个集成化的模型。,90,CMMI的起源,Unit One,七、CMMI简介(6),SEI将C

53、MMI制定为一个过程改进框架,这个框架可以应用在相当宽泛的环境中。为达到这一目的,SEI推出了3种不同的且相互区别的CMMI模型: 面向开发的CMMI(CMMI for Development, CMMI-DEV)模型:是为系统开发组织进行过程管理和过程改进而设计的模型。 面向采购的CMMI(CMMI for Acquisition, CMMI-ACQ)模型:是一个过程模型,为那些需要引入管理及服务的组织所设计。 面向服务的CMMI(CMMI for Services, CMMI-SVC)模型:是一个结构化的模型,用来帮助企业部署和管理服务。,91,CMMI的起源,Unit One,七、CMM

54、I简介(6),CMMI 有两种表示方法,一种是大家很熟悉的,和软件CMM 一样的阶段式表现方法,另一种是连续式的表现方法。 这两种表现方法的区别是:阶段式表现方法仍然把CMMI 中的若干个过程区域分成了5 个成熟度级别,帮助实施CMMI 的组织建议一条比较容易实现的过程改进发展道路。而连续式表现方法则通过将CMMI 中过程域分为四大类:过程管理、项目管理、工程以及支持。对于每个大类中的过程域,又进一步分为基本的和高级的。这样,在按照连续式表示方法实施CMMI的时候,一个组织可以把项目管理或者其他某类的实践一直做到最好,而其他方面的过程区域可以完全不必考虑。,92,CMMI的起源,Unit On

55、e,七、CMMI简介(7),CMMI自出道以来,它所达到的目标就没有变过,第一个是质量,第二个是时间表,第三就是要用最低的成本。 不过特别强调的是,CMMI不是传统的、仅局限于软件开发的生命周期,它应该被运用于更广泛的一个范畴工程设计的生命周期。TSP的建立,也是为了支持CMMI的这样一个系统。 那么CMMI究竟是什么呢?它并不是一个过程,也不是告诉你怎么去做一件事情。如果用一句话来概括什么是CMMI,它就是各个进程的一个关键的元素,在很多领域里面一个集成的点。它是这样的一个基本架构,能够用来度量你的有效性和实用性;能够找出这样的一些机会,继续改进的机会,包括在商业目标、策略还有降低项目的风险等方面。,93,CMMI的起源,Unit One,七、CMMI简介(8),为了以示区别,国内

温馨提示

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

评论

0/150

提交评论