面向对象软件开发与UML建模课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《面向对象软件开发与UML建模课件.ppt》由会员分享,可在线阅读,更多相关《面向对象软件开发与UML建模课件.ppt(177页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第11章章 面向对象面向对象软件开发与软件开发与UML建模建模11.1 面向对象软件开发概述面向对象软件开发概述11.2 UML简介简介11.3 基于基于UML的面向对象分析与设计概要的面向对象分析与设计概要11.1 面向对象软件开发概述面向对象软件开发概述11.1.1 11.1.1 传统软件开发方法存在的不足传统软件开发方法存在的不足传统软件开发方法存在的不足传统软件开发方法存在的不足11.1.2 11.1.2 面向对象方法的主要概念面向对象方法的主要概念面向对象方法的主要概念面向对象方法的主要概念11.1.3 11.1.3 面向对象方法的优势面向对象方法的优势面向对象方法的优势面向对象方
2、法的优势11.1.4 11.1.4 面向对象软件开发的过程面向对象软件开发的过程面向对象软件开发的过程面向对象软件开发的过程11.1.5 11.1.5 典型面向对象软件开发方法典型面向对象软件开发方法典型面向对象软件开发方法典型面向对象软件开发方法 11.1.1 传统软件开发方法存在的不足传统软件开发方法存在的不足 互联网时代,用户为响应外部竞争环境的变化互联网时代,用户为响应外部竞争环境的变化互联网时代,用户为响应外部竞争环境的变化互联网时代,用户为响应外部竞争环境的变化对业务应用系统要求:对业务应用系统要求:对业务应用系统要求:对业务应用系统要求:快速交付快速交付快速交付快速交付 低成本维
3、护低成本维护低成本维护低成本维护 系统柔性扩充系统柔性扩充系统柔性扩充系统柔性扩充 同时,面向广域业务应用的大型分布式系统的同时,面向广域业务应用的大型分布式系统的同时,面向广域业务应用的大型分布式系统的同时,面向广域业务应用的大型分布式系统的规模和复杂性都显著提高。以结构化开发为代表规模和复杂性都显著提高。以结构化开发为代表规模和复杂性都显著提高。以结构化开发为代表规模和复杂性都显著提高。以结构化开发为代表传统软件开发方法确实存在难以逾越的鸿沟。传统软件开发方法确实存在难以逾越的鸿沟。传统软件开发方法确实存在难以逾越的鸿沟。传统软件开发方法确实存在难以逾越的鸿沟。传统开发方法主要的不足之处传
4、统开发方法主要的不足之处(1 1)软件重用性差)软件重用性差)软件重用性差)软件重用性差 传统的方法识别业务需求是在全局范围内以功传统的方法识别业务需求是在全局范围内以功传统的方法识别业务需求是在全局范围内以功传统的方法识别业务需求是在全局范围内以功能、数据或数据流为中心来进行分析。分析结果能、数据或数据流为中心来进行分析。分析结果能、数据或数据流为中心来进行分析。分析结果能、数据或数据流为中心来进行分析。分析结果不能直接地映射问题域,而是经过了不同程度的不能直接地映射问题域,而是经过了不同程度的不能直接地映射问题域,而是经过了不同程度的不能直接地映射问题域,而是经过了不同程度的转化和重新组合
5、。极大地限制了软件的可重用转化和重新组合。极大地限制了软件的可重用转化和重新组合。极大地限制了软件的可重用转化和重新组合。极大地限制了软件的可重用性,导致对不同用户同样业务对象大量的重复性性,导致对不同用户同样业务对象大量的重复性性,导致对不同用户同样业务对象大量的重复性性,导致对不同用户同样业务对象大量的重复性工作工作工作工作 。传统软件开发方法主要不足之处传统软件开发方法主要不足之处(2 2)可维护性差)可维护性差)可维护性差)可维护性差 传统方法开发的系统通常是围绕着如何实现传统方法开发的系统通常是围绕着如何实现传统方法开发的系统通常是围绕着如何实现传统方法开发的系统通常是围绕着如何实现
6、一定的功能行为来进行的,当系统功能易变,需一定的功能行为来进行的,当系统功能易变,需一定的功能行为来进行的,当系统功能易变,需一定的功能行为来进行的,当系统功能易变,需要常作修改时,实施修改很困难要常作修改时,实施修改很困难要常作修改时,实施修改很困难要常作修改时,实施修改很困难。传统软件开发方法主要不足之处传统软件开发方法主要不足之处(3 3)开发出的软件难以满足用户需要)开发出的软件难以满足用户需要)开发出的软件难以满足用户需要)开发出的软件难以满足用户需要 功能与数据分离的软件分析设计结构,分析、功能与数据分离的软件分析设计结构,分析、功能与数据分离的软件分析设计结构,分析、功能与数据分
7、离的软件分析设计结构,分析、设计阶段表示体系不一致,和人的自然思维很不设计阶段表示体系不一致,和人的自然思维很不设计阶段表示体系不一致,和人的自然思维很不设计阶段表示体系不一致,和人的自然思维很不一致。对于开发大型软件系统,从分析到设计容一致。对于开发大型软件系统,从分析到设计容一致。对于开发大型软件系统,从分析到设计容一致。对于开发大型软件系统,从分析到设计容易隐蔽一些对问题域的理解偏差,在开发需求模易隐蔽一些对问题域的理解偏差,在开发需求模易隐蔽一些对问题域的理解偏差,在开发需求模易隐蔽一些对问题域的理解偏差,在开发需求模糊或需求动态变化的系统时,往往容易造成最终糊或需求动态变化的系统时,
8、往往容易造成最终糊或需求动态变化的系统时,往往容易造成最终糊或需求动态变化的系统时,往往容易造成最终交付的系统不能真正满足用户的需要。交付的系统不能真正满足用户的需要。交付的系统不能真正满足用户的需要。交付的系统不能真正满足用户的需要。11.1.2 面向对象方法的主要概念面向对象方法的主要概念 面向对象软件开发方法不是从功能上,或是从面向对象软件开发方法不是从功能上,或是从面向对象软件开发方法不是从功能上,或是从面向对象软件开发方法不是从功能上,或是从处理问题的算法上来考虑,而是从系统的组成上处理问题的算法上来考虑,而是从系统的组成上处理问题的算法上来考虑,而是从系统的组成上处理问题的算法上来
9、考虑,而是从系统的组成上来进行分解,对问题进行自然分割,以更接近人来进行分解,对问题进行自然分割,以更接近人来进行分解,对问题进行自然分割,以更接近人来进行分解,对问题进行自然分割,以更接近人类思维的方式建立问题域模型,从而使设计出的类思维的方式建立问题域模型,从而使设计出的类思维的方式建立问题域模型,从而使设计出的类思维的方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化软件尽可能直接地描述现实世界,构造出模块化软件尽可能直接地描述现实世界,构造出模块化软件尽可能直接地描述现实世界,构造出模块化的、可重用的、可维护性好的软件,并能控制软的、可重用的、可维护性好的软件
10、,并能控制软的、可重用的、可维护性好的软件,并能控制软的、可重用的、可维护性好的软件,并能控制软件的复杂性和降低开发维护费用。件的复杂性和降低开发维护费用。件的复杂性和降低开发维护费用。件的复杂性和降低开发维护费用。面向对象方法主要应用的概念:面向对象方法主要应用的概念:1.1.对象对象对象对象(ObjectObject)从认知角度,对象是人们要进行研究的任何事物,从认知角度,对象是人们要进行研究的任何事物,从认知角度,对象是人们要进行研究的任何事物,从认知角度,对象是人们要进行研究的任何事物,从具体的事物到抽象的规则、计划或事件均可看作对从具体的事物到抽象的规则、计划或事件均可看作对从具体的
11、事物到抽象的规则、计划或事件均可看作对从具体的事物到抽象的规则、计划或事件均可看作对象。象。象。象。以系统开发角度,对象是系统中用来描述客观事物以系统开发角度,对象是系统中用来描述客观事物以系统开发角度,对象是系统中用来描述客观事物以系统开发角度,对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组的一个实体,是构成系统的一个基本单位,它由一组的一个实体,是构成系统的一个基本单位,它由一组的一个实体,是构成系统的一个基本单位,它由一组属性和对这组属性进行操作的一组服务组成。属性和对这组属性进行操作的一组服务组成。属性和对这组属性进行操作的一组服务组成。属性和对这组属性进行
12、操作的一组服务组成。属性和服务是构成对象的两个基本要素:属性和服务是构成对象的两个基本要素:属性和服务是构成对象的两个基本要素:属性和服务是构成对象的两个基本要素:u属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。u服务是用来描述对象动态特征(行为)的一个操作服务是用来描述对象动态特征(行为)的一个操作服务是用来描述对象动态特征(行为)的一个操作服务是用来描述对象动态特征(行为)的一个操作序列序列序列序列 人员对象姓名年龄性别职务住址职务变迁改换住址对象类型对象的属性对象的服务2.2
13、.类类类类(Class)(Class)类又称对象类(类又称对象类(类又称对象类(类又称对象类(Object ClassObject Class),是一组具有相同),是一组具有相同),是一组具有相同),是一组具有相同属性和服务的对象的集合。它为属于该类的全部对属性和服务的对象的集合。它为属于该类的全部对属性和服务的对象的集合。它为属于该类的全部对属性和服务的对象的集合。它为属于该类的全部对象提供了统一的抽象描述。象提供了统一的抽象描述。象提供了统一的抽象描述。象提供了统一的抽象描述。类好比是一个对象模板,用它可以产生多个对象。类好比是一个对象模板,用它可以产生多个对象。类好比是一个对象模板,用它
14、可以产生多个对象。类好比是一个对象模板,用它可以产生多个对象。类所代表的是一个抽象的概念或事物,在客观世界中类所代表的是一个抽象的概念或事物,在客观世界中类所代表的是一个抽象的概念或事物,在客观世界中类所代表的是一个抽象的概念或事物,在客观世界中实际存在的是类的实例,即对象。实际存在的是类的实例,即对象。实际存在的是类的实例,即对象。实际存在的是类的实例,即对象。类具有属性,它是对象的状态的抽象,用数据结构类具有属性,它是对象的状态的抽象,用数据结构类具有属性,它是对象的状态的抽象,用数据结构类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性;类具有服务,它是对象的行为的抽来描述类的属
15、性;类具有服务,它是对象的行为的抽来描述类的属性;类具有服务,它是对象的行为的抽来描述类的属性;类具有服务,它是对象的行为的抽象,用服务名和实现该服务的方法来描述。象,用服务名和实现该服务的方法来描述。象,用服务名和实现该服务的方法来描述。象,用服务名和实现该服务的方法来描述。几何对象几何对象颜色颜色位置位置移动(移动(delta:矢量)矢量)选择(选择(P:指针型)指针型):布尔型布尔型旋转旋转(角度角度)图示图示 类的描述类的描述人人姓姓 名名:字符串字符串年年 龄龄:整整 型型职务变迁职务变迁改换地址改换地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)李四
16、李四28绘图员绘图员人民路人民路8号号(人人)张三张三24程序员程序员无无图示图示 对象的描述对象的描述uu 对象和类的描述:对象和类的描述:对象和类的描述:对象和类的描述:对象和类一般采用对象和类一般采用对象和类一般采用对象和类一般采用“对象图对象图对象图对象图”和和和和 “类图类图类图类图”来描述。来描述。来描述。来描述。类名类名属性属性服务服务 对象图对象图 类图类图 继承是以已有的定义为基础,建立新定义的技术。是父类继承是以已有的定义为基础,建立新定义的技术。是父类继承是以已有的定义为基础,建立新定义的技术。是父类继承是以已有的定义为基础,建立新定义的技术。是父类和子类之间共享数据结构
17、和服务的机制,这是类之间的一种和子类之间共享数据结构和服务的机制,这是类之间的一种和子类之间共享数据结构和服务的机制,这是类之间的一种和子类之间共享数据结构和服务的机制,这是类之间的一种关系。关系。关系。关系。已有类定义已有类定义父类父类(基类基类)新类定义新类定义子类子类(派生类派生类)继承继承3.3.继承继承继承继承(Inheritance)(Inheritance)继承简化了人们对现实世界的认识和描述,在定义子类时不继承简化了人们对现实世界的认识和描述,在定义子类时不继承简化了人们对现实世界的认识和描述,在定义子类时不继承简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些已在
18、父类中定义过的属性和服务,只要说明它必重复定义那些已在父类中定义过的属性和服务,只要说明它必重复定义那些已在父类中定义过的属性和服务,只要说明它必重复定义那些已在父类中定义过的属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性和服务即可。是某个父类的子类,并定义自己特有的属性和服务即可。是某个父类的子类,并定义自己特有的属性和服务即可。是某个父类的子类,并定义自己特有的属性和服务即可。uu 继承的形式继承的形式继承的形式继承的形式 单重继承:一个子类只有一个父类。即子类只继承一个单重继承:一个子类只有一个父类。即子类只继承一个单重继承:一个子类只有一个父类。即子类只继承一个单重继承:
19、一个子类只有一个父类。即子类只继承一个父类的信息结构和行为。父类的信息结构和行为。父类的信息结构和行为。父类的信息结构和行为。多重继承:一个子类可有多个父类。继承多个父类的信多重继承:一个子类可有多个父类。继承多个父类的信多重继承:一个子类可有多个父类。继承多个父类的信多重继承:一个子类可有多个父类。继承多个父类的信息结构和行为。息结构和行为。息结构和行为。息结构和行为。轮船轮船客轮客轮货轮货轮4.4.消息(消息(消息(消息(MessageMessage)消消消消息息息息就就就就是是是是向向向向对对对对象象象象发发发发出出出出的的的的服服服服务务务务请请请请求求求求。对对象象之之间间的的联联系
20、系可可表表示示为为对对象象间间的的消消息息传传递递,即即对对象象间间的的通通信信机机制。制。在在在在对对对对象象象象的的的的服服服服务务务务操操操操作作作作中中中中当当当当一一一一个个个个消消消消息息息息发发发发送送送送给给给给某某某某个个个个对对对对象象象象时时时时,消息包含接收对象去执行某种服务操作的信息。消息包含接收对象去执行某种服务操作的信息。消息包含接收对象去执行某种服务操作的信息。消息包含接收对象去执行某种服务操作的信息。一个消息应该包含以下信息:消息名、接收消息对一个消息应该包含以下信息:消息名、接收消息对一个消息应该包含以下信息:消息名、接收消息对一个消息应该包含以下信息:消息
21、名、接收消息对象的标识、服务标识象的标识、服务标识象的标识、服务标识象的标识、服务标识 、输入信息、应答信息。、输入信息、应答信息。、输入信息、应答信息。、输入信息、应答信息。面向对象技术的封装机制使对象相互独立,各司其职面向对象技术的封装机制使对象相互独立,各司其职面向对象技术的封装机制使对象相互独立,各司其职面向对象技术的封装机制使对象相互独立,各司其职,消息通信则为它们提供了唯一合法的动态联系途径,消息通信则为它们提供了唯一合法的动态联系途径,消息通信则为它们提供了唯一合法的动态联系途径,消息通信则为它们提供了唯一合法的动态联系途径,使它们的行为能够相互配合,构成一个有机的运动的系使它们
22、的行为能够相互配合,构成一个有机的运动的系使它们的行为能够相互配合,构成一个有机的运动的系使它们的行为能够相互配合,构成一个有机的运动的系统。统。统。统。属性:姓名属性:姓名 年龄年龄 单位单位 职称职称 工资工资属性:王五属性:王五 25 电机系电机系 讲师讲师 1500服务:调工资服务:调工资 评职称评职称 受受 聘聘操作:调工资操作:调工资 (计算公式)(计算公式)评职称评职称 (步骤、条件)(步骤、条件)服务:调工资服务:调工资 评职称评职称 受受 聘聘王五,调工资(王五,调工资()数数据据结结构构数数据据值值劳资处理例程向对象发消息劳资处理例程向对象发消息执行执行的的操作操作服服务务
23、体体类:教师类:教师对象:王五对象:王五抽象抽象实例实例抽象抽象实例实例抽象抽象方法名(参数)方法名(参数)图示:图示:对象、类和消息传递对象、类和消息传递5.5.封装(封装(封装(封装(EncapsulationEncapsulation)封装是把对象的属性和服务结合成一个独立的系统封装是把对象的属性和服务结合成一个独立的系统封装是把对象的属性和服务结合成一个独立的系统封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。单位,并尽可能隐藏对象的内部细节。单位,并尽可能隐藏对象的内部细节。单位,并尽可能隐藏对象的内部细节。封装是面向对象方法的一个重要原则,系统中把对封
24、装是面向对象方法的一个重要原则,系统中把对封装是面向对象方法的一个重要原则,系统中把对封装是面向对象方法的一个重要原则,系统中把对象看成是属性和对象的结合体,使对象能够集中而完象看成是属性和对象的结合体,使对象能够集中而完象看成是属性和对象的结合体,使对象能够集中而完象看成是属性和对象的结合体,使对象能够集中而完整地描述一个具体事物。封装的信息隐蔽作用反映了整地描述一个具体事物。封装的信息隐蔽作用反映了整地描述一个具体事物。封装的信息隐蔽作用反映了整地描述一个具体事物。封装的信息隐蔽作用反映了事物的相对独立性,当我们从外部观察对象时,只需事物的相对独立性,当我们从外部观察对象时,只需事物的相对
25、独立性,当我们从外部观察对象时,只需事物的相对独立性,当我们从外部观察对象时,只需要了解对象所呈现的外部行为(即做什么),而不必要了解对象所呈现的外部行为(即做什么),而不必要了解对象所呈现的外部行为(即做什么),而不必要了解对象所呈现的外部行为(即做什么),而不必关心它的内部细节(即怎么做)。关心它的内部细节(即怎么做)。关心它的内部细节(即怎么做)。关心它的内部细节(即怎么做)。6.6.对象结构和类结构对象结构和类结构对象结构和类结构对象结构和类结构 为了使业务系统能够有效地映射问题域,系统开发为了使业务系统能够有效地映射问题域,系统开发为了使业务系统能够有效地映射问题域,系统开发为了使业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 软件 开发 UML 建模 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内