欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件工程ppt课件 第四章 面向对象技术.ppt

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

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

    软件工程ppt课件 第四章 面向对象技术.ppt

    第 四 章,面向对象的技术,面向对象的思想最初出现于挪威奥斯陆大学和挪威计算机中心共同研制的Simula 67语言中,随着的Smalltalk-76和80语言推出,面向对象的的程序设计方法得到了比较完善的实现。 此后,面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统,交互式界面,分布式系统,网络管理结构和人工智能等领域。 面向对象的技术已成为软件开发的一种新方法,新技术。,4.1 面向对象的基本概念,4.1.1 什么是面向对象的开发方法 OOSD (Object-Oriented Software Development)法是一种 把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。,问题空间软件系统所涉及到的应用领域和业务范围(现实世界)。解空间用于解决某些问题的软件系统。,一、软件开发过程,问题空间(现实世界),解空间(软件系统),映射,二、传统软件开发方法存在的问题,1.传统软件开发方法无法实现从问题空间到解空间的直接映射。,问题空间(现实世界),解空间(软件系统),复杂映射,2.传统软件开发方法无法实现高效的软件复用。 原因是:传统软件开发方法数据与代码(操作)分离。,3.传统软件开发方法难以实现从分析到设计的直接过渡。,复杂转换,分析文档(DFD),设计文档(SC),三、面向对象技术的特点 1.对软件开发过程所有阶段进行综合考虑。 使问题空间与解空间具有一制性,降低复杂性。 2.软件生存期各阶段所使用的方法、技术具有高度的连续性,用符合人类认识世界的思维方式来分析、解决问题。,3. 将OOA、OOD、OOP有机地集成在一起。有利于系统的稳定性. OOA(Object-Oriented Analysis) OOD(Object-Oriented Design) OOP(Object-Oriented Program) 以对象为中心各种构造系统,而不是以功能为中心,能很好地适应需求变化.4. 具有良好的可重用性 由于对象所具有的封装性和信息隐蔽,具有很强的独立性。,理解面向对象的基本概念对于学习和掌握面向对象的开发方法是十分重要的。,4.1.2 面向对象的概念,1、 对象(Object) 对象(Object)是客观事物或概念的抽象表述,即对客观存在的事物的描述统称为对象。 对象可以是事、物、或抽象概念 ,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体。属性 (attribute) 对象本身的性质。操作(operation) 给对象定义一组运算。对象将它自身的属性及运算“包装起来”,称为“封装”(encapsulation). 对象的最基本的特征是封装性和继承性。,2、 类(Class)类又称对象类(Object Class),是一组具有相同属性和相同操作的对象的集合。在一个类中,每个对象都是类的实例(instance) ,它们都可以使用类中提供的函数。类具有属性,用数据结构来描述类的属性,类具有操作,它是对象的行为的抽象,操作实现的过程称为方法(method) ,方法有方法名,方法体和参数。,由于对象是类的实例,在进行分析和设计时,通常把注意力集中在类上,而不是具体的对象上。,图4.1 对象类的描述,对象和类的描述对象和类一般采用“对象图” 和 “类图” 来描述。,对象,类,3、 继承 (Inheritance) 继承是使用现存的定义作为基础,建立新定义的技术。是父类和子类之间共享数据结构和方法的机制,这是类之间的一种关系。 继承性分: 单重继承:一个子类只有一个父类。即子类只继承一个父类的数据结构和方法。 多重继承:一个子类可有多个父类。继承多个父类的数据结构和方法。,现存类定义父类(基类),新类定义子类(派生类),继 承,图 4.3 继承性,4、消息(Message) 消息就是向对象发出的服务请求(互相联系、协同工作等)。对象之间的联系可表示为对象间的消息传递,即对象间的通讯机制。 一个消息应该包含以下信息:消息名、接收消息对象的标识、服务标识 、消息和方法、输入信息、回答信息。,在对象的操作中当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的消息。,5、多态性和动态绑定 多态性(Polymorphism)是指相同的操作或函数、过程作用于不同的对象上并获得不同的结果。 即相同的操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的操作去执行,产生不同的结果。 例如: “绘图”操作,作用在“椭圆” 和“矩形” 上,画出不同的图形。,动态绑定(dynamic binding)是在运行时根据对象接收的消息动态地确定要连接的服务代码。使用虚函数可实现动态联编,不同联编可以选择不同的实现,这便是多态性。 继承是动态联编的基础,虚函数是动态联编的关键。,多态性的实现举例,实现多态性的基本步骤(以VC为例):(1)在基类中,定义成员函数为虚函数(virtual);(2)定义基类的公有(public)派生类;(3)在基类的公有派生类中“重载”该虚函数;(4)定义指向基类的指针变量,它指向基类的公有派生类的对象。,注意:重载虚函数不是一般的重载函数,它要求函数名、返回类型、参数个数、参数类型和顺序完全相同。,例如:下面是实现“多态性” 的一个例子#include class figure /定义基类 protected: double x,y; public: void set_dim(double i; double j=0) x=i; y=j; virtual void show_area() /定义虚函数 cout“No area computation define ”; cout“for this class.n”; ;,(1) 在基类中,将成员函数说明为虚函数(virtual);,class triangle: public figure / (2)定义基类的公有派生类 public: virtual void show_area() / (3)“重载”该虚函数 求三角形面积 ;class square: public figure / (2)定义基类的公有派生类 public: virtual void show_area() / (3)“重载”该虚函数 求矩形面积 ;class circle: public figure / (2)定义基类的公有派生类 public: virtual void show_area() / (3)“重载”该虚函数 求园面积 ;,p= ,(4)运行过程中实现“动态绑定”,6、永久对象(Persistent object) 所谓永久对象是指生存期可以超越程序的执行时间而长期存在的对象。 目前,大多数OOPL不支持永久对象,如果一个对象要长期保存,必须依靠于文件系统或数据库管理系统实现,程序员需要作对象与文件系统或数据库之间数据格式的转换,以及保存和恢复所需的操作等烦琐的工作。 为了实现永久对象,使上述烦琐工作由系统自动完成,需要较强的技术支持;需要一个基于永久对象管理系统OMS(object management system),能够描述和处理永久对象的编程语言。,图4.6面向对象开发过程的应用生存期模型,OOA,应用生存期在面向对象开发的各个阶段,开发的“部件”都是类,因此面向对象的各个阶段都是对类的信息进行细化。类是分析、设计和实现的基本单元。,虽然图中各阶段的顺序是线性的,但实际过程的交错和相互作用要复杂得多。,OOD,4.面向对象的开发过程,4.3 面向对象的分析,面向对象分析OOA(Object-Oriented Analysis)的目标是完成对所求解问题的分析,确定系统“作什么”,并建立系统的模型。,OOA的基本任务 运用面向对象的方法,对问题域和系统责任进行分析和理解,找出描述它们的类和对象,定义其属性和操作,及其结构、静态联系和动态联系。,基本概念: 问题域(problem domain) 被开发系统的应用领域。 系统责任(system responsibilities) 所开发的系统应具备的职能。,4.3.1 OOA的分析过程,图4.7 OOA分析过程,4.3.2 OOA模型,图4.8 OOA模型与详细说明,基本模型是一个类图(class diagram),是以直观的方式表达系统最重要的信息。OOA基本模型的三个层次分别描述了:系统中应设哪几类对象,每类对象的内部构成,对象与外部的关系。,4.3.2 OOA模型,主题(subject)又称为子系统(subsystem)是将一些联系密切的类组织在一起的类的集合。按照粒度控制原则,将系统组成几个主题,便于理解。,4.3.2 OOA模型,交互图(interaction diagram) 是Use case与系统成分之间的对照图。,主题图和交互图又称为补充模型。,4.3.2 OOA模型,详细说明按照分析方法所要求的格式,对分析模型进行说明和解释。主要以文字为主。,OOA的特点,1.有利于对问题及系统责任的理解;2.有利于人员之间的交流;3.对需求变化有较强的适应性;4.支持软件复用。,面向对象的设计OOD(Object-Oriented Design)是面向对象方法在软件设计阶段应用与扩展的结果。 是将OOA所创建的分析模型转换为设计模型,解决如何作的问题。OOD与OOA没有明显的分界,采用相同的符号。,4.4 面向对象的设计,4.4.1 OOD基本任务1. 系统设计 将分析模型划分为若干子系统,子系统应该具有良好的接口,子系统内的类相互协作。标识问题本身的并发性,为子系统分配处理器。,子系统的分解是关键,可以有分层和分块:分层:将软件系统组织为层次结构,每层是一个子系统。分层结构又分为封闭式和开放式。分块:垂直分块是将系统分解为若干个相对独立的、弱耦合的子系统。每个子系统相当于一个块,每块实现一类服务。常常使用分层和分块的混合结构,如图所示:,4.4.1 OOD基本任务2.对象设计 在面向对象的系统中,模块、数据结构及接口等都集中体现在对象和对象层次结构中。 对象设计是为每个类的属性和操作进行详细设计,包括属性和操作,它们的数据结构和实现算法。,3.消息设计 设计连接类与它的协作者之间的消息规约(specification of the messages)。,4.优化及复审 主要考虑提高效率和建立良好的继承结构。,4.4.2 OOD模型,面向对象设计准则: 1)模块化 2)抽象 3)信息隐藏 4)弱耦合 5)强内聚 6)可重用,介绍几种典型的面向对象的开发方法:Coda方法, Booch方法和 OMT方法,1、Coda/Yourdon方法 由OOA,OOD构成 建立问题域的分析模型。该模型由5个层次组成:即主题层、对象层、结构层、属性层和服务层。 要建立4个组元的设计模型:问题域组元、人机交互组元、任务管理组元和数据管理组元。 该方法的特点是:简单、易学,对于对象、结构、服务的认定较系统、完整、可操作性强。,随着面向对象开发方法的发展,逐渐形成了三个主要的流派:即Coda方法, Booch方法和 OMT方法。,4.5 coda/Yourdon方法,4.5.1 Coda方法的OOA,在Coda方法中,构造和评审OOA概念模型的顺序由五个层次组成。这五个层次不是构成软件系统的层次,而是分析过程中的层次,即分析的不同侧面。这五个层次是:类与对象、属性、服务、结构和主题。图中给出了每个层次中所涉及到主要概念和相应的图形表示。,4.5.1 Coda方法的OOA,下面给出一些应用实例:,图4.11 服务层的例子,4.5.2 Coda方法的OOD,Coad方法的OOD模型是在OOA模型5个层次基础上,建立系统的4类组元,,PDC问题域 组元,HIC人机界面 组元,TMC任务管理 组元,DMC数据管理 组元,图4.12 Coda OOD模型,1)设计问题域组元(problem domain component)2)设计人机界面组元(human interaction component)3)设计任务管理组元(task management component) 4)设计数据管理组元(data management component),Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。 该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。,4.6 Booch方法,4.6.1 Booch方法的基本模型,一、静态模型1、类图,对象图由对象和消息组成,2、对象图,图4.16 温室管理系统的对象图,图4.15 对象图的表示,3、状态图,图4.18 环境控制器类的状态图,图4.17 状态图的表示,4、时序图,5、模块图,6、进程图,图4.20 温室管理系统的模块图,图4.21 温室管理系统的进程图,面向对象的方法学又称为对象模型技术,OMT( Object Model Technology)是一种软件工程方法学,支持整个软件生存周期,它覆盖了问题构成、分析、设计和实现等阶段。OMT方法使用了建模的思想,讨论如何建立一个实际的应用模型。从3个不同而又相关的角度建立了三类模型:对象模型、动态模型和函数模型,OMT为每一个模型提供了图形表示。,4.7 面向对象的建模技术(OMT),4.7.1 对象模型技术的基本概念,OMT 方法讨论的核心就是建立三类模型: 对象模型描述了由对象和相应实体构成的系统静态结构,描述了系统中对象的标识,属性、操作及对象的相互关系。 动态模型根据事件和状态描述了系统的控制结构,系统中与时间和操作顺序有关的内容。 函数模型着重描述系统中与值的转换有关的问题,如函数、映射、约束和函数作用等。三类模型描述的角度不同,却又相互联系。,4.7.2 建立对象模型,对象模型描述了系统的静态结构。构成对象模型的基本元素有:对象(类)、它们之间的关系。,对象名,类名,类之间、对象之间的关系,一、关联与链 1.二元关联、三元关联,2.受限关联,3.用重数、链属性和角色进一步描述。,二、继承性(Inheritance),继承性通常又称为概括,表示基类与子类的关系。,三、聚集表整体与部分的关系。,银行网络系统ATM(Auto Trade Machine)银行网络系统包括人工出纳和分行共享的自动出纳机。,问题的陈述,采用OMT方法对银行网络系统ATM(Auto Trade Machine) 进行分析和设计。银行网络系统包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理业务(保存帐户、处理事务等);各分理处与出纳站通过网络通信;出纳站录入帐户和事务数据;自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡;发放现金;打印收据;分行计算机与拨款分理处结帐。要求系统正确处理同一帐户的并发访问;网络费用平均摊派给各分理处。图给出了银行网络系统的示意图。,对象模型,4.7.3 建立动态模型,动态模型着重于系统的逻辑结构;描述某时刻对象及其联系的改变。包括状态图和事件追综图。,一、事件和状态状态 对象所具有的属性值,具有时间性和持续性。事件 对于对象的触发行为,指从一个对象到另一个对象的信息的单向传递。脚本在系统的某一执行期间内的一系列事件。 在系统中具有属性值、链路的对象,可能相互激发,引起状态的一系列变化。,有的事件传递的是简单信号,有的事件则传递的是数据值。由事件传送的数据值称为“属性”。,二、状态图,状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为,状态的迁移。,状态A活动,状态B,状态A / 操作,事件B条件,起始状态,终结状态,状态图,动态模型由多个状态图组成,每个有重要行为的类都有一个状态图。各状态图可并发地执行及独立改变状态。,图例状态状态迁移,状态,打电话状态图,图4.39打电话状态图,三、事件追踪图,事件追踪图侧重描述系统执行过程中的一个特定的“场景(Scenarios)”。场景有时也叫“脚本”,是完成系统某个功能的一个事件序列。即是描述多个对象的集体行为。,脚本系统某一次特定运行时期内发生的事件序列。例如:打电话的场景:,1、拿起电话受话器12、打电话者听见振铃声2、电话忙音开始13、对方接电话3、拨电话号码数512、接话方停止振铃4、电话忙音结束14、打电话方停止振铃声5、拨电话号码数515、通电话6、拨电话号码数516、对方挂电话7、拨电话号码数117、电话切断8、拨电话号码数2 18、打电话者挂电话.11、对方电话开始振铃,打电话的事件追踪图,打电话者 电话线 接电话者,拿起接收器拨号音开始拨号(5)忙音结束拨号(5)拨号(5)拨号(1)拨号(2)拨号(3)拨号(4)拨号(8)铃声铃声停止电话连通电话断开打电话者挂机,铃声受话方回答铃声停止电话连通受话方挂机电话断开,打电话者,打电话的事件追综图,功能模型着重于系统内部数据的传递与处理。定义“做什么?”的问题,表明值之间的依赖关系及其相关的功能。 描述手段为分层数据流图,DFD图有助于表示功能的依赖关系,其中的处理对应于状态图的活动和动作,数据流对应于对象图中的对象或属性。建立功能模型的步骤为:,4.7.4 建立功能模型,4.8 面向对象的软件工程(OOSE),OOSE将面向对象的思想应用于软件工程中,建立五个模型: 1、需求模型(RM) 2、分析模型(AM) 3、设计模型(DM) 4、实现模型(IM) 5、测试模型(TM),OOSE的开发活动主要分为三类:分析、构造和测试。,OOSE的核心最大贡献,是建立了Use Case 模型。,用例(Use case)是OOSE中的重要概念,在开发各种模型时,用例贯穿了OOSE活动的核心,描述了系统的需求及功能。,分析模型 use case模型通过分析来构造。设计模型 use case模型通过设计来具体化。实现模型 该模型依据具体化的设计来实现use case模型。测试模型 用来测试具体化的use case模型。,Coda-Yourdon方法, Booch方法、 OMT方法及OOSE法代表了面向对象方法的主要流派。它们都是采用建模技术建立了各种视图来描述软件系统。模型是对系统的抽象表示,建模是在不同层次上对系统的描述。,面向对象建模,鉴于软件,尤其是大型软件所具有的复杂性,以及人们对复杂问题理解的局限性,建立一种共同的建模语言,推动OO方法的发展是十分必要的。, UML统一建模型语言应运而生!,

    注意事项

    本文(软件工程ppt课件 第四章 面向对象技术.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开