1 / 31

实用软件工程概论

实用软件工程概论. ---- IT 企业软件的开发与管理 赵池龙. 第 12 章 软件过程管理 (*). 本章导读 软件管理是面向过程的,即面向开发过程、配置过程、维护过程、质量保证过程、软件组织内部管理改善过程。软件过程管理的主要框架就是 SW-CMM ,或者说就是 CMM 。 本章首先简述 CMM 的几个基本概念,随后再介绍 CMM 的过程资源、实施思路、文档样例、成熟度提问单和 CMM 的发展方向,重点是对关键过程域 KPA 的理解,只要对 CMM 的关键过程域看懂了,吃透了,用好了,您就学会了 CMM 。. 本章导读. 12.1 CMM 基本概念.

romney
Download Presentation

实用软件工程概论

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 实用软件工程概论 ----IT企业软件的开发与管理 赵池龙

  2. 第12章 软件过程管理(*) • 本章导读 • 软件管理是面向过程的,即面向开发过程、配置过程、维护过程、质量保证过程、软件组织内部管理改善过程。软件过程管理的主要框架就是SW-CMM,或者说就是CMM。 • 本章首先简述CMM的几个基本概念,随后再介绍CMM的过程资源、实施思路、文档样例、成熟度提问单和CMM的发展方向,重点是对关键过程域KPA的理解,只要对CMM的关键过程域看懂了,吃透了,用好了,您就学会了CMM。

  3. 本章导读

  4. 12.1 CMM基本概念 • 1. 组织 组织与组不同,组织与单位也不一样。 CMM中的“组织”或“软件组织”,是指软件企业(或软件公司)自己,或者企业内部的一个软件研发部门。但是,该组织内部应有若干个项目和一个软件工程管理部门。如公司的研发中心、软件中心、软件事业部,它们均可称为“组织”或“软件组织”。 CMM的实施和评估,不在整个软件企业的所有部门进行,而只需在软件企业中的某个软件组织范围内进行,例如,它的软件研发中心。

  5. CMM基本概念 • 2. 软件过程 这里的软件过程,既指软件开发过程,又指软件管理过程。过程是指为了实现某一目标而采取的一系列步骤。一个软件过程,是指人们从开发到维护软件相关产品所采取的一系列活动。其中,软件相关产品包括项目计划、设计文档、源代码、测试报告和用户指南等。软件产品的质量主要取决于产品开发和维护的软件过程质量。一个有效的、可视的软件过程能够将人力资源、物理设备和实施方法结合成一个有机的整体,并为软件工程师和高级管理者提供实际项目的状态和性能,从而可以监督和控制软件过程的进行。

  6. CMM基本概念 • 3. 软件产品和软件工作产品 在软件开发过程中,上一道工作程序的输出,就是下一道工作程序的输入。在CMM中,每一道工作程序的输出均称为软件工作产品,里程碑上的软件工作产品通过评审和审计之后称为基线,如用户需求报告、概要设计说明书、详细设计说明书、源代码、测试报告、用户指南等等。评审报告、跟踪记录等软件管理文档,也叫软件工作产品。 软件承包方最终交给客户方的软件工作产品,称为软件产品。在UML中,将软件工作产品称为“制品”,其中管理文档叫管理制品,技术文档叫技术制品。

  7. CMM基本概念 • 4. 软件过程能力与性能 软件过程能力,是软件过程本身具有的按预定计划生产产品的固有能力。组织的软件过程能力,为组织提供了预测项目开发的数据基础。 软件过程性能,是软件过程执行的实际结果。一个项目的软件过程性能,决定于内部子过程的执行状态,只有每个子过程的性能得到改善,相应的成本、进度、功能和质量等性能目标才能得到控制。成熟的软件过程能力与性能,可弱化和预见不可控制的过程因素(如客户需求变化或技术变革等)。

  8. CMM基本概念 • 5. 软件过程成熟度及其五个等级 • 软件过程成熟度,是指一个软件过程被明确定义、管理、度量和控制的有效程度。成熟意味着软件过程能力持续改善的过程,成熟度代表软件过程能力改善的潜力。 • CMM模型将软件组织的管理水平划分为一至五的五个级别,共计十八个关键过程域KPA,五十二个具体目标,三百一个六个关键实践KP。

  9. 6. 关键过程域KPA

  10. CMM基本概念 • 7. 关键实践KP 所谓关键实践KP,是指对相应KPA的实施起关键作用的政策、资源、活动、测量、验证。KP只描述“做什么”,不描述“怎么做”。因为:怎么做的问题只能由软件组织自己解决。 目前,CMM共有52个具体目标,316个关键实践KP,它们分布在CMM2至CMM5的各个KPA中。

  11. CMM基本概念 • 8. 目标(Goals) • 目标概括某个关键过程域中的所有关键实践应该达到的总体要求,可用来确定是否一个组织或一个项目已有效地实现关键过程域。 • 目标表明每个关键过程域的范围、边界和意图。目标用于检验关键实践的实施情况,确定关键实践的替代方法是否满足关键过程域的意图等。 • 如果一个级别的所有的目标都已实现,则表明这个组织已经达到了这个级别,可以进行下一个级别的软件过程改善。

  12. CMM基本概念 • 9. 体系结构 ( 内部结构 ) • CMM的体系结构既简单,又复杂。说它简单,是因为目前它由5个级别、18个过程域、52个目标、5个共同特性、316个关键实践所组成,如图12-1所示。 • 由于关键过程域KPA是CMM的中心内容,一个KPA由多个目标和五个共同特性组成,每个共同特性中又包含多个关键实践KP。我们用图12-2来表述KPA与目标、共同特性、关键实践之间的关系 。 • 说它复杂的第一个原因,,是因为它的内部结构很难用一张图形来说清楚。这里不再详述,留给读者思考。说它复杂的第二个原因,,是因为软件组织实施它时,其文档体系结构也较复杂,后面的章节将详述之。

  13. CMM基本概念 • 10. 成熟度提问单 • 成熟度提问单是SW-CMM中的另外一个问题。顾名思义,成熟度提问单就是一大堆关于CMM某个级别是否成熟的问题。这堆问题的具体内容是什么?它是谁向谁提问题呢?提问题的目的和作用是什么?有兴趣的读者,可以思考这些问题。

  14. 12.2 CMM软件过程资源 • 1. 软件过程资源定义 • 软件组织在进行软件过程改善(SPI:Software Process Improvement)时,其核心工作之一就是建立和维护组织的软件过程资源。所谓软件过程资源,就是组织在SPI过程中通过积累而得到的,用于指导软件项目过程的文档和数据等重要信息。 • 软件过程资源能够为软件项目在制定、裁剪、维护和实施软件过程时,提供全面的决策指导。组织的软件过程资源包括以下五个方面内容: (1) 组织批准的软件生命周期; (2) 组织的标准软件过程; (3) 裁剪指南; (4) 组织的软件过程数据库; (5) 组织的软件过程有关的文档库。

  15. CMM软件过程资源 • 2. 软件生命周期 • 软件生命周期是指从某软件产品开始研发,到软件不再使用为止的时间间隔。生命周期一般包括:需求阶段、概念阶段、设计阶段、实现阶段、测试阶段、安装和调整阶段、运行和维护阶段,有时还包括退役阶段。 • 在组织的程序文件中详细描述了每个软件生命周期,包括原理、优缺点、适合哪些类型的项目等,通过这些描述可帮助项目人员,很好地理解和运用组织已批准的软件生命周期。另外,如果在实际工作中,基于特定项目的经验积累和总结,可能需要形成新的软件生命周期,此时可依照一定的流程,将其定义和描述加入到组织的软件过程资源中。

  16. CMM软件过程资源 • 3. 标准软件过程和裁剪指南 • 组织标准软件过程,是组织中所有软件开发和维护项目共用的软件过程,是项目定义软件过程的基础。它保证组织过程活动的连续性,是组织软件过程的测量和长期改进的依据。 • 裁剪指南则用来指导项目对组织标准软件过程进行裁剪,以形成适合项目特征的定义软件过程。

  17. CMM软件过程资源 • 4. 软件过程数据库 • 软件过程数据库(又称为项目工程数据库、测量数据库或项目管理数据库) ,是软件企业实施CMM的巨大收获和巨大财富。 • 组织的软件过程数据库,是为了收集有关软件过程和它所生成的软件工作产品的相关数据,并用来建立数据库。软件过程数据库包含或引用估计和实际度量数据。如,生产率数据,工作量、规模、成本、进度、关键计算机资源(估计值与测量值),同行评审的数据,需求数与变更数,测试范围和效率等。

  18. CMM软件过程资源 • 5. 软件过程有关的文档库 • 建立组织的软件过程有关的文档库(以下简称文档库),主要出于两方面考虑:一是存储对组织内的项目可能有用的过程文档,特别是与组织标准软件过程相关的文档;二是在全组织范围内共享所存储的文档信息。 • 该库中包含一些实例文档和文档片断,对未来项目在裁剪组织标准软件过程时可能有用。由于能提供成功项目的例子作为起步点,该库可以帮助组织减小启动一个新项目所要求的工作量,因而该库是组织的一个重要资源。

  19. 12.3 CMM实施思路 • 第一步,要进行CMM 基本知识的培训 • 任何培训工作都需要解决两个基本问题:一是教师问题,二是教材问题。CMM培训也不例外。CMM的培训对象是:第一,对所有员工(包括总经理在内),进行最基本的软件工程和CMM知识培训;第二,对CMM的各个工作组的有关人员,提供专业领域知识等方面的培训;第三,在每次开发过程中,还要对项目组成员进行软件过程方面的培训。 • 培训的教师有很多。第一,与CMM有关专业培训咨询机构。第二,利用互联网资源进行咨询和培训。第三,聘请有关CMM专家到企业实地指导CMM的实施。

  20. CMM实施思路 • 第二步,成立CMM的工作小组 • 在CMM的实施过程中,必须成立专业化的工作组。例如: 软件工程过程组SEPG 软件工程组SWEG 系统测试组STG 软件项目跟踪与监督组SPTO 软件配置管理组SCMG 软件质量保证组SQAG 评估领导组或评估成员团队ATM(Assessment Team Member)。

  21. CMM实施思路 • 第三步,建立CMM文档体系 • (1) 软件组织文档 它包括:软件工程规范、软件生命周期及裁剪指南、软件质量标准、名词和术语定义。 • (2) 关键过程域文档 对应每个KPA,都有一个过程文件和一个程序文件与之对应:过程文件描述干什么,程序文件描述怎么干。 • (3) 软件项目文档 它包括三方面的内容:工作产品文档:如配置项、基线;工作日记文档:如日报、周报、里程碑报;软件产品文档:如用户需求报告、设计说明书、源程序、用户手册。

  22. CMM实施思路 • 第四步,进行内部模拟评审 • 软件组织在进行正式评估之前,先进行内部评审或评估。这种内部评审包含两层含义。 (1). 软件组织自己内部成员,严格、认真地按照CMM规范评估过程,对自己的软件过程进行评审,找出其中的强项和弱项,并进行改进。 (2). 在全国范围内,由有关软件工程和CMM专家组成一个专门的“内部评审”机构,负责指导协调实施CMM的活动,推进活动的深入开展,对国内软件组织CMM评估进行“预先评估”。

  23. CMM实施思路 • 第五步,确定CMM正式评估的工作步骤 • (1) 软件公司与主任评估师(或评估中介公司)签订评估合同; • (2) 软件公司选定4-5个工作量大、工期6个月以上的大中型软件项目作为评估对象,并且准备好文档; • (3) 软件公司选4-10人组成评估小组; • (4) 由主任评估师组织评估培训; • (5) 由ATM评估小组制订正式评估工作计划; • (6) 正式评估,ATM评估小组对每个KP打分(必须在7分以上,满分为10分) ; • (7) ATM评估小组指出被评估组织的强项和弱项,协商产生评估结果,若评估通过,则由主任评估师签字,报CMU/SEI组织审批和备案。

  24. CMM实施思路 • 第六步,进行正式评估 • 评估工作的可以在软件企业的会议室进行,也可以在同一城市的某宾馆内进行。 • CMM正式评估由CMU/SEI授权的一个主任评估师,领导ATM评审小组进行。 • 评估过程包括员工培训(企业的高层领导也要参加)、与选定的项目经理座谈、问卷调查和统计、文档审查、数据分析、与企业的高层领导讨论和撰写评估报告等,评估结果由主任评估师签字生效。

  25. CMM实施思路 • 第七步,根据评估结果改进软件过程 • 一般来说,应该在评估之后根据ATM小组所指出的强项和弱项,很快地做出软件过程改进计划,因为这时大家对评估结果和存在的问题仍有一个深刻的认识。 • 计划在软件过程改进中是一个非常必要的阶段,只有有效的计划,才能确保软件过程得到有效地改进。

  26. 12.4 KPA文档样例分析 • CMM本身是一个软件过程改善框架体系,它并未规定统一的实施文档结构。CMM本身又是一所软件过程管理大学校,它授课的内容深含在体系机构、关键过程域KPA、关键实践KP之中。软件组织在实施过程中,最重要的任务,就是首先要看懂CMM的内容(往往似懂非懂),理解其精神实质(往往很难深入),做到实事求是(常常心中无数),活学活用(常常生搬硬套),并将这种本质上的“理解”转化为实施文档,然后在软件组织内部执行。 • 关键过程域“软件质量保证”样例分析

  27. 12.5 CMM发展方向 • 1991年CMU/SEI发布了CMM 1.0 • 1993年CMU/SEI发布了CMM 1.1,该版本应用最为广泛 • 1997年CMU/SEI虽然发布了CMM 2.0,该版本还未推广就被终止了。此时CMU/SEI的主要精力已投入到CMMI(Capability Maturity Model Integration)的研究,在2002年正式发布了CMMI 1.1,宣称它是CMM 2.0的新版本。此后,CMU/SEI还宣布:到2005年之后,CMMI就可能完全代替CMM。 • CMMI是从三个源模型 (三个学科模型) 集成得来的,这三个不同学科的源模型是: (1) 软件能力成熟度模型SW-CMM 2.0版C稿; (2) 电子行业协会临时标准SECM(EIA/IS 731); (3) 集成产品开发能力成熟度模型IPD-CMM v0.98。

  28. 12.6 本章小结 • “关键过程域是个纲,纲举目张”的办法。以十八个关键过程域为纲(主线),以目标、共同特性、关键实践为目,分级别(CMM2-CMM5)去熟悉每个级别中的内容,从内容中去发现内涵。作为第一步,先熟CMM2中的六个KPA,规划每个KPA对应的过程文件和程序文件,然后在您的组织内实施,以改善软件管理过程。 • 软件工程是基础,只有具备了这个基础,您才能真正学好CMM,用好CMM,使CMM为您所在的软件组织服务。

  29. 思考题 12 • 12.1 怎样理解“软件组织、工作产品、软件过程、软件过程资源、软件过程财富”的概念? • 12.2 软件文档分哪几种类型?请您举例说明。 • 12.3 CMM本身内容丰富,是一所软件管理大学校,您同意吗?为什么? • 12.4 请从多个不同方面(或角度、或视图)来描述CMM框架体系。 • 12.5 CMM的五个级别各有哪些特征? • 12.6 CMM的KPA和KP在各个级别中如何分布? • 12.7 CMM的实施步骤有哪些? • 12.8 您是怎样理解“CMM的文档体系不能过于繁琐,而必须简单、明快、实用”? • 12.9 CMM本身为什么不规定统一的实施文档结构?

More Related