软件工程电子课件第7章 面向对象方法学
合集下载
第7章面向对象的程序设计PPT课件

在大型软件系统设计中,由于软件系统本身的复杂 性,要求必须许多人通力合作,采用工程化的方法进 行开发和管理,这也对程序设计语言和程序设计方法 提出了更高的要求。
通过使用结构化程序设计方法,可以对整个任务进 行清晰严格的划分,使每个程序员能明确了解自己的 工作任务以及与他人的接口。
每个程序员可以独立地设计调试自己负责的模块, 最终各模块也能够顺利地集成到整个系统中去。
§7.2.3 面向对象程序设计的特性(4)
3.继承性
例如,由基本类型的电话(拨号、讲话、听音 功能),可以派生出电话传真机、移动电话、 公用投币电话等,这些电话都继承了电话基本 类型的拨号、讲话、听音功能,又添加了各自 的独特功能。
由于有了继承性,当把基本类型的电话由拨 号改为按键,其它类型的电话都可以改为按键, 继承性使我们不必研究每种电话如何实现按键。
§7.2 面向对象程序设计的基本概念
面向对象技术为软件开发提供了一种新的思 想,引入了许多新的概念,这些概念是理解和 使用面向对象技术的基础和关键。
§7.2.1 对象(Object)(1) 现实世界的实体——事、物、概念等,都统
称为对象。在面向对象系统中一切成份都是对 象,大到整个系统、项目、数据库、表、表单, 小到窗口、控件都被视为对象。
§7.2.3 面向对象程序设计的特性(1)
与结构化程序设计相比,面向对象程序设计 有许多突出特性,即抽象性、封装性、继承性 和多态性。
1.抽象性
一般而们所关心的或认为重要的信息,而 将不重要的信息予以忽略。
例,我们对电话的认识已经抽象化了,拨号、 讲话、听音这就是我们印象中的电话,而不关 心和了解电话内部的线路和工作原理。
视图窗口的位置、大小、和颜色都是视图 对象的“属性”;对视图的修改操作后, 将数据替换源表,是视图对象的“方法”; 当数据修改完用鼠标点动关闭视图按钮, 就产生关闭视图的“事件”,视图对象接 收到这个关闭动作(事件)后,就会执行 另一方法程序将视图数据发送回源表。
通过使用结构化程序设计方法,可以对整个任务进 行清晰严格的划分,使每个程序员能明确了解自己的 工作任务以及与他人的接口。
每个程序员可以独立地设计调试自己负责的模块, 最终各模块也能够顺利地集成到整个系统中去。
§7.2.3 面向对象程序设计的特性(4)
3.继承性
例如,由基本类型的电话(拨号、讲话、听音 功能),可以派生出电话传真机、移动电话、 公用投币电话等,这些电话都继承了电话基本 类型的拨号、讲话、听音功能,又添加了各自 的独特功能。
由于有了继承性,当把基本类型的电话由拨 号改为按键,其它类型的电话都可以改为按键, 继承性使我们不必研究每种电话如何实现按键。
§7.2 面向对象程序设计的基本概念
面向对象技术为软件开发提供了一种新的思 想,引入了许多新的概念,这些概念是理解和 使用面向对象技术的基础和关键。
§7.2.1 对象(Object)(1) 现实世界的实体——事、物、概念等,都统
称为对象。在面向对象系统中一切成份都是对 象,大到整个系统、项目、数据库、表、表单, 小到窗口、控件都被视为对象。
§7.2.3 面向对象程序设计的特性(1)
与结构化程序设计相比,面向对象程序设计 有许多突出特性,即抽象性、封装性、继承性 和多态性。
1.抽象性
一般而们所关心的或认为重要的信息,而 将不重要的信息予以忽略。
例,我们对电话的认识已经抽象化了,拨号、 讲话、听音这就是我们印象中的电话,而不关 心和了解电话内部的线路和工作原理。
视图窗口的位置、大小、和颜色都是视图 对象的“属性”;对视图的修改操作后, 将数据替换源表,是视图对象的“方法”; 当数据修改完用鼠标点动关闭视图按钮, 就产生关闭视图的“事件”,视图对象接 收到这个关闭动作(事件)后,就会执行 另一方法程序将视图数据发送回源表。
面向对象方法学与UML课件

