软件危机是指在 计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题通常包括软件开发费用和进度失控、软件质量低下、可维护性差、可靠性差等。软件危机的产生主要是由于落后的软件生产方式无法满足迅速增长的计算机软件需求,以及软件规模的急剧扩大和复杂度的提高。
软件危机主要表现为以下几个方面:
软件开发费用和进度失控:
费用超支、进度拖延的情况屡屡发生,有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。
软件质量低下:
软件中存在大量错误,导致软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
软件可维护性差:
随着软件规模的扩大和复杂度的提高,软件的维护变得越来越困难。原有的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率。
软件可靠性差:
软件系统的可靠性问题越来越突出,导致用户对软件的信任度降低,影响软件的正常使用。
为了解决软件危机,软件从业人员、专家和学者做出了大量的努力,并诞生了一门新兴学科——软件工程学。软件工程学把软件作为工程对象,从技术措施和组织管理两个方面来研究、解决软件危机,以提高软件的生产率和质量。