瀑布模型和什么是敏捷开发_Eric-x的博客-程序员秘密

技术标签: Java  敏捷开发  需求分析  MVC  

说到敏捷开发,不得不先说起在大学上讲的一种软件开发的思想:瀑布模型
在这里插入图片描述

瀑布模型

所谓瀑布模型思想就是:瀑布模型主张按照工程化的方法,一步一步的非常严谨的去开发我们的项目。拿到一个项目的时候,我们先做一个可行性研究,先看一下这个项目是不是一个可行的事,这事咋们能不能干,从团队的技术能力,工期,报酬等各个观点,看是不是可行。
如果可行,接下来需求分析,要想达到这个项目的目标,我们要做哪些需求,需求分析完了做概要设计,大概的分析下要做哪些功能,哪些模块。概要设计就比需求分析详细很多了,概要设计相当于确定了我们有哪些模块了,哪些模块有哪些功能。下一步就是详细设计了,就是确定到功能里面有哪些功能了,具体到某个页面,哪些功能啥的。然后参考我们的详细设计这些个文档来进行编码了,编码完成之后开始测试。测试通过后上线,然后就进入到运维。至此,这个项目就进入了维护阶段了。

其中任何一个环节出了问题,都需要去追溯上一个环节是不是需要进行调整,总体分为:计划阶段、开发阶段、维护阶段。瀑布模型是非常典型的,把我们软件开发的过程用工程化的方法变成了一个好像工业产品的过程一样。追求的是一种严谨,一种标准化。

  • 可能会有点观点认为:严谨,标准不是挺好的吗。让我们的产品更加的可靠,降低软件开发的风险,干嘛还要去改呢?其实这种模型理论上是说得通,但是实际操作起来却没有那么简单。
  • 实际越复杂的项目,做起来是非常复杂的。举个例子,一个工程,比如10个人干完需要一个月,那么100个人是不是只需要十分之个月,也就是3天呢就能完成呢?其实不是的,有可能100个人完成还会超过1个月的时间才能完成。因为100个人和10个人相比,100个人的沟通成本,组织机构,人的团队结构,就会复杂的很多。
  • 所以如果说以这个角度将软件看做是一个工业化的过程来生产,其实还是不能适应我们全部的情况的。
  • 并且特别是互联网这种日异月新的情况下,更新迭代特别快,瀑布模型就显得非常的死板了,就跟不上我们时代的需求。

因此,敏捷开发就运运而生了。

敏捷开发

关于敏捷开发网上有很多文章介绍,大家有兴趣可以去详细了解(看得有点头疼。)所以呢,我就以通俗的方式来简单介绍一下敏捷开发。分别以技术角度和商业角度来介绍。

技术角度

让一个需求可以更快的变成可以运行的代码。
或者说,
加快了根据需求开发出来可以运行的代码这个过程。

那为什么能做到这一点呢:因为敏捷开发不追求瀑布模型的那么严谨,是根据我们的需求,直接制作一个项目原型,然后我们再根据这个原型直接开始编码

商业角度

加速了用户体验新功能 的过程。互联网公司有一个词叫:“”小步快跑“”,意思就是让每一个功能都做尽量小的修改,但是加大更新的频率。

这有什么好处呢:

  • 能够非常快的响应用户的需求,增强用户体验。比如某个功能有任何问题后,我们可以及时的调整。
  • 从而加强和用户的联系性,紧密性

所以,综合来说,敏捷开发还是更适合互联网环境下的项目开发。因为互联网开发需要及时的更新,才能更好的留住用户。

本质

从本质上来说:瀑布模型是把软件产品看成是一个工业化的标准品,以工厂生产产品的流水线思路来进行开发。敏捷开发则是把一个软件产品看成是一个生物,每一个小功能的细微的迭代就好像是生物逐渐在进化一样。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47316183/article/details/122056748

智能推荐

使用spark sql 读写数据库(python实现)_python sparksql mysql_zsj.python之路的博客-程序员秘密

