System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于VIATRA的大规模低代码系统模型验证的自动映射方法技术方案_技高网

基于VIATRA的大规模低代码系统模型验证的自动映射方法技术方案

技术编号:40529700 阅读:7 留言:0更新日期:2024-03-01 13:50
本发明专利技术公开了一种基于VIATRA的大规模低代码系统模型验证的自动映射方法,包括以下步骤:Epsilon验证语言EVL静态分析器对EVL验证程序进行解析,以提取所述EVL验证程序的抽象语法树,在运行时动态改变模型的结构和行为,同时进行类型推断以遍历所述抽象语法树,在运行时动态改变模型的结构和行为和类型推断遍历所述抽象语法树,确定每个节点的具体数据类型,生成一个填充已解析类型的第二抽象语法树;将EVL转化为VIATRA模式;对生成的VIATRA图模式进行执行和验证。本发明专利技术用于在大型模型的约束检查中显著减少计算成本并有效提高性能。

【技术实现步骤摘要】

本专利技术属于计算机,具体涉及一种基于viatra的大规模低代码系统模型验证的自动映射方法。


技术介绍

1、在现代企业应用中,低代码工程技术的广泛应用已经改变了软件开发的传统方式。低代码平台通过减少或消除手写代码的需求,让非专业开发人员也能构建复杂的应用程序,同时还能提高开发效率和速度。但是,低代码平台的应用也带来了新的挑战。随着底层模型规模的不断扩大,应用的复杂性增加,底层工件的规模也随之增长,使得低代码平台可能会面临各种扩展性挑战。

2、为了应对这些挑战,许多专门针对特定任务的编程语言,如对象约束语言(ocl)和epsilon对象语言(eol),被定制用来管理和操作底层模型。这些语言的设计目标是为了在复杂的模型上执行查询和验证任务。然而,这些现有的模型管理语言在处理大规模模型时,尤其是那些包含数百万元素的模型,其复杂查询的执行往往会对系统性能产生重大影响。


技术实现思路

1、鉴于以上存在的问题,本专利技术提供一种基于viatra的大规模低代码系统模型验证的自动映射方法,用于在大型模型的约束检查中显著减少计算成本并有效提高性能。

2、为解决上述技术问题,本专利技术采用如下的技术方案:

3、一种基于viatra的大规模低代码系统模型验证的自动映射方法,包括以下步骤:

4、epsilon验证语言evl静态分析器对evl验证程序进行解析,以提取所述evl验证程序的抽象语法树,所述抽象语法树是代码抽象语法结构的树状表现形式,在运行时动态改变模型的结构和行为,同时进行类型推断以遍历所述抽象语法树,确定每个节点的具体数据类型,生成一个填充已解析类型的第二抽象语法树;

5、将evl转化为viatra模式;

6、对生成的viatra图模式进行执行和验证。

7、一种可能的实施方式中,所述将evl转化为viatra模式包括:

8、从evl验证程序中的模型声明语句中提取模型包(epackage)的nsuri(命名空间uri);这些模型声明语句属于evl验证程序的一部分,用于指定验证上下文中使用的模型;提取的nsuri随后被映射到viatra查询语言(vql)的import语句中,以便在viatra模式中引用相应的模型元素;

9、将vql中的导入import语句转化为图形模式,所述图形模式的名称通过将模型名称与序列号连接起来生成,所述序列号根据图形模式创建的顺序自动生成;

10、在evl验证程序的操作体中进行一个关键的转换步骤;所述操作体指的是evl验证程序中处理属性调用表达式的部分,在所述转换步骤中,将由属性调用表达式组成的操作表达式翻译为viatra的图形模式,若操作符是不等式操作符,则在vql中生成包含不等式比较的额外检查约束;

11、若在使用拒绝reject和对所有forall操作时,生成附加的viatra图形模式,所述附加的viatra图形模式专门用于处理由reject和forall操作所引入的复杂模型匹配情况,确保否定逻辑在模型验证中得到正确实现;

12、在evl到viatra的映射过程中,对于每个第一阶操作,将其核心表达式即操作的主体替换为包含运行viatra调用参数run viatra call parameters对象的新操作调用表达式;所述run viatra call parameters对象封装了执行viatra查询所需的所有参数,包括模式名称和匹配器配置,从而实现对evl表达式的精确映射。

13、一种可能的实施方式中,所述run viatra call parameters对象包括:生成的vql模式、用于收集模式匹配的主vql模式的名称、在viatra的匹配器api上调用的方法的名称和参数,以及表示模式额外参数的eol表达式。

14、一种可能的实施方式中,所述对生成的viatra图模式进行执行和验证包括:

15、当evl引擎遇到被转换成vql的表达式时,激活viatraemf驱动程序内的运行viatra runviatra方法,runviatra方法进一步调用名为viatra引擎桥接viatra enginebridge的接口,所述viatra engine bridge接口用于从文本化vql模式中生成查询规范;viatra engine bridge接口从主要规范获取匹配器,并在匹配器上应用适当的参数执行匹配操作;evl引擎将找到的匹配结果与未优化的表达式的匹配结果结合,产生最终的模型验证结果。

16、采用本专利技术具有如下的有益效果:

17、(1)提出了一种将evl表达式映射到viatra图形模式,通过静态分析和类型推断,该方法能够获取evl表达式的抽象语法树和具体数据类型,自动识别和提取出可以优化的evl表达式,然后将这些表达式转化为viatra图形模式。

