面向对象的方法及uml图的绘制

上传人:第*** 文档编号:33582426 上传时间:2018-02-15 格式:DOCX 页数:14 大小:482.21KB
返回 下载 相关 举报
面向对象的方法及uml图的绘制_第1页
第1页 / 共14页
面向对象的方法及uml图的绘制_第2页
第2页 / 共14页
面向对象的方法及uml图的绘制_第3页
第3页 / 共14页
面向对象的方法及uml图的绘制_第4页
第4页 / 共14页
面向对象的方法及uml图的绘制_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《面向对象的方法及uml图的绘制》由会员分享,可在线阅读,更多相关《面向对象的方法及uml图的绘制(14页珍藏版)》请在金锄头文库上搜索。

1、面向对象的方法及 UML 图的绘制一、 面向对象方法的产生与发展1. 面向对象方法的起源面向对象的方法起源于面向对象的编程语言(简称为 OOPL) 。50 年代后期,在用FORTRAN 语言编写大型程序时,常出现变量名在程序不同部分发生冲突的问题。鉴于此,ALGOL 语言的设计者在 ALGOL60 中采用了以BeginEnd 为标识的程序块,使块内变量名是局部的,以避免它们与程序中块外的同名变量相冲突。这是编程语言中首次提供封装(保护)的尝试。此后程序块结构广泛用于高级语言如 Pascal 、Ada、C之中。60 年代中后期,Simula 语言在 ALGOL 基础上研制开发,它将 ALGOL

2、的块结构概念向前发展一步,提出了对象的概念,并使用了类,也支持类继承。70 年代,Smalltalk语言诞生,它取 Simula 的类为核心概念,它的很多内容借鉴于 Lisp 语言。由 Xerox 公司经过对 Smautalk72、76 持续不断的研究和改进之后,于 1980 年推出商品化的,它在系统设计中强调对象概念的统一,引入对象、对象类、方法、实例等概念和术语,采用动态联编和单继承机制。2. 面向对象方法的进一步发展从 80 年代起,人们基于以往巳提出的有关信息隐蔽和抽象数据类型等概念,以及由 Modula2、 Ada 和 Smalltalk 和等语言所奠定的基础,再加上客观需求的推动,

3、进行了大量的理论研究和实践探索,不同类型的面向对象语言(如:Object-c、Eiffel、c+、Java、Object-Pascal 等)逐步地发展和建立起较完整的和雨后春笋般研制开发出来,OO 方法的概念理论体系和实用的软件系统。面向对象源出于 Simula,真正的 OOP 由 Smalltalk 奠基。Smalltalk 现在被认为是最纯的 OOPL。正是通过Smalltalk80 的研制与推广应用,使人们注意到 OO 方法所具有的模块化、信息封装与隐蔽、抽象性、继承性、多样性等独特之处,这些优异特性为研制大型软件、提高软件可靠性、可重用性、可扩充性和可维护性提供了有效的手段和途径。3.

4、 面向对象方法的应用普及80 年代以来,人们将面向对象的基本概念和运行机制运用到其它领域,获得了一系列相应领域的面向对象的技术。面向对象方法已被广泛应用于程序设计语言、形式定义、设计方法学、操作系统、分布式系统、人工智能、实时系统、数据库、人机接口、计算机体系结构以及并发工程、综合集成工程等,在许多领域的应用都得到了很大的发展。1986 年在美国举行了首届面向对象编程、系统、语言和应用(OOPSLA86) 国际会议,使面向对象受到世人瞩目,其后每年都举行一次,这进一步标志 OO 方法的研究已普及到全世界。二、 面向对象方法的基本概念及组成1. 基本概念面向对象Coad 和 Yourdon 给出

5、的定义:面向对象 =对象+类+继承+ 通信如果一个软件系统是使用这样 4 个概念设计和实现的,则我们认为这个软件系统是面向对象的。一个面向对象的程序的每一成份应是对象,计算是通过新对象的建立和对象之间的通信来执行的。对象对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。在对内的操作通常称为方法。一个对象请

6、求另一对象为其服务的方式是通过发送消息。类类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。消息消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变多态根据为请求提供服务的对象不同可以得到不同的行为,这种现象称为多态。在运行时对类进行实例化,并调用与实例化对象相应的方法,称为动态绑定、后期绑定或运行时绑定。相应地,如果方法的调用是在编译时确定的,则称为是静态绑定、前期绑定或编译时绑定。 通过在子类

7、中覆盖父类的方法实现多态。继承继承是使用既存类做为基础建立新类的技术。既存类称为基类、父类或超类,新类称为派生类或子类。子类除了拥有父类的属性和方法,还可以增加新的属性和方法。通过覆盖父类的方法,可以对继承来的方法进行修改,也可以禁用继承来的方法。方法客观世界是由各种各样的对象组成的,每种对象都有各自的内部状态和运动规律,不同对象之间的相互作用和联系就构成了各种不同的系统。在设计和实现一个客观系统时,在满足需求的条件下,把系统设计成一些不可变的(相对固定)部分组成的最小集合(最好的设计) 。这些不可变的部分就是所谓的对象。2. 组成面向对象的分析 OOAObject-Oriented Anal

