第6讲:面向对象基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
面向对象基本概念
消息(Message)
对象发出的服务请求,一般包含提供服务的对象 标识、需要调用的操作标识、输入信息和应答信息等 信息。
消息代表对象之间的交互
15
面向对象基本概念
封装(Encapsulation)
把对象的属性和操作结合成一个独立的系统单 位(对象),并尽可能隐藏对象的内部细节
发展阶段
1980年代: 许多 OO 编程语言(如 C++, Objective-C 等)
成熟阶段
1990年代: 面向对象分析和设计方法(Booch, OMT, OOSE 等),以及java语言
1997: UML 逐渐替代了传统的结构化方法
7
面向过程 vs. 面向对象
优点
缺点
面向过程的方 法
强调从系统的外部 参与者角度看到的 或需要的系统功能
逻辑视图
构建视图
Use case 视图
显示代码组件 的组织结果
进程视图
配置视图
显示系统的并发 性,解决在并发 系统中存在的通 信和同步问题
描述系统的物理 配置特征
25
UML的构成
基本UML建模元素
4种事物
4种关系 9种图
语义规则:也就是支配基本构 造块如何放在一起的规则 公共机制:达到特定目标的公 共UML方法
面向对象方法概述
基本思想与发展历史 面向对象的软件工程方法
面向对象基础
面向对象的基本概念
统一建模语言UML
UML语言概述 UML语言的基本元素 常用的UML图
19
软件建模概念
模型
现实世界某些重要方面的表示 一些模型在外形上类似于真实产品,一些模型是重要细
节的绘图表示,一些模型则是抽象的数学符号。 比如,房屋模型、桥梁模型、数学模型、飞机模型
分析和理解问题域,找出描述问题域和系统责任所需的类及 对象,分析它们的内部构成和外部关系,建立 OOA 模型。
面向对象设计( Object Oriented Design,OOD)
将 OOA 模型直接变成 OOD 模型,并且补充一些与实现有 关的部分,如:人机界面、数据存储、任务管理等。
面向对象编程( Object Oriented Programming, OOP)
“多”端的某个特殊对象,它将模型中一对多的关系简 化为一对一,将多对多简化为多对一。
关联
或关联。在两个关联间加上虚线,上面标以{or}来描述 或关联。
UML的构成
关联类:关联本身也可以有特性,关联类是一种具 有关联特性和类特性的建模元素。
44
UML的构成——关系
UML关系-1:聚合和组合
关联
多重关联。多重关联是指两个以上的类之间互相关联。 有序关联。在重数为“多”的关联端的对象可以是一
个无序的集合,如果这些对象必须是有序的,则可以 在关联的“多”端写上{ordered}来指明。
关联
限制关联。限制关联用于一对多或多对多的关联。用一 个称为限制的小方块来区分关联多端的对象集合,指明
反复细化高层模型直到可以实现的程度
努力避免在开发过程中出现大的概念跳变
一种基于对真实世界中的概念进行抽象和思 考问题的方法
5
面向对象方法概述
“面向对象方法”不仅仅是使用面向 对象编程语言( C++, Java )
面向对象=对象 +类+ 继承+通信
6
面向对象方法的发展历史
初始阶段
1960年代 : Simula 编程语言 1980年代: Smalltalk 编程语言
22
UML的发展历史
UML的创始人
Grady Booch, Jim Rumbaugh, Ivar Jacobson 在 Booch method, OMT, OOSE 的基础上,广泛征求意
见,集众家之长,几经修改而完成的
23
6.3.2 UML的发展历史
24
UML五种视图
从系统的静态结 构和动态行为角 度显示如何实现 系统的功能
课程进度
用户称述
问题定义
软件定义 阶段
可行性分析
需求分析
软件开发 阶段
设计 编码
测试
运行维护
阶段
维护
我们现在的 位置
回顾
结构化分析是结构化开发方法在需求分析阶段的活动
结构化分析的主要思想:抽象与分解 数据流图(DFD)描述输入数据流到输出数据流的变换(即加工)
过程,用于对系统的功能建模。
进行交流 有助于维护人员了解软件设计的思路和细节,为以后的
维护和升级提供了文档。
21
什么是UML
UML( Unified Modeling Language )
是一种面向对象的软件系统的通用可视化建模语言 不是一种可视化的程序设计语言,而是一种可视化的建模
语言
可视化:UML 提供一组具有明确语义的图形符号,来建 立清晰的模型以便于交流
33
UML的构成——事物
UML的行为事物:交互( Interaction )
交互由在特定环境中共同完成一定任务的一组对象之间交换 的消息组成。
UML 符号:
34
UML的构成——事物
UML分组事物:包( Package )
包是用来组织 UML 模型的基本事物 UML 符号:
35
UML的构成——事物
31
UML的构成——事物
UML的结构事物-4:
用例:
用例1
对一组序列动作的描述,系统执行这些动作将 对用户的参与者产生可观察的结果。
32
UML的构成——事物
UML的结构事物-5:
节点: 节点是一个物理元素,它在运行时存在,代表 一个计算机资源,如一台数据库服务器、pc机、 打印机等软件运行的基础硬件。
第六章 面向对象基础
3
内容提纲
面向对象方法概述
基本思想与发展历史 面向对象的软件工程方法
面向对象基础
面向对象基本概念
统一建模语言UML
UML语言概述 UML语言的基本元素 常用的UML图
4
面向对象方法概述
面向对象模型更接近于问题域
以问题域中的对象为基础建模 以对象、属性和操作对问题进行建模 将所有的信息(属性和操作)封装在对象中
用一种面向对象的编程语言将 OOD 模型中的各个成分编写 成程序
9
面向对象的软件开发方法
面向对象的测试( Object Oriented Testing,OOT )
在测试过程中继续运用 OO 技术进行以对象概念为中心的软件 测试
以类作为基本测试单位,集中检查在类定义之内的属性、操作 和有限的对外接口
13
面向对象基本概念
类与对象的区别
1. “同类对象具有相同的属性和服务”是指它们的定义 形式相同,而不是说每个对象的属性值都相同。
2. 类是静态的,类的存在、语义和关系在程序执行前就 已经定义好了。
3. 对象是动态的,对象在程序执行时可以被创建和删除。
在面向对象的系统分析和设计中,并不需要逐个对 对象进行说明,而是着重描述代表一批对象共性的类。
一致性父图子图的平衡数据平衡局部文件等完整性?数据字典由不同的数据条目组成而数据条目是对数据流图中的不同组成元素源和宿数据流加工文件的说明33第六章面向对象基础44内容提纲?面向对象方法概述?基本思想与发展历史?面向对象的软件工程方法?面向对象基础?面向对象基本概念?统一建模语言uml?uml语言概述?uml语言的基本元素?常用的uml图面向对象方法概述?面向对象模型更接近于问题域?以问题域中的对象为基础建模?以对象属性和操作对问题进行建模?将所有的信息属性和操作封装在对象中?反复细化高层模型直到可以实现的程度?努力避免在开发过程中出现大的概念跳变55一种基于对真实世界中的概念进行抽象和思考问题的方法面向对象方法概述66面向对象对象类继承通信面向对象方法不仅仅是使用面向对象编程语言cjava面向对象方法的发展历史?初始阶段?1960年代
26
27
UML的构成——事物
UML的结构事物-1:类(Class)
UML的构成——事物
UML的结构事物-1:类(Class)
可见性(Visibility)
public +: 公有的(缺省值),对于一个 给定的类,任何一带有可见性的外部类都可 以使用该特征。 protected #: 受保护的,类的任何子类都 可以使用该特征。 private –: 私有的,只有类本身可以使 用该特征。
20
软件建模概念
模型的类型
数学模型:采用精确的数学公式来描述系统 描述模型:采用自然语言以一种精确的方式描述系统的
某一方面,诸如备忘录、报表、结构化英语、伪码等。 图形模型:以直观的方式示意性地表示系统的某些方面
模型的作用
简化问题,通过抽象降低复杂性 有助于和其他开发小组成员、各种用户以及系统相关者
面向对象的方 法
简单好学
1)功能强大,符合人 们的认识习惯 2)易维护和复用, 3)增强问题域和软件 系统之间的衔接
1)维护困难, 2)重用性差, 3)难以满足用户的需 求(分析、设计概念 体系不一致)
不易掌握
面向对象的软件开发方法
面向对象分析( Object Oriented Analysis,OOA )
UML的构成——事物
UML的结构事物-2:接口( Interface )
接口描述了一个类或构件的向外提供的操作集。 接口描述了一个元素的外部可见行为。 UML 符号:
30
Байду номын сангаас
UML的构成——事物
UML的结构事物-3:构件( Component )
构件是系统中物理的、可替代的部件。 UML 符号:
角色是关联中靠近它的一端的类对另一端的类呈现的职责 如果关联上没有标出角色名,则隐含地用类的名称作为角色名
38
39
关联 1 表示1 个对象,重数的默认值为1 普 关 联 该010n...u通联的类...**1m关名两有表 表 表be联;端多示 示 示r1:可可少010..n两以写个或 或 或u个有上对m多 多1 类方一象b,e之 向 个 可r可2间 , 数 与以表用 表 值 对简示范一 示 方化n围条 该 的u表m,直 关 一b示称线 联 个er为为连 的 对1 *“接 使 象至重,用连nu数直方接m”线向。be,上;r2表写在示上关
聚合(Aggregation)是一种特殊形式的关联,它表示类之间 的整体与部分的关系
组合(Composition)是一种特殊形式的聚集,组合关系中的 整体与部分具有同样的生存期。
45
聚合
46
组合
47
UML的构成——关系
UML关系-2:泛化( Generalization)
48
49
50
UML的构成——关系
数据流图由括源和宿、数据流、加工、文件组成
建立分层数据流图的步骤:第一步画系统的输入和输出,第二 步画系统内部,第三步画加工内部,第四步重复第3步,直至每 个尚未分解的加工都足够简单(即不必再分解)
分层数据流图的审查:一致性(父图子图的平衡、数据平衡、 局部文件等),完整性
数据字典由不同的数据条目组成,而数据条目是对数据流图中 的不同组成元素(源和宿、数据流、加工、文件)的说明
UML注释事物:注释( Note )
注释是依附于一个元素或一组元素之上,对其进行约束 或解释的简单符号。
UML 符号:
36
UML的构成
37
4种事物
4种关系 9种图
UML的构成——关系
UML关系-1:关联( Association )
关联是一种结构关系,它描述了一组对象之间的静态连接 关联两端的类可以某种角色参与关联
10
内容提纲
面向对象方法概述
基本思想与发展历史 面向对象的软件工程方法
面向对象基础
软件模型的类型和作用
统一建模语言UML
UML语言概述 UML语言的基本元素 常用的UML图
11
面向对象基本概念
对象(Object):
系统中用来描述客观事物的一个实体,它是构成 系统的一个基本单位(或者构件),由一组属性和围 绕这组属性进行计算的一组操作组成。
UML关系-3:依赖( Dependency )
依赖是一种使用关系,它说明一个事物的变化可能影响 到使用它的另一个事物。
51
UML的构成——关系
UML关系-4:实现( Realization )
实现是类之间的语义关系,其中的一个类指定了由另一 个类保证执行的契约。
两种情况
接口与实现它们的类或构件之间 用例及其协作之间
面向对象软件维护( Object Oriented Software Maintenance,OOSM)
在面向对象方法中,各阶段采用的表示是一致的,从而大大降 低了理解的难度,无论是从程序中的错误追溯到问题域,还是 需求的变化需要从问题域追溯到程序,整个过程都是平坦的。
对象的封装性使得一个对象的修改对其他对象的影响很小,不 至于牵一发而动全身。
属性
用来描述对象静态特征的一个数据项。
操作
用来描述对象动态特征(行为)的一个动作序列。
12
面向对象基本概念
类(Class)
具有相同属性和操作的一组对象的集合,它 为属于该类的全部对象提供了统一的抽象描述, 其内部包括属性和操作两个主要部分。
类代表一个抽象的概念或事物,对象是在客观世 界中实际存在的类的实例。
16
面向对象基本概念
继承(Inheritance)
子类可以自动拥有父类的全部属性和操作
继承的作用:提供了软件的可重用性 继承的类型:单继承、多继承
17
面向对象基本概念
多态性(Polymorphism)
指在父类中定义的操作被子类继承后,可以具 有不同的数据类型或表现出不同的行为。
18
内容提纲
面向对象基本概念
消息(Message)
对象发出的服务请求,一般包含提供服务的对象 标识、需要调用的操作标识、输入信息和应答信息等 信息。
消息代表对象之间的交互
15
面向对象基本概念
封装(Encapsulation)
把对象的属性和操作结合成一个独立的系统单 位(对象),并尽可能隐藏对象的内部细节
发展阶段
1980年代: 许多 OO 编程语言(如 C++, Objective-C 等)
成熟阶段
1990年代: 面向对象分析和设计方法(Booch, OMT, OOSE 等),以及java语言
1997: UML 逐渐替代了传统的结构化方法
7
面向过程 vs. 面向对象
优点
缺点
面向过程的方 法
强调从系统的外部 参与者角度看到的 或需要的系统功能
逻辑视图
构建视图
Use case 视图
显示代码组件 的组织结果
进程视图
配置视图
显示系统的并发 性,解决在并发 系统中存在的通 信和同步问题
描述系统的物理 配置特征
25
UML的构成
基本UML建模元素
4种事物
4种关系 9种图
语义规则:也就是支配基本构 造块如何放在一起的规则 公共机制:达到特定目标的公 共UML方法
面向对象方法概述
基本思想与发展历史 面向对象的软件工程方法
面向对象基础
面向对象的基本概念
统一建模语言UML
UML语言概述 UML语言的基本元素 常用的UML图
19
软件建模概念
模型
现实世界某些重要方面的表示 一些模型在外形上类似于真实产品,一些模型是重要细
节的绘图表示,一些模型则是抽象的数学符号。 比如,房屋模型、桥梁模型、数学模型、飞机模型
分析和理解问题域,找出描述问题域和系统责任所需的类及 对象,分析它们的内部构成和外部关系,建立 OOA 模型。
面向对象设计( Object Oriented Design,OOD)
将 OOA 模型直接变成 OOD 模型,并且补充一些与实现有 关的部分,如:人机界面、数据存储、任务管理等。
面向对象编程( Object Oriented Programming, OOP)
“多”端的某个特殊对象,它将模型中一对多的关系简 化为一对一,将多对多简化为多对一。
关联
或关联。在两个关联间加上虚线,上面标以{or}来描述 或关联。
UML的构成
关联类:关联本身也可以有特性,关联类是一种具 有关联特性和类特性的建模元素。
44
UML的构成——关系
UML关系-1:聚合和组合
关联
多重关联。多重关联是指两个以上的类之间互相关联。 有序关联。在重数为“多”的关联端的对象可以是一
个无序的集合,如果这些对象必须是有序的,则可以 在关联的“多”端写上{ordered}来指明。
关联
限制关联。限制关联用于一对多或多对多的关联。用一 个称为限制的小方块来区分关联多端的对象集合,指明
反复细化高层模型直到可以实现的程度
努力避免在开发过程中出现大的概念跳变
一种基于对真实世界中的概念进行抽象和思 考问题的方法
5
面向对象方法概述
“面向对象方法”不仅仅是使用面向 对象编程语言( C++, Java )
面向对象=对象 +类+ 继承+通信
6
面向对象方法的发展历史
初始阶段
1960年代 : Simula 编程语言 1980年代: Smalltalk 编程语言
22
UML的发展历史
UML的创始人
Grady Booch, Jim Rumbaugh, Ivar Jacobson 在 Booch method, OMT, OOSE 的基础上,广泛征求意
见,集众家之长,几经修改而完成的
23
6.3.2 UML的发展历史
24
UML五种视图
从系统的静态结 构和动态行为角 度显示如何实现 系统的功能
课程进度
用户称述
问题定义
软件定义 阶段
可行性分析
需求分析
软件开发 阶段
设计 编码
测试
运行维护
阶段
维护
我们现在的 位置
回顾
结构化分析是结构化开发方法在需求分析阶段的活动
结构化分析的主要思想:抽象与分解 数据流图(DFD)描述输入数据流到输出数据流的变换(即加工)
过程,用于对系统的功能建模。
进行交流 有助于维护人员了解软件设计的思路和细节,为以后的
维护和升级提供了文档。
21
什么是UML
UML( Unified Modeling Language )
是一种面向对象的软件系统的通用可视化建模语言 不是一种可视化的程序设计语言,而是一种可视化的建模
语言
可视化:UML 提供一组具有明确语义的图形符号,来建 立清晰的模型以便于交流
33
UML的构成——事物
UML的行为事物:交互( Interaction )
交互由在特定环境中共同完成一定任务的一组对象之间交换 的消息组成。
UML 符号:
34
UML的构成——事物
UML分组事物:包( Package )
包是用来组织 UML 模型的基本事物 UML 符号:
35
UML的构成——事物
31
UML的构成——事物
UML的结构事物-4:
用例:
用例1
对一组序列动作的描述,系统执行这些动作将 对用户的参与者产生可观察的结果。
32
UML的构成——事物
UML的结构事物-5:
节点: 节点是一个物理元素,它在运行时存在,代表 一个计算机资源,如一台数据库服务器、pc机、 打印机等软件运行的基础硬件。
第六章 面向对象基础
3
内容提纲
面向对象方法概述
基本思想与发展历史 面向对象的软件工程方法
面向对象基础
面向对象基本概念
统一建模语言UML
UML语言概述 UML语言的基本元素 常用的UML图
4
面向对象方法概述
面向对象模型更接近于问题域
以问题域中的对象为基础建模 以对象、属性和操作对问题进行建模 将所有的信息(属性和操作)封装在对象中
用一种面向对象的编程语言将 OOD 模型中的各个成分编写 成程序
9
面向对象的软件开发方法
面向对象的测试( Object Oriented Testing,OOT )
在测试过程中继续运用 OO 技术进行以对象概念为中心的软件 测试
以类作为基本测试单位,集中检查在类定义之内的属性、操作 和有限的对外接口
13
面向对象基本概念
类与对象的区别
1. “同类对象具有相同的属性和服务”是指它们的定义 形式相同,而不是说每个对象的属性值都相同。
2. 类是静态的,类的存在、语义和关系在程序执行前就 已经定义好了。
3. 对象是动态的,对象在程序执行时可以被创建和删除。
在面向对象的系统分析和设计中,并不需要逐个对 对象进行说明,而是着重描述代表一批对象共性的类。
一致性父图子图的平衡数据平衡局部文件等完整性?数据字典由不同的数据条目组成而数据条目是对数据流图中的不同组成元素源和宿数据流加工文件的说明33第六章面向对象基础44内容提纲?面向对象方法概述?基本思想与发展历史?面向对象的软件工程方法?面向对象基础?面向对象基本概念?统一建模语言uml?uml语言概述?uml语言的基本元素?常用的uml图面向对象方法概述?面向对象模型更接近于问题域?以问题域中的对象为基础建模?以对象属性和操作对问题进行建模?将所有的信息属性和操作封装在对象中?反复细化高层模型直到可以实现的程度?努力避免在开发过程中出现大的概念跳变55一种基于对真实世界中的概念进行抽象和思考问题的方法面向对象方法概述66面向对象对象类继承通信面向对象方法不仅仅是使用面向对象编程语言cjava面向对象方法的发展历史?初始阶段?1960年代
26
27
UML的构成——事物
UML的结构事物-1:类(Class)
UML的构成——事物
UML的结构事物-1:类(Class)
可见性(Visibility)
public +: 公有的(缺省值),对于一个 给定的类,任何一带有可见性的外部类都可 以使用该特征。 protected #: 受保护的,类的任何子类都 可以使用该特征。 private –: 私有的,只有类本身可以使 用该特征。
20
软件建模概念
模型的类型
数学模型:采用精确的数学公式来描述系统 描述模型:采用自然语言以一种精确的方式描述系统的
某一方面,诸如备忘录、报表、结构化英语、伪码等。 图形模型:以直观的方式示意性地表示系统的某些方面
模型的作用
简化问题,通过抽象降低复杂性 有助于和其他开发小组成员、各种用户以及系统相关者
面向对象的方 法
简单好学
1)功能强大,符合人 们的认识习惯 2)易维护和复用, 3)增强问题域和软件 系统之间的衔接
1)维护困难, 2)重用性差, 3)难以满足用户的需 求(分析、设计概念 体系不一致)
不易掌握
面向对象的软件开发方法
面向对象分析( Object Oriented Analysis,OOA )
UML的构成——事物
UML的结构事物-2:接口( Interface )
接口描述了一个类或构件的向外提供的操作集。 接口描述了一个元素的外部可见行为。 UML 符号:
30
Байду номын сангаас
UML的构成——事物
UML的结构事物-3:构件( Component )
构件是系统中物理的、可替代的部件。 UML 符号:
角色是关联中靠近它的一端的类对另一端的类呈现的职责 如果关联上没有标出角色名,则隐含地用类的名称作为角色名
38
39
关联 1 表示1 个对象,重数的默认值为1 普 关 联 该010n...u通联的类...**1m关名两有表 表 表be联;端多示 示 示r1:可可少010..n两以写个或 或 或u个有上对m多 多1 类方一象b,e之 向 个 可r可2间 , 数 与以表用 表 值 对简示范一 示 方化n围条 该 的u表m,直 关 一b示称线 联 个er为为连 的 对1 *“接 使 象至重,用连nu数直方接m”线向。be,上;r2表写在示上关
聚合(Aggregation)是一种特殊形式的关联,它表示类之间 的整体与部分的关系
组合(Composition)是一种特殊形式的聚集,组合关系中的 整体与部分具有同样的生存期。
45
聚合
46
组合
47
UML的构成——关系
UML关系-2:泛化( Generalization)
48
49
50
UML的构成——关系
数据流图由括源和宿、数据流、加工、文件组成
建立分层数据流图的步骤:第一步画系统的输入和输出,第二 步画系统内部,第三步画加工内部,第四步重复第3步,直至每 个尚未分解的加工都足够简单(即不必再分解)
分层数据流图的审查:一致性(父图子图的平衡、数据平衡、 局部文件等),完整性
数据字典由不同的数据条目组成,而数据条目是对数据流图中 的不同组成元素(源和宿、数据流、加工、文件)的说明
UML注释事物:注释( Note )
注释是依附于一个元素或一组元素之上,对其进行约束 或解释的简单符号。
UML 符号:
36
UML的构成
37
4种事物
4种关系 9种图
UML的构成——关系
UML关系-1:关联( Association )
关联是一种结构关系,它描述了一组对象之间的静态连接 关联两端的类可以某种角色参与关联
10
内容提纲
面向对象方法概述
基本思想与发展历史 面向对象的软件工程方法
面向对象基础
软件模型的类型和作用
统一建模语言UML
UML语言概述 UML语言的基本元素 常用的UML图
11
面向对象基本概念
对象(Object):
系统中用来描述客观事物的一个实体,它是构成 系统的一个基本单位(或者构件),由一组属性和围 绕这组属性进行计算的一组操作组成。
UML关系-3:依赖( Dependency )
依赖是一种使用关系,它说明一个事物的变化可能影响 到使用它的另一个事物。
51
UML的构成——关系
UML关系-4:实现( Realization )
实现是类之间的语义关系,其中的一个类指定了由另一 个类保证执行的契约。
两种情况
接口与实现它们的类或构件之间 用例及其协作之间
面向对象软件维护( Object Oriented Software Maintenance,OOSM)
在面向对象方法中,各阶段采用的表示是一致的,从而大大降 低了理解的难度,无论是从程序中的错误追溯到问题域,还是 需求的变化需要从问题域追溯到程序,整个过程都是平坦的。
对象的封装性使得一个对象的修改对其他对象的影响很小,不 至于牵一发而动全身。
属性
用来描述对象静态特征的一个数据项。
操作
用来描述对象动态特征(行为)的一个动作序列。
12
面向对象基本概念
类(Class)
具有相同属性和操作的一组对象的集合,它 为属于该类的全部对象提供了统一的抽象描述, 其内部包括属性和操作两个主要部分。
类代表一个抽象的概念或事物,对象是在客观世 界中实际存在的类的实例。
16
面向对象基本概念
继承(Inheritance)
子类可以自动拥有父类的全部属性和操作
继承的作用:提供了软件的可重用性 继承的类型:单继承、多继承
17
面向对象基本概念
多态性(Polymorphism)
指在父类中定义的操作被子类继承后,可以具 有不同的数据类型或表现出不同的行为。
18
内容提纲