软件工程
概念
在软件开发过程中预防、发现 bug,从而提高软件质量的具体方法有很多。每种方法自然各有其作用,但是,如果只用一种,效果还是很有限的。
其实,早在几十年前,有识之士就发现了 bug 危害的严重性和软件质量的重要性。自上世纪六十年代,人们就开始研究系统性地提高软件质量的方法。
1968 年秋季,北约科技委员会召集了近 50 名一流的程序员、计算机科学家和工业界巨头,讨论研究如何应用系统化、规范化、可定量的过程化方法开发和维护软件,以及如何把管理学的经验与软件开发结合起来。
这套系统性方法被称为软件工程(Software Engineering)。这样称呼也是因为它从传统工程学中借鉴了很多内容。
软件工程出现至今已逾 50 年。在这半个多世纪的发展过程中,它为世界创造了许多方法和理论,有一些已经成为整个软件 / 互联网行业的常识。其中最具代表性的有:早期的瀑布模型,和稍晚些的敏捷开发。
瀑布模型(Waterfall Model)
瀑布模型提出了完整的软件开发应周期的概念,对周期中的各阶段进行了定义: