软件工程之美3讲——瀑布模型:像工厂流水线一样把软件开发分层化

软件工程之美3讲——瀑布模型:像工厂流水线一样把软件开发分层化

瀑布模型的诞生

为了解决软件危机中的这些问题,在 1970 年,Winston Royce 博士借鉴了其他工程领域的思想,比如建筑工程,提出了瀑布开发模型,指出软件开发应有完整之周期,并将软件开发过程分成了若干阶段。像瀑布一样,从上往下,完成一个阶段继续下一个阶段。
瀑布模型把整个项目过程分成了六个主要阶段:

  • 一、问题的定义及规划

这个阶段是需求方和开发方共同确定软件开发目标,同时还要做可行性研究,以确定项目可行。这个阶段会产生需求文档和可行性研究报告。

  • 二、需求分析
    对需求方提出的所有需求,进行详细的分析。这个阶段一般需要和客户反复确认,以保证能充分理解客户需求。最终会形成需求分析文档。
  • 三、软件设计

根据需求分析的结果,对整个软件系统进行抽象和设计,如系统框架设计,数据库设计等等。最后会形成架构设计文档。

  • 四、程序编码
    将架构设计和界面设计的结果转换成计算机能运行的程序代码。
  • 五、软件测试
    在编码完成后,对可运行的结果对照需求分析文档进行严密的测试。如果测试发现问题,需要修复。最终测试完成后,形成测试报告。
  • 六、运行维护
    软件开发完成,正式运行投入使用。后续需要继续维护,修复错误和增加功能。交付时需要提供使用说明文档。瀑布模型在提出后,因为其简单可行,切实有效,马上就在很多软件项目中应用起来,一直到 2000 年前后,都是最主流的软件开发模型,即使到现在,你也能在很多软件项目中看到它的影子。

瀑布模型的优点和缺点?

  • 优点
    简单易行
    可以按照阶段检查,能及时发现问题
    前一个阶段完成后,就可以重点关注下一个阶段
    有很好的分式协作
    对质量有保障

  • 缺点
    难以响应需求的变更,当需求发生改变时,越到后期代价越大.
    工作量分布不均衡
    例如前期开发、测试人员无法参与,而后期开发、测试人员又特别忙碌。
    前期进度受阻,会一直压缩后续阶段时间,导致延期或影响质量。
    一直到最后阶段才能看到结果。

posted @ 2021-01-26 18:50  段志轩  阅读(86)  评论(0编辑  收藏  举报