软件工程学习5-瀑布模型总结

不羁岁月 提交于 2019-12-05 16:46:10

1 瀑布模型怎么来的?

(1)所谓软件危机

瀑布模型算是现代软件工程的起源,软件工程的发展,很大部分都是构建于瀑布模型的基础之上的。在校期间做的项目相对简单,通常不会涉及到诸如性能测试等,通常为边写边改,但是一旦

项目变复杂,开发人员水平参差不齐,从而导致软件开发与维护过程中出现一系列严重问题,这个现象也被称之为“软件危机”。

(2)边写边改的缺点

  • 开发的过程不可控
  • 项目的人数多了以后,不方便协作分工
  • 对需求分析的理解误差,导致返工,从而影响项目交付
  • 没有有效的测试,上线问题一堆

(3)瀑布模型的诞生

  1970 年,Winston Royce 博士借鉴了其他工程领域的思想,比如建筑工程,提出了瀑布开发模型,指出软件开发应有完整之周期,并将软件开发过程分成了若干阶段。像瀑布一样,从上往下,完成一个阶段继续下一个阶段

 

 

 2 瀑布模型案例

按照一个我曾经毕业设计的案例

(1) 项目的定义和规划

  毕业设计是做一个c++的网络嗅探器,所用库为libpcap,可行性没问题,老师大概给我说了下需要做哪些功能,然后说两个月完成吧。啊,你怕是在开玩笑,当时读本科一天天都是在摸鱼。。初步定下时间吧

       需求分析——1 周;
  软件设计——1周;
  程序编码——4 周;
  软件测试——1周。

的确如此,软件测试在当时开来就是功能测试,实现功能就完事,哎!!!

(2) 需求分析阶段

  通过查看论文文献,使用viso画了一个项目的结构图,然后去和老师讨论,然后加了一些需求,并需要形成文档,然后再和老师谈论,最终确定了需求的文档,现在的时间变成这个样子。

       需求分析——2周
  软件设计——1周;
  程序编码——3 周;
  软件测试——1周。

       需求阶段多花了一周时间,这样子程序的编码就被压缩了一周,因为需要在规定的时间尽量完成任务嘛,毕业要紧!!

(3) 软件的设计

  这个时候,老师就对应公司里面的架构师角色,画了一个图说明采用什么架构,用什么来界面展示,数据库采用什么。差不多就确定了,但是我写了差不多一周代码后,老师问我进展,需要我加上一些数据包统计功能等

这样子前前后后,软件的设计花了两周的时间。

     需求分析——2周;
  软件设计——2周
  程序编码——2 周
  软件测试——1周。

(4)编码

  有了文档,开始编码,时间压缩了很多,加班呀,使劲加班!!但是身体受不了,只好问老师能不能往后延迟两周,编码,调试,有时候老师还要加功能,前前后后差不多花了4周时间。这样子相当于项目延期2周。

  需求分析——2周;
  软件设计——2周;
  程序编码——4周
  软件测试——1周。

(5)测试

  前期需求多了一周,软件设计多花了一周,在既定的时间里,只能压缩编码和测试的时间,加班!!

综上可知,这样子分层的思想,的确可以在每一步的实施上面可以效率比较高,这种编码前先设计、编码后测试、整个过程重视文档的方式,开发出来的产品,质量相对是有保障的。但是一旦前面某个环节出了问题,返工的操作不是延期就是压缩编码测试的时间。从而成了9116.。。。。。

3 瀑布模型的优缺点

  最大的问题就是不能及时响应需求变更,越到后期变更代价越大

优点

  • 简单易行
  • 可以进行阶段检查,能够及时发现问题
  • 较好的分工协作,不同阶段不同职位,架构师,项目经理,开发工程师,测试工程师,运维工程师
  • 对质量有一定的保障,因为每个阶段有详细的文档

缺点

  • 难以响应需求的变更
  • 工作量分配不均匀
  • 前期阶段受阻压缩后期进展

4 总结

  瀑布模型的出现,也解决了软件项目开发中的几个重要问题。进行了模块划分,各个阶段负责各个阶段的内容,所谓分工明确。质量有了保证,每个阶段都有相应的文档评审,可以帮助大家少走弯路,提高工作效率。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!