高级软件开发过程——Rational统一过程、敏捷过程与微软过程-第一章

合集下载

软件开发流程敏捷实践指南

软件开发流程敏捷实践指南

软件开发流程敏捷实践指南第一章敏捷开发概述 (2)1.1 敏捷开发的起源与发展 (2)1.2 敏捷开发的核心价值观与原则 (3)第二章敏捷团队构建与协作 (3)2.1 敏捷团队的组成与角色 (3)2.2 敏捷团队协作模式与实践 (4)2.3 敏捷团队沟通与协作工具 (4)第三章需求分析与规划 (5)3.1 用户故事的编写与维护 (5)3.2 产品待办事项的优先级管理 (5)3.3 迭代计划与任务分配 (6)第四章敏捷开发过程管理 (6)4.1 敏捷开发迭代周期 (6)4.2 站会、迭代评审与回顾会议 (7)4.3 敏捷项目进度监控与调整 (7)第五章设计与架构 (8)5.1 敏捷设计原则与实践 (8)5.2 软件架构的敏捷实践 (9)5.3 设计模式在敏捷开发中的应用 (9)第六章代码开发与重构 (10)6.1 敏捷编程实践 (10)6.1.1 编程规范 (10)6.1.2 简洁代码 (10)6.1.3 模块化与解耦 (10)6.1.4 单元测试 (10)6.2 代码审查与重构 (10)6.2.1 代码审查 (10)6.2.2 代码重构 (10)6.3 持续集成与部署 (11)6.3.1 持续集成 (11)6.3.2 持续部署 (11)第七章测试与质量保证 (11)7.1 敏捷测试策略与实践 (11)7.1.1 敏捷测试概述 (11)7.1.2 敏捷测试策略 (11)7.1.3 敏捷测试实践 (12)7.2 自动化测试与持续测试 (12)7.2.1 自动化测试概述 (12)7.2.2 自动化测试策略 (12)7.2.3 持续测试 (12)7.3 质量度量与改进 (13)7.3.1 质量度量概述 (13)7.3.2 质量度量指标 (13)7.3.3 质量改进策略 (13)第八章敏捷项目管理与优化 (13)8.1 敏捷项目管理方法 (13)8.2 项目风险识别与应对 (14)8.3 项目优化与改进 (14)第九章敏捷团队培训与成长 (15)9.1 敏捷开发技能培训 (15)9.1.1 培训内容 (15)9.1.2 培训方式 (15)9.2 团队内部知识分享与实践 (15)9.2.1 知识分享 (16)9.2.2 实践活动 (16)9.3 敏捷团队绩效评估与激励 (16)9.3.1 绩效评估 (16)9.3.2 激励措施 (16)第十章敏捷开发与其他方法论融合 (17)10.1 敏捷与DevOps的融合 (17)10.2 敏捷与精益开发的融合 (17)10.3 敏捷与Scrum等其他方法论的融合 (17)第一章敏捷开发概述1.1 敏捷开发的起源与发展敏捷开发(Agile Development)是一种以人为核心、迭代、适应性强的软件开发方法。

RUP开发过程

