CN109948212A - 建模规范检查方法及装置 - Google Patents
建模规范检查方法及装置 Download PDFInfo
- Publication number
- CN109948212A CN109948212A CN201910179711.2A CN201910179711A CN109948212A CN 109948212 A CN109948212 A CN 109948212A CN 201910179711 A CN201910179711 A CN 201910179711A CN 109948212 A CN109948212 A CN 109948212A
- Authority
- CN
- China
- Prior art keywords
- checked
- attribute
- model
- item
- modeling specification
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000007689 inspection Methods 0.000 title claims abstract description 57
- 230000000052 comparative effect Effects 0.000 claims description 3
- 230000003993 interaction Effects 0.000 abstract description 5
- 230000000875 corresponding effect Effects 0.000 description 63
- 230000008569 process Effects 0.000 description 16
- 230000007613 environmental effect Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供了建模规范检查方法及装置,该方法包括:将待检查建模规范中的每一条待检查的规范条款作为待检查项;针对每一项待检查项,从待检查模型中获取与该待检查项相匹配的待检查属性的属性设置内容。然后,将该待检查属性的属性设置内容与对应的设置要求进行对比,从而得到该待检查项的检查结果;依据待检查建模规范中每一条待检查项对应的检查结果,得到待检查模型针对该待检查建模规范的检查结果。该方法运行在创建模型的软件环境中,因此避免了利用第三方软件进行建模规范检查时不同软件之间的交互导致的问题定位的复杂性。且与Model Advisor工具相比,该方法能够针对规定的待检查建模规范中的任意一条建模规范进行检查。
Description
技术领域
本发明属于软件技术领域,尤其涉及建模规范检查方法及装置。
背景技术
在汽车、工业控制、航空航天等行业,基于模型的设计(model based design,MBD)的软件开发方式已经逐步替代传统的手工代码开发方式。在MBD领域,Matlab/Simulink/Stateflow作为通用化的建模与代码生成工具及其相关配套的工具链已经被应用到产品的开发中。
在利用Matlab/Simulink/Stateflow搭建模型时,需要遵循相应的规范和法则,例如,汽车行业中,目前常用的建模规范包括Matlab的MAAB规范、汽车产业软件可靠性协会的MISRA AC SLSF规范,以及,在这两个规范基础上衍生的一些公司级别的规范。
目前,检查建模规范的方式主要有两种,一种是利用第三方软件进行模型分析,借助第三方软件进行建模规范检查是在第三方软件的运行环境中分析模型特性,不同软件之间的交互增加了模型特性分析过程中问题定位的复杂性;另一种是利用Matlab软件自带的静态模型检查工具Model Advisor进行建型规范检查,但该工具能够检查的建模规范有限,某些建模规范或某些建模规范条款不能利用该工具检查,因此,这两种检查建模规范的方式都存在一定的局限性。
发明内容
有鉴于此,本发明的目的在于提供一种建模规范检查方法,运行于Matlab运行环境中,且能够检查所有建模规范以及所有建模规范条款,其具体的技术方案如下:
第一方面,本发明提供了一种建模规范检查方法,运行于创建模型的软件环境中,所述方法包括:
确定待检查建模规范中任一条未检查的规范条款为待检查项,所述待检查建模规范是创建待检查模型时所要求使用的建模规范;
获取所述待检查模型中与所述待检查项相匹配的待检查属性的属性设置内容;
针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到所述待检查模型针对该待检查建模规范的检查结果,所述待检查属性的设置要求通过分析所述待检查建模规范得到。
可选地,所述针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到所述待检查建模规范的检查结果,包括:
针对每一待检查项,比较该待检查项相匹配的待检查属性的属性设置内容与该待检查属性的设置要求是否一致;
如果所述待检查建模规范中全部待检查项对应的属性设置内容与设置要求均一致,则确定所述待检查模型针对所述待检查建模规范设置正确;
如果所述待检查建模规范中任一待检查项对应的属性设置内容与设置要求不一致,则确定所述待检查模型针对所述待检查建模规范设置不正确。
可选地,所述待检查项的类型包括:软件配置环境、待检查目标的属性和模块的使用情况,所述待检查目标包括模块、子系统和系统,所述待检查目标的属性包括所述待检查目标的属性设置情况和所述待检查目标的属性选择情况。
可选地,所述待检查项的类型属于软件配置环境;所述获取所述待检查模型中与所述待检查项相匹配的待检查属性的属性设置内容,包括:
获取所述待检查模型的模型名称,以及与所述待检查项相匹配的待检查属性的属性名称;
基于所述模型名称和所述属性名称,从所述待检查模型中获取与所述待检查属性对应的属性设置内容。
可选地,所述待检查项的类型属于待检查目标的属性;所述从所述待检查模型中获取与所述待检查属性对应的属性设置内容,包括:
获取所述待检查模型的模型名称,以及与所述待检查项相匹配的待检查属性的属性名称;
基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述属性名称的全部待检查目标的路径;
基于所述待检查目标的路径和所述属性名称,从所述待检查模型中获取所述待检查属性对应的属性设置内容。
可选地,所述待检查项的类型属于模块的使用情况;所述获取所述待检查模型中与所述待检查属性对应的属性设置内容,包括:
获取所述待检查模型的模型名称,以及目标模块的属性名称,所述目标模块为所述待检查建模规范中不允许使用的模块;
基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述目标模块的路径。
可选地,所述基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述目标模块的路径,包括:
基于所述模型名称获取所述待检查模型包含的全部模块类型;
从所述全部模块类型中查找与所述目标模块的属性名称相匹配的模块所对应的路径。
第二方面,本发明还提供了一种建模规范检查装置,该装置运行于创建模型的软件环境中,所述装置包括:
确定模块,用于确定待检查建模规范中任一条未检查的规范条款为待检查项,所述待检查建模规范是创建待检查模型时所要求使用的建模规范;
获取模块,用于获取所述待检查模型中与所述待检查项相匹配的待检查属性的属性设置内容;
对比模块,用于针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到所述待检查模型针对该待检查建模规范的检查结果,所述待检查属性的设置要求通过分析所述待检查建模规范得到。
可选地,所述对比模块,包括:
比较子模块,用于针对每一待检查项,比较该待检查项相匹配的待检查属性的属性设置内容与该待检查属性的设置要求是否一致;
第一确定子模块,用于当所述待检查建模规范中全部待检查项对应的属性设置内容与设置要求均一致时,确定所述待检查模型针对所述待检查建模规范设置正确;
第二确定子模块,用于当所述待检查建模规范中任一待检查项对应的属性设置内容与设置要求不一致时,确定所述待检查模型针对所述待检查建模规范设置不正确。
可选地,所述待检查项的类型包括:软件配置环境、待检查目标的属性和模块的使用情况,所述待检查目标包括模块、子系统和系统,所述待检查目标的属性包括所述待检查目标的属性设置情况和所述待检查目标的属性选择情况。
本发明提供的建模规范检查方法,将待检查建模规范中的每一条待检查的规范条款作为待检查项;针对每一项待检查项,从待检查模型中获取与该待检查项相匹配的待检查属性的属性设置内容。然后,将该待检查属性的属性设置内容与对应的设置要求进行对比,从而得到该待检查项的检查结果;依据待检查建模规范中每一条待检查项对应的检查结果,得到待检查模型针对该待检查建模规范的检查结果。该方法运行在创建模型的软件环境中,因此避免了利用第三方软件进行建模规范检查时不同软件之间的交互导致的问题定位的复杂性。而且,与Model Advisor工具相比,该方法利用上述过程能够针对规定的待检查建模规范中的任意一条建模规范进行检查。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种建模规范检查方法的流程图;
图2是本发明实施例提供的一种获得待检查建模规范的检查结果过程的流程示意图;
图3是本发明实施例提供的另一种建模规范检查方法的流程图;
图4是本发明实施例提供的一种建模规范检查装置的框图;
图5是本发明实施例提供的一种对比模块的框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,示出了本发明实施例提供的一种建模规范检查方法的流程图,该方法运行于创建模型所使用的运行环境中,例如,Matlab的运行环境;此外,实现该方法的软件代码可以作为插件运行于当前软件(如,Matlab)中。如图1所示,该方法可以包括以下步骤:
S110,确定待检查建模规范中任一条未检查的规范条款为待检查项。
其中,待检查建模规范是创建待检查模型时所要求使用的建模规范;对于一个确定的模型,在其建模时所要求使用的建模规范是已知的。
将待检查建模规范中的任一未检查的规范条款作为待检查项。
S120,获取待检查模型中与待检查项相匹配的待检查属性的属性设置内容。
在对待检查模型进行建模规范检查之前,需要将待检查模型加载到Matlab的运行环境中,然后,通过对待检查模型进行分析,然后,从加载的待检查模型中读取所需的内容。
针对每一条待检查项,在进行自动检查之前,需要确定该条待检查项是对具有哪些属性的待检查目标进行检查。对于待检查的建模规范,可以分析、整理得到每一条规范条款所对应的待检查属性,以及与待检查属性的设置要求。
对于同一建模规范,只需进行一次上述的分析、整理过程,后续直接使用分析、整理得到的结果。
在一种可能的实现方式中软件开发人员可以为某一待检建模规范中的每一条规范条款编写相应的软件代码,因此,可以将每一条待检查项对应的待检查属性和对应的设置要求直接写入实现该条待检查项对应的软件代码中。
在另一种可能的实现方式中,可以将待检查建模规范中每一条待检查项所对应的待检查属性及设置要求之间的对应关系存储下来。当对某一条待检查项进行检查时,查找已存储的对应关系,获得该待检查项对应的待检查属性及设置要求。
例如,MISRA AC SLSF建模规范中的一条建模规范“MISRA AC SLSF004”规定Algebraic loop应设置为“error”,在模型中查找Algebraic loop对应的属性名称为“AlgebraicLoopMsg”;然后,可以将该属性名称“AlgebraicLoopMsg”写入软件代码中。后续,可以直接基于该属性名称获取对应的属性设置内容。
确定待检查项后,即可确定与该待检查项对应的待检查属性的属性名称,然后,基于待检查属性的属性名称,从待检查模型中获取相应的属性设置内容。
在分析、整理建模规范时,可以将建模规范划分为以下五类:软件配置环境、目标的属性设置情况、目标的属性选择情况、某些模块是否可以使用、在特定的逻辑形式下的实现形式选择。其中,目标是指模型中的模块(Block)、子系统(subsystem)、系统(system)。
其中,“在特定的逻辑形式下的实现形式选择”这一类型主要在模型开发过程中指导软件实现形式,因此,在建模规范检查时不需要对该类型的规范条款进行检查。
此外,目标的属性设置情况和目标的属性选择情况,均与模型中目标的属性有关,因此,在进行建模规范检查时,可以将这两个类型合并为一类,即,目标的属性。
针对建模规范中不同类型的规范条款,获取待检查属性所对应的属性设置内容的过程不同,下面将针对待检查项的每一个类型逐一介绍获取待检查属性所对应的属性设置内容的过程。
(1)待检查项属于软件配置环境类
软件配置环境即Matlab Simulink的Model Configuration Parameters中的运行环境配置,在MAAB规范和MISRA AC SLSF规范中均有对Model Configuration Parameters中各部分内容的设置要求。
确定出待检查项属于软件配置环境类后,获取待检查模型的模型名称,以及与该待检查项相匹配的待检查属性的属性名称;基于模型名称和属性名称,从待检查模型中获取与该待检查属性对应的属性设置内容。
其中,可以通过函数CheckModel=gcs获取待检查模型的名称,其中,“gcs”是获取模型名称的指令,利用该指令从加载到Matlab运行环境中的待检查模型中获取模型名称,并存储到变量CheckModel中。后续可以直接从CheckModel中读取待检查模型的名称。
然后,通过函数DIAG01=get_param(CheckModel,'SetupName')读取待检查模型中与待检查项的待检查属性的属性设置内容,并将该属性设置内容存储在变量DIAG01中。
其中,CheckModel是待检查模型的模型名称,SetupName为待检查属性的属性名称,每一个待检查项都有对应的唯一的属性名称。
在一种可能的实现方式中,软件开发人员在开发软件代码时,从待检查模型中查找到该待检查项对应的待检查属性的属性名称并将该属性名称赋值给相应的变量,例如,SetupName。
以“MISRA AC SLSF004”为例,该规范条款规定Algebraic loop应设置为“error”,其中,待检查项对应的待检查属性名称是“AlgebraicLoopMsg”,因此,使用DIAG01=get_param(CheckModel,'AlgebraicLoopMsg')可以获知Algebraic loop在该待检查模型中的属性设置内容,例如,在该待检查模型中,Algebraic loop被设置成“warning”,并将“warning”存储在变量DIAG01中。
需要说明的是,不同的待检查属性的属性设置内容存储在不同的变量中,例如,待检查属性A对应的属性设置内容存储在DIAG02中。
(2)待检查项属于待检查目标属性
待检查目标的属性包括待检查目标的某些特定属性设置情况,以及某些特定属性是否选择。
针对待检查目标的属性这一类型,获取待检查模型的模型名称及与待检查项相匹配的待检查属性的属性名称;然后,基于模型名称和属性名称,从待检查模型中获取包含属性名称的全部待检查目标的路径;最后,基于待检查目标的路径和属性名称,从待检查模型中获取待检查属性对应的属性设置内容。
基于对待检查建模规范的分析、整理结果(包括待检查项对应的待检查属性、待检查属性的设置需求),首先调用函数NeedBlockPath=find_system(‘CheckModel’,'regexp','on','properityName','.')将待检查模型中包含待检查属性的待检查目标的路径存储至变量NeedBlockPath中。其中,此处的路径是指待检查目标在待检查模型中的存储路径。
其中,该函数中的“CheckModel”为待检查模型的名称,properityName为待检查属性的名称,'regexp','on'为该函数的固定参数,表示开启正则表达式搜索功能,即,利用正则表达式搜索功能从待检查模型中查找到属性名称为properityName全部待检查目标。
然后,调用函数NeedBlockPara=get_param(NeedBlockPath,’properityName’)读取待检查目标中待检查属性的属性设置内容并存储在变量NeedBlockPara中,其中,NeedBlockPath中存储的是待检查目标在待检查模型中的存储路径,待检查目标是指具有待检查属性的目标;Properityname为待检查属性的属性名称。
以“MISRA AC SLSF 008 B”为例,该规范条款规定除了取整模块,其它Simulink模块如果允许取整行为,则应该设置为向0取整。通过对待检查模型中允许取整行为的模块进行分析,得到“允许取整”的模块所对应的待检查属性的属性名称properityName为“RndMeth”,因此,通过调用函数NeedBlockPath=find_system('CheckModel','regexp','on','RndMeth','.')能够读取允许取整行为的模块的路径并存储在变量NeedBlockPath中。
然后,基于变量NeedBlockPath,调用函数NeedBlockPara=get_param(NeedBlockPaths,'RndMeth')将允许取整行为的模块的属性配置内容存储在NeedBlockPara中。
(3)待检查项属于模块的使用情况
此类待检查项是检查待检查模型中是否使用了建模规范不允许使用的模块(Block)。
对于此类待检查项,先获取待检查模型的模型名称,以及目标模块的属性名称,其中,目标模块为待检查建模规范中不允许使用的模块;然后,基于模型名称和属性名称,从待检查模型中获取包含目标模块的路径。
其中,基于模型名称和属性名称,从待检查模型中获取包含目标模块的路径具体包括:基于模型名称获取待检查模型包含的全部模块类型,然后,从全部模块类型中查找与目标模块的属性名称相匹配的模块所对应的路径。
具体的,调用函数NeedBlockPaths=find_system('CheckModel','regexp','on','NeedBlockType','TypeName')读取目标模块在待检查模型中的存储路径,并存储在变量NeedBlockPaths中;
其中,CheckModel为待检查模型的模型名称;NeedBlockType为模块类型,是固定参数,以实现对各种类型的模块进行检查的功能,该参数可以从预先读取的该待检查模型的各个模块类型中读取;TypeName为目标模块的属性名称;'regexp','on'为函数的固定参数,功能为开启正则表达式搜索,即,利用正则表达式搜索功能从待检查模型中查找到模块类型中包含TypeName的全部模块,即目标模块。
然后,检查NeedBlockPaths是否为空数组,若NeedBlockPaths为空数组说明待检查模型中没有使用不允许使用的模块;若NeedBlockPaths不为空,说明在待检查模型中使用了不允许使用的模块。
S130,针对每一待检查项,对比该待检查项相匹配的待检查属性所对应的属性设置内容及设置要求,得到所述待检查建模规范的检查结果。
针对待检查模型所要求使用的待检查建模规范中的每一条待检查项,比较该待检查项相匹配的待检查属性的属性设置内容,以及该待检查属性的设置要求,得到该待检查建模规范的检查结果。
其中,每一待检查属性的设置要求通过预先对待检查建模规范进行分析整理得到。
如图2所示,S130可以通过以下步骤实现:
S131,针对每一待检查项,比较该待检查项相匹配的待检查属性的属性设置内容与该待检查属性的设置要求是否一致;如果待检查建模规范中全部待检查项均一致,则执行S132;如果待检查建模规范中任一待检查项不一致,则执行S133。
针对任一待检查项,若该待检查项对应的待检查属性的属性设置内容与设置要求一致,则确定待检查模型针对该待检查项设置正确;反之,若该待检查项对应的待检查属性的属性设置内容与设置要求不一致,则确定待检查模型针对该待检查项设置不正确。
S132,确定待检查模型符合该待建模规范的要求。
如果待检查模型针对待检查建模规范中全部待检查项均设置正确,则确定该待检查模型符合待建模规范的要求。
S133,确定待检查模型不符合该带建模规范的要求。
如果待检查模型针对待检查建模规范中任一待检查项设置不正确,则确定该待检查模型不符合待建模规范的要求。
此外,需要说明的是,本实施例并不限定步骤S110~S130的执行顺序。
本实施例提供的建模规范检查方法,将待检查建模规范中的每一条待检查的规范条款作为待检查项;针对每一项待检查项,从待检查模型中获取与该待检查项相匹配的待检查属性的属性设置内容。然后,将该待检查属性的属性设置内容与对应的设置要求进行对比,从而得到该待检查项的检查结果;获取待检查建模规范中每一条待检查项对应的检查结果,得到待检查模型针对该待检查建模规范的检查结果。该方法运行在创建模型的软件环境中,因此避免了利用第三方软件进行建模规范检查时不同软件之间的交互导致的问题定位的复杂性。而且,与Model Advisor工具相比,该方法利用上述过程能够针对规定的待检查建模规范中的任意一条建模规范进行检查。
请参见图3,示出了本发明实施例提供的另一种建模规范检查方法的流程图,本实施例中将着重介绍对待检查模型进行数据储备的过程。如图3所示,该方法在图1所示实施例中的步骤S120之前还包括以下步骤:
S210,获取待检查模型的模型名称,并基于该模型名称将待检查模型加载到创建该待检查模型所使用的软件运行环境中。
在对待检查模型进行检查之前,需要将待检查模型加载到建模所使用的软件运行环境中,例如,Matlab的软件运行环境。当然,在其它实施例中,建模所使用的软件运行环境还可以是其它软件运行环境,此处不作限定。
在加载待检查模型之前,需要先获取该待检查模型的模型名称,例如,调用CheckModel=gcs获取待检查模型的名称;然后通过调用函数load_system(‘CheckModel.mdl’)将待检查模型加载到Matlab的软件运行环境中,其中,CheckModel为待检查模型的模型名称。
S220,基于模型名称获得待检查模型内各个待检查目标的存储路径,并存储到路径变量。
调用函数BlockPaths=find_system(‘CheckModel’,‘Type’,‘Block’),读取待检查模型中各待检查目标(即,block、subsystem、system)的路径读取并存储在数组BlockPaths中,供后续查找路径使用。
其中,CheckModel为待检查模型的模型名称,Block和Type是函数的固定参数,表示需要读取所有类型的待检查目标的路径。
调用函数NeedBlockType=get_param(BlockPaths,‘BlockType’),将BlockPaths中所有路径对应的待检查目标的类型读取并存储在NeedBlockType中。
其中,BlockPaths为待检查模型中各待检查目标的路径,BlockType是函数的固定参数,表示需要读取各个待检查目标的类型。
通过以上函数的调用,读取待检查模型包含的各个待检查目标模块类型并存储到对应的变量中,即,NeedBlockType中。
存储到变量中的数据,后续可以通过函数直接调用该变量,例如,在函数NeedBlockPaths=find_system('CheckModel','regexp',on','NeedBlockType','TypeName')中使用了NeedBlockType这一变量。
本实施例提供的建模规范检查方法,在对待检查模型是否符合建模规范的要求之前,先将待检查模型加载到检查方法的运行环境中,并存储该待检查模型内各个待检查目标的路径及模型类型,以便后续对建模规范进行自动检查时直接读取,从而保证该建模规范检查方法的顺利执行。
相应于上述的建模规范检查方法实施例,本发明还提供了建模规范检查装置实施例。
请参见图4,示出了本发明实施例提供的一种建模规范检查装置的框图,该装置运行于创建模型所使用的运行环境中,例如,Matlab的运行环境。如图4所示,该装置包括确定模块110、获取模块120和对比模块130。
确定模块110,用于确定待检查建模规范中任一条未检查的规范条款为待检查项。
其中,待检查建模规范是创建待检查模型时所要求使用的建模规范。
获取模块120,用于获取待检查模型中与待检查项相匹配的待检查属性的属性设置内容。
在对待检查模型进行建模规范检查之前,需要将待检查模型加载到Matlab的运行环境中,然后,通过对待检查模型进行分析,读取该待检查模型中的各个待检查目标路径及各个待检查目标的类型并存储,以便后续步骤使用。
针对每一条待检查项,在进行自动检查之前,需要确定该条待检查项是对具有哪些属性的待检查目标进行检查。对于待检查的建模规范,可以分析、整理得到每一条规范条款所对应的待检查属性,以及与待检查属性的设置要求。
对于同一建模规范,只需进行一次上述的分析、整理过程,后续直接使用分析、整理得到的结果。该结果可以写入相应的软件代码中,或者,将该结果与对应的待检查项对应存储。
确定待检查项后,即可确定与该待检查项对应的待检查属性的属性名称,然后,基于待检查属性的属性名称,从待检查模型中获取相应的属性设置内容。
针对建模规范中不同类型的规范条款,获取待检查属性所对应的属性设置内容的过程不同。待检查项的类型包括:(1)软件配置环境类型;(2)待检查目标的属性,其中,待检查目标的属性包括所述待检查目标的属性设置情况和所述待检查目标的属性选择情况;(3)模块的使用情况。
针对(1)待检查项属于软件配置环境类,获取模块120具体用于:获取待检查模型的模型名称,以及与待检查项相匹配的待检查属性的属性名称;基于模型名称和所述属性名称,从待检查模型中获取与待检查属性对应的属性设置内容。
针对(2)待检查目标的属性,获取模块120具体用于:获取待检查模型的模型名称,以及与待检查项相匹配的待检查属性的属性名称;基于模型名称和属性名称,从待检查模型中获取包含属性名称的全部待检查目标的路径;基于待检查目标的路径和属性名称,从待检查模型中获取待检查属性对应的属性设置内容。
针对(3)模块的使用情况,获取模块具体用于:获取待检查模型的模型名称,以及目标模块的属性名称。其中,目标模块为所述待检查建模规范中不允许使用的模块。基于模型名称和属性名称,从待检查模型中获取包含目标模块的路径。
其中,基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述目标模块的路径具体包括:基于所述模型名称获取所述待检查模型包含的全部模块类型;从所述全部模块类型中查找与所述目标模块的属性名称相匹配的模块所对应的路径。
对比模块130,用于针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到待检查模型针对该待检查建模规范的检查结果。
其中,待检查属性的设置要求通过分析待检查建模规范得到。
在一种可能的实现方式中,如图5所示,对比模块130包括:
比较子模块131,用于针对每一待检查项,比较该待检查项相匹配的待检查属性的属性设置内容与该待检查属性的设置要求是否一致;
第一确定子模块132,用于当待检查建模规范中全部待检查项对应的属性设置内容与设置要求均一致时,确定待检查模型针对待检查建模规范设置正确。
第二确定子模块133,用于当待检查建模规范中任一待检查项对应的属性设置内容与设置要求不一致时,确定待检查模型针对待检查建模规范设置不正确。
本实施例提供的建模规范检查装置,将待检查建模规范中的每一条待检查的规范条款作为待检查项;针对每一项待检查项,从待检查模型中获取与该待检查项相匹配的待检查属性的属性设置内容。然后,将该待检查属性的属性设置内容与对应的设置要求进行对比,从而得到该待检查项的检查结果;获取待检查建模规范中每一条待检查项对应的检查结果,得到待检查模型针对该待检查建模规范的检查结果。该装置运行在创建模型的软件环境中,因此避免了利用第三方软件进行建模规范检查时不同软件之间的交互导致的问题定位的复杂性。而且,与Model Advisor工具相比,该装置利用上述过程能够针对规定的待检查建模规范中的任意一条建模规范进行检查。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明各实施例中的装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本发明所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种建模规范检查方法,其特征在于,运行于创建模型的软件环境中,所述方法包括:
确定待检查建模规范中任一条未检查的规范条款为待检查项,所述待检查建模规范是创建待检查模型时所要求使用的建模规范;
获取所述待检查模型中与所述待检查项相匹配的待检查属性的属性设置内容;
针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到所述待检查模型针对该待检查建模规范的检查结果,所述待检查属性的设置要求通过分析所述待检查建模规范得到。
2.根据权利要求1所述的方法,其特征在于,所述针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到所述待检查建模规范的检查结果,包括:
针对每一待检查项,比较该待检查项相匹配的待检查属性的属性设置内容与该待检查属性的设置要求是否一致;
如果所述待检查建模规范中全部待检查项对应的属性设置内容与设置要求均一致,则确定所述待检查模型针对所述待检查建模规范设置正确;
如果所述待检查建模规范中任一待检查项对应的属性设置内容与设置要求不一致,则确定所述待检查模型针对所述待检查建模规范设置不正确。
3.根据权利要求1所述的方法,其特征在于,所述待检查项的类型包括:软件配置环境、待检查目标的属性和模块的使用情况,所述待检查目标包括模块、子系统和系统,所述待检查目标的属性包括所述待检查目标的属性设置情况和所述待检查目标的属性选择情况。
4.根据权利要求3所述的方法,其特征在于,所述待检查项的类型属于软件配置环境;所述获取所述待检查模型中与所述待检查项相匹配的待检查属性的属性设置内容,包括:
获取所述待检查模型的模型名称,以及与所述待检查项相匹配的待检查属性的属性名称;
基于所述模型名称和所述属性名称,从所述待检查模型中获取与所述待检查属性对应的属性设置内容。
5.根据权利要求3所述的方法,其特征在于,所述待检查项的类型属于待检查目标的属性;所述从所述待检查模型中获取与所述待检查属性对应的属性设置内容,包括:
获取所述待检查模型的模型名称,以及与所述待检查项相匹配的待检查属性的属性名称;
基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述属性名称的全部待检查目标的路径;
基于所述待检查目标的路径和所述属性名称,从所述待检查模型中获取所述待检查属性对应的属性设置内容。
6.根据权利要求3所述的方法,其特征在于,所述待检查项的类型属于模块的使用情况;所述获取所述待检查模型中与所述待检查属性对应的属性设置内容,包括:
获取所述待检查模型的模型名称,以及目标模块的属性名称,所述目标模块为所述待检查建模规范中不允许使用的模块;
基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述目标模块的路径。
7.根据权利要求6所述的方法,其特征在于,所述基于所述模型名称和所述属性名称,从所述待检查模型中获取包含所述目标模块的路径,包括:
基于所述模型名称获取所述待检查模型包含的全部模块类型;
从所述全部模块类型中查找与所述目标模块的属性名称相匹配的模块所对应的路径。
8.一种建模规范检查装置,其特征在于,该装置运行于创建模型的软件环境中,所述装置包括:
确定模块,用于确定待检查建模规范中任一条未检查的规范条款为待检查项,所述待检查建模规范是创建待检查模型时所要求使用的建模规范;
获取模块,用于获取所述待检查模型中与所述待检查项相匹配的待检查属性的属性设置内容;
对比模块,用于针对每一待检查项,将该待检查项相匹配的待检查属性对应的属性设置内容及设置要求进行对比,得到所述待检查模型针对该待检查建模规范的检查结果,所述待检查属性的设置要求通过分析所述待检查建模规范得到。
9.根据权利要求8所述的装置,其特征在于,所述对比模块,包括:
比较子模块,用于针对每一待检查项,比较该待检查项相匹配的待检查属性的属性设置内容与该待检查属性的设置要求是否一致;
第一确定子模块,用于当所述待检查建模规范中全部待检查项对应的属性设置内容与设置要求均一致时,确定所述待检查模型针对所述待检查建模规范设置正确;
第二确定子模块,用于当所述待检查建模规范中任一待检查项对应的属性设置内容与设置要求不一致时,确定所述待检查模型针对所述待检查建模规范设置不正确。
10.根据权利要求8所述的装置,其特征在于,所述待检查项的类型包括:软件配置环境、待检查目标的属性和模块的使用情况,所述待检查目标包括模块、子系统和系统,所述待检查目标的属性包括所述待检查目标的属性设置情况和所述待检查目标的属性选择情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910179711.2A CN109948212A (zh) | 2019-03-11 | 2019-03-11 | 建模规范检查方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910179711.2A CN109948212A (zh) | 2019-03-11 | 2019-03-11 | 建模规范检查方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109948212A true CN109948212A (zh) | 2019-06-28 |
Family
ID=67008678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910179711.2A Pending CN109948212A (zh) | 2019-03-11 | 2019-03-11 | 建模规范检查方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109948212A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338731A (zh) * | 2020-02-24 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 页面的显示方法、装置、计算机可读存储介质和计算机设备 |
CN111881055A (zh) * | 2020-08-03 | 2020-11-03 | 北京计算机技术及应用研究所 | 军用软件评测规范的Simulink模型设计方法 |
CN112100768A (zh) * | 2020-09-03 | 2020-12-18 | 中车工业研究院有限公司 | Cad模型审查方法及系统 |
CN113076622A (zh) * | 2021-02-22 | 2021-07-06 | 南京远思智能科技有限公司 | Fmu仿真模型规范性分析与校验系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009294745A (ja) * | 2008-06-03 | 2009-12-17 | Keihin Corp | モデル検証プログラム及びモデル検証装置 |
CN106951606A (zh) * | 2017-03-03 | 2017-07-14 | 浙江仕善汽车科技股份有限公司 | 一种实现模型规范检查自定义的方法 |
CN107145622A (zh) * | 2017-03-17 | 2017-09-08 | 成都飞机工业(集团)有限责任公司 | 一种可配置的产品模型质量检查方法 |
-
2019
- 2019-03-11 CN CN201910179711.2A patent/CN109948212A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009294745A (ja) * | 2008-06-03 | 2009-12-17 | Keihin Corp | モデル検証プログラム及びモデル検証装置 |
CN106951606A (zh) * | 2017-03-03 | 2017-07-14 | 浙江仕善汽车科技股份有限公司 | 一种实现模型规范检查自定义的方法 |
CN107145622A (zh) * | 2017-03-17 | 2017-09-08 | 成都飞机工业(集团)有限责任公司 | 一种可配置的产品模型质量检查方法 |
Non-Patent Citations (4)
Title |
---|
CEDRIC GOTZE: "Read BlockType of SimscapeBlocks - MATLAB Answers - MATLAB Central", 《HTTPS://WW2.MATHWORKS.CN/MATLABCENTRAL/ANSWERS/223593-READ-BLOCKTYPE-OF-SIMSCAPEBLOCKS》 * |
JULIOSUN: "simulink 查看model 的子模块find_system", 《HTTPS://BLOG.CSDN.NET/COLDDIE/ARTICLE/DETAILS/7199426》 * |
TOMATO-: "Simulink 中 model advisor 检查规则自定义", 《HTTPS://BLOG.CSDN.NET/J353838430/ARTICLE/DETAILS/77923734》 * |
道客巴巴: "Simulink Stateflow建模规范--HIT-AEEC", 《HTTPS://WWW.DOC88.COM/P-9922818500393.HTML》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338731A (zh) * | 2020-02-24 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 页面的显示方法、装置、计算机可读存储介质和计算机设备 |
CN111881055A (zh) * | 2020-08-03 | 2020-11-03 | 北京计算机技术及应用研究所 | 军用软件评测规范的Simulink模型设计方法 |
CN112100768A (zh) * | 2020-09-03 | 2020-12-18 | 中车工业研究院有限公司 | Cad模型审查方法及系统 |
CN113076622A (zh) * | 2021-02-22 | 2021-07-06 | 南京远思智能科技有限公司 | Fmu仿真模型规范性分析与校验系统及方法 |
CN113076622B (zh) * | 2021-02-22 | 2023-12-12 | 南京远思智能科技有限公司 | Fmu仿真模型规范性分析与校验系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948212A (zh) | 建模规范检查方法及装置 | |
CN1703703B (zh) | 用于检验用来命令装备特别是站场装备的铁路逻辑软件引擎的设备和方法 | |
CN105068929A (zh) | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 | |
CN107665171A (zh) | 自动回归测试方法及装置 | |
CN101196844B (zh) | 一种硬件模块的测试系统及方法 | |
CA2122182A1 (en) | Method for rapid prototyping of programming problems | |
CN105512044B (zh) | 用于关键字驱动测试的对象库的更新方法及系统 | |
CN110096434A (zh) | 一种接口测试方法及装置 | |
CN109783350A (zh) | 接口测试方法、装置及计算机可读存储介质 | |
CN110471834A (zh) | 多交易渠道下的信用卡模拟测试方法及相关设备 | |
CN112486518B (zh) | 共识算法装配方法及装置 | |
CN104834591B (zh) | 测试autosar软件组件的测试方法及系统 | |
US6694290B1 (en) | Analyzing an extended finite state machine system model | |
EP1548581A2 (en) | Methods, apparatus and programs for system development | |
CN109739526A (zh) | 代码更新方法和装置 | |
CN110515755A (zh) | 接口功能验证方法、装置、设备及计算机可读存储介质 | |
US6853963B1 (en) | Analyzing an extended finite state machine system model | |
CN116257438A (zh) | 接口测试用例的更新方法及相关设备 | |
CN108897678B (zh) | 静态代码检测方法和静态代码检测系统、存储设备 | |
Bertolino et al. | An approach to integration testing based on architectural descriptions | |
CN114237754A (zh) | 一种数据加载方法、装置、电子设备以及存储介质 | |
CN110968558B (zh) | 一种原型、实例及文件夹的重命名方法、系统及存储介质 | |
Fujita et al. | Towards hybrid intelligence for logic error detection | |
CN110276443A (zh) | 模型转换一致性验证及分析方法、装置及存储介质 | |
CN106610899B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Applicant after: Beijing Jingwei Hengrun Technology Co.,Ltd. Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Applicant before: Beijing Jingwei HiRain Technologies Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190628 |