#!/usr/bin/evn python3from pyspark.sql import Rowfrom pyspark.sql.types import *from pyspark import SparkContext, SparkConffrom pyspark.sql import SparkSessionspark = SparkSession.builder.conf...

极大似然估计和最大后验估计_高斯分布的最大后验估计_lgb_love的博客-程序员秘密

https://baijiahao.baidu.com/s?id=1593811166204755239&wfr=spider&for=pc机器学习中,一般只得到业务产生的数据集D,机器学习目的是通过数据D了解该项业务的过去(建模)和未来(预测和分类)。但你手头上只有数据集D,没有其他任何辅助信息,那么如何建模?1.概率假设合理吗?我们总是假设数据集D由某种概率分布生成...

delphi中取得文件编码,字符串编码的方法_codepage: word_Im17benteng的博客-程序员秘密

注意,这里的取字符编码仅仅对有标识的字符起作用,而有些没有标识的字符串要得知是什么编码可能要进行逐字符对比了  unit EncodeUnit;interfaceuses  SysUtils, Windows, Classes;type  TTextFormat = ( tfAnsi, tfUnicode, tfUnicodeBigEndian, tfUtf8 );cons

webpack打包vue项目之后生成的dist文件该怎么启动运行[email protected]的博客-程序员秘密

webpack打包vue项目之后生成的dist文件该怎么启动运行亲测,webpack打包vue项目之后生成的dist文件可以部署到 express 服务器上运行。我的vue项目结构如下:1. 进入该vue项目目录,打开git bash,执行:npm run build(在package.json的scripts配置)执行成功如下图所示:然后此时你会发现项目下多了一个 dist 文件...

RocketMQ日志配置_rocketmq 不打印日志_没银子的大鲁哥的博客-程序员秘密

RocketMQ 内置了两种日志实现:log4j、logback,若配置不当,容易出现日志方面的问题。项目中遇到了引入RocketMQ依赖后,log4j不能正常打印日志,除alibaba包之外的日志均不打印,将logback依赖从RocketMQ中排出后恢复正常,同理可猜测若项目使用logback,则应排除log4j依赖。应用中同时依赖 log4j 和 logback 的日志实现会造成日...

随便推点

Jenkins安装后访问提示离线解决办法_铩胍崾牮镪的博客-程序员秘密

1、访问:http:IP:8080/jenkins/pluginManager/advanced 2、修改URL:http://updates.jenkins.io/update-center.json(或者1,2合并为修改/root/jenkins/hudson.model.UpdateCenter.xml文件下https://updates.jenkins.io/update-center...

基于django框架的web开发环境搭建_本系统基于django框架开发,_豪本豪的博客-程序员秘密

一、Django框架简介Django是基于Python语言开发的web开源框架,是当前python语言最流行的web框架,django本身是基于MVC的设计模式(有的培训机构介也称MTV模式M-model、V-view、T-templates),这只是名称上的区别,总体设计思想相同的,都实现了低耦合、开发快捷、部署方便、可重用性高、维护成本低的设计目标;django框架的基础学习主要有以下几个部分:路由系统 MTV templates语法 数据库orm操作二、Django开发环境搭...

审稿意见应该怎么写?这份审稿指南告诉你_m0_61899108的博客-程序员秘密

导语:科学家所接受的审稿培训极为有限。Mathew Stiller-Reeve在此分享了一个有效的撰写审稿意见的方法。科学家所受的同行评议培训不够充分。为了改善这一境况,我和一些编辑制定了一个同行评议工作流程,告诉审稿人如何写出一篇有意义的深入分析,真正帮助作者提高论文质量。我们建议每篇论文读三遍,每次只关注一个点,并且分主要缺陷和次要缺陷来撰写每个点的评语。主要缺陷会需要大量时间进行解释或纠正。读第一遍可以对全文有个大致了解,并弄清楚论文目的。一边读一边做记录。确保论文内容属于期刊范围内。

推荐文章

热门文章

相关标签