面向对象技术与UML.ppt_第1页
面向对象技术与UML.ppt_第2页
面向对象技术与UML.ppt_第3页
面向对象技术与UML.ppt_第4页
面向对象技术与UML.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 面向对象技术与UML,2.1 面向对象技术概述 2.2 面向对象的分析 2.3 面向对象的设计 2.4 基于UML的面向对象分析设计过程,2.1 面向对象技术概述 2.1.1 面向对象的基本概念 软件工程学家Coad和Yourdon的定义: 面向对象=对象+类+继承+通信 面向对象技术的基本观点 客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 具有相同数据和操作的对象可归纳成类,对象是类的一个实例。 类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。 对象之间的联系通过消息传递来维系,2.1.1 面向对象的基本概念 面向对象的核心元素: 对象 封装 消息 类 继承 多态性 结构与连接,2.1.1 面向对象的基本概念 1. 对象 客观世界里的任何实体都可以被称为对象。 对象可以是具体的、有形的物,也可以是无形的事物或概念。 对象是问题域或实现域中某些事物的一个抽象。 对象是一个封装数据属性和操作行为的实体。 系统中的对象在软件生命周期的各个阶段可能有不同的表示形式。,2.1.1 面向对象的基本概念 一个对象的实例图解,2.1.1 面向对象的基本概念 2. 封装 封装是面向对象方法的一个重要原则。 封装有两个含义: 结合性 将对象的全部属性和方法结合起来,形成一个不可分割的单位。 信息隐蔽性 尽可能隐藏对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生关系。 封装的基本单位是对象,2.1.1 面向对象的基本概念 3. 消息 消息是向对象发出的服务请求 一个消息包含消息名、接受对象的标志、服务标志、输入信息、回答信息等。 消息传递机制 面向对象技术采用封装机制使得对象相互独立,各个对象要相互协作实现系统的功能就得通过消息传递机制。,2.1.1 面向对象的基本概念 4. 类 类的定义 一组具有相同数据结构和相同操作的对象的集合。 类是对象的抽象 将一组数据属性和在数据上的一组合法操作抽象封装。 客观世界实际存在的都是对象,而不是类 。 类和对象的关系 基于类可以生成多个具有不同属性值的对象。,2.1.1 面向对象的基本概念 5. 继承 继承性是面向对象程序设计语言不同于其他语言的最主要特点。 继承的定义 是指子类可以自动拥有父类的全部属性与操作的机制。 继承机制 根据事物的共性抽象出一批基类,在基类的基础上可以根据个性添加自己的属性与操作,抽象出新的对象类。这些新类具有基类的全部属性与推选作,又有自己的属性与操作,被称为基类的子类或派生类,基类称之为父类或超类,2.1.1 面向对象的基本概念 5. 继承 继承机制,2.1.1 面向对象的基本概念 5. 继承 继承性分类 单重继承 一个子类只有一个父类,类之间的关系是一棵树。 多重继承 一个子类可以有多个父类,类之间构成一个图。 继承具有传递性 一个子类除具有自己的全部特征外,还具有该类上层全部基类的一切特征。,2.1.1 面向对象的基本概念 5. 继承 单重继承和多重继承的描述,2.1.1 面向对象的基本概念 6. 多态性 定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 多态性通常通过重载机制的同名函数实现 多态性分为两种 编译时的多态性 系统编译时,通过传递的参数、返回值的类型等信息决定实现何种操作。 运行时的多态性 指系统运行时,根据实际情况决定实现何种操作。,2.1.1 面向对象的基本概念 6. 多态性 多态性的实现方式 通过接口实现多态性 将操作的特定实现留给实现接口的类完成 通过继承实现多态性 通过重写基类的操作实现多态性 通过抽象类实现的多态性 抽象类不能实例化,只能通过继承实现,2.1.1 面向对象的基本概念 7. 结构与连接 一般/特殊结构 又称为分类结构,一个以类分节点、以继承关系为边的连通有向图 整体/部分结构 又称组装结构,描述对象间的组成关系 实例连接 对象间的静态关系 消息连接 对象间的动态关系,2.1.2 面向对象的开发语言 1. 面向对象的建模语言 Booch 1993(Grady Booch) 适合于系统设计与构造 OMT-2(Ivar Jacobson) 引入各种独立于语言的表示符 用对象模型、动态模型、功能模型和用例模型共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程。 OOSE(Jim Rumbaugh) 其特点是面向用例,用例贯穿于整个开发过程 适用于商业工程和需求分析 UML,2.1.2 面向对象的开发语言 UML的发展过程,2.1.2 面向对象的开发语言 2. 面向对象的程序设计语言 四个基本的分支 基于Smalltalk的语言 基于C的语言 基于LISP的语言 基于PASCAL的语言,2.1.3 面向对象的设计与开发工具 1. 面向对象的开发工具 C+,Basic Visual C+,Visual Basic支持 Pascal Borland的Delphi支持 Java Borland的JBuilder与Eclipse支持 2. 面向对象的设计工具 面向对象设计工具是CASE CASE应当具有需求分析、软件设计、代码生成、软件测试、软件文档编制与生成、逆向工程等工具。 流行的CASE工具都支持UML Sparx Systems的Enterprise Architect IBM Rational的Rational Rose,2.2 面向对象分析(OOA) 2.2.1 面向对象分析的层次 2.2.2 面向对象分析的基本过程 2.2.3 面向对象分析的基本原则 2.2.4 类图 2.2.5 发现对象和定义类 2.2.6 对象之间的通信,2.2.1 面向对象分析的层次 对象模型通常由五个层次组成: 类与对象层 属性层 服务层 结构层 主题层,2.2.1 面向对象分析的层次 对象模型的五个层次,2.2.2 面向对象分析的基本过程 面向对象分析过程: 发现对象,从对象中抽象出类的定义 识别对象的内部特征 定义对象的属性与服务 识别对象的外部关系 建立一般与特殊结构、整体与部分结构、实例连接、信息连接 划分主题,建立主题图 定义用例,建立交互图 包括发现活动者、定义Use case、建立交互图 建立详细说明 原型开发,2.2.2 面向对象分析的基本过程 面向对象分析过程遵循的规则: 发现活动者与定义用例两个子活动放在分析工作的开始,建立交互图的子活动安排在建立基本模型之后 建立基本活动的3个活动安排得近一点 划分主题的活动在分析很小的系统可以省略;在分析中小规模的系统时可以放在基本模型建立之后;在分析大型系统时放在基本活动建立之前进行 建立详细说明的活动可以结合在其他活动之中分期进行 原型开发需要反复进行。,2.2.2 面向对象分析的基本过程 面向对象分析过程模型,2.2.3 面向对象分析的基本原则 OOA应遵循的基本原则: 抽象原则 系统中的对象是对现实中事物的抽象; 类是对象的抽象; 一般类是对特殊类的进一步抽象; 属性是事物静态特征的抽象; 服务是事物动态特征的抽象。 分类原则 把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。 分类原则实际上就是抽象原则运用于对象描述时的一种表现形式。,2.2.3 面向对象分析的基本原则 OOA应遵循的基本原则: 聚合原则 把复杂的事物看成若干简单的事物的组合体,从而简化对复杂事物的描述。 关联原则 通过一个事物可以联想到几个其它相关的事物。 消息通信原则 要求对象之间只能通过消息进行通信,而不允许在对象外直接地存取对象内部的属性。,2.2.4 类图 用面向对象分析方法开发的系统,基本模型是一个类图。 类图的主要构成成分: 类 属性 方法 一般/特殊结构 整体/部分结构 实例连接 消息连接,2.2.4 类图 类图分为三个层次: 对象层 给出系统中所有反映问题域与系统责任的对象。 特征层 给出每一个类及其所代表的对象的内部特征,即每个类的属性与服务。 关系层 类及其对象间的关系。,2.2.5 发现对象和定义 1. 发现对象 发现对象的根本出发点:问题域和系统责任 问题域侧重于客观存在的事物与系统中对象的映象。 系统责任侧重于系统责任范围内的每一项职责由哪些对象来完成。 正确运用抽象原则,2.2.5 发现对象和定义 2. 抽象出对象类 对象识别后就要将每个对象抽象成类。 定义对象几种常见问题 类的属性或服务不适合该类的全部对象。 出现属性和服务相似的类。 出现对同一事物的重复描述。,2.2.6 对象之间的通信 对象与其类间存在的四种关系: 一般/特殊结构 分类关系 整体/部分结构 组成关系 实例连接 静态关系 消息连接 动态关系,2.2.6 对象之间的通信 1. 一般/特殊结构 一般/特殊结构均形成层次或网络,2.2.6 对象之间的通信 2. 整体/部分结构,2.2.6 对象之间的通信 3. 实例连接 实例连接用于表达对象之间的静态联系,2.2.6 对象之间的通信 4. 消息连接 定义 两个对象之间存在的由于通信需要而形成的关系。 表示方法 使用箭头从发送消息的对象指向接收消息的对象。,2.3 面向对象设计(OOD) 2.3.1 面向对象设计的模型 2.3.2 面向对象的高层设计 2.3.3 面向对象的类设计,2.3.1 面向对象设计的模型,2.3.2 面向对象的高层设计 1. 高层设计的结构模型 2. 高层设计的准则 3. 问题域子系统的设计 4. 人机交互子系统的设计 5. 任务管理子系统的设计 6. 数据管理子系统的设计,2.3.2 面向对象的高层设计 1. 高层设计的结构模型,2.3.2 面向对象的高层设计 2. 高层设计的准则 优秀的设计是权衡各种因素,高层设计的准则如下: 弱耦合 各个模块之间要相互独立 强内聚 子系统应当把那些成组的类打包,形成高度有内聚。 减少通信开销 子系统的各个高层部件间的通信量达到最小。 良好的可扩充性,2.3.2 面向对象的高层设计 3. 问题域子系统的设计 问题域子系统设计工作的几个方面: 复用已有的设计。 把与问题论域相关的类关联,建立类的层次结构。 创建一般化类。 改进系统性能。 加入较低层的构件。,2.3.2 面向对象的高层设计 4. 人机交互子系统的设计 用户界面设计的主要工作: 用户分类。 描述人及其任务的脚本。 设计命令层。 设计与用户的详细交互。 继续进行原型设计。 设计人机交互类。,2.3.2 面向对象的高层设计 5. 任务管理子系统的设计 定义任务的主要工作: 为任务命名,并简要说明这个任务。 定义各个任务如何协调工作,指出它是事件驱动还是时钟驱动。 定义各个任务之间如何通信,任务将从哪里取值,任务执行得到的结果将送往何方 一个任务的简单定义如下: Name:任务名 Description:任务描述 Priority:任务的优先级 Services included:任务包括的操作 Communication Via:任务经由谁通信,2.3.2 面向对象的高层设计 6. 数据管理子系统的设计 常用的数据管理方法有三种: 文件管理 关系数据库管理系统 面向对象数据库管理系统,2.3.3 面向对象的类设计 1. 类设计的目标 把类设计成可复用的“插接相容性”部件。 把类设计成健壮的部件。 把类设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论