软件过程模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2005-9-6
11
问题定义和可行性研究
确定要开发软件系统的总目标和规模。 从技术、经济和社会因素等方面的要求来论证
完成该软件任务的可行性。
估计可利用的资源(计算机硬件,软件,人力等)、
成本、效益、开发进度。
制定出完成开发任务的实施计划,连同可行性研
究报告,提交管理部门审查。
2005-9-6
2005-9-6
32
原型模型的优点
从实践中学习(Learning by doing) 用户参与 使部分已知需求逐渐清晰化 提高系统的实用性、可维护性 节省开发的投入、缩短整个软件的开发周期
2005-9-6
33
原型模型存在的问题
用户有时误解了原型的角色,例如他们可能误解原型 应该和真实系统一样可靠。
选择一个公共过程框架是根据产品、人员和项目
而调整的。
2005-9-6
8
内容提要
软件过程 软件生命周期 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化模型
增量模型 螺旋模型
软件开发过程的一般视图
2005-9-6
9
软件生命周期
软件生命周期是软件过程模型的基础,是软件产
品或系统一系列相关活动的全周期。
牙利法则) ,且与设计相一致的。
2005-9-6
15
测试
单元测试:查找各模块在功能和结构上存在的问
题并加以纠正。
集成测试:将已测试过的、并且相关的模块按一
定顺序组装起来进行测试。
按规定的各项需求,逐项进行系统测试,决定已
开发的软件是否合格,能否交付用户使用。
2005-9-6
16
运行和维护
改正性维护:运行中发现了软件中的错误需
Measurement
Risk management
2005-9-6
7
软件过程
软件过程提供了一个公共过程框架,在该框架下
可以建立一个软件开发的综合计划:
若干框架活动适用于所有软件项目,而不在乎其规模 和复杂性。
若干不同任务的集合,使得框架活动适应于不同软件项 目的特征和项目组的需求。
若干保护性活动,它们贯穿于整个过程模型之中。保护 性活动独立于任何一个框架活动,且贯穿于整个过程 之中。
2005-9-6
42
风险更大的增量模型
System/information engineering
analysis
design
increment 1
code
test
Core
delivery of product
1st increment
More features and functionality
划。
是一种严格线性的、按阶段顺序的、逐步细化的过
程模型(开发模式)。
2005-9-6
24
瀑布模型的缺陷
在项目开始的时候,用户常常难以清楚地给出所
有需求;用户与开发人员对需求理解存在差异。
缺乏灵活性:因为瀑布模型确定了需求分析的绝
对重要性,但是在实践中要想获得完善的需求说 明是非常困难的,导致“阻塞状态”。反馈信息 慢,开发周期长。
所有过程模型的鼻祖。---- Royce,1970 瀑布模型把软件开发过程划分成若干阶段,每个阶
段的任务相对独立,便于不同人员分工协作,从而 降低了整个软件开发工程的困难程度。在软件生存 期的每个阶段都采用科学的管理技术和良好的方法 与技术,而且每个阶段结束之前,都从技术和管理 两个角度进行严格的审查,经确认之后才开始下一 阶段的工作。---- 项目是按照一定的顺序执行。
增量模型 (Incremental Model) 螺旋模型 (Spiral Model)
2005-9-6
39
内容提要
软件过程 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化软件过程模型
增量模型 螺旋模型
软件开发过程的一般视图
2005-9-6
40
增量模型
可行性研究与计划 需求分析 概要设计 针对每个构件,完成详细设计、编码 和集成,经测试后交付给用户 维护
列运作步骤。
过程具有一系列的性质:时间性、并发性、
嵌套性和度量性等。
软件过程:开发和维护软件及其相关产品
所涉及的一系列活动。
2005-9-6
6
公共过程框架Common process framework
框架活动Framework Activities 任务集合work tasks 工作任务work products 交付物milestones & deliverables 质量保证点QA checkpoints
2005-9-6
41
增量模型的特点
融合了瀑布模型的基本成分和快速原型的迭代特
征;
以功能递增的方式进行软件开发; 能较快地产生可操作的系统; 在每一步递增中,均发布一个新的增量版本,把
用户/开发者的经验结合到不断求精的产品中;
每个增量的开发没有必要使用相同的过程; 可改善测试效果和降低软件开发总成本。
保护性活动Umbrella Activities
Project tracking & control Formal technical reviews
Quality assurance
Configuration management
Documentation
Reusability management
要修正。
适应性维护:为了适应变化了的软件工作环
境,需做适当变更。
完善性维护:为了增强软件的功能需做变更。 预防性维护:修改软件为将来的维护活动预
先做准备
2005-9-6
17
软件过程模型的概念
软件过程模型是软件过程的抽象表示。 一个软件过程模型是软件开发全部过程、
活动和任务的结构框架。它能直观表达 软件开发全过程,明确规定要完成的主 要活动、任务和开发策略。
缺少项目标准,进化原型方法有点像编码修正。
缺少控制,由于用户可能不断提出新要求,因而原型 迭代的周期很难控制。
额外的花费:研究结果表明构造一个原型可能需要 10%额外花费。
为了尽快实现原型,采用了不合适的技术,运行效率 可能会受影响。
原型法要求开发者与用户密切接触,有时这是不可能 的。例如外包软件。
实际的项目很少按照顺序模型进行。
2005-9-6
25
瀑布模型适用场合
当需求分析完全正确和有很容易被理解的技术解
决方案时,纯瀑布模型特别合适。
对于那些容易理解但很复杂的项目,采用纯瀑布
模型比较合适,因为可以用顺序方法处理问题。
在质量需求高于成本需求和进度需求的时候,它
尤为出色。
当开发队伍的技术力量比较弱或者缺乏经验时,
28
原型开发过程
建立原 型目标
原型规划
定义原型 功能
框架定义
用
户 意
开发原型
可执行原型
见
反
馈
评估原型
评估报告
2005-9-6
29
快速原型模型 (Rapid Prototype Model)
听取用户 意见
建造/修改 原型
用户测试 运行原型
2005-9-6
30
原型模型分类
原型能完成的功能是项目系统最终产品能完成的
提问
什么是软件? 软件与硬件相比,其特点是什么? 软件质量要素? 产生软件危机的原因? 什么是软件工程? 软件工程研究的内容 软件工程原理、基本框架
2005-9-6
1
第2讲 软件过程模型 (Process Model)
2005-9-6
2
内容提要
软件过程 软件生命周期 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化模型
瀑布模型更为适合。
2005-9-6
26
瀑布模型变种:V型模型
该方法是对瀑布模型的修正,强调了验证活动
2005-9-6
27
内容提要
软件过程 软件生命周期 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化模型
增量模型 螺旋模型
基于构件的开发 软件开发过程的一般视图
2005-9-6
功能的一个子集。
抛弃型原型:原型使用完毕后无需保留而抛弃,重新 建立目标系统,开发的原型仅以演示为目的(用户界 面的开发)。
演化型原型:原型是最终产品的一部分,原型系统根 据用户的反馈意见不断被开发和被修正,最终它变为 一个真正的系统。
2005-9-6
31
原型模型的特点
适用于用户驱动的系统(即需求模糊 或随时间变化的系统)。
增量模型 螺旋模型
软件开发过程的一般视图
2005-9-6
3
软件工程层次图
方文法档为自使资软动用料件的的;工或顺为程半序保方 自;证法动要质提的求量供软交和了件付适软的应件开发提供了 “如 变化支所撑需环要境的,管C理A;SE软件开何发做” 的技术。 各个阶段完成的里程碑。
工具 方法 过程模型 质量焦点
增量模型 螺旋模型
软件开发过程的一般视图
2005-9-6
20
传统瀑布模型(Waterfall Model)
软件定义 可行性研究与计划
需求分析 设计 编码 测试 运行和维护
2005-9-6
21
实际瀑布模型
软件定义 可行性研究与计划
需求分析 设计 编码 测试 运行和维护
2005-9-6
22
瀑布模型
12
需求分析
理解用户需求,并将用户需求用书面形式表达出
来。
编写软件需求规格说明书或系统功能说明书及初
步的系统用户手册。需求说明书是以后阶段工作 的基础。
将需求规格说明书提交管理机构评审。
2005-9-6
13
设计
总体设计 — “如何解决问题”
在需求说明书的基础上建立软件的体系结构。结构中 每一组成部分都是意义明确的模块,每个模块都和某 些需求相对应
瀑布模型是文档驱动的,各个阶段不连续也不交叉。
2005-9-6
23
瀑布模型的特点
阶段间具有顺序性和依赖性。 (两重含义)
推迟程序的物理实现。(重要指导思想)
质量保证:每个阶段必须完成规定的文档;每个阶
段结束前完成文档审查瀑布,及模早型改适正合错哪误。(两个重要
做法)
些场合呢?有何
易于组织,易于管理:因缺为点你呢可?以预先完成所有计
increment 2 analysis
design
code
test
delivery of
2nd increment
increment 3 analysis
design
code
test
delivery of
3rd increment
increment 4 analysis
design
code
Makes a better use of resources.
代和无缝的特性
应该把线性过程作为总目标
2005-9-6
37
内容提要
软件过程 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化模型
增量模型 螺旋模型
软件开发过程的一般视图
2005-9-6
38
演化软件过程模型
演化模型是利用一种迭代的思想方法,它
的特征是使软件工程师渐进地开发逐步完 善的软件版本。
软件生命周期阶段:
▪ 可行性研究及项目定义 ▪ 需求分析 ▪ 设计(总体设计和详细设计) ▪ 编程实现 ▪ 测试 ▪ 使用与维护
2005-9-6
10
软件生命周期模型
定 软件定义
问题描述
义 可行性研究与计划
可行性研究报告
需求分析
需求规格说明书
开
设计
设计规格说明书
发
编码
程序
测试
测试报告
维护
运行和维护
可以列出多种解决方案进行比较
详细设计 — 对每个模块要完成的工作进行具体
的描述,为源程序编写打下基础
编写设计说明书(模块说明书、数据库或文件结
构说明书等),提交评审。
2005-9-6
14
编码
把软件设计转换成计算机可以接受的程序代码,
即写成以某一种特定程序设计语言表示的“源程 序清单”。
写出的程序应当是结构良好、清晰易读的(如匈
2005-9-6
4
软件过程(概要)
软件过程是近十年来人们关注的焦点。 软件过程是一个为开发高质量软件所需要
完成的任务的框架。
软件工程是有创造力、有知识的人在定义
好的、成熟的软件过程框架中进行的,该 过程适合开发的软件和市场的需要。
2005-9-6
5
过程及软件过程
过程:为实现一个给定目标而进行的一系
软件过程模型也常称为:
软件工程模式 软件生存周期模型
2005-9-6
18
过程模型的选择影响到整个软件开发
生存期。就是说,它支配了
设计方法 编码语言 测试和维护技术
的选择
2005-9-6
19
内容提要
软件过程 软件生命周期 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化模型
2005-9-6
Hale Waihona Puke Baidu
34
内容提要
软件过程 软件生命周期 软件过程模型 瀑布模型 快速原型模型 喷泉模型 演化模型
增量模型 螺旋模型
软件开发过程的一般视图
2005-9-6
35
喷泉模
演化
维护 确认 实现 设计 分析
2005-9-6
36
喷泉模型的特点
是典型的面向对象生命周期模型 “喷泉”这个词体现了面向对象软件开发过程迭