验证应用程序全球化问题的系统和方法技术方案

技术编号:2845619 阅读:190 留言:0更新日期:2012-04-11 18:40
提供用全球化规则验证应用程序的全球化问题的系统和方法,该系统包括:全球化规则表示部分,将全球化规则实现为XML定义和探测器定义;应用程序运行部分,运行将要验证其全球化问题的应用程序以产生应用程序的运行环境;应用程序静态分析部分,借助于全球化规则的XML定义,在应用程序源代码中搜索语法方面的全球化问题;应用程序动态分析部分,借助于全球化规则的探测器定义,对应用程序的运行环境进行动态分析以搜索运行环境中语义方面的全球化问题;以及验证矩阵部分,控制上述各部分以根据全球化规则确定的执行顺序验证应用程序的全球化问题。通过静态分析和动态分析间的交互,补救静态分析和动态分析的不足,从而降低开发者需要调查的警告数量。

【技术实现步骤摘要】

本专利技术涉及应用程序验证系统和方法,具体地说,本专利技术涉及借助于一种全球化规则验证矩阵验证应用程序的全球化问题的计算机系统和方法,以及存储执行所述方法的步骤的计算机可读程序的计算机产品。
技术介绍
IBM软件产品需要满足列出在全球化白皮书(Globalization Whitepaper)和全球化体系结构规则(Globalization Architecture Imperative)中的全球化需求,以服务全球市场。然而,IBM产品中的很多全球化的问题很难轻易地在开发阶段发现。早先在全球化验证测试(Globalization Verification Test)和翻译验证测试(Translation Verification Test)过程中逃脱检测的缺陷不但会引起严重的返工,而且也会显著地增加开发成本。因此,需要帮助开发者在开发阶段中,早早地发现全球化问题,以利于后期开发工作。全球化验证测试和和翻译验证测试的传统方法主要有以下两种,它们的一个共同目的是为了降低开发者不得不调查的源代码警告的数量。第一种方法是使用静态分析技术在应用程序源代码中搜索语法方面的全球化问题(syntactic globalization issues)。第二种方法是使用动态分析技术搜索运行环境中语义方面的全球化问题(semantic runtime globalization issues)。这方面的已有技术可以在诸如http://www-306.ibm.com/software/awdtools/developer/application/index.html之类的网站上找到。目前,存在多种用于静态分析或动态分析的解决方案。然而,几乎所有的静态分析都有如下的局限性难以了解应用程序的运行环境,并且难以确定目标方法的调用顺序。而所述动态分析也存在局限性难以了解应用程序的整个逻辑,动态分析依赖于分析应用程序所执行的路径,并且不能覆盖整个应用程序逻辑。而所述验证矩阵使用静态分析、动态分析和这两种方法的混合,以使得通过这两者方法的相互作用更精确地了解所述问题、消除虚假警告并获得验证范围的最大限度。因此,有必要开发出更好的、用于全球化验证测试和和翻译验证测试的计算机系统和方法。
技术实现思路
有鉴于此,专利技术人从全球化开发的最优方法总结出,全球化规则集由问题实例和解决方案建议确定。基于这些规则,创建全球化规则验证矩阵。这种矩阵通常用于帮助开发者在开发阶段中,早早地发现全球化问题。这种矩阵也可以用于后期开发。本专利技术的一个目的就是利用所述的全球化规则验证矩阵,验证应用程序的全球化问题的计算机系统和方法,该系统和方法通过所述全球化规则验证矩阵,使对应用程序的静态分析、动态分析混合,以通过这两者方法的相互作用更精确地了解所存在的全球化问题、消除纯粹利用静态分析或动态分析所出现的虚假警告并获得最大限度的验证范围。为了实现本专利技术的上述和其他目的,根据本专利技术的一个方面,提供一种利用全球化规则验证应用程序的全球化问题的计算机系统,该系统包括全球化规则表示部分,其用于将所述全球化规则实现为XML定义和探测器定义;应用程序静态分析部分,其使用静态分析技术,借助于所述全球化规则表示部分所实现的全球化规则的XML定义,在应用程序源代码中搜索语法方面的全球化问题;应用程序运行部分,用于运行将要验证其全球化问题的应用程序,以产生应用程序的运行环境;应用程序动态分析部分,其使用动态分析技术,借助于所述全球化规则表示部分所实现的全球化规则的探测器定义,对应用程序的运行环境进行动态分析,以搜索运行环境中语义方面的全球化问题;以及验证矩阵部分,其用于控制所述全球化规则表示部分、所述应用程序静态分析部分、所述应用程序动态分析部分和所述应用程序动态分析部分,以根据由所述全球化规则所确定的执行顺序来验证应用程序的全球化问题。为了实现本专利技术的上述和其他目的,根据本专利技术的另一个方面,提供一种在计算机系统中利用全球化规则验证应用程序的全球化问题的方法,包括如下步骤存储将要用于验证的全球化规则,并由这些全球化规则定义确定静态分析引擎和动态分析引擎的执行顺序,所述全球化规则定义是通过记录下全球化专家输入的执行顺序和所需要的类名、方法名和行号构成的;根据所确定的执行顺序,以及有关于将要用于分析的全球化规则集的相关信息,指令相应的分析引擎执行所述执行顺序所规定的全球化问题的分析;根据作为分析结果的类名、方法名、行号、内容和状态,在静态分析的情况下直接找出与这种规则有关的潜在规则违反,而在动态分析的情况下,先运行要验证全球化问题的应用程序,然后利用与特定的类名对应的测试用例,找出与这种规则有关的某些潜在规则违反;基于所述分析结果和全球化规则实现的另一个规则集是否应该用于动态/静态分析的判断结果,在所述全球化规则实现的另一个规则集可用于动态/静态分析的情况下,接收用于动态/静态分析的全球化规则集,并在动态分析情况下接收测试用例,以使用所接收到的用于动态/静态分析的全球化规则集和/或测试用例来调用相应的动态/静态分析引擎;以及根据作为分析引擎的执行结果的类名、方法名、行号、内容和状态产生报告并呈现给最终用户。为了实现本专利技术的上述和其他目的,根据本专利技术的再一个方面,提供一种计算机产品,用于在其上以计算机可读形式存储计算机程序代码,以使得计算机系统执行所述计算机程序代码来实现步骤存储将要用于验证的全球化规则,并由这些全球化规则定义确定静态分析引擎和动态分析引擎的执行顺序,所述全球化规则定义是通过记录下全球化专家输入的执行顺序和所需要的类名、方法名和行号构成的;根据所确定的执行顺序,以及有关于将要用于分析的全球化规则集的相关信息,指令相应的分析引擎执行所述执行顺序所规定的全球化问题的分析;根据作为分析结果的类名、方法名、行号、内容和状态,在静态分析的情况下直接找出与这种规则有关的潜在规则违反,而在动态分析的情况下,先运行要验证全球化问题的应用程序,然后利用与特定的类名对应的测试用例,找出与这种规则有关的某些潜在规则违反;基于所述分析结果和全球化规则实现的另一个规则集是否应该用于动态/静态分析的判断结果,在所述全球化规则实现的另一个规则集可用于动态/静态分析的情况下,接收用于动态/静态分析的全球化规则集,并在动态分析情况下接收测试用例,以使用所接收到的用于动态/静态分析的全球化规则集和/或测试用例来调用相应的动态/静态分析引擎;以及根据作为分析引擎的执行结果的类名、方法名、行号、内容和状态产生报告并呈现给最终用户。本专利技术的上述解决方案将静态分析的输出与动态分析的输出合并起来解决存在于语义和语法领域中的问题。其主要优点是在静态分析和动态分析之间的双向交互,它补救求了静态分析和动态分析的不足,降低了开发者需要进行调查的警告的数量。此外,在根据本专利技术的优选实施例,函数调用以及静态分析和动态分析之间的交流是自动的。验证矩阵将根据全球化规则定义和扫描情形,自动挑选分析方法。附图说明通过参照附图对本专利技术的优选实施例进行详细描述,可以更好地了解有关本专利技术结构和操作的细节,在附图中图1是根据本专利技术的、利用全球化规则的验证矩阵验证应用程序的全球化问题的体系结构的示意图;图2是验证矩阵部分的详细结构的示意图;图3图本文档来自技高网
...

