软件工程课件-8第八章面向对象基础
软件工程 第八章 面向对象的设计方法
第八章面向对象的设计方法本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。
如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
为完成这一转换过程,设计人员必须处理以下任务:(1)针对分析模型中的用例,设计实现方案。
实现方案用UML交互图表示。
(2)设计技术支撑设施。
在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。
这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。
例如,数据的持久存储服务、安全控制服务和远程访问服务等。
在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。
(3)设计用户界面。
(4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。
此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序设计的基础和依据的详尽类图。
面向对象的软件设计过程如图8-1-1所示。
图8-1-1 面向对象的软件设计过程第一节设计用例实现方案UML 的交互图(顺序图、协作图)适于用例实现方案的表示。
因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。
该设计方法包含如下3个步骤:(1)提取边界类、实体类和控制类;(2)构造交互图;(3)根据交互图精华类图。
一、顺序图顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。
在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。
顺序图中的对象一般以“对象名:类名”的方式标识,但也可以仅采用缩写形式“对象名”或者“:类名”。
软件工程课件-8第八章面向对象基础
第八章 面向对象基础
传统 方法 与面 向对 象方 法的 区别
分析
设计
OOA
OOD
数据流图 (DFD)
软件结构图 (SC)
传统方法分析与设 计之间的鸿沟
一致
类 图
的概 念
类 图
一致 的表 示法
面向对象的分析与设计 之间不存在鸿沟
面向对象是软件方法 学的返朴归真
软件科学的发展历程中 出现过许多“面向”
Booch方法
信息模型 状态模型 过程模型 Shlaer-Mellor方法
功能模型
Rumbaugh方法(OMT)
第八章 面向对象基础 8.2 面向对象的开发方法
6.不同面向对象的开发方法的相似步骤 (1)使用基本需求作为选择类和对象的指南; (2)为对象标识属性和操作; (3)定义组织类的结构和层次; (4)建造对象-关系模型; (5)建造对象-行为模型。
8.多态性的作用 增强了操作的透明性,可理解性和可
扩展性 增强了软件的灵活性和重用性
第八章 面向对象基础 8.1.3 面向对象的要素
1.抽象 2.封装性 3.共享性 4.强调对象结构而不是程序结构
第八章 面向对象基础 8.1.3 面向对象的要素
关于封装 封装是软件开发方法的重要原则,有两个涵 义:
可操纵、具有一定属性和行为的对象 在计算机世界中:是一个可标识的存储区域
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
3.对象的特点 对象是构成系统的一个基本单位。 对象由一组属性和对这组属性进行操作
的一组服务构成。
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
4.属性 属性是用来描述对象静态特征的一
软件工程 第三部分 软件设计与建模--面向对象设计
(2) 块状组织 把系统垂直地分解成若干个相对独立的、弱耦 合的子系统/块,每块提供一种类型的服务。
采用层次与块状的混合结构
3. 设计(分布式)系统的拓扑结构 由子系统组成完整的系统时,典型的拓扑结构 有管道形、树形、星形等。设计者应该采用与问题 结构相适应的、尽可能简单的拓扑结构,以减少子 系统之间的交互数量。
3. 设计简单的类 小而简单的类便于开发和管理(高内聚)。为使 类保持简单,应该注意以下几点。 (1) 避免包含过多的属性:完成的功能可能太多了。 (2) 有明确的定义:任务应该简单。 (3) 简化对象之间的合作关系。如果需要多个对象 协同配合才能做好一件事,则破坏了类的简明性和 清晰性。 (4) 不要提供太多服务。典型地,一个类提供的公 共服务不超过7个。
层次图、结 构图、流程 图、N-S图、 PAD图、判 定表、判定 树等
面向对象设计方法比结构化设计方法更具有优势, 9/71 使用范围更广。
内容摘要
• • • • • 面向对象设计方法概述 面向对象设计原则 面向对象设计的启发规则 系统设计 对象设计
10/237
面向对象设计原则
• 强调模块化、抽象化、信息隐蔽、高内聚低耦合、复用性等 设计准则。
4/71
什么是面向对象设计(OOD)?
(二)现今(90年代后)的OOD • 面向对象的设计(OOD)就是在OOA模型的基础上运 用面向对象方法进行系统设计,目标是产生一个符合具 体实现条件的OOD模型。
OOD的特点: • 1、以面向对象的分析为基础,一般不依赖结构化分析。 • 2、与相应的OOA方法共同构成一种OOA&D方法体系。 OOA和OOD采用一致的概念和原则,但属于软件生命 周期的不同阶段,有不同的目标及策略。 • 3、较全面地体现面向对象方法的概念与原则。 • 4、大多数方法独立于编程语言,通过OOA&D所得到 的系统模型可以由不同的编程语言实现。
面向对象的程序设计基础课件
设置。 6. SetFocus方法是为一个控件指定焦点 7.Show方法是显示一个表单,并且确定是模式表单还是无
如按【Tab】键或单击,或者在代码中使用 SetFocus方法
VFP的核心事件集
• Lostfocus:对象失去焦点,由用户动作引起,如按【 Tab】键或单击,或者在代码中使用SetFocus方法
• KeyPress:用户按下或释放键 • MouseDown:当鼠标指针停在一个对象上时,用户按
下鼠标按钮。 • MouseMove:用户在对象上移动鼠标 • MouseUp:当鼠标指针停在一个对象上时,用户释放
对象
1每个对象都具有属性以及与之相关的事件和方法,通过对象的属 性、事件和方法来处理对象。
§ 属性 定义对象的特征或某一方面的行为,如大小、颜色、所处 的位置等。
§ 事件 是由对象识别的一个动作,可以编写相应的代码,以对此 动作进行响应。事件是一种预先定义好的特定动作,被用户或系 统激活,每个对象都可以对事件的动作进行识别和响应。在多数 情况下,事件是由用户的交互行为产生的 (用户不能创建新的事 件)
返 回
类的分类
v 基类 ( base class ) ——VFP 系统提供的内部定义的类, 用做其他用户自定义类的基础。(如表单和所有控件)
v 子类(Subclass)——以其他类定义为起点,为某一种对象 所建立的新类。子类将继承任何对父类(即子类所基于的 类)所做的修改。
v 用户自定义类——与基类相似,但由用户定义,并且可用 来派生子类。这种类没有可视化表示形式。
软件工程概论_8_面向对象需求分析
• 一.面向对象分析模型的组成结构 • 二.面向对象分析模型描述工具 • 三.面向对象分析的基本过程
• 四. 面向对象分析方法
• 五. 小结
一.面向对象分析模型的组成结构
数据模型
属性、操作、协作者
功能模型
类/对象 模型
对象关系模型
使用实例
对象-行为模型
行为模型
二.面向对象分析模型描述工具
1. 用例图
2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析 人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对 问题的一种无歧义的描述。模型由一组图示符号和组织这些 符号的规则组成。利用它们来定义和描述问题域中的术语和 概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型
2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别 结构、识别主题、定义属性和定义服务(方法)。对于一个复杂 问题的面向对象的模型可用五个层次表示:类-&-对象层、结 构层,主题层、属性层和服务层,见图3.3.8。
主题层 subject level 类-&-对象层object 结构层 structure 属性层 attribute 服务层 serves
•使用具有确切含义的名词。
• 尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含 义模糊的词作名字。例如,“库房”比“房屋”或“存物场所”更确切。
•必要时用名词短语作名字。
• 为使名字的含义更准确,必要时用形容词加名词或其他形式的名词 短语作名字。例如,“最小的领土单元”、“储藏室”、“公司员工”等 都是比较恰当的名字。
签定保险单 销售统计
客户
第8章 面向对象分析-软件工程基础(第3版)-胡思康-清华大学出版社
第8章 面向对象分析
第 5 页5
面向对象分析概述
面向对象分析的3类模型
OOA模型由3类独立模型构成:功能模型、静态模型和动态模型。 ➢功能模型描述软件系统的用户交互和功能。 ➢静态模型描述软件系统中类与对象以及它们间的关系,也因也称 为对象模型。 ➢动态模型描述系统的控制结构,也称为交互模型。
第8章 面向对象分析
第 6 页6
面向对象分析概述
类
静态模型的5个层次 类-对象层
对象
Coad和Yourdon 提出,对于大型、复杂 性软件系统,需要建立 分析问题域的静态模型。 该模型由5个层次组成: 类-对象层、结构层、 属性层、服务层和主题 层。
结构层 属性层 服务层 主题层
泛化关系
关联关系
属性
对象连接
服务
消息连接
⑶ 用例描述:用文字信息详细描述用例的内容,它是对用 例的有益补充。
第8章 面向对象分析
第 8 页8
建立静态模型
➢用例模型分别从参与者和系统的角度描述用户需求, 依据用例模型导出静态模型。静态模型是面向对象建 模中最基本、最重要、最耗时的技术活动。 ➢静态建模的任务是构建问题域的概念模型,把问题 域中的实体转变为信息域的类与对象以及它们间的关 系,因此也被称为对象模型或领域模型。 ➢静态模型通过建立类图及关系来反映领域概念,而 面向对象设计也建立类图,但各阶段对类的抽象程度 不同。
第8章 面向对象分析
第 12 页12
建立动态模型
建立状态图
状态图描述的就是对象状态的转换过程。通过对对象状态 的分析,能够了解对象在系统流程中的变换,从而发现潜在的事 件和条件。
建立状态图的一般过程如下: ⑴ 了解系统的主要功能和性能,确定和它们有关的主要对象。 ⑵ 列出一个对象的生存期内的所有可能的状态。 ⑶ 确定对象状态改变时的触发条件或事件。 ⑷ 在一个对象中,选定一组与描述状态相关的行为属性和促使 改变状态的方法。 ⑸ 结合触发条件、事件、行为属性值改变的先后顺序,建立软 件系统的状态图。
《面向对象的》课件
多态
允许一个接口多种形态存 在,即一个接口可以有多 个实现方式,增强了代码 的灵活性和可扩展性。
面向对象与面向过程的区别
面向对象强调的是对象之间的交互和关系,注重的是系统的整体性和复用性;而面 向过程则更注重程序的执行流程和算法的实现。
面向对象编程将数据和操作封装在一起,形成具有特定属性和行为的对象,更符合 人类的思维习惯;而面向过程编程则更注重功能模块的划分和调用。
C#
总结词
C#是一种面向对象的编程语言,由微软公司开发,具有语法严谨、易于上手的特点。
详细描述
C#语言支持类和对象的概念,提供了丰富的API和库,广泛应用于Windows桌面应用程序开发、游戏 开发等领域。C#还支持跨平台开发,可以在其他操作系统上运行。
04
面向对象的应用领域
游戏开发
游戏策划
面向对象编程有助于更好地设计和组 织游戏策划,将游戏的各种元素(如 角色、物品、关卡等)视为对象,便 于管理和扩展。
详细描述
继承是面向对象编程中的重要概念,它允许创建分等级的类。基类(也称为父类 )定义了共享的属性和方法,派生类(也称为子类)继承这些属性和方法,并可用变量来引用子类对象,调用子类 重写的方法。
详细描述
多态允许一个接口被多个类实现,一个接口引用变量可以指 向任何实现该接口的类的对象。当通过接口引用变量调用方 法时,将根据实际对象的类型来决定调用哪个实现类的方法 。
面向对象编程通过类和对象的概念实现代码的重用和扩展,提高了软件的可维护性 和可复用性;而面向过程编程则更注重程序的执行效率和算法的优化。
02
面向对象的主要技术
类与对象
总结词
类是对象的抽象,对象是类的实 例。
详细描述
第八单元 面向对象
第八单元面向对象1.OOA模型的5个层次分别是什么?答:主题层、结构层、服务层、属性层、类与对象层2.与传统程序设计模式中的过程调用相比,消息传递机制有何本质区别?答:消息传递必须给出信道的信息,通常要指出明显的接受方。
由于接受方是一通信实体,具有保持状态的能力,所以同一发送方在不同时刻向同一接受方发送同样的信息,可因接受方的当前状态不同而得到不同的结果。
消息传递可以是异步的,发送方可以不必等待接受方返回信息就可以继续执行后面的操作,因而支持程序的并发和分布执行,而过程调用只能是同步的,本质上是串行的3.阐述面向对象的特征,并做简要的解释?答:对象唯一性:每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象。
分类性:是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。
继承性:是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。
多态性:是指相同的操作或函数,过程作用于多种类型的对象上并获得不同的结果。
4.COAD方法严格区分了面向对象分析OOA和面向对象设计OOD。
OOA方法利用五个层次和活动定义和记录系统行为,输入和输出。
请简述这五个层次?答:发现类及对象:描述如何发现类及对象。
从应用领域开始识别类及对象,形成整个应用的基础,然后,据此分析系统的责任。
识别结构:该阶段分为两个步骤。
第一,识别一般-特殊结构,该结构捕获了识别出的类的层次结构;第二,识别整体-部分结构,该结构用来表示一个对象如何成为另一个对象的一部分,以及多个对象如何组装成更大的对象。
定义主题:主题由一组类及对象组成,用于将类及对象模型划分为更大的单位,便于理解。
定义属性:其中包括定义类的实例(对象)之间的实例连接。
定义服务:其中包括定义对象之间的消息连接。
5.面向对象程序设计有哪些优点?答:发时间短,效率高,可靠性高,所开发的程序更强壮。
由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。
软件工程面向对象技术概述PPT教学课件
UML的开发历程 UML2.0
UML 1.3 OMG采用,11/97 OMG修正,9/97 UML 1.1
OMG审核,1/97 UML 1.0
OMG认证
10/96 & 9/96 UML 0.9&0.91
UML同行 专家意见
10/95ຫໍສະໝຸດ UML 0.8同阶段。
UML的应用
UML是一种建模语言,不是一 种方法,它独立于过程。利于它建模 时,可遵循任何类型的建模过程。
UML的主要内容
(1)UML融合了Booch、OMT和OOSE方法 中的基本概念,而且这些基本概念与其他面向 对象技术中的基本概念大多相同;
(2)UML不仅仅是上述方法的简单汇合,而 是扩展了现有方法的应用范围;
(2) UML表示法
定义UML符号的表示法,为开发者或开发工 具使用这些图形符号和文本语法为系统建模提 供了标准。这些图形符号和文字所表达的是应 用级的模型,在语义上它是UML元模型的实例。
模型内容的组织和UML表述
UML的用于描述模型的基本词汇(“构造块”):
• 事物(Things) • 关系(Relationships) • 图 (Diagrames)
• Booch方法 • Coad-Yourdon方法 • Rumbaugh 方法(简称OMT)
(Object Modeling Technology)
• Jacobson 方法(简称OOSE) • 由Rumbaugh 、 Booch 、 Jacobson
提出的统一建模语言 (Unify Modeing Language简称UML)
Booch’93 OMT-2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生
本科生 研究生
第八章 面向对象基础 8.1.2 面向对象的特征
4.聚合 一个(较复杂的)对象由其它若干 (较简单的)对象作为其构成部分, 称作聚合。 聚合刻画了现实事物之间的构成关 系。
第八章 面向对象基础 8.1.2 面向对象的特征
5.整体-部分结构 由一组具有聚合关系的类所形成的结构 称作整体-部分结构。它是一个以类为结 点,以聚合关系为边的连通有向图。
1.什么是类 具有共同属性和行为的对 象的抽象
第八章 面向对象基础 8.1.1 面向对象的基本概念-类
2.一般类和特殊类 如果类A具有类B的全部属性和全部 服务,而且具有自己特有的某些属性 或服务,则A叫做B的特殊类,B叫做A 的一般类。
第八章 面向对象基础 8.1.1 面向对象的基本概念-消息
消息 对象之间相互请求或相互协作的途 径,是要求某个对象执行某个功能操作的规 格说明 消息内容 通常包含接收方及请求接收方 完成的功能信息 发送方 发出消息,请求接收方响应 接收方 收到消息后,经过解释,激活方 法,予以响应
第八章 面向对象基础 8.1.1 面向对象的基本概念-方法
软件工程
任课教师:程丽 计算机与信息学院
第八章 面向对象基础
8.1 8.2
面向对象的概念 面向对象的开发方法
第八章 面向对象基础
课程的任务、目的和基本要求
–理解面向对象的基本概念 –了解面向对象的开发方法
第八章 面向对象基础
1.为 什么 引入 面向 对象 的概 念?
分析
设计
数据流图 (DFD)
第八章 面向对象基础
传统 方法 与面 向对 象方 法的 区别
分析 数据流图 (DFD) 设计 软件结构图 (SC)
OOA
一致 的概 念 一致 的表 示法
OOD
类 图
类 图
传统方法分析与设 计之间的鸿沟
面向对象的分析与设计 之间不存在鸿沟
面向对象是软件方法 学的返朴归真
软件科学的发展历程中 出现过许多“面向”
面向对象的基本概念 面向对象的特征
8.1.3
面向对象的要素
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
1.什么是对象 现实世界中某个具体的物理实体 或概念在计算机逻辑中的映射和体 现
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
2.对象的含义 在现实世界中:是客观世界中的一个实体 在面向对象程序中:表达成计算机可理解、 可操纵、具有一定属性和行为的对象 在计算机世界特征
2.继承的特点 继承意味着自动地拥有,或称隐含地 复制,由继承机制保证。 继承简化了人们对事物的认识和描述 ,非常有益于软件复用,是OO技术提 高软件开发效率的重要原因之一。
第八章 面向对象基础 8.1.2 面向对象的特征
3.一般——特殊结构 由一组具有继承关系的类所组成的结构称 作一般-特殊结构。它是一个以类为结点, 以继承关系为边的连通的有向图。
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
3.对象的特点 对象是构成系统的一个基本单位。 对象由一组属性和对这组属性进行操作 的一组服务构成。
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
4.属性 属性是用来描述对象静态特征的一 个数据项。
5.服务 服务是用来描述对象动态特征的一 个操作序列。
第八章 面向对象基础 8.1.1 面向对象的基本概念-对象
6.关于对象两点说明
对象只描述事物本质的与系统目标有关的特 征。分析过程中过滤掉非本质的与系统目标 无关的因素
对象的属性和服务不可分,对象的属性值只 能够由对象自身的服务来读取和修改
第八章 面向对象基础 8.1.1 面向对象的基本概念-类
第八章 面向对象基础 8.1.3 面向对象的要素
1.抽象 2.封装性 3.共享性
4.强调对象结构而不是程序结构
第八章 面向对象基础 8.1.3 面向对象的要素
关于封装 封装是软件开发方法的重要原则,有两个涵 义: 把对象的全部属性和全部服务结合在一起, 形成一个不可分割的独立单位(对象)。 尽可能隐蔽对象的内部细节(信息隐蔽)。
所谓方法,实际上是类对象上所有 的各种操作。 方法描述了对象执行操作的算法, 响应消息的方法。
第八章 面向对象基础 8.1.2 面向对象的特征
1.对象唯一性 2.分类性 3.继承性 4.多态性
第八章 面向对象基础 8.1.2 面向对象的特征
1.什么是继承 特殊类拥有其一般类的全部属性与 服务,称作特殊类对一般类的继承 。
学院
学科部 实验室 办公室
第八章 面向对象基础 8.1.2 面向对象的特征
geometry
6.多态 不同的对象 收到同一消息 可产生完全不 同的结果,这 一现象叫做多 态 。
矩形
圆形
三角
Class geometry { print( ); } Class A A →print( )
A circle
A rectangle
A triangle
第八章 面向对象基础 8.1.2 面向对象的特征
7.多态的效果 用户发送一个通用的消息,而实 现的细节则由接收对象自行决定。
第八章 面向对象基础 8.1.2 面向对象的特征
8.多态性的作用 增强了操作的透明性,可理解性和可 扩展性 增强了软件的灵活性和重用性
面向对象
软件开发从过分专业化的方法、规则和 技巧中回到了客观世界,回到了人们的 日常思维,是软件理论的返朴归真。
面向机器 面向代数 面向过程 面向数据 面向人 面向文件 面向信息 面向应用 面向功能 面向数据流 · · · · · ·
第八章 面向对象基础 8.1 面向对象的概念
8.1.1 8.1.2
软件结构图 (SC)
传统方法分析与设计之间的鸿沟
第八章 面向对象基础
2.传统软件工程方法问题 1、难于解决软件重用; 2、难于适应需求变化; 3、分析与设计概念及表示法不一致
第八章 面向对象基础
3.如何引入面向对象的概念? 在解题空间中引入“对象”概念, 使之逼真地模拟问题空间中的客观实 体,从而达到与人类的思维习惯相一 致。