面向对象分析与设计精选文档.ppt
《面向对象分析与设计精选文档.ppt》由会员分享,可在线阅读,更多相关《面向对象分析与设计精选文档.ppt(108页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象分析与设计1 1本讲稿第一页,共一百零八页第一章第一章 绪论绪论1.1 1.1 面向对象方法基本思想面向对象方法基本思想1.2 1.2 面向对象方法发展简史面向对象方法发展简史1.3 1.3 面向对象方法的基本概念和原则面向对象方法的基本概念和原则1.4 1.4 面向对象软件系统模型面向对象软件系统模型2 2本讲稿第二页,共一百零八页1.1 1.1 面向对象方法基本思想面向对象方法基本思想 以以功能为中心功能为中心的软件开发方法(结构化方法)的软件开发方法(结构化方法)以以数据为中心数据为中心的软件开发方法(信息建模方法)的软件开发方法(信息建模方法)低内聚,高耦合,缺乏灵活性和可维护
2、性低内聚,高耦合,缺乏灵活性和可维护性分析与设计阶段采用的概念和表示不一致分析与设计阶段采用的概念和表示不一致对功能的处理较弱,不适合具有复杂功能的对功能的处理较弱,不适合具有复杂功能的系统系统3 3本讲稿第三页,共一百零八页n n以事物为中心以事物为中心以事物为中心以事物为中心 将数据与对数据的操作看作一个整体,即对象将数据与对数据的操作看作一个整体,即对象将数据与对数据的操作看作一个整体,即对象将数据与对数据的操作看作一个整体,即对象n n是一种认识论、方法论是一种认识论、方法论是一种认识论、方法论是一种认识论、方法论n n是一种运用是一种运用是一种运用是一种运用对象、类、继承、封装、聚合
3、、关联、对象、类、继承、封装、聚合、关联、对象、类、继承、封装、聚合、关联、对象、类、继承、封装、聚合、关联、消息和多态性消息和多态性消息和多态性消息和多态性等概念和原则来构造系统的软件开发方等概念和原则来构造系统的软件开发方等概念和原则来构造系统的软件开发方等概念和原则来构造系统的软件开发方法,其要点是法,其要点是法,其要点是法,其要点是 (1 1)认识事物及其相互关系)认识事物及其相互关系)认识事物及其相互关系)认识事物及其相互关系 (2 2)对事物归类,并实现继承)对事物归类,并实现继承)对事物归类,并实现继承)对事物归类,并实现继承 (3 3)强调事物的自主性)强调事物的自主性)强调事
4、物的自主性)强调事物的自主性面向对象方法基本思想面向对象方法基本思想4 4本讲稿第四页,共一百零八页n n高可维护性:高可维护性:高可维护性:高可维护性:回避在不稳定的基础上建造系统。寻找可构造的回避在不稳定的基础上建造系统。寻找可构造的回避在不稳定的基础上建造系统。寻找可构造的回避在不稳定的基础上建造系统。寻找可构造的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的元素作为系统构造的基础,可构造元素的变化不会涉及到系统的其它成分,不会影响到整体。其它成分,不会影响到整体。其
5、它成分,不会影响到整体。其它成分,不会影响到整体。n n可复用性:可复用性:可复用性:可复用性:功能复用是代码级的,它基于必要的功能理解,功能复用是代码级的,它基于必要的功能理解,功能复用是代码级的,它基于必要的功能理解,功能复用是代码级的,它基于必要的功能理解,然而功能的语义是不一致的、多义的。软件复用是全方位的,然而功能的语义是不一致的、多义的。软件复用是全方位的,然而功能的语义是不一致的、多义的。软件复用是全方位的,然而功能的语义是不一致的、多义的。软件复用是全方位的,不但是代码级的复用,还应该有源程序级的复用,甚至包括不但是代码级的复用,还应该有源程序级的复用,甚至包括不但是代码级的复
6、用,还应该有源程序级的复用,甚至包括不但是代码级的复用,还应该有源程序级的复用,甚至包括分析和设计文档的复用。分析和设计文档的复用。分析和设计文档的复用。分析和设计文档的复用。n n程序无关性:程序无关性:程序无关性:程序无关性:任何机器环境下,使用任意程序语言所编的程序,任何机器环境下,使用任意程序语言所编的程序,任何机器环境下,使用任意程序语言所编的程序,任何机器环境下,使用任意程序语言所编的程序,都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。都应该是逻辑通用的。与机器相关的成分应该与处理逻辑无关。都应该是逻辑通用的。与机器
7、相关的成分应该与处理逻辑无关。面向对象软件开发方法的目标面向对象软件开发方法的目标5 5本讲稿第五页,共一百零八页1.2 1.2 面向对象方法发展简史面向对象方法发展简史 源于面向对象程序设计语言源于面向对象程序设计语言 1967,Simula67 1970s,Smalltalk,Modula 1980s-90s,C+,Objective-C,Eiffel,java 向分析、设计甚至测试、维护等整个软件生命向分析、设计甚至测试、维护等整个软件生命 周期扩展周期扩展 1990s,统一建模语言(,统一建模语言(Unified Modeling Language,UML)诞生)诞生6 6本讲稿第六页
8、,共一百零八页1.3 1.3 面向对象方法的基本概念和原则面向对象方法的基本概念和原则 基本概念基本概念 类与对象,属性与操作,继承、聚合和关联类与对象,属性与操作,继承、聚合和关联 基本原则基本原则 抽象,分类,封装,消息,多态性抽象,分类,封装,消息,多态性7 7本讲稿第七页,共一百零八页 对象(属性与操作,封装与消息)对象(属性与操作,封装与消息)客观存在的事物,包括有形客观存在的事物,包括有形客观存在的事物,包括有形客观存在的事物,包括有形对象和无形对象对象和无形对象对象和无形对象对象和无形对象 在在在在面面面面向向向向对对对对象象象象的的的的系系系系统统统统模模模模型型型型中中中中,
9、对对对对象象象象是是是是描描描描述述述述客客客客观观观观事事事事物物物物的的的的一一一一个实体,由属性和操作构成。个实体,由属性和操作构成。个实体,由属性和操作构成。个实体,由属性和操作构成。属性:描述对象静态特征属性:描述对象静态特征属性:描述对象静态特征属性:描述对象静态特征 操作:描述对象动态特征操作:描述对象动态特征操作:描述对象动态特征操作:描述对象动态特征 体体体体现现现现了了了了封封封封装装装装原原原原则则则则,目目目目的的的的是是是是实实实实现现现现信信信信息息息息隐隐隐隐蔽蔽蔽蔽(事事事事物物物物的的的的独立自主性)。独立自主性)。独立自主性)。独立自主性)。可见性:暴露属性
10、和操作的方式可见性:暴露属性和操作的方式可见性:暴露属性和操作的方式可见性:暴露属性和操作的方式 消息:请求其他对象提供服务的方式,如函数调用消息:请求其他对象提供服务的方式,如函数调用消息:请求其他对象提供服务的方式,如函数调用消息:请求其他对象提供服务的方式,如函数调用8 8本讲稿第八页,共一百零八页 类(抽象,分类)类(抽象,分类)类类类类是是是是具具具具有有有有共共共共同同同同属属属属性性性性和和和和操操操操作作作作的的的的对对对对象象象象的的的的集集集集合合合合,对对对对象象象象是是是是类的一个实例,类用于创建对象。类的一个实例,类用于创建对象。类的一个实例,类用于创建对象。类的一个
11、实例,类用于创建对象。体体体体现现现现了了了了抽抽抽抽象象象象及及及及分分分分类类类类原原原原则则则则,是是是是人人人人们们们们分分分分析析析析问问问问题题题题的的的的基基基基本本本本方方方方法法法法 抽象:忽略事物的非本质特征,抽取共同的本质特征抽象:忽略事物的非本质特征,抽取共同的本质特征抽象:忽略事物的非本质特征,抽取共同的本质特征抽象:忽略事物的非本质特征,抽取共同的本质特征 分类:把具有共性的事物划分为一类分类:把具有共性的事物划分为一类分类:把具有共性的事物划分为一类分类:把具有共性的事物划分为一类9 9本讲稿第九页,共一百零八页 抽象抽象 类是对象的抽象,一般类是对特殊类的抽象类
12、是对象的抽象,一般类是对特殊类的抽象类是对象的抽象,一般类是对特殊类的抽象类是对象的抽象,一般类是对特殊类的抽象 数据抽象:数据抽象:数据抽象:数据抽象:根据施加在数据上的操作来定义数据的类型根据施加在数据上的操作来定义数据的类型根据施加在数据上的操作来定义数据的类型根据施加在数据上的操作来定义数据的类型 过过过过程程程程抽抽抽抽象象象象:将将将将确确确确定定定定的的的的功功功功能能能能定定定定义义义义为为为为单单单单一一一一实实实实体体体体(确确确确定定定定的的的的功功功功能能能能是是是是由由由由一一一一系系系系列操作完成的)列操作完成的)列操作完成的)列操作完成的)抽象的好处:抽象的好处:
13、抽象的好处:抽象的好处:1 1 1 1)复杂问题简单化)复杂问题简单化)复杂问题简单化)复杂问题简单化 2 2 2 2)实现可替换性)实现可替换性)实现可替换性)实现可替换性1010本讲稿第十页,共一百零八页例例2 2:对下列事物进行分类和抽象:对下列事物进行分类和抽象显微镜、摩天楼、望远镜、飞机、铆钉、显微镜、摩天楼、望远镜、飞机、铆钉、管道、管道、卡车、单向阀、指数、过滤器、压力器、卡车、单向阀、指数、过滤器、压力器、自行车、自行车、正旋、岩洞、眼镜、车库、正旋、岩洞、眼镜、车库、滑翔机、平方根、铁滑翔机、平方根、铁钉、水龙头、螺钉、钉、水龙头、螺钉、余旋、螺栓、余旋、螺栓、帐篷、双筒镜、
14、帐篷、双筒镜、车棚、杂物堆房、摩托车、帆船、瞄准器车棚、杂物堆房、摩托车、帆船、瞄准器例例1 1:数据抽象和过程抽象:数据抽象和过程抽象 数据抽象:数据抽象:学生、客户、电子邮件、汽车学生、客户、电子邮件、汽车过程抽象:交易、答辩、备课、开门过程抽象:交易、答辩、备课、开门1111本讲稿第十一页,共一百零八页光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜光学设备类:显微镜、眼镜、望远镜、瞄准器、双筒镜管道控制类:管道、单向伐、水龙头、过滤器、压力器管道控制类:管道、单向伐、水龙头、过滤器、压力器交通工具类:自行车、帆船交通工具类:自行车、帆船、卡车、飞机、滑翔机、摩托车、卡车、飞机、滑翔机、
15、摩托车五金类:五金类:铁钉、螺钉、螺栓、铆钉铁钉、螺钉、螺栓、铆钉建筑类:建筑类:帐篷、岩洞、车棚、车库、杂物堆房、摩天楼帐篷、岩洞、车棚、车库、杂物堆房、摩天楼数学概念类:平方根、指数、正旋、余旋数学概念类:平方根、指数、正旋、余旋 光学设备类:聚焦度、变焦长度、单双镜形式、用途功能光学设备类:聚焦度、变焦长度、单双镜形式、用途功能管道控制类:时速、功率,动力资源、消耗、用途、管道控制类:时速、功率,动力资源、消耗、用途、五金类:五金类:材料、直径、长度、硬度、用途材料、直径、长度、硬度、用途建筑类:建筑类:面积、高度、材料、用途面积、高度、材料、用途数学概念类:概念定义、公式内容、用途数学
16、概念类:概念定义、公式内容、用途 抽取同类事物的共同性质:抽取同类事物的共同性质:分类:分类:1212本讲稿第十二页,共一百零八页继承继承 在不同程度上运用抽象和分类原则,可以得到较一在不同程度上运用抽象和分类原则,可以得到较一在不同程度上运用抽象和分类原则,可以得到较一在不同程度上运用抽象和分类原则,可以得到较一般的类和较特殊的类。般的类和较特殊的类。般的类和较特殊的类。般的类和较特殊的类。继承继承继承继承:特殊类自动拥有一般类所具有的全部属性和操作,也特殊类自动拥有一般类所具有的全部属性和操作,也特殊类自动拥有一般类所具有的全部属性和操作,也特殊类自动拥有一般类所具有的全部属性和操作,也可
17、称为一般类对特殊类的泛化。可称为一般类对特殊类的泛化。可称为一般类对特殊类的泛化。可称为一般类对特殊类的泛化。多重继承多重继承多重继承多重继承:一个特殊类同时继承两个以上一般类的属性和操作一个特殊类同时继承两个以上一般类的属性和操作一个特殊类同时继承两个以上一般类的属性和操作一个特殊类同时继承两个以上一般类的属性和操作 继承的继承的继承的继承的重要作用重要作用重要作用重要作用:1 1 1 1)简化对事物的认识和描述)简化对事物的认识和描述)简化对事物的认识和描述)简化对事物的认识和描述 2 2 2 2)有利于软件复用)有利于软件复用)有利于软件复用)有利于软件复用1313本讲稿第十三页,共一百
18、零八页学生学生姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向本科生本科生班级班级专业专业人员人员姓名姓名年龄年龄研究生研究生导师导师研究方向研究方向职工职工部门部门职务职务在职研究生在职研究生运输工具运输工具轮船轮船车辆车辆飞机飞机卡车卡车轿车轿车继承:继承:多继承:多继承:继承层次:继承层次:1414本讲稿第十四页,共一百零八页多态性多态性 多态性:多态性:特殊类可以对继承来的属性和特殊类可以对继承来的属性和操作做出自己的解释,即在继承关系的类操作做出自己的解释,即在继承关系的类层次结构中可以定义同名操作或属性,形层次结构中可以定义同名操作或属性,形成同一操作或属性的多种形态,这样可以
19、成同一操作或属性的多种形态,这样可以按不同的行为响应同一个消息。按不同的行为响应同一个消息。多态性进一步体现了信息隐蔽的原则,多态性进一步体现了信息隐蔽的原则,可以实现接口的独立封装。可以实现接口的独立封装。1515本讲稿第十五页,共一百零八页关联关联 关联表示类之间的静态联系。关联表示类之间的静态联系。当当类类实实例例化化为为对对象象后后,关关联联实实例例化化为为对对象象之之间间的的链。链。可以通过属性来表达关联。可以通过属性来表达关联。职员职员公司公司关联:关联:工作工作1616本讲稿第十六页,共一百零八页聚合聚合 聚聚合合表表示示对对象象之之间间的的整整体体部部分分关关系系,具具有有“有
20、有 一一个个”或或“是一部分是一部分”的语义的语义 聚合也是一种关联。聚合也是一种关联。汽车汽车发动机发动机车轮车轮聚合:聚合:1717本讲稿第十七页,共一百零八页系统复杂性控制(包)系统复杂性控制(包)包包用用于于控控制制系系统统的的粒粒度度,将将系系统统组组成成元元素素组组织织到到不不同同的的包包中中,可可以以方方便便系系统统整整体体规规划划,减减小小系系统统分分析和设计的复杂性。析和设计的复杂性。系统行为分析(状态转换与交互)系统行为分析(状态转换与交互)系系系系统统统统运运运运行行行行中中中中对对对对象象象象的的的的属属属属性性性性值值值值会会会会不不不不断断断断发发发发生生生生变变变
21、变化化化化,从从从从而而而而形形形形成成成成对对对对象象象象的的的的不不不不同同同同状状状状态态态态。描描描描述述述述对对对对象象象象状状状状态态态态的的的的转转转转换换换换,可可可可以以以以确确确确定对象的行为完整性;定对象的行为完整性;定对象的行为完整性;定对象的行为完整性;系系系系统统统统中中中中对对对对象象象象必必必必须须须须相相相相互互互互协协协协作作作作以以以以完完完完成成成成某某某某项项项项功功功功能能能能,描描描描述述述述对对对对象象象象间间间间的的的的交交交交互互互互,可可可可以以以以表表表表示示示示系系系系统统统统实实实实现现现现功功功功能能能能的的的的整整整整体体体体行行
22、行行为为为为以以以以及及及及对对对对象之间的并行性。象之间的并行性。象之间的并行性。象之间的并行性。1818本讲稿第十八页,共一百零八页 实现高可维护性:实现高可维护性:实现高可维护性:实现高可维护性:1 1 1 1)类是封装了操作的一个类是封装了操作的一个类是封装了操作的一个类是封装了操作的一个“代码级复用代码级复用代码级复用代码级复用”程序模板程序模板程序模板程序模板 ,类的使用,如同数据变量一样简单。,类的使用,如同数据变量一样简单。,类的使用,如同数据变量一样简单。,类的使用,如同数据变量一样简单。类的对象可成为系统的构造元素。类的对象可成为系统的构造元素。类的对象可成为系统的构造元素
23、。类的对象可成为系统的构造元素。2 2 2 2)对于对于对于对于“对象变量对象变量对象变量对象变量”的操作不同于程序调用,采用了消息,的操作不同于程序调用,采用了消息,的操作不同于程序调用,采用了消息,的操作不同于程序调用,采用了消息,“消息消息消息消息”是并发的是并发的是并发的是并发的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的机制,回避了功能调用的过程性,使系统成为可构造和高可维护的 实现可复用性:实现可复用性:实现可复用性:实现可复用性:1 1)对象语义的表示
24、唯一,这使得代码级的复用简单且自然。)对象语义的表示唯一,这使得代码级的复用简单且自然。)对象语义的表示唯一,这使得代码级的复用简单且自然。)对象语义的表示唯一,这使得代码级的复用简单且自然。2 2)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并)类继承性是源程序级的复用机制,允许用已有的程序构架,简单地构造新的应用,并仍保持易维护性。仍保持易维护性。仍保持易维护性。仍保持易维护性。实现程序无关性:实现程序无关性:实
25、现程序无关性:实现程序无关性:类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方类的多态性以及动态绑定(动态联编)技术,是面向对象方法有别于结构化方法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分法的实质性突破。它提供独立接口的实现技术,这样可以将与机器相关的成分独立出来,为程序无关性奠定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 精选 文档
限制150内