瀑布模型也称为软件生命周期模型。
优点:
它在软件工程中占有重要地位,提供了软件开发的基本框架。 这比依赖“个人技能”开发软件好得多。
这有利于大型软件开发过程中人员的组织和管理有利于软件开发方法和工具的研究和使用提高了大型软件项目开发的质量和效率
坏处:
阶段划分完全固定,阶段之间产生大量文档,工作量大幅增加;
开发模式为线性的用户在流程结束前无法看到开发成果,卡会增加开发的风险
早期错误要到开发后期的测试阶段才能被发现,可能会带来严重的后果。
适用范围
(1)开发时间内需求不变或较少
)分析设计人员熟悉应用领域;
)3)低风险项目(熟悉目标、环境);
)4)用户使用环境稳定的用户除了提出需求外,很少参与开发。
快速成型
优点:
得到比较好的需求定义,容易适应需求的变化;
有助于同步发展和培训
开发费用低,开发周期短,用户友好。
坏处:
顾客和开发者对原型的理解不同
正确的原型设计很难
不利于开发者的创新。
使用范围:
熟悉开发的领域,有快速的原型开发工具
在项目招投标时,可以将原型模型作为软件的开发模型
如果要移植或升级产品,或者要客户化现有产品的原型,原型模型是最佳选择。
增量模型
优点:
采用增量模式的优点是人员分配灵活,一开始不需要投入大量人力
如果核心产品受欢迎,可以增加人员实现下一个增量
首先将部分功能分发给客户,可以对客户起到镇静剂的作用。
坏处:
并行开发组件存在无法集成的风险,软件必须具备开放体系结构。
与瀑布模型和快速原型模型相比,增量模型的灵活性可以大幅提高其应对这一变化的能力,但容易退化为在制作的同时改变模型,从而失去软件过程控制的整体性。
使用范围:
要升级现有产品或开发新版本,增量模式是最佳选择;
对于完成期限苛刻的产品,可以使用增量模型;
对于熟悉开发领域且已有的原型系统,增量模型也非常适用。
螺旋模型
优点:
设计上的灵活性可以在项目的各个阶段进行改变;
用小段构建大规模的系统,使成本计算变得简单
客户始终参与各阶段的开发,保证了项目不偏离正确方向和项目的可控性;
随着项目的进展,客户将始终掌握项目的最新信息,并与管理层进行有效的交互。
坏处:
采用螺旋模型需要相当丰富的风险评估经验和专业知识,在风险较大的项目开发中,如果不能及时识别风险,将造成重大损失;
如果迭代次数过多,开发成本会增加,提交时间会变慢。
使用范围:
螺旋模型只适合大型软件项目。