软件过程模型:在软件开发的过程中,提供一种过程化的模型,让开发过程更加的科学合理,一定程度上避免软件危机。
瀑布模型
按照软件生命周期的各个阶段,依次向下,逐步求精的方式完成软件项目;
每一阶段有有每一阶段明确的任务,每一阶段的完成都有相应的文档生成,
为下一阶段提供依据。
优点:
1、项目的每个阶段都有明确的文档支撑,给软件项目的每个阶段提供明确的目标,也方便后期对项目过程的整理。
2、前一个阶段完成后,只需要关注下一个阶段即可;
缺点:
1、在项目生命周期的后期才能看到最终的成果,用户不能提前了解到软件产品的实际效果。
2、当需求发生变化时,整个软件项目需要从头再来,增加了软件的周期成本。
3、通过很多的强制完成日期和里程碑,来跟踪各个项目阶段,容易使软件项目质量收到影响。
快速原型模型
根据用户的需求快速建立一个原型系统,该原型能够满足用户的部分需求,
是最终软件产品功能的一个子集,通过该原型是为了更好的获取用户的真实需求,
用户根据原型,提出新的需求或者原需求的修改,一旦需求建立,
原型系统将被丢弃。
优点:
1、通过快速原型的建立,让用户试用,使用户的需求更加明确,降低了用户需求确定的难度。
2、通过原型,可以很快的让用户体验到产品的功能,并激发用户产生新的需求。
缺点:
1、注重需求的确定和功能的实现,而容易忽略产品的质量
2、一旦用户对原需求发生较大改变,需要产生新的模型
3、要求技术人员在短时间内制造原型模型,技术要求比较高
增量模型
通过对用户的需求,建立一个满足用户核心功能的产品,并投入使用,在使用的过程中,用户根据实际需求,提出新的需求(增量)。开发人员再将新的需求逐步增加到现有的系统中。
优点:
1、用户可以很快的体验到软件产品,并且投入使用创造价值。
2、可以针对实际的使用情况增加新的比较明确的需求,也减少了用户学习使用的时间
3、减少软件项目的开发风险,如:用户没有资金支持,可以立即停止项目开发。减少双方的损失。
缺点:
越到后期,增量的增加越困难,复杂程度越高,需要考虑到对已有功能的联系。
喷泉模型
喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。每个阶段都可以重复的迭代式的进行。
各个阶段可以同步进行。
优点:
没有明确的开发顺序,各个阶段可以同步进行,开发效率得到提高
缺点:
1、由于各个阶段可以同时进行,需要有大量的开发人员参与
2、各个阶段有严格的文档管理,而各个阶段随时可能加入需求,
导致文档管理难度增加
适用于面向对象软件的开发
螺旋模型
又称为风险驱动的模型,是快速原型模型和瀑布模型的结合,并且加入了风险分析;
通过对瀑布模型的各个阶段目标进行确认,然后从风险角度分析方案的开发策略,
努力排除各种潜在的风险,通过建造原型来完成。如果某些风险不能排除,
该方案立即终止,否则启动下一个开发步骤。最后,评价该阶段的结果,
并设计下一个阶段,不断的对原型进行完善。最终实现满意的软件产品的开发。
优点:
1、将大的项目分成几个小段来逐步实现,是开发成本变的可控
2、用户始终参与到项目开发过程中,保证了项目不偏离正确方向以及项目的可控性。
缺点:
开发需要的周期过长。