《软件测试》第8章.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 面向对象软件的测试 本章要点 面向对象的基本概念 面向对象方法的优点 面向对象软件的特点及其对软件测试的影响 面向对象软件的测试模型 面向对象软件的单元测试 面向对象软件的集成测试 8.1 面向对象开发方法概述 8.1.1 面向过程开发方法的不足 面向过程的开发方法对过程进行抽象,采用“自顶向下,逐步求精”的思路对要实现的功能模块进行逐层分解,从而简化问题的实现。面向过程方法的不足为: (1) 软件重用性差 (2) 安全性差 (3) 软件稳定性和可维护性差 8.1.2 面向对象的基本概念 关于面向对象,Coad和Yourdon给出如下的定义: 面向对象(Object Oriented)= 对象(Object)+类(Class)+继承(Inheritance)+消息通信(Message Communication) 下面对面向对象方法中最基本的几个概念进行简要的介绍。 (1) 对象 ?对象是现实世界中存在的一个事物。对象可以是物理的,如一张桌子,也可以是抽象的,如一个开发项目或一个计划。 在面向对象开发中,对象就是模块,它是把数据结构和操作这些数据的方法紧密地结合在一起而构成的模块。 (2) 类和实例 ???? 具有相同特征和行为的所有对象构成一个类,属于某个类的对象称为该类的实例(Instance)。 类抽象地描述了属于该类的全部对象的属性(用数据结构表示)和操作(也称为服务或方法,在C++中即成员函数)。可将类看作一个抽象数据类型(Abstract Data Type,简称ADT)的实现。 (3) 继承 ????? 继承是子类(也称派生类)自动共享其父类和祖先类属性和操作(即共性部分)的机制。子类在继承共性部分的基础上,还可有增加自身特有的属性和操作。当然,若不合适,子类也可放弃对父类和祖先类中某些特性的继承。 ????? 子类只继承一个父类的属性和操作,称为单重继承;子类若继承了多个父类的属性和操作,则称为多重继承。 继承是面向对象开发方法独有的机制。继承机制的好处是: 使共有的属性和操作能够共享,避免了类中的重复定义,增加了代码的可重用性。 由于代码重用性高,因而缩短了代码的总长度,使程序简短、结构清晰、易于理解。 对于具有继承关系的父类和多个子类的相同部分的修改,只需在父类中进行即可。 (4) 消息 ???? ?两个对象之间的通信单元称为消息,它是要求接收消息的对象执行类中定义的某操作的规格说明。消息机制类似于面向过程开发中的函数调用。 (5) 封装 ???封装(Encapsulation)也可理解为信息隐藏。对象是封装的最基本单位,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。 ???? 封装机制具有如下优点: 简化了对对象的使用。外部程序仅通过接口访问对象,而不必知道对象内部的具体实现。 为软件模块的安全性提供了强有力的保障,因为对象内部数据结构是不能被外界访问的。 减小了类之间的相互依赖性,使程序结构更为紧凑、清晰,提高了软件部件的重用性,且使得对软件的修改、测试、维护等工作更易于进行。 (6) 抽象 抽象有两方面的意义: 尽管问题域中的事物是复杂的,但是分析人员并不需要了解和描述它们的一切,只需要分析研究其中与系统目标有关的事物及其本质性特征。 通过舍弃个体事物在细节上的差异,抽取其共同特征而得到一批事物的抽象概念。 与面向过程仅支持过程抽象不同,面向对象方法 中的抽象原则包括过程抽象和数据抽象两方面。 ? ?过程抽象是指,任何一个完成确定功能的操作序列,其使用者都可以把它看作一个单一的实体,尽管实际上它可能是由一系列更低级的操作完成的。 ????数据抽象是根据施加于数据之上的操作来定义数据类型,并限定数据的值只能由这些操作来修改和查看。数据抽象是面向对象开发方法的核心原则。它强调把属性(数据结构)和操作(服务)结合为一个不可分的单位(即对象),对象的外部只需要知道它做什么,而不必知道它如何做。数据抽象是通过封装机制实现的。 (7) 多态性 ? ???一个操作在不同的类中可有不同的实现方式,这称为多态性(Polymophism)。因而属于不同类的对象,收到同一消息可以产生不同的结果。 ????? 多态性增强了软件的灵活性、重用性和可维护性。 8.1.3 面向对象开发方法的优点 (1) 软件重用性高 (2) 安全性高 (3) 软件可维护性高 (4) 容易扩展 (5) 适用于大型、复杂项目 8.1.4 统一建模语言UML简介 UML(Unified Modeling Lan

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档