1.1 软件危机

软件危机(Software Crisis)是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致计算机软件的开发和维护过程中遇到的一系列严重的问题。软件危机是1968年在联邦德国召开的国际软件工程会议上被人们普遍认识到,其主要表现为软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难等。

由图1-1可知,随着硬件的发展,软件占整个系统的比例呈大幅增长,由最初50年代的10%左右增长到80年代的80%以上。而且随着系统规模增大,其成本仍在增长。因此,如何控制一个系统的软件成本成为该系统重要的成本核算部分。

图1-1 软硬件成本的变化

一方面是软件成本的增长,另一方面则是软件开发进度的难以控制。软件的开发进度本该按照计划执行,但由于程序员素质、开发难度等问题,大多数的软件系统开发存在拖沓的现象,即系统上线的时间一拖再拖。

系统上线时间的延迟并未带来软件质量的提升,“慢工出细活”在软件行业并不成立,拖延的软件系统与软件质量无直接的促进作用。当系统上线之后,软件的维护则成为软件公司的梦魇,漫长而又烦琐。随着时间的推移,由于员工的更换等原因,老系统的维护更加困难。

软件危机一直制约着软件质量的提升,也成为软件行业变革的导火索。

为了克服软件危机,人们意识到面临的不光是软件技术问题,更重要的是管理问题,管理不善必然导致失败,人们开始探索利用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护。1968年,“软件工程”的概念出现了。