面向对象方法学引论.ppt

上传人:小飞机 文档编号:5393331 上传时间:2023-07-02 格式:PPT 页数:60 大小:454.50KB
返回 下载 相关 举报
面向对象方法学引论.ppt_第1页
第1页 / 共60页
面向对象方法学引论.ppt_第2页
第2页 / 共60页
面向对象方法学引论.ppt_第3页
第3页 / 共60页
面向对象方法学引论.ppt_第4页
第4页 / 共60页
面向对象方法学引论.ppt_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《面向对象方法学引论.ppt》由会员分享,可在线阅读,更多相关《面向对象方法学引论.ppt(60页珍藏版)》请在三一办公上搜索。

1、第9章 面向对象方法学引论,9.1 面向对象方法学概述9.2 面向对象的概念9.3 面向对象建模9.4 对象模型9.5 动态模型9.6 功能模型9.7 3种模型之间的关系,目标,了解面向对象方法学了解面向对象基本概念了解面各向对象模型建立建立系统对象模型建立系统功能模型建立系统动态模型,9.1面向对象方法学概述,9.1.1 传统方法学缺点9.1.2 面向对象开发方法9.1.3 面向对象方法要点9.1.4 面向对象方法组成9.1.5 面向对象方法过程9.1.6 面向对象方法优点,9.1.1 传统方法的缺点,结构化分析方法:面向功能软件结构严重依赖于功能,而功能是软件开发中最不稳定的因素。数据和操

2、作相分离,9.1.2 面向对象开发方法,OOSD(Object-Oriented Software Development)是一种 把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。面向对象=对象(objects)+类(classes)+继承(inheritance)+通信(communication with messages),9.1.3 面向对象方法的要点,认为客观世界是由各种对象组成的,任何事物都是对象。把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构

3、的系统(也称为类等级)。对象彼此之间仅能通过传递消息互相联系。,9.1.4 面向对象方法组成,OOSD由三部分组成:OOA(Object-Oriented Analysis)面向对象的分析 OOD(Object-Oriented Design)面向对象的设计 OOP(Object-Oriented Program)面向对象的程序设计,OOA,强调的是对一个系统中的对象特征和行为的定义。建立系统的三类模型。,OOD,与OOA密切配合顺序实现对现实世界的进一步建模。,OOP,是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。,9.1.5 面向对象开发过程(I),9.1.5 面向对

4、象开发过程(II),9.1.5 面向对象开发过程(III),9.1.5 面向对象开发过程(IV),9.1.6 面向对象方法的优点,1.与人类习惯的思维方式一致2.稳定性好3.可重用性好4.可维护性好,9.2 面向对象的概念,9.2.1 对象9.2.2 类9.2.3 实例9.2.4 消息9.2.5 方法9.2.6 属性9.2.7 封装9.2.8 继承9.2.9 多态性,9.2.1 对象(I),是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。,9.2.1 对象(II),对象的特点(1)以数据为

5、中心。(2)对象是主动的。(3)实现了数据封装。(4)本质上具有并行性。(5)模块独立性好。,9.2.2 类,类又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合。在一个类中,每个对象都是类的实例(instance),它们都可以使用类中提供的函数。,9.2.3 实例,实例就是由某个特定的类所描述的一个具体的对象。类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中并不能真正存在。,9.2.4 消息,消息就是向对象发出的服务请求(互相联系、协同工作等)。一个消息包含3个部分:接收消息的对象,消息名,消息变元。例如,MyCircle是Circle类的一个实例

6、,发送消息如下:MyCircle.show(GREEN);,9.2.5 方法,方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执行操作的算法,响应消息的方法。在C+语言中把方法称为成员函数。,9.2.6 属性,属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。,9.2.7 封装,对象封装了对象的数据以及对这些数据的操作。,9.2.8 继承(I),继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。单重继承:子类仅从一个父类继承属性和方法多重继承:子类可从多个父类继承属性和方法,9.2

7、.8 继承(II),9.2.9 多态性,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法,9.3 面向对象建模(I),面向对象方法最基本的原则,是按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。OMT(Object Model Technology)是一种软件工程方法学,支持整个面向对象软件生命周期,它覆盖了问题构成、分析、设计和实现等阶段。,9.3 面向对象建模(II),面向对象开发软件,需要建立3种

8、形式的模型。对象模型。描述系统数据结构数据结构。动态模型。描述系统控制结构执行操作。功能模型。描述系统功能数值变化。这三种模型从不同侧面描述了对系统的需求。在面向对象的分析(OOA)阶段,这三种模型是必不可少的。,9.4 对象模型,对象模型描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。使用统一建模语言UML(Unified Modeling Language)提供的类图来建立对象模型。UML用例图是建立功能模型的有力工具。,9.3 面向对象建模,UML(Unified Modeling Language)产生于90年代中期。它不仅统一了Booch、OMT和OOSE方法中的概念

