欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    面向对象方法学引论.ppt

    • 资源ID:2605219       资源大小:592.01KB        全文页数:60页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象方法学引论.ppt

    第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 传统方法的缺点,结构化分析方法:面向功能 软件结构严重依赖于功能,而功能是软件开发中最不稳定的因素。 数据和操作相分离,9.1.2 面向对象开发方法,OOSD (Object-Oriented Software Development)是一种 把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。 面向对象=对象 (objects) +类 (classes) +继承(inheritance) +通信 (communication with messages),9.1.3 面向对象方法的要点,认为客观世界是由各种对象组成的,任何事物都是对象。 把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。 按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。 对象彼此之间仅能通过传递消息互相联系。,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 面向对象开发过程(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) 以数据为中心。 (2) 对象是主动的。 (3) 实现了数据封装。 (4) 本质上具有并行性。 (5) 模块独立性好。,9.2.2 类,类又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合。在一个类中,每个对象都是类的实例(instance) ,它们都可以使用类中提供的函数。,9.2.3 实例,实例就是由某个特定的类所描述的一个具体的对象。类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中并不能真正存在。,9.2.4 消息,消息就是向对象发出的服务请求(互相联系、协同工作等)。一个消息包含3个部分:接收消息的对象,消息名,消息变元。 例如,MyCircle是Circle类的一个实例,发送消息如下: MyCircle.show(GREEN);,9.2.5 方法,方法就是对象所能执行的操作,也就是类中所定义的服务。 方法描述了对象执行操作的算法,响应消息的方法。在C+语言中把方法称为成员函数。,9.2.6 属性,属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。,9.2.7 封装,对象封装了对象的数据以及对这些数据的操作。,9.2.8 继承(I),继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。 单重继承:子类仅从一个父类继承属性和方法 多重继承:子类可从多个父类继承属性和方法,9.2.8 继承(II),9.2.9 多态性,在类等级的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。 当对象接收到发送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法,9.3 面向对象建模(I),面向对象方法最基本的原则,是按照人们习惯的思维方式,用面向对象观点建立问题域的模型,开发出尽可能自然地表现求解方法的软件。 OMT( Object Model Technology)是一种软件工程方法学,支持整个面向对象软件生命周期,它覆盖了问题构成、分析、设计和实现等阶段。,9.3 面向对象建模(II),面向对象开发软件,需要建立3种形式的模型。 对象模型。描述系统数据结构数据结构。 动态模型。描述系统控制结构执行操作。 功能模型。描述系统功能数值变化。 这三种模型从不同侧面描述了对系统的需求。在面向对象的分析(OOA)阶段,这三种模型是必不可少的。,9.4 对象模型,对象模型描述了系统的静态结构。OO方法强调围绕对象而不是功能来构造系统。 使用统一建模语言UML (Unified Modeling Language)提供的类图来建立对象模型。 UML用例图是建立功能模型的有力工具。,9.3 面向对象建模,UML(Unified Modeling Language)产生于90年代中期。它不仅统一了Booch、OMT和OOSE方法中的概念和表示法,而且对其作了进一步扩展,最终成为在面向对象技术领域占主导地位的、并被大众所接受的标准建模语言。 1、UML概述 UML的发展历程(下图) UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行可视化建模。UML不是一个开发过程,也不是一个方法,但允许任何一种开发过程和面向对象方法使用它。,统一建模语言UML,9.3 面向对象建模,UML,事物,关系,图,结构 事物,行为 事物,组织 事物,辅助 事物,静态 图,实现 关系,泛化 关系,依赖 关系,关联 关系,动态 图,交 互,状 态 机,包,注 释,顺 序 图,活 动 图,用 例 图,实 施 图,类 图,构 件 图,对 象 图,状 态 图,协 作 图,节 点,组 件,活 动 类,协 作,接 口,类,用 例,(1) 统一标准 UML统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的正式标准,提供了标准的面向对象的模型元素的定义和表示。 (2) 面向对象 UML还吸取了面向对象技术领域中其他流派的长处。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。 (3) 可视化、表示能力强 系统的逻辑模型或实现模型都能用UML模型清晰的表示,可用于复杂软件系统的建模。 (4) 独立于过程 UML是系统建模语言,独立于开发过程。 (5) 易掌握、易用 由于UML的概念明确,建模表示法简洁明了,图形结构清晰,易于掌握使用。,面向对象建模,9.4.1类图的基本符号(I),1. 定义类 UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域,3个区域分别放类的名字、属性和服务,9.4.1类图的基本符号(II),属性用来描述类的特征,表示需要处理的数据。 定义如下:,2. 定义属性,visibility attribute-name : type = initial-value property-string 可见性 属性名 :类型 = 缺省值 性质串,其中:可见性(visibility)表示该属性对类外的元素是否可见。 分为: public(+) 公有的,即模型中的任何类都可以访问该属性。 private(-) 私有的,表示不能被别的类访问。 protected(#) 受保护的,表示该属性只能被该类及其子类访问。 如果可见性未申明,表示其可见性不确定。,9.4.1类图的基本符号(III),3. 定义操作 对数据的具体处理方法的描述则放在操作部分,操作说明了该类能做些什么工作。UML描述操作的语法格式如下: 操作可见性的定义方法与属性相同。 参数表是用逗号分隔的形式参数的序列。描述一个参数的语法如下: 参数名: 类型名=默认值,visibility operating-name(parameter-list): return-type property- string 可见性 操作名(参数表):返回类型性质串,9.4.2 表示关系的符号(I),类与类之间关系有: 关联 聚集 泛化(继承) 依赖 细化,9.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) 关联的角色 在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。如果没有显式标出角色名,则意味着用类名作为角色名。,递归关联(Recursive association) 一个类与本身有关联关系,9.4.2.1 关联(IV),(3) 限定关联 限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。,9.4.2.1 关联(V),(4) 关联类 为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。,9.4.2.1 关联(VI),关联的语言实现 1-1: Public class Programmer Computer * GetUsedComputer(void) Public class Computer Programmer * GetQuotingProgrammer(void) ,9.4.2.1 关联(VI),关联的语言实现 1-1: Public class Programmer Computer * GetUsedComputer(void) Public class Computer Programmer * GetQuotingProgrammer(void) ,9.4.2.1 关联(VII),1-n Public class Company Product * GetProduct(); Private Product * Product, ; Public class Product Company * GetCompany(); ,9.4.2.1 关联(VIII),限定关联 Public class Bookshelf Book * GetHoldingBook(int bookID); Public class Book BookShelf * GetBookShelf(void);,9.4.2.2 聚集(I),聚集是一种特殊的关联,它指出类间的“整体-部分”关系。 (1) 共享聚集 如果在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成,则该聚集称为共享聚集。,9.4.2.2 聚集(II),(2) 组合聚集 如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失,则该聚集称为组合聚集。,9.4.2.3 泛化(I),UML中的泛化关系就是通常所说的继承关系。 (1) 普通泛化,附加标记,注释,普通泛化,9.4.2.3 泛化(II),(2) 受限泛化 可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法,这样的泛化关系称为受限泛化。预定义的约束有4种: 多重、不相交、完全和不完全。下图:多重继承,9.4.2.3 泛化(III),完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定完全约束。 不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,不完全继承是一般情况下默认的继承关系。,图9.13 复杂类图示例,组合聚集,组合聚集,抽象类,组合聚集,抽象操作,泛化,具体实现,9.4.2.4 依赖,依赖关系表示: 其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。,9.4.2.5 细化,当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。假设两个模型元素A和B描述同一个事物,它们的区别是抽象层次不同,如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。,注意是虚线, 实线就成了泛化,习题。现有一医院病房监护系统,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,定期更新病历,当病症出现异常时,系统会立即自动报警, 并实时打印病人的病情报告,立及更新病历。 建立相应的对象模型,用类图表示。,首先给出类的名称及相应的属性和方法,动态模型描述系统控制结构。通常用状态图表示。,9.5 动态模型,下降状态,在第一层,上升状态,向第一层下降,空闲状态,上升,到达,到达,上升,超时,下降,到达第一层,功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,通常,功能模型由一组数据流图组成。 UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。,9.6 功能模型,9.7 3种模型之间的关系,三种模型描述了系统的不同方面,功能模型与对象模型的关系 -对象模型描述了功能模型中的动作对象,数据存储 以及数据流结构 -功能模型中的处理对应于对象模型中的操作,动态模型与对象模型的关系 -状态转换驱使行为发生,这些行为在DFD中被映射 成处理,它们同时与对象模型的操作相对应 -针对每个建立的动态模型描述了类实例的生命 周期或运行周期,动态模型与功能模型的关系 -功能模型中的处理可能产生动态模型中的事件。,

    注意事项

    本文(面向对象方法学引论.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开