RUP开发过程
•个体含义:指软件或系统在生存周期中某一类 活动的集合.如获取过程、供应过程、 开发过程、管理过程. •整体含义:指软件或系统在上述含义下软件过程 的总体. •工程含义:应用软件工程的原则、方法来构造 软件过程模型,实例化后,在用户环 境下运作,提高软件开发效率.
6
3.
软件过程的结构
基本过程
获取过程 供应过程 开发过程 运行过程 维护过程
需求 分析
生命 周期 目标 生命 周期 构架 最初可操 作能力
4)
移交
产品 发布
ห้องสมุดไป่ตู้
设计
实现 测试
第1次 第2次 迭代 迭代
图 2-16
第n-1 第n次 次迭代 迭代 29
5) 软件开发的四个要素和4+1视图
过 程 人 员 项目 工 具
产 品
图 2-17 软件开发的四个要素
30
最终用户 向用户提交 功能 (类和子系统 逻辑结构)
程序员 与实现有关部 分如源代码、 库、对象的类 等.是事物的 静态视图
相关活动组成的工作流
• 从工作流的角度来描述过程.(此处的工 作流指一组活动).
• 工作流的来源: 确定参与过程的工作人员; 标识在过程中每种工作人员创建的制品.
32
(1) 需求用况建模的工作流(一组活动)
分析 人员 确定参与者和用况
11
首先,迭代过程要处理一组用况,这些
用况合起来能够扩展所开发产品的可用性. 其次,迭代过程要解决最突出的风险问 题.后继的迭代过程建立在前一次迭代末期 所开发的制品之上. 一个增量不一定是对原有制品的增加, 也可以用更加详细和完善的设计代替初始 的简单设计.
12
用况驱动、以构架为中心、迭代和 增量的过程是同等重要的. 构架提供了一种结构来指导迭代过程中 的工作. 用况确定了目标并驱动每次迭代的工作. • 统一过程是风险驱动的 减小对项目成功、预算、进度造成危害 的严重风险. • 统一过程是基于构件的 重用构造块减少成本,提高质量.

【VIP专享】RUP统一过程

【VIP专享】RUP统一过程

1 什么是Rational 统一过程(Rational Unified Process,RUP)1.1 什么是过程1.2 什么是软件开发过程1.3 什么是统一过程1.3.1 统一过程是用例驱动的1.3.2 统一过程是以构架为中心的1.3.3 统一过程是迭代和增量的1.4 关于RUP产品2 RUP产品为软件开发过程所提供的主要实践指导2.1 迭代的开发产品2.2 需求管理2.3 基于构件的体系结构2.4 可视化软件建模2.5 验证软件质量2.6 控制软件的变更3 过程简介3.1 基本定义3.1.1二维结构3.1.2 角色3.1.3 活动3.1.4 产物3.1.5 工作流3.2 循环或周期3.3 阶段3.3.1 初始阶段3.3.2 细化阶段3.3.3 构建阶段3.3.4 交付阶段3.4 迭代过程3.5 核心工作流(Core workflows)3.5.1 商业建模3.5.2 需求3.5.3 分析和设计3.5.4 实现3.5.5 测试3.5.6 发布3.5.7 项目管理3.5.8 配置和变更管理3.5.9 环境1 什么是Rational 统一过程(Rational Unified Process,RUP)1.1 什么是过程过程是为了达到一个确定的目标,需要什么人在什么时间以何种方式做何种工作的集合。

1.2 什么是软件开发过程软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。

1.3 什么是统一过程统一过程是一个软件开发过程。

它提供了在开发组织中分派任务和责任的纪律化方法。

它的目标是在可预见的日程和预算前提下,确保实现满足最终用户需求的高质量产品。

统一过程不是一个简单的过程,而是一个通用的过程框架,可用于各种不同类型的软件系统,各种不同的应用领域,各种不同类型的组织,各种不同的功能级别以及各种不同的项目规模。

统一过程是基于构件的,即所构造的软件系统是由软件构件通过明确定义的接口相互连接所建造起来的。

统一过程资料

统一过程资料

