面向对象分析与设计
上QQ阅读APP看书,第一时间看更新

1.2.2 面向对象方法的发展过程

面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用在软件开发过程中,并指导开发活动的系统方法,简称OO(Object-Oriented)方法,是一种建立在“对象”概念基础上的软件开发方法。

所谓面向对象就是以对象概念为基础,以对象为中心,以封装、继承、关联、多态等特性为构造机制,来认识、理解和描述客观世界,并以此为基础构建相应的软件系统。

面向对象方法的基本出发点是尽可能按照人类认识问题和解决问题的方式方法来分析设计和实现需要的软件系统。

面向对象方法认为客观世界是由各种事物和事物之间的联系构成的,并将客观世界描述为对象和对象之间的关系。面向对象方法正是以对象作为最基本的构成元素,它也是分析问题和解决问题的核心。

面向对象设计技术是软件技术的一次革命,在软件开发史上具有重要的里程碑意义。

面向对象方法的发展过程经历了从面向对象编程(Object Oriented Programming,OOP)、面向对象设计(Object Oriented Design,OOD)和面向对象分析(Object Oriented Analysis,OOA)的发展过程,最终形成了基于对象模型技术的(Object Modelling Technique,OMT)面向对象软件开发方法。

OMT方法是一种采用了自底向上分析和自顶向下设计相结合的策略的分析和设计方法,它以对象建模为基础,充分考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT方法彻底实现了PAM没有完全实现的目标。

不仅如此,面向对象技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上也有了实质性的突破,彻底地解决了在这些方面存在的严重问题。

人们通常将面向对象方法的发展过程划分为早期、发展和现状三个阶段。

1.早期阶段

面向对象方法最早出现并得到发展的标志是面向对象程序设计语言的出现,这导致了新的面向对象程序设计方法的出现和发展。

最早的面向对象语言是1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发的Simula 67语言,该语言首次引入了类的概念和继承机制,它是面向对象的先驱。1972年,Palo Alno研究中心(PARC)发布了Smalltalk 72语言,其中正式使用了“面向对象”这一术语。Smalltalk的问世标志着面向对象程序设计方法的正式形成。随后的几年中,PARC先后发布了Smalltalk 72、76和78等多个版本,直至1981年推出该语言完善的版本Smalltalk 80。Smalltalk 80的问世被认为是面向对象语言发展史上最重要的里程碑事件。Smalltalk 80具备了迄今为止绝大部分面向对象的基本概念及其支持机制。它是第一个完善的、能够实际应用的面向对象语言。

2.发展阶段

20世纪80年代和90年代,是面向对象程序设计语言走向繁荣的重要阶段。其主要的表现是大批实用的面向对象程序设计语言的涌现,如C++、Objective C、Object Pascal、CLOS、Eiffel和Actor等,这使得面向对象程序设计语言的应用得到了迅速的普及。

这些面向对象的编程语言又可以划分为纯面向对象型语言和混合型面向对象语言。混合型语言是在传统的结构化程序设计语言基础上增加了面向对象语言成分形成的,例如C++,它既支持传统的结构化程序设计,也支持面向对象的程序设计,在实用性方面具有更大的灵活性。而纯面向对象型语言则是所谓的纯粹的面向对象语言,这种语言仅支持面向对象的程序结构。

目前,大多数面向对象语言普遍采用了程序语言、类库和可视化集成开发环境相结合的方式,如VisualC++、JBuilder和Delphi等,极大地提高了程序设计的效率。客观上也推动了面向对象设计和面向对象分析方法的发展,使面向对象方法扩展到整个软件生命周期的各个阶段。

到20世纪90年代,面向对象的分析与设计方法已多达数十种,这些方法都各有所长。目前,统一建模语言(Unified Modeling Language,UML)已经成为通用性的建模语言,适用于多种开发方法。把UML作为面向对象的建模语言,不但在软件产业界获得了普遍支持,在学术界也具有很大的影响。在面向对象过程指导方面,虽然目前还没有统一的规范,但也已经产生了一些具有相当大影响力的面向对象软件开发的过程。例如,著名的统一软件开发过程(RUP)。

3.面向对象方法的现状

当前,面向对象方法几乎覆盖了计算机软件领域的所有分支。这些分支包括面向对象的编程语言(OOP)、面向对象分析(OOA)、面向对象设计(OOD)、面向对象测试(OOT)和面向对象维护(OOM)等软件工程领域的分支,也包括图形用户界面设计(GUI)、面向对象数据库(OODB)、面向对象的数据结构(OODS)、面向对象的智能程序设计、面向对象的软件开发环境(OOSE)和面向对象的体系结构(OOSA)等技术领域。此外,许多新领域都以面向对象理论为基础或主要技术,如面向对象的软件体系结构、领域工程、智能代理、面向构件的软件工程和面向服务的软件开发等。