《UML02面向对象技术与UML汇总》由会员分享,可在线阅读,更多相关《UML02面向对象技术与UML汇总(27页珍藏版)》请在金锄头文库上搜索。
1、第2章面向对象技术与UML2.1面向对象技术概述2.2面向对象的分析-2.3面向对象的设计2.4基于UML的面向对彖分析、设讨2.1而向对象技术概述-2.1.1面向对象的基本概念 2.1.2面向对象的开发语言 2.1.3面向对象的设计与开发工具2.1.1面向对象的基本概念 Coad 和丫 ourdon:面向对象=对象+类+继承+通信2.1.1面向对象的基本概念面向对象技术的基本观点: 客观世界由对彖组成,任何客观实体都是对象,复杂对象可以由简单对象组成。 具有相同数据和操作的对象可归纳成类, 对象是类的一个实例。 类町以派生出子类,子类除了继承父类的 全部特性外还可以有B己的特性。 对象之间的
2、联系通过消息传递来维系。-面向对象的核心元素: 对象封装消息 类继承多态性结构与连接1. 对象-客观世界里的任何实体都可以被称为对彖。对彖口J以是具体的、有形的物,也口J以是无形的 事物或概念。-对象是问题域或实现域中某些事物的一个抽象。对象是一个封装数抓属性和操作行为的实体。系统中的对象右:软件牛命周期的各个阶段可能有 不同的表示形式。一个对象的实例图解2. 封装封装是面向对象方法的一个重耍原则。封装有两个含义: 结合性 信息隐蔽性3. 消息消息是向对象发出的服务请求。一个消息包含消息名、接受对象的标志、 服务标志、输入信息、回答信息等。消息传递机制。4. 类类是一组具有相同数据结构和相同操
3、作的 对象的集合。类是对象的抽象。客观世界实际存在的都是对象,而不是类O类和对象的关系。5. 继承继承性是面向对象程序设计语言不同丁其 他语言的最主要特点。继承是指子类可以口动拥有父类的全部属 性与操作的机制。父类(超类)子类(派生类)继承性又分为单重继承和多重继承两类。继承的描述C为继小部分D为附加部分单重继承和多重继承的描述6. 多态性定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。 多态性分为两种: 编译时的多态性。 运行时的多态性。6.多态性多态性的实现方式: 通过接口实现多态性 通过继承实现多态性 通过抽象类实现的多态性7. 结构与连接 一般/特殊结构 整体/部
4、分结构 实例连接 消息连接2.1.2面向对象的开发语言-1.面向对象的建模语言 2面向对象的程序设计语言1. 面向对象的建模语言 Booch 1993 (Grady Booch) OOSE (Jim Rumbaugh) OMT-2 (IvarJacobson)-UMLZ 10UML的发展过程myKltWCifr;:IJMIJ.IWT.IIW.II2. 面向对象的程序设计语言四个基本的分支: 基于Smalltalk的语言 基于C的语言 基丁LISP的语言 基于PASCAL的语言2.1.3面向对象的设计与开发工具 1.面向对象的开发工具 2面向对象的设计工具2.2面向对象分析(OOA) 2.2.1
5、面向对象分析的层次 2.2.2面向对象分析的基本过程 2.2.3面向对彖分析的基木原则 2.2.4类图 2.2.5发现对象和定义类 2.2.6对象之间的通信2.2.1面向对象分析的层次对象模型通常由五个层次组成: 类与对象层 属性层 服务层 结构层 主题层对象模型的五个层次I Sf?.2.2.2而向对象分析的基本过程 发现对象,从对象中抽象出类的定义。 识别对象的内部特征。 识别对象的外部关系。 划分主题,建立主题图。 定义用例,建立交互图。 建立详细说明。 原型开发。面向对象分析过程模型义 I w Coy洋niw叨U&开廉2.2.3面向对象分析的基本原则 抽象原则 分类原则 聚合原则 关联原
6、则 消息通信原则2.2.4类图类图的主要构成成分: 类 属性 方法 一般/特殊结构 整体/部分结构 实例连接 消息连接2.2.4类图类图分为三个层次: 对象层 特征层(3)关系层类图的三个层次关系层2.2.5发现对象和定义类-1.发现对象 2.抽象出对象类1. 发现对象发现对象的根本出发点: 问题域和系统责任正确运用抽彖原则。2. 抽象出对象类 儿种常见问题: 类的属性或服务不适合该类的全部对象。 出现属性和服务相似的类。 出现对同一事物的重复描述。2.2.6对象之间的通信 1. 一般/特殊结构 2.整体/部分结构 3.实例连接 4.消息连接1一般/特殊结构 一般/特殊结构均形成层次或网络2.
7、整体/部分结构3. 实例连接实例连接用丁表达对象之间的静态联系4. 消息连接定义:两个对象之间存在的由丁通信需耍 而形成的关系。表示方法:使用箭头从发送消息的对象指 向接收消息的对象。2.3面向对象设计(OOD) 2.3.1面向对象设计的模型 2.3.2面向对象的高层设计 2.3.3面向对象的类设计2.3.1面向对象设计的模型f机互分 人交部S分务理分 仕管部册Sg亠-1铁亠= FJI林 I 上IF肚 “IIPKF 可X nl2.3.2面向对象的高层设计-1.高层设计的结构模型 2.高层设计的准则 3 问题域子系统的设计 4.人机交互子系统的设计 5.任务管理子系统的设计 6.数据管理子系统的
8、设计1. 高层设计的结构模型窗口其彳也系线丄、文件 RDBMS人机界曲问题论城一不统交q界血2. 高层设计的准则 弱耦合。 强内聚。 减少通信开销。 良好的可扩充性。3问题域子系统的设计 复用已有的设计。 把与问题论域相关的类关联,建立类的层 次结构。 创建一般化类。 改进系统性能。 加入较低层的构件。4.人机交互子系统的设计 用户分类。 描述人及其任务的脚木。 设计命令层。 设计与用户的详细交互。 继续进行原型设计。 设计人机交互类。5. 任务管理子系统的设计 为任务命名,并简要说明这个任务。 定义各个任务如何协调工作,指出它是事 件驱动还是时钟驱动。 定义各个任务之间如何通信,任务将从哪
9、里取值,任务执行得到的结果将送往何方。6. 数据管理子系统的设计常用的数据管理方法有三种: 文件管理 关系数据库管理系统 面向对象数据库管理系统2.3.3面向对象的类设计 1.类设计的日标 2.类的设计准则1. 类设计的目标(D把类设计成可复用的“插接相容性”部件。 把类设计成健壮的部件。 把类设计成可集成的部件。2. 类的设计准则类公共接口的单独成员应该是类的操作符。类A的实例不应该直接发送消息给类B的成员。 操作符是公共的,当FH乂当类实例的用户可用。 属丁类的每个操作符耍么访问、耍么修改类的 某个数据。类必须尽可能少地依赖其他类。两个类之间的互相作用应该是显式的。继承结构的父类应该是H标概念的抽彖模空。