一说起软件生命周期模型,瀑布模型绝对是最耳熟能详的那个。
但是由于瀑布模型的简单易用和明显存在的一些弱点(如,对需求变更的适应性不足),瀑布模型被很多人认为它不适合实际项目的使用,甚至认为,使用瀑布模型就没有在做软件工程。
这就有点小看瀑布模型了。
事实上,瀑布模型是经典的软件生命周期模型,也是具有里程碑意义的划时代的软件生命周期模型,甚至可以说,瀑布模型就是软件工程的代表。
首先,从瀑布模型的起源来看,瀑布模型正是为了解决软件危机借鉴其他工程领域的思想而产生的。
为了解决软件危机中的这些问题,在 1970 年,Winston Royce 博士借鉴了其他工程领域的思想,比如建筑工程,提出了瀑布开发模型,指出软件开发应有完整之周期,并将软件开发过程分成了若干阶段。像瀑布一样,从上往下,完成一个阶段继续下一个阶段。——摘自《软件工程之美》,宝玉主讲。
而在此之前,软件开发还处于“边写边改”的原始模式中。
所以,瀑布模型就是软件工程的代言人。因为瀑布模型借鉴了其他工程领域的经验,把软件开发划分为若干阶段进行,通过逐个目标的完成来实现项目的最终目标,这与我们总结的6个阶段(想法、概念、计划、设计、开发、发布)的工程方法是一致的。
其次,瀑布模型也是一个划时代的软件生命周期模型。因为它的出现,结束了之前无序的、没有规划的开发过程,从此之后,软件开发进入了一个追求可控、可视化的时代。
最后,瀑布模型是其它模型的引路人。
随着瀑布模型的应用越来越广,它的一些缺点也逐步被发现。如不能及时响应需求变更,基于软件产品的验证只能在后期进行等。但是,正是由于它的广泛应用,它的缺点的暴露,才让我们基于随它伴生的软件生命周期模型的概念去建立更适合项目的其它模型:原型开发、迭代开发……如果没有瀑布模型的出现,后面的模型会不断涌现吗?
尽管瀑布模型有它的缺点,但是,它依然在实际项目应用最广泛的。通过对瀑布模型的改进,比如允许前后阶段交叠、预留需求变更的时间,瀑布模型仍旧能够发挥出它的作用。
这正是:
瀑布模型超经典,模型鼻祖我当先
工程思想铸我魂,后人创新莫忘前