1 / 49

软件工程化和 CMM

软件工程化和 CMM. 解决软件危机的一种方法. 软件危机的产生. 1 . 正在运行的计算机软件的数量正以惊人的速度急剧膨胀,软件规模庞大,耗资巨大。 2. 微电子技术的进步,计算机软件已经成为限制计算机系统发展的关键因素。 3. 在计算机系统开发早期时代所形成的一些错误观点和做法,已严重的影响了计算机的开发,更严重的是用错误的方法开发出来的许多大型软件几乎根本无法维护,只好提前报废,造成大量人力、物力的浪费 。. 软件危机的具体表现. 1. 对软件开发成本和进度的估计常常很不准确。 2. 用户对“已完成的”软件系统不满意的情况经常 发生。

fordon
Télécharger la présentation

软件工程化和 CMM

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. 软件工程化和CMM 解决软件危机的一种方法

  2. 软件危机的产生 • 1.正在运行的计算机软件的数量正以惊人的速度急剧膨胀,软件规模庞大,耗资巨大。 • 2.微电子技术的进步,计算机软件已经成为限制计算机系统发展的关键因素。 • 3.在计算机系统开发早期时代所形成的一些错误观点和做法,已严重的影响了计算机的开发,更严重的是用错误的方法开发出来的许多大型软件几乎根本无法维护,只好提前报废,造成大量人力、物力的浪费。

  3. 软件危机的具体表现 1.对软件开发成本和进度的估计常常很不准确。 2.用户对“已完成的”软件系统不满意的情况经常 发生。 3.软件产品质量往往靠不住。 4.软件常常是不可维护的。 5.软件通常没有适当的文档资料。 6.软件成本在计算机系统总成本中所占的比例逐年 上升。 7.软件开发成本生产率提高速度远跟不上计算机应 用迅速普及深入的趋势。

  4. 由于软件所引起的后果 • 海湾战争中,一枚飞毛腿导弹刺入爱国者反导弹的外壳中,打中了位于沙特的一座军营,造成28名美国军人死亡,98人受伤,其原因是爱国者导弹的软件包含一个累加计时故障,其导弹在设计时规定运行几小时,时钟将复位。该故障从未产生重大影响,因而没有被发现,而在战争中,此导弹的电池连续运行100多个小时,这使累计时间差变的太大,导致系统错误。 • 在战争期间,美军将爱国者导弹运往以色列,防卫飞毛腿导弹。以色列军队8小时就发现了此错误,立即向美国导弹生产商报告。后者以最快的速度修正了错误,但新软件在军营被飞毛腿导弹击中后一天才到达。

  5. 软件工程的基本原理 • 1.用分阶段的生命周期计划严格管理 • 2.坚持进行阶段评审 • 3.实行严格的产品控制 • 4.采用现代程序设计技术 • 5.结果应能清楚的审查 • 6.开发小组的人员应该少而精 • 7.承认不断改进软件工程实践的必要性

  6. 软件生命周期模型 • 1.边做边改模型 • 2.瀑布模型 • 3.快速原型模型 • 4.增量模型 • 5.螺旋模型

  7. 软件工程研究的新领域 • 1.CASE • 2.CMM • 3.软件构件技术 • 4.面向对象技术 • 5.UML • 6.XML • 7.可移植软件系统的开发

  8. 工程化软件的开发与研究

  9. 软件工程化的研究意义 • 软件工程化产生的背景 • 解决软件危机的有效途径 • 传统建模方法的弊端 • 软件工程化研究的内容

  10. 需求 分析 正确的规格说明 错误的规格说明 设计 正确的设计 错误的设计 对错误说明的设计 编码 正确编码 错误编码 对错误设计的编码 对错误说明的编码 测试 正确功能 可改正的错误 不可改正的错误 潜伏的错误 不完善的软件 失之毫厘,谬之千里 ——由于软件开发过程中存在错误而导致的积累与放大效应 原始要求

  11. 软件危机的形成 原始要求 高 中 低 代价(成本、质量、效率) 需求分析 正确的规格说明 错误的规格说明 正确的设计 错误的设计 对错误说明的设计 设计 编码 正确编码 错误编码 对错误设计的编码 对错误说明的编码 测试 正确功能 可改正的错误 不可改正的错误 潜伏的错误 不完善的软件 修改错误的阶段 分析 设计 编程 测试 维护 软件危机的形成

  12. 数据流图 实体- 关系图 分析 结果 设计 方案 非OO 设计方案 OO 程序 传统建模方法面临严重困境——三条难以逾越的鸿沟

  13. 作用 软件工程化产生的背景 • 软件产业自身的特点 • 我国软件产业的现状 • 解决传统的软件开发的弊端 • 解决软件危机的需要

  14. 典型应用 软件工程化的研究内容 • 软件复用技术 • 工程环境技术 • 软件实用技术 • 软件规范化技术 • 软件过程化技术

  15. CMM 软件能力成熟度模型

  16. 软件能力成熟度模型 概念 产生的背景 研究CMM的意义 国外的发展现状 国内的发展现状

  17. 返回 国外发展现状 • CMM分为五个等级,目前世界上通过CMM认证的软件企业共有400多家,其中通过 • 二级认证有243个 • 三级认证的有100个 • 四级认证的有60个 • 五级认证的有13个

  18. 国内发展现状 • 目前,我国的软件企业通过CMM二级认证的软件企业不超过10家,而通过三级认证的企业仅有1家(由IBM公司和清华大学共同支柱的鼎新软件开发公司),同印度的软件企业相比,我们虽然比他们早起步了10年,但是目前我国的软件产品出口仅为印度的1%。印度有7家软件企业通过了五级认证。 返回

  19. 产生的背景 • CMM在1996年由Carnegie-Mellon大学软件工程研究所SEI的Watts Humpherey提出的。CMM的基本思想是:由于许多的软件开发过程中的问题是由管理软件过程方法引起的,所以新软件的技术的运用不会自动提高生产率和利润率。

  20. 1987年诞生于美国; 5层的分层进化结构; 使用过程成熟度的概念 来标志软件组织开发软 件产品的能力; 5.优化级 软件过程持续改进 4 .定量管理级 软件过程可预测和控制 3.已定义级 组织的标准软件过程 2.可重复级 可以重复以前的成功 1.初始级 1.初始级 过程能力不可预知 返回

  21. 返回 引进CMM的目的 • 1.在软件生命周期的维护阶段花费的比例接近70%。(HP公司大约有60%---80%的研究人员和开发人员都涉及到维护工作) • 2.软件产品的特殊性。 • 3.目前世界范围内的的软件开发现状(维护费用高、软件开发周期过长、软件产品不能按期的交付使用)

  22. 软件能力成熟度模型的概念 • CMM(Capability Maturity Model)。它与传统的软件生命周期模型不同,它不是一个软件生命周期模型,而是一种改进软件过程的策略。它与实际的使用的模型无关。

  23. 返回 • 1.CMM明确的定义了五个不同的成熟的等级。(国外的情况) • 2.CMM 的软件过程完善是不可能在一夜之间完成的。(尤其是从第一级到第二级的过度) • 3.CMM是以增量方式逐步引入变化的。

  24. 返回 意义 • 自从人类发明数字计算机以后,计算机软件的开发一直是广泛应用计算机的瓶颈。研究新的软件开发方法和技术以提高计算机软件的生产率和质量一直是软件工程研究的焦点。大约在1987年前后,美国工业界和政府部门开始认识到,在软件开发过程中,最关键的问题是软件开发组织不能很好的定义和管理其软件过程,从而使一些好的开发方法和技术都得不到所期望的作用。而CMM是一个分级的模型,其分层结构基于已有60多年历史的产品质量原理建立起来的。该框架为软件过程的定量控制建立了项目管理和项目工程的基本原则,这是软件过程得以不断改进的基础。

  25. 200000行的数据处理产品由CMM的第一级到第五级的组织开发时的数据200000行的数据处理产品由CMM的第一级到第五级的组织开发时的数据

  26. CSCMM能力成熟度模型 • 0.初始级(Initial) • 1.基本级(basic) • 2.可重复级(Repeatable) • 3.已定义级(Defined) • 4.已管理级(Managed) • 5.优化级(Optimizing)

  27. CMM的相关知识 • CMM的内部结构 • CMM的相关概念 • CMM的关键过程域 • 运用CMM进行软件过程改进时的注意事项

  28. CMM的内部结构 成熟度等级度等级 包含含 指示 关键关键过程域过程域 过程能力 达到 组织成一些 织成一些 目标标 关键实践类 阐述 包含若干 有关职责和目的 关键实践关键实践 描述 基础设施或活动

  29. 相关概念 • 关键过程域:每个关键过程域只与特定的成熟度等级直接相关,它指明一组相关的实践活动,当这些活动全部完成时,就能达到对增强过程能力至关重要的若干个目标。 • 关键实践:一个关键过程域的关键实践表示,实施这些关键实践是实现该关键过程域目标的必要条件 • 关键实践类:制定方针政策、确保必备条件、实施软件过程和检查实施情况

  30. CMM的关键过程域

  31. 过程改进时需要注意的事项 1、对改进模型的充分理解(能力成熟度模型和包括于每一个关键过程域中的关键实践); 2、理解自己组织的实际的实践活动和模型所要求的实践活动之间的差异; 3、定义满足改进目标的必要过程; 4、确保改进过程被实施并且能够持续的改进。

  32. 特点 研究基于CMM软件过程改进的意义 • 不断改进的软件开发过程是软件工程的基本原理之一; • 软件过程改进是软件生存周期的基本过程之一; • 目前软件过程改进技术有三大流派; • CMM得到了学术界和工业界公认; • 用工程化的思想推动软件产业发展; • 达到与世界软件水平同步的目标;

  33. CMM在教务系统中的应用 • 建立了软件过程改善组织 • 提出了基于CMM的评估剖面图 • 提出了环境对过程改进的影响模型和支持工具模型 • 设计了基于CMM的教务系统方案 • 形成了与传统的开发方法不同的教务系统改进框架 • 利用PSP设计了详细的开发流程 • 制定了保证软件过程改进顺利实施的条件

  34. 建立教务系统软件过程改善组 管理委员会 SEPG 工作组 技术支持组 培训组 工具组 信息组

  35. 环境因素对软件过程改进的影响 当前项目状态前项目状态 活动 有关项目的信息 项目决策 环境因素

  36. 基于CMM教务系统软件过程改进设计 成熟度等级 关键过程域域 度等级 建立软件过程改善组善组善组 较高的成熟度等级高的成熟度等级 改进过程 较低的成熟度等级的成熟度等级等级 目标 系统自身特点 制定改制定活动计划进活动计划 进行软件过程改进 评估当前系统 环境因素 否 是否满足改进要求要求 是 形成过程改进框架

  37. 形成教务系统软件改进框架 详细设计和设计评审 需求和计划 测试开发和评审 高层设计 实现和代码评审 高层设计评审 编译 循环开发 测试 再评估和再循环

  38. 利用PSP所形成的软件开发流程 集成计划 编码 单元测试 集成 高层设计 详细设计 评估当前系统 需求分析 系统测试计划 系统测试 安装 验收测试 产品 文档 需求文档 设计文档 编码文档

  39. 教务系统改进过程中的支持工具 人员管理工具 负责各项活动 明确责任人 审查并记录 支持 过程文档工具 过程流程工具 评审工具

  40. 基于CMM的软件过程评估过程 • 首先必须对当前系统的过程改进进行评估,找出当前系统的弱点,从而作为软件过程改善的基础。 • 评估可以依据CMM所提供的标准来进行,由管理委员成员和软件过程改善组的成员组成评估组对当前的系统进行评估。 • 我们可以通过填写的CMM提问单的来对当前的系统进行分析和响应,根据响应和分析的结果,召开座谈会、对文档资料进行复审,以便进一步了解软件开发所遵循的软件过程,在这个过程中应当以CMM中的关键过程域和关键实践作为基础,以便更好的确定所考察的实践与CMM之间存在的差异,同时形成文档作为今后过程改进的基础和理论依据。 • 另外评估组成员也可以根据评估结果制作KPA剖面图,标明该软件开发组织以满足和未满足的其目标的关键过程域,同时在评估的过程中我们也可以聘请一些有经验的软件过程改进人员来参与软件组织的评估活动,进而能够确定过程改进中关键过程域和关键实践的优先级。

  41. 关于CMM调查单形式 关于调查者的基本信息 关于调查者的背景 关于调查者回答问题的响应方式 关于关键过程域和关键实践的响应

  42. 教务系统的评估结果

  43. 保证软件过程改进顺利进行的措施 软件开发组织负责人的支持 始终将软件的过程改进放到首要的位置 制定严格的时间管理 软件过程改进出现问题时能够及时改正 软件质量的保证策略

  44. 制定严格的时间管理的相关事项 进度管理

  45. 时间跟踪日志

  46. 根据以往时间来进行估算

  47. 软件产品质量保证 利用质检比进行预测

  48. A/FR的估算结果和结论 6 5 4 3 2 1 0 每千行代码测试缺 陷 510 15 A/FR 相关结论

  49. PSP SW--CMM SDCE PeopleCmm SCE SA--CMM CMMI ISO 15540*(SPICE) FAA--iCMM IPD--CMM* SE--CMM SECM*(EIA/IS731) DOD IPPD CMM的未来发展趋势 集成的CMM即CMMI

More Related