面向对象技术与分析

上传人:tian****1990 文档编号:75488655 上传时间:2019-01-31 格式:PPT 页数:53 大小:387KB
返回 下载 相关 举报
面向对象技术与分析_第1页
第1页 / 共53页
面向对象技术与分析_第2页
第2页 / 共53页
面向对象技术与分析_第3页
第3页 / 共53页
面向对象技术与分析_第4页
第4页 / 共53页
面向对象技术与分析_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《面向对象技术与分析》由会员分享,可在线阅读,更多相关《面向对象技术与分析(53页珍藏版)》请在金锄头文库上搜索。

1、第5章 面向对象技术,内容介绍,5.1 面向对象技术的概念 5.2 面向对象分析 5.3 面向对象设计 5.4 面向对象系统的实现 5.5 案例分析 5.6 小结,5.1 面向对象技术的概念,5.1.1面向对象方法概述 5.1.2面向对象的概念 5.1.3面向对象方法的主要优点,5.1.1面向对象方法概述,面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法。,面向对象源出于Simula,真正的OOP由Smalltalk奠基。Smalltalk现在被认为是最纯的OOPL。,

2、面向对象方法的作用和意义决不只局限于编程技术,它是一种新的程序设计范型面向对象程序设计范型;是信息系统开发的新方法论面向对象方法学;是正在兴起的新技术面向对象技术。,5.1.2面向对象的概念,1对象(Object),在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象(Object),它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。,对象的几个定义,(1)定义1 对象是具有相同状态的一组操作的集合。,5.1.2面向对象的概念,(3)定义3 对象= 其中,ID是对象的标识或名字有关。 MS是对象中的操作集合。 DS是对象的数据结构。 MI是对

3、象受理的消息名集合(即对外接口)。,(2)定义2 对象是对属性值和操作的封装。,5.1.2面向对象的概念,在面向对象的软件技术中,“类”就是对具有相同属性和相同操作的一组相似对象的集合。也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。一个类中的每个对象都是这个类的一个实例(instance)。,2类(Class),类和对象的关系类似于程序设计语言中的类型(type)和变量(variable)之间的关系。,5.1.2面向对象的概念,消息,就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由下述三部分组成:

4、 接收消息的对象; 消息选择符(也称为消息名); 零个或多个变元。,3消息(Message),例如,MyCircle是一个半径4cm、圆心位于(100,200)的Circle类的对象,也就是Circle类的一个实例,当要求它以绿颜色在屏幕上显示自己时,在C+语言中应该向它发下列消息: MyCircle.Show(GREEN); 其中MyCircle是接收消息的对象的名字,Show是消息选择符(即消息名),圆括号内的GREEN是消息的变元。当MyCircle接收到这个消息后,将执行在Circle类中所定义的Show操作。,5.1.2面向对象的概念,方法,就是对象所能执行的操作,也就是类中所定义的

5、服务。方法描述了对象执行操作的算法,响应消息的方法。在C+语言中把方法称为成员函数。,4方法(Method),例如,为了Circle类的对象能够响应让它在屏幕上显示自己的消息Show(GREEN),在Circle类中必须给出成员函数Show(int color)的定义,也就是要给出这个成员函数的实现代码。,5.1.2面向对象的概念,属性,就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。,5属性(Attribute),在C+语言中把属性称为数据成员。例如,Circle类中定义的代表圆心坐标、半径、颜色等的数据成员,就是圆的属性。,5.1.2面向对象的

6、概念,在面向对象的程序中,我们把数据和实现操作的代码集中起来放在对象内部。使用一个对象的时候,只需知道它向外界提供的接口形式而无须知道它的数据结构细节和实现操作的算法。,6封装(Encapsulation),具有封装性的条件如下 :,(1)有一个清晰的边界。 (2)有确定的接口(即协议) (3)受保护的内部实现。,5.1.2面向对象的概念,一个类可以定义为另一个更一般的类的特殊情况,如“轿车”类是“汽车”类的特殊情况,称一般类是特殊类的父类或超类(superclass),特殊类是一般类的子类(subclass)。,7继承(Inheritance),5.1.2面向对象的概念,多态性是指同一个操作

