面向对象方法学概述精选PPT课件.ppt
《面向对象方法学概述精选PPT课件.ppt》由会员分享,可在线阅读,更多相关《面向对象方法学概述精选PPT课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于面向对象方法学概述第1页,此课件共66页哦v面向对象思想最初起源于20世纪60年代末的simula67语言。面向对象方法的基本要点首次在simula语言中得到了表达和实现。v80年代,位于美国加州的Xerox研究中心推出smalltalk语言及其程序设计环境,使得面向对象程序设计方法得到比较完善的实现,掀起了面向对象研究的高潮。v80年代中后期,面向对象的软件设计和程序设计方法已发展成为一种成熟有效的软件开发方法。相比而言,面向对象的分析技术发展得比较滞后。第2页,此课件共66页哦第一节 概述 1.1 传统方法学 v传统方法学存在的问题 生产率提高的幅度远远不能满足需要 软件重用程度很低
2、软件仍然很难维护 软件往往不能真正满足用户需要 第3页,此课件共66页哦v出现问题的原因 僵化的瀑布模型*某些类型的系统需求是模糊的*项目参与者之间存在通信鸿沟*预先定义的需求可能是过时的 结构化技术的缺点*用这种技术开发出的软件,其稳定性、可修改性和可重用性都比较差。*结构化分析、设计技术的本质是功能分析。从代表目标系统整体功能的单个处理着手,自顶向下不断把复杂的处理分解为子处理,层层分解下去,直至仅剩下若干个容易实现的子处理为止。第4页,此课件共66页哦v功能与数据分离的软件设计结构与人类的现实世界环境很不一样,和人的自然思维也就很不一致,因此对现实世界的认识与编程之间存在着一道很深的理解
3、上的鸿沟。v系统是围绕着如何实现一定的行为来进行的,当系统行为易变,需要常常修改时,修改极为困难。v在系统中模块之间的控制作用有重要影响时,也就是说,实际的控制发生的根源来自分散的各个模块之中时,由于在“好的模块结构”中的模块间的控制作用只能通过上下之间的调用关系来进行,造成信息传递路径过长,效率低,易受干扰,甚至出错。v自顶向下功能分解的分析方法极大地限制了软件的可重用性。第5页,此课件共66页哦1.2 面向对象方法学 v“面向对象”(Object-Oriented)是针对“面向过程”一词提出的,是从本质上区别于传统的结构化方法的一种新方法,新思路。vOO技术的基本原理是:按照问题域的基本事
4、物实现自然分割,按人们通常的思维方式建立问题域的模型,设计尽可能直接自然表现问题求解的软件系统。v为此,OO技术引入了对象(object)概念来表现事物,用消息(message)传递建立事物间的联系。用类(class)和继承(inheritance)作为适应人们一般思维方式的描述模型。用方法(method)表示作用在对象上的各种操作。第6页,此课件共66页哦v建立在对象、消息、类、继承和方法等概念基础上的面向对象软件的基本特征是对象的封装性和继承性。v通过封装可以将对象的定义与对象的实现分开。这样,无论是对象功能的完善扩充,还是对象实现的修改,影响仅限于该对象内部,保证了面向对象软件的可构造性
5、和易维护性。v通过继承可以表达类与类之间的联系,大大减少了重复定义,同时也使系统的结构更加清晰、易于理解和维护。第7页,此课件共66页哦v早在1982年,Rentsch就曾预言80年代的面向对象程序设计就象70年代的结构化程序设计一样,每个人都喜欢用它,每个软件开发商都开发他们的软件支持它,每个管理员都要付出代价应用它,每个程序员都要以不同的方式实践它,但是没有人能清楚地讲清楚它。第8页,此课件共66页哦第二节 基本概念 面向对象=对象+类+继承+通信v如果一个软件系统是使用这样四个概念设计和实现的,则可以认为这个软件系统是面向对象的。第9页,此课件共66页哦2.1 对象(object)v一般
6、说来,在系统分析和系统构造中,对象是对客观世界事物的一种抽象,是由数据(属性)及在其上的操作(行为)所组成的封装体。v可以用一个公式表示为:对象=属性+操作 第10页,此课件共66页哦对象具有如下主要特点:*自治性 对于给定的输入,经过状态转换,对象能产生输出。*封闭性 对象的封闭性是指对象具有信息隐蔽的能力。*通信性 对象能够接收其它对象发来的消息,也能向其它对象发送消息。通信性反映了不同对象间的联系。上述特点分别刻画了对象不同方面的性质,自治性反映了对象独立计算的能力,封闭性和通信性说明对象是一个既封闭又开放的相对独立体。第11页,此课件共66页哦2.2 类(class)v类是一组具有相同
7、数据结构和相同操作的对象的集合。v类的定义包括一组数据属性和在数据上的一组合法操作,可以用一个公式表示为:类=(组)数据属性+(组)数据操作 第12页,此课件共66页哦第13页,此课件共66页哦2.3 属性(attribute)v每一对象的属性是一些有着确定值的,用于描述对象状态信息的数据。v属性一般只能通过执行对象的操作来改变。第14页,此课件共66页哦2.4 消息(message)v消息就是用来请求对象执行某个处理或回答某些信息的要求,是连接对象的纽带。或者说,一个对象为实现其责任而与其它对象的通信称为消息。v消息通常由三个部分组成:接收消息的对象;消息选择符(也称为消息名);零个或多个变
8、元。第15页,此课件共66页哦2.5 服务(method,即操作、方法)v为了完成某一任务,一个对象所提供的并体现其责任的操作称为服务。属于同一类的所有对象共享相同的服务。第16页,此课件共66页哦2.6 继承(inheritance)v类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享。即子类可以沿用父类(被继承类)的某些特征。当然,子类也具有自己独有的属性和操作。v新类的定义可以是现存类所声明的数据、定义与新类所增加的声明的组合。在组合过程中,新类复用现存类的定义,而不要求修改现存类。v继承的优点:是软件开发中复用概念的核心便于模块修改简化模块 第
9、17页,此课件共66页哦2.7 多形(polymorphism)与动态连接(dynamic binding)v多形的本质是一个消息可以与不同的实例结合,而且这些实例属于不同类。第18页,此课件共66页哦v具体的多形行为主要表现在以下方面:1)运算符重载 同一个运算符可作用于多种数据类型上;2)函数名重载 相同的函数名可作用于不同的对象类上,并产生不同的行为效果;3)虚函数与动态联接 这是OO方法特有的动态性质。当将重载的函数名标识为虚函数时,该函数就有较大的灵活性。它既可以表示子类中的同名函数,也可表示父类中的同名函数。这种较大灵活性的关键在于允许在运行中才按照具体的数据类型和参量和确定选用哪
10、一个函数,这种方式称动态联接方式。第19页,此课件共66页哦第三节 面向对象的主要方法 vCoad/Yourdon的方法vRumbaugh等的OMT方法vBooch的方法vWirtf-Brock等的RDD方法v此外,还有ESA的HOOD方法、Shlear和Mellor的OOSA方法、Wasserman的OOSD方法、Reenksang的OORASS方法、Embley的OSA方法、Gibon的OBA方法、Page-Jones和Weiss及Buhr的SYNTHESIS方法等 第20页,此课件共66页哦3.1 Coad与Yourdon的方法 vCoad与Yourdon的方法是在信息模型化技术、面向对
11、象程序设计语言及知识库系统的基础上发展起来的,这个方法分为OOA和OOD两部分。第21页,此课件共66页哦3.1.1 面向对象的分析(OOA)vCoad与Yourdon和其它描写面向对象方法的作者一样,认为OOA主要考虑与一个特定应用有关的对象及对象与对象之间在结构与相互作用上的关系。1.OOA的任务1)形式地说明所面对的应用问题,最终成为软件系统基本构成的对象,还有系统所必须遵从的,由应用环境所决定的规则和约束。2)明确地规定构成系统的对象如何协同合作,完成指定的功能。第22页,此课件共66页哦v在OOA中,要建立分析模型来描述系统的功能第一个层次主要是识别类和对象,这是整个分析模型的基础。
12、第二层和第三层是属性层和服务层,用以说明前面已识别的类和对象。第四层是结构层,OOA允许两种类型的基本结构:一是整体与部分结构,也叫组装结构,组装结构表示聚合,即由属于不同类的成员聚合而成新的类;二是泛化与特化结构,也叫分类结构。其中,特化类是泛化类的子类,泛化类是特化类的父类。分类结构具有继承性,泛化类和对象的属性与服务一旦被识别,即可在特化类和对象中使用。第五层是主题层,是一些类和对象的特定组合表示,用来帮助和指导模型的读者。第23页,此课件共66页哦第24页,此课件共66页哦2.OOA的步骤 1)找到类和对象首先确定问题空间中包含哪些对象,有哪些操作,这些对象之间有什么关系,它们与操作又
13、有什么关系。对象应该是实际问题域中有意义的个体或概念实体,具有目标软件系统所关心的属性,还应该以某种方式与系统发生关联,即对象必须与系统中其他有意义的对象进行消息传递,并提供外部服务。有关对象命名的重要原则:a.使用单个名词或名词短语;b.对象名称必须简洁、精确、易于理解;c.尽量使用用户熟悉的标准词汇。第25页,此课件共66页哦2)确定结构第一种结构是分类结构,代表了确定的类中的继承等级。另一种结构是组装结构,即由属于不同类的成员聚合而成新的类。3)定义主题 确定主题通过将类和对象划分成更大的单元来完成。主题是类和对象的组合。每个主题的规模按有助于读者通过模型理解系统来选择。第26页,此课件
14、共66页哦4)定义属性 对每个对象,确定划给该对象所需的属性。关键是识别与当前所处理的问题相关的属性。被确定的属性放到继承等级的正确层次。注意应避免冗余的或不正确的属性 5)定义服务对象怎样进行消息通信是用消息的联系来确定的。这些都用来指定某一个操作。综上所述,OOA大体上可以按照这个顺序进行。但是,分析不可能严格地按照预定顺序进行,大型、复杂系统的模型需要反复构造多遍才能建成。第27页,此课件共66页哦3.1.2 面向对象的设计(OOD)OOA到OOD实际上是一个逐渐扩充模型的过程。面向对象分析主要模拟问题空间和系统任务;而面向对象设计则是对其进行扩充,主要是增加各种组成部分。OOA识别和定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 方法 概述 精选 PPT 课件
限制150内