软件工程导论class13面向对象方法学引论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
80年代,C成为很受欢迎的程序设计语言,它不 仅可用在微机上,还可用在多种结构的系统和 环境中。80年代早期,AT&T贝尔实验室的 Bjarne Stroustrup把C语言扩展为支持面向对 象程序设计的C++。在C++中,程序员可以在 其熟悉的语言环境下学习掌握面向对象的程序 设计技术,而不必去探究一种新的语言和环境。
软件工程导论 第13课
第 9 章 面向对象方法学引论
整理ppt
1
发展概述
面向对象并非是一个新的概念,实际上它已有30 多年的历史。寻其根源可追溯到60年代的挪威, 当时挪威计算中心的Kristen Nygaard和OleJohan Dahl开发了一种称作Simula67的语言。 Simula67首次引入了类、协同程序和子类的概 念,这很象今天的面向对象语言。
改;
(2)容易修改:Class 独立性强:只要修改不涉及 class的对外接口,则内部修改完全不影响外部调 用;
继承(Inheritance)和多态性(polymorphism)使其 易被修改和扩充;
(3)容易理解、容易测试、调试
整理ppt
14
5 可维护性好
(3)容易理解 符合人的思维习惯,软件系统结构与问题空
整理ppt
9
1 与人类习惯的思维方式一致
传统方法:面向过程设计,以计算为核心,数据与 操作分离,不易理解。
② OOM:以object 为核心,
基本原理:使用现实世界的概念抽象地思考问题从 而自然地解决问题,强调对现实概念的模拟而不强 调算法。
面向对象方法学的基本原则,是按照人们习惯的思 维方式建立问题域的模型,开发出尽可 能直观、 自然地表现求解方法的软件系统。
例如,一名职工、一家公司、一个窗口、一 座图书馆、一本图书、贷款、借款等等,都 可以作为一个对象。
整理ppt
16
9.2.1 对象
由于客观世界中的实体通常都具有静态的属 性,又具有动态的行为
4
9.1.1 面向对象方法学的要点
OOM的出发点和基本原则: 尽可能模拟人类习惯的思维方式,使描述问
题的问题空间与实现解法的解空间在结构上 尽可能一致。
面向对象方法是一种以数据和信息为主线, 把数据和处理相结合的方法:
面向对象方法把对象作为由数据及可以施加 在这些数据上的操作所构成的统一体
Class:由特殊到一般的归纳(induction) Inheritance:由一般到特殊的演绎(deduction)
整理ppt
10
2 稳定性好
传统方法:结构依赖于功能,不稳定。 OOM:以object模拟实体,以对象间的联
系刻画实体间的联系。需求变化不会引起结 构的整体变化,只需做一些局部修改。因为 实体相对稳定,故系统也相应稳定。
整理ppt
5
9.1.1 面向对象方法学的要点
解空间与问题空间的“语义断层” 对象 解空间对象和问题空间对象 解空间对象的呆板 问题空间对象具有静态属性又具有动态行为
整理ppt
6
OOM的4个要素
(1)对象(object):世界由对象组成。
(2)类(class) :具有相同属性和操作的对象 可划分为类; 单个对象可视为某一类的实例 (instance)
(3)继承(inheritance):类可分层下层子类与 上层父类有相同特征,称为继承
(4)消息(message):对象间只能通过发送消 息进行联系, 外界不能处理对象的内部数据, 只能通过消息
整理ppt
7
基于对象(objects-based)方法
使用对象-消息
基于类(class-based)方法
间的结构基本一致,便于理解
派生类只要理解新生部分,理解量少
(4)容易测试、调试
调试只对新派生类进行,类独立性强,只对 类内部进行调试,比较容易。
整理ppt
15
9.2 面向对象的概念
9.2.1 对象
在应用领域中有意义的、与所要解决的问题 有关系的任何事物都可以作为对象,对象既 可以是具体的物理实体的抽象,也可以是人 为的 概念,或者是任何有明确边界和意义的 东西。
使用类-对象-消息
面向对象(objects-based)方法
使用类-对象-消息-继承
整理ppt
8
wenku.baidu.com
9.1.2 面向对象方法学的优点
与人类习惯的思维方式一致 稳定性好 可重用性好 可维护性好 注意:OOM并不是减少了开发时间,而是
通过提高可重用性、可维护性,进行扩充和 修改的容易程度等,从长远角度改进了软件 的质量。
整理ppt
11
3 可重用性好
传统方法:通过建立标准函数库来重用软构 件。但标 准函数缺少必要的“柔性”,难以 适应不同场合的不同需要。
OOM:封装性,信息隐蔽,独立性
灵活性:一个class所有的instances 都可 重用它的代码;由派生出的新的class 可重 用其父类的代码,并且可以修改、扩充而不 影响其父类的使用。
70年代中期,Xerox Palo Alto研究中心的研究人 员设计了Smalltalk语言,该语言的每个元素都 被当作一个对象来实现,其程序设计环境及相 关的各个方面都是面向对象的。
整理ppt
2
但是,面向对象的推广很慢。例如:Samlltalk的 成果直到1981年8月因Byte杂志的介绍才为外 界所知,许多软件开发人员了解Samlltalk时, 都把它看作是一个窗口系统,而不是程序设计 技术的一次革命。
整理ppt
3
自90年代以来,软件与硬件之间的差距至少 有两代处理器之多,并且这种差距还在增大。 当软件系统变得更加复杂时,常规软件工具、 技术和概念已不足以应付,从而使软件开发 者陷入了困境。但面向对象的方法能够控制 软件的复杂性,从而促进了面向对象的发展, 掀起了一股“面向对象”热。
整理ppt
整理ppt
12
4 较易开发大型软件产品
构成软件系统的每个对象就象一个微型程序, 有自己的数据、操作、功能、用途。把一个 大型软件产品分解成一系列本质上相互独立 的小产品处理,降低了技术难度。
便于管理
整理ppt
13
5 可维护性好
传统方法:可维护性是最令人头痛的问题。
OOM:从以下几方面改善了可维护性 (1)稳定性好:需求的变化不牵动全局,只需局部修
软件工程导论 第13课
第 9 章 面向对象方法学引论
整理ppt
1
发展概述
面向对象并非是一个新的概念,实际上它已有30 多年的历史。寻其根源可追溯到60年代的挪威, 当时挪威计算中心的Kristen Nygaard和OleJohan Dahl开发了一种称作Simula67的语言。 Simula67首次引入了类、协同程序和子类的概 念,这很象今天的面向对象语言。
改;
(2)容易修改:Class 独立性强:只要修改不涉及 class的对外接口,则内部修改完全不影响外部调 用;
继承(Inheritance)和多态性(polymorphism)使其 易被修改和扩充;
(3)容易理解、容易测试、调试
整理ppt
14
5 可维护性好
(3)容易理解 符合人的思维习惯,软件系统结构与问题空
整理ppt
9
1 与人类习惯的思维方式一致
传统方法:面向过程设计,以计算为核心,数据与 操作分离,不易理解。
② OOM:以object 为核心,
基本原理:使用现实世界的概念抽象地思考问题从 而自然地解决问题,强调对现实概念的模拟而不强 调算法。
面向对象方法学的基本原则,是按照人们习惯的思 维方式建立问题域的模型,开发出尽可 能直观、 自然地表现求解方法的软件系统。
例如,一名职工、一家公司、一个窗口、一 座图书馆、一本图书、贷款、借款等等,都 可以作为一个对象。
整理ppt
16
9.2.1 对象
由于客观世界中的实体通常都具有静态的属 性,又具有动态的行为
4
9.1.1 面向对象方法学的要点
OOM的出发点和基本原则: 尽可能模拟人类习惯的思维方式,使描述问
题的问题空间与实现解法的解空间在结构上 尽可能一致。
面向对象方法是一种以数据和信息为主线, 把数据和处理相结合的方法:
面向对象方法把对象作为由数据及可以施加 在这些数据上的操作所构成的统一体
Class:由特殊到一般的归纳(induction) Inheritance:由一般到特殊的演绎(deduction)
整理ppt
10
2 稳定性好
传统方法:结构依赖于功能,不稳定。 OOM:以object模拟实体,以对象间的联
系刻画实体间的联系。需求变化不会引起结 构的整体变化,只需做一些局部修改。因为 实体相对稳定,故系统也相应稳定。
整理ppt
5
9.1.1 面向对象方法学的要点
解空间与问题空间的“语义断层” 对象 解空间对象和问题空间对象 解空间对象的呆板 问题空间对象具有静态属性又具有动态行为
整理ppt
6
OOM的4个要素
(1)对象(object):世界由对象组成。
(2)类(class) :具有相同属性和操作的对象 可划分为类; 单个对象可视为某一类的实例 (instance)
(3)继承(inheritance):类可分层下层子类与 上层父类有相同特征,称为继承
(4)消息(message):对象间只能通过发送消 息进行联系, 外界不能处理对象的内部数据, 只能通过消息
整理ppt
7
基于对象(objects-based)方法
使用对象-消息
基于类(class-based)方法
间的结构基本一致,便于理解
派生类只要理解新生部分,理解量少
(4)容易测试、调试
调试只对新派生类进行,类独立性强,只对 类内部进行调试,比较容易。
整理ppt
15
9.2 面向对象的概念
9.2.1 对象
在应用领域中有意义的、与所要解决的问题 有关系的任何事物都可以作为对象,对象既 可以是具体的物理实体的抽象,也可以是人 为的 概念,或者是任何有明确边界和意义的 东西。
使用类-对象-消息
面向对象(objects-based)方法
使用类-对象-消息-继承
整理ppt
8
wenku.baidu.com
9.1.2 面向对象方法学的优点
与人类习惯的思维方式一致 稳定性好 可重用性好 可维护性好 注意:OOM并不是减少了开发时间,而是
通过提高可重用性、可维护性,进行扩充和 修改的容易程度等,从长远角度改进了软件 的质量。
整理ppt
11
3 可重用性好
传统方法:通过建立标准函数库来重用软构 件。但标 准函数缺少必要的“柔性”,难以 适应不同场合的不同需要。
OOM:封装性,信息隐蔽,独立性
灵活性:一个class所有的instances 都可 重用它的代码;由派生出的新的class 可重 用其父类的代码,并且可以修改、扩充而不 影响其父类的使用。
70年代中期,Xerox Palo Alto研究中心的研究人 员设计了Smalltalk语言,该语言的每个元素都 被当作一个对象来实现,其程序设计环境及相 关的各个方面都是面向对象的。
整理ppt
2
但是,面向对象的推广很慢。例如:Samlltalk的 成果直到1981年8月因Byte杂志的介绍才为外 界所知,许多软件开发人员了解Samlltalk时, 都把它看作是一个窗口系统,而不是程序设计 技术的一次革命。
整理ppt
3
自90年代以来,软件与硬件之间的差距至少 有两代处理器之多,并且这种差距还在增大。 当软件系统变得更加复杂时,常规软件工具、 技术和概念已不足以应付,从而使软件开发 者陷入了困境。但面向对象的方法能够控制 软件的复杂性,从而促进了面向对象的发展, 掀起了一股“面向对象”热。
整理ppt
整理ppt
12
4 较易开发大型软件产品
构成软件系统的每个对象就象一个微型程序, 有自己的数据、操作、功能、用途。把一个 大型软件产品分解成一系列本质上相互独立 的小产品处理,降低了技术难度。
便于管理
整理ppt
13
5 可维护性好
传统方法:可维护性是最令人头痛的问题。
OOM:从以下几方面改善了可维护性 (1)稳定性好:需求的变化不牵动全局,只需局部修