三文鱼洄游模型 zz from 移山之道

三文鱼洄游模型

软件学院的小慧老师对阿超抱怨,软件工程这门课看似容易,实际太难教。

小慧说:我是按照经典的瀑布模型来讲课的,本来以为会是高屋建瓴,一泻千里,但是实际情况是这样的:

  1. 需求分析:学生们都不懂企业的需求是什么,上课睡觉。
  2. 设计阶段:学生们画了许多 UML 图,用设计工具画了不少矩形框,如此而已
  3. 实现阶段:学生们开始讨论,UML 图早已经扔到一边。
  4. 稳定阶段:学生们中十分之一的人开始写代码,其他人不知道在干什么.代码大部分情况下都不能工作,所有设计好的种种黑箱和白箱测试都无从开始。
  5. 发布阶段:这个只有一天时间,就是最后检查的那一天,同时还有人在调试程序.
  6. 维护阶段:课程结束了,同学们对自己的产品没有任何维护,放假了!

最后大部分同学们都说自己根本没学到什么本事,然后下个学期,新的一批学生进来重复这一过程。。。

阿超沉吟半晌,说,事实上,一个软件工程师在现实世界中的职业发展好像和瀑布相反:

  1. 毕业进入公司,开始维护一些已有的软件(维护阶段)
  2. 能够在项目中改一些bug,然后发布小规模的更新版本 (稳定/发布阶段)
  3. 负责重写一个小小的模块,没有文档,写很多代码(实现阶段)
  4. 有机会设计比较大的模块,自己写一些文档 (设计阶段)
  5. 有机会去和用户谈新的项目 (需求分析)

那软件工程的课程能否也像这样安排?  可以试一试这样的流程:

  1. 开始维护以前同学开发出来的程序,理解程序。
  2. 找bug,改bug,重构小部分代码,以满足用户的需求。
  3. 一部分同学可以开发测试用例
  4. 在现有版本的基础上做增量开发
    1. 理解需求  (这个时候理解了客户需求是什么)
    2. 设计
    3. 开发
    4. 回归测试 (用到上面开发的测试用例)

小慧问:那这是什么模型?

阿超说:嗯,看起来像是从瀑布下方一步一步上溯到源头,不妨叫“大马哈鱼洄游模型”

小慧在电脑上敲了几下,说:根据糍粑的翻译,应该叫

Malaysia admires fish back to swim 模型?

阿超昏倒了一会,醒来之后说:以后要少用糍粑。这个模型可以叫

Salmon Upstream 模型,或者简称“三文鱼模型”

posted @ 2010-11-17 09:35  leoyonn  阅读(357)  评论(1编辑  收藏  举报