8、ysis(面向对象分析方法)是确定需求或者业务的角度,按照面向对象的思想来分析业务。例如:OOA 只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。OOA 与结构化分析有较大的区别。OOA 所强调的是在系统调查资料的基础上,针对 OO 方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。面向对象的设计 OOD面向对象设计(Object-Oriented Design,OOD)方法是 OO 方法中一个中间过渡环节。其主要作用是对 OOA 分析的结果作进一步的规范化整理,以便能够被 OOP 直接接受。面向对象的程序 OOP面

9、向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。三、 面向对象方法的基本原理与思想从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在构造中尽可能运用人类的自然思维方式,强调直接以问题域中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点把他们抽象的表示为系统中的对象,作为系统的基本构成单位,这可以使系统直接的映射问题域,保持问题域中的事物与其相关系的本来面貌。面向对象的思想就是把他们抽象。对于面向对象方法所提倡的原则,各种 OO

10、A 方法遵从的程度有所不同,例如有的方法不体现数据与操作的封装,有的方法不支持操作的继承。四、 面向对象方法的基本步骤1. 分析确定在问题空间和解空间出现的全部对象及其属性;2. 确定应施加于每个对象的操作,即对象固有的处理能力;3. 分析对象间的联系,确定对象彼此间传递的消息;4. 设计对象的消息模式,消息模式和处理能力共同构成对象的外部特性;5. 分析各个对象的外部特性,将具有相同外部特性的对象归为一类,从而确定所需要的类;6. 确定类间的继承关系,将各对象的公共性质放在较上层的类中描述,通过继承来共享对公共性质的描述;7. 设计每个类关于对象外部特性的描述;8. 设计每个类的内部实现(数

11、据结构和方法) ;9. 创建所需的对象(类的实例) ,实现对象间应有的联系(发消息) 。五、 面向对象方法的特征及优缺点1. 主要特征封装性封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力) ,而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。继承性继承性是子类自动共享父类之间数据和方法的机制。它由类的派

12、生功能体现。一个类直接继职其它类的全部描述,同时可修改和扩充。继职具有传达室递性。继职分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类) 。类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。多态性对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print 消息被发送给一图或表时调用的打印方法与将同样的 Print 消息发送给一正

13、文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在 OOPL 中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。综上可知,在 OO 方法中,对象和传递消息分别表现事物及事物间相互联系的概念。类和继承是是适应人们一般思维方式的描述范式。方法是允许作用于该类对象上的各种操作。这种对象、类、消息和方法的程序设计范式的基本点在于对象的封装性和类的继承性。通过封装能将对象的定义和对象的实现分开,通过

14、继承能体现类与类之间的关系,以及由此带来的动态联编和实体的多态性,从而构成了面向对象的基本特征。2. 优点使人们的编程与实际的世界更加接近,所有的对象被赋予属性和方法,结果编程就更加富有人性化。1) 面向对象的方法更接近于人类的自然思维,更容易被理解和运用。2) 系统分析、系统设计及实现之间采用同样的角度看待问题甚至同样的表示方法来描述间题,它们之间的连接是自然的无缝连接。3) 面向对象的方法将对象的属性及服务视为一个整体。这更符合客观世界的规律,从而使其理解与实现起来更加容易,进一步减少维护的费用。4) 继承的方法一方面符合客观世界的规律,一方面加强代码重用的可能性,提高了软件开发效率。5)

15、 信息隐蔽原理使系统在变化的环境中有良好的适应性,从而使整个系统更加稳定和易于维护。3. 缺点就 C+ 而言,由于面向更高的逻辑抽象层,使得 C+ 在实现的时候,不得不做出性能上面的牺牲,有时候甚至是致命的。此外,面向对象的方法不易用于大型系统的开发。六、 UML 图的绘制方法UML 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。在系统分析阶段,我们一般用 UML 画很多图,包括用例图、状态图、类图、活动图、序列图、协作图、构建图、配置图等等,要画哪些图根据

16、具体情况而定。UML 的作用就是用很多图从静态和动态方面来全面描述我们要开发的系统。1. UML 的特点(1)统一标准 UML 不仅统一了 Booch、 OMT 和 OOSE 等方法中的基本概念,还吸取了面向对象技术领域中其他流派的长处,其中也包括非 OO 方法的影响。已经成为OMG 的标准。 (2)面向对象 UML 支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。(3)可视化,表达能力强大UML 是一种图形化语言,用 UML 的模型图形能清晰地表示系统的逻辑模型或实现模型。UML 还提供了语言的扩展机制,用户可以根据需要增加定义自己的构造型、标记值和约束等。 (4)独立于过程 UML 是系统建模的语言,不依赖特定的开发过程。(5) 容易掌握使用 UML 概念明确,建模表示法简洁明了,图形结构清晰,容易掌握使用。 (6)与编程语言的关系 支持 UML 的一些 CASE 工具(如 Rose)可以根据 UML 所建立的系统模型自动产生 Java、 C+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号