软件测试解读可视化[1] 软件测试工具
关键字:oo
时下,可视化已成为一个热门话题,笔者在google上用“可视化”为关键词进行搜索,得到符合的条目278万条。我顺次打开浏览,除去不能打开或需要登录(我从不打开这类条目)的条目外,大概阅读了40多条的内容,发现对于可视化的理解比较混乱,不同的理解之间相去甚远,甚至大相径庭。笔者认为,有必要对此进行梳理和归纳,本文就是笔者的一个尝试。
什么是可视化?从字面上理解就是可以看见,但实际上现在人们所说的“可视化”其真实的含义是把本来用文字、数字等表达方式改用图形、图像、动画等方式。
笔者认为,可视化是今后相当长的时期内计算机技术的一个重要发展方向。我们知道,计算机刚刚诞生时,计算机主要用于科学计算,后来发展为数据处理。随着互联网的普及,以及多媒体技术的发展和成熟,图像处理将成为计算机的重要用武之地。而可视化与图像处理是两个互相交叉又相互促进的领域,具有广阔的发展空间。
尽管人们对可视化的认识各异,但从功能上以及从应用主体上看,可以分为三种类型,即软件设计可视化、信息管理可视化和流程可视化。
一、软件设计可视化
(一)软件的图形辅助开发工具
在计算机诞生的初期,可视化就随着软件出现应运而生了。大概还是汇编语言刚问世不久,编程人员就开始绘制流程图来做辅助工具,使得程序设计更加方便快捷。以后,随着编程语言的升级(出现高级语言)和处理对象规模扩大,出现了各种图形辅助工具,例如,图形用户界面技术、可视化操作等。可以说,可视化是伴随着计算机科学和技术的发展与应用而发展起来的。
但在相当长的一段时期内,由于计算机技术的发展和应用的限制,可视化一直处于非常初级的阶段。直到近年来,随着因特网的普及,以及多媒体技术的成熟,才使得可视化技术逐步走向成熟。
(二)可视化建模技术
1、概念
20世纪90年代中期,对象管理组织OMG发布了统一建模语言UML(Unified Modeling Language)。伴随着面向对象技术的发展,可视化建模技术受到越来越多开发人员的追捧,其应用领域也在不断扩大,从传统的软件设计领域扩展到管理业务领域。现在,可视化建模技术已经成为一种成熟的软件开发标准。
一般说来,软件系统,特别是大型软件系统,都是极为复杂的系统。而软件系统最终的表现形式必为可执行代码。而最终可执行代码则更为复杂,包含了更多的细节,以至于再高明的软件人员也难于把握系统的全貌。这时就需要在软件总体构架与最终目标代码之间有一个中间过程,从而保证系统具有健壮性和可理解性。模型是对现实世界的复杂系统的简化和抽象,而可视化模型又可以把复杂模型简单化和直观化。因此,可视化模型就是这个中间过程。由于可视化建模采用面向对象方法,能够实现现实世界直接映射到对象模型之上,可以适应业务需求的不断变化,因此,可视化建模可以帮助软件设计人员加深对系统的认知,做到抓住问题的本质,并且滤掉众多非本质因素,从而有利于问题的解决。
2、意义
从技术实现的角度看可视化建模,可以发现它有很多好处:
一是可以有效管理系统的复杂度。一个现实世界的实体系统,往往是非常复杂的,相应地,它的对象模型经过简化,但其复杂度仍然非常大,有时甚至超出手工的处理能力。面向对象方法的最大优点就是抽象,通过可视化建模的抽象,使得概念系统大为简化,直至达到我们能够理解和处理的程度。特别地,可视化系统是一个层次系统,开发人员可以根据需要了解任何一个层次,粗到系统架构,细到最深层次的细节。
二是可以实现开发人员之间很好的沟通。我们知道,语言和文字是人们进行交流的主要手段,但是,语言和文字往往有歧义性,较难保证交流双方的理解完全一致。所以在工程技术领域,人们更多地是使用各种各样模型进行交流和沟通。因此,可视化模型能够比较好地保证交流者之间对问题理解的一致性。
三是可以提高系统设计的可重用性。可视化建模能够实现每个类的功能单一化和构件化,因而,很多构件都有重用的机会,从而提高系统设计和开发效率,降低成本。
四是增强系统的灵活性。应用可视化技术建立的模型由于其结构清晰、易于被理解,因而,系统比较易于修改和重构。