统一过程的适应性调整与优化
统一过程可以根据项目的实际情况和需求变更进行 适应性调整
• 调整活动、任务和资源分配,以满足 项目需求 • 有助于提高项目成功率和降低风险
统一过程的优化方法
• 持续改进:通过度量和反馈,不断优 化过程 • 知识管理:积累项目经验和知识,提 高团队能力 • 技术更新:引入新技术和方法,提高 开发效率和质量
• 统一过程的主要目标是提高软件质量、降低开发成本和缩短开发 周期 • 统一过程的核心是过程,即软件开发中的一系列活动和任务
统一过程的核心原则与理念
迭代与增量:软件开发过程被分解为 多个迭代和增量,每个迭代都产生一
个可运行的版本
以用例为中心:用例是 软件开发过程中的基本 单元,用于描述系统的
功能需求
统一过程的度量与评估方法
统一过程的度量与评估方法包括过程度量、质量度 量和绩效度量
• 有助于持续改进和提高项目质量
统一过程的度量与评估方法举例
• 过程度量:例如代码提交频率、缺陷 密度等 • 质量度量:例如缺陷修复率、客户满 意度等 • 绩效度量:例如项目完成率、成本效 益分析等
06
统一过程的应用与案例
03
03
统一过程的敏捷性与适应性
统一过程的敏捷性特点与优势
统一过程具有敏捷性,能够快速响应变化和持续交 付价值
• 通过迭代和增量的方式,可以在短时 间内交付可运行的软件系统 • 有助于提高客户满意度和降低风险
统一过程的敏捷性优势
• 灵活性:能够适应需求变更和新技术 的引入 • 可预测性:通过过程控制和风险管理, 确保软件质量 • 可维护性:注重软件设计和文档编写, 便于后期维护和升级
计文档 转移阶段: 主要任务 是安装、 配置和维 护软件系

2.3.2 统一过程模型

2.3.2 统一过程模型

现代软件过程模型统一过程模型•Rational Unified Process - RUP•由Rational公司(现已被IBM收购)推出的完整且完美的软件工程方法•获得广泛使用•基于面向对象方法学•使用统一建模语言UML(Unified Modeling Language)•从3个视角描述软件开发过程–动态视角:随时间变化的各个阶段–静态视角:所进行的活动–实践视角:可采用的良好实践建议1. 迭代式开发•需求变更不可避免•每次迭代产生一个可交付版本,用户反馈,减少风险•根据客户的轻重缓急来规划增量,先开发和交付优先级最高的增量2. 管理需求•采用用例分析来捕获需求,由用例驱动设计和实现•对需求及其变更进行管理3. 基于构件体系结构•采用基于构件的体系结构•提高软件复用率4. 可视化建模•使用统一建模语言(UML)对系统进行可视化建模5. 验证软件质量•软件质量评估贯穿整个开发过程的所有活动•全体成员参与6. 控制软件变更•描述如何控制和跟踪软件的变更初始:项目计划、评估风险;精化:设计系统的体系结构、制定项目计划、确定资源需求;构建:开发出所有组件和应用程序,集成并进行详尽测试;产品化:将产品移交给用户。

动态视角静态视角“谁”来做?做“某事”?“何时”做?“如何”做?活动角色工作流产物•6个核心工程工作流:•业务建模工作流•需求工作流•分析设计工作流•实现工作流•测试工作流•部署工作流•3个核心支持工作流:•项目管理工作流•配置与变更管理工作流•环境工作流。

构建阶段产品化阶段精化阶段初始阶段感谢观看!。

第12章Rational统一过程ppt课件全

第12章Rational统一过程ppt课件全

学习内容
统一过程的概念 统一过程的结构 配置和实现Rational统一过程
统一过程的概念
Rational统一过程,从字面的意思来讲,其包含有三层含义。 1.作为“Rational”统一过程,它是由Rational软件开发公司开发并维护的,它可以被看成是Rational软件开发公司的一款软件产品,并且和Rational软件开发公司开发的一系列软件开发工具进行了紧密的集成。 2.其次是它的“统一”的含义,Rational统一过程拥有自己的一套架构,并且这套架构是以一种大多数项目和开发组织都能够接受的形式存在的。其采用了现代软件工程开发的六项最佳实践。 3.最后是它的“过程”上,Rational统一过程不管是如何解释,其最终仍然是一种软件开发过程,提供了如何对软件开发组织进行管理的方式,并且拥有自己的目标和方法。
统一过程的结构
产物 产物是被过程产生的、修改的,或为过程所使用的一段信息。 产物是项目的有形产品:项目最终产生的事物,或者向最终产品迈进过程中使用的事物。产物用作角色执行某个活动的输入,同时也是该活动的输出。在面向对象的设计术语中,如活动是活动对象(角色)上的操作一样,产物是这些活动的参数。 产物可以具有不同的形式: 模型,模型组成元素,文档,源代码和可执行文件。
统一过程的结构
角色 角色定义了个人或由若干人所组成小组的行为和责任,它是统一过程的中心概念,很多事物和活动都是围绕角色进行的。 角色举例: 架构师(Architect) 架构师在整个项目中领导和协调技术活动和产物。架 构师为每一个架构视图建立整体结构:视图分解、元素分组以及在这些主要分组之间的接口。 系统分析员(System Analyst) 系统分析员通过描述系统功能的纲要和约束,领导和协调系统需求的将Rational统一过程的开发过程使用一种二维结构来表达,即使用沿着横轴和纵轴两个坐标轴来表达该过程。

