原文英文版: What is the Problems of Waterfall Model? (日本語)

瀑布模型是一种相对线性的顺序设计方法,适用于某些工程设计领域。

在软件开发中,它往往是较少迭代和灵活的方法之一,因为进展在很大程度上向下流动,如瀑布,通过概念,启动,分析,设计,构建,测试,部署和维护的阶段。在软件开发项目中,阶段通常如下所示:

瀑布模型

1.要求

如果您从事软件开发或任何类型的项目创建团队,您可能想知道您要创建的业务环境 - 您想要定义您要解决的问题以及人们如何对您做出反应完成的产品。定义所有这些“要求”后,您需要输入以继续下一步。

2.设计

此步骤由满足您之前确定的所有要求所需的所有步骤组成。在软件开发中,这是您定义所有软件和硬件体系结构,编程语言,数据存储等的部分。这也是您确定项目如何对其最终用户有用的部分。

3.实施

在此步骤中,您将开始构建计划中设计的内容。瀑布方法的这一部分致力于满足您在前面步骤中所做的标准。这是开发团队的人员进入并完成前面步骤中讨论的所有事情的部分。

4.验证

这是质量保证人员进入的方法的一部分,以确保开发团队不犯任何错误。这也很可能是人们意识到在他们的计划中工作或不工作的部分。

注意

当项目开发人员满足所有要求时,如果项目已准备好启动,则客户端或最终用户会进入并进行最终调用。

瀑布方法表明,当某个特定阶段出现问题时,人们可以回到前一个,看看出了什么问题。例如,如果计划实施中存在问题,并且人们知道他们只是按照已经移交给他们的蓝图,那么管理人员会查看他们的计划并从那里进行修改。

瀑布的问题是什么?

前期要求问题 - 计划与现实

客户在看到工作软件之前可能不知道他们的要求是什么,因此改变了他们的要求,导致重新设计,重新开发和重新测试,并增加了成本。

在设计新的软件产品或功能时,设计人员可能不会意识到未来的困难,在这种情况下,修改设计比保留在不考虑任何新发现的约束,要求或问题的设计中更好。

因此,无法保证组织所考虑的要求实际上会起作用。从这里,您会发现Waterfall模型存在以下问题:

1. 人们盲从计划。

在传统的方法中,人们更加关注事物在恰当的时刻将如何发生而不注意事物是否真的到位。虽然规划很重要,但开发人员和质量检查员理解事情应该如何发生也很重要,尤其是对于客户或最终用户。同样重要的是,参与项目的所有人都可以立即说明项目实现中的特定步骤如何在不必等待测试阶段的情况下崩溃。

2. 顺序过程和变更变得昂贵

随着项目的进展,这种方法不允许更改定义的需求。因此,软件很有可能不能完全满足用户的要求,效率低,功能差。

这是不够的,因为开发人员不能仅仅因为消费者需求的变化而返回并改变前一阶段的某些内容,但开发人员必须回到需求需要改变的地方,并开始全面开始这个阶段。直到该阶段完成,他才能进入下一阶段。

3. 最终用户不知道他们想要什么。

大多数时候,最终用户的想法是不断变化的,并且大多数人对他们的软件需求有一个模糊的概念,并且随着软件开发他们指定他们的要求。

当需要将成品交给客户时,尽管在初始阶段故意另有说法,但很可能他们不会喜欢它的结果。客户和最终用户可以轻松地随着时间的推移改变他们想要的东西。瀑布系统无法解决这个问题,无需修改计划并完全重做整个项目。

4. 质量测试可能会受到影响。

不可能准确地预测项目的结果,并且当整个团队按时间时,可以缩短测试阶段以满足截止日期。

5. 你永远不会知道你到底是什么阶段。

由于您尝试创建的产品直到最后才会生成,因此您不确定是否仍在进行规划或者您已经处于开发阶段。这意味着由于可见度差,您可能会花费更多时间在舞台上。

最后,瀑布方法风险太大,因为它过于僵化。为了让您生产出有效的产品,并且足够灵活,可以帮助您弄清楚什么在起作用。

相关资源

  • 敏捷与Scrum - 软件开发文章(英文)(中文)(日文)

