面向对象的分析与设计课件基础篇

上传人:宝路 文档编号:47620395 上传时间:2018-07-03 格式:PPT 页数:89 大小:692.14KB
返回 下载 相关 举报
面向对象的分析与设计课件基础篇_第1页
第1页 / 共89页
面向对象的分析与设计课件基础篇_第2页
第2页 / 共89页
面向对象的分析与设计课件基础篇_第3页
第3页 / 共89页
面向对象的分析与设计课件基础篇_第4页
第4页 / 共89页
面向对象的分析与设计课件基础篇_第5页
第5页 / 共89页
点击查看更多>>
资源描述

《面向对象的分析与设计课件基础篇》由会员分享,可在线阅读,更多相关《面向对象的分析与设计课件基础篇(89页珍藏版)》请在金锄头文库上搜索。

1、第一部分:基础篇第一部分:基础篇北京大学信息科学技术学院研究生课程研究生课程 面向对象的分析与设计面向对象的分析与设计主讲教师:邵维忠1* 2北京大学信息学院研究生课程 面向对象的分析与设计 课件说明这组课件是本人多年来在北京大学讲授“面向对象的 分析与设计”课程时制作的,随着该领域理论与技术的发 展而逐年改进。目前的最新版本所适应的教材是邵维忠、 杨芙清合写的著作面向对象的分析与设计(清华大学 出版社2013年1月)。为了促进学术交流和资源共享,现将这套课件无偿提 供给国内讲授同类课程的教师和同行,欢迎他们在教学工 作中使用或作为参考。课件共包括“基础篇”、“分析篇 ”和“设计篇”三部分,是

2、按照54学时研究生课程制作的 ,各位教师可根据自己的授课对象及教学计划,对原课件 进行剪裁或重新组织。北京大学信息学院 邵维忠 电子信箱: 2013年7月2日2* 3北京大学信息学院研究生课程 面向对象的分析与设计从程序设计方法的角度看,面向对象是一种新的程序设计 范型(paradigm),其基本思想是使用对象、类、继承、封 装、聚合、关联、消息、多态性等基本概念来进行程序设 计。自20世纪80年代以来,面向对象方法已深入到计算机软件 领域的几乎所有分支。它不仅是一些具体的软件开发技术 与策略,而且是一整套关于如何看待软件系统与现实世界 的关系,用什么观点来研究问题并进行问题求解,以及如 何进

3、行系统构造的软件方法学。从这个意义上讲:面向对象方法是一种运用对象、类、继承、封装 、聚合、关联、消息、多态性等概念来构造系统 的软件开发方法。1.1 什么是面向对象第1章 面向对象方法概论3* 4北京大学信息学院研究生课程 面向对象的分析与设计面向对象方法的基本思想一、从现实世界中客观存在的事物出发来构造系统 强调直接以问题域(现实世界)中的事物为中心来 思考问题、认识问题,并根据这些事物的本质特征 ,把它们抽象为系统中的对象,作为系统的基本构 成单位。这可以使系统直接映射问题域,保持问题 域中事物及其相互关系的本来面貌。二、充分运用人类日常的思维方法 强调运用人类在日常的逻辑思维中经常采用

4、的思想 方法与原则,例如抽象、分类、继承、聚合、封装 、关联等等。这使得软件开发者能更有效地思考问 题,并以其他人也能看得懂的方式把自己的认识表 达出来。4* 5北京大学信息学院研究生课程 面向对象的分析与设计主要特点:用类和对象作为系统的基本构成单位。对象对应问 题域中的事物,其属性和操作刻画了事物的静态特 征和动态特征,它们之间的继承关系、聚合关系、 关联和消息如实地表达了问题域中事物之间实际存 在的各种关系。 因此,无论系统的构成成分,还是通过这些成分之 间的关系而体现的系统结构,都可直接地映射问题 域。5* 6北京大学信息学院研究生课程 面向对象的分析与设计对问题域的认识(人)客观世界

5、 (问题域)计算机自然语言 语 言 的 鸿 沟编程语言语言的过渡(人)编程(人) 程序的理解 和执行(机器)软件开发:对事物的认识和描述问题语言的鸿沟1.2 从认识论看面向对象方法的形成6* 7北京大学信息学院研究生课程 面向对象的分析与设计计算机机器语言自然语言客观世界 (问题域)语言的鸿沟语言的发展鸿沟变窄程序的指令、数 据、地址,都是 由二进制的“0”和 “1”构成的。离机 器最近,能够直 接地执行,然而 没有丝毫形象的 意义,离人类的 思维最远。汇编语言以易理解的符号 表示指令、数据 以及寄存器、地 址等物理概念。 稍稍适合人类的 形象思维,但仍 然相差很远。因 为抽象层次太低 ,仍需

