CN114327614A - 参考模型数据流记录和分析的方法及应用 - Google Patents
参考模型数据流记录和分析的方法及应用 Download PDFInfo
- Publication number
- CN114327614A CN114327614A CN202111645134.5A CN202111645134A CN114327614A CN 114327614 A CN114327614 A CN 114327614A CN 202111645134 A CN202111645134 A CN 202111645134A CN 114327614 A CN114327614 A CN 114327614A
- Authority
- CN
- China
- Prior art keywords
- reference model
- analysis
- recording
- functional
- data flow
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种参考模型数据流记录和分析的方法及应用,该方法包括以下步骤:对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,其中,所述目标参考模型包括所述标准参考模型的源代码和打印代码,所述打印代码用于记录所述标准参考模型的源代码运行信息和状态;以及根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析。该方法能够通过将标准参考模型转换成能记录内部数据和状态的目标参考模型,使目标参考模型仿真输出的数据记录用于生成可读性高的数据流报告,方便数据的追踪和检测。
Description
技术领域
本发明是关于芯片验证领域,特别是关于一种参考模型数据流记录和分析的方法及应用。
背景技术
随着设计变得越来越复杂,根据设计规范编写的参考模型也会变得很复杂,而且对于复杂的设计,不能对所有功能逐条编写测试用例并预知其行为,采用受约束的随机测试方法是对复杂设计进行全面验证的有效方法。
对于随机测试,由于不可预知其在设计状态空间里的执行序列,一方面,当待测设计输出与参考模型输出比对不一致的时候,可能是存在待测设计的错误或者输入激励配置不合法,因为只能看到参考模型最终输出结果,而不知道对应测试用例的执行轨迹和数据流,此时往往需要花费较多时间去追溯定位问题的源头。
现有的解决方案是:1.手工在参考模型加入部分打印语句观测对应信号的值,其缺点是每次只能观察指定的信号,需要反复多次重复编译仿真,期间需要消耗大量时间,效率低下且可读性差。2.用软件调试工具设置断点观测参考模型内部信号的变化,其通用性比较好,但缺点是需要从模型最终运行结果反推中间状态,反复多次逐步执行,效率比较低下。
另一方面,当所有测试用例都测试通过后,需要衡量验证的完备性。最直接的方式就是使用代码覆盖率,这衡量了执行了设计中的多少代码,但这是对于设计规范的“实现”的测试完备性,而不是设计规范本身测试的完备性,如果待测设计遗漏设计规范上的某些功能点且随机测试恰好没有覆盖到,那么即使最终代码覆盖率100%也不能发现这个漏洞。所以需要收集功能覆盖率衡量设计规范本身的测试完备性。
现有实现方案是构建覆盖点或覆盖组对随机激励在特定时刻进行数据采样,不可能穷尽所有信号组合构建各种覆盖组进行采样,这会造成大量仿真开销,而采样不充分又可能遗漏某些复杂信号组合对应的功能点,难以实现比较完备的功能覆盖。参考模型作为体现设计规范功能描述的黄金模型,其中的每一行代码,每一个条件组合都是重要功能点,如果收集参考模型详细运行信息用来衡量功能覆盖情况,将可以进一步保证验证的完备性。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种参考模型数据流记录和分析的方法及应用,解决参考模型不透明导致的调试困难和功能覆盖率收集困难的问题。
为实现上述目的,本发明的实施例提供了一种参考模型数据流记录和分析的方法。
在本发明的一个或多个实施方式中,所述方法包括:对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,其中,所述目标参考模型包括所述标准参考模型的源代码和打印代码,所述打印代码用于记录所述标准参考模型的源代码运行信息和状态;以及根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析。
在本发明的一个或多个实施方式中,所述方法还包括:根据所述标准参考模型定义功能状态点和功能状态空间,并根据所述功能状态点和所述目标参考模型生成功能覆盖率报告。
在本发明的一个或多个实施方式中,所述对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,包括:按照字符流读取所述标准参考模型的源代码;根据预设转换规则将所述源代码转换成对应的词法单元;根据预设文法对所述词法单元进行语法分析,生成语法分析树;以及根据预设语法制导定义对所述语法分析树执行对应的语义动作,生成目标参考模型。
在本发明的一个或多个实施方式中,根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析,包括:根据预设格式识别标准参考模型的源代码中的变量;以及将所述变量以预设格式插入所述打印代码的对应位置生成打印语句,并执行所述打印语句,以获得数据流报告。
在本发明的一个或多个实施方式中,根据所述标准参考模型定义功能状态点和功能状态空间,并根据所述功能状态点和所述目标参考模型生成功能覆盖率报告,包括:根据所述标准参考模型定义功能状态点和功能状态空间,其中,所述功能状态点为所述打印代码中的一个条目;以及统计所述功能状态点和所述功能状态点被覆盖的次数,并生成功能覆盖率报告。
在本发明的一个或多个实施方式中,所述功能覆盖率报告包括:未覆盖的功能状态点的状态、已覆盖的功能状态点的状态和分布、以及覆盖率中的至少一个。
在本发明的另一个方面当中,提供了一种参考模型数据流记录和分析的装置,其包括转换模块、数据流记录处理模块和功能覆盖分析模块。
转换模块,用于对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,其中,所述目标参考模型包括所述标准参考模型的源代码和打印代码,所述打印代码用于记录所述标准参考模型的源代码运行信息和状态。
数据流记录处理模块,用于根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析。
功能覆盖分析模块,用于根据所述标准参考模型定义功能状态点和功能状态空间,并根据所述功能状态点和所述目标参考模型生成功能覆盖率报告。
在本发明的一个或多个实施方式中,所述转换模块还用于:按照字符流读取所述标准参考模型的源代码;根据预设转换规则将所述源代码转换成对应的词法单元;根据预设文法对所述词法单元进行语法分析,生成语法分析树;以及根据预设语法制导定义对所述语法分析树执行对应的语义动作,生成目标参考模型。
在本发明的一个或多个实施方式中,所述数据流记录处理模块还用于:根据预设格式识别标准参考模型的源代码中的变量;以及将所述变量以预设格式插入所述打印代码的对应位置生成打印语句,并执行所述打印语句,以获得数据流报告。
在本发明的一个或多个实施方式中,所述功能覆盖分析模块还用于:根据所述标准参考模型定义功能状态点和功能状态空间,其中,所述功能状态点为所述打印代码中的一个条目;以及统计所述功能状态点和所述功能状态点被覆盖的次数,并生成功能覆盖率报告。
在本发明的一个或多个实施方式中,所述功能覆盖率报告包括:未覆盖的功能状态点的状态、已覆盖的功能状态点的状态和分布、以及覆盖率中的至少一个。
在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的参考模型数据流记录和分析的方法。
在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的参考模型数据流记录和分析的方法的步骤。
与现有技术相比,根据本发明实施方式的参考模型数据流记录和分析的方法及应用,其能够通过将标准参考模型转换成能记录内部数据和状态的目标参考模型,使目标参考模型仿真输出的数据记录用于生成可读性高的数据流报告,方便数据的追踪和检测,可以提高环境调试、问题定位的效率;还能够通过参考模型定义功能状态空间,对数据记录条目进行统计,计算出功能覆盖率,进而可以衡量和提高验证的完备性。
附图说明
图1是根据本发明一实施方式的参考模型数据流记录和分析的方法的流程图;
图2是根据本发明一实施方式的参考模型数据流记录和分析的方法的具体流程图;
图3是根据本发明一实施方式的参考模型数据流记录和分析的方法的文法示例图;
图4是根据本发明一实施方式的参考模型数据流记录和分析的方法的语法分析树示例图;
图5是根据本发明一实施方式的参考模型数据流记录和分析的方法的语法制导定义示例图;
图6是根据本发明一实施方式的参考模型数据流记录和分析的方法的注释语法分析树示例图;
图7是根据本发明一实施方式的参考模型数据流记录和分析的方法的示例流程图;
图8是根据本发明一实施方式的参考模型数据流记录和分析的装置的结构图;
图9是根据本发明一实施方式的参考模型数据流记录和分析的计算设备的硬件结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
以下结合附图,详细说明本发明各实施例提供的技术方案。
实施例1
如图1所示,介绍本发明的一个实施例中参考模型数据流记录和分析的方法,该方法包括如下步骤。
在步骤S101中,对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型。
通过词法分析和语法分析对标准参考模型进行处理,构造出能记录源代码运行信息和状态的打印代码,进而得到目标参考模型。将目标参考模型在仿真过程中的得到的数据记录跟标准参考模型源代码关联起来,得到特定形式的数据流记录。
词法分析和语法分析不仅包括利用编译技术构造出词法分析器、语法分析器以及定义语法制导的翻译方案,对参考模型进行处理,也包括直接通过词法分析、语法分析的一般方法对源代码进行处理,如定义代表各种语句的正则表达式去解析源代码。特定形式的数据流记录可以由数据记录结合源代码生成,也可以在目标参考模型的打印格式中描述,直接通过仿真输出。
将标准参考模型转换成目标参考模型实质上就是将一种代码翻译成另一种代码的过程,通过词法分析、语法分析,可以构造出一棵语法分析树,定义语法分析树节点对应的属性,即把一些属性附加到代表语言结构的文法符号上,从而把信息和一个语言构造联系起来。
语法制导定义(Syntax-Directed Definition)通过与文法产生式相关的语义规则来描述属性的值,语法制导的翻译方案(Syntax-Directed Translation scheme)在产生式体中嵌入称为语义动作的程序片段,在语法分析过程中执行程序片段实现翻译。语法制导定义更加易读,适合作为对翻译的规约,语法制导的翻译方案可以作为翻译的实现。对于简单的翻译,也可以直接通过脚本语言定义出词法单元或各种语句的正则表达式,手工构造出一个能进行词法分析、语法分析、完成翻译过程的翻译器。
在步骤S102中,根据目标参考模型输出的数据,实现对参考模型数据流的记录和分析。
目标参考模型的仿真输出得到的数据流记录(打印代码)反映了参考模型完备的运行轨迹和状态,但是只记录数据值不方便阅读,通过将标准参考模型的源代码回填,把记录的数据值和对应的变量和代码关联起来,得到可读性高的数据流报告。
实施例2
如图2至图7所示,介绍本发明的一个实施例中参考模型数据流记录和分析的方法,该方法包括如下步骤。
在步骤S201中,按照字符流读取标准参考模型的源代码,根据预设转换规则将源代码转换成对应的词法单元。
按照字符流读取标准参考模型的源代码,根据预先定义的转换规则过滤掉空白字符、注释和换行符(换行符用于计算当前行号),并返回关键词、运算符、分隔符、标识符等有意义的词法单元,其中,标识符可以是变量标识符、数组标识符和函数标识符中的至少一种。
转换规则包括模式和动作,每一个模式是一个正则表达式,用来识别输入字符,动作是对应模式的代码片段,用于实现过滤字符或者返回词法单元、编辑属性等行为,词法单元的相关属性储存在称为符号表的数据结构中,每个词法单元都包含表示自身字符序列的词素属性,变量标识符词法单元还包含表示出现位置的行号属性、表示变量名的变量属性、表示打印格式的格式属性。
在步骤S202中,根据预设文法对词法单元进行语法分析,生成语法分析树。
读入词法单元流,根据语言的文法推导出语法分析树,语法分析树是推导的图形表示形式,语法分析树的每个内部结点表示一个文法产生式的应用,这个结点的子结点从左到右组成了这次推导过程中应用的产生式体,最顶层的根结点表示开始符号,底层的叶子结点是表示词法单元的终结符号,叶子结点从左到右组成此次语法分析的句子。
图3中的文法定义了一种包含数组变量的算术表达式的赋值语句,其中varid是变量标识符,arrid是数组标识符,假设varid和arrid都是由字母数字和下划线组成且由字母开头,区别在于后续是否紧跟字符“[”。
假设源代码中具有语句1:“zzz=xxx+yyy[uuu-vvv];”。zzz,xxx,uuu,vvv都是变量名,yyy是数组名,uuu-vvv的计算结果作为数组yyy的下标。
经过词法分析得到词法单元,以<token-name,attribute-value>的形式表示如下:
<varid,1><=><varid,2><+><arrid,3><[><varid,4><-><varid,5><]><;>
变量zzz被映射成词法单元<varid,1>,varid是表示变量标识符的抽象符号,1指向符号表中zzz对应的条目,其中存放了标识符zzz的名字,所处行号等信息。根据图3所示文法进行语法分析可以得到如图4的语法分析树。
在步骤S203中,根据预设语法制导定义对语法分析树执行对应的语义动作,生成目标参考模型。
通过语法制导的翻译方案,生成最终需要的目标参考模型的代码。把一些属性附加到代表语言构造的文法符号上,从而把信息和一个语言构造联系起来,语法制导定义通过与文法产生式相关的语义规则来描述属性的值。
如图5所示,定义了3个属性,code是由词法单元的词素的连接,即组成源代码,vars是变量组成的序列,format是对应变量的打印格式。这些属性都是综合属性,即所有结点符号的属性只依赖于自身和其子结点,在自底向上构造一棵语法分析树时,即可求得所有结点符号的属性。
以vars属性为例,根据图5所示的语法制导定义可以得到语句1标记了vars属性值的注释语法分析树,如图6所示:
在开始符号start对应的产生式start—>stmt添加如下语义动作:
{print(“start.code\n”);
print(“print(行号,)printf(“start.format\n”,start.vars);\n”);}
其他产生式对应的语义动作按照语法制导定义的描述计算对应的属性值。
假设词法单元的format属性值为“%h”,表示按照十六进制的格式打印。假设句子1对应的代码行号为10。
根据上述翻译方案对句子1进行语法分析,可以得到:
start.code=“zzz=xxx+yyy[uuu-vvv];”
start.vars=“zzz,xxx,uuu,vvv,yyy[uuu-vvv]”
start.format=“%h,%h,%h,%h,%h”
执行语义动作:
print(“zzz=xxx+yyy[uuu-vvv];\n”);
print(“print(\“10,\”);
printf(\“%h,%h,%h,%h,%h\\n\”,zzz,xxx,uuu,vvv,yyy[uuu-vvv]);\n”);
最终得到输出代码:
语句2:zzz=xxx+yyy[uuu-vvv];
语句3:print(“10,”);printf(“%h,%h,%h,%h,%h\n”,zzz,xxx,uuu,vvv,yyy[uuu-vvv]);
标准参考模型的源代码中的语句1经过处理,得到目标参考模型中的语句2(源代码)和语句3(打印语句),语句2等同于语句1,语句3跟在语句2之后(打印语句可以在源代码后,也可以在源代码前,目的是在不破坏文法结构和源代码语义的前提下得到能够记录源代码执行信息的打印代码,在源代码被执行的时候将所有信息记录并存储下来),当语句2被执行,随后语句3也会被执行,从而得到一条包含语句2的行号和所有变量值的数据记录条目。所有数据记录条目的顺序输出组成模型的运行轨迹和数据流。
在步骤S204中,根据预设格式识别标准参考模型的源代码中的变量;以及将变量以预设格式插入打印代码的对应位置生成打印语句,并执行打印语句,以获得数据流报告。
目标参考模型的仿真输出得到的数据流记录(打印代码)反映了参考模型完备的运行轨迹和状态,但是只记录数据值不方便阅读,通过将标准参考模型的源代码回填,把记录的数据值和对应的变量和代码关联起来,得到可读性高的数据流报告。
假设在执行完语句1后,变量zzz,xxx,uuu,vvv,yyy[uuu-vvv]对应的值为5,2,1,1,3,语句1所在行号为10,执行语句3,输出一条数据记录条目“10,5,2,1,1,3”,数据流记录处理模块逐条读取数据流记录,当读取到条目“10,5,2,1,1,3”时,根据条目中第一个分量“10”读取标准参考模型的第10行源代码,通过词法分析和语法分析,从左到右依次识别出对应的变量名,每识别出一个变量,就以预定形式插入数据记录条目中的下一个分量,最后可得到如下形式的输出:
10:zzz<5>=xxx<2>+yyy[uuu<1>-vvv<1>]<3>;
进一步的,可以将两行被执行代码之间的未执行代码也进行回填并标记为未执行。所有数据流记录条目处理完成可以得到一个反映标准参考模型运行轨迹和状态的可视化的报告。
在步骤S205中,根据标准参考模型定义功能状态点和功能状态空间,并根据功能状态点和目标参考模型生成功能覆盖率报告。
通过词法分析和语法分析对标准参考模型进行解析得到目标参考模型,定义功能状态点和功能状态空间,一个状态点表示一个具体的事件,一条语句是否被执行可以被定义为一个状态点,一个条件的各种变量值组合也可以被定义为不同的状态点,在本实施例中,一个功能状态点表示打印代码中的一个数据记录,状态空间表示所有可能覆盖到的事件的集合。对数据记录进行收集、统计,计算功能覆盖点的分布情况和功能覆盖率,进而生成功能覆盖报告。
对标准参考模型的源代码进行词法分析和语法分析,根据定义计算出所有状态点和状态空间。一个状态点表示一个具体的事件,一条语句是否被执行可以被定义为一个状态点,一个条件的各种变量值组合也可以被定义为不同的状态点,例如对于条件语句if(a||b),可以定义4个不同的状态点“0,0”、“0,1”、“1,0”、“1,1”,所有状态点的集合组成状态空间。状态空间表示所有可能覆盖到的事件的集合。
参考模型数据流记录的每一个条目对应于一个状态点。可以以散列的数据结构存储状态覆盖信息,散列的键为不同的状态点,对应的值为相应状态点覆盖的次数。在本实施例中,初始化的散列所有键对应的值都为0,每接受一个数据记录条目,相应键的对应的值加1。分析散列中存储的信息可以得到参考模型功能覆盖率报告,包括未覆盖状态点的状态,已覆盖状态点的状态及其分布,总的覆盖率中的至少一种。
如图8所示,介绍根据本发明具体实施方式的参考模型数据流记录和分析的装置。
在本发明的实施方式中,参考模型数据流记录和分析的装置包括转换模块801、数据流记录处理模块802和功能覆盖分析模块803。
转换模块801,用于对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,其中,目标参考模型包括标准参考模型的源代码和打印代码,打印代码用于记录标准参考模型的源代码运行信息和状态。
数据流记录处理模块802,用于根据目标参考模型输出的数据,实现对参考模型数据流的记录和分析。
功能覆盖分析模块803,用于根据标准参考模型定义功能状态点和功能状态空间,并根据功能状态点和目标参考模型生成功能覆盖率报告。
转换模块801还用于:按照字符流读取标准参考模型的源代码;根据预设转换规则将源代码转换成对应的词法单元;根据预设文法对词法单元进行语法分析,生成语法分析树;以及根据预设语法制导定义对语法分析树执行对应的语义动作,生成目标参考模型。
数据流记录处理模块802还用于:根据预设格式识别标准参考模型的源代码中的变量;以及将变量以预设格式插入打印代码的对应位置生成打印语句,并执行打印语句,以获得数据流报告。
功能覆盖分析模块803还用于:根据标准参考模型定义功能状态点和功能状态空间,其中,功能状态点为打印代码中的一个条目;以及统计功能状态点和功能状态点被覆盖的次数,并生成功能覆盖率报告。
在本实施例中,功能覆盖率报告包括:未覆盖的功能状态点的状态、已覆盖的功能状态点的状态和分布、以及覆盖率中的至少一个。
图9示出了根据本说明书的实施例的用于参考模型数据流记录和分析的计算设备90的硬件结构图。如图9所示,计算设备90可以包括至少一个处理器901、存储器902(例如非易失性存储器)、内存903和通信接口904,并且至少一个处理器901、存储器902、内存903和通信接口904经由总线905连接在一起。至少一个处理器901执行在存储器902中存储或编码的至少一个计算机可读指令。
应该理解,在存储器902中存储的计算机可执行指令当执行时使得至少一个处理器901进行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。
在本说明书的实施例中,计算设备90可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
根据本发明实施方式的参考模型数据流记录和分析的方法及应用,其能够通过将标准参考模型转换成能记录内部数据和状态的目标参考模型,使目标参考模型仿真输出的数据记录用于生成可读性高的数据流报告,方便数据的追踪和检测,可以提高环境调试、问题定位的效率;还能够通过参考模型定义功能状态空间,对数据记录条目进行统计,计算出功能覆盖率,进而可以衡量和提高验证的完备性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (10)
1.一种参考模型数据流记录和分析的方法,其特征在于,所述方法包括:
对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,其中,所述目标参考模型包括所述标准参考模型的源代码和打印代码,所述打印代码用于记录所述标准参考模型的源代码运行信息和状态;以及
根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析。
2.如权利要求1所述的参考模型数据流记录和分析的方法,其特征在于,所述方法还包括:
根据所述标准参考模型定义功能状态点和功能状态空间,并根据所述功能状态点和所述目标参考模型生成功能覆盖率报告。
3.如权利要求1所述的参考模型数据流记录和分析的方法,其特征在于,所述对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,包括:
按照字符流读取所述标准参考模型的源代码;
根据预设转换规则将所述源代码转换成对应的词法单元;
根据预设文法对所述词法单元进行语法分析,生成语法分析树;以及
根据预设语法制导定义对所述语法分析树执行对应的语义动作,生成目标参考模型。
4.如权利要求3所述的参考模型数据流记录和分析的方法,其特征在于,根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析,包括:
根据预设格式识别标准参考模型的源代码中的变量;以及
将所述变量以预设格式插入所述打印代码的对应位置生成打印语句,并执行所述打印语句,以获得数据流报告。
5.如权利要求2所述的参考模型数据流记录和分析的方法,其特征在于,根据所述标准参考模型定义功能状态点和功能状态空间,并根据所述功能状态点和所述目标参考模型生成功能覆盖率报告,包括:
根据所述标准参考模型定义功能状态点和功能状态空间,其中,所述功能状态点为所述打印代码中的一个条目;以及
统计所述功能状态点和所述功能状态点被覆盖的次数,并生成功能覆盖率报告。
6.如权利要求5所述的参考模型数据流记录和分析的方法,其特征在于,所述功能覆盖率报告包括:未覆盖的功能状态点的状态、已覆盖的功能状态点的状态和分布、以及覆盖率中的至少一个。
7.一种参考模型数据流记录和分析的装置,其特征在于,所述装置包括:
转换模块,用于对标准参考模型进行语法词法分析和语法分析,以获得目标参考模型,其中,所述目标参考模型包括所述标准参考模型的源代码和打印代码,所述打印代码用于记录所述标准参考模型的源代码运行信息和状态;
数据流记录处理模块,用于根据所述目标参考模型输出的数据,实现对所述参考模型数据流的记录和分析。
8.如权利要求7所述的参考模型数据流记录和分析的装置,其特征在于,所述装置还包括:
功能覆盖分析模块,用于根据所述标准参考模型定义功能状态点和功能状态空间,并根据所述功能状态点和所述目标参考模型生成功能覆盖率报告。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1至6中任一项所述的参考模型数据流记录和分析的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的参考模型数据流记录和分析的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111645134.5A CN114327614A (zh) | 2021-12-29 | 2021-12-29 | 参考模型数据流记录和分析的方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111645134.5A CN114327614A (zh) | 2021-12-29 | 2021-12-29 | 参考模型数据流记录和分析的方法及应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114327614A true CN114327614A (zh) | 2022-04-12 |
Family
ID=81017175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111645134.5A Pending CN114327614A (zh) | 2021-12-29 | 2021-12-29 | 参考模型数据流记录和分析的方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327614A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756183A (zh) * | 2022-06-16 | 2022-07-15 | 深圳市信润富联数字科技有限公司 | 数据打印方法、装置、设备及存储介质 |
-
2021
- 2021-12-29 CN CN202111645134.5A patent/CN114327614A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756183A (zh) * | 2022-06-16 | 2022-07-15 | 深圳市信润富联数字科技有限公司 | 数据打印方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhong et al. | An empirical study on API usages | |
CN102339252B (zh) | 基于xml中间模型以及缺陷模式匹配的静态检测系统 | |
CN109783079A (zh) | 一种基于程序分析和循环神经网络的代码注释生成方法 | |
WO2019075390A1 (en) | BOX BLACK MATCHING MOTOR | |
US8806452B2 (en) | Transformation of computer programs and eliminating errors | |
CN104503816A (zh) | 一种硬件语言vhdl到msvl的自动转换系统 | |
del Mar Gallardo et al. | Debugging UML designs with model checking | |
US20160306736A1 (en) | Translation verification testing | |
CN104572463A (zh) | 测试接口信息的方法及装置 | |
CN112256271B (zh) | 一种基于静态分析的区块链智能合约安全检测系统 | |
CN102141959B (zh) | 一种受上下文无关文法约束的测试用例生成方法 | |
Alalfi et al. | Automated reverse engineering of UML sequence diagrams for dynamic web applications | |
CN108563561B (zh) | 一种程序隐性约束提取方法及系统 | |
Horwitz et al. | Better debugging via output tracing and callstack-sensitive slicing | |
CN114327614A (zh) | 参考模型数据流记录和分析的方法及应用 | |
CN112131120B (zh) | 一种源代码缺陷检测方法及装置 | |
Goloveshkin et al. | Tolerant parsing with a special kind of" Any" symbol: the algorithm and practical application | |
CN109471637B (zh) | 电路图的审查脚本调试方法 | |
CN106484728A (zh) | 日志数据的生成方法、解析方法、生成装置及解析装置 | |
Sadu | Automatic detection of outdated comments in open source Java projects | |
CN109542698A (zh) | 一种基于变异测试的虚拟原型错误检测方法 | |
Chen et al. | Mining class temporal specification dynamically based on extended Markov model | |
CN117390055B (zh) | Jooq连表语句生成方法、设备以及介质 | |
Schöpp et al. | Requirements-based code model checking | |
Tomassetti et al. | Extracting variability from C and lifting it to mbeddr |
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 |