软件工程课件面向对象方法学引论

上传人:aa****6 文档编号:57389620 上传时间:2018-10-21 格式:PPT 页数:114 大小:1.62MB
返回 下载 相关 举报
软件工程课件面向对象方法学引论_第1页
第1页 / 共114页
软件工程课件面向对象方法学引论_第2页
第2页 / 共114页
软件工程课件面向对象方法学引论_第3页
第3页 / 共114页
软件工程课件面向对象方法学引论_第4页
第4页 / 共114页
软件工程课件面向对象方法学引论_第5页
第5页 / 共114页
点击查看更多>>
资源描述

《软件工程课件面向对象方法学引论》由会员分享,可在线阅读,更多相关《软件工程课件面向对象方法学引论(114页珍藏版)》请在金锄头文库上搜索。

1、1,软 件 工 程,2,第9章 面向对象方法学引论,面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型,3,9.1 面向对象方法学概述,在显示器荧光屏上圆心坐标为(100,100)的位置画一个半径为40的圆,在圆心坐标为(200,300)的位置画一个半径为20的圆,在圆心坐标为(400,150)的位置画一条弧,弧的起始角度为30度,结束角度为120度,半径为50。怎样设计上述这个程序呢?,4,传统的程序设计方法: 1.先定义两个函数(一个画圆,一个画弧); 2.在主函数中说明几个变量(圆心坐标,半径,弧的起始角度和结束角度); 3.用赋值语句或输入语句给以上变量赋值

2、,并用它们作为变元调用相应的函数来画圆和画弧。,用对象分解取代功能分解,传统的程序设计方法是面向过程的设计方法,以算法为核心,把数据和处理过程作为相互独立的部分,数据代表问题域中的实体,而程序代码则用于处理这些数据。,5,圆类和弧类,图中用一个矩形框代表一个对象类,矩形框被两条水平线段分割成三个区域,最上面那个区域中写类名,中部区域内列出该类对象的属性,下部区域内列出该类对象提供的服务。,面向对象程序设计方法:,用对象分解取代功能分解,6,通过分析,得到图所示的类等级。为简明起见,图中没有列出读写属性值的常规服务。注意,图中用一端为空心三角形的连线表示继承关系,三角形的顶角紧挨着基类。,简单图