瀑布模型的问题是什么?相关推荐

  1. 从瀑布模型、极限编程到敏捷开发

    从瀑布模型.极限编程到敏捷开发 ---软件开发管理者思维的变化 Jack zhai 软件开发是一种对人类智慧的管理,对人大脑思维的"工厂化"管理.人是有感情的.有情绪的.变化的.相 ...

  2. 104. 软件工程的开发过程几种模型(瀑布模型、快速原型开发模型、增量模型、迭代模型、螺旋模型)

    文章目录 1.前言 2.瀑布模型--按阶段严格完成 (1)瀑布模型把整个项目过程分成了六个主要阶段: (2)举个例子来理解瀑布模型 (3)优缺点 (4)解决的重要问题 3.快速原型模型--低成本快速的 ...

  3. 软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型总结...

    在校期间学习过这些模型,现在来复习一下. 瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格 ...

  4. 瀑布模型 原型模型 增量模型 螺旋模型的优缺点

    瀑布模型的优点:有利于大型软件开发过程中人员的组织.管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率. 瀑布模型的缺点:(1)开发过程一般不能逆转,否则代价太大:(2)实际 ...

  5. 典型瀑布模型四个阶段_古典瀑布模型的不同阶段

    典型瀑布模型四个阶段 The different phases that are included in the classical waterfall model are: 经典瀑布模型包含的不同阶 ...

  6. 详细描述三个适于瀑布模型的项目_IT项目管理笔记——方法选择和软件评估

    一.管理需求 为什么要管理需求?避免失败,提高项目的成功率和需求管理所带来的其他好处 软件生命周期中,一个错误发现得越晚,修复错误的费用越高 许多错误是潜伏的,并且在错误产生后很长一段时间才被检查出来 ...

  7. 2020年9月26日-02-软件工程-工程化思维+瀑布模型+敏捷开发

    此博客用于记录2020年9月26日每日分享, 软件工程中的集中常见模式,瀑布模型,敏捷开发等 日期:2020年9月26日 主题: 讨论讨论怎么使用软件工程的思想来解决问题 软件工程中的集中常见模式,瀑 ...

  8. 详细描述三个适于瀑布模型的项目_信息系统项目管理师-第二三章:信息系统项目管理基础与立项管理2...

    三.信息系统项目的生命周期 1.项目生命周期的定义-项目从启动.组织与准备.执行到结束所经历的一系列阶段 2.★项目生命周期的特征 ①成本与人力投入在开始时较低,在工作执行期间达到最高,并在项目快要结 ...

  9. android 瀑布流_软件工程过程模型之瀑布模型

    有时候,当从沟通到部署都采用合理的线性工作流方式的时候,可以清楚地理解问题的需求.这种情况通常发生在需要对一个已经存在的系统进行明确定义的适应性调整或是增强的时候(比如政府修改了法规,导致财务软件必须 ...

  10. 软件生命周期模型 -------- 瀑布模型 和 原型模型

    文章目录 瀑布模型(Waterfall Model) 模型概述: 核心思想: 模型特点: 优点: 缺点: 分类: 1.传统瀑布模型: 2.加入迭代的瀑布模型: 原型模型: 优点: 缺点: 瀑布模型(W ...

最新文章

  1. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记
  2. 高性能ASP.NET站点构建之简单的优化措施
  3. linux文件名通配符:* ? [:digit:]数字 [:lower:]小写字母 [:upper:]大写字母
  4. unity保存运行时的操作_Unity运行时保存prefab的方法一则
  5. 记一次LAMP环境搭建
  6. 小游戏掉帧卡顿启动慢运行内存不足……这些问题有解吗?
  7. 关于scanf和cin的大数据读入效率
  8. 使用named_mutex实现锁机制
  9. 9月16日见!vivo高管亲曝NEX 3 5G:99.6%屏占比确认
  10. 动态口令,动态密码生成(OTP)
  11. 关于硬盘分区(主分区、扩展分区和逻辑分区)
  12. vuedraggable插件使用---小心得(欢迎广大网友补充)
  13. 2021年第一季度中国电竞行业网络关注度分析报告
  14. python输入输出拓展: 制作简单的exe程序(温度转换器)
  15. python 课后习题:项目二数据分析之《冰与火之歌》全五卷人物关系图
  16. 李大学:CTO,应该像CEO一样思考
  17. 安全锁界面,防止底部上滑触发人脸解锁与绘制图案锁冲突
  18. NYOJ628 小媛在努力
  19. 腾讯小Q书桌图标怎么实现的啊?
  20. Fedora从安装到基本配置

热门文章

  1. PyQt(Python+Qt)入门:Designer组件属性编辑界面中QWidget类相关属性详解
  2. python数据可视化学习
  3. Linux内存管理(三十五):内存规整简介和 kcompactd详解
  4. traceroute命令(unix)/tracert命令(windows)
  5. 蓝桥杯——机器人行走(模拟类题目)Java语言实现
  6. 欧洲专线运输方式有哪些?有哪些优势?
  7. 文件查重FindDupFile
  8. .removeAttribute is not a function
  9. 江苏援沪“大白”们,用手绘漫画为上海加油
  10. Java面向对象设计(面向对象)