7、作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如,“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。,8多态性(Polymorphism),5.1.2面向对象的概念,有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。,9重载(Overloading),在C+语言中函数重载是通过静态联编(也叫先前联编)实现的,也就是在编译时根据函数变元的个数和类型,决定到底使用函数的哪个实现代码;对于重载的运算符,同样是在编译时根据被操作数的类型,决定使用该

8、算符的哪种语义。,5.1.3面向对象方法的主要优点,1与人类习惯的思维方法一致 2稳定性好 3可重用性好 4较易开发大型软件产品 5可维护性好,5.2 面向对象分析,5.2.1面向对象的分析过程 5.2.2面向对象的分析原则,5.2.1面向对象的分析过程,1获取客户对系统的需求,面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。一般地说,OOA的分析步骤为:获取客户对系统的需求,在领域分析的基础上标识类和对象,识别主题,定义属性,建立动态模型,建立功能模型,定义服务。,OOA的第一步就是获取客户需求。这里介绍一种采用用例(use case)来收集客户需求的技术。用例是系统的某些动

9、作步骤的集合,主要由角色(Actor)和动作(Action)组成。 定义用例通常从识别角色开始。 得到的用例必须进行复审,以使需求完整。,5.2.1面向对象的分析过程,2领域分析,例如,在学校的教务管理领域中,除了教学计划管理、成绩管理外,可能还有选课管理和排课管理。不难发现,部门、学生、课程等“类”在教学管理领域各个系统中均有使用。,领域分析的目的,是发现活创建一些可广泛应用的类,使它们可以被复用。具体地说,面向对象领域分析就是以公共对象、类、子集合和框架等形式,在特定的应用领域中标识、分析和规约公共的可复用得能力。,5.2.1面向对象的分析过程,3类/对象建模,(1)确定分析模型中的类/对

10、象 (2)定义类的结构与层次 (3)定义主题或子系统,5.2.1面向对象的分析过程,4建立动态模型,动态模型描述对象和关系的状态、状态转换的触发事件、对象的服务(行为)。,状态:对象在其生存周期中的某个特定阶段所具有的行为模式。 事件:事件是某个特定时刻所发生的事情,是引起对象从一种状态转换到另一种状态事情的抽象。 服务(行为):对象在某种状态下所发生的一系列处理操作。,5.2.1面向对象的分析过程,4建立动态模型,动态模型的建立首先编写脚本,从脚本中提取事件,画出事件跟踪图,再画状态转换图。,(1)编写脚本 在建立动态模型过程中,脚本是系统执行某个功能的一系列事件。编写脚本的目的是保证不遗漏

11、重要的交互步骤,有助于确保整个交互过程的正确性和清晰性。 (2)设计用户界面 用户界面的好坏往往对用户是否喜欢、是否接受一个系统起很重要的作用。,5.2.1面向对象的分析过程,(3)画顺序图 顺序图(也称事件跟踪图)中,一条竖线代表应用领域中的一个类,每个事件用一条水平的箭头线表示,箭头方向从事件的发送对象指向接收对象,时间从上向下递增。,例如,画打电话、通话的顺序图。,5.2.1面向对象的分析过程,(4)画状态转换图 由于对象在不同状态下呈现不同的行为方式,所以应分析对象的状态,才可正确地认识对象的行为并定义它的服务。,【例5-1】分别画出旅馆管理系统中旅客和床位的状态转换图。,5.2.1面

