面向对象-消息与依赖

合集下载

面向对象程序设计中的消息传递机制研究

面向对象程序设计中的消息传递机制研究

面向对象程序设计中的消息传递机制研究随着计算机技术的不断发展,面向对象程序设计成为了当今程序设计领域中的主流方法之一。

在面向对象程序设计中,消息传递机制是非常重要的概念,它是面向对象程序设计中的核心思想之一。

本文将从三个方面对面向对象程序设计中的消息传递机制进行研究。

一、什么是消息传递机制?消息传递机制是面向对象编程中实现对象之间交互的一种方式。

在传统的面向过程编程中,程序通过函数调用来实现不同模块之间的交互。

但是在面向对象编程中,每个对象都是自包含的,这时候就需要引入一种新的交互方式。

这种方式就是消息传递。

消息是一些对象引用的一些数据或命令的组合。

消息可以传递给一个单独的对象,也可以广播到多个对象。

在消息传递机制中,对象不直接调用其他对象中的方法,而是通过发送消息的方式来通知其他对象执行操作。

每个对象都有自己的线程,当一个对象收到消息时,它会在自己的线程上对消息进行处理。

二、消息传递机制的优点和缺点使用消息传递机制具有以下优点:1. 解耦合。

消息传递机制在对象之间建立了一条松散的连接,对象之间变得独立。

这意味着一个对象的改变不会对其他对象产生影响。

2. 可扩展性。

消息传递机制使得程序的各个部分可以灵活地添加、移除或者替换,从而能够实现更大的程序的功能变化。

3. 可靠性。

由于任务在对象上运行,对象的状态完全被封装,所以可以保证操作的可靠性。

但是消息传递机制也存在以下缺点:1. 性能问题。

消息传递机制可能引入额外的开销,由于消息的传递需要带来一些处理时间,可能会降低程序的运行速度。

2. 建立对象需要时间。

由于每个对象都需要建立一个自己的线程,所以当有大量对象时会大量消耗时间。

三、消息传递机制的实现方法消息传递机制可以用于单进程内部,也可以用于不同进程之间的通信。

下面介绍一下消息传递机制的实现方法:1. 基于共享内存的消息传递在同一个进程内部的不同对象之间通信时,采用基于共享内存的消息传递是一个常见的方式。

面向对象编程思想

面向对象编程思想

面向对象编程思想面向对象是一种新兴的程序设计方法,或者说它是一种新的程序设计范型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。

它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。

这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。

它可以有不同层次的理解:从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。

因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。

这样建立起来的系统才能符合现实世界的本来面目。

从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。

它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。

从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。

这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。

面向对象面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。

面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。

如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。

面向对象技术概述

面向对象技术概述

1.1 知识要点1.面向对象技术的基本概念∙面向对象技术是以对象为基础、以事件或者消息来驱动对象执行处理的程序设计技术。

∙对象是包含客观事物特征的抽象实体,是属性和行为的封装体。

在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”这一公式来表达。

∙类是对具有相同属性和行为的一组对象的抽象描述。

∙事件是系统产生的动作或是运行应用程序产生的动作。

事件通过消息描述,消息是描述事件发生的信息。

∙消息是对象间交互的手段,是要求某个对象执行某个操作的规格说明。

2.面向对象技术的基本特征∙抽象性是指忽略事物中与当前目标无关的非本质特征,而强调本质特征的特征。

∙封装性是指把对象的属性和行为封装在一起,并尽可能隐藏对象的内部细节的特征。

∙继承性是指特殊类的对象拥有其一般类的属性和行为的类与类之间层次关系的特征。

∙多态性是指不同对象收到相同消息时可以产生多种不同的行为方式的特征。

【重点】∙面向对象技术的概念。

∙类与对象的概念及关系。

∙面向对象与面向过程程序设计的区别。

∙面向对象技术的基本特征。

面向对象技术与Visual C++学习指导2【难点】∙类与对象的概念。

∙面向对象与面向过程程序设计的区别。

∙面向对象技术的基本特征。

1.2 习题解答1.什么是面向对象技术?【问题解答】面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。

它具有抽象性、封装性、继承性及多态性。

