软件测试的面向对象的基本概念和设计思想

1、请简述面向对象方法学中的OOA、OOD和OOP分别有什么含义?

  • OO :Objec - Oriented ,面向对象,基于对象概念,以对象为中心,以类和继承为构造机制,来认识,理解,刻画客观世界和设计,构建相应的软件系统的一门方法;本意-- 模拟人类的思维方式,使开发,维护,修改更加容易.
  • OOA:Object - Oriented Analysis, 面向对象分析,强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析—其实就是进一步对OO进行细化,初步得出OO的方法(或者简单的理解:在得出的文档中对接口粗略定义.
  • OOD:Object - Oriented Design,面向对象设计,OO方法中一个中间过渡环节,其主要作用是对OOA分析的结果进一步的规范和整理,以便能够被OOP直接接受—整理和定义OO的属性和方法.
  • OOP:object - Oriented Programming,把组件的实现和接口分开,并且让组件具有多态性—(抽象,封装,继承,多态)面向接口编程.

2、面向对象软件开发过程中通常需要建立哪些模型?请分别叙述。

  • 通常有面向对象分析、面向对象设计、面向对象实现。
  • 面向对象分析是为了获得对应用问题的理解,其主要任务是抽取和整理用户需求并建立问题域精确模型。
  • 面向对象设计是采用协作的对象、对象的属性和方法说明软件解决方案的一种方式,强调的是定义软件对象和这些软件对象如何协作来满足需求,延续了面向对象分析。
  • 面向对象实现主要强调采用面向对象程序设计语言实现系统。面向对象测试是根据规范说明来验证系统设计的正确性。

3、类与对象之间的常见联系关系有哪些?请分别说明。

  • 依赖关系(Dependency):所谓依赖关系,就是指其中一个对象依赖于另一个对象的某种功能或者属性,就是说,依赖者把被依赖着当作工具来使用
  • 关联关系:所谓关联,某个对象长期持有另一个对象的引用,而且这两者之前的关联是相互的,关联的两个对象彼此之间没有任何的强制性约束,只要两者同意,可以随时解除关联关系, 而且它们在生命周期上没有任何约定, 被关联的对象是共享,它还可以被其他对象关联。
  • 聚合关系:聚合是强版本的关联。 它暗含着一种所属关系以及生命期关系。被聚合的对象还可以再被别的对象关联,所以被聚合对象是可以共享的。虽然是共享的,聚合代表的是一种更亲密的关系。
  • 组合关系: 组合是关系当中的最强版本,它直接要求包含对象对被包含对象的拥有以及包含对象与被包含对象生命期的关系. 被包含的对象还可以再被别的对象关联,所以被包含对象是可以共享的,然而绝不存在两个包含对象对同一个被包含对象的共享
    4、面向对象方法学与传统的方法相比较有哪些相同点和不同之处?
  • 传统方法和面向对象是软件工程的程序设计方法中最本质的思想方法。传统方法编程的基本思想就是把大的程序划分为若干个相对独立、功能简单的程序模块,它以过程为中心, 强调的是过程, 强调功能和模块化, 通过一系列过程的调用和处理完成相应的任务。 面向对象编程以对象为中心, 是对一系列相关对象的操纵, 发送消息给对象,
  • 由对象执行相应的操作并返回结果, 强调的是对象。 理论上, 面向对象的程序设计方法将产生更好的模块内聚和耦合特性, 使得软件更易于重用与维护。在执行效率上来说,传统方法比面向对象方法产生的代码更直接,更高效。从应用的范围看,传统方法适用于数据少而操作多的问题。时间证明对于像操作系统这样的以功能为主的系统,传统方法比较适应它。面向对象方法正好相反,对于数据库,信息管理等以数据为主的而操作较少的系统,用面向对象方法描述要好于传统方法。 在实践中程序设计方法关注软件生命周期的各个环节, 从需求分析、总体设计到编码、测试和维护,同时设计方法在各个阶段需要工具和环境的支撑,

5、请简述面向对象软件开发过程-RUP。

  • RUP是一种软件开发过程框架,基于面向对象符号体系给出了有关软件开发过程组织及实施的指导。该框架体现了个突出特征,即以用况驱动,体系结构为中心以及迭代、增量式开发

6、用面向对象方法开发软件,其特点有哪些?

  • 面向对象编程的优点
  • (1)简单性
    因为面向对象语言里的对象都是反映的真实世界的对象,所以复杂性降低了,而且使网站或软件开发程序的结构也更加清晰。
  • (2)重用性高、开发效率高
    采用OOP可以只编写一次代码,之后在软件或网站开发的整个过程中反复重用。而在非OOP的情况下,则可能要反复多次编写具有同样功能的代码。所以OOP减少了编写应用软件或网站程序代码的总量,从而加快了软件开发的进度,同时降低了程序中的错误量。
  • (3)容易修改和维护
    OOP 的代码可以进行分别修改、扩展或其他维护, 这样就使查找问题、修复问题或者为软件和网站添加新的功能变得简单,同时类内部的改动不会影响软件和网站程序的其他部分。随着项目越来越大,使用OOP的优越性会更多的显示出来,例如,在开发大型的在线应用软件、网站等项目中。相比而言,用面向过程的方法,也可以写出一些可复用的系统,但是这需要组织好系统低层的复杂的数据结构,这对程序员的技术要求就很高。另外,系统版本的升级过程也使面向过程的编程维护更加困难。
  • (4)结构明细、可读性强
    非OOP的语言的源代码可读性较差,要看大量的函数,然后体会其中的关系,OOP通过读函数名和类名可以较快的理解软件或网站开发程序中源代码之间的关系。
  • (5)安全性
    由于封装,隐藏了重要的数据和实现细节,使得软件或网站开发程序代码更加易于维护,更加安全。

猜你喜欢

转载自blog.csdn.net/qq_41961239/article/details/89181416