欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    面向对象软件开发与UML建模课件.ppt

    • 资源ID:92653252       资源大小:868.02KB        全文页数:177页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象软件开发与UML建模课件.ppt

    第第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 面向对象方法的优势面向对象方法的优势面向对象方法的优势面向对象方法的优势11.1.4 11.1.4 面向对象软件开发的过程面向对象软件开发的过程面向对象软件开发的过程面向对象软件开发的过程11.1.5 11.1.5 典型面向对象软件开发方法典型面向对象软件开发方法典型面向对象软件开发方法典型面向对象软件开发方法 11.1.1 传统软件开发方法存在的不足传统软件开发方法存在的不足 互联网时代,用户为响应外部竞争环境的变化互联网时代,用户为响应外部竞争环境的变化互联网时代,用户为响应外部竞争环境的变化互联网时代,用户为响应外部竞争环境的变化对业务应用系统要求:对业务应用系统要求:对业务应用系统要求:对业务应用系统要求:快速交付快速交付快速交付快速交付 低成本维护低成本维护低成本维护低成本维护 系统柔性扩充系统柔性扩充系统柔性扩充系统柔性扩充 同时,面向广域业务应用的大型分布式系统的同时,面向广域业务应用的大型分布式系统的同时,面向广域业务应用的大型分布式系统的同时,面向广域业务应用的大型分布式系统的规模和复杂性都显著提高。以结构化开发为代表规模和复杂性都显著提高。以结构化开发为代表规模和复杂性都显著提高。以结构化开发为代表规模和复杂性都显著提高。以结构化开发为代表传统软件开发方法确实存在难以逾越的鸿沟。传统软件开发方法确实存在难以逾越的鸿沟。传统软件开发方法确实存在难以逾越的鸿沟。传统软件开发方法确实存在难以逾越的鸿沟。传统开发方法主要的不足之处传统开发方法主要的不足之处(1 1)软件重用性差)软件重用性差)软件重用性差)软件重用性差 传统的方法识别业务需求是在全局范围内以功传统的方法识别业务需求是在全局范围内以功传统的方法识别业务需求是在全局范围内以功传统的方法识别业务需求是在全局范围内以功能、数据或数据流为中心来进行分析。分析结果能、数据或数据流为中心来进行分析。分析结果能、数据或数据流为中心来进行分析。分析结果能、数据或数据流为中心来进行分析。分析结果不能直接地映射问题域,而是经过了不同程度的不能直接地映射问题域,而是经过了不同程度的不能直接地映射问题域,而是经过了不同程度的不能直接地映射问题域,而是经过了不同程度的转化和重新组合。极大地限制了软件的可重用转化和重新组合。极大地限制了软件的可重用转化和重新组合。极大地限制了软件的可重用转化和重新组合。极大地限制了软件的可重用性,导致对不同用户同样业务对象大量的重复性性,导致对不同用户同样业务对象大量的重复性性,导致对不同用户同样业务对象大量的重复性性,导致对不同用户同样业务对象大量的重复性工作工作工作工作 。传统软件开发方法主要不足之处传统软件开发方法主要不足之处(2 2)可维护性差)可维护性差)可维护性差)可维护性差 传统方法开发的系统通常是围绕着如何实现传统方法开发的系统通常是围绕着如何实现传统方法开发的系统通常是围绕着如何实现传统方法开发的系统通常是围绕着如何实现一定的功能行为来进行的,当系统功能易变,需一定的功能行为来进行的,当系统功能易变,需一定的功能行为来进行的,当系统功能易变,需一定的功能行为来进行的,当系统功能易变,需要常作修改时,实施修改很困难要常作修改时,实施修改很困难要常作修改时,实施修改很困难要常作修改时,实施修改很困难。传统软件开发方法主要不足之处传统软件开发方法主要不足之处(3 3)开发出的软件难以满足用户需要)开发出的软件难以满足用户需要)开发出的软件难以满足用户需要)开发出的软件难以满足用户需要 功能与数据分离的软件分析设计结构,分析、功能与数据分离的软件分析设计结构,分析、功能与数据分离的软件分析设计结构,分析、功能与数据分离的软件分析设计结构,分析、设计阶段表示体系不一致,和人的自然思维很不设计阶段表示体系不一致,和人的自然思维很不设计阶段表示体系不一致,和人的自然思维很不设计阶段表示体系不一致,和人的自然思维很不一致。对于开发大型软件系统,从分析到设计容一致。对于开发大型软件系统,从分析到设计容一致。对于开发大型软件系统,从分析到设计容一致。对于开发大型软件系统,从分析到设计容易隐蔽一些对问题域的理解偏差,在开发需求模易隐蔽一些对问题域的理解偏差,在开发需求模易隐蔽一些对问题域的理解偏差,在开发需求模易隐蔽一些对问题域的理解偏差,在开发需求模糊或需求动态变化的系统时,往往容易造成最终糊或需求动态变化的系统时,往往容易造成最终糊或需求动态变化的系统时,往往容易造成最终糊或需求动态变化的系统时,往往容易造成最终交付的系统不能真正满足用户的需要。交付的系统不能真正满足用户的需要。交付的系统不能真正满足用户的需要。交付的系统不能真正满足用户的需要。11.1.2 面向对象方法的主要概念面向对象方法的主要概念 面向对象软件开发方法不是从功能上,或是从面向对象软件开发方法不是从功能上,或是从面向对象软件开发方法不是从功能上,或是从面向对象软件开发方法不是从功能上,或是从处理问题的算法上来考虑,而是从系统的组成上处理问题的算法上来考虑,而是从系统的组成上处理问题的算法上来考虑,而是从系统的组成上处理问题的算法上来考虑,而是从系统的组成上来进行分解,对问题进行自然分割,以更接近人来进行分解,对问题进行自然分割,以更接近人来进行分解,对问题进行自然分割,以更接近人来进行分解,对问题进行自然分割,以更接近人类思维的方式建立问题域模型,从而使设计出的类思维的方式建立问题域模型,从而使设计出的类思维的方式建立问题域模型,从而使设计出的类思维的方式建立问题域模型,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化软件尽可能直接地描述现实世界,构造出模块化软件尽可能直接地描述现实世界,构造出模块化软件尽可能直接地描述现实世界,构造出模块化的、可重用的、可维护性好的软件,并能控制软的、可重用的、可维护性好的软件,并能控制软的、可重用的、可维护性好的软件,并能控制软的、可重用的、可维护性好的软件,并能控制软件的复杂性和降低开发维护费用。件的复杂性和降低开发维护费用。件的复杂性和降低开发维护费用。件的复杂性和降低开发维护费用。面向对象方法主要应用的概念:面向对象方法主要应用的概念:1.1.对象对象对象对象(ObjectObject)从认知角度,对象是人们要进行研究的任何事物,从认知角度,对象是人们要进行研究的任何事物,从认知角度,对象是人们要进行研究的任何事物,从认知角度,对象是人们要进行研究的任何事物,从具体的事物到抽象的规则、计划或事件均可看作对从具体的事物到抽象的规则、计划或事件均可看作对从具体的事物到抽象的规则、计划或事件均可看作对从具体的事物到抽象的规则、计划或事件均可看作对象。象。象。象。以系统开发角度,对象是系统中用来描述客观事物以系统开发角度,对象是系统中用来描述客观事物以系统开发角度,对象是系统中用来描述客观事物以系统开发角度,对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组的一个实体,是构成系统的一个基本单位,它由一组的一个实体,是构成系统的一个基本单位,它由一组的一个实体,是构成系统的一个基本单位,它由一组属性和对这组属性进行操作的一组服务组成。属性和对这组属性进行操作的一组服务组成。属性和对这组属性进行操作的一组服务组成。属性和对这组属性进行操作的一组服务组成。属性和服务是构成对象的两个基本要素:属性和服务是构成对象的两个基本要素:属性和服务是构成对象的两个基本要素:属性和服务是构成对象的两个基本要素:u属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。属性是用来描述对象静态特征的一个数据项。u服务是用来描述对象动态特征(行为)的一个操作服务是用来描述对象动态特征(行为)的一个操作服务是用来描述对象动态特征(行为)的一个操作服务是用来描述对象动态特征(行为)的一个操作序列序列序列序列 人员对象姓名年龄性别职务住址职务变迁改换住址对象类型对象的属性对象的服务2.2.类类类类(Class)(Class)类又称对象类(类又称对象类(类又称对象类(类又称对象类(Object ClassObject Class),是一组具有相同),是一组具有相同),是一组具有相同),是一组具有相同属性和服务的对象的集合。它为属于该类的全部对属性和服务的对象的集合。它为属于该类的全部对属性和服务的对象的集合。它为属于该类的全部对属性和服务的对象的集合。它为属于该类的全部对象提供了统一的抽象描述。象提供了统一的抽象描述。象提供了统一的抽象描述。象提供了统一的抽象描述。类好比是一个对象模板,用它可以产生多个对象。类好比是一个对象模板,用它可以产生多个对象。类好比是一个对象模板,用它可以产生多个对象。类好比是一个对象模板,用它可以产生多个对象。类所代表的是一个抽象的概念或事物,在客观世界中类所代表的是一个抽象的概念或事物,在客观世界中类所代表的是一个抽象的概念或事物,在客观世界中类所代表的是一个抽象的概念或事物,在客观世界中实际存在的是类的实例,即对象。实际存在的是类的实例,即对象。实际存在的是类的实例,即对象。实际存在的是类的实例,即对象。类具有属性,它是对象的状态的抽象,用数据结构类具有属性,它是对象的状态的抽象,用数据结构类具有属性,它是对象的状态的抽象,用数据结构类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性;类具有服务,它是对象的行为的抽来描述类的属性;类具有服务,它是对象的行为的抽来描述类的属性;类具有服务,它是对象的行为的抽来描述类的属性;类具有服务,它是对象的行为的抽象,用服务名和实现该服务的方法来描述。象,用服务名和实现该服务的方法来描述。象,用服务名和实现该服务的方法来描述。象,用服务名和实现该服务的方法来描述。几何对象几何对象颜色颜色位置位置移动(移动(delta:矢量)矢量)选择(选择(P:指针型)指针型):布尔型布尔型旋转旋转(角度角度)图示图示 类的描述类的描述人人姓姓 名名:字符串字符串年年 龄龄:整整 型型职务变迁职务变迁改换地址改换地址文件文件文件名文件名文件大小文件大小最近更新日期最近更新日期打印打印(人人)李四李四28绘图员绘图员人民路人民路8号号(人人)张三张三24程序员程序员无无图示图示 对象的描述对象的描述uu 对象和类的描述:对象和类的描述:对象和类的描述:对象和类的描述:对象和类一般采用对象和类一般采用对象和类一般采用对象和类一般采用“对象图对象图对象图对象图”和和和和 “类图类图类图类图”来描述。来描述。来描述。来描述。类名类名属性属性服务服务 对象图对象图 类图类图 继承是以已有的定义为基础,建立新定义的技术。是父类继承是以已有的定义为基础,建立新定义的技术。是父类继承是以已有的定义为基础,建立新定义的技术。是父类继承是以已有的定义为基础,建立新定义的技术。是父类和子类之间共享数据结构和服务的机制,这是类之间的一种和子类之间共享数据结构和服务的机制,这是类之间的一种和子类之间共享数据结构和服务的机制,这是类之间的一种和子类之间共享数据结构和服务的机制,这是类之间的一种关系。关系。关系。关系。已有类定义已有类定义父类父类(基类基类)新类定义新类定义子类子类(派生类派生类)继承继承3.3.继承继承继承继承(Inheritance)(Inheritance)继承简化了人们对现实世界的认识和描述,在定义子类时不继承简化了人们对现实世界的认识和描述,在定义子类时不继承简化了人们对现实世界的认识和描述,在定义子类时不继承简化了人们对现实世界的认识和描述,在定义子类时不必重复定义那些已在父类中定义过的属性和服务,只要说明它必重复定义那些已在父类中定义过的属性和服务,只要说明它必重复定义那些已在父类中定义过的属性和服务,只要说明它必重复定义那些已在父类中定义过的属性和服务,只要说明它是某个父类的子类,并定义自己特有的属性和服务即可。是某个父类的子类,并定义自己特有的属性和服务即可。是某个父类的子类,并定义自己特有的属性和服务即可。是某个父类的子类,并定义自己特有的属性和服务即可。uu 继承的形式继承的形式继承的形式继承的形式 单重继承:一个子类只有一个父类。即子类只继承一个单重继承:一个子类只有一个父类。即子类只继承一个单重继承:一个子类只有一个父类。即子类只继承一个单重继承:一个子类只有一个父类。即子类只继承一个父类的信息结构和行为。父类的信息结构和行为。父类的信息结构和行为。父类的信息结构和行为。多重继承:一个子类可有多个父类。继承多个父类的信多重继承:一个子类可有多个父类。继承多个父类的信多重继承:一个子类可有多个父类。继承多个父类的信多重继承:一个子类可有多个父类。继承多个父类的信息结构和行为。息结构和行为。息结构和行为。息结构和行为。轮船轮船客轮客轮货轮货轮4.4.消息(消息(消息(消息(MessageMessage)消消消消息息息息就就就就是是是是向向向向对对对对象象象象发发发发出出出出的的的的服服服服务务务务请请请请求求求求。对对象象之之间间的的联联系系可可表表示示为为对对象象间间的的消消息息传传递递,即即对对象象间间的的通通信信机机制。制。在在在在对对对对象象象象的的的的服服服服务务务务操操操操作作作作中中中中当当当当一一一一个个个个消消消消息息息息发发发发送送送送给给给给某某某某个个个个对对对对象象象象时时时时,消息包含接收对象去执行某种服务操作的信息。消息包含接收对象去执行某种服务操作的信息。消息包含接收对象去执行某种服务操作的信息。消息包含接收对象去执行某种服务操作的信息。一个消息应该包含以下信息:消息名、接收消息对一个消息应该包含以下信息:消息名、接收消息对一个消息应该包含以下信息:消息名、接收消息对一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识象的标识、服务标识象的标识、服务标识象的标识、服务标识 、输入信息、应答信息。、输入信息、应答信息。、输入信息、应答信息。、输入信息、应答信息。面向对象技术的封装机制使对象相互独立,各司其职面向对象技术的封装机制使对象相互独立,各司其职面向对象技术的封装机制使对象相互独立,各司其职面向对象技术的封装机制使对象相互独立,各司其职,消息通信则为它们提供了唯一合法的动态联系途径,消息通信则为它们提供了唯一合法的动态联系途径,消息通信则为它们提供了唯一合法的动态联系途径,消息通信则为它们提供了唯一合法的动态联系途径,使它们的行为能够相互配合,构成一个有机的运动的系使它们的行为能够相互配合,构成一个有机的运动的系使它们的行为能够相互配合,构成一个有机的运动的系使它们的行为能够相互配合,构成一个有机的运动的系统。统。统。统。属性:姓名属性:姓名 年龄年龄 单位单位 职称职称 工资工资属性:王五属性:王五 25 电机系电机系 讲师讲师 1500服务:调工资服务:调工资 评职称评职称 受受 聘聘操作:调工资操作:调工资 (计算公式)(计算公式)评职称评职称 (步骤、条件)(步骤、条件)服务:调工资服务:调工资 评职称评职称 受受 聘聘王五,调工资(王五,调工资()数数据据结结构构数数据据值值劳资处理例程向对象发消息劳资处理例程向对象发消息执行执行的的操作操作服服务务体体类:教师类:教师对象:王五对象:王五抽象抽象实例实例抽象抽象实例实例抽象抽象方法名(参数)方法名(参数)图示:图示:对象、类和消息传递对象、类和消息传递5.5.封装(封装(封装(封装(EncapsulationEncapsulation)封装是把对象的属性和服务结合成一个独立的系统封装是把对象的属性和服务结合成一个独立的系统封装是把对象的属性和服务结合成一个独立的系统封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。单位,并尽可能隐藏对象的内部细节。单位,并尽可能隐藏对象的内部细节。单位,并尽可能隐藏对象的内部细节。封装是面向对象方法的一个重要原则,系统中把对封装是面向对象方法的一个重要原则,系统中把对封装是面向对象方法的一个重要原则,系统中把对封装是面向对象方法的一个重要原则,系统中把对象看成是属性和对象的结合体,使对象能够集中而完象看成是属性和对象的结合体,使对象能够集中而完象看成是属性和对象的结合体,使对象能够集中而完象看成是属性和对象的结合体,使对象能够集中而完整地描述一个具体事物。封装的信息隐蔽作用反映了整地描述一个具体事物。封装的信息隐蔽作用反映了整地描述一个具体事物。封装的信息隐蔽作用反映了整地描述一个具体事物。封装的信息隐蔽作用反映了事物的相对独立性,当我们从外部观察对象时,只需事物的相对独立性,当我们从外部观察对象时,只需事物的相对独立性,当我们从外部观察对象时,只需事物的相对独立性,当我们从外部观察对象时,只需要了解对象所呈现的外部行为(即做什么),而不必要了解对象所呈现的外部行为(即做什么),而不必要了解对象所呈现的外部行为(即做什么),而不必要了解对象所呈现的外部行为(即做什么),而不必关心它的内部细节(即怎么做)。关心它的内部细节(即怎么做)。关心它的内部细节(即怎么做)。关心它的内部细节(即怎么做)。6.6.对象结构和类结构对象结构和类结构对象结构和类结构对象结构和类结构 为了使业务系统能够有效地映射问题域,系统开发为了使业务系统能够有效地映射问题域,系统开发为了使业务系统能够有效地映射问题域,系统开发为了使业务系统能够有效地映射问题域,系统开发者需认识并描述对象之间的存在的关系。者需认识并描述对象之间的存在的关系。者需认识并描述对象之间的存在的关系。者需认识并描述对象之间的存在的关系。几种常见重要的关系:几种常见重要的关系:几种常见重要的关系:几种常见重要的关系:(1 1)整体与部分之间的结构)整体与部分之间的结构)整体与部分之间的结构)整体与部分之间的结构 对象间由分解或组成所构成的关系,例如轮船由船对象间由分解或组成所构成的关系,例如轮船由船对象间由分解或组成所构成的关系,例如轮船由船对象间由分解或组成所构成的关系,例如轮船由船体、船舱、船舵、发动机、螺旋桨等组成的关系。即体、船舱、船舵、发动机、螺旋桨等组成的关系。即体、船舱、船舵、发动机、螺旋桨等组成的关系。即体、船舱、船舵、发动机、螺旋桨等组成的关系。即一个对象能由其他对象构成,通常称为一个对象能由其他对象构成,通常称为一个对象能由其他对象构成,通常称为一个对象能由其他对象构成,通常称为“包含包含包含包含”关系关系关系关系或或或或“组装组装组装组装”关系。关系。关系。关系。(2 2)一般与特殊结构)一般与特殊结构)一般与特殊结构)一般与特殊结构 它是由一组具有一般与特殊关系(即继承关系)的它是由一组具有一般与特殊关系(即继承关系)的它是由一组具有一般与特殊关系(即继承关系)的它是由一组具有一般与特殊关系(即继承关系)的类所组成的结构。例如:类所组成的结构。例如:类所组成的结构。例如:类所组成的结构。例如:其中,形如左图由一些单重继承关系的类形成层其中,形如左图由一些单重继承关系的类形成层其中,形如左图由一些单重继承关系的类形成层其中,形如左图由一些单重继承关系的类形成层次结构;形如右图由一些多重继承关系的类形成网次结构;形如右图由一些多重继承关系的类形成网次结构;形如右图由一些多重继承关系的类形成网次结构;形如右图由一些多重继承关系的类形成网络结构。上层类有对下层类一般特性的络结构。上层类有对下层类一般特性的络结构。上层类有对下层类一般特性的络结构。上层类有对下层类一般特性的“聚合聚合聚合聚合”关关关关系系系系。人员教师学生研究生本科生交通工具轮船客运工具火车客轮客运列车(3 3)对象间的)对象间的)对象间的)对象间的“相关相关相关相关”关系关系关系关系实例连接实例连接实例连接实例连接实例连接反映对象之间的静态联系,它是通过实例连接反映对象之间的静态联系,它是通过实例连接反映对象之间的静态联系,它是通过实例连接反映对象之间的静态联系,它是通过对象的属性来表现对象之间的依赖关系。存在实例对象的属性来表现对象之间的依赖关系。存在实例对象的属性来表现对象之间的依赖关系。存在实例对象的属性来表现对象之间的依赖关系。存在实例连接的对象类之间的联系称为连接的对象类之间的联系称为连接的对象类之间的联系称为连接的对象类之间的联系称为“关联关联关联关联”。例如,例如,例如,例如,“人员人员人员人员”与与与与“轮船轮船轮船轮船”是独立的两个类,是独立的两个类,是独立的两个类,是独立的两个类,它们之间存在它们之间存在它们之间存在它们之间存在“乘坐或驾驶乘坐或驾驶乘坐或驾驶乘坐或驾驶”联系,这种联系是通联系,这种联系是通联系,这种联系是通联系,这种联系是通过类中的过类中的过类中的过类中的“出行路线出行路线出行路线出行路线”、“时间时间时间时间”、“地点地点地点地点”等属等属等属等属性建立起来的。性建立起来的。性建立起来的。性建立起来的。7.7.多态性(多态性(多态性(多态性(PolymorphismPolymorphism)多态性是指在父类中定义的属性或服务被子类继承多态性是指在父类中定义的属性或服务被子类继承多态性是指在父类中定义的属性或服务被子类继承多态性是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。后,可以具有不同的数据类型或表现出不同的行为。后,可以具有不同的数据类型或表现出不同的行为。后,可以具有不同的数据类型或表现出不同的行为。在体现一般与特殊关系的一个类层次结构中,不同在体现一般与特殊关系的一个类层次结构中,不同在体现一般与特殊关系的一个类层次结构中,不同在体现一般与特殊关系的一个类层次结构中,不同层次的类可以共享一个操作,但多态性却使其有各自层次的类可以共享一个操作,但多态性却使其有各自层次的类可以共享一个操作,但多态性却使其有各自层次的类可以共享一个操作,但多态性却使其有各自不同的实现。当一个对象接收到一个请求时,它根据不同的实现。当一个对象接收到一个请求时,它根据不同的实现。当一个对象接收到一个请求时,它根据不同的实现。当一个对象接收到一个请求时,它根据其所属的类,动态地选用在该类中定义的操作。其所属的类,动态地选用在该类中定义的操作。其所属的类,动态地选用在该类中定义的操作。其所属的类,动态地选用在该类中定义的操作。例如:面向对象绘图程序中,在父类例如:面向对象绘图程序中,在父类例如:面向对象绘图程序中,在父类例如:面向对象绘图程序中,在父类“几何图形几何图形几何图形几何图形”中定义了中定义了中定义了中定义了一个服务一个服务一个服务一个服务“绘图绘图绘图绘图”,但并不确定执行时绘制一个什么图形。子,但并不确定执行时绘制一个什么图形。子,但并不确定执行时绘制一个什么图形。子,但并不确定执行时绘制一个什么图形。子类类类类“圆形圆形圆形圆形”和和和和“多边形多边形多边形多边形”都继承了几何图形类的绘图服务,但都继承了几何图形类的绘图服务,但都继承了几何图形类的绘图服务,但都继承了几何图形类的绘图服务,但其功能却不相同:一个是画圆形,一个是画多边形。圆形和多其功能却不相同:一个是画圆形,一个是画多边形。圆形和多其功能却不相同:一个是画圆形,一个是画多边形。圆形和多其功能却不相同:一个是画圆形,一个是画多边形。圆形和多边形接收到请求绘图消息时各自执行不同的绘图算法。边形接收到请求绘图消息时各自执行不同的绘图算法。边形接收到请求绘图消息时各自执行不同的绘图算法。边形接收到请求绘图消息时各自执行不同的绘图算法。11.1.3 面向对象方法的优势面向对象方法的优势(1 1)增强了可理解性)增强了可理解性)增强了可理解性)增强了可理解性 面向对象方法以对象为核心,强调对现实概念的模拟而不强面向对象方法以对象为核心,强调对现实概念的模拟而不强面向对象方法以对象为核心,强调对现实概念的模拟而不强面向对象方法以对象为核心,强调对现实概念的模拟而不强调算法。它的基本原则是按照人们习惯的思维方式建立问题域调算法。它的基本原则是按照人们习惯的思维方式建立问题域调算法。它的基本原则是按照人们习惯的思维方式建立问题域调算法。它的基本原则是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统。的模型,开发出尽可能直观、自然地表现求解方法的软件系统。的模型,开发出尽可能直观、自然地表现求解方法的软件系统。的模型,开发出尽可能直观、自然地表现求解方法的软件系统。(2 2)增强了可重用性)增强了可重用性)增强了可重用性)增强了可重用性 面向对象方法引入类、继承、多态、封装、消息连接等概念,面向对象方法引入类、继承、多态、封装、消息连接等概念,面向对象方法引入类、继承、多态、封装、消息连接等概念,面向对象方法引入类、继承、多态、封装、消息连接等概念,这些概念为复用提供了可能性。这些概念为复用提供了可能性。这些概念为复用提供了可能性。这些概念为复用提供了可能性。(3 3)增强了系统的稳定性)增强了系统的稳定性)增强了系统的稳定性)增强了系统的稳定性 面向对象方法以对象模拟实体,因为实体相对稳定,需求变面向对象方法以对象模拟实体,因为实体相对稳定,需求变面向对象方法以对象模拟实体,因为实体相对稳定,需求变面向对象方法以对象模拟实体,因为实体相对稳定,需求变化不会引起结构的整体变化,故软件系统也相应稳定。化不会引起结构的整体变化,故软件系统也相应稳定。化不会引起结构的整体变化,故软件系统也相应稳定。化不会引起结构的整体变化,故软件系统也相应稳定。(4 4)增强了系统的可维护性)增强了系统的可维护性)增强了系统的可维护性)增强了系统的可维护性 面向对象方法从以下几方面改善了可维护性:面向对象方法从以下几方面改善了可维护性:面向对象方法从以下几方面改善了可维护性:面向对象方法从以下几方面改善了可维护性:稳定性好:稳定性好:稳定性好:稳定性好:软件功能需求的变化不牵动全局,只需局部修改;软件功能需求的变化不牵动全局,只需局部修改;软件功能需求的变化不牵动全局,只需局部修改;软件功能需求的变化不牵动全局,只需局部修改;类的独类的独类的独类的独立性强:只要修改不涉及类的对外接口,则内部修改完全不立性强:只要修改不涉及类的对外接口,则内部修改完全不立性强:只要修改不涉及类的对外接口,则内部修改完全不立性强:只要修改不涉及类的对外接口,则内部修改完全不影响外部调用;影响外部调用;影响外部调用;影响外部调用;继承和多态性,使其很容易被修改和扩充;继承和多态性,使其很容易被修改和扩充;继承和多态性,使其很容易被修改和扩充;继承和多态性,使其很容易被修改和扩充;容易理解;容易理解;容易理解;容易理解;容易测试、调试容易测试、调试容易测试、调试容易测试、调试 (5 5)增加了软件的总体效益)增加了软件的总体效益)增加了软件的总体效益)增加了软件的总体效益 可复用性、可维护和可扩展性带来的不仅是技术上的效益。可复用性、可维护和可扩展性带来的不仅是技术上的效益。可复用性、可维护和可扩展性带来的不仅是技术上的效益。可复用性、可维护和可扩展性带来的不仅是技术上的效益。更重要的还有业务效益。从用户的观点来看,真正的利益在更重要的还有业务效益。从用户的观点来看,真正的利益在更重要的还有业务效益。从用户的观点来看,真正的利益在更重要的还有业务效益。从用户的观点来看,真正的利益在于构建的系统更好、更快、更经济。于构建的系统更好、更快、更经济。于构建的系统更好、更快、更经济。于构建的系统更好、更快、更经济。11.1.4 面向对象的软件开发过程面向对象的软件开发过程 面向对象的软件开发过程可以大体划分为面向对象面向对象的软件开发过程可以大体划分为面向对象面向对象的软件开发过程可以大体划分为面向对象面向对象的软件开发过程可以大体划分为面向对象分析(分析(分析(分析(OOAOOA,Object Oriented AnalysisObject Oriented Analysis)、面向对象)、面向对象)、面向对象)、面向对象设计(设计(设计(设计(OODOOD,Object Oriented DesignObject Oriented Design)、面向对象编)、面向对象编)、面向对象编)、面向对象编程(程(程(程(OOPOOP,Object Oriented ProgrammingObject Oriented Programming)和面向对)和面向对)和面向对)和面向对象测试(象测试(象测试(象测试(OOTOOT,Object Oriented TestingObject Oriented Testing)等主要环)等主要环)等主要环)等主要环节。节。节。节。面向对象分析面向对象分析 面面面面向向向向对对对对象象象象分分分分析析析析从从从从问问问问题题题题陈陈陈陈述述述述入入入入手手手手,分分分分析析析析和和和和构构构构造造造造所所所所关关关关心心心心的的的的现现现现实实实实世世世世界界界界问问问问题题题题的的的的模模模模型型型型,并并并并用用用用相相相相应应应应的的的的符符符符号号号号系系系系统统统统表表表表示示示示,面面面面向向向向对对对对象分析的步骤为:象分析的步骤为:象分析的步骤为:象分析的步骤为:1)1)1)1)确定问题域。包括定义论域,选择论域,根据需要细化和增加论域确定问题域。包括定义论域,选择论域,根据需要细化和增加论域确定问题域。包括定义论域,选择论域,根据需要细化和增加论域确定问题域。包括定义论域,选择论域,根据需要细化和增加论域2)2)2)2)区分类和对象。包括定义对象,定义类,命名区分类和对象。包括定义对象,定义类,命名区分类和对象。包括定义对象,定义类,命名区分类和对象。包括定义对象,定义类,命名3)3)3)3)区区区区分分分分整整整整体体体体对对对对象象象象及及及及组组组组成成成成部部部部分分分分,确确确确定定定定类类类类的的的的关关关关系系系系及及及及结结结结构构构构。包包包包括括括括一一一一般般般般具具具具体体体体结构、整体结构、整体结构、整体结构、整体部分结构、多重结构部分结构、多重结构部分结构、多重结构部分结构、多重结构4)4)4)4)定义属性。包括确定属性,安排属性。确定实例联结定义属性。包括确定属性,安排属性。确定实例联结定义属性。包括确定属性,安排属性。确定实例联结定义属性。包括确定属性,安排属性。确定实例联结5)5)5)5)定义服务。包括确定对象状态,确定所需服务,确定消息联结定义服务。包括确定对象状态,确定所需服务,确定消息联结定义服务。包括确定对象状态,确定所需服务,确定消息联结定义服务。包括确定对象状态,确定所需服务,确定消息联结6)6)确定附加的系统约束。确定附加的系统约束。确定附加的系统约束。确定附加的系统约束。面向对象设计面向对象设计 面向对象设计具体设计步骤如下:面向对象设计具体设计步骤如下:面向对象设计具体设计步骤如下:面向对象设计具体设计步骤如下:1)1)1)1)应应应应用用用用面面面面向向向向对对对对象象象象分分分分析析析析对对对对用用用用其其其其他他他他方方方方法法法法得得得得到到到到的的的的系系系系统统统统分分分分析析析析的的的的结结结结果果果果进进进进行行行行改改改改进进进进和和和和完善完善完善完善2)2)2)2)设设设设计计计计交交交交互互互互过过过过程程程程和和和和用用用用户户户户接接接接口口口口。包包包包括括括括描描描描述述述述用用用用户户户户及及及及任任任任务务务务并并并并根根根根据据据据需需需需要要要要分分分分成成成成子子子子系系系系统统统统、把把把把交交交交互互互互作作作作用用用用设设设设计计计计成成成成类类类类、设设设设计计计计命命命命令令令令层层层层次次次次、设设设设计计计计交交交交互互互互作作作作用用用用过过过过程程程程及及及及接口并用相应符号系统表示接口并用相应符号系统表示接口并用相应符号系统表示接口并用相应符号系统表示3)3)3)3)设设设设计计计计任任任任务务务务管管管管理理理理。包包包包括括括括根根根根据据据据前前前前一一一一步步步步骤骤骤骤确确确确定定定定是是是是否否否否需需需需要要要要多多多多重重重重任任任任务务务务、确确确确定定定定并并并并发发发发性性性性、确确确确定定定定以以以以何何何何种种种种方方方方式式式式驱驱驱驱动动动动任任任任务务务务、设设设设计计计计子子子子系系系系统统统统及及及及任任任任务务务务之之之之间间间间的的的的协协协协调调调调与与与与通信方式、确定优先级通信方式、确定优先级通信方式、确定优先级通信方式、确定优先级4)4)4)4)设设设设计计计计全全全全局局局局资资资资源源源源协协协协调调调调。包包包包括括括括确确确确定定定定边边边边界界界界条条条条件件件件、确确确确定定定定任任任任务务务务或或或或子子子子系系系系统统统统的的的的软软软软、硬件分配硬件分配硬件分配硬件分配5)5)设设设设计计计计类类类类等等等等。包包包包括括括括各各各各个个个个类类类类的的的的存存存存储储储储和和和和数数数数据据据据格格格格式式式式、设设设设计计计计实实实实现现现现类类类类所所所所需需需需的的的的算算算算法法法法、将属性和服务加入到各个类的存储对象中、设计对象库或数据库将属性和服务加入到各个类的存储对象中、设计对象库或数据库将属性和服务加入到各个类的存储对象中、设计对象库或数据库将属性和服务加入到各个类的存储对象中、设计对象库或数据库 OOPOOP环节的工作就是用确定合适的面向对象的编程语环节的工作就是用确定合适的面向对象的编程语环节的工作就是用确定合适的面向对象的编程语环节的工作就是用确定合适的面向对象的编程语言,把言,把言,把言,把OODOOD模型中的每个成分书写出来。并将编好的模型中的每个成分书写出来。并将编好的模型中的每个成分书写出来。并将编好的模型中的每个成分书写出来。并将编好的各个类代码模块根据类的相互关系集成为完整的软件各个类代码模块根据类的相互关系集成为完整的软件各个类代码模块根据类的相互关系集成为完整的软件各个类代码模块根据类的相互关系集成为完整的软件系统。系统。系统。系统。使用使用使用使用OOOOOOOO语言来实现语言来实现语言来实现语言来实现OOOOOOOO设计相对来说比较容易,因为语设计相对来说比较容易,因为语设计相对来说比较容易,因为语设计相对来说比较容易,因为语言的构造与设计的构造是相似的,言的构造与设计的构造是相似的,言的构造与设计的构造是相似的,言的构造与设计的构造是相似的,OOOOOOOO语言支持对象、语言支持对象、语言支持对象、语言支持对象、运行多态性和继承。运行多态性和继承。运行多态性和继承。运行多态性和继承。程序开发人员着重要做的工作是:用具体的数据结构程序开发人员着重要做的工作是:用具体的数据结构程序开发人员着重要做的工作是:用具体的数据结构程序开发人员着重要做的工作是:用具体的数据结构来定义对象的属性,用具体的语句来实现服务流程图来定义对象的属性,用具体的语句来实现服务流程图来定义对象的属性,用具体的语句来实现服务流程图来定义对象的属性,用具体的语句来实现服务流程图所表示的算法。所表示的算法。所表示的算法。所表示的算法。面向对象编程面向对象编程 对于运用对于运用对于运用对于运用OOOO技术开发的软件,在测试过程中继续运用技术开发的软件,在测试过程中继续运用技术开发的软件,在测试过程中继续运用技术开发的软件,在测试过程中继续运用OOO

    注意事项

    本文(面向对象软件开发与UML建模课件.ppt)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开