面向对象的分析与设计课件基础篇.ppt
- 文档编号:2210393
- 上传时间:2022-10-27
- 格式:PPT
- 页数:89
- 大小:1.04MB
面向对象的分析与设计课件基础篇.ppt
《面向对象的分析与设计课件基础篇.ppt》由会员分享,可在线阅读,更多相关《面向对象的分析与设计课件基础篇.ppt(89页珍藏版)》请在冰豆网上搜索。
第一部分:
基础篇第一部分:
基础篇北京大学信息科学技术学院北京大学信息科学技术学院研究生课程研究生课程研究生课程研究生课程面向对象的分析与设计面向对象的分析与设计主讲教师:
邵维忠主讲教师:
邵维忠110/27/20222北京大学信息学院研究生课程面向对象的分析与设计课件说明课件说明这组课件是本人多年来在北京大学讲授这组课件是本人多年来在北京大学讲授“面向对象的面向对象的分析与设计分析与设计”课程时制作的,随着该领域理论与技术的发课程时制作的,随着该领域理论与技术的发展而逐年改进。
目前的最新版本所适应的教材是邵维忠、展而逐年改进。
目前的最新版本所适应的教材是邵维忠、杨芙清合写的著作面向对象的分析与设计(清华大学杨芙清合写的著作面向对象的分析与设计(清华大学出版社出版社20132013年年11月)。
月)。
为了促进学术交流和资源共享,现将这套课件无偿提为了促进学术交流和资源共享,现将这套课件无偿提供给国内讲授同类课程的教师和同行,欢迎他们在教学工供给国内讲授同类课程的教师和同行,欢迎他们在教学工作中使用或作为参考。
课件共包括作中使用或作为参考。
课件共包括“基础篇基础篇”、“分析篇分析篇”和和“设计篇设计篇”三部分,是按照三部分,是按照5454学时研究生课程制作的,学时研究生课程制作的,各位教师可根据自己的授课对象及教学计划,对原课件进各位教师可根据自己的授课对象及教学计划,对原课件进行剪裁或重新组织。
行剪裁或重新组织。
北京大学信息学院北京大学信息学院邵维忠邵维忠电子信箱:
电子信箱:
20132013年年77月月22日日210/27/20223北京大学信息学院研究生课程面向对象的分析与设计从程序设计方法的角度看,面向对象是一种新的程序设计从程序设计方法的角度看,面向对象是一种新的程序设计范型范型(paradigm)(paradigm),其基本思想是使用对象、类、继承、封,其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设装、聚合、关联、消息、多态性等基本概念来进行程序设计。
计。
自自2020世纪世纪8080年代以来,面向对象方法已深入到计算机软件年代以来,面向对象方法已深入到计算机软件领域的几乎所有分支。
它不仅是一些具体的软件开发技术领域的几乎所有分支。
它不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如的关系,用什么观点来研究问题并进行问题求解,以及如何进行系统构造的软件方法学。
从这个意义上讲:
何进行系统构造的软件方法学。
从这个意义上讲:
面向对象方法是一种运用对象、类、继承、封装、面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
软件开发方法。
1.11.1什么是面向对象什么是面向对象第第11章章面向对象方法概论面向对象方法概论310/27/20224北京大学信息学院研究生课程面向对象的分析与设计面向对象方法的基本思想面向对象方法的基本思想一、从现实世界中客观存在的事物出发来构造系统一、从现实世界中客观存在的事物出发来构造系统强调直接以问题域(现实世界)中的事物为中心来强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,思考问题、认识问题,并根据这些事物的本质特征,把它们抽象为系统中的对象,作为系统的基本构成把它们抽象为系统中的对象,作为系统的基本构成单位。
这可以使系统直接映射问题单位。
这可以使系统直接映射问题域,保持问题域域,保持问题域中事物及其相互关系的本来面貌。
中事物及其相互关系的本来面貌。
二、充分运用人类日常的思维方法二、充分运用人类日常的思维方法强调运用人类在日常的逻辑思维中经常采用的思想强调运用人类在日常的逻辑思维中经常采用的思想方法与原则,例如抽象、分类、继承、聚合、封装、方法与原则,例如抽象、分类、继承、聚合、封装、关联等等。
这使得软件开发者能更有效地思考问题,关联等等。
这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出并以其他人也能看得懂的方式把自己的认识表达出来。
来。
410/27/20225北京大学信息学院研究生课程面向对象的分析与设计主要特点:
主要特点:
用用类类和和对象对象作为系统的基本构成单位。
对象对应问作为系统的基本构成单位。
对象对应问题域中的事物,其题域中的事物,其属性属性和和操作操作刻画了事物的静态特刻画了事物的静态特征和动态特征,它们之间的征和动态特征,它们之间的继承继承关系、关系、聚合聚合关系、关系、关联关联和和消息消息如实地表达了问题域中事物之间实际存如实地表达了问题域中事物之间实际存在的各种关系。
在的各种关系。
因此,无论系统的构成成分,还是通过这些成分之因此,无论系统的构成成分,还是通过这些成分之间的关系而体现的系统结构,都可直接地映射问题间的关系而体现的系统结构,都可直接地映射问题域。
域。
510/27/20226北京大学信息学院研究生课程面向对象的分析与设计对问题域的认识(人)客观世界(问题域)计算机自然语言语言的鸿沟编程语言语言的过渡(人)编程(人)程序的理解和执行(机器)软件开发:
对事物的认识和描述软件开发:
对事物的认识和描述问题问题语言的鸿沟语言的鸿沟1.2从认识论看面向对象方法的形成从认识论看面向对象方法的形成610/27/20227北京大学信息学院研究生课程面向对象的分析与设计计算机机器语言自然语言客观世界(问题域)语言的鸿沟语言的发展语言的发展鸿沟变窄鸿沟变窄程序的指令、数据、地址,都是由二进制的“0”和“1”构成的。
离机器最近,能够直接地执行,然而没有丝毫形象的意义,离人类的思维最远。
汇编语言以易理解的符号表示指令、数据以及寄存器、地址等物理概念。
稍稍适合人类的形象思维,但仍然相差很远。
因为抽象层次太低,仍需考虑大量的机器细节。
高级语言隐蔽了机器细节,使用有形象意义的命名和表达式,可以联系到程序所描述的具体事物。
特别是结构化编程语结构化编程语言言更便于体现客观事物的结构和逻辑涵义,与人类的自然语言更接近,但仍有不少差距。
面向对象语言能比较直接地反映客观世界的本来面目,并使软件开发人员能够运用人类认识事物所采用的一般思维方法来进行软件开发。
710/27/20228北京大学信息学院研究生课程面向对象的分析与设计问题域测试编程计算机编程语言自然语言需求分析总体设计详细设计软件工程学的作用软件工程学的作用传统的软件工程方法传统的软件工程方法分析与设计的鸿沟分析与设计概念及表示法的不一致810/27/20229北京大学信息学院研究生课程面向对象的分析与设计问题域问题域OOA计算机计算机自然语言面向对象编程语言OODOOPOOT软件工程学的作用软件工程学的作用面向对象的软件工程方法面向对象的软件工程方法910/27/202210北京大学信息学院研究生课程面向对象的分析与设计1.31.3面向对象方法的基本概念与原则面向对象方法的基本概念与原则对象,类对象,类属性,操作属性,操作封装封装继承,一般继承,一般-特殊结构特殊结构聚合,整体聚合,整体-部分结构部分结构关联关联消息消息多态多态持久对象,主动对象持久对象,主动对象1010/27/202211北京大学信息学院研究生课程面向对象的分析与设计对象对象是现实世界中是现实世界中某个实际存在的事某个实际存在的事物,它可以是有形物,它可以是有形的,比如一辆汽车,的,比如一辆汽车,也可以是无形的,也可以是无形的,比如一项计划。
对比如一项计划。
对象是构成世界的一象是构成世界的一个独立单位。
它具个独立单位。
它具有自己的静态特征有自己的静态特征和动态特征。
和动态特征。
属性属性是用来描述对象静态特是用来描述对象静态特征的一个数据项。
征的一个数据项。
操作操作是用来描述对象动态特是用来描述对象动态特征的一个动作序列。
征的一个动作序列。
对象标识对象标识就是对象的名字,就是对象的名字,有有“外部标识外部标识”和和“内部标内部标识识”之分。
之分。
对象,属性,操作对象,属性,操作对象对象是系统中用来是系统中用来描述客观事物的一描述客观事物的一个实体,它是构成个实体,它是构成系统的一个基本单系统的一个基本单位。
对象由一组属位。
对象由一组属性和性和施加于这些属施加于这些属性一组操作构成。
性一组操作构成。
对象对象对象标识对象标识属性属性操作操作1110/27/202212北京大学信息学院研究生课程面向对象的分析与设计封装:
封装:
把对象的属性和操作结合成一个独立把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。
的系统单位,并尽可能隐蔽对象的内部细节。
售报亭售报亭售报亭售报亭属属性性操操作作报刊报刊AA报刊报刊BB钱箱钱箱报刊零售报刊零售款货清点款货清点顾顾客客封装的重要意义:
封装的重要意义:
使对象能够集中而完整地描述并对应一个使对象能够集中而完整地描述并对应一个具体的事物。
具体的事物。
体现了事物的相对独立性,使对象外部不体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部能随意存取对象的内部数据,避免了外部错误对它的错误对它的“交叉感染交叉感染”。
对象的内部的修改对外部的影响很小,减对象的内部的修改对外部的影响很小,减少了修改引起的少了修改引起的“波动效应波动效应”。
由封装机由封装机制保证制保证封装带来的问题:
封装带来的问题:
编程的麻烦编程的麻烦执行效率的损失执行效率的损失解决办法:
解决办法:
不强调严格封装,不强调严格封装,实行可见性控制。
实行可见性控制。
(混合型(混合型OOPLOOPL)例如:
例如:
C+C+1210/27/202213北京大学信息学院研究生课程面向对象的分析与设计抽象,类,一般类,特殊类抽象,类,一般类,特殊类抽象与分类:
抽象与分类:
忽略事物的非本质特征,只注意那些与当前目标有关的本质特征,从而找出事物的共性,叫做抽象。
抽象是形成概念的基本手段。
把具有共同性质的事物划分为一类,叫做分类。
类类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。
类的作用是用来创建对象,对象是类的一个实例。
对象对象对象对象对象对象对象对象对象对象对象对象对象对象对象对象类名类名属性属性操作操作抽抽象象1310/27/202214北京大学信息学院研究生课程面向对象的分析与设计不同程度的抽象可得到不同层次的分类不同程度的抽象可得到不同层次的分类较多地较多地忽略事忽略事物之间物之间的差别的差别可得到可得到较一般较一般的类的类较多地较多地注意事注意事物之间物之间的差别的差别可得到可得到较特殊较特殊的类的类运输工具运输工具火车火车汽车汽车飞机飞机卡车卡车轿车轿车轮船轮船车辆车辆1410/27/202215北京大学信息学院研究生课程面向对象的分析与设计定义定义1:
如果类如果类AA具有类具有类BB的全部属性和全部操作,而且具的全部属性和全部操作,而且具有自己特有的某些属性或操作,则有自己特有的某些属性或操作,则AA叫做叫做BB的的特殊类特殊类,BB叫叫做做AA的的一般类一般类。
一般类与特殊类又称。
一般类与特殊类又称父类父类与与子类子类。
定义定义22:
如果类如果类AA的全部对象都是类的全部对象都是类BB的对象,而且类的对象,而且类BB中存中存在不属于类在不属于类AA的对象,则的对象,则AA是是BB的特殊类,的特殊类,BB是是AA的一般类。
的一般类。
可以证明,以上两种定义是等价的可以证明,以上两种定义是等价的一般类和特殊类的定义一般类和特殊类的定义1510/27/202216北京大学信息学院研究生课程面向对象的分析与设计继承:
继承:
特殊类拥有其一般类的全部属性与操特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。
作,称作特殊类对一般类的继承。
继承意味着继承意味着自动地拥有自动地拥有,或曰,或曰隐含地复制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 课件 基础