当前位置:文档之家› 第9章 面向对象方法学引论(new)

第9章 面向对象方法学引论(new)


9.4.1 类图的基本符号 2. 定义属性
UML描述属性的语法格式如下: [可见性] 属性名: 类型名=初值 {性质串} ——属性的[可见性]:
公有的(public) (+) 、 私有的(private) (-) 保护的(protected) (#) 注意: 没有默认的可见性。

9.2 面向对象的概念



对象 类 类间关系 消息与事件 多态性
9.2 面向对象的概念

对象 在解空间 (计算机系统) 中,对象的非严格记法:

<对象> ::= <接口,数据,行为>
接口 数据
通信消息 行为 接口
对象
9.2 面向对象的概念


对象的基本特征
每个对象均有自己的惟一标识,从而区别于其他对象。 对象之间通过消息进行通信。 对象总是处于一定的状态。 对象有若干种行为。 对象的行为分为三类:创建新对象、与其他对象通信、 改变自身状态。 对象的状态只能被自身的行为所改变。
9.2 面向对象的概念

类间关系

继承 (inheritance) 聚合 (aggregation) 关联 (relationship)
9.2 面向对象的概念

继承的含义

继承是一种“求同存异”的高度抽象方式

相关术语


超类 (super-class) / 父类 (parent class) / 祖先类 (ancestor class) 子类 (sub-class) / 后裔类 (descendant class) 一般化 (generalization) 具体化 (specialization)
(2) 面向对象
UML还吸取了面向对象技术领域中其他流派的长处。UML符号表示 考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极 少使用的符号,也添加了一些新符号。 9.3 面向对象建模
(3) 可视化、表示能力强
系统的逻辑模型或实现模型都能用 UML 模型清晰的表示,可用于 复杂软件系统的建模。
(4) 独立于过程
UML是系统建模语言,独立于开发过程。
(5) 易掌握、易用
由于UML的概念明确,建模表示法简洁明了,图形结构清晰,易于 掌握使用。
9.4 对象模型
对象模型表示静态的、结构化的系统的“数据” 性质。它是对模拟客观世界实体的对象以及对 象彼此间的关系的映射,描述了系统的静态结 构。
用UML表达的对象模型由类图(类和类间关系)构 成.

9.2 面向对象的概念

继承的分类

单继承 多继承

多继承使类层次复杂化 多继承容易产生配置控制方面的潜在问题

继承的图形记法
一般化
具体化
9.2 面向对象的概念

一般化、具体化、继承等术语均是复用思想的体现 一般化和具体化是对同一个类间关系的不同角度审视

父类是子类的一般化 (从父类角度出发) 子类是父类的具体化 (从子类角度出发)
9.2 面向对象的概念

类的两种图形记法:
类名 属性: 操作 属性: 操作:
9.2 面向对象的概念

对象

状态:张三,30岁,计算机系,讲师,1000元 行为:提职称,调工资

类 (教师)

属性:姓名,年龄,系别,职称,工资 操作:提职称,调工资 方法 (指操作的具体代码实现)

实际上,类是创建对象的模板!
--意义

允许每个对象以自己最合适的方式去响应共同的消 息,从而增强软件的灵活性和可复用性。
9.2 面向对象的概念

多态性的示例
游戏中每个对象被双击点击就回答我是谁。
战斗单位
战士
武器
侦察兵
伞兵
飞机
大炮
9.3 面向对象建模
建立问题模型是人们理解表达问题的方法之一。 模型是对事物作出的一种抽象,是对事物的一
9.4.1 类图的基本符号
图9.5 表示类的图
9.4.1 类图的基本符号
为类命名时应该遵守以下几条准则: (1) 使用标准术语。 例如,“交通信号灯”比“信号单元”这个名字好, “传送带”比“零件传送设备”好。 (2) 使用具有确切含义的名词。 例如,“库房”比“房屋”或“存物场所”更确切。 (3) 必要时用名词短语作名字。 例如,“最小的领土单元”、“储藏室”、“公司员 工”等都是比较恰当的名字。 总之,名字应该是富于描述性的、简洁的而且无二义性的。

继承强调一般化 / 具体化关系中共享属性和操作的机制
9.2 面向对象的概念

聚合的含义

聚合表示“部分——整体”关系
9.2 面向对象的概念

聚合的图形记法
9.2 面向对象的概念

关联的含义

对象实例之间的物理或概念联结被称为链 关联是对一组语义与结构相似的链的抽象 链是关联的实例 项目 ◆ 语言
2001年 计划的重要修订 文字上的修改 没有显著的技 术变化
<documents> UML 1.1 <documents> UML1.0
精华相关
<documents> UML 0.9
<documents> Unified Method 0.8
文档版类
面向对象建模
(1) 统一标准
UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的 正式标准,提供了标准的面向对象的模型元素的定义和表示。
UML(Unified Modeling Language)产生于90年代中期。 它不仅统一了Booch、OMT和OOSE方法中的概念和表 示法,而且对其作了进一步扩展,最终成为在面向对象 技术领域占主导地位的、并被大众所接受的标准建模语 言。 1、UML概述 UML的发展历程(下图) UML是一个通用的标准建模语言,可以对任何具有静态 结构和动态行为的系统进行可视化建模。UML不是一个 开发过程,也不是一个方法,但允许任何一种开发过程 和面向对象方法使用它。
在不同的应用问题中,这3种模型的相对重要程度会有 所不同,对象模型始终都是最重要、最基本、最核心的。 典型的软件系统组合了上述3方面内容: 使用数据结构(对象模型),执行操作(动态模型),并且完 成数据值的变化(功能模型)。 本课程介绍UML作为描述这些模型的语言.
9.3 面向对象建模
统一建模语言UML

9.3 面向对象建模
2000年 (计划的较小修订)
1999
<documents> UML 1.4 <documents> UML 1.3 <documents> UML 1.2 <documents> UML 2.0
1998 1997年9月最后 提交给OMG 1997年1月最 初提交给 OMG 1996 1995
第九章 面向对象方法学引论
9.1 9.2 9.3 9.4 9.5 9.6 9.7 面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型 3种模型之间的关系
9.1 面向对象方法学概述
-- 传统的软件工程方法学应用于大型软件产品的开发 时,似乎很少取得成功。 -- 源于20世纪60年代后期出现的面向对象编程语言 Simula-67(类和对象的概念),逐步形成了面向对象 方法学 。到了20世纪90年代,面向对象方法学已经 成为人们在开发软件时首选的范型。
9.1 面向对象方法学概述
与传统方法相反,面向对象方法是一种以数据 或信息为主线,把数据和处理相结合的方法。 面向对象方法把对象作为由数据及可以施加在 这些数据上的操作所构成的统一体。 对象与传统的数据有本质区别,它不是被动地 等待外界对它施加操作,相反,它是进行处理 的主体。

9.1 面向对象方法学概述
9.4.1 类图的基本符号
类图描述类及类与类之间的静态关系。类图是一种 静态模型,它是创建其他UML图的基础。一个系统 可以由多张类图来描述。 1. 定义类 UML中类的图形符号为长方形,用两条横线把长方 形分成上、中、下3个区域(下面两个区域可省 略),3个区域分别放类的名字、属性和服务,如 图9.5所示。
9.2 面向对象的概念



在问题空间中……
类代表着具有类似性质的一组对象 类中的每一个对象即为类的不同实例 (instance)
在解空间 (计算机系统) 中……



类是对一组对象的抽象,集中了该组对象的共同特性。 在构造软件时,类实际上是具有特定功能的模块,其代码由该 种所有对象所共享。 类 vs. 对象:静 vs. 动。
9.1 面向对象方法学概述

面向对象的方法学可以用下列方程来概括:
OO=objects +classes +inheritance +communication with messages
面向对象就是既使用对象又使用类和继承等机 制,而且对象之间仅能通过传递消息实现彼此 通信。 也可以说,只有同时使用对象、类、继承和消 息的方法,才是真正面向对象的方法。
面向对象方法是一种新的思维方法,它是把程 序看作是相互协作而又彼此独立的对象的集合。 这样就减小了语义断层:系统中解空间对象可以 直接模拟问题空间的对象,解空间与问题空间 的结构十分一致。

9.1 面向对象方法学概述
面向对象方法具有下述4个要点: (1)认为客观世界是由各种对象组成的,任何事物都 是对象,复杂的对象可以由比较简单的对象以某种 方式组合而成。因此,面向对象的软件系统是由对 象组成的。 (2)把所有对象都划分成各种对象类,每个对象类 都定义了一组数据和一组方法。数据用于表示其静 态属性,是其状态信息。方法是允许施加于该类对 象上的操作,是该类所有对象共享的,并不需要为 每个对象都复制操作的代码。
相关主题