一种基于计算机视觉的gui软件包装器及其实现方法

文档序号:8339388阅读:713来源:国知局
一种基于计算机视觉的gui软件包装器及其实现方法
【技术领域】
[0001] 本发明涉及一种软件重用技术,属于软件工程领域。
【背景技术】
[0002] 权衡分析是系统设计过程中,比较不同设计方案、分析设计因子对系统响应的影 响、综合多种因素进行优化和决策的过程,如图1所示。典型的权衡分析包括灵敏度分析、 不确定性分析、系统优化等。
[0003] Gn即图形用户接口,是指软件的可见的窗口、图标、菜单、按钮及其它各种可视部 分,这些可视的或图形化的模块称为部件。例如,在个人计算机中常见的CTI部件是一 个对话框的特殊窗口,用户可以通过这个特殊窗口输入文本或进行选择。通过鼠标、键盘等 输入设备操作菜单、按钮等GUI部件,实现与GUI软件的人-机交互。
[0004] 人工操作GUI软件进行权衡分析,一般在一个初始的系统设计方案基础上,通过 手工操作某些⑶I部件调整一个或多个设计因子的水平,生成新的设计方案;然后手工操 作另外的GUI部件调用软件的计算功能,对新的设计方案进行计算;最后通过输出文件或 软件界面上的部件,获得关于系统响应的计算结果。当需要比较多个设计方案,或者设 计方案的调整和计算需要很多人-机交互时,手工多次重复这些操作,不仅耗时、费力、繁 琐,而且容易出错。通过软件驱动⑶I软件自动执行这些重复性操作,尽量减少人-机交 互,分析人员就可以比较更多的方案,将精力集中在设计方案本身的分析与决策,有助于获 得更好的设计,提出更多的建议,提高权衡分析的效率。
[0005] 软件包装器是一种驱动软件自动执行的软件模块,也叫软件适配器,其屏蔽了软 件的具体实现和使用方式,对外提供封装了的软件分析计算功能的接口。软件包装器响应 外部服务请求,包括初始化和终止服务、设计方案生成、计算并获取计算结果等。图2是软 件包装器的一种抽象的功能模型。
[0006] 对命令行接口(CLI)软件或公开应用编程接口(API)的软件,目前已经提出了一 些软件包装器实现方法。其中,对基于文件I/O的CLI软件,通过读写输入文件生成设计方 案,通过解析输出文件获取系统响应,借助操作系统调用执行软件功能。对公开API的软 件,如动态链接库、COM组件、ActiveX组件、JavaBeans等,采用脚本语言或编程方式调用 API,实现软件包装器。
[0007] 上述软件包装器实现方法不适用于⑶I软件,原因是:
[0008] (1)很多⑶I软件特别是一些专业软件不提供源代码,也不提供或不公开API ;
[0009] (2)大多数⑶I软件的功能只能通过人工操作⑶I部件的方式调用,不能通过API 进行调用,也很难利用操作系统的管理功能进行调用;
[0010] (3)在一些⑶I软件中,需要人工操作⑶I部件设置部分或全部设计因子的水平, 以及获取部分或全部系统响应的取值。

【发明内容】