3、形程序的类等级,设计类等级,7,概括地说,面向对象方法具有下述四个要点:(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。,9.1 面向对象方法学概述,(2)把所有对象都划分成各种对象类(简称为类,Class),每个对象类都定义了一组数据和一组方法。,8,(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。,9.1 面向对象方法学概述,(4)对象彼此之间仅能通过传递消息互相联系。,9,综上所述,面向对象的方法学可以用下列方程来概括: 面向对象=对象类继承用消息通信也就是说,面向对

4、象方法就是,既使用对象又使用类和继承等机制,而且对象彼此之间只能通过传递消息互相联系的方法。,9.1 面向对象方法学概述,10,面向对象方法学的优点,11,图9.2 对象的形象表示,为有助于读者理解对象的概念,图5.3形象地描绘了具有三个操作的对象。,1.对象的形象表示,9.2 面向对象的概念,12,2. 对象的定义 (1)定义1对象是具有相同状态的一组操作的集合。这个定义主要是从面向对象程序设计的角度看“对象”。 (2)定义2对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。也就是说,对象是对属性值和操作的封装。这个定义着重从信息模拟的角度看待“对象”

5、。,9.2 面向对象的概念,13,(3)定义3 对象ID,MS,DS,MI 其中,ID是对象的标识或名字 MS是对象中的操作集合 DS是对象的数据结构 MI是对象受理的消息名集合(即对外接口) 这个定义是一个形式化的定义。,9.2 面向对象的概念,14,9.2 面向对象的概念,15,9.2 面向对象的概念,16,3.对象的特点: 以数据为中心,不设与数据无关的操作; Object主动处理而不 被动地等待被处理,外部只能通过message请求操作; 具有封装性:外部操作时,无须知道该object内部的数据结构及算法; 模块独立性好:内聚强、耦合松; 具有并行性:不同object各自独立地处理自身

6、数据,彼此间仅通过传递message完成通信,9.2 面向对象的概念,17,其他面向对象的概念,1、类Class:具有相同数据和相同操作的一组对象;,18,2、实例Instance:某个class描述的具体对象; 3、消息Message: = object_ID. method_ID (parameter(s);,其他面向对象的概念,2 软件开发方法与工作模型,消息就是向对象发出的服务请求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识 、消息和方法、输入信息、回答信息。,注意:在并发系统中,多

7、个控制线程(Thread of Control)并发执行,情况就复杂得多,消息可以是发出服务请求、提交数据、发布事件信息、或是传递同步控制信息。,在对象的操作中当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的消息。,其他面向对象的概念,20,4、方法Method: object能做的操作,亦称为service 、responsibility, 在 class 中须定义相应的代码; 5、属性Attribute :object 的固有数据;,其他面向对象的概念,21,6、封装encapsulation:是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。,其他面向

8、对象的概念,22,7、继承Inheritance:子类自动共享父类的attributes 和methods ,而不必重复定义。,其他面向对象的概念,23,继承的实例,继承实例,24,例:,其他面向对象的概念,25,特点: 若桂林人的 methods中有与中国人的同名,则李士执行该 method 时以桂林人为准,不执行中国人中定义的同名 method。,讲官话,这叫做“低层性质override高层性质” 讲土话,这叫做“县官不如现管”, 传递性(transitivity):AB、BC AC一个 class 继承了上层全部 classes 的一切性质。, 一个子类只 有 一 个父类称为单 继 承

9、(single inheritance), 一个子类可有多个父类称为多重继承(multiple inheritance).,26,注意:multiple inheritance 在定义中应避免二义性(ambiguity),即二个父类中定义重名,但各具不同性质。,例:,CardDeck,GraphicalObject,GraphicalDeck,Method: Draw := takea card froma deck,Method: Draw := display a graphical object,Method: Draw := ?,例:, 修改与扩充可以很容易地通过派生子类来完成。,27

10、,8、多态性Polymorphism: 不同层次的 classes 可共享一个method名,但按各自的方式来实现这种 method。,Which form do you need, master?,Aladdins Genie,其他面向对象的概念,28,9、 重载(Overloading)有两种重载:函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于不同类型的操作数上面。当然,当参数特征不同或被操作数的类型不同时,实现函数的算法或运算符的语义是不相同的。,其他面向对象的概念,29,为了更好地理解问题,人们常常采用建立问题模型的方法

11、。所谓模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述问题域中的术语和概念。,9.3 面向对象建模,30,模型是一个系统的完整的抽象。人们对某个领域特定问题的求解及解决方案,对它们的理解和认识都蕴涵在模型中。通常,开发一个计算机系统是为了解决某个领域特定问题,问题的求解过程,就是从领域问题到计算机系统的映射。,领域问题,概念模型,分析、抽取,系统需求,解决方案,分析、设计,提取,9.3 面向对象建模,31,9.3 面向对象建模,三种形式的模型: 描述系统数据结构的对象模型 描述系统控制结构的动态

12、模型 描述系统功能的功能模型,32,9.4 对 象 模 型,九十年代中,面向对象方法已经成为软件分析和设计方法的主流。 1994年10月Jim Rumbaugh和Grady Booch共同合作把他们的OMT和Booch方法统一起来,到1995年成为“统一方法”(Unified Method)版本0.8。随后,Ivar Jacobson加入,并采用他的用例(User case)思想,到1996年,成为“统一建模语言”版本0.9。 1997年1月,UML版本1.0被提交给OMG组织,作为软件建模语言标准的候选。其后的半年多时间里,一些重要的软件开发商和系统集成商都成为“UML伙伴”,如IBM,Mi

13、rcrosoft,HP等.1997年11月7日被正式采纳作为业界标准。,33,图5.1,34,(1) 统一标准UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的正式标准,提供了标准的面向对象的模型元素的定义和表示。(2) 面向对象UML还吸取了面向对象技术领域中其他流派的长处。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。(3) 可视化、表示能力强系统的逻辑模型或实现模型都能用UML模型清晰的表示,可用于复杂软件系统的建模。(4) 独立于过程UML是系统建模语言,独立于开发过程。(5) 易掌握、易用由于UML

14、的概念明确,建模表示法简洁明了,图形结构清晰,易于掌握使用。,UML的特点,35,UML的主要内容,UML的定义包括UML语义和UML表示法两个部分。 (1) UML语义 描述基于UML的精确元模型(meta-model)定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。此外UML还支持对元模型的扩展定义。UML支持各种类型的语义。如布尔、表达式、列表、阶、名字、坐标、这字符串和时间等,还允许用户自定义类型。 (2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法

15、为系统建模提供了标准.。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。,36,通用模型元素,模型元素是UML构造系统的各种元素,是UML构建模型的基本单位。模型元素代表面向对象中的类,对象,关系和消息等概念,是构成图的最基本的常用的概念。分为以下两类: 1、基元素是已由UML定义的模型元素。如:类、结点、构件、注释、关联、依赖和泛化等。 2、构造型元素在基元素的基础上构造的新的模型元素,是由基元素增加了新的定义而构成的,如扩展基元素的语义(不能扩展语法结构),也允许用户自定义。构造型用括在双尖括号中的字符串表示。目前UML提供了40多个预定义的构造型元素。如使用Us

16、e、扩展 Extend 。,37,模型元素,图1,可以在图中使用的概念统称为模型元素。模型元素在图中用其相应的视图元素(符号)表示,图1给出了常用的元素符号:类、对象、结点、包和组件等。,38,关联:连接(connect)模型元素及链接(link)实例。依赖:表示一个元素以某种方式依赖于另一种元素。泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。聚合:表示整体与部分的关系。 除了上述的模型元素外,模型元素还包括消息,动作和版类(stereotype)等。,图2,模型元素与模型元素之间的连接关系也是模型元素,常见的关系有关联(association)、泛化(generalization)、依赖(dependency)和聚合(aggregation),其中聚合是关联的一种特殊形式。这些关系的图示符号如图2所示。,39,1. 定义类表示类的图形符号为一个长方形,它分成上、中、下三个区域,上面区域中写类名,中部区域为类的属性,下部区域为类的操作(即服务)。,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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