12、向对象的分析过程,5建立功能模型,功能模型由一组数据流图组成。在面向对象分析方法中为动态模型的每个状态画出数据流图,可以清楚地说明与状态有关的处理过程,即服务(行为)。,【例5-2】旅馆客房管理系统数据流图如图5-11所示。,5.2.1面向对象的分析过程,5.2.2面向对象的分析原则,1抽象 从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征,就叫做抽象。抽象是形成概念的必须手段。 2封装 封装就是把对象的属性和服务结合为一个不可分的系统单位,并尽可能隐蔽对象的内部细节。 3继承 继承,就是在每个由一般类和特殊类形成的一般-特殊结构中,把一般类的对象实例和所有特殊类的对象实例都共同

13、具有的属性和服务,一次性地在一般类中进行显式定义。在特殊类中不再重复地定义一般类中已定义的东西,特殊类却自动地、隐含地拥有它的一般类(以及所有更上层的一般类)中定义的全部属性和服务。,5.2.2面向对象的分析原则,4分类 就是把具有相同属性和服务的对象划分为一类,用类作为这些对象的抽象描述。 5聚合 聚合的原则是:把一个复杂的事物看成若干比较简单的事物的组装体,从而简化对复杂事物的描述。 6关联 关联是人类思考问题时经常运用的思想方法:通过一个事物联想到另外的事物。,5.2.2面向对象的分析原则,7消息通信 要求对象之间只能通过消息进行通信,而不允许在对象之外直接地存取对象内部的属性。 8粒度

14、控制 考虑全局时,注意其大的组成部分,暂时不详察每一部分的具体的细节;考虑某部分的细节时则暂时撇开其余的部分。这就是粒度控制原则。 9行为分析 现实世界中事物的行为是复杂的。由大量的事物所构成的问题域中各种行为往往相互依赖、相互交织。,5.3面向对象设计,5.3.1系统设计 5.3.2 对象设计 5.3.3面向对象设计的准则 5.3.4面向对象设计的启发规则,5.3面向对象设计,面向对象设计的任务是对面向对象分析的结果作进一步的规范化整理,以便能够被面向对象编程直接接受。 面向对象设计是一种软件设计方法,是一种工程化规范。这是毫无疑问的。面向对象设计的主要工作包括: 确定需要的类; 给每个类提

15、供一组完整的操作; 明确地使用继承来表现共同点。,5.3.1系统设计,系统设计确定实现系统的策略和目标系统的高层结构。系统设计是要将系统分解为若干子系统,在定义和设计子系统时应使其具有良好的接口,通过接口和系统的其余部分通信。,系统设计步骤如下。,1将系统分解为子系统,(1)层次组织 (2)块状组织 (3)设计系统的拓扑结构,5.3.1系统设计,2设计问题域子系统,(1)调整需求 (2)复用设计 (3)把与问题域有关的类组合起来 (4)添加一般化类,3设计人-机交互子系统,(1)设计人-机交互界面的准则 (2)设计人-机交互子系统的策略 (3)设计命令层次 (4)设计人-机交互类,5.3.1系

16、统设计,4设计任务管理子系统,(1)分析并发性 (2)设计任务管理子系统 (3)定义各个任务,5设计数据管理子系统,(1)选择数据存储管理模式 (2)设计数据管理子系统,5.3.2 对象设计,面向对象设计阶段是扩充、完善和细化对象模型的过程,设计类中的服务、实现服务的算法是面向对象设计的一个重要任务,还要设计类的关联、接口形式及进行设计的优化。,1对象描述,(1)协议描述 ,协议描述是一组消息和对消息的注释 .,(2)实现描述 描述由传送给对象的消息所蕴含的每个操作的实现细节,包括对象名字的定义和类的引用、关于描述对象的属性的数据结构定义及操作过程的细节。,5.3.2 对象设计,2设计类中的服务,(1)确定类中应有的服务 需要综合考虑对象模型、动态模型和功能模型才能确定类中应有的服务。,(2)设计实现服务 先设计实现服务的算法,考虑算法的复杂度,如何使算法容易理解、容易实现并容易修改。其次是选择数据结构,要选择能方便、有效地实现算法的数据结构。第三是定义类的内

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号