第一次“软件危机”- 20世纪60年代 根源:日益庞大和复杂的程序对开发管理的要求越来越高 解决:软件工程 第二次“软件危机”- 20世纪80年代 根源:软件规模继续扩大,程序数百万行,数百人同时开发,可维护性难 解决:面向对象语言-C++/java/c# 第三次“软件危机”- 21世纪头十年 根源:软件安全 解决:软件安全开发生命周期管理