软件开发统一过程(RUP)

软件开发统一过程(RUP)
元素事物Thing代表要定义的所有事物
元模型(meta model) 层组成了UML 的基本元素包
括面向对象和面向组件的概念通常叫做类模型
class model 或类型模型type model
UML 的架构


模型model 层组成了UML 的模型这一层中
的每个概念都是元模型层中概念的一个实
例通过版类化这一层的模型通常叫做类模
和它们之间的关系
UML 的模型视图图与系统架构建模

状态图 (State diagram )

描述了系统元素的状态条件和
UML 的模型视图图与系统架构建模

响应活动图Activity diagram

描述了了系统元素的活动
UML 的模型视图图与系统架构建模

组件图(构件图)(Component diagram)
Class Diagrams,细化类设计。
6. 为Sequence Diagrams中Objects指定对应
Class;
7. 设计系统实现结构,为各个Classes和
Packages指定实现的Component,并画出初步
Component Diagrams。
UML讲解
了解UML
UML 的架构
了解UML
型class model 或类型模型type model
用户模型user model 层这层中的所有元素都
是UML 模型的例子这一层中的每个概念都
是模型层的一个实例
UML 的模型视图图

静态视图


用例图、类图、对象图、组件图、展开图
动态视图

状态图、序列图、活动图、协作图

简述rational统一过程的含义。

简述rational统一过程的含义。

简述rational统一过程的含义摘要:本文简要介绍了r at io na l统一过程的概念及其在软件开发中的应用。

首先解释了什么是r at io na l统一过程,接着详细阐述了其主要特点和优势。

然后,结合实际案例,阐释了r at io na l统一过程如何在软件开发生命周期的不同阶段发挥作用。

最后,对于如何有效地实施r a ti on al统一过程提供了一些建议。

1.引言随着软件规模的不断扩大和软件开发的复杂性不断增加,研究人员和软件开发者们提出了各种软件开发方法和过程。

其中,ra ti on a l统一过程是一种基于用例驱动、风险管理和迭代开发的软件开发方法。

它通过提供一种结构化的、可重复的和可管理的方法来支持软件项目的开发和维护。

2.理解rat ional统一过程2.1什么是r a t i o na l统一过程?r a ti on al统一过程(R at io na lU ni fi ed P ro ce ss,R UP)是由IB M的有理软件(Ra ti on a lS of tw ar e)公司提出的一种基于用例的软件开发方法。

它是一种迭代和增量的软件过程,通过定义一系列活动、角色、工件和工作流来支持软件项目的开发生命周期。

2.2r a t i o n a l统一过程的特点r a ti on al统一过程具有以下主要特点:-迭代和增量开发:r a ti on al统一过程将软件开发生命周期划分为多个迭代阶段,每个迭代都会产生可执行的软件版本,以及完整的文档和测试集。

-用例驱动:ra ti ona l统一过程以用例为核心,通过对用户需求的分析和建模来定义软件的功能和行为。

-风险驱动:ra ti ona l统一过程通过识别和管理项目的关键风险,提高项目的成功概率。