依赖关系
面向对象方法学与UML
关联关系
• 关联(association)是一种结构关系,它描述了两 个或多个类的实例之间的连接关系,是一种特殊 的依赖。
• 关联分为普通关联、限定关联、关联类,以及聚 合与复合。
面向对象方法学与UML
关联关系——普通关联
• 普通关联是最常见的关联关系,只要类与类之间 存在连接关系就可以用普通关联表示。普通关联 又分为二元关联和多元关联。
面向对象方法学与UML
4.2 面向对象的开发方法
面向对象软件开发方法的特征 ➢方法的唯一性 即方法是对软件开发过程所有阶段进行综合 考虑而得到的。 ➢从生存期的一个阶段到下一个阶段的高度连 续性 即生存期后一阶段的成果只是在前一阶段成 果的补充和修改。 把面向对象分析(OOA)、面向对象设计 (OOD)和面向对象程序设计(OOP)集成到生 存期的相应阶段。
面向对象方法学与UML
消息通信(Message Communication)
• 消息是一个对象与另一个对象的通信单元,是要求 某个对象执行类中定义的某个操作的规格说明。
• 发送给一个对象的消息定义了一个方法名和一个参 数表(可能是空的),并指定某一个对象。
• 一个对象接收到消息,则调用消息中指定的方法, 并将形式参数与参数表中相应的值结合起来。
• 但在某些情况下,需要对关联关系的语义做详细的定义、 存储和访问,为此可以建立关联类(association class),用来描述关联的属性。
• 关联中的每个链与关联类的一个实例相联系。关联类通过 一条虚线与关联连接。
面向对象方法学与UML
关联关系——聚合
• 聚合(Aggregation)也称为聚集,是一种特殊 的关联。它描述了整体和部分之间的结构关系。
软件工程第7章 面向对象方法学

2017/9/4
8
7.1.2面向对象方法学的优点
5.可维护性好
(1)面向对象的软件稳定性比较好
当对软件的功能或性能的要求发生变化时,通常不会引 起软件的整体变化,往往只需对局部做一些修改。 (2)面向对象的软件比较容易修改 类是理想的模块机制,它的独立性好,修改一个类通常 很少会牵扯到其他类。 (3)面向对象的软件比较容易理解 面向对象的软件技术符合人们习惯的思维方式,用这种 方法所建立的软件系统的结构与问题空间的结构基本一致, 因此,面向对象的软件系统比较容易理解。
2017/9/4 9
7.1.2面向对象方法学的优点
(4)面向对象的软件易于测试和调试
对面向对象的软件进行维护,主要通过从已有类派生出 一些新类来实现,维护后的测试和调试工作也主要围绕这些
新派生出来的类进行。类是独立性很强的模块,向类的实例
发消息即可运行它,观察它是否能正确地完成要求它做的工 作,对类的测试通常比较容易实现,如果发现错误也往往集 中在类的内部,比较容易调试。
2017/9/4
2
7.1.1 面向对象方法学的要点
Coad和Yourdon将面向对象概念概括为以下方程:
面向对象 = 对象 + 类 + 继承 + 通信 即:面向对象就是既使用对象又使用类和继承等机制,而
且对象之间仅能通过传递消息实现彼此通信。
2017/9/4
3
7.1.2面向对象方法学的优点
与人类习惯的思维方式一致 稳定性好 可重用性好
第7章:面向对象方法学
面向对象方法学的要点
面向对象方法学的概念 面向对象建模 对象模型、动态模型及功能模型
2017/9/4
1
软件工程第七章面向对象分析.2021优秀PPT文档

