掌桥专利:专业的专利平台
掌桥专利
首页

计算机软件模块装置、电路装置、用于改进的软件执行监测的装置和方法

文献发布时间:2023-06-19 16:08:01



技术领域

本发明涉及装置、包括计算机软件模块的装置、包括电路的装置、用于提供改进的软件执行监测方式的装置和方法,尤其涉及装置、包括计算机软件模块的装置、包括电路的装置,提供使用神经网络的改进的软件执行监测方式的设备和方法。

背景技术

随着计算机和处理能力的增长,计算机软件的应用和复杂性也在增长。为了开发和确保正确的操作(测试和调试),已经开发了若干技术和工具。调试通常被用于确保软件能被无错误地编译和执行,而测试用于验证软件程序能被执行并产生正确的结果而不会崩溃。用于确保程序正确执行的两种主要技术是(事件)日志记录和跟踪。

日志记录是保存日志的行为,日志文件是记录在操作系统或其他软件运行中发生的事件的文件。事件日志记录为系统管理员提供了对诊断和审核有用的信息。在开发周期的早期经常考虑将被记录的不同类别的事件以及将在事件消息中显示的详细信息。许多事件日志记录技术允许,至或要求,为每一类事件分配一个唯一的“代码”,所述代码被事件日志记录软件或单独的查看器(例如事件查看器)用来格式化和输出人类可读的消息。这有助于定位并允许系统管理员更容易地获取与发生的问题有关的信息。事件日志记录用于记录高级(high-level)信息(经常是失败信息)。

软件跟踪为开发人员提供了对调试有用的信息。该信息既在开发周期期间使用,也在软件发布后使用。跟踪适用于监测低级(low-level)操作,并被嵌入到软件程序的实际代码中。在跟踪中记录的信息指示跟踪来自于哪,这使开发人员能够理解代码是如何执行的。

因此,日志记录和跟踪需要开发人员在其开发之前和其开发期间都分析软件程序,以确保记录相关事件或生成可理解的跟踪。这是一项艰巨的任务,需要大量的开发资源,并且由于主要是人为操作,因此也容易引入错误。此外,需要大量的知识和经验才能正确地分析事件日志和跟踪以能够识别软件程序执行中的错误。

因此,需要一种更有效的方式来提供对软件程序的监测并分析这种监测。

发明内容

发明人已经认识到自动化确实会有利于对软件程序的监测以及对这种监测的分析。发明人还认识到,随着监测变得自动化,日志或跟踪的确切性质不需要是人类开发人员可读的,并且发明人还认识到可以通过深刻改变了所产生的数据的本质而不是传统的分析工具来对其进行利用。如下文所示,这已经提供了一种用于提供自动化监测的极其简单且优雅的方式,解决了如何提供易于实现的可靠监测的问题,该问题是自现代软件程序出现起就已存在的问题,即甚至可以追溯到上个世纪的问题。

发明人还认识到,可用的最先进的分析工具是针对图像分析的,因此建议很好地产生图像作为监测器的输出,该图像可以使用图像分析工具(例如通常用于图像分析的多种神经网络工具和技术)进行分析。

因此,本教导的一个目的是:通过生成视觉或图像日志文件来提供一种提供计算机程序监测的方式,克服或者至少减少或减轻所讨论的问题,其中,所述视觉或图像日志文件使用图像分析工具进行分析,从而利用可用于图像分析的非常先进的技术。

根据一个方面,提供了一种软件监测装置,所述软件监测装置包括控制器,所述控制器被配置为:a)接收软件代码模块;b)将多个探测器引入软件代码模块,每个探测器被布置为在被执行时提供输出;c)执行软件代码模块,根据探测器的输出,生成图像日志文件;d)提供对图像日志文件的图像分析;e)根据图像分析提供预期行为的指示;f)接收实际行为的指示;g)将预期行为的指示所指示的预期行为与实际行为的指示所指示的实际行为进行比较;以及基于比较提供警报。

