软件工程过程模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
第2章 软件工程过程模型
2.4瀑布模型(Waterfall model)
2.推迟实现的观点 过早地考虑程序的实现,常常导致大量返工,有时甚
至给开发人员带来灾难性的后果。 瀑布模型在编码以前安排了分析阶段和设计阶段,并
且明确宣布,这两个阶段都只考虑目标系统的逻辑模型, 不涉及软件的物理实现。
8
第2章 软件工程过程模型
2.3 软件过程模型
上述的问题循环解决过程可以应用于软件工程的多个不 同开发级别(阶段)上,包括考虑整个系统开发的宏观阶段, 开发程序构件的中间阶段,甚至是代码编制阶段,因此可以 采用分级集合表示。可以定义一个模式,然后在连续的、更 小的规模上递归地应用它,这样来提供一个关于过程的理想 化的视图。问题循环解决过程的每一个阶段又包含一个相同 的问题循环解决过程,如图2.4所示。
3
第2章 软件工程过程模型
2.2 软件工程过程
软件工程过程是开发或维护软件及其相关产品的一系列 活动。软件工程过程通常包括四种基本的过程活动:
(1) 软件规格说明:规定软件的功能、性能及其运行限制。
(2) 软件开发:产生满足规格说明的软件,包括设计与编 码等工作。
(3) 软件确认:确认软件能够满足客户提出的要求,对应 于软件测试。
5
第2章 软件工程过程模型
2.2 软件工程过程
一个软件过程可以表示成如图2.2所示的形式:
公共过程框架 框架活动 任务集合 工作任务
里程碑、交付物
SQA(软 件 质 量 保 证 )点
保护性辅助活动
6
图2.2 软件工程过
第2章 软件工程过程模型
2.3 软件过程模型
什么是软件工程过程模型? 在一个具体的实际工程活动中,软件工程师必须设计、
12
第2章 软件工程过程模型
2.4瀑布模型(Waterfall model)
13
图2.5 软件生存周期的瀑布模型
第2章 软件工程过程模型
2.4瀑布模型(Waterfall model)
瀑布模型软件开发具有以下几个特征: 1.阶段间的顺序性和依赖性
顺序性是指:只有等前一阶段的工作完成以后,后一 阶段的工作才能开始;前一阶段的输出文档,就是后一 阶段的输入文档。依赖性又同时表明了,只有前一阶段 有正确的输出时,后一阶段才可能有正确的结果。
第2章 软件工程过程模型
第2章 软件工程过程模型
2.1 软件工程的技术基础 2.2 软件工程过程 2.3 软件过程模型 2.4 线性顺序模型 2.5 原型模型 2.6 快速应用开发模型 2.7 演化软件过程模型 2.8 软件过程技术 2.9 软件重用技术 2.10 小结
1
第2章 软件工程过程模型
2.1 软件工程的技术基础
(4) 软件演进:为满足客户的变更要求,软件必须在使用 的过程中演进,以求尽量延长软件的生命周期。
此外,在一个良好的软件过程中,还应当包括一些“保护 性”的活动。
4
第2章 软件工程过程模型
2.2 软件工程过程
在具体的工程过程中,可以根据实际需要,采用不同的过 程模型来实现上述的基本活动和保护活动。一个良好的软件 工程过程应当具备如下特点: (1) 易理解性。 (2) 可见性:每个过程活动都以得到明确的结果而告终,保证 过程的进展对外可见。 (3) 可支持性 :容易得到CASE工具的支持。 (4) 可接受性:比较容易被软件工程师接受和使用。 (5) 可靠性:不会出现过程错误,或者出现的过程错误能够在 产品出错之前被发现。 (6) 健壮性:不受意外发生问题的干扰。 (7) 可维护性:过程可以根据开发组织的需求的改变而改进。 (8) 高效率:从给出软件规格说明起,就能够较快地完成开发 而交付使用。
3、软件工程方法涵盖了需求分析、设计、编程、测试、维护 等各个环节,它给出了完成这些任务在技术上应当“如何做” 的方法。
4、工具层对过程和方法提供支持,使得工程活动、管理活动 得以自动、半自动的进行。例如,目前广为使用的数据库建 模工具Erwin、面向对象的建模工具Rationnal Rose、配置管 理工具等等。
瀑布模型、原型模型、快速应用开发模型、增量模型、螺旋 模型、形式化方法模型、RUP( Rational Unified Process )模型、 敏捷过程模型、构件组装模型、并发开发模型等等。
过程模型的共性:
一般都包含“定义(或计划)”、“开发”和“维护”3类活 动。定义活动主要弄清软件“做什么”;开发活动集中解决 让软件“怎么做”;维护活动则聚集于软件的“修改”,即 “What-How-Change”。
9
第2章 软件工程过程模型
2.3 软件过程模型
状态描述
状态 描述
问题 定义
方案 综述
技术 开发
状态 描述
问题 定义
方案 综述
技术 开发
状态 描述
问题 定义
方案 综述
技术 开发
10
图2.4 问题循环解决阶段中的阶段
第2章 软件工程过程模型
2.3 软件过程模型
在软件工程实践中,以下过程模型比较流行:
11
第2章 软件工程过程模型
2.4瀑布模型(Waterfall model)
瀑布模型(也称线性顺序模型或软件生存周期模型), 是W.Royce在1970年提出的。瀑布模型遵循软件生存期的 划分,明确规定各个阶段的任务,各个阶段的工作自上而 下、顺序展开,如同瀑布流水,逐级下落。
瀑布模型把软件生存周期划分为计划时期(或定义时 期)、开发时期和运行时期。这三个时期又分别细分为若 干个阶段。参看图2.5。
软件工程是一种层次化的技术,如图:
工具层 方法层 过程层 质量焦点
图2.1 软件工程过程层次图
2
第2章 软件工程过程模型
2.1 软件工程的技术基础源自文库
1、对质量的关注构成了软件工程的根基。
2、过程层是软件工程的基层。 目前流行比较广泛的软件工程过程包括有RUP过程、极限
(XP)过程、敏捷软件过程(Agile S.P)等等。
提炼出一个工程开发策略,用以覆盖软件过程中的基本阶段, 确定所涉及的过程、方法、工具。这种策略常被称为“软件 工程过程模型”。
7
第2章 软件工程过程模型
2.3 软件过程模型
从宏观上来看,所有的软件开发过程都可以看成是一个循 环解决问题的过程。如图2.3所示。
问题定义
状态描述
技术开发
方案综述
图2.3 问题循环解决的各个阶段
相关文档
最新文档