面向对象建模
▪ 面向对象模型
➢ 对象模型:定义了“做什么”的实体 ➢ 动态模型:规定在何种状态下,接受什么事件
的触发而“做什么” ➢ 功能模型:指明了系统应该“做什么”
对象模型
▪ 对象模型可以看成是数据流和语义数据模型的 结合
➢ 对象模型表示静态的、结构化系统的“数据”性质。 ➢ 它是对模拟客观世界实体的对象,以及对象彼此间
▪ UML的模型元素:
➢ 一类模型元素用于表示模型中的某个概念,如类、 对象、用例、结点、构件、包、接口等;
➢ 另一类模型元素用于表示模型元素之间相互连接的 关系,主要有关联、泛化(表示一般与特殊的关 系)、依赖、聚集(表示整体与部分的关系)等。
UML模型元素
注解
类 属性 操作
对象 属性 操作
状态
用例
结点
关联
构件 泛化
包
接口
角色
依赖
聚集
UML模型视图
▪ UML主要是用来描述模型的。它可以从不同视角 为系统建模,形成不同的视图(View)。每个视 图又由一组图(Diagram)构成。
▪ 两类图:
➢ 静态图:包括用例图、类图、对象图、构件图和部署 图
➢ 动态图:包括状态图、时序图、协作图和活动图
➢ 参与者:用小人形表示 ➢ 用例:用椭圆表示 ➢ 关联:用直线表示说明参与者驱动某个用例 ➢ 边界:用矩形框表示,说明系统关注点。
▪ 用例的表述方式
➢ 文字表述 ➢ 图形表述
POS机系统部分用例图
描 述 用 例
用例不同部分 说明
用例名称 以动词开始描述用例名称
范围
要设计的系统
级别
“用户目标”或者是“子功能”
起了一系列的状态变化。
软件工程面向对象分析——实例PPT课件

37
确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。
• 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
38
确定关联
• 标识关联的启发式准则如下:
28
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
26
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件;
确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。
• 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
38
确定关联
• 标识关联的启发式准则如下:
28
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
26
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件;
《软件工程》教学课件CH7-1面向对象的概念

面向对象分析与设计的建模
软件开发需要把问题解决模型化。 模型化是理解一个复杂系统的工具; 模型是系统早期抽象的重要结构; 常用的面向对象分析与设计模型 Rumbaugh 等人的 OMT 模型 Coad 和 Yourdon 的模型 Booch 开发模型 UML 统一建模语言
面向对象的特点
抽象性:对象的数据抽象和行为抽象; 封装性:信息隐蔽; 共享性: 同一类中所有实例共享数据结构和行为特征; 同一应用中所有实例通过继承共享数据结构和 行为特征; 不同应用中所有实例通过复用共享数据结构和 行为特征
对象
对象是系统中用来描述客观事物的一个实体,是 构成系统的一个基本单位,由一组属性和一组对 属性进行操作的服务组成。 属性一般只能通过执行对象的操作来改变。
2)
a.
b.
c.
3)
a. b.
活动定义了工作人员所执行的工作。有 3 类 步骤: 思考步骤 执行步骤 评审步骤 制品是过程生产、修改或使用的一种信息。 RUP 的制品分为 5 个信息集。 管理集:计划制品、操作制品 需求集:构想文档、项目相关人员需求、 用例模型和业务模型
c.
d.
e.
4)
设计集:设计模型、软件体系结构描述、 测试模型 实现集:源代码和可执行程序、相关数据 结构和数据文档 实施集:安装资料、用户文档、培训材料 工作流用来描述生成结果的活动序列,用以 描述工作人员之间的交互。在 RUP 中共有 9 个核心过程工作流,包括 6 个核心工程工作 流和 3 个核心支持工作流。
用例和参与者的事例 银行储户通过自动取款机(自动柜员机)提款, 转账或检查账户余额。用一组用例表达如下:
《实用软件工程》第7章 面向对象分析

一般来说,应该按照问题领域而不是功能分解的方法来确定主题。此外确定主题应遵循 “使不同主题内的类之间依赖和交互最少”的原则来确定主题,可以使用UML的包来展现主题。
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。
第七章-面向对象设计PPT课件

