面向对象的系统开发方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24
10.5.2 面向对象的基本概念和特征
面向对象的特征 (4)多态性(多形性) 多态性增强了软件的灵活性和重用性。允许使用 更为明确、易懂的方式去建立通用软件。多态性与继 承性相结合使软件具有更广泛的重用性和可扩充性。
25
10.5.2 面向对象的基本概念和特征
面向对象的特征 (5)易维护性 面向对象的抽象、封装使对象信息隐藏在局部。 当对象进行修改,或对象自身产生错误时,由此带来 的影响仅仅局限在对象内部而不会波及其他对象乃至 整个系统,这极大的方便了软件设计、构造和运行过 程中的检错、修改。
(1) 区分对象及其属性,如区分车和车的大小; (2) 区分整体对象及其组成部分,如区分车和车轮; (3) 不同对象类的形成及区分,如所有车的类和所有船 的类。
4
10.5.2 面向对象的基本概念和特征
2. 对象(Object) 对象是对一组信息及其操作的描述。
如:一辆汽车是一个对象,它包含了汽车的信息(如颜色、型 号、载重量等)及其操作(如启动、刹车等)。 一个窗口是一个对象,它包含了窗口的信息(如大小、颜 色、位置等)及其操作(如打开、关闭等)。
10.5.1 面向对象方法的基本思想
客观事物是由对象组成 对象是由属性和方法构成 对象之间的联系通过消息传递机制 来实现 对象可以按其属性来归类,子类可 以通过继承机制获得其父类的特征 对象具有封装性
10.5.2 面向对象的基本概念和特征
1. 面向对象 面向对象是一种认识客观世界的世界观,是从结 构组织角度模拟客观世界的一种方法,人们在认识和 理解现实世界的过程中,普遍运用以下三个构造法则:
26
10.5.3 面向对象系统开发方法的过程
一、面向对象开发方法的内容与过程 首先是面向对象的系统分析(OOA),它的任务是了 解问题域内该问题所涉及的对象和对象间的关系,建 立问题模型。 其次是面向对象的系统设计(OOD),它的任务是调 整、完善和充实由OOA建立的模型。 最后是面向对象的系统实现(OOP),它的任务是用 面向对象的语言实现OOD提出的模型。 这与传统的生命周期法相似,但各阶段所解决的 问题和采用的描述方法却有极大的区别。
13
10.5.2 面向对象的基本概念和特征
8. 消息(message) 面向对象技术是通过对象间的相互合作来推动的, 对象间的这种相互合作需要一个机构协助进行,这样 的机构可以称为“消息传递”。 消息传递过程中,由发送消息的对象(SENDER)的使 动操作产生输出结果,做为消息(MESSAGE)传送 至接受消息的对象(RECEVER),引发接受消息的对 象一系列的操作。所传送的消息实质上是接受对象所 具有的操作/方法名称,有时还包括相应参数,如下 图所示:
4. 方法(Methord) 即对象所应有的各种操作。 如:窗口关闭(form1.close) 这种操作的过程对外是封闭的,即用户只能看到 这一方法实施后的结果。这相当于事先已经设计好的 各种过程,只需要调用就可以了,用户不必去关心这 一过程是如何编写的,事实上,这个过程已经封装在 对象中,用户也看不到。 对象的这一特性,即是对象的封装性.
20
10.5.2 面向对象的基本概念和特征
面向对象的特征
(3)继承性 在类层次中,子类只继承一个父类的数据结构和方 法,则称为单重继承。 在类层次中,子类继承了多个父类的数据结构和方 法.则称为多重继承。 在软件开发中,类的继承性使所建立的软件具有开 放性、可扩充性,这是信息组织与分类的行之有效的 方法,它简化了对象、类的创建工作量,增加了代码 的可重用性。 21
10
10.5.2 面向对象的基本概念和特征
7. 继承(Inheritance) 任何一个子类都具有其父类所有的属性、方法、 事件。这一特性叫做类的继承。 如果父类的特性发生变化,其子类也相应改变。 继承机制的优点在于:
11
10.5.2 面向对象的基本概念和特征
7. 继承(Inheritance) (1) 避免了由于系统内类对象封闭而造成数据 和操作冗余的现象。
19
10.5.2 面向对象的基本概念和特征
面向对象的特征
(3)继承性 继承性是子类自动共享父类数据结构和方法的机 制,这是类之间的一种关系。在定义和实现一个类的 时候,可以在一个已经存在的类的基础之上来进行, 把这个已经存在的类所定义的内容做为自己的内容, 并加入若干新的内容。 继承性是面向对象程序设计语言不同于其他语言 的最主要的特点,是其他语言所没有的。
10.5 面向对象的系统开发方法 主要内容 围绕面向对象技术的基本概念和运 行机制,结合应用实例,介绍面向对象 的系统开发方法。
1
10.5 面向对象方法
面向对象方法将现实世界中任何事物均 视为“对象”。 客观世界看做是由许多不同种类的对象 构成的,对象之间的相互作用和相互联 系构成完整的客观世界。
7
10.5.2 面向对象的基本概念和特征
5. 事件(Event) 即对象在执行某一操作后激发并执行的一个或多 个过程。 这些过程对用户是透明的,用户可以为这个过程 编写自己的程序代码,以完成特定的操作。 如:窗口对象在执行打开过程时,就会激活一个 Active事件(过程),用户可以自己编写这一过程的 代码,以便在打开这个窗口时完成一些自己所要求的 任务,如打开一个数据库,对某个变量进行初始化等。
29
10.5.3 面向对象系统开发方法的过程
1、面向对象的系统分析 4. 继承的原则。继承是指直接获取父类已有的性 质和特性,而不必重复定义。 5. 构造问题空间。构造问题空间的常用方法如下: (1) 区分对象及其属性。如区分一棵树和树的大 小和位置。 (2) 区分整体对象及其组成部分。如区分一棵树 和树枝,这一构造过程称为构造分类结构。 (3)不同对象类的形成与区分。如所有树的类和 所有石头的类的形成与区分。此过程称为组装结构。
5
10.5.2 面向对象的基本概念和特征
3. 属性(Property) 即对象所包含的信息。
如:窗口的宽度(form1.width),属性可以在设计对象时确 定,也可以在程序运行时读取和修改(如: W=form1.width; form1.width=100)。
6
10.5.2 面向对象的基本概念和特征
8
10.5.2 面向对象的基本概念和特征
6. 类(Class)与实例(Instance) 类是具有共同属性、方法、事件的对象的集合。 而一个具体的对象则是其对应类的一个实例。 如果对某一个类的定义进行修改,如增加一些属 性或修改一些方法,就得到一个新的类,而原先的类 就是新类的父类。
wenku.baidu.com
9
10.5.2 面向对象的基本概念和特征
31
10.5.3 面向对象系统开发方法的过程
2、面向对象的系统设计 • 针对OOA给出的问题域模型,用面向对象方法设 计出软件基础架构(概要设计)和完整的类结构 (详细设计),以实现业务功能。 • 生成对象类的动、静态模型。
6. 类(Class)与实例(Instance) 我们在窗口类的定义上,另外定义它还包含两个 按钮,一个标题是"确定",一个标题是"取消",并且 在分别按下这两个按钮后,执行"OK"与"Cancel"两个 事件。这样就定义了一个新类,我们可以把它叫做" 选择窗口"类,并保存它,这样就可以直接由"选择窗 口"生成窗口实例,而不用每次都由"窗口"类产生, 然后再添加按钮。
综上所述,面向对象的整体概念可表示如下: 面向对象=数据抽象+数据抽象类型+继承性
16
10.5.2 面向对象的基本概念和特征
面向对象的特征
(1)对象惟一性
每个对象都有自身唯一的标识,通过这种标 识.可找到相应的对象。在对象的整个生命周期中, 它的标识都不改变,不同的对象不能有相同的标识。 在对象建立时,由系统授予新对象唯一的对象标识符, 它在历史版本管理中有巨大作用。
18
10.5.2 面向对象的基本概念和特征
面向对象的特征 (2) 封装性(信息隐蔽) 对象是封装的最基本单位。在用面向对象的方 法解决实际问题时,要创建类的实例,即建立对象, 除了应具有的共性外,还应定义仅由该对象所私有的 特性。因此,对象封装比类的封装更具体、更细致。 封装防止了程序相互依赖性而带来的变动影响。 面向对象的封装比传统语言的封装更为清晰、更为有 力。
类与其父类、子类构成的层次关系称为类阶。每个子类都可 以继承其父类的状态与行为。同时子类可以有与父类不同的 地方,即子类可根据自身特点新增或局部修改父类的行为而 加以使用,甚至可以覆盖父类中的定义。利用继承,我们只 要在父类原有的基础上修改、增补、删减少量的数据和方法, 即可得到子类。
12
10.5.2 面向对象的基本概念和特征
14
10.5.2 面向对象的基本概念和特征
8. 消息(message)
传送消息 (SENDER)
消息 <操作名,参数>
接受消息 (RECEIVER)
例如,一个汽车对象具有"行驶"这项操作,那么 要让汽车以时速50公里行驶,我们需传递给汽车对象 "行驶"及"时速50公里"的消息,以触发这个对象
15
10.5.2 面向对象的基本概念和特征
30
10.5.3 面向对象系统开发方法的过程
1、面向对象的系统分析(OOA) 面向对象的分析方法包括以下5个方面: ⑴ 认定对象 ⑵ 认定结构 ⑶ 认定主题 ⑷ 定义属性和实例关联 ⑸ 定义服务和消息关联 由此可见:传统的分析产生一组过程性的文档, 其着眼点是将系统看作一组功能。而面向对象的分析 文档将问题看作一组相互作用的实体,并确定实体之 间的关系。
人
学生 大学生 中学生 教师 小学生 工人 农民
23
10.5.2 面向对象的基本概念和特征
面向对象的特征 (4)多态性(多形性) 多态性是指相同的操作或函数、过程可作用于 多种类型的对象上并获得不同结果。不同的对象,收 到同一消息可以产生不同的结果,这种现象称为多态 性。 多态性允许每个对象以适合自身的方式去响应共 同的消息。这样就增强了操作的透明性、可理解性和 可维护性。
7. 继承(Inheritance) (2) 接口的一致性(Consistency of interface), 父类衍生子类的其他操作接口也传递给其子类。 (3) 符合软件可重用性,传统的结构化方法中 的过程调用,以及由类定义的对象,都是软件重用的 典型例子。但它们都比不上继承的层次高。因为通过 继承明显使软件开发速度加快,实现较高程度的共享。 这是继承最重要的优势。
1、面向对象的系统分析 面向对象的分析方法运用以下主要原则: 1.构造和分解相结合。构造是指由基本对象组装 成复杂对象的过程。分解是对大粒度对象进行细化, 从而完成系统模型细化的过程。 2. 抽象与具体相结合。抽象是指强调事务的本质 属性而忽略非本质细节。具体则是对必要的细节加以 刻画的过程。 3. 封装的原则。封装是指对象的各种独立外部特 性与内部实现相分离,从而减少了程序间的相互依赖, 有助于提高程序的可重用性。
17
10.5.2 面向对象的基本概念和特征
面向对象的特征 (2)封装性(信息隐蔽) 封装性是保证软件部件具有优良的模块性的基础。 封装性是指所有软件部件内部都有明确的范围以及清 楚的外部边界。每个软件部件都有友好的界面接口, 软件部件的内部实现与外部可访问性分离。 面向对象的类是封装良好的模块,类定义将其说 明(用户可见的外部接口)与实现(用户不可见的内部实 现)显式地分开,其内部实现按其具体定义的作用域 提供保护。
10.5.2 面向对象的基本概念和特征
面向对象的特征 (3)继承性 采用继承性,提供了类之间规范的结构。对单重 继承,可用树型结构来描述;对多重继承,可用网 格结构来描述。通过类的继承关系,使公共的特性 能够共享,提高了软件的重用性。
22
10.5.2 面向对象的基本概念和特征
面向对象的特征
(3)继承性
27
10.5.3 面向对象系统开发方法的过程
二、面向对象开发方法各阶段的思路 1、面向对象的系统分析(OOA) • 用面向对象方法分析问题域,建立基于对象、 消息的业务模型,形成对客观世界和业务本身 的正确认识。 • 生成业务对象的动、静态模型和抽象类。
28
10.5.3 面向对象系统开发方法的过程
10.5.2 面向对象的基本概念和特征
面向对象的特征 (4)多态性(多形性) 多态性增强了软件的灵活性和重用性。允许使用 更为明确、易懂的方式去建立通用软件。多态性与继 承性相结合使软件具有更广泛的重用性和可扩充性。
25
10.5.2 面向对象的基本概念和特征
面向对象的特征 (5)易维护性 面向对象的抽象、封装使对象信息隐藏在局部。 当对象进行修改,或对象自身产生错误时,由此带来 的影响仅仅局限在对象内部而不会波及其他对象乃至 整个系统,这极大的方便了软件设计、构造和运行过 程中的检错、修改。
(1) 区分对象及其属性,如区分车和车的大小; (2) 区分整体对象及其组成部分,如区分车和车轮; (3) 不同对象类的形成及区分,如所有车的类和所有船 的类。
4
10.5.2 面向对象的基本概念和特征
2. 对象(Object) 对象是对一组信息及其操作的描述。
如:一辆汽车是一个对象,它包含了汽车的信息(如颜色、型 号、载重量等)及其操作(如启动、刹车等)。 一个窗口是一个对象,它包含了窗口的信息(如大小、颜 色、位置等)及其操作(如打开、关闭等)。
10.5.1 面向对象方法的基本思想
客观事物是由对象组成 对象是由属性和方法构成 对象之间的联系通过消息传递机制 来实现 对象可以按其属性来归类,子类可 以通过继承机制获得其父类的特征 对象具有封装性
10.5.2 面向对象的基本概念和特征
1. 面向对象 面向对象是一种认识客观世界的世界观,是从结 构组织角度模拟客观世界的一种方法,人们在认识和 理解现实世界的过程中,普遍运用以下三个构造法则:
26
10.5.3 面向对象系统开发方法的过程
一、面向对象开发方法的内容与过程 首先是面向对象的系统分析(OOA),它的任务是了 解问题域内该问题所涉及的对象和对象间的关系,建 立问题模型。 其次是面向对象的系统设计(OOD),它的任务是调 整、完善和充实由OOA建立的模型。 最后是面向对象的系统实现(OOP),它的任务是用 面向对象的语言实现OOD提出的模型。 这与传统的生命周期法相似,但各阶段所解决的 问题和采用的描述方法却有极大的区别。
13
10.5.2 面向对象的基本概念和特征
8. 消息(message) 面向对象技术是通过对象间的相互合作来推动的, 对象间的这种相互合作需要一个机构协助进行,这样 的机构可以称为“消息传递”。 消息传递过程中,由发送消息的对象(SENDER)的使 动操作产生输出结果,做为消息(MESSAGE)传送 至接受消息的对象(RECEVER),引发接受消息的对 象一系列的操作。所传送的消息实质上是接受对象所 具有的操作/方法名称,有时还包括相应参数,如下 图所示:
4. 方法(Methord) 即对象所应有的各种操作。 如:窗口关闭(form1.close) 这种操作的过程对外是封闭的,即用户只能看到 这一方法实施后的结果。这相当于事先已经设计好的 各种过程,只需要调用就可以了,用户不必去关心这 一过程是如何编写的,事实上,这个过程已经封装在 对象中,用户也看不到。 对象的这一特性,即是对象的封装性.
20
10.5.2 面向对象的基本概念和特征
面向对象的特征
(3)继承性 在类层次中,子类只继承一个父类的数据结构和方 法,则称为单重继承。 在类层次中,子类继承了多个父类的数据结构和方 法.则称为多重继承。 在软件开发中,类的继承性使所建立的软件具有开 放性、可扩充性,这是信息组织与分类的行之有效的 方法,它简化了对象、类的创建工作量,增加了代码 的可重用性。 21
10
10.5.2 面向对象的基本概念和特征
7. 继承(Inheritance) 任何一个子类都具有其父类所有的属性、方法、 事件。这一特性叫做类的继承。 如果父类的特性发生变化,其子类也相应改变。 继承机制的优点在于:
11
10.5.2 面向对象的基本概念和特征
7. 继承(Inheritance) (1) 避免了由于系统内类对象封闭而造成数据 和操作冗余的现象。
19
10.5.2 面向对象的基本概念和特征
面向对象的特征
(3)继承性 继承性是子类自动共享父类数据结构和方法的机 制,这是类之间的一种关系。在定义和实现一个类的 时候,可以在一个已经存在的类的基础之上来进行, 把这个已经存在的类所定义的内容做为自己的内容, 并加入若干新的内容。 继承性是面向对象程序设计语言不同于其他语言 的最主要的特点,是其他语言所没有的。
10.5 面向对象的系统开发方法 主要内容 围绕面向对象技术的基本概念和运 行机制,结合应用实例,介绍面向对象 的系统开发方法。
1
10.5 面向对象方法
面向对象方法将现实世界中任何事物均 视为“对象”。 客观世界看做是由许多不同种类的对象 构成的,对象之间的相互作用和相互联 系构成完整的客观世界。
7
10.5.2 面向对象的基本概念和特征
5. 事件(Event) 即对象在执行某一操作后激发并执行的一个或多 个过程。 这些过程对用户是透明的,用户可以为这个过程 编写自己的程序代码,以完成特定的操作。 如:窗口对象在执行打开过程时,就会激活一个 Active事件(过程),用户可以自己编写这一过程的 代码,以便在打开这个窗口时完成一些自己所要求的 任务,如打开一个数据库,对某个变量进行初始化等。
29
10.5.3 面向对象系统开发方法的过程
1、面向对象的系统分析 4. 继承的原则。继承是指直接获取父类已有的性 质和特性,而不必重复定义。 5. 构造问题空间。构造问题空间的常用方法如下: (1) 区分对象及其属性。如区分一棵树和树的大 小和位置。 (2) 区分整体对象及其组成部分。如区分一棵树 和树枝,这一构造过程称为构造分类结构。 (3)不同对象类的形成与区分。如所有树的类和 所有石头的类的形成与区分。此过程称为组装结构。
5
10.5.2 面向对象的基本概念和特征
3. 属性(Property) 即对象所包含的信息。
如:窗口的宽度(form1.width),属性可以在设计对象时确 定,也可以在程序运行时读取和修改(如: W=form1.width; form1.width=100)。
6
10.5.2 面向对象的基本概念和特征
8
10.5.2 面向对象的基本概念和特征
6. 类(Class)与实例(Instance) 类是具有共同属性、方法、事件的对象的集合。 而一个具体的对象则是其对应类的一个实例。 如果对某一个类的定义进行修改,如增加一些属 性或修改一些方法,就得到一个新的类,而原先的类 就是新类的父类。
wenku.baidu.com
9
10.5.2 面向对象的基本概念和特征
31
10.5.3 面向对象系统开发方法的过程
2、面向对象的系统设计 • 针对OOA给出的问题域模型,用面向对象方法设 计出软件基础架构(概要设计)和完整的类结构 (详细设计),以实现业务功能。 • 生成对象类的动、静态模型。
6. 类(Class)与实例(Instance) 我们在窗口类的定义上,另外定义它还包含两个 按钮,一个标题是"确定",一个标题是"取消",并且 在分别按下这两个按钮后,执行"OK"与"Cancel"两个 事件。这样就定义了一个新类,我们可以把它叫做" 选择窗口"类,并保存它,这样就可以直接由"选择窗 口"生成窗口实例,而不用每次都由"窗口"类产生, 然后再添加按钮。
综上所述,面向对象的整体概念可表示如下: 面向对象=数据抽象+数据抽象类型+继承性
16
10.5.2 面向对象的基本概念和特征
面向对象的特征
(1)对象惟一性
每个对象都有自身唯一的标识,通过这种标 识.可找到相应的对象。在对象的整个生命周期中, 它的标识都不改变,不同的对象不能有相同的标识。 在对象建立时,由系统授予新对象唯一的对象标识符, 它在历史版本管理中有巨大作用。
18
10.5.2 面向对象的基本概念和特征
面向对象的特征 (2) 封装性(信息隐蔽) 对象是封装的最基本单位。在用面向对象的方 法解决实际问题时,要创建类的实例,即建立对象, 除了应具有的共性外,还应定义仅由该对象所私有的 特性。因此,对象封装比类的封装更具体、更细致。 封装防止了程序相互依赖性而带来的变动影响。 面向对象的封装比传统语言的封装更为清晰、更为有 力。
类与其父类、子类构成的层次关系称为类阶。每个子类都可 以继承其父类的状态与行为。同时子类可以有与父类不同的 地方,即子类可根据自身特点新增或局部修改父类的行为而 加以使用,甚至可以覆盖父类中的定义。利用继承,我们只 要在父类原有的基础上修改、增补、删减少量的数据和方法, 即可得到子类。
12
10.5.2 面向对象的基本概念和特征
14
10.5.2 面向对象的基本概念和特征
8. 消息(message)
传送消息 (SENDER)
消息 <操作名,参数>
接受消息 (RECEIVER)
例如,一个汽车对象具有"行驶"这项操作,那么 要让汽车以时速50公里行驶,我们需传递给汽车对象 "行驶"及"时速50公里"的消息,以触发这个对象
15
10.5.2 面向对象的基本概念和特征
30
10.5.3 面向对象系统开发方法的过程
1、面向对象的系统分析(OOA) 面向对象的分析方法包括以下5个方面: ⑴ 认定对象 ⑵ 认定结构 ⑶ 认定主题 ⑷ 定义属性和实例关联 ⑸ 定义服务和消息关联 由此可见:传统的分析产生一组过程性的文档, 其着眼点是将系统看作一组功能。而面向对象的分析 文档将问题看作一组相互作用的实体,并确定实体之 间的关系。
人
学生 大学生 中学生 教师 小学生 工人 农民
23
10.5.2 面向对象的基本概念和特征
面向对象的特征 (4)多态性(多形性) 多态性是指相同的操作或函数、过程可作用于 多种类型的对象上并获得不同结果。不同的对象,收 到同一消息可以产生不同的结果,这种现象称为多态 性。 多态性允许每个对象以适合自身的方式去响应共 同的消息。这样就增强了操作的透明性、可理解性和 可维护性。
7. 继承(Inheritance) (2) 接口的一致性(Consistency of interface), 父类衍生子类的其他操作接口也传递给其子类。 (3) 符合软件可重用性,传统的结构化方法中 的过程调用,以及由类定义的对象,都是软件重用的 典型例子。但它们都比不上继承的层次高。因为通过 继承明显使软件开发速度加快,实现较高程度的共享。 这是继承最重要的优势。
1、面向对象的系统分析 面向对象的分析方法运用以下主要原则: 1.构造和分解相结合。构造是指由基本对象组装 成复杂对象的过程。分解是对大粒度对象进行细化, 从而完成系统模型细化的过程。 2. 抽象与具体相结合。抽象是指强调事务的本质 属性而忽略非本质细节。具体则是对必要的细节加以 刻画的过程。 3. 封装的原则。封装是指对象的各种独立外部特 性与内部实现相分离,从而减少了程序间的相互依赖, 有助于提高程序的可重用性。
17
10.5.2 面向对象的基本概念和特征
面向对象的特征 (2)封装性(信息隐蔽) 封装性是保证软件部件具有优良的模块性的基础。 封装性是指所有软件部件内部都有明确的范围以及清 楚的外部边界。每个软件部件都有友好的界面接口, 软件部件的内部实现与外部可访问性分离。 面向对象的类是封装良好的模块,类定义将其说 明(用户可见的外部接口)与实现(用户不可见的内部实 现)显式地分开,其内部实现按其具体定义的作用域 提供保护。
10.5.2 面向对象的基本概念和特征
面向对象的特征 (3)继承性 采用继承性,提供了类之间规范的结构。对单重 继承,可用树型结构来描述;对多重继承,可用网 格结构来描述。通过类的继承关系,使公共的特性 能够共享,提高了软件的重用性。
22
10.5.2 面向对象的基本概念和特征
面向对象的特征
(3)继承性
27
10.5.3 面向对象系统开发方法的过程
二、面向对象开发方法各阶段的思路 1、面向对象的系统分析(OOA) • 用面向对象方法分析问题域,建立基于对象、 消息的业务模型,形成对客观世界和业务本身 的正确认识。 • 生成业务对象的动、静态模型和抽象类。
28
10.5.3 面向对象系统开发方法的过程