9、和表示法,而且对其作了进一步扩展,最终成为在面向对象技术领域占主导地位的、并被大众所接受的标准建模语言。1、UML概述UML的发展历程(下图)UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行可视化建模。UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和面向对象方法使用它。,统一建模语言UML,9.3 面向对象建模,UML,事物,关系,图,结构事物,行为事物,组织事物,辅助事物,静态图,实现关系,泛化关系,依赖关系,关联关系,动态图,交互,状态机,包,注释,顺序图,活动图,用例图,实施图,类图,构件图,对象图,状态图,协作图,节点,组件,活动类,协作,接口

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

11、基本符号(I),1.定义类UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域,3个区域分别放类的名字、属性和服务,类图的基本符号(II),属性用来描述类的特征,表示需要处理的数据。定义如下:,2.定义属性,visibility attribute-name:type=initial-value property-string 可见性 属性名:类型=缺省值 性质串,其中:可见性(visibility)表示该属性对类外的元素是否可见。分为:public(+)公有的,即模型中的任何类都可以访问该属性。private(-)私有的,表示不能被别的类访问。protected(#)受保护

12、的,表示该属性只能被该类及其子类访问。如果可见性未申明,表示其可见性不确定。,类图的基本符号(III),3.定义操作对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。UML描述操作的语法格式如下:操作可见性的定义方法与属性相同。参数表是用逗号分隔的形式参数的序列。描述一个参数的语法如下:参数名:类型名=默认值,visibility operating-name(parameter-list):return-type property-string 可见性 操作名(参数表):返回类型性质串,9.4.2 表示关系的符号(I),类与类之间关系有:关联聚集泛化(继承)依赖细化,9

13、.4.2.1 关联(I),关联表示两个类的对象之间存在某种语义上的联系。(1)普通关联普通关联示例,9.4.2.1 关联(II),在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:01表示0到1个对象0*或*表示0到多个对象1+或1*表示1到多个对象115表示1到15个对象3表示3个对象如果图中未明确标出关联的重数,则默认重数是1。,9.4.2.1 关联(III),(2)关联的角色在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。如果没有显式标出角色名,则

14、意味着用类名作为角色名。,递归关联(Recursive association)一个类与本身有关联关系,9.4.2.1 关联(IV),(3)限定关联限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。,9.4.2.1 关联(V),(4)关联类为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。,9.4.2.1 关联(VI),关联的语言实现1-1:Public class ProgrammerCompu

15、ter*GetUsedComputer(void)Public class ComputerProgrammer*GetQuotingProgrammer(void),9.4.2.1 关联(VI),关联的语言实现1-1:Public class ProgrammerComputer*GetUsedComputer(void)Public class ComputerProgrammer*GetQuotingProgrammer(void),9.4.2.1 关联(VII),1-nPublic class CompanyProduct*GetProduct();Private Product*Pr

16、oduct,;Public class ProductCompany*GetCompany();,9.4.2.1 关联(VIII),限定关联Public class BookshelfBook*GetHoldingBook(int bookID);Public class BookBookShelf*GetBookShelf(void);,9.4.2.2 聚集(I),聚集是一种特殊的关联,它指出类间的“整体-部分”关系。(1)共享聚集如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。,9.4.2.2 聚集(II),(2)组合聚集如果部分类完全隶属于整体类

17、,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。,9.4.2.3 泛化(I),UML中的泛化关系就是通常所说的继承关系。(1)普通泛化,附加标记,注释,普通泛化,9.4.2.3 泛化(II),(2)受限泛化可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有4种:多重、不相交、完全和不完全。下图:多重继承,9.4.2.3 泛化(III),完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定完全约束。不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,不完全继承是一般情况下默认的继承关系。,图

18、9.13 复杂类图示例,组合聚集,组合聚集,抽象类,组合聚集,抽象操作,泛化,具体实现,9.4.2.4 依赖,依赖关系表示:其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。,9.4.2.5 细化,当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模型元素A和B描述同一个事物,它们的区别是抽象层次不同,如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。,注意是虚线,实线就成了泛化,习题。现有一医院病房监护系统,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进

19、行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,定期更新病历,当病症出现异常时,系统会立即自动报警,并实时打印病人的病情报告,立及更新病历。建立相应的对象模型,用类图表示。,首先给出类的名称及相应的属性和方法,动态模型描述系统控制结构。通常用状态图表示。,9.5 动态模型,下降状态,在第一层,上升状态,向第一层下降,空闲状态,上升,到达,到达,上升,超时,下降,到达第一层,功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,通常,功能模型由一组数据流图组成。UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。,9.6 功能模型,9.7 3种模型之间的关系,三种模型描述了系统的不同方面,功能模型与对象模型的关系-对象模型描述了功能模型中的动作对象,数据存储以及数据流结构-功能模型中的处理对应于对象模型中的操作,动态模型与对象模型的关系-状态转换驱使行为发生,这些行为在DFD中被映射成处理,它们同时与对象模型的操作相对应-针对每个建立的动态模型描述了类实例的生命周期或运行周期,动态模型与功能模型的关系-功能模型中的处理可能产生动态模型中的事件。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号