软件开发生命周期(三)

2. 迭代模型

迭代模型适用于简化的需求,这些需求是软件或应用程序需求的子集。 “产品”经过迭代更新,演变为最终产品以进行部署。 每次迭代都称为“构建”。 因此,在每次构建时,都会向产品中添加设计修改和新功能。 通过迭代模型,该软件可以一次实现一小部分。

下面展示了迭代模型的图例:
在这里插入图片描述下面解释迭代模型的各个阶段:

1. 需求

与流水线模型相同,需求阶段重点在于与业务用户进行沟通并准备业务案例文档。

2. 设计

与流水线模型相似,业务分析师和系统分析师分别进行逻辑和物理设计,以准备软件需求规范和设计规范文档。但是,有些设计会全面记录软件的实现方式,并且有几个设计子集可供程序员进行实现和测试,而这些子集与其他设计子集是隔离的。此外,设计的子集可以在每轮构建之后进行修改。因此,直到进入部署阶段,设计的子集才会最终确定。

3. 实现

程序员根据设计阶段形成的设计子集来开发软件。将为实现的每个子集准备功能规范。

4. 测试

程序员、业务用户和质量控制专家将会参与到每个测试子集中。但是,业务用户将只关注当前构建中所涵盖的有限范围,但是程序员和质量控制专家每次都必须涵盖所有已实现的功能。此外,对于进入部署阶段之前的最后一个构建,这三个方面不仅需要进行测试的子集,而且还必须将测试作为完整的系统测试来进行。

5. 部署

与流水线模型没有区别,此阶段应准备好一切,并发布发布计划。

6. 维护

同样,像流水线模型一样,不可避免的是每个软件都需要维护。 因此,系统开发生命周期迭代模型中的每个子集将参与维护阶段。

每个阶段的输入输出总结如下:在这里插入图片描述在完成每个子集的测试后,将回到设计阶段,并开始下一轮的设计直到完成最后一个子集。

模型的应用

系统开发生命周期中,适用迭代开发模型的应用如下:

  • 主要的需求已经被确定了下来,但是一些细节还需要随着时间的流逝进行评估;
  • 正在使用最新的技术,程序员需要新的学习曲线;
  • 资源有限,无法做一个大型项目,就好像一个小型项目或团队成员正在签约而不是持久;
  • 具有非常高的风险,因为随着时间的推进,项目的需求可能会发生改变。
优劣

优势:

  1. 复杂的项目上可以很容易开始;
  2. 周期性预览整个项目;
  3. 并行实现是被允许的;
  4. 项目可以一直被管理,就像流水线模型一样有完整的时间表和界限;
  5. 简化每个版本的测试和故障排除;
  6. 支持降低成本或一定范围内的需求变更;
  7. 适用于大型核心项目;
  8. 可以与业务用户更好地沟通,并在每次构建时聚集用户的反馈。

劣势:

  1. 由于系统架构和设计一直在变化,导致具有高风险性;
  2. 在每次构建整合的过程中,将会发生问题;
  3. 更多的管理工作需要做,保证每一次的构建都能达到标准;
  4. 交叉重叠的实现可能导致项目混乱;
  5. 需要业务用户更多的参与进来;
  6. 简化但需要在测试阶段花费更多的时间,并且,每一次的测试都需要覆盖到之前的工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值