所述解决方案可以实现为软件解决方案、硬件解决方案、或软件和硬件组件的混合。

在一个实施例中,图像分析工具基于神经网络。

在一个实施例中,控制器还被配置为:b2),在引入多个探测器之后训练图像分析工具。

在一个实施例中,控制器还被配置为:在训练期间调整多个探测器中的至少一个以提供输出,所述输出提供图像分析工具的更高成功率。

在一个实施例中,探测器的输出与图像日志文件的特性有关。

在一个实施例中,控制器还被配置为:提供所述图像分析以识别图像日志文件中的图案,所述图案与预期行为相关联。

在一个这样的实施例中,控制器还被配置为:识别第一图案,所述第一图案与第一预期行为相关联;识别第二图案,所述第二图案与第二预期行为相关联;以及提供第一预期行为的第一指示和第二行为的第二指示。

在一个实施例中,控制器还被配置为:a1)接收第二软件代码模块;b1)将第二多个探测器引入第二软件代码模块,每个探测器被布置为在被执行时提供输出;c1)执行第二软件代码模块,基于第二多个探测器的输出生成第二图像日志文件;d1)提供对第二图像日志文件的图像分析;e1)基于第二图像分析提供第二预期行为的第二指示;g1)将预期行为的指示所指示的预期行为和第二预期行为的第二指示所指示的第二预期行为与实际行为的指示所指示的实际行为进行比较;以及基于比较提供警报。

在一个实施例中,图像分析工具基于对象检测。在一个这样的实施例中,对象检测基于深度神经网络模型。

根据一个方面,提供了一种在软件监测装置中使用的方法,所述方法用于提供如本文所教导的用于软件监测的方法。所述方法包括接收软件代码模块并将多个探测器引入软件代码模块,其中每个探测器被布置为在被执行时提供输出。所述方法还包括:执行软件代码模块或使软件代码模块被执行,基于探测器的输出生成图像日志文件。所述方法还包括:提供对图像日志文件的图像分析,并基于图像分析提供预期行为的指示。所述方法还包括:接收实际行为的指示,并将由预期行为的指示所指示的预期行为与实际行为的指示所指示的实际行为进行比较,并基于比较提供警报。

根据一个方面,提供了一种携带计算机指令的计算机可读介质,所述计算机指令在被加载到软件监测装置的控制器中并由其执行时,使得软件监测装置能够实现根据本文的方法。

根据一个方面,提供了一种根据本文教导的实施例的软件组件(或模块)装置。所述软件组件装置适合在如本文教导的软件监测装置中使用,以进行如本文教导的自动化软件监测。

所述软件组件装置包括:用于接收软件代码模块的软件组件。所述软件组件装置还包括:用于将多个探测器引入软件代码模块的软件组件,其中每个探测器被布置为在被执行时提供输出。所述软件组件装置还包括:用于执行软件代码模块并用于基于探测器的输出生成图像日志文件的软件组件。所述软件组件装置还包括:用于提供对图像日志文件的图像分析的软件组件和用于基于图像分析提供预期行为的指示的软件组件。所述软件组件装置还包括:用于接收实际行为的指示的软件组件和用于将由预期行为的指示所指示的预期行为与实际行为的指示所指示的实际行为进行比较的软件组件。所述软件组件布置还包括:用于基于比较提供警报的软件组件。

根据一个方面,提供了根据本文教导的实施例的用于软件监测的包括电路的装置。所述用于软件监测的包括电路的装置适合在如本文教导的软件监测装置中使用,进行自动化软件监测。

