在实际的软件开发项目中, 古典瀑布模型很难使用。因此, 可以将迭代瀑布模型视为对经典瀑布模型进行了必要的更改, 以使其可在实际的软件开发项目中使用。它与经典瀑布模型几乎相同, 只是进行了一些更改以提高软件开发的效率。
迭代瀑布模型提供了从每个阶段到其先前阶段的反馈路径, 这是与经典瀑布模型的主要区别。
下图显示了迭代瀑布模型引入的反馈路径。
在以后的某个阶段检测到错误时, 这些反馈路径可以纠正程序员在某个阶段犯下的错误。反馈路径允许对阶段进行重新设计, 在该阶段中会犯下错误, 并且这些更改会在以后的阶段中反映出来。但是, 没有反馈到阶段的可行性研究, 因为一旦开展了项目, 就不会轻易放弃该项目。
在提交错误的同一阶段检测错误是很好的。它减少了纠正错误所需的精力和时间。
错误的相位限制:尽可能接近错误的承诺点检测错误的原理被称为错误的阶段包含。
迭代瀑布模型的优点
- 反馈路径:在经典瀑布模型中, 没有反馈路径, 因此没有纠错机制。但是在迭代瀑布模型中, 从一个阶段到其前一个阶段的反馈路径可以纠正所犯的错误, 并且这些更改将反映在以后的阶段中。
- 简单:迭代瀑布模型非常易于理解和使用。这就是为什么它是使用最广泛的软件开发模型之一的原因。
迭代瀑布模型的缺点
- 难以合并变更请求:迭代瀑布模型的主要缺点在于, 必须在开发阶段开始之前明确说明所有要求。客户可能会在一段时间后更改需求, 但是迭代瀑布模型不会保留任何范围来合并在开发阶段开始之后提出的更改请求。
- 不支持增量交付:在迭代瀑布模型中, 完整的软件在交付给客户之前已完全开发和测试。没有任何中间交付的范围。因此, 客户必须等待很长时间才能获得该软件。
- 不支持阶段的重叠:迭代瀑布模型假设一个阶段可以在上一个阶段完成之后开始, 但是在实际项目中, 阶段可能会重叠以减少完成项目所需的工作量和时间。
- 不支持风险处理:项目可能会遭受各种风险。但是, 迭代瀑布模型没有风险处理机制。
- 有限的客户互动:客户交互发生在项目开始时的需求收集时, 以及项目完成时的软件交付时。由于最终开发的软件可能与客户的实际要求不同, 因此与客户之间较少的互动可能会导致许多问题。