-架构为中心:r at io n al统一过程强调软件架构的重要性,通过定义和实现一个合理的架构,确保软件系统具有可扩展性、可维护性和可重用性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1946年,世界上第一台电子计算机诞生在美国宾夕法尼亚大学的摩尔学院,由此拉开了计算机软件的发展史。

从宏观角度而言,计算机软件的发展主要经历了以下三个阶段[1]。

(1)第一阶段——程序设计阶段20世纪60年代以前还没有软件开发的说法,那时只有程序设计的概念,最多在写出程序后配有程序结构说明和使用说明。

经典的程序设计方法为“程序设计=数据结构+算法”。

(2)第二阶段——软件工程阶段20世纪70年代以来,人们认识到软件的工作不能仅限于编写程序,软件开发工作在程序编写之前和之后还有很多重要的工作不能忽略,例如需求分析、测试、维护等等。

在总结“软件危机”教训后,人们认识到并建立了软件工程的思想。

软件工程摒弃了认为只有充满编程技巧的程序才能高水平地发挥个人才能的观念,强调程序的可读性、可理解性、可测试性和易修改性等工程化的原则。

(3)第三阶段——软件过程阶段从20世纪90年代开始,人们更加强调软件开发的效率、软件的质量以及与软件开发相关的管理工作,建立了“软件过程”的概念。

软件过程不仅包括软件开发过程,还包括了支持性、管理性过程。

以上发展历程表明,通过实践、总结、再实践、再总结……人们对软件这门实践学科的理解正朝着更全面、更系统、更深刻的方向发展。

1.1 现代软件产业的困境1.1.1 困境中的现代软件产业当今,全球市场变幻莫测,用户需求日趋复杂,IT技术日新月异。

软件企业组织在不断变化的市场和技术环境中能否取得成功,关键在于企业组织是否能在市场许可的期2限和有限资源条件下不断推出满足用户需求的产品。

然而,现代软件产业的总体情况并不理想。

下面先来看一个真实的案例[14]。

Square Cal 3.0版本计划在2.0版本上市后的10个月内发布。

项目经理Mickey和上司Kim讨论后决定:他们将为项目组成员提供私人办公室、最新型的计算机以及免费的碳酸饮料,并且要求开发者在前8个月按照预先设计好的接口各自开发,8个月之后进行可视化锁定,在最后2个月内完成系统集成。

这是一个完美的计划。

于是项目组成员各自做着自己的工作。

随着可视化锁定日期的来临,他们开始进行代码集成。

他们在可视化锁定最终截止日期前一天的下午两点开始工作,但很快发现程序不能编译通过,更不用说运行了。

代码在编译时有数十个错误,而似乎每处理一个错误就会产生十个以上的新错误。

他们一直干到午夜也没有结果,只好决定第二天再说。

但测试发现问题的速度远比开发人员解决问题的速度快,解决系统某一部分的错误经常会导致其他部分的新问题。

项目超期,项目组成员在巨大的压力下工作,士气逐渐低落。

最后整个软件开发过程用了15个月时间,即超过了项目计划时间的50%,公司错过了最佳的产品发布日期。

产品发布后,用户对Square Cal 3.0版本反映冷淡,在几个月的时间内其市场份额从第二位下降到第四位。

再看一组统计数据。

图1-1[12]是根据最近一次项目调查得到的某公司所有软件项目的完成情况。

从图中可以看出,出现问题的项目和中途取消的项目所占比例远高于顺利完成的项目。

实际上,图1-1代表了整个现代软件产业的现状,很多软件项目最终不能交付,或者最终交付的软件项目进度发生延期、成本超出预算,而且运行经常不可靠。

因此,诸如“软件开发的滑铁卢”(Software Runaways)[2]、“死亡之旅”(Death March)[3]之类关于软件失败项目的报道不时见诸于媒体报端也就不足为奇。

