摘要:软件危机使人们认识到大中型软件系统与小型软件有本质的不同:大型软件系统的开发周期长、开发费用昂贵、开发出来的软件质量难以保证、开发生产率低等。软件的复杂性不是因为某个软件系统要解决一个特定的复杂问题而偶然产生的,它是大型软件系统的一个固有的本质特征,软件开发过程必然会受到软件复杂性的影响。由于软件复杂性是固有的,我们无法彻底消除,因此只能采用控制的方法,尽量减少软件复杂性对软件开发过程的影响,而分解、抽象、模块化、信息隐蔽(封装)是控制软件复杂性的有效方法。面向对象(object-oriented,OO)技术充分体现了分解、抽象、模块化、封装等思想,可以有效的提高软件生产率、缩短软件开发时间、提高软件质量,是控制软件复杂性的有效途径。