几种典型的过程改进模型 ◆迭代增量式开发: 迭代涉及管理可执行的版本流的过程; ■增量涉及系统结构连续继承以产生这些版本 的过程; 关键:系统划分的规模和模块间的偶合度
几种典型的过程改进模型 迭代增量式开发: ◼ 迭代涉及管理可执行的版本流的过程; ◼ 增量涉及系统结构连续继承以产生这些版本 的过程; ◼ 关键:系统划分的规模和模块间的偶合度
几种典型的过程改进模型 ◆能力成熟度模型CMM 「第五级1 优化 改进过程变化管理 适当时候的连续过程改进 「第四级 已管理 改进过程度量标准 有用于控制过程的度量标准 第三级 已定义 改进过程定义 管理和工程化过程都得到规范并被遵守 第二级 可重复 改进过程规程 可重复的项目管理 第一级门对同类项目有一致的时间和工作预测 初始级 依赖当前员工的不可预测和无规程的过程
几种典型的过程改进模型 第一级 初始级 第五级 优化 第四级 已管理 第三级 已定义 第二级 可重复 依赖当前员工的不可预测和无规程的过程 可重复的项目管理 对同类项目有一致的时间和工作预测 管理和工程化过程都得到规范并被遵守 有用于控制过程的度量标准 适当时候的连续过程改进 改进过程规程 改进过程定义 改进过程度量标准 改进过程变化管理 能力成熟度模型CMM
几种典型的过程改进模型 ◆ISO9000标准 主要承诺:如果过程正确,则该过程的产出 也将是令人满意的 没有强制性的或规定的过程 ■组织要记录和整理其所有活动,并为每个过 程规定成文的步骤
几种典型的过程改进模型 ISO9000标准 ◼ 主要承诺:如果过程正确,则该过程的产出 也将是令人满意的 ◼ 没有强制性的或规定的过程 ◼ 组织要记录和整理其所有活动,并为每个过 程规定成文的步骤
项目成败的因素:建模 ◆需求工程的作用是捕获系统需求,为系统建模, 并用一种语言表达系统模型 ◆语言:支持在描述性语句中捕获过程性含义, 说出什么需要做,而不是怎样去做 ◆CASE工具:支持模型的协同存取和开发者之间 的合作 目前,UML及其工具: 支持面向对象风格 支持静态结构建模和动态行为建模
项目成败的因素:建模 需求工程的作用是捕获系统需求,为系统建模, 并用一种语言表达系统模型 语言:支持在描述性语句中捕获过程性含义, 说出什么需要做,而不是怎样去做 CASE工具:支持模型的协同存取和开发者之间 的合作 目前,UML及其工具: ◼ 支持面向对象风格 ◼ 支持静态结构建模和动态行为建模
总结 问题 没有“银弹 ■社会系统对软件的依赖越来越 软件在规模上越来越复杂 强 软件是不可见的和抽象的 没有构造性的步骤:软件是可修 软件成为任务关键系统的最大 改的! 的开销点 但,早期的建模和分析非常重要 目前的情况:失败的项目造成 缺陷发现的越早消除它就越便宜 巨大的浪费。比如,1997年 需求缺陷很可能是安全相关的 GAO报告,6年浪费 早期的建模和分析还不够 S145billion 需要向每个人传递需求 ■失败的后果花费很高的代价。 需要得到所有投入者的同意 比如, Intel Pentium Bug: 需要理解系统的所处的环境 $475million 需要理解开发过程所处的环境 需要随需求的进化保持不断的更 新
总结 问题 ◼ 社会系统对软件的依赖越来越 强 ◼ 软件成为任务关键系统的最大 的开销点 ◼ 目前的情况:失败的项目造成 巨大的浪费。比如,1997年 GAO报告,6年浪费 $145billion ◼ 失败的后果花费很高的代价。 比如,Intel Pentium Bug: $475million 没有“银弹” ◼ 软件在规模上越来越复杂 ◼ 软件是不可见的和抽象的 ◼ 没有构造性的步骤:软件是可修 改的! 但,早期的建模和分析非常重要 ◼ 缺陷发现的越早消除它就越便宜 ◼ 需求缺陷很可能是安全相关的 早期的建模和分析还不够 ◼ 需要向每个人传递需求 ◼ 需要得到所有投入者的同意 ◼ 需要理解系统的所处的环境 ◼ 需要理解开发过程所处的环境 ◼ 需要随需求的进化保持不断的更 新