53%16%31%中途取消的项目出现问题的项目顺利完成的项目图1-1 项目完成情况图1.1.2 陷入困境的根源众所周知,现代计算机和因特网的性能在逐年增强,用户对运行于计算机和因特网第1章绪论3上的软件的功能和性能的渴望也随之不断增加,用户希望得到越来越复杂的软件系统以满足其需求;与此同时,市场的激烈竞争迫使现代软件企业必须更快地生产出用户需要的复杂软件。

然而,现今大多数软件企业及其开发人员仍然沿用二三十年前的软件组织方式和开发方法来开发软件系统,这就是现代软件产业陷入困境的根源所在。

具体总结、归纳起来[2], [5], [12],大多数软件项目失败的根本原因主要有以下几个方面。

●不完整、不现实的项目需求描述:需求分析过程中缺乏用户参与或与用户的交流过于模糊,常导致给出的需求描述不完整、不准确,需求项过多、需求项实现难度过高等。

●对需求的变更束手无策:需求的变更往往是现实世界变化的反映,合理的需求变更在项目的某些阶段是允许的,这要求开发过程对需求变更具有应对能力。

●脆弱的架构:表现为程序模块互不兼容,软件不易扩展、裁剪和移植。

●采用不成熟的技术:表现为新技术不具有要求的功能、新技术存在局限性或者新技术是问题的错误解决方案。

●测试的不充分性:未检测出需求、设计和实现三者之间的不一致。

●拙劣的进度计划和评估:主要表现为对项目进度的评估过于乐观,正如霍夫斯塔特(Hofstadter)定律[2]所指出的那样,“开发软件的时间总比想象的时间长,即使注意了霍夫斯塔特定律也是如此”。

●缺乏资源:产品开发项目需要一定的投入,包括在经费、人员、场地、时间等资源方面的投入,尤其是在资深人员方面的投入。

●不具备项目管理方法:包括对风险的预估和驾驭、对软件质量的度量等项目管理方法。

●缺少管理层的支持:在软件企业中从事产品开发工作,必须获得企业高层管理者的支持,项目和产品本身也必须符合企业总体的发展规划和经营目标,否则项目就会夭折。

1.2 软件生命周期模型及其局限性在具体探讨现代软件产业走出困境的解决方案时,有必要先回顾、总结一下现有软件工程领域的研究成果以及它们在解决现代软件产业面临的困境方面存在的局限性,以此作为提出走出困境的新的途径的思想基础。

1.2.1 困境中的消极态度软件开发工作对软件开发人员来说通常不是一件很有趣的事情[8]。

项目经常在开始一段时间后遇到障碍,这时消极的开发人员开始指责别人。

容易被指责的对象包括:愚蠢、粗暴的老板——他们的能力勉强够给自己系鞋带;在其他部门的纸堆里的呆子——他们总是要求过多的文档;愚蠢的用户——他们经常不知道自己想要什么,而在他们能够确切说明自己想要什么的时候,这些要求又总是没有意义的。

当然,这些开发人员在4指责别人的时候从不指责自己,他们相信自己是完美的。

指责完之后该做些什么呢?有的倾尽全力,加班加点,为满足交给自己的、不切实际的要求做徒劳的努力,从而踏上一条死亡之旅;有的则与项目完全脱离关系,做一些不相干的事,因为知道项目注定要失败,所以开始学习一些新的技术,至少可以用来充实自己的简历,以备项目组解散后被调换到另一个项目组或跳槽到另一家公司工作。

不幸的是,上一个项目的历史在新项目过程中再一次被重演,新项目开始遇到障碍,他们又开始了新一轮的从指责到颓废,如此周而复始,恶性循环。

1.2.2 困境中的积极探索正当消极的人在软件开发的泥潭中相互指责而越陷越深、难以自拔时,另一部分人开始了积极的反思与新的探求。

难道真的全是别人的过错吗?自己有无责任?如何使项目走出困境?如何避免新的项目再次陷入泥潭?回顾图1-1,尽管最终失败或出现问题的项目占84%,但毕竟还有16%的成功项目,一个最明显的例证即微软公司[13]。

