软件工程之美
一、瀑布模型
瀑布模型算是现代软件工程的起源,软件工程的发展,很大部分都是构建于瀑布模型的基础之上的。
思考一下:大的软件系统是如何开发出来的?那么多人一起开发一个软件,系统是如何分工协作的?
1、 瀑布模型发展
在软件开发刚开始起步时,开发模式就是边写边改模型。
边写边改的开发模式主要缺点:
- 整个开发过程不可控,想基于这种开发模式做项目计划很难;
- 项目的人数多了后,无法有效分工协作;
- 项目开始的时候对需求几乎没有进行有效分析,对需求的理解容易出现偏差,后期导致很多返工;
- 项目编码完成后,没有有效测试,运行时 Bug 非常多。
为了解决软件危机中的问题,在 1970 年,提出了瀑布开发模型,指出软件开发应有完整之周期,并将软件开发过程分成了若干阶段。像瀑布一样,从上往下,完成一个阶段继续下一个阶段。
瀑布模型在提出后,一直到 2000 年前后,都是最主流的软件开发模型,即使到现在,你也能在很多软件项目中看到它的影子。
2、 瀑布模型优缺点
优点:
- 简单易行。
- 可以按照阶段检查,能及时发现问题。
- 前一个阶段完成后,就可以关注下一个阶段。
- 有很好的分工协作。
- 对质量有保障。
缺点:
- 难以响应需求的变更,当需求发生改变时,越到后期代价越大。
- 工作量分布不均衡。例如:前期开发、测试人员无法参与,后期开发测试人员又特别忙碌。
- 前期进度受阻,会一直压缩后续阶段时间,导致延期或影响质量。
- 一直到最后阶段才能看到结果。
二、其他开发模型
瀑布模型的衍生模型都有哪些,又该如何选择呢?
1、快速开发快速改
(1)快速原型模型
快速原型模型,就是为了要解决客户的需求不明确和需求多变的问题。<