基于运行时行为自动纠正应用程序制造技术

技术编号:7868261 阅读:174 留言:0更新日期:2012-10-15 02:30
本发明专利技术公开了基于应用程序的运行时行为自动纠正应用程序的系统和相关联方法。事件表示其中问题对象产生用户或标签管理工具没有预期的结果的应用程序的执行。自动分析问题对象的事件流。应用程序的实际运行得到前向数据流,根据问题对象的预期结果模拟至少一个反向数据流。比较前向数据流和反向数据流以创建问题对象的候选故障列表。随后设计纠正候选故障列表的技术规范和替代应用程序的解决方案。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术公开了一种系统和相关联的方法,用于基于软件应用程序的运行时行为(runtime behavior)自动分析和纠正程序代码和/或数据。
技术介绍
传统调试工具只关注软件应用程序的静态结构和逻辑。为了改正某些类型的错误,传统调试工具从基于知识的系统中搜索相似的错误和相对应的解决方案。因为传统调试工具在调试软件应用程序的运行时事件方面功能有限,所以软件应用程序的故障查找是费力的,并且软件应用程序的维护成本高昂
技术实现思路
按照本专利技术的一个实施例,一种基于应用程序的运行时行为自动纠正应用程序的方法包括计算机的处理器从用户或标签管理工具(ticketing tool)接收应用程序的事件的事件细节,其中所述事件涉及至少一个问题对象;从事件细节中识别事件的事件流,其中事件流对应于所述至少一个问题对象的第一问题对象,事件流包括第一问题对象、应用程序内影响第一问题对象的至少一个赋值对象、和其中所述至少一个赋值对象影响第一问题对象的应用程序的至少一个代码语句;通过关于第一问题对象从应用程序的开始直到事件跟踪已经实际执行的事件流的数据值,来创建事件流的前向数据流;通过从第一问题对象的预期结果到第一问题对象的所述至少一个赋值对象的各自初始值,按照与应用程序的实际执行相反的顺序模拟事件流的所述数据值,来创建事件流的至少一个反向数据流;以及所述处理器使用前向数据流和所述至少一个反向数据流生成事件的第一问题对象的候选故障列表。按照本专利技术的一个实施例,一种计算机程序产品包括实施计算机可读程序代码的计算机可读存储单元。该计算机可读程序代码包括当被计算机系统的处理器运行时,实现基于应用程序的运行时行为自动纠正应用程序的方法的指令。按照本专利技术的一个实施例,一种计算机系统包括处理器和与处理器耦合的计算机可读存储单元,其中该计算机可读存储单元包括当被处理器执行时,实现基于应用程序的运行时行为自动纠正应用程序的方法的指令。按照本专利技术的一个实施例,一种支持计算机基础设施的过程(process),所述过程包括为在计算系统中创建、集成、主管、维护和部署计算机可读代码中的至少一个提供至少一个支持服务,其中该代码与计算系统结合能够执行基于应用程序的运行时行为自动纠正应用程序的方法。附图说明图I例示了根据本专利技术的实施例,基于应用程序的运行时行为自动纠正应用程序的系统10。图2是描绘根据本专利技术的实施例,由自动纠正器执行的基于应用程序的运行时行为自动分析和纠正应用程序的方法的流程图。图3是描绘根据本专利技术的实施例,由流分析器执行的自动分析应用程序的流的方法的流程图,其中流分析器是图2中的自动纠正器的第一子模块。图3A是描绘根据本专利技术的实施例,由事件流识别器执行的自动识别导致事件的应用程序的控制流的方法的流程图,其中事件流识别器是图3中的流分析器的第一子模块。图3B是描绘根据本专利技术的实施例,由前向流跟踪器执行的自动跟踪导致事件的应用程序的前向数据流的方法的流程图,其中前向流跟踪器是图3中的流分析器的 第二子模块。图3C是描绘根据本专利技术的实施例,由反向流跟踪器执行的自动跟踪从预期结果值中相反地导出的应用程序的反向数据流的方法的流程图,其中反向流跟踪器是图3中的流分析器的第三子模块。图3D是描绘根据本专利技术的实施例,由故障定位器执行的自动定位应用程序的故障的方法的流程图,其中故障定位器是图3中的流分析器的第四子模块。图4是描绘根据本专利技术的实施例,由应用程序改正器(application fixer)执行的自动纠正应用程序的故障的方法的流程图,其中应用程序改正器是图2中的自动纠正器的第二子模块。图4A是描绘根据本专利技术的实施例,由规范生成器执行的自动生成解决方案的技术规范的方法的流程图,其中规范生成器是图4中的应用程序改正器的第一子模块。图4B是描绘根据本专利技术的实施例,由解决方案生成器执行的依据技术规范自动生成解决方案的方法的流程图,其中解决方案生成器是图4中的应用程序改正器的第二子模块。图5A例示了根据本专利技术的实施例,自动纠正器执行图2的方法的应用程序的伪码。图5B例示了根据本专利技术的实施例,自动纠正器执行图2的方法的应用程序的流程图。图6例示了根据本专利技术的实施例,用于基于应用程序的运行时行为自动纠正应用程序的计算机系统。具体实施例方式图I例示了根据本专利技术的实施例,基于应用程序的运行时行为自动纠正应用程序70的系统10。系统10包括用户21、应用程序支持团队22、标签管理工具(ticketing tool)30、自动纠正器40、和应用程序70。用户21向自动纠正器40提供输入并接收自动纠正器40生成的输出。用户21通过如箭头A所指向标签管理工具30发出标签或通过如箭头C所指将输入直接馈入自动纠正器40中来提供输入。标签指的是应用程序70的问题。标签管理工具30是有助于对应用程序的标签进行记录和状态跟踪的软件工具。应用程序70是出现问题的软件程序。在本说明书中,术语“应用程序(application)”被定义为全面执行应用程序的程序代码和数据。标签管理工具30如箭头B所指根据用户21提供的事件细节将输入提供给自动纠正器40。尤其,传统标签管理工具的例子可以是Radix、Remedy、Manage Now、Peregrine等。到自动纠正器40的输入描述事件。在本说明书中,术语“事件(incident)”被定义为产生用户21没有预期的数据值的应用程序70的任何错误运行。在本说明书中,术语“事件”和“问题”可与术语“标签”交换使用。在本说明书中,输入也被称为事件细节。尤其,事件可以是运行时错误、静态错误、程序错误、和数据错误等。输入包括已经被执行并导致事件的应用程序70的代码语句、代码语句产生事件的数据环境、事件产生的不正确结果、和在执行代码语句时用户21预期的正确结果。在本说明书中,术语“数据环境”被定义为包括代码语句使用的用户数据、系统配置数据等的数据集合。 自动纠正器40从标签管理工具30和/或用户21接收描述事件的输入,并从应用程序70中检索应用程序细节。应用程序细节用箭头E指示。应用程序细节包括应用程序70的代码语句和数据环境。自动纠正器40利用输入和应用程序细节来纠正应用程序70。自动纠正器40包括流分析器50和应用程序改正器60。流分析器50分析应用程序70的前向流与反向流之间的差异。流分析器50包括识别事件流的第一功能单元、跟踪前向数据流的第二功能单元、跟踪反向数据流的第三功能单元、和定位候选故障的第四功能单元。有关流分析器50的细节请参阅下面图3的描述。应用程序改正器60生成解决应用程序70的前向流与反向流之间的差异的解决方案(solution)。这些差异由流分析器50产生的分析结果规定或由应用程序支持团队22提供。应用程序改正器60包括生成解决方案的技术规范的第一功能单元、和按照技术规范生成解决方案的第二功能单元。应用程序改正器60如箭头F所指利用解决方案更新应用程序70。该解决方案包括具有用于替代应用程序70而不产生事件的格式的新代码语句和新数据环境。应用程序改正器60还生成以文本格式对解决方案编制文档(document)的结论(resolution),并将结论提供给标签管理工具30。该结论如箭头D所指。有关应用程序改正器60的细节请参本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2009.10.05 US 12/573,4211.一种基于应用程序的运行时行为自动纠正应用程序的方法,所述方法包括 计算机的处理器从用户或标签管理工具接收应用程序的事件的事件细节,其中所述事件涉及至少一个问题对象; 从事件细节中识别事件的事件流,其中事件流对应于所述至少一个问题对象的第一问题对象,事件流包括第一问题对象、应用程序内影响第一问题对象的至少一个赋值对象、和其中所述至少一个赋值对象影响第一问题对象的应用程序的至少一个代码语句; 通过关于第一问题对象从应用程序的开始直到事件跟踪已经实际执行的事件流的数据值,来创建事件流的前向数据流; 通过从第一问题对象的预期结果到第一问题对象的所述至少一个赋值对象的相应初始值,按照与应用程序的实际执行相反的顺序模拟事件流的所述数据值,来创建事件流的至少一个反向数据流;以及 所述处理器使用前向数据流和所述至少一个反向数据流来生成事件的第一问题对象的候选故障列表。2.如权利要求I所述的方法,所述创建所述至少一个反向数据流包括 将第一问题对象的预期结果分配给事件流中的所述至少一个代码语句的最后代码语句中的第一问题对象; 根据第一问题对象的预期结果重新计算所述至少一个赋值对象; 确定所述至少一个赋值对象具有影响第一问题对象的所述至少一个赋值对象的相应初始值;以及 生成第一问题对象的第一反向数据流。3.如权利要求I所述的方法,所述生成候选故障列表包括 通过比较前向数据流中和所述至少一个反向数据流中的所述至少一个赋值对象的各自值来识别第一问题对象,其中前向数据流中的第一问题对象的第一值不同于第一代码语句中的所述至少一个反向数据流的第一反向数据流中的第一问题对象的第二值; 将第一代码语句识别为第一候选故障; 通过将不同的一组输入值应用于所述至少一个赋值对象来模拟新数据流; 确定新数据流和第一反向数据流的各自值相同;以及 将第一候选故障加入第一问题对象的候选故障列表中。4.如权利要求I所述的方法,所述方法进一步包括 提示第二用户检查前向数据流、所述至少一个反向数据流和候选故障列表,并从第二用户接收第一输入,其中第一输入指示第二用户批准基于前向数据流和所述至少一个反向数据流的所生成候选故障列表,并且其中第二用户被授权更新应用程序; 响应于从第二用户接收到第一输入,使用候选故障列表和应用程序的规范来生成纠正应用程序的事件的技术规范; 按照该技术规范生成解决方案并为用户或标签管理工具生成描述该解决方案的结论; 向第二用户呈现该解决方案并从第二用户接收第二输入,其中第二输入指示第二用户批准该解决方案;以及 响应于从第二用户接收到第二输入,利用该解决方案更新应用程序使得应用程序无事件地运行,并且将该结论传送给用户或标签管理工具。5.如权利要求4所述的方法,所述生成技术规范包括 检索包括第一问题对象的候选故障列表的至少一个候选故障列表并检索应用程序的规范; 从所述至少一个候选故障列表中识别事件的源头; 设计源头的替代物,其中该替代物是从由如下组成的群体中选择的新数据对象、新代码语句及其组合;以及 将源头和替代物加入事件的技术规范中。6.一种计算机程序产品,包括 具有实施在其中的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码包括基于应用程序的运行时行为自动纠正应用程序的指令,所述纠正包括 从用户或标签管理工具接收应用程序的事件的事件细节,其中所述事件涉及至少一个问题对象; 从事件细节中识别事件的事件流,其中事件流对应于所述至少一个问题对象的第一问题对象,事件流包括第一问题对象、应用程序内影响第一问题对象的至少一个赋值对象、和其中所述至少一个赋值对象影响第一问题对象的应用程序的至少一个代码语句; 通过关于第一问题对象从应用程序的开始直到事件跟踪已经实际执行的事件流的数据值,来创建事件流的前向数据流; 通过从第一问题对象的预期结果到第一问题对象的所述至少一个赋值对象的相应初始值,按照与应用程序的实际执行相反的顺序模拟事件流的所述数据值,来创建事件流的至少一个反向数据流;以及 使用前向数据流和所述至少一个反向数据流来生成事件的第一问题对象的候选故障列表。7.如权利要求6所述的计算机程序产品,所述创建所述至少一个反向数据流包括 将第一问题对象的预期结果分配给事件流中的所述至少一个代码语句的最后代码语句中的第一问题对象; 根据第一问题对象的预期结果重新计算所述至少一个赋值对象; 确定所述至少一个赋值对象具有影响第一问题对象的所述至少一个赋值对象的相应初始值;以及 生成第一问题对象的第一反向数据流。8.如权利要求6所述的计算机程序产品,所述生成候选故障列表包括 通过比较前向数据流和所述至少一个反向数据流中的所述至少一个赋值对象的各自值来识别第一问题对象,其中前向数据流中的第一问题对象的第一值不同于第一代码语句中的所述至少一个反向数据流的第一反向数据流中的第一问题对象的第二值; 将第一代码语句识别为第一候选故障; 通过将不同的一组输入值应用于所述至少一个赋值对象来模拟新数据流; 确定新数据流和第一反向数据流的各自值相同;以及 将第一候选故障加入第一问题对象的候选故障列表中。9.如权利要求6所述的计算机程序产品,所述纠正进一步包括提示第二用户检查前向数据流、所述至少一个反向数据流和候选故障列表,并从第二用户接收第一输入,其中第一输入指示第二用户批准基于前向数据流和所述至少一个反向数据流的所生成候选故障列表,并且其中第二用户被授权更新应用程序; 响应于从第二用户接收到第一输入,使用候选故障列表和应用程序的规范生成纠正应用程序的事件的技术规范; 按照该技术规范生成解决方案和为用户或标签管理工具生成描述该解决方案的结论; 向第二用户呈现该解决方案并从第二用户接收第二输入,其中第二输入指示第二用户批准该解决方案;以及 响应于从第二用户接收到第二输入,利用该解决方案更新应用程序使得应用程序无事件地运行,并且将该结论传送给用户或标签管理工具。10.如权利要求9所述的计算机程序产品,所述生成技术规范包括 检索包括第一问题对象的候选故障列表的至少一个候选故障列表并检索应用程序的规范; 从所述至少一个候选故障列表中识别事件的源头; 设计源头的替代物,其中该替代物是从由如下组成的群体中选择的新数据对象、新代码语句及其组合;以及 将源头和替代物加入事件的技术规范中。11.一种包括处理器和与...

【专利技术属性】
技术研发人员:A·高什
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1