软件开发六阶段和十个经典模型 PPT课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立新版本 不断修改
不 满 意
运 行 并 满意 交付(发布) 评 估
2020/3/30
15
回到目录
软件开发十模型(三)——快速原型模型
• 定义:先迅速建造一个可以运行的软件原型,
以便理解和澄清问题。开发人员与用户针对原 型反复讨论,直到达成共识,最终在确定的客 户需求基础上开发客户满意的软件产品。
• 步骤:
➢ 现场调查 ➢ 确定需求 功能、性能、可靠性、安全、资源 等 ➢ 描述需求 编写《需求规格说明书》 ➢ 复核需求 与客户一起复核
回到目录
2020/3/30
6
回到目录
软件开发六阶段(三)——系统设计1
• 为什么要做系统设计?
➢ 系统设计是软件开发阶
段中最重要的步骤,它 是软件开发质量得以保 证的关键。
➢ 概要设计(总体设计) 设计软件的模块结构,确定总体结构与子系统的关系,绘制《设计结构图》。 ➢ 详细设计(过程设计,模块设计)确定模块内部的算法和数据结构,形成《软件系统详
细设计报告》。
• 形成《数据库设计说明书》 • 编写《测试计划》初稿
2020/3/30
9
回到目录
软件开发六阶段(四)——软件实现
• 优点:
➢ 克服瀑布模型的缺点,减少由于软件需求不明
确带来的开发风险
➢ 适合预先不能确切定义需求的软件系统的开发 ➢ 能快速吸引用户,从而抢占市场先机
• 缺点:
➢ 没有考虑软件整体质量和长期维护 ➢ 大部分开发都不适合,往往只用于演示功能 ➢ 若达不到质量要求,就会被抛弃,并重新设计
需求分析 原型开发
2020/3/30
10
回到目录
软件开发六阶段(五)——测试
• 定义:在规定的条件下对程序进行操
作,以发现程序错误,衡量软件质量, 并评估其是否能满ቤተ መጻሕፍቲ ባይዱ设计要求。
• 测试策略:
➢ 功能测试 ➢ 性能测试 ➢ 负载测试 ➢ 压力测试 ➢ 容量测试 ➢ ……
• 步骤:
➢ 制定测试计划 ➢ 设计测试环境与用例 ➢ 实施测试
原型评价
用户
最终系统设计
反馈
最终系统实现
2020/3/30
16
回到目录
软件开发十模型(四)——演化模型
• 定义:是一种全局的软件(或产品)生命周期
• 定义:使用选定的编程语言,将详细设计的结果转换为计算机程序。
• 意义:软件编码是系统设计的继续,可影响软件的质量和可维护性。
• 步骤:
➢ 程序设计 ➢ 设计审查 ➢ 编写代码 ➢ 代码走查 ➢ 编译代码 ➢ 测试代码
补充剩余的详细设计。 检查设计结果,发现设计缺陷。 确保代码易验证。 检查编码结果,发现编码缺陷。 修改代码的语法错误。 对代码进行单元测试,调试代码修改错误。
• 定义:在没有需求规格说明和系统设计的条件下开发软
件,反复对产品进行编码以得到正确稳定产品的方法。
• 地位:
➢ 或许这是开发员最常用的方式
• 优点:
➢ 适用于需求非常简单、容易明白,软件期望的功能行为容
易定义,实现的成功或失败容易检验的工程。
• 缺点:
➢ 缺少计划和设计环节,软件结构容易越修改越糟 ➢ 忽略了需求环节,风险极大 ➢ 没有考虑测试和程序维护,也没任何文档,后期维护困难
✓ 单元测试 ✓ 集成测试(组装测试) ✓ 系统测试 ✓ 验收测试
➢ 总结测试
2020/3/30
11
回到目录
软件开发六阶段(六)——运行维护
• 定义:软件产品交付给用户后,需要根据用户需求或硬件环境的变
化,持续进行适当的修改。
• 软件维护并不仅仅是“修正错误”,软件维护一般包括以下四类活动:
➢ 纠错性维护(校正性维护)
• 优点:
➢ 各阶段划分清晰 ➢ 强调计划与需求分析 ➢ 适合需求稳定的产品开发
• 缺点:
➢ 单一流程,不可逆 ➢ 风险显露得晚,纠正机会少 ➢ 测试只是其中一个阶段,缺乏全过程测试思想
计划 需求分析 系统设计 软件实现 测试 运行维护
2020/3/30
14
回到目录
软件开发十模型(二)——边做边改模型
➢ 适应性维护
改正在系统开发阶段已发生,而系统测试阶段尚未发现的错误。
➢ 完善性维护(使增用软强件)适应信息技术变化和管理需求变化而进行的修改。
➢ 预防性维护(再工程)为扩充功能和改善性能而进行的修改。占整个维护工作的50%~60%。
为了改进应用软件的可靠性和可维护性,主动增加预防性的新功能。
2020/3/30
目进行的研究结果表明,28%的项 目彻底失败,46%的项目超出经费 预算或者超出工期,只有约26%的 项目获得成功。
➢ 而在于这些高达74%的不成功项目
中,有约60%的失败是源于需求问 题。
➢ 也就是说,有近45%的项目最终因
为需求的问题最终导致失败。
2020/3/30
5
软件开发六阶段(二)——需求分析2
6. 螺旋模型
2020/3/30
2
回到目录
软件开发
六阶段
2020/3/30
3
软件开发六阶段(一)——计划
• 定义要解决的问题
➢ 要考虑的因素:技术、经济、社会
• 撰写《可行性报告》,并制定开发计划
回到目录
2020/3/30
4
回到目录
软件开发六阶段(二)——需求分析1
• 为什么要做需求分析?
➢ 根据Standish Group对23000个项
➢ 系统设计是将用户需求
准确地转化为实际产品 的唯一途径。
2020/3/30
7
软件开发六阶段(三)——系统设计2
• 方法:
➢ 结构化设计方法(SD) ➢ 面向数据结构的设计方法(JSD) ➢ 面向对象的设计方法(OOD)
回到目录
2020/3/30
8
回到目录
软件开发六阶段(三)——系统设计3
• 步骤:
12
回到目录
软件开发
十模型
2020/3/30
13
回到目录
软件开发十模型(一)——瀑布模型
• 定义:瀑布模型(Waterfall Model)是将软件生存周
期的各项活动规定为按固定顺序而连接的若干阶段工 作,形如瀑布流水,最终得到软件产品。
• 地位:
➢ 这是一种经典模型,提供了软件开发的基本框架。
软件开发
主讲人:方齐
2020/3/30
1
• 软件开发 六阶段
1. 计划 2. 需求分析 3. 系统设计 4. 软件实现 5. 测试 6. 运行维护
目录
• 软件开发 十模型
1. 瀑布模型 2. 边做边改模型 3. 快速原型模型 4. 演化模型 5. 增量模型
7. 喷泉模型 8. 智能模型 9. 混合模型(元模型) 10. RAD模型(快速应用开发模型)