搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
AllinToyou
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
探索3D科研绘图:从学术图表入门到精通_3d科研绘图从入门到精通
2
Matlab通信仿真系列——带限信道的信号传输_信号经过信道通信的matlab
3
XCode 15.3 编译私有库 报错问题_xcode15.3 报错“phasescriptexecution failed with a no
4
详解分布式共识(一致性)算法Raft_raft 共识总称
5
阿里云生活物联网平台中Android Demo运行_阿里云生活物联网app开源
6
区块链浏览器_aelf区块链浏览器概述及使用说明
7
DOS命令集
8
多元线性回归算法python实现(非常经典)_import numpy as np import matplotlib.pyplot as plt
9
探秘DeBERTa:微软开源的预训练语言模型
10
IntelliJ IDEA License Server 安装使用 Mac篇
当前位置:
article
> 正文
软件开发模式对比(瀑布、迭代、螺旋、敏捷)
作者:AllinToyou | 2024-05-04 03:52:10
赞
踩
cmmi 瀑布,迭代,螺旋
软件开发模式对比(瀑布、迭代、螺旋、敏捷)
1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型, 瀑布式开发是一种老旧的计算机软件开发方法。
瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。
步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。
瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,
代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。
2、迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。
什么是迭代式开发?
每次只设计和实现这个产品的一部分,
逐步逐步完成的方法叫迭代开发,
每次设计和实现一个阶段叫做一个迭代.
在迭代式开发方法中,整个开发工作被组织为一系列的短小的、
固定长度(如3周)的小项目,被称为一系列的迭代。
每一次迭代都包括了需求分析、设计、实现与测试。
采用这种方法,开发工作可以在需求被完整地确定之前启动,
并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。
再通过客户的反馈来细化需求,并开始新一轮的迭代。
迭代式开发的优点:
1、降低风险
2、得到早期用户反馈
3、持续的测试和集成
4、使用变更
5、提高复用性
螺旋开发,1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
“螺旋模型”刚开始规模很小,当项目被定义得更好、更稳定时,逐渐展开。
“螺旋模型”的核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚。您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品。
(1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;
(2)风险分析:分析评估所选方案,考虑如何识别和消除风险;
(3)实施工程:实施软件开发和验证;
(4)客户评估:评价开发工作,提出修正建议,制定下一步计划。
螺旋模型很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
•人和交互 重于过程和工具。
•可以工作的软件 重于求全而完备的文档。
•客户协作重于合同谈判。
•随时应对变化重于循规蹈矩。
其中位于右边的内容虽然也有其价值,但是左边的内容最为重要。
人员彼此信任 人少但是精干 可以面对面的沟通
项目的敏捷开发:
敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果;
关注业务优先级; 检查与调整。
最重要的因素恐怕是项目的规模。规模增长,面对面的沟通就愈加困难,
因此敏捷方法更适用于较小的队伍,40、30、20、10人或者更少。
大规模的敏捷软件开发尚处于积极研究的领域。
四者对比区别:
传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。
特别是前期阶段,设计的越完美,提交后的成本损失就越少。
迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,
最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。
螺旋开发,很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。
敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。
敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。
适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化.
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/AllinToyou/article/detail/532803
推荐阅读
article
Kafka
原理详解_基于
ice
的
kafka
...
目录
Kafka
是什么?消息系统分类Peer-to-Peer (Queue)Publish/Subscribe(Topic...
赞
踩
article
Rust
环境
搭建_
rust
mac
开发
环境
搭建...
里面包含
rust
从基础语法到工具及学习资料的提纲,比较有用的还是里面针对各种数据类型内存分布的讲解。内容主要是关于基于r...
赞
踩
article
torch
.
hub
.
load
()把联网
加载
修改为
本地
加载
模型
...
我们常用
torch
.
load
导入
本地
模型
,但是最近在一个yolov5+gradio的项目中遇到了
torch
.
hub
.lo...
赞
踩
article
mysql8.3
.
0
安装
配置
教程
,
详细
步骤,最新!_
mysql8.3
.
0
安装
及
配置
超
详细
教程
...
mysql8.3
.
0
安装
配置
教程
详细
步骤,_
mysql8.3
.
0
安装
及
配置
超
详细
教程
mysql8.3
.
0
安装
及
配置
超
详细
...
赞
踩
article
图像
分割
实战-
系列
教程2:
Unet
系列
算法(
Unet
、
Unet
++
、
Unet
++
+、
网络
架构、损失计...
图像
分割
实战-
系列
教程2:
Unet
系列
算法(
Unet
、
Unet
++
、
Unet
++
+、
网络
架构、损失
计算方法
)_unet+...
赞
踩
article
机器
学习
之
卷积
神经网络
--
CNN
介绍_
卷积
神经网络
介绍...
卷积
神经网络
(Convolutional Neural Networks,
CNN
)是一种包含
卷积
计算且具有深度结构的前馈...
赞
踩
article
MySQL
Community
Server 安装...
Mysql
Community
Server官网下载链接 https://dev.mysql.com/downloads...
赞
踩
article
MacOS 上安装
Rust
_
rust
install which was
built
for
mac
...
mac
os
上如何安装
rust
_
rust
install which was
built
for
mac
os
x 10...
赞
踩
article
LINUX
下如何
格式化
namenode
,
HDFS
【
2.5
.1】系列3:解密命令行 ./bin/hdf...
学习Hadoop的过程中,教程标注需要在启动集群之前先
格式化
hdfs
文件系统。我之前以为
格式化
就跟linux一样,后来很...
赞
踩
article
Rust
的
条件
编译_
rust
条件
编译...
一、
条件
编译
条件
编译其实是从名字就可以知道意思,通过控制预设的编译
条件
来通知编译器按照指定的
条件
来编译当前程序。注意,它...
赞
踩
article
解救
应用
启动
危机:
Spring
Boot
的
FailureAnalyzer
机制...
探讨
Spring
Boot
中的
FailureAnalyzer
机制,帮助解决
应用
启动
失败的难题。对FailureAnaly...
赞
踩
article
Sentinel
限流
规则使用总结...
Sentinel
限流
/熔断规则目前
Sentinel
支持以下三种
限流
/熔断规则:基于资源
限流
(Flow Rule)、系统自...
赞
踩
article
秒杀——
UNet
++
解读、
Camvid
数据
集无坑
实践...
UNet
++
是一种新的通用图像分割架构,用于更准确的图像分割。
UNet
++
由深度不同的U-Net组成,其解码器通过重新设...
赞
踩
article
Pandas
入门篇(三)-------
数据
可视化
篇3(
seaborn
篇)(
pandas
完结撒花!!!...
Seaborn是一个基于Matplotlib的Python
数据
可视化
库,它提供了一种简单而美观的界面,帮助初学者轻松创建...
赞
踩
article
python
带你用最简单嘚
词
云
图
分析
出最热话题_
词
云
分析
...
嗨喽,大家好呀~这里是爱看美女的茜茜呐平常我们爬的评论、弹幕等等,数量又多又密,根本看不过来,这时候数据
分析
的作用来了,...
赞
踩
article
CentOS
安装
HBase(伪
分布式
)
_
无法打开虚拟机“
centos
_
7
伪
分布式
20
22” (f:\...
一、
安装
jdk1、通过共享文件夹或者winSCP将jdk
安装
包上传到Linux的指定目录/opt下2、解压 tar包ta...
赞
踩
article
JavaScript
------常用的
输入
(
input
)
聚焦
方法
_
js
中
聚焦
...
输入
聚焦
方法
:通过设置焦点使用户能够在上进行操作。
聚焦
:通过将用户的光标定位到
输入
字段上,以便用户可以直接在该字段中
输入
...
赞
踩
article
Adobe
Lightroom
Classic
v13.1 (
macOS
, Windows) - 桌...
Adobe
Lightroom
Classic
v13.1 (
macOS
, Windows) - 桌面照片编辑器_lig...
赞
踩
article
大
数据处理
Spark
:
Spark
Streaming--
scala
...
第1关QueueStreamimport java.text.SimpleDateFormatimport java.u...
赞
踩
article
java
面试
项目
介绍
,
详细说明...
金三银四少走弯路
,
Java岗
面试
冲刺
,
你与大厂只差这篇文章包括
面试
准备
,
帮助大家少走弯路
,
成功入职大厂
,
并快速成长落地。...
赞
踩
相关标签
java
kafka
rust
开发语言
后端
python
pytorch
深度学习
windows
mysql
计算机视觉
cnn
机器学习
人工智能
神经网络
数据库
服务器
macos
LINUX下如何格式化namenode
spring boot
Sentinel
Java
限流