软件生命周期作业
什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。
软件生命周期是指人们为开发更好的软件而归纳总结的软件生命周期的典型实践参考,而生命周期模型是对软件开发实际过程的抽象,生命周期模型间接地描述了软件过程。
瀑布模型
优点
采用规范的方法,每个阶段都有仔细验证。有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。
缺点:
- 开发过程一般不能逆转,否则代价太大;
- 实际的项目开发很难严格按该模型进行;
- 客户往往很难清楚地给出所有的需求,而该模型却要求如此。
- 软件的实际情况必须到项目开发的后期客户才能看到,这要求客户有足够的耐心。
适用范围:
- 用户的需求非常清楚全面,且在开发过程中没有或很少变化;
- 开发人员对软件的应用领域很熟悉;
- 用户的使用环境非常稳定;
- 开发工作对用户参与的要求很低。
快速原型模型
优点:
- 可以得到比较良好的需求定义,容易适应需求的变化;
- 有利于开发与培训的同步;
- 开发费用低、开发周期短且对用户更友好。
缺点:
- 客户与开发者对原型理解不同;
- 准确的原型设计比较困难;
- 不利于开发人员的创新。
适用范围:
- 对所开发的领域比较熟悉而且有快速的原型开发工具;
- 项目招投标时,可以以原型模型作为软件的开发模型;
- 进行产品移植或升级时,或对已有产品原型进行客户化工作时,原型模型是非常适合的。
增量模型
优点:
- 采用增量模型的优点是人员分配灵活,刚开始不用投入大量人力资源;
- 如果核心产品很受欢迎,则可增加人力实现下一个增量;
- 可先发布部分功能给客户,对客户起到镇静剂的作用。
缺点:
- 并行开发构件有可能遇到不能集成的风险,软件必须具备开放式的体系结构;
- 增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而是软件过程的控制失去整体性。
适用范围:
- 进行已有产品升级或新版本开发,增量模型是非常适合的;
- 对完成期限严格要求的产品,可以使用增量模型;
- 对所开发的领域比较熟悉而且已有原型系统,增量模型也是非常适合的。
螺旋模型
优点:
- 设计上的灵活性,可以在项目的各个阶段进行变更;
- 以小的分段来构建大型系统,使成本计算变得简单容易;
- 客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性;
- 随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
缺点:
- 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中,如果未能够及时标识风险,势必造成重大损失;
- 过多的迭代次数会增加开发成本,延迟提交时间。
适用范围:
- 螺旋模型只适合于大规模的软件项目。