Waterfall 软件工程
《Royce, Winston (1970), “Managing the Development of Large Software Systems”, Proceedings of IEEE WESCON 26 (August): 1–9. 》,这篇文章向你说明了软件工程鼻祖“Waterfall”的工程模型,这是40年前的论文,其中的十张插图很有强大,抽出来,让我们来看看什么叫Waterfall软件工程。
首先,让我先看一下小的程序是怎么做的,呵呵,很简单,两步。
接下来,就是我们最经典的Waterfall软件工程模型了,用户需求,软件需求,需求分析,设计,编码,测试,运维。
为了保证每个步骤都能正确实施,于是,每个步骤之间需要有一定的交互,这是我们所希望的样子。
然后,不幸的是,我们总是在测试的时候发现了设计甚至需求的问题,因此,不得不让我们返工。
为了解决上面的“返工”问题,我们可以使用下面的几步来解决。
第一步,叫Preliminary Design,程序设计先行,确定在进入需求分析之前,我们的概要设计要完整。
第二步,我们叫Document Design,书写设计文档,确认我们的设计是完整的。看到了吧,总共6个文档,1)软件需求,2)概要设计,3)接口设计,4)各种最终设计,5)测试设计/计划,6)测试结果。流程开始变得复杂了。
第三步,我们叫“Do it Twice”,双保险,把文档了的东西试着预先走一遍,看看能否成为最终产品。
第四步,计划,控制和监控测试。哇,流程很乱了。
第五步,用户介入,全程review各个环节。
好了,问题解决了,让我们看看最终的“无比强大的”——Waterfall软件工程模型!
现在,当你在使用waterfall开发软件的时候,知道为什么痛苦了吧,40年前就已经如此了。
下面是《Lone Star Ruby Conference 2010》的一个演讲叫《Real Software Engineer》,没有字幕,但我个人感觉英文很容易听懂,英文好的同学不妨看看。
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
看这个浏览器最近还挺火加了 waitlist, 后来又发现 edu 邮箱可以直接提前体验, 结果我安装了第一步必须要注册, 那好吧就注册吧, 结果连不上服务器.....你这浏览…
RSA 算法从原理上说, 可以使用 private key 加密, public key 解密, 但为什么各个语言的实现都只允许 public key 加密, private …
是不是有锁 指针可以调用所有方法 不是吧 非指针类型也可以调用所有方法啊. go 不是会自动处理吗? 是不是某些情况下返回的类型要给接口赋值的时候. 会遇到什么不支持…