所述用于自动化软件监测的包括电路的装置包括用于接收软件代码模块的电路。所述用于自动化软件监测的包括电路的装置还包括用于将多个探测器引入软件代码模块的电路,其中每个探测器被布置为在被执行时提供输出。所述用于自动化软件监测的包括电路的装置还包括用于执行软件代码模块和用于基于探测器的输出生成图像日志文件的电路。所述用于自动化软件监测的包括电路的装置还包括用于提供对图像日志文件的图像分析的电路和用于基于图像分析提供预期行为的指示的电路。所述用于自动化软件监测的包括电路的装置还包括用于接收实际行为的指示的电路和用于将预期行为的指示所指示的预期行为与实际行为的指示所指示的实际行为进行比较的电路。所述用于自动化软件监测的包括电路的装置还包括用于基于比较提供警报的电路。

本发明的其他实施例和优点将在详细描述中给出。应当注意,这里的教导在软件监测的许多领域中的软件监测装置中找到了用途。

附图说明

下面将参考附图描述本发明的实施例,所述附图说明了如何将本发明的概念化为实践的非限制性示例。

图1A示出了根据本发明实施例的软件监测装置的示意图;

图1B示出了根据本发明实施例的软件监测装置的示意图;

图2示出了根据本文教导的一个实施例的软件监测模型的示意图;

图3示出了根据本发明实施例的一般方法的流程图;

图4示出了根据本文教导的实施例的软件组件装置的组件视图;

图5示出了根据本文教导的实施例的包括电路的装置的组件视图;以及

图6示出了携带计算机指令的计算机可读介质的示意图,所述计算机指令在被加载到装置的控制器中并由其执行时,使得所述装置能够实现本发明的实施例。

具体实施方式

图1A示出了根据本发明实施例的软件监测装置100的示意图。软件监测装置包括控制器101和存储器102。应当注意,软件监测装置100可以包括单个设备或者可以分布在多个设备和装置上。

控制器101被配置为控制软件监测装置100的整体操作。在一个实施例中,控制器101是通用处理器。在一个实施例中,控制器101是图形控制器和通用控制器的组合。如本领域技术人员将理解的,对于如何实现控制器有许多备选方案,例如作为附加或备选可以使用现场可编程门阵列电路、AISIC、GPU等。为了本申请的目的,所有这些可能性和备选将被简称为控制器101。

存储器102被配置为存储数据和计算机可读指令,所述计算机可读指令在被加载到控制器101中时指示如何控制软件监测装置100。存储器102可以包括一个或多个存储器模块、分区、分配、单元或设备,但它们将被认为是同一整体存储器102的部分。可以是一个存储器单元用于存储数据,一个存储器用于通信接口(见下文)来存储设置,等等。如本领域技术人员将理解的,关于如何选择数据应该被存储在哪里存在许多可能性,因此用于软件监测装置100的一般存储器102被视为包括用于本申请目的的任何和所有这样的存储器单元。如本领域技术人员将理解的,关于如何实现存储器存在许多备选方案,例如使用非易失性存储器电路(如EEPROM存储器电路),或使用易失性存储器电路(如RAM存储器电路)。存储器102也可以是较大的存储器分区的分配。为了本申请的目的,所有这样的备选将被简称为存储器102。

在一个实施例中,软件监测装置100还可以包括通信接口103。通信接口可以是有线的和/或无线的。通信接口可以包括若干接口。

在一个实施例中,通信接口包括USB(通用串行总线)接口。在一个实施例中,通信接口包括模拟接口、CAN(控制器局域网)总线接口、I2C(内置集成电路)接口、或其他接口。

在一个实施例中,通信接口包括射频(RF)通信接口。在一个这样的实施例中,通信接口包括蓝牙

在一个实施例中,通信接口103被配置为能够通过上文给出的示例技术中的不止一种技术进行通信。

通信接口103可以被配置为使软件监测装置100能够与其他设备通信,所述其他设备例如是其他软件监测装置100和/或智能手机、互联网平板电脑、平板电脑、或其他计算机。

用户接口104可被包括在软件监测装置100中。附加地或备选地,用户接口104(其至少一部分)可以通过通信接口103远程地被包括在软件监测装置100中,于是用户接口(其至少一部分)不是软件监测装置100中的物理装置,而是通过经由通信接口103通过远程设备(未示出)接收用户输入或提供用户输出来实现。这种远程设备的示例如移动电话手机、平板电脑、或计算机。