【技术保护点】
一种利用全球化规则验证应用程序的全球化问题的计算机系统,包括:全球化规则表示部分,其用于将所述全球化规则实现为XML定义和探测器定义;应用程序静态分析部分,其使用静态分析技术,借助于所述全球化规则表示部分所实现的全球化规则的XML定义,在应用程序源代码中搜索语法方面的全球化问题;应用程序运行部分,用于运行将要验证其全球化问题的应用程序,以产生应用程序的运行环境;应用程序动态分析部分,其使用动态分析技术,借助于所述全球化规则表示部分所实现的全球化规则的探测器定义,对应用程序的运行环境进行动态分析,以搜索运行环境中语义方面的全球化问题;以及验证矩阵部分,其用于控制所述全球化规则表示部分、所述应用程序静态分析部分、所述应用程序动态分析部分和所述应用程序动态分析部分,以根据由所述全球化规则所确定的执行顺序来验证应用程序的全球化问题。

【技术特征摘要】
1.一种利用全球化规则验证应用程序的全球化问题的计算机系统,包括全球化规则表示部分,其用于将所述全球化规则实现为XML定义和探测器定义;应用程序静态分析部分,其使用静态分析技术,借助于所述全球化规则表示部分所实现的全球化规则的XML定义,在应用程序源代码中搜索语法方面的全球化问题;应用程序运行部分,用于运行将要验证其全球化问题的应用程序,以产生应用程序的运行环境;应用程序动态分析部分,其使用动态分析技术,借助于所述全球化规则表示部分所实现的全球化规则的探测器定义,对应用程序的运行环境进行动态分析,以搜索运行环境中语义方面的全球化问题;以及验证矩阵部分,其用于控制所述全球化规则表示部分、所述应用程序静态分析部分、所述应用程序动态分析部分和所述应用程序动态分析部分,以根据由所述全球化规则所确定的执行顺序来验证应用程序的全球化问题。2.根据权利要求1所述的验证应用程序的全球化问题的计算机系统,其中,所述验证矩阵部分还将分析规则覆盖,并产生分析报告。3.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,所述执行顺序包括静态在先、只有静态、动态在先和只有动态,静态在先表示先由所述应用程序静态分析部分对应用程序执行静态分析,然后由所述应用程序动态分析部分执行动态分析,只有静态表示只由所述应用程序静态分析部分对应用程序执行静态分析,动态在先表示先由所述应用程序动态分析部分对应用程序执行动态分析,然后再由所述应用程序静态分析部分执行静态分析,而只有动态表示只由所述应用程序动态分析部分对应用程序执行动态分析。4.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,所述应用程序静态分析部分的静态分析引擎是通用的Rational应用程序分析器。5.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,所述应用程序动态分析部分的动态分析引擎是通用的Rational探测工具包。6.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,在所述执行顺序为静态在先或动态在先的情况下,所述验证矩阵部分控制所述应用程序静态分析部分和所述应用程序动态分析部分,以使得静态分析和动态分析的结果双向交互作用,以识别真实的全球化缺陷,并且消除虚假警告。7.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,所述全球化规则表示部分、所述应用程序静态分析部分、所述应用程序动态分析部分以及所述验证矩阵部分中的部分或全部作为插件包含在Rational应用程序开发器中。8.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,所述验证矩阵部分包括规则管理器,用于存储将要用于验证的全球化规则,所述全球化规则的定义决定了静态分析引擎和动态分析引擎的执行顺序,而全球化规则定义由在全球化专家输入全球化规则时记录下的执行顺序和所需要的类名、方法名、行号构成;分析引擎管理器,用于根据从所述规则管理器查询到的将要用于分析的全球化规则集的相关信息,控制所述应用程序静态分析部分的静态分析引擎和所述应用程序动态分析部分的动态分析引擎的运行,向各分析引擎提供输入并接收各分析引擎的输出,将一个分析引擎的交互信息转换成另一个分析引擎的交互信息,其中,所述交互信息是类名、方法名、行号和规则ID;以及测试用例管理器,用于存储关于用于动态分析的应用程序的所有单元测试用例,以及在应用程序类/方法和单元测试用例之间的映射,以便当所述分析引擎管理器分析特殊类或方法时,从得到关于类或方法的正确的单元测试用例,并执行单元测试用例来开始动态分析。9.根据权利要求1或2所述的验证应用程序的全球化问题的计算机系统,其中,所述验证矩阵部分还包括图形用户界面,用于接受用户输入、进行缺陷监测、定位并产生针对最...

【专利技术属性】
技术研发人员:史蒂文阿特金路易斯扎帕塔王珏黄省江
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1