《12、面向对象实现》.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《12、面向对象实现》.ppt

第12章 面向对象实现 12.1 程序设计语言 12.2 程序设计风格 12.3 测试策略 12.4 设计测试用例 面向对象实现主要包括两项工作: 把面向对象设计结果翻译成用某种程序语言书写的面向对象程序 测试并调试面向对象的程序 面向对象程序的质量基本上由面向对象设计的质量决定,但是,所采用的程序语言的特点和程序设计风格也将对程序的可靠性、可重用性及可维护性产生深远影响。 面向对象测试的目标:用尽可能低的测试成本发现尽可能多的软件错误。 面向对象程序中特有的封装、继承和多态等机制,也给面向对象测试带来一些新特点,增加了测试和调试的难度。 12.1 程序设计语言 12.1.1 面向对象语言的优点 1. 一致的表示方法 面向对象开发基于不随时间变化的、一致的表示方法。这种表示方法应该从问题域到OOA,从OOA到OOD,最后从OOD到面向对象编程(OOP),始终稳定不变。 一致的表示方法既有利于在软件开发过程中始终使用统一的概念,也有利于维护人员理解软件的各种配置成分。 2. 可重用性 为了能带来可观的商业利益,必须在更广泛的范围中运用重用机制,而不是仅仅在程序设计这个层次上进行重用。因此,在OOA,OOD直到OOP中都显式地表示问题域语义,其意义是十分深远的。随着时间的推移,软件开发组织既可能重用它在某个问题域内的OOA结果,也可能重用相应的OOD和OOP结果。 3. 可维护性 尽管人们反复强调保持文档与源程序一致的必要性,但是,在实际工作中很难做到交付两类不同的文档,并使它们保持彼此完全一致。 在选择编程语言时,应该考虑的首要因素,是哪个语言能最好地表达问题域语义。一般说来,应该尽量选用面向对象语言来实现面向对象分析、设计的结果。 12.1.3 选择面向对象语言 开发人员在选择面向对象语言时,还应该着重考虑以下一些实际因素。 1. 将来能否占主导地位 在若干年以后,哪种面向对象的程序设计语言将占主导地位呢?为了使自己的产品在若干年后仍然具有很强的生命力,人们可能希望采用将来占主导地位的语言编程。 2. 可重用性 采用面向对象方法开发软件的基本目的和主要优点,是通过重用提高软件生产率。因此,应该优先选用能够最完整、最准确地表达问题域语义的面向对象语言。 3. 类库和开发环境 决定可重用性的因素,不仅仅是面向对象程序语言本身,开发环境和类库也是非常重要的因素。事实上,语言、开发环境和类库这3个因素综合起来,共同决定了可重用性。 考虑类库的时候,不仅应该考虑是否提供了类库,还应该考虑类库中提供了哪些有价值的类。随着类库的日益成熟和丰富,在开发新应用系统时,需要开发人员自己编写的代码将越来越少。 为便于积累可重用的类和重用已有的类,在开发环境中,除了提供前述的基本软件工具外,还应该提供使用方便的类库编辑工具和浏览工具。其中的类库浏览工具应该具有强大的联想功能。 4. 其他因素 对用户学习面向对象分析、设计和编码技术所能提供的培训服务; 在使用这个面向对象语言期间能提供的技术支持; 能提供给开发人员使用的开发工具、开发平台、发行平台; 对机器性能和内存的需求; 集成已有软件的容易程度等。 12.3 测试策略 测试软件的经典策略是,从“小型测试”开始,逐步过渡到“大型测试”。用软件测试的专业术语描述,就是从单元测试开始,逐步进入集成测试,最后进行确认测试和系统测试。 对于传统的软件系统来说,单元测试集中测试最小的可编译的程序单元(过程模块),一旦把这些单元都测试完之后,就把它们集成到程序结构中去;在集成过程中还应该进行一系列的回归测试,以发现模块接口错误和新单元加入到程序中所带来的副作用;最后,把软件系统作为一个整体来测试,以发现软件需求错误。测试面向对象软件的策略与上述策略基本相同,但也有许多新特点。 12.3.1 面向对象的单元测试 当考虑面向对象的软件时,单元的概念改变了。“封装”导致了类和对象的定义,这意味着类和类的实例(对象)包装了属性(数据)和处理这些数据的操作(也称为方法或服务)。 现在,最小的可测试单元是封装起来的类和对象。 测试面向对象软件时,不能再孤立地测试单个操作,而应该把操作作为类的一部分来测试。例如,假设有一个类层次,操作X在超类中定义并被一组子类继承,每个子类都使用操作X,但是,X调用子类中定义的操作并处理子类的私有属性。由于在不同的子类中使用操作X的环境有微妙的差别,因此有必要在每个子类的语境中测试操作X。这就说明,当测试面向对象软件时,传统的单元测试方法是不适用的,不能再在“真空”中(即孤立地)测试单个操作。 12.3.2 面向对象的集成测试 因为在面向对象的软件中不存在层次的控制结构,传统

文档评论(0)

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

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

1亿VIP精品文档

相关文档