软件工程之美3讲——瀑布模型:像工厂流水线一样把软件开发分层化
软件工程之美3讲——瀑布模型:像工厂流水线一样把软件开发分层化
瀑布模型的诞生
为了解决软件危机中的这些问题,在 1970 年,Winston Royce 博士借鉴了其他工程领域的思想,比如建筑工程,提出了瀑布开发模型,指出软件开发应有完整之周期,并将软件开发过程分成了若干阶段。像瀑布一样,从上往下,完成一个阶段继续下一个阶段。
瀑布模型把整个项目过程分成了六个主要阶段:
- 一、问题的定义及规划
这个阶段是需求方和开发方共同确定软件开发目标,同时还要做可行性研究,以确定项目可行。这个阶段会产生需求文档和可行性研究报告。
- 二、需求分析
对需求方提出的所有需求,进行详细的分析。这个阶段一般需要和客户反复确认,以保证能充分理解客户需求。最终会形成需求分析文档。 - 三、软件设计
根据需求分析的结果,对整个软件系统进行抽象和设计,如系统框架设计,数据库设计等等。最后会形成架构设计文档。
- 四、程序编码
将架构设计和界面设计的结果转换成计算机能运行的程序代码。 - 五、软件测试
在编码完成后,对可运行的结果对照需求分析文档进行严密的测试。如果测试发现问题,需要修复。最终测试完成后,形成测试报告。 - 六、运行维护
软件开发完成,正式运行投入使用。后续需要继续维护,修复错误和增加功能。交付时需要提供使用说明文档。瀑布模型在提出后,因为其简单可行,切实有效,马上就在很多软件项目中应用起来,一直到 2000 年前后,都是最主流的软件开发模型,即使到现在,你也能在很多软件项目中看到它的影子。
瀑布模型的优点和缺点?
-
优点
简单易行
可以按照阶段检查,能及时发现问题
前一个阶段完成后,就可以重点关注下一个阶段
有很好的分式协作
对质量有保障 -
缺点
难以响应需求的变更,当需求发生改变时,越到后期代价越大.
工作量分布不均衡
例如前期开发、测试人员无法参与,而后期开发、测试人员又特别忙碌。
前期进度受阻,会一直压缩后续阶段时间,导致延期或影响质量。
一直到最后阶段才能看到结果。