2.面向对象与面向过程程序设计有什么不同?【问题解答】面向对象与面向过程程序设计有如下不同:(1)面向过程程序设计方法采用函数(或过程)来描述对数据的操作,但又将函数与其操作的数据分离开来;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理。

(2)面向过程程序设计方法以功能为中心来设计功能模块,难于维护;而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。

(3)面向过程程序的控制流程由程序中预定顺序来决定;面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际需要。

(完整版)软件工程 第五章 面向对象的需求分析

(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。

它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。

面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。

20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。

20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。

UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。

本章首先介绍面向对象的主要概念和思想。

在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。

第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。

Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。

如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。

一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。

1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。

可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。

对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。

例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。

图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。

面向对象分析模型总结

面向对象分析模型总结

2
主要原则
(1)抽象 什么叫抽象? OO方法广泛地运用抽象原则,例如: ·系统中的对象是对现实世界中事物的抽象, ·类是对象的抽象, ·一般类是对特殊类的进一步抽象, ·属性是事物静态特征的抽象, ·操作是事物动态特征的抽象。 过程抽象 任何一个完成确定功能的操作序列,其使用者都 可把它看作一个单一的实体,尽管实际上它可能 是由一系列更低级的操作完成的。 数据抽象 根据施加于数据之上的操作来定义数据类型,并 限定数据的值只能由这些操作来修改和观察。
汽车
奖杯
钟表
操作员 职员
天平 楼房 飞机
起重机
23
如何发现参与者 ——考虑人员、设备、外系统
人员—— 系统的直接使用者 直接为系统服务的人员 设备—— 与系统直接相联的设备 为系统提供信息 在系统控制下运行 不与系统相连的设备 × 计算机设备 × 外系统—— 上级系统 子系统 其它系统
24
用况(use case)
7
基本模型——类图 面向对象的建模中最重要、最基本的模型图 集中而完整地体现了面向对象的概念 为面向对象的编程提供了直接、可靠的依据 可以从三个层次来看
对象层
需求模型——用况图 每个用况是一项系统功能使用情况的 说明,把每一类参与者对每一项系统 功能的使用情况确切地描述出来,便 全面地定义了系统的功能需求
数据接口部分设计
构件化与系统部署
向OOP输出OOD模型
12
OOA与OOD的关系
一致的概念与表示法 OOA和OOD采用一致的概念和表示法,从而不存在分析与 设计之间的鸿沟。 不同的内容、目标和抽象层次
OOA:研究问题域和用户需求,运用面向对象的观点发现 问题域中与系统责任有关的对象,以及对象的特征和相互 关系。目标是建立一个直接映射问题域,符合用户需求的 OOA模型。 OOD:在OOA模型基础上,针对选定的实现平台进行系统 设计,按照实现的要求进行具体的设计,目标是产生一个 能够在选定的软硬件平台上实现的OOD模型。 OOA模型:抽象层次较高,忽略了与实现有关的因素 OOD模型:抽象层次较低,包含了与实现平台有关的细节

信息系统工程概论课程重点项整理

信息系统工程概论课程重点项整理

信息系统整理第一章信息系统工程导论(概述)1.何谓信息系统?指利用信息技术,以计算机为主要处理工具的收集、传输、加工、存储信息,并能输出有用信息的系统。

6. 一般信息系统有哪些基本功能?(P10)常见的信息系统的基本功能如下:(1)信息收集:由人或其他环境设施输入数据(信息),为系统输入信息。

(2)信息存储:一般用数据库作为信息存储工具,具有管理大量数据集、提供从海量数据中快速检索指定信息的功能。

(3)信息加工:根据业务部门信息加工的要求,提供统计/分析/计算等信息处理功能。

(4)信息输出(查询/显示):根据人或系统的要求,输出有用的、可视化的信息。

(5)人机交互(界面):利用该功能,实现信息系统和人、应用环境之间进行信息交换,为人提供一个环境友好、使用便利的人机交互界面。

8.什么是信息系统工程?信息系统工程与一般系统工程有何区别?(P17-18)(1)定义:信息系统工程是按照工程学原理指导信息系统的构建过程,把信息系统的开发建设作为一项系统工程来管理,并且运用系统论和工程学的观点把信息系统的开发过程分为总体规划、系统分析、系统设计和系统实现等阶段。

(2)区别:信息系统工程具有一般系统的特征属性,可以用系统科学与系统工程学的基本理论和基本方法来指导。

同时,信息系统又是一种特定的计算机应用系统,具有一般计算机应用系统开发的特征属性。

信息工程技术已经形成了一系列软件开发技术规范、测试技术和管理方法,这些技术方法具有系统工程的思想,但又不完全一致。

10. 简述信息系统工程的方法论体系。

(P18-21)所谓方法论是指一组相关方法的集合。

信息系统工程方法论是系统工程方法在信息领域中的应用,其产生与发展主要源于信息系统工程的实践探索和理论总结。

它的主要内容涉及3个方面:(1)一般系统工程的通用方法。

(2)信息系统工程方法。

信息系统工程方法从工程实践的角度,根据应用范围和抽象程度可以划分为战略层、战役层和战术层3个不同层次。

面向对象技术(答案)

●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。

(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。

●面向对象技术中,对象是类的实例。

对象有三种成份:____(3)____、属性和方法(或操作)。

(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。

●在面向对象技术中,类属是一种__(1)__机制。

一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。

(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。

不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。

多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。

参数多态应用比较广泛,被称为最纯的多态。

这是因为同一对象、函数或过程能以一致的形式用于不同的类型。

包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。

过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。

即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。

强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。

简单的面向对象特征

11
写在最后
Thx 4 watching
12
Car
char car[] = engine+tyre+component;
printf(‚%s‛+‛driver‛+‛%s‛,man,car);}
3
面向过程到面向对象的进化
面向对象的伪代码:
class Person{ String name; int age;
void driver(Car car){
例如:开车
2
面向过程到面向对象的进化
Hale Waihona Puke 面向过程的类C代码:int main(){
Person
char man [] = ‘you’;
int age = 22; char engine[] = ‘das-auto’;
char tyre[] = ‘michelin’;
char component[] = ‘other’; char person[] = man+age;
7
继承和多态
继承:是指在某种情况下一个类会有子类。 子类比父类要更加具体(特殊)化。 例如:
8
多态原理
多态:是指由继承而产生的相关的不同的类 其对象对同一消息会做出不同的响应 即继承自同一基(父)类,但对于其同一 行为(方法)却存在不同的处理方式。 多态原理:多态依赖于动态(对象),在运行 期进行动态绑定,是面向对象的 最核心机制。 方法重载:只是一种语言特性,一种语法规 则,与多态无关,与面向对象也无关。
继承和多态:多态依赖于继承,多态使面向 对象有扩展性
5
类和对象
类:静态的,被定义的,对象的模版
对象:动态的,被实例的,类的具体实现

第4章 面向对象系统分析


33
4.1 面向对象的基本概念
单一继承和多重继承
34
4.1 面向对象的基本概念
多态(Polymorphism)
在父类中定义的属性或服务被子类继承后,可 以具有不同的数据类型或表现出不同的行为。
35
4.1 面向对象的基本概念
多态性表明同一个操作用于不同的对象上可以有不同
的解释,并产生不同的执行结果。
在面向对象开发模式中,把标识和模型化问题论域中
的主要实体做为系统开发的起点,主要考虑对象的行 为而不是必须执行的一系列动作;
• • • • • 对象是数据抽象与过程抽象的综合; 系统的状态保存在各个数据抽象的所定义的数据存储中; 控制流包含在各个数据抽象中的操作内; 消息从一个对象传送到另一个对象; 算法被分布到各种实体中。
39
4.1 面向对象的基本概念Fra bibliotek 组成结构实例
40
4.1 面向对象的基本概念
实例连接--关联关系
实例连接 实例连接表示对象之间的静态联系,它是通过对 象的属性来表现对象之间的依赖关系。 对象之间的实例连接称为链接(Link),存在实例连接 的对象类之间的联系称为关联(Association)。 „ has a „ 关联是一种结构关系,它描述了一组对象之间的连接, 关联具有多重性。
比较一下,实体关系图(ERD)中的关系和类图中的关联
实体关系图(关系型数据库) 类图(面向对象) 表(table) 类(class) 记录(record) 字段(field) 对象(object) 属性(attribute)
-关系(relationship)
操作(operation) 关联(association)
23

UML试题及答案 (8)

一、选择题1.类的结构是()。

(E)A.由代码来表示B.由属性和关系来表示C.由操作来表示D.由对象的交互来表示E.选项B和C2.类的行为是()。

(A)A.由一组操作决定B.由类的属性决定C.对类的每一个对象唯一的D.由父类决定E.选项A和B3.顺序图反映对象之间发送消息的时间顺序,它与()是同构的。

(C)A.用例图B.类图C.协作图D.状态图4.()定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现。

(A)A.用例图B.类图C.活动图D.状态图5.状态图包括()。

(E)A.类的状态B.状态之间的转换C.类执行的动作D.触发类的动作的事件E.所有以上选项6.下列属于状态的组成部分的有( AB )。

A.名称B.转移C.条件D.事件7.下列各种图可用于静态建模的有()。

(B)A.状态图B.类图C.序列图D.活动图8.下列不属于属性的可见性的是()。

(C)A.公有的B.私有的C.私有保护的D.保护的9.下面不属于用况之间关系的是()。

(A)A.友元B.扩展C.包含D.泛化10.通常对象有很多属性,下面仅能在对象内部访问的属性可见性限制是()。

(D)A.公有的(public)B.受保护的(protected)C.友员(friendly)D.私有的(private)11.在用况之间,会有三种不同的关系,下列不是用况之间关系的是()。

(D)A.包含(include)B.扩展(extend)C.泛化(generalization)D.关联(connect)12.在ATM自动取款机的工作模型中(用户通过输入正确的用户资料,从银行取钱的过程),下面不是“Actor”的是()。

(D)A.用户 B.ATM取款机 C.ATM取款机管理员 D.取款13.下面不是活动图中的基本元素的是()。

(D)A.状态、分支B.分叉、汇合C.泳道、对象流D.用况、状态14.在下面的图例中,哪个用来描述活动(activity)()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

定义:消息是对象之间在一次 并发系统的消息与顺序系统的消息有了很大不同,
表现在以下几个方面: 2.消息的同步与异步
同步消息:仅当发送者要发送一个消息而且接收者 已做好接受这个消息的准备时才能发送的消息。无 论发送者还是接收者,如发现对方未做好准备都必 须等待。 ② 异步消息:发送者不管接收者是否做好接收准备都 可以发送的消息称为异步消息。 ③ 阻断消息 ④ 限时消息
2:依赖对面向对象建模的作用
我们的建议是:
在面向对象的开发中,要原原本本的认识和表达经典的面向
对象理论所指出的类及对象之间的各种关系,即继承,聚合, 关联和消息,不要用那些语义含糊不清的所谓“依赖关系” 代替对类及对象之间这些基本关系的表达。
LOGO
1.1:顺序系统中的消息
在顺序系统中,“消息是向对象发出的操作请求”
这个定义是合适的。同时可以明确顺序系统中消 息的下述语法与语义特征: 在语法上,一个消息的描述应包括以下内容:消 息名,即接收消息的操作名;入口参数(0到多 个),及接收消息的操作要求的输入参数;返回 参数(0到多个),即接收消息的操作提供的输 出参数。 在语义上,一个消息应包括:发送者,这是通过 消息发送点的位置隐含表明的,不需要显示的表 示;接收者,是通过消息名表达的;其他需要传 送的信息,通过入口参数和返回参数表示。

1.2:并发系统中的消息
并发系统的消息与顺序系统的消息有了很大不同,
表现在以下几个方面: 5.消息的接收者是否唯一
把消息定向的发送给唯一的接收者,称为定向消息 ② 把消息发送给某个范围内所有可能的接收者,称为 广播消息。

1.2:并发系统中的消息
1.3:消息对OOA的意义
在运用面向对象方法构造的系统中,消息体现了对象行为
3:如何建立消息
2.建立控制流之间的消息 在前面的工作中已经理清了各个控制流,因而分析员能够
以这些从主动对象发源的控制流作为并发执行的单位,对 整个系统的动态执行情况进行全局的观察,从而发现这些 控制流之间需要那些消息。对每个控制流主要考虑以下问 题: 它在执行时,是否需要请求其他控制流中的对象为他 提供某种操作? 它在执行时,是否要向其他控制流中的对象提供或者 索取某种数据? 它在执行时,是否将产生某些可影响其他控制流执行 的事件? 各个控制流的并发执行,是否需要传递一些同步控制 信号? 一个控制流在何种情况下中止执行?如何唤醒?怎样 唤醒?
4:消息的规约
消息的规约包括对发送者和接收者两方面的说明。
在发送者的类规约中对每个发送消息的操作做以下说明:
指出这个操作在执行时可能发出的每一种消息,其内 容包括接收者的类名及操作名。 ② 说明操作者是与本操作顺序执行的还是并发执行的。 ③ 必要时说明该消息是同步的还是异步的,以及发送者 是否等待该消息的处理结果。 ④ 如果操作流程图是比较详细的,则应画出在什么位置 上发送什么消息。
之间的依赖关系。它是实现对象之间的动态联系,使系统 成为一个能运行的整体,并使各个部分能够协调工作的关 键因素。如同人体的神经,有了它,整个机体才能活动。 对顺序系统而言,OOA通过对消息的分析把所有的对象 操作串联在一起,在系统实现后,它们将在一个控制流中 顺序的执行。 在并发系统中,OOA把所有的对象组织到一些彼此并发 执行,但内部不再存在并发问题的控制流中。
2:消息的表示
2:消息的表示
在同一个对象内部的不同操作之间可能也需要传送消息。
这种情况是很常见的。 OOA模型主要用于表示不同类之间的关系,内部的消息 关系一般不需要在模型图中表示出来,只需要在每个类的 规约中指出它的每个操作需要向其他那些操作发送消息即 可。 但是,如果这种消息是发生在不同控制流之间,则应该在 模型图中显式的表示出来,因为控制流之间的消息往往被 用来传递重要的控制信息。

4:消息的规约
消息的规约包括对发送者和接收者两方面的说明。
在接收者的类规约中对每个操作做以下说明:
说明由这个操作接收和处理的每一种消息,规定消息 的格式和内容(称为消息协议)。内容包括消息名称, 输入与输出参数以及参数的数据类型。 ② 说明本操作是与发送者顺序执行的还是并发执行的。 ③ 必要时说明消息是同步的还是异步的。
传递的一种信息,例如人与人之间的对话,通信, 发通知,留言,交通信号灯对车辆和行人发出的信 号,人发给设备的遥控信号等,都可成为消息。 在软件系统中,消息这个术语较多的用于进程间的 通信。广义的理解,一个软件成分向其他软件成分 发出的控制信息或者数据信息,都可成为信息。一 个消息应具有发送者和接收者共同的语法与语义, 接收者在收到消息后,将按照其要求做出某种反应。
2:消息的表示
3:如何建立消息
1.建立控制流内部的消息



人为地模拟当前对象操作的执行 分析该消息的发送者与接收者在执行时是否属于同一 个控制流,从而辨别该消息是否在一个控制流内部。 在类规约中对当前操作的说明中指出由它发出的每一 种消息,给出接收者的类名和操作名;从当前操作所 在的类向所有接收消息的类画出消息连接线,用实线 封闭箭头表示控制流内部的消息,用虚线封闭箭头表 示控制流之间的消息。 沿着控制流内部的每一种消息追踪到接受该消息的对 象操作,重复进行以上的操作。
3:如何建立消息
3.对象分布问题及其对消息的影响
在面向对象的软件开发中,系统功能分布与数据分布都将
通过对象的分布来实现。分布问题对OOA的影响是: 在每一台处理机上分布的一组对象中,至少应该有一 个主动对象;所有的被动对象都是在本机的至少一个 主动对象的驱动下运行的。 分布在同一台处理机上的对象之间的消息通信,既可 能是一个控制流内部的,也可能是不同控制流之间的。 分布在不同处理机上的对象之间的消息通信则只能是 不同控制流之间的。 各种不同的消息在实现时所依赖的消息通信机制也有 所不同。

关于依赖关系的讨论
自从面向对象技术问世以来,大部分文献谈到对
象之间的关系,所关注的是继承,聚合,关联, 消息这四种关系;各种面向对象编程语言所支持 的,以及大部分面向对象的分析与设计方法所要 表达的,主要也是这四种关系。 然而在UML中却定义了另外一种关系,叫做依 赖。
1:什么是依赖
在UML出现之前,在几种经典的面向对象方法中只有

1.2:并发系统中的消息
并发系统的消息与顺序系统的消息有了很大不同,
表现在以下几个方面: 3.接收者对消息的不同响应方式
在消息产生之前,处理这个消息的控制流并不存在; 仅当发送者发出这个消息时才立刻创建一个控制流 来响应这个消息,完成它要求的操作。 ② 处理信息的控制流已经存在,并且与发送者同步的 接收消息。接到消息立刻处理。 ③ 接收者异步地接收与处理消息,即在消息发出之后 的某个时刻才接收与处理该消息。 ④ 某些消息所指出的接收者可能并不关心这种消息, 也不作任何回应。
2:依赖对面向对象建模的作用
UML起源于多种面向对象方法的融合,然而他的发展却超出
了面向对象建模的范围。它被定名为“建模语言”,而不是 “面向对象建模语言”,因此它可以把任何与建模问题有关 概念包含进来,不管这些概念是不是面向对象的。诚然,面 向对象的系统建模仍然是UML支持的主要目标,但是UML 也提供了许多非面向对象的概念,依赖就属于这种情况。 从目前的应用状况来看,依赖的概念和表示法在一些工程项 目中被用得很滥,很粗糙。人们随便就可以在两个块之间画 一个虚线箭头,表示它们一个依赖另一个。至于是什么样的 依赖则不甚了然。在面向对象的建模中,人们常常满足于用 这样一些语焉不详的虚线箭头把图中的类符号连接起来,是 整个图看起来像是一个模型了,从而代替了发现类及对象之 间各种基本关系的努力,也不去深究这些“依赖关系”的确 切含义。
1.2:并发系统中的消息
1.2:并发系统中的消息
并发系统中的消息有两种情况: 发生在控制流内部的情况。 发生在控制流之间的情况。
1.2:并发系统中的消息
并发系统的消息与顺序系统的消息有了很大不同,
表现在以下几个方面: 1.消息的多种用途
向接收者发出一个服务请求 ② 向接收者提供一些数据 ③ 向接收者发布一个通知或事件信息 ④ 向接收者发布一个同步控制信号
LOGO
第四小组讲义
组员:任万春
朱雪刚
消息
学习目标:介绍如何分析和认识对象之间在行为
上的依赖关系,并通过消息来表示这种关系,从 而使OOA模型最终成为一个有机的整体。
主要内容
1:什么是消息 2:如何表示消息 3:如何建立消息 4:消息的规约
1:什么是消息
在现实生活中,消息通常指的是人或其他事物之间

1.2:并发系统中的消息
并发系统的消息与顺序系统的消息有了很大不同,
表现在以下几个方面: 4.发送者对消息处理结果的不同期待方式
发送者在发出消息之后等待,直至得到处理结果才 继续原先的工作。 ② 发送者不等待处理结果,发出消息后立刻继续执行, 只是在以后的某个执行点或某种时机查看消息的处 理结果。 ③ 发送消息后,发送者既不等待,也不再关心其处理 结果。
1.1:顺序系统中的消息
1.1:顺序系统中的消息
顺序系统中,对象之间的关系具有下述特点: 每个消息都是向对象发出的一个服务请求,它
将引起接收者的一个操作的执行。 除了唯一的主动对象含有唯一的主动操作之外, 其他的对象操作都是被动的,他们只有在接收 到消息时才开始执行。 每个消息的发送和执行都是同时进行的,即消 息都是同步的。 整个系统中所有的操作都是串行的。
1.1:顺序系统中的消息
顺序系统中的一切操作都是顺序执行的。它的
OOA模型只有一个主动对象(并且这个主动对 象只有一个主动操作)其余的对象都是被动对象。 实现之后的系统在运行时,将之对应一个处理机 调度单位(进程及线程)。 系统从唯一的主动对象的主动操作开始,当它需 要其他对象(被动对象)的某个操作为它完成某 项工作时,就向它发送一个消息,控制点转移到 接收消息的对象操作,使这个操作开始执行。
相关文档
最新文档