图1B示出了根据本发明实施例的软件监测装置100的一个这样的示例的示意图。该示例中的软件监测装置100是台式计算机(或工作站)100,其包括壳体105,在壳体105中容纳了控制器101、存储器102和通信接口103。在该示例中,工作站还设置有包括显示器和键盘的用户接口104。

图2示出了根据本文教导的一个实施例的包括在软件监测装置100中的软件监测模型200的示意图(即,示出了软件监测装置100的处理模块)。软件监测模型200被布置成由根据本文的软件监测装置100的控制器101、根据本文的软件组件装置400、根据本文的包括电路的装置500执行,或被根据本文的方法使用。应该注意,软件监测装置模型的不同部分可以由相应的执行装置的不同部分来执行。

软件监测模型200包括探测器生成器模块210,其被布置为将探测器211引入软件代码模块215的实际代码中。探测器211通常是每次执行探测器211时产生输出212的一段代码。在一个实施例中,探测器211被布置为提供图形数据作为输出212。根据本发明,探测器被自动引入代码中,并位于由探测器生成器模块210自动选择的位置,因此不需要开发者进行手动交互,从而既节省了资源又消除了引入(人为)错误的风险。

而且,由于探测器是自动引入的,因此在引入更多探测器方面的开销与使用人工引入所需的开销相比非常小。由于可以以很少的(如果有的话)附加成本使用更多的探测器,代码可被更全面地覆盖,因此无需如以前的系统中那样了解代码的目的以识别在哪里输入探测器以及探测器的关联输出应该是什么。这显著减少了引入探测器所需的工作量。

软件监测模型200还包括传感器模块220,其被布置为监测软件代码模块215的执行。因此,传感器模块220被布置为接收由探测器211生成的输出212。当探测器211生成输出时,所述输出可被接收,并且传感器模块220被布置为整理所述输出,由此基于接收的输出212提供图像日志文件213。在附加的或作为备选的实施例中,探测器生成器模块210将图像日志文件213提供给传感器模块220。

传感器模块220包括图像分析工具221。由于传感器模块220已经接收到图像日志文件213,图像日志文件经过图像分析工具221以确定图像日志文件213中的图形图案214。图形图案214与用例(例如计算机软件模块215的行为或功能)相关联。由于图形模式214被识别,传感器模块因此能够报告软件代码模块215的预期行为(即关联用例的行为)的指示222。在一个实施例中,图像分析工具221是神经网络,例如卷积神经网络。在一个实施例中,图像分析工具221基于对象检测模型,例如深度学习神经网络。在这样的实施例中,图案214可以被视为要识别的对象。

软件监测模型200还包括监测管理器模块230,其从传感器模块220接收预期行为的指示222。监测管理器模块230还接收软件代码模块215的实际行为的指示216,即软件代码模块215的执行的结果行为的指示。监测管理器模块230被布置为将预期行为的指示222所指示的预期行为与实际行为的指示216所指示的实际行为进行比较,并且如果不匹配,则监测管理器模块230被布置为针对此结果发出警报231。警报是旨在提供关于预期行为与实际行为之间的差异的信息的一个实施例。即使匹配,也可以发出警报,其中,警报是针对此结果的警报。警报还可以提供关于被认为太小以致不能不提供匹配的差异的信息。因此,警报是基于比较提供的。

警报可以是给用户或操作员的外部信令,例如文本、音频和/或视觉输出。备选地或附加地,警报可以是给另一设备的外部信令,例如计算机可读消息或在两个设备之间传输数据的其他方式。这样的警报可以使接收设备发出或提供进一步的警报。备选地或附加地,警报可以是到同一设备的另一模块或组件的内部信令。这样的警报可以使接收方发出或提供进一步的警报。

