软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 06第六章:面向对象学导论

上传人:E**** 文档编号:89494185 上传时间:2019-05-25 格式:PPT 页数:76 大小:1.03MB
返回 下载 相关 举报
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 06第六章:面向对象学导论_第1页
第1页 / 共76页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 06第六章:面向对象学导论_第2页
第2页 / 共76页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 06第六章:面向对象学导论_第3页
第3页 / 共76页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 06第六章:面向对象学导论_第4页
第4页 / 共76页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 06第六章:面向对象学导论_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 06第六章:面向对象学导论》由会员分享,可在线阅读,更多相关《软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 06第六章:面向对象学导论(76页珍藏版)》请在金锄头文库上搜索。

1、传统的软件工程方法学曾经给软件产业带来了巨大进步,部分地缓解了软件危机,使用这种方法学开发的许多中、小规模软件项目都获得了成功。但是,当把这种方法学应用于大型软件产品的开发时,却很少取得成功。 在20世纪60年代后期出现的面向对象编程语言Simula-67中首次引入了类和对象的概念,自20世纪80年代中期起,人们开始注重对面向对象分析和设计的研究,从而逐步形成了面向对象方法学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。可以说,面向对象技术是当前最好的软件开发技术。,第六章:面向对象方法学导论,6.1 面向对象程序设计实例 6.2 面向对象方法学概述 6.3 面向对

2、象方法学的主要优点 6.4 面向对象的概念 6.5 面向对象建模 6.6 对象模型 6.7 动态模型 6.8 功能模型 6.9 3中模型之间的关系,第六章:面向对象方法学导论,对一个简单的图形程序的需求如下所述: 在显示器荧光屏上圆心坐标为(100,100)的位置画一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,弧的起始角度为30,结束角度为120,半径为50。 怎样设计上述这个程序呢?,面向对象的程序设计技术以对象(object)为核心,用这种技术开发出的程序由一系列对象组成。对象是对现实世界实体的正确抽象,它是由描

3、述内部状态、表示静态属性的数据,以及可以对这些数据施加的操作(实现对象的动态行为),封装在一起所构成的统一体。对象之间通过传递消息互相通信,以模拟现实世界中不同实体彼此之间的联系。 面向对象程序设计方法模仿人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成一系列对象,每个对象都既有自己的数据(描述该对象所代表的实体的属性),又有处理这些数据的函数(通常称为服务或方法,它们实现该对象应有的行为)。,6.1.1 用对象分解取代功能分解,面向对象程序设计方法模仿人类习惯的解题方法,用对象分解取代功能分解,也就是把程序分解成一系列对象,每个对象都既有自己的数据(描述该对象所代表的实体的属性

4、),又有处理这些数据的函数(通常称为服务或方法,它们实现该对象应有的行为)。 从需求陈述中看出,圆的基本属性是圆心坐标和半径,弧的基本属性是圆心坐标、半径、起始角度和结束角度。 分析需求陈述得知,圆和弧都应该提供在荧光屏上“画自己”的服务。,用图来描绘程序中的对象(严格地说是对象类),如下:,简单的图形程序需要使用圆类和弧类这两类对象,也就是说,我们把该程序中的对象划分成两类。 类中定义的服务,是允许施加于该类对象数据上的操作,是该类所有对象共享的,并不需要为每个对象都复制操作的代码。 除了把对象分类之外,还应该进一步按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个相关的对象类组成

5、一个层次结构的系统(也称为类等级)。在这种层次结构中,下层的派生类自动具有和上层的基类相同的特性(包括数据和操作),这种现象称为继承。面向对象程序的许多突出优点来源于继承性,6.1.2 设计类等级,当开发更复杂的图形程序时,将涉及更多的图形种类。但是,无论何种图形都有“坐标”、“可见性”等基本属性。 进一步分析“点”的属性,我们发现可以把它们划分为两类基本信息:一类信息描述点在哪儿(位置),另一类信息描述点的状态(可见性)。而位置是更基本的信息。 综上所述,得到图6.2所示的类等级。,图6.2 简单图形程序的类等级,1定义属性 所谓定义属性就是确定每个属性的数据类型和数据结构,同时还要确定每个

6、属性的访问权限。 参见图6.2,在“位置”类中应该定义属性“坐标”;圆的属性“半径”同样用像素为单位,因此也是整型的简单变量;弧的属性“起始角度”和“结束角度”都用度为单位。,6.1.3 定义属性和服务,2定义服务 每个对象应该知道怎样完成自己负责提供的服务功能,使用者只需向对象发送消息提出要求即可。 本例每个类中定义的属性都是简单变量,因此,实现常规服务(即读/写属性值)的算法非常简单,仅用一条读/写语句即可实现。,6.1 面向对象程序设计实例 6.2 面向对象方法学概述 6.3 面向对象方法学的主要优点 6.4 面向对象的概念 6.5 面向对象建模 6.6 对象模型 6.7 动态模型 6.

7、8 功能模型 6.9 3中模型之间的关系,第六章:面向对象方法学导论,面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致。 从本质上说,我们用计算机解决客观世界的问题,是借助于某种程序设计语言的规定,对计算机中的实体施加某种处理,并用处理结果去映射解。我们把计算机中的实体称为解空间对象。 从动态观点看,向对象施加的操作就是该对象的行为。,6.2.1 面向对象方法学的要点,通常,客观世界中的实体既具有静态的属性,又具有动态

8、的行为。 软件系统本质上是信息处理系统。数据和处理原本是密切相关的,把数据和处理人为地分离成两个独立的部分,会增加软件开发的难度。 面向对象方法学所提供的“对象”概念,是让软件开发者自己定义或选取解空间对象,然后把软件系统作为一系列离散的解空间对象的集合。, 认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。 把所有对象都划分成各种对象类,每个对象类都定义了一组数据和一组方法。 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。 对象彼此之间仅能通过传递消息互相通信。,面向对象的要点,Co

9、ad和Yourdon将面向对象概念概括为以下方程: 面向对象 = 对象 + 类 + 继承 + 通信 即:面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此通信。,向对象的图形程序的过程中,我们首先陈述了对这个程序的需求,然后用面向对象观点分析需求,确定了问题域中的对象并把对象划分成类,接下来设计出了适当的类等以及每个类的属性和服务,最后用C+语言编写出这个面向对象的图形程序。 使用面向对象方法学开发软件时,工作重点应该放在生命周期中的分析阶段。,6.2.2 面向对象的软件过程,6.1 面向对象程序设计实例 6.2 面向对象方法学概述 6.3 面向对象方法学的主要优

10、点 6.4 面向对象的概念 6.5 面向对象建模 6.6 对象模型 6.7 动态模型 6.8 功能模型 6.9 3中模型之间的关系,第六章:面向对象方法学导论,面向对象的软件技术以对象(object)为核心,用这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(表示对象的动态行为),封装在一起所构成的统一体。 传统的软件开发方法可以用“瀑布”模型来描述,这种方法强调自顶向下按部就班地完成软件开发工作。 面向对象方法学的基本原则是按照人类习惯的思维方法建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系

11、统。,1与人类习惯的思维方法一致,面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本作法是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。因为面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解,所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。,2稳定性好,面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,有很大的灵活性。有两种方法可以重复使用一个对象类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。,3可重用性好,在开发大型软

12、件产品时,组织开发人员的方法不恰当往往是出现问题的主要原因。用面向对象方法学开发软件时,构成软件系统的每个对象就像一个微型程序,有自己的数据、操作、功能和用途,因此,可以把一个大型软件产品分解成一系列本质上相互独立的小产品来处理,不仅降低了开发的技术难度,而且也使得对开发工作的管理变得容易多了。,4较易开发大型软件产品,(1)面向对象的软件稳定性比较好 当对软件的功能或性能的要求发生变化时,通常不会引起软件的整体变化,往往只需对局部做一些修改。 (2)面向对象的软件比较容易修改 类是理想的模块机制,它的独立性好,修改一个类通常很少会牵扯到其他类。 (3)面向对象的软件比较容易理解 面向对象的软

13、件技术符合人们习惯的思维方式,用这种方法所建立的软件系统的结构与问题空间的结构基本一致,因此,面向对象的软件系统比较容易理解。,5可维护性好,(4)面向对象的软件易于测试和调试 对面向对象的软件进行维护,主要通过从已有类派生出一些新类来实现,维护后的测试和调试工作也主要围绕这些新派生出来的类进行。类是独立性很强的模块,向类的实例发消息即可运行它,观察它是否能正确地完成要求它做的工作,对类的测试通常比较容易实现,如果发现错误也往往集中在类的内部,比较容易调试。,6.1 面向对象程序设计实例 6.2 面向对象方法学概述 6.3 面向对象方法学的主要优点 6.4 面向对象的概念 6.5 面向对象建模

14、 6.6 对象模型 6.7 动态模型 6.8 功能模型 6.9 3中模型之间的关系,第六章:面向对象方法学导论,在应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。 由于客观世界中的实体通常都既具有静态的属性,又具有动态的行为,因此,面向对象方法学中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体。,6.4.1 对象,1对象的形象表示,图6.3 对象的形象表示,2对象的定义 目前,对对象所下的定义并不完全统一,下面给出从不同角度对象的不同定义。 定义1:对

15、象是具有相同状态的一组操作的集合。 这个定义主要是从面向对象程序设计的角度看“对象”。 定义2:对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。也就是说,对象是对属性值和操作的封装。 这个定义着重从信息模拟的角度看待“对象”。,定义3:对象=ID,MS,DS,MI。其中,ID是对象的标识或名字,MS是对象中的操作集合,DS是对象的数据结构,MI是对象受理的消息名集合(即对外接口)。 这个定义是一个形式化的定义。,3对象的特点 (1)以数据为中心 (2)实现了数据封装 (3)本质上具有并行性 (4)模块独立性好,1类 现实世界中存在的客观事物有些是彼此相

16、似的,如张三、李四、王五虽说每个人职业、性格、爱好、特长等各有不同,但是,他们的基本特征是相似的,都是黄皮肤、黑头发、黑眼睛,于是人们把他们统称为“中国人”。人类习惯于把有相似特征的事物归为一类,分类是人类认识客观世界的基本方法。 在面向对象的软件技术中,类(class)就是对具有相同数据和相同操作的一组相似对象的定义。 也就是说,类是对具有相同属性和行为的一个或多个对象的描述,通常在这种描述中也包括对怎样创建该类的新对象的说明。,6.4.2 其他概念,2实例 实例就是由某个特定的类所描述的一个具体的对象。类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中并不能真正存在。 3消息 消息(message)就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。由接收消息的对象、 消息选择符(也称为消息名)和 零个或多个变元三部分组成。,4方法 方法(method)就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方式。在C+语言中把方法称为

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

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

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