【文档说明】软件工程课件-8第八章面向对象基础.ppt,共(50)页,3.015 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44895.html
以下为本文档部分文字说明:
软件工程任课教师:程丽计算机与信息学院第八章面向对象基础8.1面向对象的概念8.2面向对象的开发方法第八章面向对象基础课程的任务、目的和基本要求–理解面向对象的基本概念–了解面向对象的开发方法分析设计数据流图(DFD
)软件结构图(SC)传统方法分析与设计之间的鸿沟第八章面向对象基础1.为什么引入面向对象的概念?2.传统软件工程方法问题1、难于解决软件重用;2、难于适应需求变化;3、分析与设计概念及表示法不一致第八章面向对象基础3.如何
引入面向对象的概念?在解题空间中引入“对象”概念,使之逼真地模拟问题空间中的客观实体,从而达到与人类的思维习惯相一致。第八章面向对象基础OOAOOD一致的概念一致的表示法类图类图面向对象的分析与设计之间不存在鸿沟分析设计数据流图(DFD)软件结构图(SC)传统方法分析与设计之间的鸿沟第八
章面向对象基础传统方法与面向对象方法的区别面向机器面向代数面向过程面向数据面向人面向文件面向信息面向应用面向功能面向数据流······面向对象是软件方法学的返朴归真软件科学的发展历程中出现过许多“面向”软件开发从过分专业化的方法、规则和技巧中回到了客观世界,回到了人们的日
常思维,是软件理论的返朴归真。面向对象8.1.1面向对象的基本概念8.1.2面向对象的特征8.1.3面向对象的要素第八章面向对象基础8.1面向对象的概念1.什么是对象现实世界中某个具体的物理实体或概念在计算机逻辑中的映射
和体现第八章面向对象基础8.1.1面向对象的基本概念-对象2.对象的含义在现实世界中:是客观世界中的一个实体在面向对象程序中:表达成计算机可理解、可操纵、具有一定属性和行为的对象在计算机世界中:是一个可标识的存储区域第八章面向对象基础8.
1.1面向对象的基本概念-对象3.对象的特点对象是构成系统的一个基本单位。对象由一组属性和对这组属性进行操作的一组服务构成。第八章面向对象基础8.1.1面向对象的基本概念-对象4.属性属性是用来描述
对象静态特征的一个数据项。5.服务服务是用来描述对象动态特征的一个操作序列。第八章面向对象基础8.1.1面向对象的基本概念-对象6.关于对象两点说明对象只描述事物本质的与系统目标有关的特征。分析过程中过滤掉非本质的与系统目标无关的因素对象的属性和服
务不可分,对象的属性值只能够由对象自身的服务来读取和修改第八章面向对象基础8.1.1面向对象的基本概念-对象1.什么是类具有共同属性和行为的对象的抽象第八章面向对象基础8.1.1面向对象的基本概念-类2.一般类和特殊类如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则
A叫做B的特殊类,B叫做A的一般类。第八章面向对象基础8.1.1面向对象的基本概念-类消息对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明消息内容通常包含接收方及请求接收方完成的功能信息发送方发出
消息,请求接收方响应接收方收到消息后,经过解释,激活方法,予以响应第八章面向对象基础8.1.1面向对象的基本概念-消息所谓方法,实际上是类对象上所有的各种操作。方法描述了对象执行操作的算法,响应消息的方法。第八章面向对象基础8.1.1面向对象的基本概念-
方法第八章面向对象基础8.1.2面向对象的特征1.对象唯一性2.分类性3.继承性4.多态性1.什么是继承特殊类拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。第八章面向对象基础8.1.2面向对象的特征2.继承的特点继承意味着自动地拥有,或称隐含地
复制,由继承机制保证。继承简化了人们对事物的认识和描述,非常有益于软件复用,是OO技术提高软件开发效率的重要原因之一。第八章面向对象基础8.1.2面向对象的特征3.一般——特殊结构由一组具有继承关系的类所组成的结构称作一般-特殊结构。它是一个以类为结点,以继承关系为边的连通的有向图。
学生本科生研究生第八章面向对象基础8.1.2面向对象的特征4.聚合一个(较复杂的)对象由其它若干(较简单的)对象作为其构成部分,称作聚合。聚合刻画了现实事物之间的构成关系。第八章面向对象基础8.1.2面向对象的特征5.整体-部分结构由一组具有聚合关系的类所形成的结构称作整体-部分
结构。它是一个以类为结点,以聚合关系为边的连通有向图。学科部办公室学院实验室第八章面向对象基础8.1.2面向对象的特征6.多态不同的对象收到同一消息可产生完全不同的结果,这一现象叫做多态。ClassAA→print()Classg
eometry{print();}AcircleArectangleAtrianglegeometry矩形圆形三角第八章面向对象基础8.1.2面向对象的特征7.多态的效果用户发送一个通用的消息,而实现的细节则由接收对象自行决定。第八章面向对象基础8.1.2面向对象的特征8.多态性的作用
增强了操作的透明性,可理解性和可扩展性增强了软件的灵活性和重用性第八章面向对象基础8.1.2面向对象的特征第八章面向对象基础8.1.3面向对象的要素1.抽象2.封装性3.共享性4.强调对象结构而不是程序结构关于封装封装是软件开发方法的重要原则,有两个涵义:把对象的全部属性和
全部服务结合在一起,形成一个不可分割的独立单位(对象)。尽可能隐蔽对象的内部细节(信息隐蔽)。第八章面向对象基础8.1.3面向对象的要素封装的重要意义使对象能够集中而完整地描述并对应一个具体的事物;体现了事物的相对独立性,使对象外部不能随意存取对象的内部数据,避免了外部错
误对它的“感染”;对象内部的修改对外部的影响很小,减少了修改引起的“波动效应”。第八章面向对象基础8.1.3面向对象的要素1.什么是面向对象的开发方法面向对象的开发方法是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。第八章面向对象基础8.2面向
对象的开发方法计算机世界现实世界结构化开发方法结构化分析结构化设计结构化编程OOAOODOOP面向对象开发方法第八章面向对象基础8.2面向对象的开发方法2.面向对象的开发方法包括哪些内容面向对象的分析面向对象的设计面向对象的编
程面向对象的测试面向对象的软件维护第八章面向对象基础8.2面向对象的开发方法3.面向对象的开发方法涉及软件生命周期的各个阶段第八章面向对象基础8.2面向对象的开发方法4.面向对象有哪些开发方法Berard方法Booch方法Coad-Yourdon方法Firesmith方法Jacobson方法
(OOSE)Martin-Odell方法Rumbaugh方法(OMT)Seidewitz-Stark方法Shlaer-Mellor方法Wirfs-Brock方法……5.面向对象开发方法的异同体现在以下几
个方面概念表示法系统模型开发过程可用性技术支持第八章面向对象基础8.2面向对象的开发方法过程模型对象层结构层主题层属性层服务层不同的方法,不同的OOA模型Coad-Yourdon方法动态模型静态模型逻辑模型物理模型Booch方法Shlaer-Mellor方法信息模型状态模型Rum
baugh方法(OMT)功能模型6.不同面向对象的开发方法的相似步骤(1)使用基本需求作为选择类和对象的指南;(2)为对象标识属性和操作;(3)定义组织类的结构和层次;(4)建造对象-关系模型;(5)建造对象-行为模型。第八章面向对象
基础8.2面向对象的开发方法传统方法数据结构+算法=程序设计以对象为中心组织数据与操作数据对象的属性操作对象的服务类型与变量类与对象实例函数(过程)调用消息传送类型与子类型一般类与特殊类,继承构造类型整体-部分结构,聚合指针关联面向对象方法第八章面
向对象基础8.2面向对象的开发方法