在一个实施例中,软件监测模型200还包括用于训练图像分析工具221的训练模块225。训练模块225被布置为使用已知输入参数226来执行软件代码模块215。在一个实施例中,输入参数226由训练模块225提供。在一个实施例中,输入参数226被提供给训练模块225并由训练模块225存储,有可能用于重复用例。训练模块225还接收执行的实际行为的指示216并将其作为预期行为222转发给图像分析工具221,从而使图像分析工具221能够将图像日志文件213的图案214与行为进行关联并建立关联图形-行为,使图像分析工具221能够稍后提供与图案214关联的预期行为的指示222。

如图2所示,软件监测模块可被应用于不止一个软件代码模块215。这使得较大的软件包能够被分成若干个较小的软件代码模块,所述较小的软件代码模块可被单独监测,每个由一个传感器模块220监测,作为若干组由若干传感器模块220进行监测,或者其任何组合。

应当注意,图像日志文件213中可以存在不止一个图案214,其方式与图像中可以存在不止一个对象的方式非常相似。因此这里的教导可被用于同时识别不止一个预期行为,并且因此对于监测并行过程也是有用的。

返回到图像日志文件213和图形输出212,在一个实施例中,图形数据可以与日志图像文件中的位置有关。在一个这样的实施例中,图形数据可以与日志图像文件中的这样的位置的特性有关。这样的特性的示例如所述位置的强度、颜色、灰度、对比度或亮度。位置的示例如日志图像文件中的像素、像素组、区域或对象。

在一个实施例中,图像日志文件213是矩阵,其中每个元素对应一个探测器211。这些元素可以被视为对应于图像的特性(强度、颜色、灰度、对比度或亮度)。每次执行探测器211时,元素的值都会增加,从而改变元素的特性。在每个元素对应于相应像素的灰度的一个实施例中,经常执行的探测器211与执行较少的探测器211相比将生成较暗的像素。因此,取决于软件代码模块215的执行方式将产生不同的图像,并且针对不同的用例,不同的图案是可识别的(至少对于图像分析工具221而言是可识别的),所述图案可以与用例的结果相关联。

因此,发明人已经提供了一种自动监测代码的巧妙方式,并且准备要监测的代码,这减少了所需的工作量并完全降低了引入人为错误的风险。这基于放弃日志的概念并改为利用待由高度开发的图像分析工具221来分析的图像的出色实现。

发明人还意识到,由于探测器211生成输出212,从而得到图像日志,因此由于探测器211由软件监测模型200生成,所得到的图像可被控制以达到完美。因此,可以在训练期间调整探测器211,从而产生对图像分析而言最佳的图像日志213(或至少提供最高置信度结果)。如果探测器设置在识别图案方面提供低成功率,则可以调整探测器直到实现高(足够)的成功率,即成功率超过所需成功率。调整探测器的方式取决于当前使用的图像分析工具,并且关于此的详细信息将不在本文中给出,因为给出这些详细信息会使本文难以辨认。

因此,在一个实施例中,训练模块225还被布置为在如何生成输出212方面调整探测器211。因此可以消除或至少显著减少会使图像分析工具221难以成功识别图案214的因素(例如白平衡、焦点等)。

发明人还意识到,由于训练不是基于现实生活,而是基于软件代码模块215,可以控制不同测试用例的分布,使得不同的用例接受相同的训练,这是对图像分析工具的正常训练而言不可得的一个特征。

图3示出了根据本文教导的实施例的一般方法的流程图。该方法利用如本文教导的软件监测装置100。软件监测装置100接收310软件代码模块215并且将多个探测器211引入320软件代码模块215,其中每个探测器211被布置为在被执行时提供输出212。然后软件监测装置100执行330软件代码模块215或使软件代码模块被执行,其基于探测器211的输出212生成340图像日志文件213。软件监测装置100提供350对如上所述的合适格式的图像日志文件213的图像分析221,基于图像分析221提供360预期行为的指示222。软件监测装置100还接收370实际行为的指示216,并将预期行为的指示222所指示的预期行为与实际行为的指示216所指示的实际行为进行比较380,并且如果不匹配,则软件监测装置100提供390警报231。