6、考虑大量 的机器细节。高级语言隐蔽了机器细节, 使用有形象意义的 命名和表达式,可 以联系到程序所描 述的具体事物。特 别是结构化编程语 言更便于体现客观 事物的结构和逻辑 涵义,与人类的自 然语言更接近,但 仍有不少差距。面向对象语言能比较直接地反 映客观世界的本 来面目,并使软 件开发人员能够 运用人类认识事 物所采用的一般 思维方法来进行 软件开发。7* 8北京大学信息学院研究生课程 面向对象的分析与设计问题域测试编程计算机编程语言自然语言需求 分析总体 设计 详细 设计软件工程学的作用 传统的软件工程方法分析与设计的鸿沟分析与设计 概念及表示 法的不一致8* 9北京大学信息学院研究生课

7、程 面向对象的分析与设计问题域OOA计算机自然语言面向对象 编程语言OODOOPOOT软件工程学的作用 面向对象的软件工程方法9* 10北京大学信息学院研究生课程 面向对象的分析与设计 1.3 面向对象方法的基本概念与原则对象,类 属性,操作 封装 继承,一般-特殊结构 聚合,整体-部分结构 关联 消息 多态 持久对象,主动对象 10* 11北京大学信息学院研究生课程 面向对象的分析与设计对象是现实世界中 某个实际存在的事 物,它可以是有形 的,比如一辆汽车 ,也可以是无形的 ,比如一项计划。 对象是构成世界的 一个独立单位。它 具有自己的静态特 征和动态特征。属性是用来描述对象静态特 征的一

8、个数据项。 操作是用来描述对象动态特 征的一个动作序列。 对象标识就是对象的名字, 有“外部标识”和“内部标识” 之分。对象,属性,操作对象是系统中用来 描述客观事物的一 个实体,它是构成 系统的一个基本单 位。对象由一组属 性和施加于这些属 性一组操作构成。对象对象标识属性操作11* 12北京大学信息学院研究生课程 面向对象的分析与设计 封装:把对象的属性和操作结合成一个独立 的系统单位,并尽可能隐蔽对象的内部细节。售报亭售报亭属 性操 作报刊A 报刊B 钱箱报刊零售 款货清点顾 客封装的重要意义: 使对象能够集中而完整地描述并对应一个 具体的事物。 体现了事物的相对独立性,使对象外部不 能

9、随意存取对象的内部数据,避免了外部 错误对它的“交叉感染”。 对象的内部的修改对外部的影响很小,减 少了修改引起的“波动效应”。由封装机 制保证封装带来的问题: 编程的麻烦 执行效率的损失解决办法: 不强调严格封装, 实行可见性控制。 (混合型OOPL)例如: C+12* 13北京大学信息学院研究生课程 面向对象的分析与设计抽象,类,一般类,特殊类抽象与分类:忽略事物的非 本质特征,只注意那些与当 前目标有关的本质特征,从 而找出事物的共性,叫做抽 象。抽象是形成概念的基本 手段。把具有共同性质的事 物划分为一类,叫做分类。类是具有相同属性和操作的 一组对象的集合,它为属于 该类的全部对象提供

10、了统一 的抽象描述,其内部包括属 性和操作两个主要部分。类 的作用是用来创建对象,对 象是类的一个实例。对象对象对象对象对象对象对象对象类名属性操作抽象13* 14北京大学信息学院研究生课程 面向对象的分析与设计 不同程度的抽象可得到不同层次的分类较多地 忽略事 物之间 的差别 可得到 较一般 的类较多地 注意事 物之间 的差别 可得到 较特殊 的类运输工具火车汽车飞机卡车轿车轮船车辆14* 15北京大学信息学院研究生课程 面向对象的分析与设计定义1:如果类A具有类B的全部属性和全部操作,而且具 有自己特有的某些属性或操作,则A叫做B的特殊类,B叫 做A的一般类。一般类与特殊类又称父类与子类。

11、定义2:如果类A的全部对象都是类B的对象,而且类B中存 在不属于类A的对象,则A是B的特殊类,B是A的一般类。可以证明,以上两种定义是等价的一般类和特殊类的定义15* 16北京大学信息学院研究生课程 面向对象的分析与设计 继承:特殊类拥有其一般类的全部属性与操 作,称作特殊类对一般类的继承。继承意味着自动地拥有,或曰隐含地复制继承简化了 人们对事物 的认识和描 述,非常有 益于软件复 用,是OO技 术提高软件 开发效率的 重要原因之 一。由继承机 制保证由一组具有继 承关系的类所 组成的结构称 作一般-特殊 结构。它是一 个以类为结点 ,以继承关系 为边的连通的 有向图。继承关系的语义:“is

12、 a kind of”军人军官士兵义务兵志愿兵例16* 17北京大学信息学院研究生课程 面向对象的分析与设计多继承:允许一个特殊类具有一个以上 一般类的继承方式称作多继承人员姓名 教职工职称 专业 研究生学号 班级 专业 在职研究生在职单位例:17* 18北京大学信息学院研究生课程 面向对象的分析与设计聚合:是两个类之间的一个二元关系,它表示一个类的对象 实例以另一个类的对象实例作为其组成部分。 聚合刻画了现实事物之间的构成关系或者拥有关系。部 分 对 象 部 分 对 象整体对象嵌套对象整 体 对 象部 分 对 象部 分 对 象整 体 对 象对象指针或对象标识两种聚合,两种实现方式:紧密、固定

13、的聚合关系 例如汽车与发动机松散、灵活的聚合关系 例如公司与法律顾问聚合关系的语义:“has a”或“is a part of”紧密、固定 的聚合方式 又称为组合18* 19北京大学信息学院研究生课程 面向对象的分析与设计 整体-部分结构:聚合关系又称整体-部分关系。由一组具有聚合关系的类所 形成的结构称为整体-部分结构。它是一个以类为结点,以 聚合关系为边的连通有向图。例公 司0*0*法律顾问汽车发动机车身气缸111111*19* 20北京大学信息学院研究生课程 面向对象的分析与设计关联:两个或者多个类上的一个关系(即这些类的对象实 例集合的笛卡儿积的一个子集合),其中的元素提 供了被开发系

14、统的应用领域中一组有意义的信息。 城市*有航线城市之间有航线教 师学 生*1指导论文教师与被指导的学生例:20* 21北京大学信息学院研究生课程 面向对象的分析与设计用集合论的观点和系统需求讨论关联概念 关联是两个或者多个类上的一个关系,其中的元素提 供了被开发系统的应用领域中一组有意义的信息。 例:设A和B是两个类,它们的对象实例集合是A=a1,a2,an B=b1,b2,bmA和B的笛卡儿积AB= , , , , , , 这个笛卡儿积集合中 有n m个元素,它们 可以组合成2( n m)个 子集合。 但是只有某个子集合 中的元素提供了被开 发系统的应用领域中 一组有意义的信息时 ,才有必要

15、把它定义 为系统中的一个关联 。21* 22北京大学信息学院研究生课程 面向对象的分析与设计例如:在一个教学管理系统中 有教师、学生、教务员课程等类。系统中需要表明每一门课程由哪位教师承担、有哪些学生 选修,因此需要在教师和课程之间定义一个关联,在学生 和课程之间也定义一个关联。该系统的教务员要为学生做注册、登记成绩等工作,但是 不需要区别是哪个教务员为哪个学生做的,因此就不需要 在教务员和学生这两个类之间定义关联。 教师课程学生教务员callcall1*教务员22* 23北京大学信息学院研究生课程 面向对象的分析与设计 消息:消息是向对象发出的服务请求 目前在大部分面向对象的编程语言中,消息

16、其实就 是函数(或过程)调用。但是,函数调用只是实现消息的方式之一,上述理解 只适合于顺序系统更一般的定义: 消息是对象之间在一次交互中所传送的信息 23* 24北京大学信息学院研究生课程 面向对象的分析与设计教师课程学生教务员callcall1*纠正一种误解认为在任何两个类之间只有存在关联才 可能存在消息。实际上,关联和消息是两个截然不同的概念,二者是相互 独立的。教务员call24* 25北京大学信息学院研究生课程 面向对象的分析与设计多态:多态是指同一个命名可具有不同的语义。OO方法中,常 指在一般类中定义的属性或操作被特殊类继承之后,可 以具有不同的数据类型或表现出不同的行为。实现机制: 重写(override)在特殊类中对继承来的属性或操作重 新定

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号