面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO方法,它是建立在对象概念(对象、类和继承)基础上的方法。自八十年代中期起,人们注重于面向对象分析和设计的研究,逐步形成了面向对象方法学。典型的方法有P.Coad和E.Yourdon的面向对象分析(OOA)和面向对象设计(OOD),G.Booch的面向对象开发方法,J.Rumbaugh等人提出的对象建模技术(OMT),Jacobson的面向对象软件工程(OOSE)等。九十年代中期,由G.Booch,J.Rumbaugh,Jacobson等人发起,在Booch方法、OMT方法和OOSE 方法的基础上推出了统一的建模语言(UML),1997年被国际对象管理组织(OMG)确定作为标准的建模语言。
面向对象方法的出现很快受到计算机软件界的青睐,并成为九十年代的主流开发方法,可以从下列几个方面来分析其原因:
(1) 从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律。
很长一段时间里,我们分析、设计、实现一个软件系统的过程与我们认识一个系统的过程存在着差异。比如用结构化分析和设计方法、信息工程方法。面向对象的分析和设计采用同样的图形表示形式,分析、设计和实现都以对象为基础,因此面向对象开发的各阶段之间具有很好的无缝连接。当用户的需求有所改变时,由于客观世界中的实体是不变的,实体之间的联系也是基本不变的,因此面向对象的总体结构也相对比较稳定,所引起的变化大多集中在对象的属性与操作及对象之间的消息通信上。总之,面向对象方法符合人们对客观世界的认识规律,所开发的系统相对比较稳定。
(2) 面向对象方法开发的软件系统易于维护,其体系结构易于理解、扩充和修改。
面向对象方法开发的软件系统由对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。对象以属性及操作作为接口(界面),使用者只可通过接口访问对象(请求其服务),对象的具体实现细节对外是不可见的。这些特征使得软件系统的体系结构是模块化的,这种体系结构易于理解、扩充和修改。当对象的接口确定以后,实现细节的修改不会影响其它对象,易于维护。同时也便于分配给不同的开发人员去实现,依据规定的接口能方便地组装成系统。
(3) 面向对象方法中的继承机制有力支持软件的复用。
在同一应用领域的不同应用系统中,往往会涉及到许多相同或相似的实体,这些实体在不同的应用系统中存在许多相同的属性和操作,也存在一些不同的应用系统所特有的属性和操作。在开发一个新的软件系统时,可复用已有系统中的某些类,通过继承和补充形成新系统的类。在同一个应用系统中,某些类之间也存在一些公共的属性和操作,也含有它们各自私有的属性和操作。这也可以通过继承来复用公共的属性和操作。