CN103226503B - 一种模块建模与模型检测一体化自动检测方法 - Google Patents

一种模块建模与模型检测一体化自动检测方法 Download PDF

Info

Publication number
CN103226503B
CN103226503B CN201310100460.7A CN201310100460A CN103226503B CN 103226503 B CN103226503 B CN 103226503B CN 201310100460 A CN201310100460 A CN 201310100460A CN 103226503 B CN103226503 B CN 103226503B
Authority
CN
China
Prior art keywords
module
model
modeling
atom
software
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
Application number
CN201310100460.7A
Other languages
English (en)
Other versions
CN103226503A (zh
Inventor
罗贵明
夏默
罗建
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201310100460.7A priority Critical patent/CN103226503B/zh
Publication of CN103226503A publication Critical patent/CN103226503A/zh
Application granted granted Critical
Publication of CN103226503B publication Critical patent/CN103226503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提出了一种模块建模与模型检测一体化自动检测方法,包括以下步骤:建立多个原子模块,并由多个原子模块组成原子模块库;建立多个组件模块,由多个组件模块构造组件库;根据原子模块库和组件库对待检测软件或硬件进行建模以分别得到软件或硬件模型、环境模型和属性模型;对软件或硬件模型和环境模型进行整合得到系统模型,同时生成模型检测代码,并对检测代码进行优化;根据优化结果应用模型检测工具对系统模型和属性模型自动进行模型检测;根据模型检测结果分析待检测软件或硬件的问题。本发明采用模块化建模,建模与检测一体化自动化,提高了效率,并节约成本,节省了人力和时间,同时避免了建模中产生的错误。

Description

一种模块建模与模型检测一体化自动检测方法
技术领域
本发明涉及计算机软件工程领域,特别涉及一种模块建模与模型检测一体化自动检测方法。
背景技术
计算机技术在各行各业得到广发的应用,特别是与国家、社会安全攸关的军事、航空航天、家电、医疗、交通、医疗等领域,发挥着越来越大的作用。同时,随着计算机技术迅速发展和计算能力的提高,系统软件的规模和复杂性不断增加。软件的安全可靠性更显得重要,既要确保系统能完成预期功能,又能在各种可能条件下保证系统本身及环境安全性。此外,随着软件在金融、高铁、核电、载人航天等对可靠性、实时性要求较高的领域中的广泛应用,一些软件由于设计缺陷或逻辑上小的漏洞而可能导致其在运行过程中体崩溃,产生灾难性或造成破坏性的后果,导致人身、财产方面的重大损失,直接影响到国民经济的发展以及人们的工作和生活。
实际工程要求所用的系统软件是可靠的。目前软件的开发过程自动化的程度比较少,需要大量人工的参与。个人的经验、开发水平、编程习惯等对软件开发起到了至关重要的影响,是造成软件开发效率低下和软件质量难以保障的主要原因,同时也是造成软件业高风险、高成本的重要因素。另一方面,软件工程领域当前多使用的模拟和测试的方法能被动的指出软件的某些缺陷,却不能证明软件在特定的规格要求下是正确的、可靠的;测试和仿真只能选择所有输入和操作条件的一个子集对系统进行评价,因而都不完备。而且有时搭建一个组件的测试和仿真环境往往比开发这个组件花费更大。在嵌入式系统中有很多错误只有当某些特定的事件按照一定的序列发生后才会出现,且不可重复。如果用测试的方法来找这类错误就需要尝试很多测试用例,由于不可重复性,这些测试用例的价值很有限。此外,在软件准备上线前进行测试,如果最初软件的设计本身就存在问题,那后果是灾难性的。这就需要一种自动、灵活、完备、细粒度的策略解决软件的不可靠问题。
形式化方法(FormalMethods)为计算机软件的安全可靠验证提供了一种新的有效的途径。与测试、仿真验证不同,形式化方法以数学理论、数理逻辑、自动机、图论等为理论基础,以逻辑计算、形式化语言、程序语义以及进程代数等为依托建立的验证方法来描述和分析系统,并提供了一系列的技术和工具。系统的设计要求精确地、无歧义地specification(说明)。而形式化的specification能准确无歧义地描述系统的各种属性,消除理解上的二义性,从而减少软件系统建模的不准确性。由于形式化方法本身的这些特性以及很好地保障了计算机系统的安全性和可靠性,在软件的开发与设计中采用形式化方法可以提高软件可信度。随着相关理论和技术的发展以及人们对系统安全性的要求越来越高,近年来为学术界和工业界所重视,并被引入到嵌入式系统的验证领域,这其中一个非常重要的研究分支就是模型检测技术。模型检测是形式化验证技术的典型代表,它以有限自动机为形式模型,通过穷尽软件系统的所有可能的状态来验证其是否满足某一期望属性。因此模型检测技术在确保系统可靠性方面较传统的测试与仿真方法在理论上更具优势。
近年来在模型检测领域,先后提出一些基于形式化方法的模型检测技术和检测平台。常用的模型检测工具包括:SPIN(Holzmann1997-)、NuSMV(Cimatti,Clarke,etal.1999-)、Uppaal(Behrmann,et.at.2006)等。模型检测在工业界硬件设计的验证方面取得了较大成功。然而,经过十多年的发展,形式化验证仍然没有成为软件开发工程实践的标准步骤。因为需要用形式化建模和检测的软件往往是安全可靠性要求非常高的软件,相应的保密和使用也十分严格。而系统设计开发和软件验证作为不同的专业人员,很难做到开发、验证、保密一致性。这样面临的是形式化方法的适用性问题:在形式化验证中系统模型和属性时序逻辑公式需要使用规范语言建立。工业界的工程师大都非软件专业,他们习惯于从电路的角度思考和解决问题,难于理解形式化建模语言和时序逻辑公式。规范语言具有严格的语法和语义,这就要求使用者具有较高的数学基础。一般认为形式化方法学习和形式语言建模的过程费时耗力,甚至比直接开发系统还要花费更过多的时间和精力。缺少支持特定领域建模过程的方法。在建模方面,工程师缺乏经验。即使学会了建模语言,对建模无从下手,虽然了解现实系统,但是无法将现实系统抽象为形式模型。另外,建模工具易用性差。部分工具没有UI界面,只有命令行。由于形式化方法需要较高的专业素养,使用门槛太高,长期以来都难以在工业界得到广泛的应用。另外,状态爆炸问题也是模型检测方法实际应用的瓶颈。本发明能克服上述应用形式化方法检测软件的弱点,提出了模块建模与模型检测一体化技术。
发明内容
本发明旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商业选择。
为此,本发明的目的在于提出一种模块建模与模型检测一体化自动检测方法,通过采用形式化的模型建立与检测方法。
为达到上述目的,本发明提出了一种模块建模与模型检测一体化自动检测方法,包括以下步骤:建立多个原子模块,原子模块转换成检测代码,所述原子模块在建模平台中可以被任意拖拽,所述原子模块间通过连线进行信息传递,其中,每个所述原子模块用于实现一个基本功能,并由所述多个原子模块组成原子模块库;建立多个组件模块,由所述多个组件模块构造组件库,其中,每个所述组件块由多个相关联的原子模块构成,用于执行预定功能;根据所述原子模块库和组件库对待检测软件或硬件进行建模以分别得到软件或硬件模型、环境模型和属性模型;对所述软件或硬件模型和所述环境模型进行整合得到系统模型,同时生成模型检测代码,并对所述检测代码进行优化;根据所述优化结果应用模型检测工具对所述系统模型和属性模型自动进行模型检测;根据所述模型检测结果分析得到所述待检测软件或硬件的问题。
根据本发明实施例的模块建模与模型检测一体化自动检测方法,采用模块化建模,建模与检测一体化自动化,提高了效率,并节约成本,节省了建模所需的人力和时间,同时避免了系统建模时的出现错误。本发明的方法将建模与检测功能用模块化绑定一起,不需要建模人员具有形式化检测知识,便于模型检测在实际系统中的运用。并且可根据需要,由建模系统的规模决定检测系统的规模,完全实现了层次化建模与检测,由此可避免模型检测中的状态爆炸问题。
在本发明的一个实施例中,所述建立多个原子模块包括:对待建立的原子模块的功能进行定义,其中,所述原子模块的功能包括执行逻辑、运算、比较和计时;根据定义的功能建立所述原子模块,所述原子模块由检测代码给出,所述原子模块在建模平台中可以被任意拖拽,所述原子模块间通过连线进行信息传递;对建立的所述原子模块的功能进行检测;如果检测出错误,则重新根据定义的功能修正并建立所述原子模块并再次检测,直至检测正确,然后将所述原子模块添加到所述原子模块库中,以保证原子模块正确无误。
在本发明的一个实施例中,根据用于检测所述原子模型的检测工具的类型,选择不同的模型检测语言进行检测。
在本发明的一个实施例中,对建立的所述原子模块的功能进行检测,采用以下一种或多种方式:对原子模块进行仿真、测试及模型检测。
在本发明的一个实施例中,所述建立多个组件模块包括:
S301:对待建立的组件模块的功能进行定义;
S302:根据所述对待建立的组件模块的定义的功能从所述原子模块库中或已有的组件库中选取需要的子模块,其中,所述子模块是原子模块、已有组件模块的一种或多种,以及原子模块与已有组件模块的组合,所述子模块在建模平台中可以被任意拖拽;
S303:确定各个子模块之间的数据协议,并将所述数据协议置于所述子模块的输入、输出端点处,建立模块连线,所述模块连线自动成为所述子模块间的数据传输通道;
S304:根据待建立的组件模块的定义的功能对所述多个子模块进行数据连线以建立所述组建模块;
S305:对建立的所述组件模块进行检测;
S306:如果检测出错误则返回步骤S302,否则检测完成并得到最终建立的所述组件模块,将所述组件模块加入组件库。
在本发明的一个实施例中,在所述组件模块中,所述组件模块中相关联的子模块间可通过多种数据协议进行通信。
在本发明的一个实施例中,根据用于检测所述组件模型的检测工具的类型,选择不同的模型检测语言进行检测。
在本发明的一个实施例中,对建立的所述组件模块的功能进行检测,采用以下一种或多种方式:对组件模块进行仿真、测试及模型检测。
在本发明的一个实施例中,所述建模包括:软件或硬件建模,用于对待检测软件或硬件和时间进行建模,得到软件或硬件模型;环境建模,用于对与待测软件或硬件交互的各个环境实体的行为进行建模,得到环境模型;系统建模,由软件或硬件模型和环境模型整合得到系统模型。
在本发明的一个实施例中,所述软件或硬件建模包括:使用原子模块库和组件库中的模块及所述模块相互间的数据连线对待检测软件或硬件和时间进行模块化建模。
在本发明的一个实施例中,所述环境建模包括:使用原子模块库和组件库中的模块及所述模块相互间的数据连线对环境的行为进行建模,其中,所述环境是与待测软件或硬件交互的环境实体。
本发明的一个实施例的模块建模与模型检测一体化自动检测方法,还包括:将所述模型中的原子模块及组件模块、所述数据连线自动转化为检测代码,并对已建立的所述系统模型和所述属性模型进行自动检测,如果模型检测中检测出错误,则根据错误发生的反例的路径对所述反例进行分析,修正所述软件或硬件模型、环境模型和属性模型,并重新检测所述软件或硬件模型、环境模型和属性模型。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明实施例的模块建模与模型检测一体化自动检测方法的流程图;
图2是本发明实施例的原子模块的建立方法的流程图;
图3是本发明实施例的组件模块的建立方法的流程图;
图4是本发明实施例的模块建模与模型检测一体化自动检测方法的过程的示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。例如,在建模平台中采用鼠标给出连接两个模块的有向线段,该连接不但描述两模块之间的逻辑关系,而且这样的连接线还具有作为传送信息通道的功能,即将一个模块的信息通过连线传送给另一个模块。
如图1和图4所示,根据本发明一方面实施例的模块建模与模型检测一体化自动检测方法,包括以下步骤:
S101:建立多个原子模块,其中,每个原子模块用于实现一个基本功能,并由多个原子模块组成原子模块库。
具体的原子模块是对逻辑、运算、比较、计时等基本功能进行描述建模,包含一些标定参数的设定和修改。原子模块是本发明中最基本也是最重要的部分。原子模块执行的基本功能具有不能再分解的特征,包括但并不仅限于逻辑、运算、比较、计时等功能。每个原子模块包括某一基本功能需求,基本功能需求描述了该原子模块的功能和属性,并在模块中转换为检测语言;首先将该基本功能用一种软件语言描述,模型语言是功能需求的实现,一般都有一些输入和输出,能够执行相应操作;然后将该基本功能的模型语言转换为模型检测语言,检测语言是将模型语言对应的模型检测工具所使用的语言,检测语言独立于模型语言。本发明的模块建模与模型检测一体化自动检测方法可对应于多个检测平台,因而一个原子模块在多个检测平台下可以有多种检测语言,对应于不同的模型检测工具。本发明中原子模块的建模与检测已融入一体,由此可体现建模与检测一体化。在具体的实施例中,用户可将原子模块在建模平台中可任意拖拽,可修改其中的一些标定参数。
具体地,原子模块的建立过程,如图2所示,包括以下步骤:
S201:对待建立的原子模块的功能进行定义。
对待建立的原子模块的功能进行定义、描述,功能描述必须准确、无二义。每个原子模块包括某一基本功能需求,其中,原子模块的基本功能包括但并不仅限于逻辑、运算、比较和计时等。
S202:根据定义的功能建立原子模块。
根据原子模块的功能定义实现其功能,原子模块由检测代码给出,此过程用一种计算机语言描述。在具体的实施例中,用户可在建模平台中对原子模块任意拖拽,并将原子模块之间用连线连接,以进行信息原子模块间的传递。
S203:对建立的原子模块的功能进行检测。
针对不同的模型检测工具,选择相应的模型检测语言,该检测语言独立于模块的功能,且不同的检测语言彼此之间也相互独立。为了保证将来使用该模块建模的系统可以被正确的检测,必须保证每个原子模块在功能上都是正确的。根据原子模块的功能描述,对原子模块进行仿真、测试甚至模型检测来保证其正确性。
S204:如果检测出错误则重新根据定义的功能建立原子模块并再次检测,直至检测正确,然后将原子模块添加到原子模块库中。
如果没有检测出错误,说明原子模块的实现是正确的,将已通过检测的原子模块存入模块库。否则,回到步骤S202修改模块的功能实现。
S102:建立多个组件模块,由多个组件模块构造组件库,其中,每个组件块由多个相关联的原子模块构成,用于执行预定功能。
每个组件模块是由若干个原子模块通过数据协议和数据连线组合而成。其中,原子模块之间需要通过数据连线通讯,数据连线具有模块间传递信息的功能。数据协议是模块间通信的基础,它规定了组件模块间通信必须遵守的规则。数据连线不仅是描述原子模块间逻辑联系的几何连线,更重要的是原子模块间信息传播的通道。不同的原子模块对数据传递有不同的要求,当采用同一条数据连线时,就需要对原子模块的数据协议解析。原子模块通过数据连线相连,每条数据连线都依附于一些数据协议,这样通过原子模块和数据连线就可以组合成能够执行高级功能的组件模块;因为组件模块加入数据连线,需要建模语言描述,还需要转换成检测语言。每个组件模块也有不同的检测语言,同样对应于不同的模型检测工具。与原子模块库中的原子模块不同,组件模块只保存在检测系统的外部,而不嵌入到检测系统内部。
具体地,组件模块的建立过程,如图3所示,包括以下步骤:
S301:对待建立的组件模块的功能进行定义。
S302:根据对待建立的组件模块的定义的功能从原子模块库中或已有的组件库中选取需要的子模块,其中,子模块可以是原子模块、已有组件模块的一种或多种,以及原子模块与已有组件模块的组合。在具体实施例中,子模块在建模平台中可以被用户任意拖拽。
S303:确定各个子模块之间的数据协议,并将数据协议置于子模块的输入、输出端点处,建立模块连线。在具体实施例中,用户在建模平台中建立模块连线后,该模块连线自动成为子模块之间的数据通道。
S304:根据待建立的组件模块的定义的功能对多个子模块进行数据连线以建立组件模块。
S305:对建立的组件模块进行检测。
针对不同的模型检测工具,选择相应的模型检测语言,检测语言独立于模块的功能,且不同的检测语言彼此间也相互独立。检测时,根据子模块的语法、语义规则和其相互关系可以确保子模块语法、语义的正确性;还可以通过仿真、测试来保证该组件模块的正确性。
S306:如果检测出错误则返回步骤S302,否则检测完成并得到最终建立的组建模块。
S103:根据原子模块库和组件库对待检测软件或硬件进行建模以分别得到软件或硬件模型、环境模型和属性模型。
具体地,建模包括软件或硬件建模、环境建模和属性建模。
其中,软件或硬件建模包括:对待检测软件或硬件和时间进行建模,待检测软件可以是计算机系统软件,或者是其它嵌入式软件,待检测硬件可以是计算机硬件,但待检测软件或待检测硬件必须能够使用模块进行建模的语言描述。环境建模是对与待检测软件或硬件交互的各个环境实体的行为进行建模,可以用状态等模块将其建模成有限状态机,也可以是其他的形式。属性建模通过分析功能需求得到系统需要满足的属性,将各个属性表示成时序逻辑表达式,例如LTL(Lineartemporallogic,线性时序逻辑)、CTL(Computationtreelogic,分支时序逻辑)。其中,属性表示待检测系统必须满足的要求或其他约束条件。
本发明对环境进行建模,考虑了外部环境对待检测系统的影响,使得检测结果更全面,更符合实际。
S104:对软件或硬件模型和环境模型进行整合得到系统模型,同时生成模型检测代码,并对检测代码进行优化。
根据由每个模块自身的检测语言的原子模块和组件块搭成的系统,以及整合属性模型,立即自动生成模型检测工具的检测代码,并根据待测系统和用户需求(如运行时间或占用内存的需求)对检测代码进行优化。
S105:根据优化结果应用模型检测工具对系统模型和属性模型自动进行模型检测。
将优化的检测代码输入模型检测工具中,模型中的原子模块及组件模块、数据连线均自动转化为检测代码,并对已建立的系统模型和属性模型自动进行模型检测,并输出检测结果。
S106:根据模型检测结果分析得到待检测软件或硬件的问题。
如果没有检测出错误,说明被测系统满足属性,检测过程结束。如果模型检测中检测出错误,则根据错误发生的路径逆向查找并对反例进行分析。分析检测结果数据,生成结果分析报告,还可以以图形化的方式向用户显示反例,便于用户定位错误。根据反例路径分析反例,修正软件或硬件模型、环境模型和属性模型后,重新检测软件或硬件模型、环境模型和属性模型。
根据本发明实施例的模块建模与模型检测一体化自动检测方法,采用模块化建模,建模与检测一体化和自动化,能提高效率,节约成本,节省了建模所需的人力和时间,同时降低了建模的错误率。本发明的方法将建模与检测用模块化绑定一起,不需要建模人员具有形式化检测知识,便于模型检测在实际软件或硬件系统检测中的运用。并且可根据需要,由建模系统的规模决定检测系统的规模,完全实现了软件的层次化建模与检测,以此可避免模型检测中的状态爆炸问题。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (12)

1.一种模块建模与模型检测一体化自动检测方法,其特征在于,包括以下步骤:
建立多个原子模块,原子模块转换成检测代码,所述原子模块在建模平台中可以被任意拖拽,所述原子模块间通过连线进行信息传递,其中,每个所述原子模块用于实现一个基本功能,并由所述多个原子模块组成原子模块库;
建立多个组件模块,由所述多个组件模块构造组件库,其中,每个所述组件模块由多个相关联的原子模块构成,用于执行预定功能;
根据所述原子模块库和组件库对待检测软件或硬件进行建模以分别得到软件或硬件模型、环境模型和属性模型;
对所述软件或硬件模型和所述环境模型进行整合得到系统模型,同时生成模型检测代码,并对所述检测代码进行优化;
根据所述优化结果应用模型检测工具对所述系统模型和属性模型自动进行模型检测;以及
根据所述模型检测结果分析得到所述待检测软件或硬件的问题。
2.如权利要求1所述的模块建模与模型检测一体化自动检测方法,其特征在于,所述建立多个原子模块包括:
对待建立的原子模块的功能进行定义,其中,所述原子模块的功能包括执行逻辑、运算、比较和计时;
根据定义的功能建立所述原子模块,所述原子模块由检测代码给出,所述原子模块在建模平台中可以被任意拖拽,所述原子模块间通过连线进行信息传递;
对建立的所述原子模块的功能进行检测;
如果检测出错误则重新根据定义的功能建立所述原子模块并再次检测,直至检测正确,然后将所述原子模块添加到所述原子模块库中。
3.如权利要求2所述的模块建模与模型检测一体化自动检测方法,其特征在于,根据用于检测所述原子模块的检测工具的类型,选择不同的模型检测语言进行检测。
4.如权利要求2或3所述的模块建模与模型检测一体化自动检测方法,其特征在于,对建立的所述原子模块的功能进行检测,采用以下一种或多种方式:
对原子模块进行仿真、测试及模型检测。
5.如权利要求1所述的模块建模与模型检测一体化自动检测方法,其特征在于,所述建立多个组件模块包括:
S301:对待建立的组件模块的功能进行定义;
S302:根据所述对待建立的组件模块的定义的功能从所述原子模块库中或已有的组件库中选取需要的子模块,其中,所述子模块是原子模块、已有组件模块的一种或多种,以及原子模块与已有组件模块的组合,所述子模块在建模平台中可以被任意拖拽;
S303:确定各个子模块之间的数据协议,并将所述数据协议置于所述子模块的输入、输出端点处,建立模块连线,所述模块连线自动成为所述子模块间的数据传输通道;
S304:根据待建立的组件模块的定义的功能对多个子模块进行数据连线以建立所述组件模块;
S305:对建立的所述组件模块进行检测;
S306:如果检测出错误则返回步骤S302,否则检测完成并得到最终建立的所述组件模块,将所述组件模块加入组件库。
6.如权利要求1或5所述的模块建模与模型检测一体化自动检测方法,其特征在于,在所述组件模块中,相关联的子模块间可通过多种数据协议进行通信。
7.如权利要求5所述的模块建模与模型检测一体化自动检测方法,其特征在于,
根据用于检测所述组件模块的检测工具的类型,选择不同的模型检测语言进行检测。
8.如权利要求5所述的模块建模与模型检测一体化自动检测方法,其特征在于,对建立的所述组件模块的功能进行检测,采用以下一种或多种方式:
对所述组件模块进行仿真、测试及模型检测。
9.如权利要求1所述的模块建模与模型检测一体化自动检测方法,其特征在于,所述建模包括:
软件或硬件建模,用于对待检测软件或硬件和时间进行建模,得到软件或硬件模型;
环境建模,用于对与待检测软件或硬件交互的各个环境实体的行为进行建模,得到环境模型;
属性建模,用于对待检测系统需要满足的属性进行建模,得到属性模型。
10.如权利要求9所述的模块建模与模型检测一体化自动检测方法,其特征在于,所述软件或硬件建模包括:使用原子模块库和组件库中的模块及所述模块相互间的数据连线对待检测软件或硬件和时间进行模块化建模。
11.如权利要求9或10所述的模块建模与模型检测一体化自动检测方法,其特征在于,所述环境建模包括:使用原子模块库和组件库中的模块及所述模块相互间的数据连线对环境的行为进行建模,其中,所述环境是与待测软件或硬件交互的环境实体。
12.如权利要求1所述的模块建模与模型检测一体化自动检测方法,其特征在于,还包括:
将所述模型中的原子模块及组件模块、数据连线自动转化为检测代码,并对已建立的所述系统模型和所述属性模型进行自动检测,如果模型检测中检测出错误,则根据错误发生的反例的路径对所述反例进行分析,修正所述软件或硬件模型、环境模型和属性模型,并重新检测所述软件或硬件模型、环境模型和属性模型。
CN201310100460.7A 2013-03-26 2013-03-26 一种模块建模与模型检测一体化自动检测方法 Active CN103226503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310100460.7A CN103226503B (zh) 2013-03-26 2013-03-26 一种模块建模与模型检测一体化自动检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310100460.7A CN103226503B (zh) 2013-03-26 2013-03-26 一种模块建模与模型检测一体化自动检测方法

Publications (2)

Publication Number Publication Date
CN103226503A CN103226503A (zh) 2013-07-31
CN103226503B true CN103226503B (zh) 2016-06-01

Family

ID=48836962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310100460.7A Active CN103226503B (zh) 2013-03-26 2013-03-26 一种模块建模与模型检测一体化自动检测方法

Country Status (1)

Country Link
CN (1) CN103226503B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103399817B (zh) * 2013-08-13 2017-05-31 清华大学 基于模块建模与模型检测一体化系统检测装置
CN105335534B (zh) * 2014-05-30 2018-12-14 华为技术有限公司 模型建立方法和装置
CN109886610B (zh) * 2016-02-29 2023-04-07 飞救医疗科技(北京)有限公司 一种协同工作与质量控制方法与系统
CN110378564A (zh) * 2019-06-18 2019-10-25 中国平安财产保险股份有限公司 监控模型生成方法、装置、终端设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624476A (zh) * 2012-01-10 2012-08-01 南京邮电大学 一种基于模型检测的无线传感器网络时间同步检验方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624476A (zh) * 2012-01-10 2012-08-01 南京邮电大学 一种基于模型检测的无线传感器网络时间同步检验方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Automatic Verification of Event-Driven Control Programs: a Case Study;Peizun Liu et al;《Fourth International Workshop on Advanced Computational Intelligence》;20111021;全文 *
EMMA: Explicit Model Checking Manager (Tool Presentation);Radek Pelanek et al;《SPIN 2009》;20091231;第LNCS 5578卷;全文 *
Towards automatic software model checking of thousands of Linux modules—a case study with Avinux;Hendrik Post et al;《SOFTWARE TESTING, VERIFICATION AND RELIABILITY》;20080909;第19卷;全文 *
一种大规模并行程序模型的检测方法;杨明远 等;《计算机工程》;20080731;第34卷(第13期);全文 *

Also Published As

Publication number Publication date
CN103226503A (zh) 2013-07-31

Similar Documents

Publication Publication Date Title
Dreossi et al. Efficient guiding strategies for testing of temporal properties of hybrid systems
Abbas et al. Formal property verification in a conformance testing framework
Zutshi et al. Multiple shooting, cegar-based falsification for hybrid systems
CN107783758B (zh) 一种智能合约工程方法
AU2021240156B2 (en) Quantum Control Pulse Generation Method And Apparatus, Device, And Storage Medium
Moradi et al. Exploring fault parameter space using reinforcement learning-based fault injection
US10409706B2 (en) Automated test generation for structural coverage for temporal logic falsification of cyber-physical systems
Larsen et al. Statistical model checking: past, present, and future
CN103226503B (zh) 一种模块建模与模型检测一体化自动检测方法
CN104598373B (zh) 一种多技术融合的嵌入式软件测试方法
US10521547B2 (en) Covergroup network analysis
US20160357834A1 (en) Coverage data interchange
CN105068858A (zh) 一种多源异构系统仿真方法和装置
Gaaloul et al. Mining assumptions for software components using machine learning
James et al. Automatically verifying railway interlockings using SAT-based model checking
Saadawi et al. Verification of real-time DEVS models
Krupalija et al. Forward-propagation approach for generating feasible and minimum test case suites from cause-effect graph specifications
David et al. Improving reliability studies with SysML
Formica et al. Simulation-based Testing of Simulink Models with Test Sequence and Test Assessment Blocks
Biallas et al. Range and value-set analysis for programmable logic controllers
CN115659791A (zh) 一种数字孪生数据模型驱动的高性能虚拟仿真方法及系统
Mutzke et al. Model-based analysis of timing errors for reliable design of mechatronic medical devices
Jacquot et al. The role of validation in refinement-based formal software development
Zhang et al. Test case generation from formal models of cyber physical system
EP4287027A1 (en) Method and system for generating test cases for an engineering program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant