软件工程讲义-04课件.ppt

  1. 1、本文档共128页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程讲义-04课件.ppt

软件工程 第四章 面向对象技术 4.1 面向对象的概念 4.2 Rational统一开发过程 4.3 UML统一建模语言 4.1 面向对象的概念 客观世界中的应用问题面对的主体都是物理的或概念的实体。 从这些实体出发,分析实体的作用、责任以及它们之间协作,从而找出问题的解,是很自然的。 面向对象技术就是适合用这种方式分析和解决问题的方法。它的基石就是问题领域中识别出来的各种对象。依赖这些对象提供的服务和对象之间相互的协同(关系),实现期望的功能。 面向对象技术能够在解决方案中直接模拟问题领域,并与人类的思维习惯相一致。 什么是面向对象 Peter Coad 和 Edward Yourdon 提出面向对象方法的概念: 面向对象 = 对象 + 分类 + 继承 + 消息通信 采用这四个概念开发的软件系统就是面向对象的软件系统。 一个面向对象的程序的每一成份应是对象,计算是通过新的对象的建立和对象之间的通信来执行的。 面向对象范型的特点 面向对象系统中的对象是数据抽象与过程抽象的综合体。 所谓过程抽象是指当使用某个过程时,无需关心过程内部的实现细节,只要知道如何调用该过程以及该过程完成什么功能即可。 所谓数据抽象是指使用结构或记录等方式把某个实体的数据集中起来,使得使用者能够以单元为单位使用数据。 面向对象范型在数据抽象中组织过程抽象。 面向对象系统的状态分别保存在各个对象的数据存储中,而不是保存在一些全局变量中。 系统解决问题的控制流包含在各个对象中的操作内。并通过消息传递,控制流从一个对象转移到另一个对象。 算法被分布到各种实体中。通过执行消息传递和对象中的操作实现算法的功能。 面向对象的特点 抽象性:对象包含数据抽象和行为抽象; 封装性:信息隐蔽(使用与实现分开); 共享性: 同一个类中所有对象共享相同的数据结构和行为; 同一应用中的对象通过继承关系,共享共同的数据结构和行为; 不同应用中的对象通过复用,共享数据结构和行为。 对象(object) 对象是系统中描述客观事物的实体,是构成系统的一个基本单元,由一组属性值和一组对属性进行操作的服务组成。 对象 = 对象名+数据(属性)+操作(行为) 属性值一般只能通过执行对象的操作来改变。 操作(方法或服务)描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。 对象可以是外部实体、信息结构、事件、角色、组织结构、地点或位置、操作规程等。 计算机窗口中的三个多边形对象 表示多边形的三个对象 类(class) 把具有相同属性(数据结构)和服务(操作)的对象归在一起就形成了类。 类的定义包括一组数据属性和在数据上的一组合法操作。 属于某一个类的各个对象都是该类的实例(instance),它们都可使用类中的操作。 类定义了各个实例所共有的数据结构,使用类的构造函数,可以在创建该类的实例时初始化这个实例的状态。 由两个四边形对象导出一个类 消息(message) 消息是一个对象向另一个对象传递的信息。有四类消息:发送对象请求接收对象提供服务、发送对象激活接收对象、发送对象询问接收对象、发送对象仅传送信息给接收对象。 消息的使用类似于函数调用,消息中指定了某一个实例,一个操作名和一个参数表(可能是空的),如quadrilateral1. move(15, 20) 。 接收消息的实例执行消息中指定的操作,并将形式参数与参数表中相应的值结合起来。 继承(inheritance) 如果某几个类之间具有共性的东西 (属性和行为),抽取出来放在一个泛化类中,将各个类的特有的东西放在特化类中分别描述,则可建立起特化类对泛化类的继承。 继承是使用已有的类定义做为基础建立新类的定义技术。 已有的类可当做泛化类(父类)来引用,则新类相应地可当做特化类(子类)来引用。 建立继承结构的好处: 易编程、易理解 代码短, 结构清晰 易修改 共同部分只要在一处修改即可 易增加新类 只须描述不同部分 怎样建立一个好的继承层次 类可以从父类继承,父类又可以从它的父类继承,形成多层次的继承结构。 当增加一个新类时,不一定在最低层,可能需要插在中间层,这样可能需要调整原来的层次结构。 建立一个新类起重车。它的底盘、发动机、轮胎、驱动装置等都在已有类汽车中。关系如右图所示。新类是已有类的特殊情形。这时直接让起重车类作为汽车类的子类即可。 增加一个新类拖拉机。它的底盘、发动机等与汽车不同,但驱动装置、轮胎等与汽车相同。 调整继承结构。建立一个新的一般的车辆类,把拖拉机与汽车类的共性放到车辆类中,拖拉机与汽车类都成为车辆类的子类。 车辆是抽象类,相关操作到子类汽车找。 另一种情形是在已有类的基础上加入新类,使得新类成为已有类的泛化类。 例如,已经存在三角形类,四边形类,想加入一个多边形

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档