第6章面向对象方法学引论
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章 面向对象方法学引论 教学提示:本章主要讲述面向对象方法学的优缺点;面向对象的基本概念:对象、类、实例、消息、方法、封装、继承、多态性和重载等;面向对象的软件工程:OOA、OOD、
OOP、OOT;面向对象的建模及对象模型、动态模型、功能模型;面向对象的开发方法。
教学要求:面向对象的基本概念,比较抽象,教学中要注意结合面向对象的高级语言举一些例子来更深刻地领会。本章难点是面向对象的概念及特征和面向对象的模型。掌握面向对象的基本概念及特征,面向对象的建模,面向对象的软件工程。了解面向对象方法学的定义和优点,面向对象的开发方法。
面向对象的软件开发方法在20世纪60年代后期首次提出,经过将近20年这种技术才逐渐得到广泛应用。到了20世纪90年代前半期,面向对象的软件工程方法学已经成为人们在开发软件时首选的范例。今天看来,面向对象技术似乎是最好的软件开发技术
6.1 面向对象方法学概述
面向对象的技术是当前计算机界所关心的重点,是目前软件发展的主流。面向对象的概念来自面向对象的程序设计语言,实际上,面向对象的概念和应用已经超越了程序设计语言,扩展到很宽的范围,如面向对象的数据库系统、面向对象的系统分析与设计、CAD 技术、人工智能以及其他广泛的应用范围。
6.1.1 面向对象方法的发展历程
面向对象的方法的研究正在引起全世界越来越强烈的关注和高度重视,被誉为“研究最新技术的好方法”。针对日趋复杂的软件需求的挑战,软件业界开始崇尚利用面向对象的方法和思想进行软件开发。
与人类发明史上的许多创举不同,面向对象不是瞬间出现的。面向对象不是某个人的突发奇想,而是许多人经历多年研究积累的产物。
面向对象的方法起源于面向对象的程序设计语言。在20世纪60年代中期Simula-67的设计者Dahl和Nygaard 提出对象(object)的概念,在程序设计语言中开始使用数据封装(data encapsulation)的概念。在20世纪70年代,Liskov使用抽象数据类型(ADT)的理论和实现有了重大的进展,奠定了面向对象的基础。Liskov最著名的研究成果是CLU语言,支持隐藏内部数据表示方法。从20世纪70年代起,Xerox公司的 Palo Alto 研究中心经过对Smalltak 72、74连续不断的研究、改革后,在1980年推出了Smalltalk-80,它在系统设计中强调对象概念的统一,引入对象、对象类、方法和实例等概念及术语,采用了动态联编及单继承机制,体现了面向对象方法的许多重要概念,对面向对象方法学的形成和发展起
第6章 面向对象方法学引论 ·123·了重大作用。
与此同时,Bell实验室的B. Stroustrup着手在C语言的基础之上加以扩展,使之成为一个面向对象的语言,定名为C++。由于C语言在80年代已成为通用的开发语言,它不仅可以用于计算机,而且可以用于范围很宽的计算机结构及环境,因此在C语言的基础上扩展而成的C++虽然不是纯粹的面向对象语言,却继承了C的语言构造,易学易用,不需特殊的计算机平台。这些相比于Smalltalk-80明显的优点,受到计算机界的普遍欢迎。许多C++商业版本和工具相继出现,原来阻碍面向对象程序设计语言推广使用的性能价格比问题也顺利地得以解决。所以,C++的问世,促进了面向对象技术的发展。
Java语言与Internet有着直接的关系,它采用了类C++的风格,是一个比较严格的面向对象的语言,并且可以跨平台运行。SUN公司的Java 2的J2ME、J2SE、J2EE不同的标准,使得Java可以应用在任何平台之上。
另外,还有一些其他的面向对象的程序设计语言也在20世纪80年代相继出现,如objective-C、Eiffel、CommonLOOPS等。
许多基于框架(Frame-based)的知识表达系统提供了面向对象的特征;Tertronix和Data General公司提供了面向对象辅助设计和工程系统。O2、ITASCA及ObjectStore等面向对象的数据库系统,日趋成熟并已进入商品化。许多Client/Server数据库开发工具都采用了面向对象的方法与技术,如Borland Internatioal公司的Delphi、Powersoft公司的Power Builder和Informix的New Era等。
在20世纪90年代后期,尽管Grady Booch、Ivar Jacobson及Jim Rumbaugh三人在面向对象领域各有各自的主张,但是他们仍通力合作将面向对象用合理的符号表示产生了统一建模语言(Unified Modeling Language,UML),这个图形化的建模语言既有可视的表达形式,又有严谨的语义支撑。
6.1.2 面向对象方法学的优点
面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。面向对象方法强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位,而不是用一些与现实世界中的事物相差较远,并且没有对应关系的其他概念来构造系统。因此,面向对象方法可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。
1. 与人类习惯的思维方法一致
面向对象的软件技术是以对象为核心,用这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据以及可以对这些数据施加的操作,封装在一起所构成的统一体。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。
面向对象的设计方法基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,鼓励开发者在绝大部分过程中都应
·123·