[0011] 本发明针对现有软件包装器实现方法的不足,提出了一种基于计算机视觉的GUI 软件包装器及其实现方法,用该方法实现的⑶I软件包装器不需要⑶I软件提供源码或公 开接口,而且具有平台无关性。
[0012] 为实现上述目的,本发明提供一种基于计算机视觉的⑶I软件包装器及其实现方 法,包括如下步骤:
[0013] (1)整理使用该⑶I软件分析特定设计方案过程中,在设置因子水平、计算系统响 应、获取计算结果时,人工操作的Gn部件,以及这些GUI部件所实现的功能。获取这些GUI 部件的图像,提取其模式特征;
[0014] (2)整理使用该⑶I软件分析特定设计方案过程中,在设置因子水平、计算系统响 应、获取计算结果时,人工辨识的GUI状态,以及这些GUI状态之间的间隔时间。获取这些 GUI状态的图像,提取其模式特征;
[0015] (3)实现屏幕⑶I模式匹配,以根据⑶I模式及其模式特征,判别目标模式是否存 在于屏幕上,以及存在情况下目标模式所占据的屏幕区域;
[0016] (4)分析人工操作该GUI软件的GUI部件实现其功能时,所执行的GUI交互的序 列,通过模拟鼠标和键盘等输入设备,执行这些交互,以实现CTI部件功能的自动执 行;
[0017] (5)研宄人工操作该GUI软件对特定设计方案进行分析计算,包括因子水平设置、 系统响应计算、计算结果获取的过程中,所执行的GUI部件功能的序列,通过驱动这些GUI 部件功能的自动执行,实现GUI软件操作流程的自动化。
[0018] 为实现上述目的,作为本发明的一优选实施例,所实现的⑶I软件包装器采用三 层结构,包括基础层、功能层和应用层。
[0019] 基础层为软件包装器驱动⑶I软件提供基础支持,包括:⑶I软件的启动和卸载, GUI软件运行环境维护,鼠标和键盘等输入设备模拟,典型格式数据的剪贴板操作,指定屏 幕区域的像素截取。基础层与GUI软件无关,但与GUI软件的运行环境有关。
[0020] 功能层为软件包装器驱动⑶I软件提供功能支持,包括:⑶I模式的特征提取、屏 幕Gn模式匹配、图像文本OCR识别、各种Gn部件功能的自动执行模型。功能层的实现与 ⑶I软件及其运行环境无关。
[0021] 应用层提供封装GUI软件的各种分析计算过程的能力,以实现GUI软件操作流程 的自动化,包括:GUI软件操作流程建模引擎,GUI软件操作流程驱动引擎。应用层的实现与 ⑶I软件及其运行环境无关。
[0022] 作为本发明的一优选实施例,利用现有的或自行开发的屏幕截图工具,手工获取 使用GUI软件的过程中所操作的GUI部件的图像,以及所辨识的GUI状态的图像。如果软 件提供了比较完善的使用手册,可根据使用手册获取这些⑶I部件的图像和⑶I状态的图 像。
[0023] 作为本发明的一优选实施例,对歧义GUI部件,获取其图像时可以适当扩大屏幕 区域的范围,使其图像包含该GUI部件的描述性信息或其它辅助性信息,如:环绕该GUI部 件的描述其作用的文字、该GUI部件临近区域内的像素。
[0024] 作为本发明的一优选实施例,以环绕GUI部件的文字作为GUI部件图像的模式特 征。
[0025] 作为本发明的一优选实施例,以所提取的视觉词语集合、图像中的环绕文字作为 GUI状态图像、较大的GUI部件图像的模式特征。
[0026] 作为本发明的一优选实施例,根据CTI模式及其模式特征,采用屏幕匹配方法,判 断目标模式是否出现在屏幕上、以及出现情况下目标模式所占屏幕区域。屏幕模式匹配的 结果是屏幕上的矩形区域。
[0027] 作为本发明的一优选实施例,屏幕模式匹配支持基于约束算子的匹配策略,即模 式匹配在限定的屏幕区域内而非整个屏幕范围内进行。
[0028] 作为本发明的一优选实施例,如果GUI部件图像较小,如图标或按钮的图像,采用 基于归一化交叉验证的模板匹配方法进行屏幕⑶I模式匹配。
[0029] 作为本发明的一优选实施例,如果⑶I部件图像包含文字,通过其环绕文字与OCR 识别的屏幕文字比较进行屏幕⑶I模式匹配。
[0030] 作为本发明的一优选实施例,对GUI状态图像,或者GUI部件图像较大的情况,基 于视觉词语集合和最临近匹配方法进行屏幕⑶I模式匹配。
[0031] 作为本发明的一优选实施例,对动态GUI部件,采用模糊匹配方法,对该GUI部件 图像及其模式特征进行屏幕⑶I模式匹配。
[0032] 作为本发明的一优选实施例,对歧义⑶I部件,采用基于约束算子的匹配策略,即 在限定的屏幕区域内进行屏幕Gn模式匹配。
[0033] 作为本发明的一优选实施例,利用屏幕摩斯和匹配获得的CTI部件所占屏幕 区域信息,通过模拟鼠标和键盘等输入设备执行交互。
[0034] 作为本发明的一优选实施例,采用时间Petri网模型描述实现⑶I部件功能的⑶I 交互序列。用时间Petri网的瞬时转移表示⑶I交互,用时间Petri网的库所表示执行这 些交互所需要的条件和所产生的结果。
[0035] 作为本发明的一优选实施例,将GUI软件包装器驱动GUI软件对设计方案进行 分析计算的流程分为顺序执行的五个阶段:服务初始化、设计因子水平设置(设计方案生 成)、系统响应计算、计算结果获取、服务终止。
[0036] 作为本发明的一优选实施例,采用分层时间Petri网模型描述人工操作⑶I软件 分析特定设计方案的流程。用置换转移表示GUI部件功能,用库所表示实现这些部件功能 所需要的条件和所产生的结果。
[0037] 作为本发明的一优选实施例,将GUI部件功能分为结构性功能和系统性功能。在 分层时间Petri网中,对系统性功能用时延置换转移表示,对结构性功能用瞬时置换转移 表不。
[0038] 作为本发明的一优选实施例,将分层时间Petri网的各模型子页中的端口库所与 父网中的同名库所相互融合,把父网中与子网对应的置换转移用模型子页来代替,形成统 一的时间Petri网系统,模拟⑶I软件包装器驱动⑶I软件对设计方案进行分析计算的完 整流程。
[0039] 作为本发明的一优选实施例,按照时间Petri网的执行规则,驱动GUI软件操作流 程
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1