资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,探讨面向对象技术与,UML,1.1,面向对象技术概述,1.2,面向对象的分析,1.3,面向对象的设计,1.4,基于,UML,的面向对象分析、设计过程,1.1,面向对象技术概述,1.1.1,面向对象的基本概念,1.1.2,面向对象的开发语言,1.1.3,面向对象的设计与开发工具,1.1.1,面向对象的基本概念,Coad,和,Yourdon:,面向对象,=,对象,+,类,+,继承,+,通信,1.1.1,面向对象的基本概念,面向对象技术的基本观点,:,客观世界由对象组成,任何客观实体都是对象,复杂对象可以由简单对象组成。,具有相同数据和操作的对象可归纳成类,对象是类的一个实例。,类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。,对象之间的联系通过消息传递来维系。,1.1.1,面向对象的基本概念,面向对象的核心元素,:,对象,封装,消息,类,继承,多态性,结构与连接,1.,对象,客观世界里的任何实体都可以被称为对象。,对象可以是具体的、有形的物,也可以是无形的事物或概念。,对象是问题域或实现域中某些事物的一个抽象。,对象是一个封装数据属性和操作行为的实体。,系统中的对象在软件生命周期的各个阶段可能有不同的表示形式。,一个对象的实例图解,2.,封装,封装是面向对象方法的一个重要原则。,封装有两个含义:,结合性,信息隐蔽性,3.,消息,消息是向对象发出的服务请求。,一个消息包含消息名、接受对象的标志、服务标志、输入信息、回答信息等。,消息传递机制。,4.,类,类是一组具有相同数据结构和相同操作的对象的集合。,类是对象的抽象。,客观世界实际存在的都是对象,而不是类。,人类和人的关系就是类和对象的关系,类的实例化就是对象,5.,继承,继承性是面向对象程序设计语言不同于其他语言的最主要特点。,继承是指子类可以自动拥有父类的全部属性与操作的机制。,父类(超类),子类(派生类),继承性又分为单重继承和多重继承两类。,继承的描述,单重继承和多重继承的描述,6.,多态性,定义:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。,多态性分为两种:,编译时的多态性。,运行时的多态性。,6.,多态性,多态性的实现方式:,通过接口实现多态性,通过继承实现多态性,通过抽象类实现的多态性,7.,结构与连接,一般,/,特殊结构,整体,/,部分结构,实例连接,消息连接,1.1.2,面向对象的开发语言,1.,面向对象的建模语言,2.,面向对象的程序设计语言,1.,面向对象的建模语言,Booch 1993,(,Grady Booch,),OOSE,(,Jim Rumbaugh,),OMT-2,(,Ivar Jacobson,),UML,UML,的发展过程,2.,面向对象的程序设计语言,四个基本的分支:,基于,Smalltalk,的语言,基于,C,的语言,基于,LISP,的语言,基于,PASCAL,的语言,1.1.3,面向对象的设计与开发工具,1.,面向对象的开发工具,2.,面向对象的设计工具,1.2,面向对象分析(,OOA,),1.2.1,面向对象分析的层次,1.2.2,面向对象分析的基本过程,1.2.3,面向对象分析的基本原则,1.2.4,类图,1.2.5,发现对象和定义类,1.2.6,对象之间的通信,1.2.1,面向对象分析的层次,对象模型通常由五个层次组成:,类与对象层,属性层,服务层,结构层,主题层,对象模型的五个层次,1.2.2,面向对象分析的基本过程,发现对象,从对象中抽象出类的定义。,识别对象的内部特征。,识别对象的外部关系。,划分主题,建立主题图。,定义用例,建立交互图。,建立详细说明。,原型开发。,面向对象分析过程模型,1.2.3,面向对象分析的基本原则,抽象原则,分类原则,聚合原则,关联原则,消息通信原则,1.2.4,类图,类图的主要构成成分:,类,属性,方法,一般,/,特殊结构,整体,/,部分结构,实例连接,消息连接,1.2.4,类图,类图分为三个层次:,对象层,特征层,关系层,类图的三个层次,1.2.5,发现对象和定义类,1.,发现对象,2.,抽象出对象类,1.,发现对象,发现对象的根本出发点:,问题域和系统责任,正确运用抽象原则。,2.,抽象出对象类,几种常见问题:,类的属性或服务不适合该类的全部对象。,出现属性和服务相似的类。,出现对同一事物的重复描述。,1.2.6,对象之间的通信,1.,一般,/,特殊结构,2.,整体,/,部分结构,3.,实例连接,4.,消息连接,1.,一般,/,特殊结构,一般,/,特殊结构均形成层次或网络,2.,整体,/,部分结构,3.,实例连接,实例连接用于表达对象之间的静态联系,4.,消息连接,定义:两个对象之间存在的由于通信需要而形成的关系。,表示方法:使用箭头从发送消息的对象指向接收消息的对象。,1.3,面向对象设计(,OOD,),2.3.1,面向对象设计的模型,2.3.2,面向对象的高层设计,2.3.3,面向对象的类设计,1.3.1,面向对象设计的模型,1.3.2,面向对象的高层设计,1.,高层设计的结构模型,2.,高层设计的准则,3.,问题域子系统的设计,4.,人机交互子系统的设计,5.,任务管理子系统的设计,6.,数据管理子系统的设计,1.,高层设计的结构模型,2.,高层设计的准则,弱耦合。,强内聚。,减少通信开销。,良好的可扩充性。,3.,问题域子系统的设计,复用已有的设计。,把与问题论域相关的类关联,建立类的层次结构。,创建一般化类。,改进系统性能。,加入较低层的构件。,4.,人机交互子系统的设计,用户分类。,描述人及其任务的脚本。,设计命令层。,设计与用户的详细交互。,继续进行原型设计。,设计人机交互类。,5.,任务管理子系统的设计,为任务命名,并简要说明这个任务。,定义各个任务如何协调工作,指出它是事件驱动还是时钟驱动。,定义各个任务之间如何通信,任务将从哪里取值,任务执行得到的结果将送往何方。,6.,数据管理子系统的设计,常用的数据管理方法有三种:,文件管理,关系数据库管理系统,面向对象数据库管理系统,1.3.3,面向对象的类设计,1.,类设计的目标,2.,类的设计准则,1.,类设计的目标,把类设计成可复用的“插接相容性”部件。,把类设计成健壮的部件。,把类设计成可集成的部件。,2.,类的设计准则,类公共接口的单独成员应该是类的操作符。,类,A,的实例不应该直接发送消息给类,B,的成员。,操作符是公共的,当且仅当类实例的用户可用。,属于类的每个操作符要么访问、要么修改类的某个数据。,类必须尽可能少地依赖其他类。,两个类之间的互相作用应该是显式的。,继承结构的父类应该是目标概念的抽象模型。,1.4,基于,UML,的面向对象分析设计过程,识别系统的用例和角色,进行系统分析,并抽象出类,设计系统和系统中的类及其行为,
展开阅读全文