微软公司在1975年只有3名员工,营业额仅16 000美元;到1989年已经有8000名员工,营业额达80亿美元;而发展至2000年时员工已有35 000名,营业额达240亿美元,获利更高达150亿美元,成为世界上最大的软件公司。

这一发展过程堪称世界软件业奇迹之首。

除微软公司外,也不乏其他优秀的软件企业,如嵌入式软件产品与服务的提供商——风河(Wind River)公司就属于软件业中的后起之秀。

那么,这些优秀的软件企业是如何组织开展软件产品开发的?通过深入挖掘这些企业软件开发项目成功的经验,同时深刻剖析不成功的软件开发项目失败的原因,人们总结出了很多软件开发实践经验,并决定将这些实践应用于新的软件开发项目中,以期以一种可预测的方式指导新的软件开发项目并获得成功,同过通过实践检验来不断完善这些经验。

最终,这些“软件开发实践经验总结”不断演变,其体系化的研究成果表现为“软件过程”概念的诞生和一些“软件生命周期模型”的相继推出。

1.2.3 软件过程1.定义定义1-1软件过程是从软件项目需求定义开始直至软件使用后被废弃为止,跨越整个软件生存期内的系统开发、运行和维护等全部活动及相关项的总和。

2.内容[1]软件过程包括5个主要过程、8个支持过程和4个组织过程。

●5个主要过程为获取过程、供应过程、开发过程、运行过程、维护过程。

●8个支持过程为文档编制过程、配置管理过程、质量保证过程、验证过程、确认过程、联合评审过程、审核过程、问题解决过程。

第1章绪论5●4个组织过程为管理过程、基础设施过程、改进过程、培训过程。

3.软件过程能力评估标准和改进方案以下为三种最具影响力的软件过程能力评估标准和改进方案。

●CMM(Carnegie Mellon University,能力成熟度模型):1987年由美国卡内基梅隆大学(Carnegie Mellon University)提出,适用范围为国际贸易中的软件。

CMM将软件能力成熟度从低到高分为五级,分别为初始级、可重复级、已定义级、已定量管理级、优化级,软件企业可按这五级对其软件过程进行持续改进。

●ISO 9000:1987年由国际标准化组织(ISO)颁布,适用范围不仅包括国际贸易中的软件,同时也包括国际贸易中的硬件和服务。

●6σ:六西格玛(Six Sigma,6σ)起源于制造业,其本质是一种采用统计学技术的质量度量和管理方法。

在20世纪90年代中期,通用电气公司成功地将6σ从一种质量度量管理方法提升为一种高度有效的企业过程设计、改造和优化的方法体系,继而推广到各个行业;其思想核心是将所有工作作为一种过程或流程,采用量化的方法分析过程中影响质量的因素,找出最关键的因素加以改进,从而达到更高的客户满意度。

1.2.4 软件生命周期模型及其局限性1.定义定义1-2软件生命周期模型是软件过程中全部活动的生命周期结构框架的一种形式化描述,也称为软件生存期模型[1]。

2.种类迄今为止,已提出多种软件生命周期模型,最典型的包括瀑布模型、演化模型、螺旋模型、喷泉模型等。

(1)瀑布模型如图1-2所示,瀑布模型规定了软件生命周期各阶段的不同活动,包括定义阶段的项目计划和需求分析,开发阶段的设计、编码和测试,维护阶段的运行维护。

这些活动自上而下,相互衔接,呈线性图状,如同瀑布流水,逐级下落。

软件开发的实践证明,瀑布模型可用于指导用户需求较明确、稳定的软件项目。

尽管瀑布模型的适用范围有很大的局限性,但其思想精髓“线性化”是多种软件生命周期模型(如演化模型、螺旋模型、喷泉模型等)的基本细粒度元素,对此应深刻领会并灵活运用。

相关文档
最新文档