18、(2)通过将evl表达式映射为viatra图形模式,利用viatra的增量执行引擎,大大提高了模型验证的执行效率,特别是在处理大型模型时,能够显著减少计算成本和执行时间。同时,由于使用了类型推断和静态分析,使得映射和验证过程更为准确和可靠,能够有效地预测和理解程序的行为,减少了错误和不准确的结果。

19、(3)具有很好的可扩展性,可以轻松地处理大规模的低代码系统模型,并且不依赖于云端的弹性可扩展计算资源,因此也可以在其他部署场景中使用。在后续的迭代中,还可以进一步扩展,包括映射更复杂的表达式。

本文档来自技高网...

【技术保护点】

1.一种基于VIATRA的大规模低代码系统模型验证的自动映射方法,其特征在于,包括以下步骤:Epsilon验证语言EVL静态分析器对EVL验证程序进行解析,以提取所述EVL验证程序的抽象语法树,所述抽象语法树是代码抽象语法结构的树状表现形式,在运行时动态改变模型的结构和行为,同时进行类型推断以遍历所述抽象语法树,确定每个节点的具体数据类型,生成一个填充已解析类型的第二抽象语法树;将EVL转化为VIATRA模式;对生成的VIATRA图模式进行执行和验证。

2.如权利要求1所述的基于VIATRA的大规模低代码系统模型验证的自动映射方法,其特征在于,所述将EVL转化为VIATRA模式包括:从EVL验证程序中的模型声明语句中提取模型包(EPackage)的NsUri(命名空间URI);这些模型声明语句属于EVL验证程序的一部分,用于指定验证上下文中使用的模型;提取的NsUri随后被映射到VIATRA查询语言(VQL)的导入import语句中,以便在VIATRA模式中引用相应的模型元素;将VQL中的import语句转化为图形模式,所述图形模式的名称通过将模型名称与序列号连接起来生成,所述序列号根据图形模式创建的顺序自动生成;在EVL验证程序的操作体中进行一个关键的转换步骤;所述操作体指的是EVL验证程序中处理属性调用表达式的部分,在所述转换步骤中,将由属性调用表达式组成的操作表达式翻译为VIATRA的图形模式,若操作符是不等式操作符,则在VQL中生成包含不等式比较的额外检查约束;若在使用拒绝reject和对所有forAll操作时,生成附加的VIATRA图形模式,所述附加的VIATRA图形模式专门用于处理由reject和forAll操作所引入的复杂模型匹配情况,确保否定逻辑在模型验证中得到正确实现;在EVL到VIATRA的映射过程中,对于每个第一阶操作,将其核心表达式即操作的主体替换为包含运行viatra调用参数Run Viatra Call Parameters对象的新操作调用表达式;所述Run Viatra CallParameters对象封装了执行VIATRA查询所需的所有参数,包括模式名称和匹配器配置,从而实现对EVL表达式的精确映射。

3.如权利要求2所述的基于VIATRA的大规模低代码系统模型验证的自动映射方法,其特征在于,所述Run Viatra Call Parameters对象包括:生成的VQL模式、用于收集模式匹配的主VQL模式的名称、在VIATRA的匹配器API上调用的方法的名称和参数,以及表示模式额外参数的EOL表达式。

4.如权利要求1至3任一所述的基于VIATRA的大规模低代码系统模型验证的自动映射方法,其特征在于,所述对生成的VIATRA图模式进行执行和验证包括:当EVL引擎遇到被转换成VQL的表达式时,激活ViatraEMF驱动程序内的运行Viatra runViatra方法,runViatra方法进一步调用名为VIATRA引擎桥接VIATRA Engine Bridge的接口,所述VIATRA EngineBridge接口用于从文本化VQL模式中生成查询规范;VIATRA Engine Bridge接口从主要规范获取匹配器,并在匹配器上应用适当的参数执行匹配操作;EVL引擎将找到的匹配结果与未优化的表达式的匹配结果结合,产生最终的模型验证结果。

...

【技术特征摘要】

1.一种基于viatra的大规模低代码系统模型验证的自动映射方法,其特征在于,包括以下步骤:epsilon验证语言evl静态分析器对evl验证程序进行解析,以提取所述evl验证程序的抽象语法树,所述抽象语法树是代码抽象语法结构的树状表现形式,在运行时动态改变模型的结构和行为,同时进行类型推断以遍历所述抽象语法树,确定每个节点的具体数据类型,生成一个填充已解析类型的第二抽象语法树;将evl转化为viatra模式;对生成的viatra图模式进行执行和验证。

2.如权利要求1所述的基于viatra的大规模低代码系统模型验证的自动映射方法,其特征在于,所述将evl转化为viatra模式包括:从evl验证程序中的模型声明语句中提取模型包(epackage)的nsuri(命名空间uri);这些模型声明语句属于evl验证程序的一部分,用于指定验证上下文中使用的模型;提取的nsuri随后被映射到viatra查询语言(vql)的导入import语句中,以便在viatra模式中引用相应的模型元素;将vql中的import语句转化为图形模式,所述图形模式的名称通过将模型名称与序列号连接起来生成,所述序列号根据图形模式创建的顺序自动生成;在evl验证程序的操作体中进行一个关键的转换步骤;所述操作体指的是evl验证程序中处理属性调用表达式的部分,在所述转换步骤中,将由属性调用表达式组成的操作表达式翻译为viatra的图形模式,若操作符是不等式操作符,则在vql中生成包含不等式比较的额外检查约束;若在使用拒绝reject和对所有forall操作时,生成附加的viatra图形模式,所述附加的viatra图形模式专门用于处...

【专利技术属性】
技术研发人员:曾大克李振华
申请(专利权)人:宁波沃尔斯软件有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1