生命周期模型在开发后期如何对需求变化作出反应



我一直在努力学习软件工程原理的基础知识,但是我遇到了一个问题,我找不到足够的细节来回答,任何帮助都将是感激的:

对于每个过程模型(例如瀑布模型、增量模型、原型模型)和螺旋),模型如何处理后期需求中的重大变化发展吗?

我认为这个问题可以简化一下——一般来说有两种类型的软件开发生命周期:

  1. 迭代(或敏捷)方法,如Scrum和极限编程。

  2. 顺序(或"预先大设计")方法,如瀑布。

迭代方法依赖于来自项目内部的经验反馈。在Scrum中,冲刺审查提供了关于下一个冲刺可以实现什么目标的指导,并且产品待办事项列表的审查可以将最新的需求提升到优先级列表的顶部。在迭代方法中,增量的评估阶段可以提供给下一次迭代的计划。

这两个例子清楚地表明,方法可以适应并对新的需求作出反应。

当然,除了这个宽泛的笔画解释之外,还有一些具体的细节。例如,Scrum团队在sprint结束之前不会更改范围——除非完全放弃了sprint。因此,在新的需求开始实现之前可能会有一点延迟。

使用更传统的方法,如瀑布,适应适应是更困难的,因为您受到一系列阶段的当前阶段的限制。为了适应需求,可能会涉及到非最佳的设计和实现,因为更改的性质是固定的。如果需求的变化足够显著,整个开发可能会被放弃并重新开始。至少使用敏捷方法,您将已经开发或实际上已经交付了一些业务价值的增量。