图4示出了根据本文教导的实施例的软件组件(或模块)装置400的组件视图。软件组件装置400适合在如本文教导的软件监测装置100中使用,以进行如本文教导的自动化软件监测。

软件组件装置400包括用于接收410软件代码模块215的软件组件。软件组件装置400还包括用于将多个探测器211引入420软件代码模块215的软件组件,其中每个探测器211被布置为在被执行时提供输出212。软件组件装置400还包括用于执行430软件代码模块215和用于基于探测器211的输出212生成440图像日志文件213的软件组件。软件组件装置400还包括用于提供450对图像日志文件213的图像分析221的软件组件和用于基于图像分析221提供460预期行为的指示222的软件组件。软件组件装置400还包括用于接收470实际行为的指示216的软件组件和用于将预期行为的指示222所指示的预期行为与实际行为的指示216所指示的实际行为进行比较480的软件组件。软件组件装置400还包括用于在不匹配的情况下提供490警报231的软件组件。

图5示出了根据本文教导的实施例的用于软件监测的包括电路的装置500的组件视图。用于软件监测的包括电路的装置500适合在如本文所教导的软件监测装置100中使用,以进行自动化软件监测。

图5的用于自动化软件监测的包括电路的装置500包括用于接收510软件代码模块215的电路。用于自动化软件监测的包括电路的装置500还包括用于将多个探测器211引入520软件代码模块215的电路,其中每个探测器211被布置为在被执行时提供输出212。用于自动化软件监测的包括电路的装置500还包括用于执行530软件代码模块215和用于基于探测器211的输出212生成540图像日志文件213的电路。用于自动化软件监测的包括电路的装置500还包括用于提供550对图像日志文件213的图像分析221的电路和用于基于图像分析221提供560预期行为的指示222的电路。用于自动化软件监测的包括电路的装置500还包括用于接收570实际行为的指示216的电路和用于将预期行为的指示222所指示的预期行为与实际行为的指示216所指示的实际行为进行比较580的电路。用于自动化软件监测的包括电路的装置500还包括用于在不匹配的情况下提供590警报231的电路。

图6示出了携带计算机指令121的计算机可读介质120的示意图,所述计算机指令121在被加载到软件监测装置100的控制器中并由其执行时,使得软件监测装置100能够实现本发明。

计算机可读介质120可以是有形的,诸如硬盘驱动器或闪存(如USB记忆棒或云服务器)。备选地,计算机可读介质120可以是无形的,例如携带计算机指令的信号,使得计算机指令能够通过网络连接(诸如互联网连接)下载。

在图6的示例中,计算机可读介质120被示为插入计算机盘读取器122中的携带计算机可读计算机指令121的计算机盘120。计算机盘读取器122可以是云服务器123或其他服务器的一部分,或者计算机盘读取器可以连接到云服务器123或其他服务器。云服务器123可以是互联网的一部分或至少连接到互联网。备选地,云服务器123可通过专有或专用连接来连接。在一个示例实施例中,计算机指令被存储在远程服务器123中并且被下载到软件监测装置100的存储器102以供控制器101执行。

计算机盘读取器122还可以或备选地可连接到(或可能插入)软件监测装置100,以便将计算机可读计算机指令121传送给软件监测装置的控制器(可能通过软件监测装置100的存储器)。

图6示出了软件监测装置100通过无线服务器连接(无形的)接收计算机可读计算机指令121的情形和另一软件监测装置100通过有线接口(有形的)接收计算机可读计算机指令121的情形。这使得能够将计算机可读计算机指令121下载到软件监测装置100,从而使得软件监测装置100能够根据如本文公开的发明来操作和实现所述发明。

技术分类

06120114712429