常用软件开发模型的介绍
一、瀑布模型:
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,若验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
优点:(1)有利于大型软件开发过程中人员的组织和管理;
(2)有利于软件开发方法和工具的研究和使用,从而提高大型软件项目开发的质量和效率。
缺陷:(1)由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果,这样软件与用户见 面的时间较长,增加了一定的风险。
(2)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
(3)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
(4)在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的。
二、增量模型:
增量模型有两种形式:基于瀑布模型的渐增模型(也叫演化模型)和基于原型的快速原型模型(也叫原型模型)。
1、渐增模型:实际上,我们可以将其看作是重复多个瀑布模型。
优点:人员分配灵活,刚开始不用投入大量人力资源。如果核心产品很受欢迎,则可增加人力实现下一个增量,客户可以不断地看到所开发的软件,从而降低开发风险 。
(2)在开发过程中,需求的变化是不可避免的。此模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
2、原型模型:
快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。
优点:减少由于软件需求不明确带来的开发风险。
缺陷:
(1)所选用的开发技术和工具不一定符合主流的发展;
(2)快速建立起来的系统结构加上连续的修改可能会导致产品质量低下。
三、螺旋模型:
螺旋模型将瀑布模型和增量模型结合起来,主要有四个方面的活动:
(1)制定计划——确定软件目标,选定实施方案,弄清项目开发的限制条件。
(2)风险分析——分析所选方案,考虑如何识别和消除风险。
(3)实施工程——实施软件开发。
(4)客户评估——评价开发工作,提出修正建议。
优点:
(1)设计上的灵活性,可以在项目的各个阶段进行变更.
(2)以小的分段来构建大型系统,使成本计算变得简单容易
(3)客户始终参为保证了项目不偏离正确方向以及项目的可控性
(4)客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互.
(5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品
缺陷:
(1)采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失。
(2)过多的迭代次数会增加开发成本,延迟提交时间。
四、喷泉模型:
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上,周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。
优点:该模型的各个阶段没有明显的界限,开发人员可以同步进行开发,故而可以提高软件项目开发效率,节省开发时间,适应于面向对象的软件开发过程。
缺陷:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的管理。此外这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。
常用软件开发模型的介绍相关推荐
- 常用连续型分布介绍及R语言实现
转载自:http://blog.fens.me/r-density/ R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器.随着越来越多的工程 ...
- 软件开发模型介绍、总结归纳
软件开发模型(SoftwareDevelopmentModel)是指软件开发全部过程.活动和任务的结构框架.软件开发包括需求.设计.编码和测试等阶段,有时也包括维护阶段. 软件开发模型能清晰.直观地表 ...
- 软件测试常见概念(软件生命周期、软件开发模型、软件质量模型、软件缺陷管理、软件测试概述、软件测试分类、软件测试与软件开发、软件测试原则、黑盒测试方法、白盒测试方法、性能测试)
文章目录 1. 软件概述 1.1 软件生命周期 1.2 软件开发模型 1.2.1 瀑布模型 1.2.2 快速原型模型 1.2.3 迭代模型(增量模型或演化模型) 1.2.4 螺旋模型 1.2.5 敏捷 ...
- 数据分析与挖掘中常用Python库的介绍与实践案例
数据分析与挖掘中常用Python库的介绍与实践案例 一.Python介绍 现在python一词对我们来说并不陌生,尤其是在学术圈,它的影响力远超其它任何一种编程语言, 作为一门简单易学且功能强大的编程 ...
- DBA必知的170张Oracle常用动态性能表介绍
DBA必知的170张Oracle常用动态性能表介绍 常用动态性能表.pdf 附录C 动态性能(V$)视图 本附录介绍动态性能视图.这些视图一般作为V$视图引用.本附录包括下列内容: ???? 动态性 ...
- 软件开发模型、软件设计模式、软件架构风格
一. 软件开发模型 1. 瀑布模型: 结构化方法.开发阶段性. 需求明确.文档齐全. 风险控制弱 .前一步的错误会延申到后一步: 2. 原型开发模型: 迭代方法. 有两种开发方式,分别是原先开发和目标 ...
- 敏捷软件开发模型--SCRUM
一 什么是Scrum? Scrum (英式橄榄球争球队), 软件开发模型是敏捷开发的一种,在最近的一两年内逐渐流行起来. Scrum的基本假设是: 开发软件就像开发新产品,无法一开始就能定义软件产品最 ...
- 常用视频文件的介绍(二):MP4--常用存储和光盘视频格式文件
文章目录 MP4文件格式介绍 MP4的各个部分 相关文章 MP4文件格式介绍 MP4是一套用于音频.视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的"动态图 ...
- 软件开发模型与过程改进
从过去软件开发模型, 我们有很多的反思与借鉴. 笔者曾看到国内三线城市的一些公司的软件开发过程, 项目的成功依赖个人能力. 对于每一个软件系统研发过程, 只是拍脑袋定个Dead Line. 规定时间2 ...
最新文章
- 技术新贵:RPA与NLP技术的结合与应用
- 借助队列解决Josephus问题
- tinycore Network card configuration during exec bootlocal.sh
- 浅析微信支付:统一下单接口
- linux中断函数中有锁,Linux下fcntl实现建议锁和强制锁
- Spring-学习笔记07【银行转账案例】
- 手游传奇架设教程_问道手游如何多开?
- 变频器端子阻抗3k_PLC与变频器连接问题分析
- [Windows驱动开发](四)内存管理
- mybatis简单案例源码详细【注释全面】——测试层(UserMapperTest.java)
- 4)lsof linux命令,***Linux命令实时监测系统(top,htop,iotop,lsof,tcpdump,netstat,vmstat,iostat)...
- CocoPods原理
- 华为Mate 40 Pro钢化膜上手:6.6寸大曲率瀑布屏 黑边加速消失
- php把字符串日期转成时间戳,php怎样把日期转成时间戳
- 单反相机入门教程视频 从入门到精通(48集)
- 2021前端开发面试题:面试中该如何与HR谈薪资?
- ESP定律脱压缩壳aspack
- 比原链CEO朗豫:DeFi让用户真正理解区块链,意义重大
- 1:0 本立而道生!
- Android studio实现动态背景页面(动态视频为背景)
热门文章
- leetcode:java.T018_4Sum---给定一个整数数组,找出a + b + c + d = target的唯一解,不能有重复元素组
- C语言六边形扫雷:寻宝模式
- oh god job
- sap学习笔记(一)-----萨普的imformation design tool 是肾魔?
- VUE router 导航重复点击报错的问题解决两种方案
- 【文末送书】2022世界杯冠军预测,机器学习为你揭晓
- maya mel uf8_Maya Mel语言
- 特征选择过滤法-方差过滤、F检验、互信息法
- 最新综述 | 皮层内外无线神经信号记录系统为脑机接口技术注入全新血液
- 对于特殊轨道,是否违反泡利不相容原理?