1

我一直在尝试学习软件工程原理的基础知识,但遇到了一个我无法找到足够详细信息来回答的问题,我们将不胜感激:

对于每个流程模型(即瀑布式、增量式、原型式和螺旋式),模型如何处理开发后期需求的重大变化?

提前致谢。

4

1 回答 1

1

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

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

  2. 顺序(或“前期大设计”)方法,如瀑布。

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

这两个示例清楚地表明了方法可以适应新需求并对其做出反应。

当然,除了这个宽泛的笔画解释之外,还有一些具体的细节。例如,Scrum 团队直到 sprint 结束才真正改变范围——除非 sprint 被完全放弃。因此,在新要求开始实施之前可能会出现一小段延迟。

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

于 2013-06-27T14:18:29.170 回答