CN107273288B - 带过去时态的线性时态逻辑性质的有界运行时验证*** - Google Patents
带过去时态的线性时态逻辑性质的有界运行时验证*** Download PDFInfo
- Publication number
- CN107273288B CN107273288B CN201710434655.3A CN201710434655A CN107273288B CN 107273288 B CN107273288 B CN 107273288B CN 201710434655 A CN201710434655 A CN 201710434655A CN 107273288 B CN107273288 B CN 107273288B
- Authority
- CN
- China
- Prior art keywords
- property
- event
- verification
- property specification
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了带过去时态的线性时态逻辑性质的有界运行时验证***,包括:性质挖掘子***,用于在***开发阶段,使用测试数据对***进行仿真运行,以获取***在实际运行中的事件信息并将其存储在事件日志中,并且用于从事件日志中自动地获取***运行过程中具备的带过去时态的所有线性时态逻辑性质并将其存储于可筛选的性质规范集合中;性质验证子***,用于在***运行阶段,对***事件进行监控,并且使用经筛选的性质规范集合对***进行时态性质的检查验证。能够将设计阶段的验证规范运用于运行时验证阶段,方便非***设计和开发人员能够通过自身解决以往解决不了从而必须依靠专业***设计开发人员才能解决的问题,同时也避免了重新开发验证程序。
Description
技术领域
本发明涉及***设计开发和验证领域,尤其是涉及一种带过去时态的线性时态逻辑性质的有界运行时验证***。
背景技术
随着计算机技术的日益普及,计算机***在人类生产生活中的参与度日益提高,计算机***的安全性、可靠性对人类的生产生活影响也日益增强。
为了保证***的安全性、可靠性,在软件***开发、运行的不同阶段,人们采用了各种各样的方式来避免软件***的各类安全性、可靠性问题。
例如在需求设计阶段,设计人员利用模型检测技术,使用迁移***、自动机等模型对***进行建模,并通过逻辑语言对性质进行描述或定义,通过严格地数学推理、证明,检查***模型的性质满足情况,对模型进行性质验证,从而在初步的***分析和设计阶段就能够排除***设计中可能存在的安全性、可靠性问题。
在开发阶段,开发工程师通过开发辅助工具,对程序代码进行静态分析,检查其中所包含的代码风格、语法语义等错误,并通过单元测试、功能测试等多种测试技术对程序进行不同粒度的功能检查。而且,通过使用相应的目标代码检查技术,对编译后的程序进行检查,以消除编译器、连接器引入的安全隐患。
尽管如此,在实际运行环境中,支撑运行的底层***、严苛的物理环境都有可能对程序的实际运行造成影响。因此,为了满足某些关键***的运行时安全性、可靠性需求,有必要在***的运行期间对***进行监控,实现***的运行时验证,以及时检测***的运行错误,帮助相关责任人员积极做出应对,从而增强***的可靠性。
然而,在运行时验证领域中,通常需要人为的设定***规范,即***需要被检查的性质,这大大地影响了验证***的易用性。而且,人为的***规范建立,通常建立于人对***的理解,这里将可能存在一定的理解偏差,继而影响***规范的准确性。再加上人为规范的建立通常通过自然语言进行描述,再经由程序实现,在自然语言的表达过程中,往往具备歧义性,这会导致验证程序的实现也可能存在可靠性问题。
因此,有必要提供一种技术方案,能够将设计阶段的验证规范可选择地运用于运行时验证阶段,方便非***设计开发人员能够通过自身解决以往解决不了从而必须依靠专业***设计开发人员才能解决的问题,同时也避免了重新开发验证程序。
发明内容
为解决以上问题,本发明公开了一种带过去时态的线性时态逻辑性质的有界运行时验证***,包括:性质挖掘子***,用于在***开发阶段,使用测试数据对***进行仿真运行,以获取***在实际运行中的事件信息并将其存储在事件日志中,并且用于从事件日志中自动地获取***运行过程中具备的带过去时态的所有线性时态逻辑性质并将其存储为可筛选的性质规范;性质验证子***,用于在***运行阶段,对***事件进行监控,并且使用经筛选的性质规范集合对***进行时态性质的检查验证。
根据本发明的验证***,其性质挖掘子***包括:事件采集模块,用于根据目标***的环境和具体需求进行事件信息采集;事件日志存储模块,用于存储和查询***事件采集模块所采集的事件信息;性质规范挖掘模块,用于根据所配置的带过去时态的线性时态逻辑性质规范模板,从事件日志存储模块中自动地挖掘出***所具备的带过去时态的线性时态逻辑性质并将其存储于可筛选的性质规范集合中。
根据本发明的验证***,其性质验证子***包括:事件采集模块,用于根据目标***的环境和具体需求进行事件信息采集;事件日志缓存模块,用于在***运行时对有限时间段内的***事件进行缓存,以用于后续的性质验证;有界验证模块,用于在运行时,使用经筛选的性质规范集合,对事件日志缓存模块中的事件序列进行性质检查,以验证***在运行期间是否符合经筛选的性质规范集合中的相关性质。
根据本发明的验证***,其性质挖掘子***的事件采集模块包括:硬件监听单元,其通过硬件实现且被连接在***的传感器部件或数据总线上,用于以固定时间周期对***的数据进行采集;信号转换单元,用于根据需求对采集到的数据进行包括模数转换和精度截取中的至少一种的预处理;事件输出单元,用于将预处理后的数据作为***事件进行输出。
根据本发明的验证***,其性质挖掘子***的事件日志存储模块包括:事件新增单元,用于接收事件输入,将事件与时间信息进行关联后输出对应的事件信息;事件存储单元,用于使用哈希表的形式对事件信息进行存储,以保证***和查询的高效率;事件查询单元,用于提供查询接口,进行事件相关统计信息的精确查询和模糊查询,进行事件出现时间的查询或在特定时间段内的事件出现情况的查询,进行***中所出现的所有事件的查询,为性质规范挖掘提供数据基础。
根据本发明的验证***,其性质挖掘子***的性质规范挖掘模块包括:性质规范模板输入单元,用于提供性质规范模板的输入接口,对性质规范模板进行解析,提取性质规范模板命题变量,为之后的挖掘工作进行预处理操作;性质规范挖掘单元,用于将提取到的命题变量替换为具体的事件,从而将一个性质规范模板转换为一个性质规范实例,当该性质规范实例所定义的性质在事件日志存储模块中的事件序列中的支持度或置信度中的至少一种满足用户所设定的阈值时,将该性质规范实例判定为具有参考价值的性质规范实例,并将其存储于可筛选的性质规范集合中;性质规范输出单元,用于输出可筛选的性质规范集合。
根据本发明的验证***,其性质验证子***的事件采集模块与性质挖掘子***的事件采集模块功能相似,只是工作阶段不同,而且,前者所采集的信息范围小于等于后者所采集的信息范围。
根据本发明的验证***,其性质验证子***的事件日志缓存模块与性质挖掘子***的事件日志存储模块功能相似,只是工作阶段不同,前者只用于支撑实时的事件验证操作,无须记录全部的事件日志,存储量较小。
根据本发明的验证***,其性质验证子***的有界验证模块包括:性质规范输入单元,用于提供性质规范的输入接口,以接收工程师筛选后的经筛选的性质规范集合,解析性质规范,对性质规范进行预处理操作;性质验证单元,用于根据经预处理的性质规范验证性质在事件日志缓存模块内的事件序列中的满足情况,在验证过程之中,根据需要从事件日志缓存模块中查询事件信息;结果输出单元,用于在性质不满足经预处理的性质规范时,将判断结果、相关性质和相关的日志信息进行输出。
结合上文中公开的带过去时态的线性时态逻辑性质的有界运行时验证***,本发明还公开了一种带过去时态的线性时态逻辑性质的有界运行时验证方法,包括:步骤1:通过性质挖掘子***,在***开发阶段,使用测试数据对***进行仿真运行,以获取***在实际运行中的事件信息并将其存储在事件日志中,并且从事件日志中自动地获取***运行过程中具备的带过去时态的所有线性时态逻辑性质并将其存储于可筛选的性质规范集合中;步骤2:通过性质验证子***,在***运行阶段,对***事件进行监控,并且使用经筛选的性质规范集合对***进行时态性质的检查验证。
根据本发明的验证方法,其步骤1包括:步骤1-1:通过事件采集模块,根据目标***的环境和具体需求进行事件信息采集;步骤1-2:通过事件日志存储模块,存储和查询***事件采集模块所采集的事件信息;步骤1-3:通过性质规范挖掘模块,根据所配置的带过去时态的线性时态逻辑性质规范模板,从事件日志存储模块中自动地挖掘出***所具备的带过去时态的线性时态逻辑性质并将其存储于可筛选的性质规范集合中。
根据本发明的验证方法,其步骤2包括:步骤2-1:通过事件采集模块,根据目标***的环境和具体需求进行事件信息采集;步骤2-2:通过事件日志缓存模块,在***运行时对有限时间段内的***事件进行缓存,以用于后续的性质验证;步骤2-3:通过有界验证模块,在运行时,使用经筛选的性质规范集合,对事件日志缓存模块中的事件序列进行性质检查,以验证***在运行期间是否符合经筛选的性质规范集合中的相关性质。
根据本发明的验证方法,其步骤1-1包括:通过硬件监听单元,以固定时间周期对***的数据进行采集;通过信号转换单元,根据需求对采集到的数据进行包括模数转换和精度截取中的至少一种的预处理;通过事件输出单元,将预处理后的数据作为***事件进行输出。
根据本发明的验证方法,其步骤1-2包括:通过事件新增单元,接收事件输入,将事件与时间信息进行关联后输出对应的事件信息;通过事件存储单元,使用哈希表的形式对事件信息进行存储,以保证***和查询的高效率;通过事件查询单元,提供查询接口,进行事件相关统计信息的精确查询和模糊查询,进行事件出现时间的查询或在特定时间段内的事件出现情况的查询,进行***中所出现的所有事件的查询,为性质规范挖掘提供数据基础。
根据本发明的验证方法,其步骤1-3包括:通过性质规范模板输入单元,提供性质规范模板的输入接口,对性质规范模板进行解析,提取性质规范模板中的命题变量,为之后的挖掘工作进行预处理操作;通过性质规范挖掘单元,将提取到的命题变量替换为具体的事件,从而将一个性质规范模板转换为一个性质规范实例,当该性质规范实例所定义的性质在事件日志存储模块中的事件序列中的支持度或置信度中的至少一种满足用户所设定的阈值时,将该性质规范实例判定为具有参考价值的性质规范实例,并将其存储于可筛选的性质规范集合中;通过性质规范输出单元,输出可筛选的性质规范集合。
根据本发明的验证方法,其步骤2-1与步骤1-1相似,只是工作阶段不同,而且,通过前者所采集的信息范围小于等于通过后者所采集的信息范围。
根据本发明的验证方法,其步骤2-2与步骤1-2相似,只是工作阶段不同,前者只用于支撑实时的事件验证操作,无须记录全部的事件日志,存储量较小。
根据本发明的验证方法,其步骤2-3包括:通过性质规范输入单元,提供性质规范的输入接口,接收工程师筛选后的经筛选的性质规范集合,解析性质规范,对性质规范进行预处理操作;通过性质验证单元,根据经预处理的性质规范验证性质在事件日志缓存模块内的事件序列中的满足情况,在验证过程之中,根据需要从事件日志缓存模块中查询事件信息;通过结果输出单元,在性质不满足经预处理的性质规范时,将判断结果、相关性质和相关的日志信息进行输出。
本发明的技术方案通过结合模型检测中的性质形式化描述技术,能够从***的运行日志中自动地挖掘各种事件之间所具备的线性时序关系,获取***特定的运行规律,以推测出软件程序中具备的带过去时态的线性时态逻辑性质,经过工程师的筛选后,挑选出的性质,能够自动地在***运行期间被验证。
与以往的验证***不同的是:第一,***规范需要的性质可以自动挖掘,不需要人为设定,人们只需要从自动挖掘的结果中选择他们认为是正确的、有必要验证的性质即可;第二,规范的验证过程不需要再实现相应的验证逻辑,只要是挖掘出来的性质,都是带过去时态的线性时态逻辑性质,直接可以用模型检测技术进行验证。整个***需要人参与的部分,只有性质筛选部分。极大的提高了***的自动化程度,使得***具有极高的可用性。
因此,本发明的技术方案能够将设计阶段的验证规范可选择地运用于运行时验证阶段,方便非***设计开发的其他人员能够通过自身解决以往解决不了从而必须依靠非常专业的***设计开发人员才能解决的问题,同时也避免了重新开发验证程序。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***的结构图;
图2示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的事件采集模块的结构图;
图3示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的事件日志存储模块的结构图;
图4示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的性质规范挖掘模块的结构图;
图5示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的有界验证模块的结构图;
图6示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***的结构图。
如图1所示,有界运行时验证***包括性质挖掘子***和性质验证子***。
性质挖掘子***用于在***开发阶段,使用测试数据对***进行仿真运行,以获取***在实际运行中的事件信息并将其存储在事件日志中,并且用于从事件日志中自动地获取***运行过程中具备的带过去时态的线性时态逻辑性质。
性质验证子***用于在***运行阶段,对***事件进行监控,并且使用经筛选的性质规范集合对***进行时态性质的检查验证。
需要了解的是,对于***而言,线性时态逻辑中用于定义性质的逻辑公式就是性质规范,由基础的原子命题与逻辑连接词组合而成。线性时态逻辑可以用来定义***中多个事件之间时间顺序关系的约束,从而定义与时间相关的性质。带过去时态的线性时态逻辑与一般的线性时态逻辑不同,它还包含了描述过去时态的逻辑连接词,从而可以定义与过去时间相关的性质,从而可以直观地描述运行时验证所要验证的性质,因而非常适用于运行时验证的应用。
可选地,如图1所示,有界运行时验证***的性质挖掘子***可以包括事件采集模块、事件日志存储模块和性质规范挖掘模块。
事件采集模块用于根据目标***的环境和具体需求进行事件信息采集。
事件日志存储模块用于将***事件采集模块所采集的事件进行记录存储和查询,并对外提供有关事件信息的查询功能。
性质规范挖掘模块用于根据所配置的带过去时态的线性时态逻辑性质规范模板,从事件日志存储模块中自动地挖掘出***所具备的带过去时态的线性时态逻辑性质并将其存储于可筛选的性质规范集合中。
需要了解的是,一个模板实际也是一个逻辑公式,只不过其中的原子命题被替换为了变量。
图2示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的事件采集模块的结构图。
可选地,如图2所示,性质挖掘子***的事件采集模块包括硬件监听单元、信号转换单元和事件输出单元。
硬件监听单元通过硬件实现且被连接在***的传感器部件或数据总线上,用于以固定时间周期对***的数据进行采集。
信号转换单元用于根据需求对采集到的数据进行预处理,例如模数转换、精度截取等等。
事件输出单元用于将预处理后的数据作为***事件进行输出。
图3示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的事件日志存储模块的结构图。
可选地,如图3所示,性质挖掘子***的事件日志存储模块包括事件新增单元、事件存储单元和事件查询单元。
事件新增单元用于接收事件输入,将事件与时间信息进行关联后输出对应的事件信息。
事件存储单元用于使用哈希表的形式对事件信息进行存储,以保证***和查询的高效率。
事件查询单元用于提供查询接口,进行事件相关统计信息的精确查询和模糊查询,进行事件出现时间的查询或在特定时间段内的事件出现情况的查询,进行***中所出现的所有事件的查询,为性质规范挖掘提供数据基础。
图4示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的性质规范挖掘模块的结构图。
如图4所示,性质挖掘子***的性质规范挖掘模块包括性质规范模板输入单元、性质规范挖掘单元和性质规范输出单元。
性质规范模板输入单元用于提供性质模板的输入接口,对性质规范模板进行解析,提取性质规范模板命题变量,为之后的挖掘工作进行预处理操作。
性质规范挖掘单元,用于将提取到的命题变量替换为具体的事件,从而将一个性质规范模板转换为一个性质规范实例,通过验证该性质规范实例在事件日志中的支持情况,以一定的阈值作为判断标准,确定该性质规范实例是否为有参考价值的性质。
性质规范输出单元用于将具有参考价值的性质规范实例作为性质规范进行输出。
如上所述,当模板中的命题变量被替换为具体的命题(即事件)时,就成为了一个性质规范模板的实例(即上述性质规范实例)。
可选地,如图1所示,有界运行时验证***的性质验证子***可以包括:事件采集模块、事件日志缓存模块和有界验证模块。
事件采集模块用于根据目标***的环境和具体需求进行事件信息采集。
事件日志缓存模块用于在***运行时对有限时间段内的***事件进行缓存,以用于后续的性质验证。
有界验证模块用于在运行时,使用经筛选的性质规范集合,对事件日志缓存模块中的事件序列进行性质检查,以验证***在运行期间是否符合经筛选的性质规范集合中的相关性质。
可选地,性质验证子***的事件采集模块与性质挖掘子***的事件采集模块功能相似,只是工作阶段不同,而且,前者所采集的信息范围小于等于后者所采集的信息范围。
可选地,性质验证子***的事件日志缓存模块与性质挖掘子***的事件日志存储模块功能相似,只是工作阶段不同,前者只用于支撑实时的事件验证操作,无须记录全部的事件日志,存储量较小。
图5示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证***中的有界验证模块的结构图。
可选地,如图5所示,性质验证子***的有界验证模块,包括性质规范输入单元、性质验证单元和结果输出单元。
性质规范输入单元用于提供性质规范的输入接口,以接收工程师筛选后的经筛选的性质规范集合,解析性质规范,对性质规范进行预处理操作。
性质验证单元用于根据经预处理的性质规范验证性质在事件日志缓存模块内的事件序列中的满足情况,在验证过程之中,根据需要从事件日志缓存模块中查询事件信息。
结果输出单元用于在性质不满足经预处理的性质规范时,将判断结果、相关性质和相关的日志信息进行输出。
另外,结合图1所示的带过去时态的线性时态逻辑性质的有界运行时验证***,还公开了一种带过去时态的线性时态逻辑性质的有界运行时验证方法。
图6示出了根据本发明实施例的带过去时态的线性时态逻辑性质的有界运行时验证方法的流程图。
如图6所示,该验证方法包括以下步骤:
步骤1:通过性质挖掘子***,在***开发阶段,使用测试数据对***进行仿真运行,以获取***在实际运行中的事件信息并将其存储在事件日志中,并且从事件日志中自动地获取***运行过程中具备的带过去时态的所有线性时态逻辑性质并将其存储于可筛选的性质规范集合中。
步骤2:通过性质验证子***,在***运行阶段,对***事件进行监控,并且使用经筛选的性质规范集合对***进行时态性质的检查验证。
更具体地,结合图1所示的性质挖掘子***的结构图,该验证方法的步骤1包括以下步骤:
步骤1-1:通过事件采集模块,根据目标***的环境和具体需求进行事件信息采集。
步骤1-2:通过事件日志存储模块,存储和查询***事件采集模块所采集的事件信息。
步骤1-3:通过性质规范挖掘模块,根据所配置的带过去时态的线性时态逻辑性质规范模板,从事件日志存储模块中自动地挖掘出***所具备的带过去时态的线性时态逻辑性质并将其存储于可筛选的性质规范集合中。
更具体地,结合图1所示的性质验证子***的结构图,该验证方法的步骤2包括以下步骤:
步骤2-1:通过事件采集模块,根据目标***的环境和具体需求进行事件信息采集。
步骤2-2:通过事件日志缓存模块,在***运行时对有限时间段内的***事件进行缓存,以用于后续的性质验证。
步骤2-3:通过有界验证模块,在运行时,使用经筛选的性质规范集合,对事件日志缓存模块中的事件序列进行性质检查,以验证***在运行期间是否符合经筛选的性质规范集合中的相关性质。
更具体地,结合如图2所示的根据本发明的有界运行时验证***中的事件采集模块的结构图,根据本发明的验证方法的步骤1-1包括以下步骤:
通过硬件监听单元,以固定时间周期对***的数据进行采集。
通过信号转换单元,根据需求对采集到的数据进行包括模数转换和精度截取中的至少一种的预处理。
通过事件输出单元,将预处理后的数据作为***事件进行输出。
而且,根据本发明的验证方法的步骤2-1与步骤1-1相似,只是工作阶段不同,而且,通过步骤2-1所采集的信息范围小于等于通过步骤1-1所采集的信息范围。
更具体地,结合如图3所示的根据本发明的有界运行时验证***中的事件日志存储模块的结构图,根据本发明的验证方法的步骤1-2包括以下步骤:
通过事件新增单元,接收事件输入,将事件与时间信息进行关联后输出对应的事件信息。
通过事件存储单元,使用哈希表的形式对事件信息进行存储,以保证***和查询的高效率。
通过事件查询单元,提供查询接口,进行事件相关统计信息的精确查询和模糊查询,进行事件出现时间的查询或在特定时间段内的事件出现情况的查询,进行***中所出现的所有事件的查询,为性质规范挖掘提供数据基础。
而且,根据本发明的验证方法的步骤2-2与步骤1-2相似,只是工作阶段不同,步骤2-2只用于支撑实时的事件验证操作,无须记录全部的事件日志,存储量较小。
更具体地,结合如图4所示的根据本发明的有界运行时验证***中的性质规范挖掘模块的结构图,根据本发明的验证方法的步骤1-3包括以下步骤:
通过性质规范模板输入单元,提供性质规范模板的输入接口,对性质规范模板进行解析,提取性质规范模板中的命题变量,为之后的挖掘工作进行预处理操作。
通过性质规范挖掘单元,将提取到的命题变量替换为具体的事件,从而将一个性质规范模板转换为一个性质规范实例,当该性质规范实例所定义的性质在事件日志存储模块中的事件序列中的支持度或置信度中的至少一种满足用户所设定的阈值时,将该性质规范实例判定为具有参考价值的性质规范实例,并将其存储于可筛选的性质规范集合中。
通过性质规范输出单元,输出可筛选的性质规范集合。
更具体地,结合如图5所示的根据本发明的有界运行时验证***中的有界验证模块的结构图,根据本发明的验证方法的步骤2-3包括以下步骤:
通过性质规范输入单元,提供性质规范的输入接口,接收工程师筛选后的经筛选的性质规范集合,解析性质规范,对性质规范进行预处理操作。
通过性质验证单元,根据经预处理的性质规范验证性质在事件日志缓存模块内的事件序列中的满足情况,在验证过程之中,根据需要从事件日志缓存模块中查询事件信息。
通过结果输出单元,在性质不满足经预处理的性质规范时,将判断结果、相关性质和相关的日志信息进行输出。
需要说明的是,根据本发明的验证方法中的步骤可以改变顺序或者进行组合,而且不一定以与图1-图5中所示的结构图中的对应的子***、模块或者单元一一对应的上述描述方式执行。上文中关于本发明的验证方法的上述步骤的描述只是出于便于清楚描述本发明的验证方法的目的,只是示例而不是限制。
还需要说明的是,在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的***、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的***解释成反映如下意图:即本发明要求保护比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面所包含的特征少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何***或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的***的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或模块。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种带过去时态的线性时态逻辑性质的有界运行时验证***,其特征在于,包括:
性质挖掘子***,用于在***开发阶段,使用测试数据对***进行仿真运行,以获取***在实际运行中的事件信息并将其存储在事件日志中,并且用于从事件日志中自动地获取***运行过程中具备的带过去时态的所有线性时态逻辑性质并将其存储于可筛选的性质规范集合中;
性质验证子***,用于在***运行阶段,对***事件进行监控,并且使用经筛选的性质规范集合对***进行时态性质的检查验证;
性质挖掘子***包括:
事件采集模块,用于根据目标***的环境和具体需求进行事件信息采集;
事件日志存储模块,用于存储和查询***事件采集模块所采集的事件信息;
性质规范挖掘模块,用于根据所配置的带过去时态的线性时态逻辑性质规范模板,从事件日志存储模块中自动地挖掘出***所具备的带过去时态的线性时态逻辑性质并将其存储于可筛选的性质规范集合中;
性质验证子***包括:
事件采集模块,用于根据目标***的环境和具体需求进行事件信息采集;
事件日志缓存模块,用于在***运行时对有限时间段内的***事件进行缓存,以用于后续的性质验证;
有界验证模块,用于在运行时,使用经筛选的性质规范集合,对事件日志缓存模块中的事件序列进行性质检查,以验证***在运行期间是否符合经筛选的性质规范集合中的相关性质。
2.如权利要求1所述的验证***,其特征在于,性质挖掘子***的事件采集模块包括:
硬件监听单元,其通过硬件实现且被连接在***的传感器部件或数据总线上,用于以固定时间周期对***的数据进行采集;
信号转换单元,用于根据需求对采集到的数据进行包括模数转换和精度截取中的至少一种的预处理;
事件输出单元,用于将预处理后的数据作为***事件进行输出。
3.如权利要求1所述的验证***,其特征在于,性质挖掘子***的事件日志存储模块包括:
事件新增单元,用于接收事件输入,将事件与时间信息进行关联后输出对应的事件信息;
事件存储单元,用于使用哈希表的形式对事件信息进行存储,以保证***和查询的高效率;
事件查询单元,用于提供查询接口,进行事件相关统计信息的精确查询和模糊查询,进行事件出现时间的查询或在特定时间段内的事件出现情况的查询,进行***中所出现的所有事件的查询,为性质规范挖掘提供数据基础。
4.如权利要求1所述的验证***,其特征在于,性质挖掘子***的性质规范挖掘模块包括:
性质规范模板输入单元,用于提供性质规范模板的输入接口,对性质规范模板进行解析,提取性质规范模板中的命题变量,为之后的挖掘工作进行预处理操作;
性质规范挖掘单元,用于将提取到的命题变量替换为具体的事件,从而将一个性质规范模板转换为一个性质规范实例,当该性质规范实例所定义的性质在事件日志存储模块中的事件序列中的支持度或置信度中的至少一种满足用户所设定的阈值时,将该性质规范实例判定为具有参考价值的性质规范实例,并将其存储于可筛选的性质规范集合中;
性质规范输出单元,用于输出可筛选的性质规范集合。
5.如权利要求1所述的验证***,其特征在于,性质验证子***的事件采集模块与性质挖掘子***的事件采集模块功能相似,只是工作阶段不同,而且,前者所采集的信息范围小于等于后者所采集的信息范围。
6.如权利要求1所述的验证***,其特征在于,性质验证子***的事件日志缓存模块与性质挖掘子***的事件日志存储模块功能相似,只是工作阶段不同,前者只用于支撑实时的事件验证操作,无须记录全部的事件日志,存储量较小。
7.如权利要求1所述的验证***,其特征在于,性质验证子***的有界验证模块包括:
性质规范输入单元,用于提供性质规范的输入接口,以接收工程师筛选后的经筛选的性质规范集合,解析性质规范,对性质规范进行预处理操作;
性质验证单元,用于根据经预处理的性质规范验证性质在事件日志缓存模块内的事件序列中的满足情况,在验证过程之中,根据需要从事件日志缓存模块中查询事件信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710434655.3A CN107273288B (zh) | 2017-06-09 | 2017-06-09 | 带过去时态的线性时态逻辑性质的有界运行时验证*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710434655.3A CN107273288B (zh) | 2017-06-09 | 2017-06-09 | 带过去时态的线性时态逻辑性质的有界运行时验证*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107273288A CN107273288A (zh) | 2017-10-20 |
CN107273288B true CN107273288B (zh) | 2020-02-18 |
Family
ID=60067456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710434655.3A Active CN107273288B (zh) | 2017-06-09 | 2017-06-09 | 带过去时态的线性时态逻辑性质的有界运行时验证*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273288B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100483422C (zh) * | 2007-11-21 | 2009-04-29 | 中国科学院合肥物质科学研究院 | 用于农业复杂自适应搜索引擎***的控制方法 |
US20160292307A1 (en) * | 2013-11-06 | 2016-10-06 | Arizona Board Of Regents On Behalf Of Arizona State University | Temporal logic robustness guided testing for cyber-physical systems |
CN107229568B (zh) * | 2017-06-09 | 2018-09-18 | 华东师范大学 | 带过去时态的线性时态逻辑性质的有界运行时验证方法 |
-
2017
- 2017-06-09 CN CN201710434655.3A patent/CN107273288B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107273288A (zh) | 2017-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9354867B2 (en) | System and method for identifying, analyzing and integrating risks associated with source code | |
US8972938B2 (en) | Determining functional design/requirements coverage of a computer code | |
CN102053906A (zh) | 用于收集程序运行时信息的***和方法 | |
CN111563606A (zh) | 一种设备预测性维护方法及装置 | |
CN101739339A (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
US10657028B2 (en) | Method for replicating production behaviours in a development environment | |
CN103294596A (zh) | 一种基于程序不变量的合约式软件故障预警方法 | |
KR102269286B1 (ko) | 어노테이션 자동 진단 시스템 | |
Jiang et al. | Tracing back the history of commits in low-tech reviewing environments: a case study of the linux kernel | |
CN103970654B (zh) | 一种软件可靠性虚拟测试方法 | |
CN102043720A (zh) | 利用sql语句自动生成测试数据的方法和装置 | |
CN103425580A (zh) | 一种自动快速获取和校验云计算设备配置信息的方法 | |
CN114880176A (zh) | 一种航空数据转换单元测试***、方法及装置 | |
Lind et al. | A practical approach to size estimation of embedded software components | |
CN107273288B (zh) | 带过去时态的线性时态逻辑性质的有界运行时验证*** | |
CN107229568B (zh) | 带过去时态的线性时态逻辑性质的有界运行时验证方法 | |
Chaari et al. | A model-based and simulation-assisted FMEDA approach for safety-relevant E/E systems | |
CN115775064A (zh) | 一种工程决算结果评估方法及云平台 | |
CN113282496B (zh) | 接口自动测试方法、装置、设备及存储介质 | |
Beine | A model-based reference workflow for the development of safety-critical software | |
KR102106696B1 (ko) | 소프트웨어 검사 장치 및 방법 | |
CN112329124A (zh) | Cae模型查错方法、装置、计算机设备和存储介质 | |
CN113282504A (zh) | 一种增量代码覆盖率检测方法及业务开发方法、装置 | |
CN111881055A (zh) | 军用软件评测规范的Simulink模型设计方法 | |
CN112612882B (zh) | 检阅报告生成方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210805 Address after: Room 801, no.6, Lane 600, Yunling West Road, Putuo District, Shanghai 200062 Patentee after: SHANGHAI FORMAL TECH INFORMATION TECHNOLOGY Co.,Ltd. Address before: 200062 No. 3663, Putuo District, Shanghai, Zhongshan North Road Patentee before: EAST CHINA NORMAL University Patentee before: SHANGHAI FORMAL TECH INFORMATION TECHNOLOGY Co.,Ltd. |