面向对象的软件设计过程
7.1 设计用例实现方案
本节介绍UML交互图的语言机制和用例实现方案的设 计方法。
UML的交互图包括顺序图和协作图,适于用例实 现方案的表示。
用例实现方案的设计方法有三个步骤: (1) 提取边界类、实体类和控制类; (2) 构造交互图; (3) 根据交互图精化类图。
7.1.1 顺序图
(1) 界面控制:包括输入数据的格式及内容转换,输出结果的 呈现,软件运行过程中界面的变化与切换等。
(2) 外部接口:实现目标软件系统与外部系统或外部设备之间 的信息交流和互操作。主要关注跨越目标软件系统边界的 通信协议。
(3) 环境隔离:将目标软件系统与操作系统、数据库管理系统、 应用服务器中间件等环境软件进行交互的功能与特性封装 于边界类之中,使目标软件系统的其余部分尽可能地独立 于环境软件。
UML四种类型的消息
(1) 简单消息(Simple Message) 以一种简单、抽象的函数表示对象之间的信息传 递,不考虑通信过程的内部细节。简单消息在 UML顺序图中用普通的有向箭头表示。
(2) 同步消息(Synchronous Message) 消息源发出消息后必须等待消息处理过程完毕并返 回处理结果后,消息源才可继续执行后续操作。前 面所述的自调用消息应该是同步的。同步消息的表 示图元与简单消息相同,这表明UML在缺省情形 下认为简单消息即为同步消息。
第七章 面向对象的设计方法
设计用例实现方案 设计技术支撑方案 设计用户界面 精化设计模型 RUP中的分析与设计流程
面向对象的设计方法
基于UML的面向对象设计方法将分析模型转换为设 计模型。
面向对象: 分析模型---顶层架构图、用例与用例图、领域概念 模型构成。 设计模型----- 以包图表示的软件体系结构图 以交互图表示的用例实现图 完整、精确的类图 复杂对象的状态图 描述流程化处理过程的活动图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由于客观世界中的实体通常都既具有静态的属性,又具 有动态的行为,因此,面向对象方法学中的对象是由描述该 对象属性的数据以及可以对这些数据施加的所有操作封装在 一起构成的统一体。
2020/7/28
11
7.2.1 对象 ➢ 1.对象的形象表示
图7-1 对象的形象表示
2020/7/28
12
7.2.1 对象 ➢2.对象的定义
4.较易开发大型软件产品
在开发大型软件产品时,组织开发人员的方法不恰当往 往是出现问题的主要原因。用面向对象方法学开发软件时, 构成软件系统的每个对象就像一个微型程序,有自己的数据、 操作、功能和用途,因此,可以把一个大型软件产品分解成 一系列本质上相互独立的小产品来处理,不仅降低了开发的 技术难度,而且也使得对开发工作的管理变得容易多了。
2020/7/28
8
7.1.2面向对象方法学的优点
5.可维护性好
➢ (1)面向对象的软件稳定性比较好 当对软件的功能或性能的要求发生变化时,通常不会引
起软件的整体变化,往往只需对局部做一些修改。 ➢ (2)面向对象的软件比较容易修改
类是理想的模块机制,它的独立性好,修改一个类通常 很少会牵扯到其他类。 ➢ (3)面向对象的软件比较容易理解
2020/7/28
13
7.2.1 对象
2020/7/28
14
7.2.1 对象
➢ 3.对象的特点
• (1)以数据为中心 • (2)实现了数据封装 • (3)本质上具有并行性 其他概念
➢ 1.类
现实世界中存在的客观事物有些是彼此相似的,如张三、李四、 王五……虽说每个人职业、性格、爱好、特长等各有不同,但 是,他们的基本特征是相似的,都是黄皮肤、黑头发、黑眼睛, 于是人们把他们统称为“中国人”。人类习惯于把有相似特征 的事物归为一类,分类是人类认识客观世界的基本方法。
➢ 5.属性
属性(attribute)就是类中所定义的数据,它是对客观 世界实体所具有的性质的抽象。类的每个实例都有自己特 有的属性值。在C++语言中把属性称为数据成员。
面向对象方法学的基本原则是按照人类习惯的思维方法建立问 题域的模型,开发出尽可能直观、自然地表现求解方法的软件系 统。
2020/7/28
5
7.1.2面向对象方法学的优点
2.稳定性好
面向对象方法基于构造问题领域的对象模型,以对象为 中心构造软件系统。它的基本作法是用对象模拟问题领域中 的实体,以对象间的联系刻画实体间的联系。因为面向对象 的软件系统的结构是根据问题领域的模型建立起来的,而不 是基于对系统应完成的功能的分解,所以,当对系统的功能 需求变化时并不会引起软件结构的整体变化,往往仅需要作 一些局部性的修改。
在面向对象的软件技术中,类(class)就是对具有相同数据和相 同操作的一组相似对象的定义。
也就是说,类是对具有相同属性和行为的一个或多个对象的描述, 通常在这种描述中也包括对怎样创建该类的新对象的说明。
2020/7/28
16
7.2.2 其他概念 ➢ 2.实例
实例就是由某个特定的类所描述的一个具体的对象。类 是对具有相同属性和行为的一组相似的对象的抽象,类在 现实世界中并不能真正存在。
面向对象的软件技术符合人们习惯的思维方式,用这种 方法所建立的软件系统的结构与问题空间的结构基本一致, 因此,面向对象的软件系统比较容易理解。
2020/7/28
9
7.1.2面向对象方法学的优点
2020/7/28
10
7.2.1 对象
在应用领域中有意义的、与所要解决的问题有关系的任 何事物都可以作为对象,它既可以是具体的物理实体的抽象, 也可以是人为的概念,或者是任何有明确边界和意义的东西。
2020/7/28
6
7.1.2面向对象方法学的优点
3.可重用性好
面向对象的软件技术在利用可重用的软件成分构造新的 软件系统时,有很大的灵活性。有两种方法可以重复使用一 个对象类:一种方法是创建该类的实例,从而直接使用它; 另一种方法是从它派生出一个满足当前需要的新类。
2020/7/28
7
7.1.2面向对象方法学的优点
➢ 3.消息
消息(message)就是要求某个对象执行在定义它的那 个类中所定义的某个操作的规格说明。由◇接收消息的对 象、 消息选择符(也称为消息名)和 零个或多个变元三 部分组成。
2020/7/28
17
7.2.2 其他概念 ➢ 4.方法
方法(method)就是对象所能执行的操作,也就是类 中所定义的服务。方法描述了对象执行操作的算法,响应 消息的方式。在C++语言中把方法称为成员函数。
➢ 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一 组方法。
➢ 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个 对象类组成一个层次结构的系统(也称为类等级)。
➢ 对象彼此之间仅能通过传递消息互相通信。
2020/7/28
2
7.1.2面向对象方法学的优点
1.与人类习惯的思维方法一致
目前,对对象所下的定义并不完全统一,下面给出从不 同角度对象的不同定义。 •定义1:对象是具有相同状态的一组操作的集合。
这个定义主要是从面向对象程序设计的角度看“对象”。 •定义2:对象是对问题域中某个东西的抽象。
这种抽象反映了系统保存有关这个东西的信息或与它交 互的能力。也就是说,对象是对属性值和操作的封装。 这个定义着重从信息模拟的角度看待“对象”。
第7章:面向对象方法学
➢ 面向对象方法学的要点 ➢ 面向对象方法学的概念 ➢ 面向对象建模 ➢ 对象模型、动态模型及功能模型
2020/7/28
1
7.1 面向对象方法学概述
7.1.1 面向对象方法学的要点
➢ 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象 可以由比较简单的对象以某种方式组合而成。
面向对象的软件技术以对象(object)为核心,用这种技术开 发出的软件系统由对象组成。对象是对现实世界实体的正确抽象, 它是由描述内部状态表示静态属性的数据,以及可以对这些数据 施加的操作(表示对象的动态行为),封装在一起所构成的统一 体。
传统的软件开发方法可以用“瀑布”模型来描述,这种方法强 调自顶向下按部就班地完成软件开发工作。
2020/7/28
11
7.2.1 对象 ➢ 1.对象的形象表示
图7-1 对象的形象表示
2020/7/28
12
7.2.1 对象 ➢2.对象的定义
4.较易开发大型软件产品
在开发大型软件产品时,组织开发人员的方法不恰当往 往是出现问题的主要原因。用面向对象方法学开发软件时, 构成软件系统的每个对象就像一个微型程序,有自己的数据、 操作、功能和用途,因此,可以把一个大型软件产品分解成 一系列本质上相互独立的小产品来处理,不仅降低了开发的 技术难度,而且也使得对开发工作的管理变得容易多了。
2020/7/28
8
7.1.2面向对象方法学的优点
5.可维护性好
➢ (1)面向对象的软件稳定性比较好 当对软件的功能或性能的要求发生变化时,通常不会引
起软件的整体变化,往往只需对局部做一些修改。 ➢ (2)面向对象的软件比较容易修改
类是理想的模块机制,它的独立性好,修改一个类通常 很少会牵扯到其他类。 ➢ (3)面向对象的软件比较容易理解
2020/7/28
13
7.2.1 对象
2020/7/28
14
7.2.1 对象
➢ 3.对象的特点
• (1)以数据为中心 • (2)实现了数据封装 • (3)本质上具有并行性 其他概念
➢ 1.类
现实世界中存在的客观事物有些是彼此相似的,如张三、李四、 王五……虽说每个人职业、性格、爱好、特长等各有不同,但 是,他们的基本特征是相似的,都是黄皮肤、黑头发、黑眼睛, 于是人们把他们统称为“中国人”。人类习惯于把有相似特征 的事物归为一类,分类是人类认识客观世界的基本方法。
➢ 5.属性
属性(attribute)就是类中所定义的数据,它是对客观 世界实体所具有的性质的抽象。类的每个实例都有自己特 有的属性值。在C++语言中把属性称为数据成员。
面向对象方法学的基本原则是按照人类习惯的思维方法建立问 题域的模型,开发出尽可能直观、自然地表现求解方法的软件系 统。
2020/7/28
5
7.1.2面向对象方法学的优点
2.稳定性好
面向对象方法基于构造问题领域的对象模型,以对象为 中心构造软件系统。它的基本作法是用对象模拟问题领域中 的实体,以对象间的联系刻画实体间的联系。因为面向对象 的软件系统的结构是根据问题领域的模型建立起来的,而不 是基于对系统应完成的功能的分解,所以,当对系统的功能 需求变化时并不会引起软件结构的整体变化,往往仅需要作 一些局部性的修改。
在面向对象的软件技术中,类(class)就是对具有相同数据和相 同操作的一组相似对象的定义。
也就是说,类是对具有相同属性和行为的一个或多个对象的描述, 通常在这种描述中也包括对怎样创建该类的新对象的说明。
2020/7/28
16
7.2.2 其他概念 ➢ 2.实例
实例就是由某个特定的类所描述的一个具体的对象。类 是对具有相同属性和行为的一组相似的对象的抽象,类在 现实世界中并不能真正存在。
面向对象的软件技术符合人们习惯的思维方式,用这种 方法所建立的软件系统的结构与问题空间的结构基本一致, 因此,面向对象的软件系统比较容易理解。
2020/7/28
9
7.1.2面向对象方法学的优点
2020/7/28
10
7.2.1 对象
在应用领域中有意义的、与所要解决的问题有关系的任 何事物都可以作为对象,它既可以是具体的物理实体的抽象, 也可以是人为的概念,或者是任何有明确边界和意义的东西。
2020/7/28
6
7.1.2面向对象方法学的优点
3.可重用性好
面向对象的软件技术在利用可重用的软件成分构造新的 软件系统时,有很大的灵活性。有两种方法可以重复使用一 个对象类:一种方法是创建该类的实例,从而直接使用它; 另一种方法是从它派生出一个满足当前需要的新类。
2020/7/28
7
7.1.2面向对象方法学的优点
➢ 3.消息
消息(message)就是要求某个对象执行在定义它的那 个类中所定义的某个操作的规格说明。由◇接收消息的对 象、 消息选择符(也称为消息名)和 零个或多个变元三 部分组成。
2020/7/28
17
7.2.2 其他概念 ➢ 4.方法
方法(method)就是对象所能执行的操作,也就是类 中所定义的服务。方法描述了对象执行操作的算法,响应 消息的方式。在C++语言中把方法称为成员函数。
➢ 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一 组方法。
➢ 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个 对象类组成一个层次结构的系统(也称为类等级)。
➢ 对象彼此之间仅能通过传递消息互相通信。
2020/7/28
2
7.1.2面向对象方法学的优点
1.与人类习惯的思维方法一致
目前,对对象所下的定义并不完全统一,下面给出从不 同角度对象的不同定义。 •定义1:对象是具有相同状态的一组操作的集合。
这个定义主要是从面向对象程序设计的角度看“对象”。 •定义2:对象是对问题域中某个东西的抽象。
这种抽象反映了系统保存有关这个东西的信息或与它交 互的能力。也就是说,对象是对属性值和操作的封装。 这个定义着重从信息模拟的角度看待“对象”。
第7章:面向对象方法学
➢ 面向对象方法学的要点 ➢ 面向对象方法学的概念 ➢ 面向对象建模 ➢ 对象模型、动态模型及功能模型
2020/7/28
1
7.1 面向对象方法学概述
7.1.1 面向对象方法学的要点
➢ 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象 可以由比较简单的对象以某种方式组合而成。
面向对象的软件技术以对象(object)为核心,用这种技术开 发出的软件系统由对象组成。对象是对现实世界实体的正确抽象, 它是由描述内部状态表示静态属性的数据,以及可以对这些数据 施加的操作(表示对象的动态行为),封装在一起所构成的统一 体。
传统的软件开发方法可以用“瀑布”模型来描述,这种方法强 调自顶向下按部就班地完成软件开发工作。