一、瀑布模型
优点
1)为项目提供了按阶段划分的检查点。
2)当前一阶段完成后,您只需要去关注后续阶段。
3)可在迭代模型中应用瀑布模型。
瀑布模型有以下缺点:
1)在项目各个阶段之间极少有反馈。
2)只有在项目生命周期的后期才能看到结果。
3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
二、快速原型模型
快速原型模型需要迅速建造一个可以运行的软件原型 ,以便理解和澄清问题,使开发人员与用户达成共识,最终在确定的客户需求基础上开发客户满意的软件产品。
快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
快速原型是利用原型辅助软件开发的一种新思想。经过简单快速分析,快速实现一个原型,用户与开发者在试用原型过程中加强通信与反馈,通过反复评价和改进原型,减少误解,弥补漏洞,适应变化,最终提高软件质量。
优点
1) 克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险。
缺点
1) 所选用的开发技术和工具不一定符合主流的发展;
2)快速建立起来的系统结构加上连续的修改可能会导致产品质量低下;
2.1模型类型
探索型原型
实验型原型
演化型原型
2.2 开发步骤
快速分析
构造原型
运行原型
评价原型
修改
三、螺旋模型
优点
1)设计上的灵活性,可以在项目的各个阶段进行变更
2)以小的分段来构建大型系统,使成本计算变得简单容易。
3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
4)随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
缺点
很难让用户确信这种演化方法的结果是可以控制的。
建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。
四、增量模型
增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
优点
•整个项目的资金不会被提前消耗,因为首先开发和交付了主要功能和高风险功能。 •每个增量交付一个可操作的产品。
•每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对建立好的模型作出反应。
•采用连续增量的方式,可把用户经验融入到细化的产品,这比完全重新开发要便宜得多。
•“分而治之”的策略,使问题分解成可管理的小部分,避免开发团队由于长时间的需求任务而感到泪丧。
•通过同一个团队的工作来交付每个增量,保持所有团队处于工作状态,减少了员工的工作量,工作分布曲线通过项目中的时间阶段被拉平。
•每次增量交付的结为,可以重新修订成本和进度的风险。
•便于根据市场作出反应。
•降低了失败和更改需求的风险。
•更易于控制用户需求,因为每次曾两开发的时间很短。
•由于不是一步跳到未来,所以用户能逐步适应新技术。
•切实的项目进展,有利于进度控制。
•风险分布到几个更小的增量中,而不是集中于一个大型开发中。
•由于用户能够从早期的增量中了解系统,所以更加理解后面增量中的需求。 增量模型有以下缺点
•若软件可拆卸度不高,开发人员全局把握水平不高,用户不同意分阶段提交产品,或者开发人员过剩,都不适宜。
参考
增量模型,百度百科,2019.3.
迭代模型,百度百科,2019.3.
4种模型的优缺点,百度用户19930604.