软件危机
概述
软件危机(Software Crisis)是1960年代末笼罩整个软件行业的困境——项目频繁超期、严重超预算、交付的软件充满缺陷。"软件工程"术语正是在1968年10月的 NATO 会议上被正式提出的。
关键内容
具体表现
- 项目严重超期:IBM 的 OS/360 操作系统项目最终投入了5000人年的工作量,远超最初预估。项目负责人 Fred Brooks 后来将这段经历写成了经典著作《人月神话》。
- 预算大幅超支:实际成本常常是预算的数倍乃至数十倍
- 质量低下:交付的软件充满 bug,可靠性极差
- 维护困难:修改一个 bug 往往会引入更多新 bug
根本原因
当程序规模从几百行增长到几万行甚至几十万行时,人类理解和管理复杂度的能力就会被远远超越。当时的编程实践几乎毫无章法——大量依赖 goto 语句产生了"意大利面条式代码",使程序的控制流像一团纠缠不清的面条。
回应
- 1968年10月:NATO 软件工程会议在联邦德国加米施-帕滕基兴召开,"软件工程"术语正式提出
- 1968年3月:Dijkstra 发表《Go To Statement Considered Harmful》,从编程方法论角度回应危机
- 结构化编程运动:为软件工程提供了系统化的方法论基础
来源
- raw/books/计算机科学/06-dijkstra-goto-considered-harmful.md
相关
- Go To Statement Considered Harmful 论文 — 对软件危机的回应
- Edsger Dijkstra — 回应者之一
- 结构化编程 — 对软件危机的方法论回应
- 意大利面条式代码 — 软件危机的技术根源之一