当前位置:
文档之家› 第六章 面向对象的分析和设计方法
第六章 面向对象的分析和设计方法
• 面向对象方法的基本思想是从现实世界中客观存 在的事物出发来构造软件系统,并在系统构造中 尽可能运用人类的自然思维方式。
2019/11/28
软件工程导论之面向对象设计
4
6.1 面向对象方法 6.1.1面向对象方法概述
1.面向对象方法的主要特点
(1) 从问题域中客观存在的事物出发来构造软 件系统,用对象作为对这些事物的抽象表示, 并以此作为系统的基本构成单位。
• 主动对象的作用是描述问题域中具有主动行为 的事物以及在系统设计时识别的任务,主动服 务描述相应的任务所应完成的操作。
• 在系统实现阶段,主动服务应该被实现为一个 能并发执行的、主动的程序单位,例如进程或 线程。
2019/11/28
软件工程导论之面向对象设计
26
6. 2 面向对象的分析
6.2.1面向对象分析基本过程及原则 6.2.2确定对象与类 6.2.3确定属性 6.2.4定义服务 6.2.5对象间通信
5. 封装性 • 封装是一种信息隐蔽技术,用户只能见到对象封
装界面上的信息,对象内部对用户来说是隐蔽的。 • 封装的目的在于将对象的使用者和对象的设计者
分开,使用者不必知道行为实际的细节,只须用 设计者提供的消息来访问该对象。
2019/11/28
软件工程导论之面向对象设计
21
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
若干比较简单的事物的组装体 ④ 关联:关联又称为组装
2019/11/28
软件工程导论之面向对象设计
30
6. 2 面向对象的分析 6.2.1面向对象分析基本过程及原则
2. OOA主要概念的表示法及OOA主要原则 (2)OOA的主要原则 ⑤ 消息通信:这一原则要求对象之间只能通过
消息进行通信 ⑥ 粒度控制:面对一个复杂的问题域时,不可
软件工程导论之面向对象设计
23
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
6. 结构与连接 (3)实例连接
实例连接反映了对象与对象间的静态关系。 (4)消息连接
消息连接描述对象之间的动态联系,即若一个 对象在执行服务时,需要通过消息请求另一个 对象为它完成某个服务,则说第一个对象与第 二个对象之间存在着消息连接。
(1)面向对象的分析 面向对象分析(OOA)强调直接针对问题域中 客观存在的各项事物建立OOA模型中的对象。
2019/11/28
软件工程导论之面向对象设计
10
6.1 面向对象方法 6.1.2面向对象的软件工程
(2)面向对象的设计 OOD则是针对系统的一个具体的实现运用OO方 法。其中包括两方面的工作,一是把OOA模型 直接搬到OOD(不经过转换,仅作某些必要的 修改和调整),作为OOD的一个部分;二是针 对具体实现中的人机界面、数据存储、任务管理 等因素补充一些与实现有关的部分。
2019/11/28
软件工程导论之面向对象设计
11
6.1 面向对象方法 6.1.2面向对象的软件工程
(3)面向对象的编程 面向对象的编程(OOP)又称作面向对象的实现 (OOI)。 OOP工作就是用同一种面向对象的 编程语言把OOD模型中的每个成分书写出来。
2019/11/28
软件工程导论之面向对象设计
12
6.1 面向对象方法 6.1.2面向对象的软件工程
(4)面向对象的测试 面向对象的测试(OOT)是指:对于用OO技术 开发的软件,在测试过程中继续运用OO技术, 进行以对象概念为中心的软件测试。
2019/11/28
软件工程导论之面向对象设计
13
6.1 面向对象方法 6.1.2面向对象的软件工程
能在同一时刻既能纵观全局,又能洞察秋毫 。 ⑦ 行为分析:现实世界中事物的行为是复杂的。
2019/11/28
软件工程导论之面向对象设计
31
6. 2 面向对象的分析 6.2.2 确定对象与类
1.确定对象 (1)问题域和系统责任 问题域和系统责任是发现对象的根本出发点。 (2) 正确地运用抽象原则 紧紧围绕系统责任这个目标去进行抽象。 (3) 策略与启发 从问题域、系统边界和系统责任三个方面,考虑
作序列。
2019/11/28
软件工程导论之面向对象设计
15
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
2. 消息和方法 (1) 消息
消息就是向对象发出的服务请求,它应含有提供服 务的对象标识、服务标识、输入信息和回答信息。
• 消息的接收者是提供服务的对象。
• 消息的发送者是要求提供服务的对象或其他系统成 分。
• 消息的形式用消息模式表示,一个消息模式定义了 一类消息,它可以对应内容不同的消息。
2019/11/28
软件工程导论之面向对象设计
面向对象的基本概念和特征
2. 消息和方法 (2)方法
把所有对象分成各种对象类,每个对象类都有一组 所谓的方法,它们实际上是类对象上的各种操作。
2019/11/28
软件工程导论之面向对象设计
24
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
7. 多态性
• 对象的多态性是指在一般类中定义的属性或服 务被特殊类继承之后,可以具有不同的数据类 型或表现出不同的行为。
• 支持多态性的实现的语言应具有下述功能:
(1) 重载:在特殊类中对继承来的属性或服务进行 重新定义。
软件工程导论之面向对象设计
7
6.1 面向对象方法 6.1.1面向对象方法概述
2. 面向对象的定义 (1) 一种使用对象(它将属性与操作封装为一体)、
消息传送、类、继承、多态和动态绑定来开发问 题域模型之解的范型。 (2) 一种基于对象、类、实例和继承等概念的技术。 (3) 用对象作为建模的原子。
2019/11/28
6.1.1面向对象方法概述 6.1.2面向对象的软件工程(OOSE) 6.1.3面向对象的基本概念和特征
2019/11/28
软件工程导论之面向对象设计
3
6.1 面向对象方法 6.1.1面向对象方法概述
• 面向对象不仅是一些具体的软件开发技术与策略, 而且是一整套关于如何看待软件系统与现实世界 的关系,以什么观点来研究问题并进行求解,以 及如何进行系统构造的软件方法学。
2019/11/28
软件工程导论之面向对象设计
17
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
3. 类和类层次 (1)类
在OO方法中,类的定义是具有相同属性和服务的 一组对象的集合,它为属于该类的全部对象提供 了统一的抽象描述,其内部包括属性和服务两个 主要部分。
2019/11/28
2. OOA主要概念的表示法及OOA主要原则
(1) OOA主要概念
① 对象、类:必要时可区分主动对象并用不同的 类符号表示。
② 属性:必要时可区分类属性和对象属性。
③ 服务:对于主动对象,应标出主动服务。
④ 结构:分为一般/特殊结构和整体/部分结构。
⑤ 连接:包括实例连接和消息连接。
⑥ 主题:指导读者理解大型而复杂的对象模型。
(2) 事物的静态特征是可以用一些数据来表达 的特征,可以用对象的属性表示,事物的动 态特征(即事物的行为)用对象的服务(或 操作)表示。
(3) 对象的属性与服务结合为一个独立的实体, 对外屏蔽其内部细节,称作封装。
2019/11/28
软件工程导论之面向对象设计
5
6.1 面向对象方法 6.1.1面向对象方法概述
软件工程导论之面向对象设计
18
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
3. 类和类层次 (2)类层次结构
一个类的上层可以有超类,下层可以有子类,形成 一种层次结构。这种层次结构的一个重要特点是继 承性,一个类继承其超类的全部描述。
2019/11/28
软件工程导论之面向对象设计
19
22
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
6. 结构与连接 (1) 一般/特殊结构
一般/特殊结构又称作分类结构,是一组有一般 /特殊关系的类所组成的结构。 (2)整体/部分结构 整体/部分结构又称为组装结构,它描述对象之 间的组成关系,即一个对象是另一个对象的组 成部分。
2019/11/28
第六章 面向对象设计
主讲:任向民
2019/11/28
软件工程导论之面向对象设计
1
本次课主要内容
6 .1 面向对象方法 6. 2 面向对象的分析 6. 3 面向对象设计 6. 4实时软件设计 6. 5软件复用 6. 6用户界面的设计
2019/11/28
软件工程导论之面向对象设计
2
6.1 面向对象方法
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
4. 继承性 • 继承性是自动地共享类、子类和对象中的方法和
数据的机制。 • 特殊类的对象拥有其一般类的全部属性与服务,
称作特殊类对一般类的继承。继承意味着自动地 拥有,或隐含地复制。
2019/11/28
软件工程导论之面向对象设计
20
6.1 面向对象方法 6.1.3 面向对象的基本概念和特征
2019/11/28
软件工程导论之面向对象设计
27
6. 2 面向对象的分析 6.2.1面向对象分析基本过程及原则
1.分析问题的层次 面向对象分析大体上按照下列顺序进行:
① 主题层(也称为范畴层) ② 类&对象层
结构层 ③ 属性层 ④ 服务层
2019/11/28
软件工程导论之面向对象设计
28
6. 2 面向对象的分析 6.2.1面向对象分析基本过程及原则
(2)动态绑定:在运行时根据对象接收的消息动态 地确定要连接哪一段服务代码。