首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种支持复杂模型结构转换的代码生成方法 

申请/专利权人:北京理工大学;北京中科蜂巢科技有限公司

申请日:2021-07-21

公开(公告)日:2024-06-28

公开(公告)号:CN113626026B

主分类号:G06F8/35

分类号:G06F8/35;G06F16/242

优先权:

专利状态码:有效-授权

法律状态:2024.06.28#授权;2021.11.26#实质审查的生效;2021.11.09#公开

摘要:本发明提供一种支持复杂模型结构转换的代码生成方法,使用KARMA语言描述代码生成,支持通过定义模型模式,将多个模型元素包括对象、关系、点、角色构成的复杂模型结构作为一个整体进行查询和转换,一方面,便于某些特定格式目标代码的生成,另一方面,通过模型模式的形式,用户只需对所需转换的模型结构进行描述,而无需关注具体查询的细节和过程,提高了用户友好性,增强了转换的能力和效率;此外,本发明提出的KARMA代码生成语言以GOPPRR六种元素为底层查询和转换的元素,屏蔽了领域模型的具体细节,针对多种领域模型例如SysML模型和AADL模型,都可使用以GOPPRR为底层元素,通过描述模型模式进行查询,实现模型至目标代码的转换。

主权项:1.一种支持复杂模型结构转换的代码生成方法,其特征在于,用于生成所需设计系统对应的目标代码,其中,目标代码为所需设计系统的初步实现代码、所需设计系统的测试用例或者用于生成验证所需设计系统的仿真器的代码;所述方法包括以下步骤:S1:根据GOPPRR元模型概念定义不同类别的模型模式、使用KARMA建模语言建立所需设计系统不同类型的架构模型、根据所需要生成的目标代码定义代码模板,并确定代码模板中固定不变的代码信息和需要填充的代码信息;S2:在步骤S1得到的不同类型的架构模型中,找到可以获取到目标代码中所需要填充的代码信息的模型元素,从而完成架构模型中的模型元素与目标代码中所需要填充的代码信息的映射关系的建立,其中,模型元素包括GOPPRR元模型概念中的对象、关系、角色、点;S3:确定用于生成目标代码所需要填充代码信息的模型元素所在的模型结构,再从步骤S1中所定义的模型模式中分别为步骤S2中确定下来的每个模型结构选择对应的模型模式;S4:采用步骤S3中选择的模型模式分别描述各模型模式对应的模型结构,得到各模型结构中每一个模型元素的类型以及模型元素与模型元素之间的连接形式,并对每个模型结构中各模型元素包含的属性的值进行约束;S5:根据模型模式所描述的模型结构,对步骤S1中得到的不同类型的架构模型进行查询,得到架构模型中所有与步骤S3中选择的模型模式所描述的模型结构具有相同结构的模型结构,然后根据模型模式中所描述的约束条件,对查询得到的模型结构进行过滤,筛去不符合约束条件的模型结构;S6:获取剩余模型结构中与目标代码具有映射关系的属性,将获取到的属性的值根据映射关系填充至步骤S1中所需要生成的目标代码的代码模板中;不同类别的模型模式根据GOPPRR元模型概念描述的图、对象、点、属性、关系以及角色之间的联系来定义,其中,模型模式是一个由模型结构和模型约束组成的规范;同时,所述GOPPRR元模型概念描述的图、对象、点、属性、关系以及角色之间的联系具体为:图表示对象以及各对象之间的关系的集合;对象是图中的实体,通过角色与关系相连;关系具有方向性,方向通过依附在关系两端的角色表征,且角色具有起点和终点两种类型;点代表对象的一个端口,依附于对象存在;属性用于描述图、对象、角色、关系和点的特性;模型模式的类别包括单元素模式、简单模式、基数模式以及分组模式,其中,所述简单模式包括直接绑定子模式、间接绑定子模式以及混合绑定子模式,所述基数模式包括一对多对象基数模式、多对多对象基数模式、一对多关系基数模式、一对多点基数模式、多对多点基数模式以及混合基数模式;其中,当模型模式的类别为单元素模式时,模型结构中仅包含一个对象;当模型模式的类别为直接绑定子模式时,模型结构中所有对象和角色之间的连接方式均为直接连接;当模型模式的类别为间接绑定子模式时,模型结构中所有对象和角色之间通过点来连接;当模型模式的类别为混合绑定子模式时,模型结构中一部分对象和角色之间的连接方式为直接连接,另一部分对象和角色之间通过点来连接;当模型模式的类别为一对多对象基数模式时,模型结构中仅存在一个对象采用相同的直接绑定方式与两个以上的对象连接;当模型模式的类别为多对多对象基数模式时,模型结构中存在两个以上的对象采用两个以上的同类型的直接绑定方式连接两个以上的对象;当模型模式的类别为一对多关系基数模式时,模型结构中存在的两个对象之间采用两个以上的同类型的直接绑定方式进行连接;当模型模式的类别为混合基数模式时,模型结构中仅存在一个对象采用两个以上的同类型的直接绑定方式与两个以上的对象连接;当模型模式的类别为一对多点基数模式时,模型结构中存在一个对象仅通过一个点以同类型的间接绑定方式连接另一个对象上两个以上的点;当模型模式的类别为多对多点基数模式时,模型结构中存在一个对象通过两个以上的点以两个以上的同类型的间接绑定方式连接另一个对象上两个以上的点的;当模型模式的类别为分组模式时,模型结构具有一个主模型模式,主模型模式中具有两个以上的子模型模式,子模型模式的类型为单元素模式、简单模式或基数模式;若步骤S3中选择的模型模式的类别为一对多对象基数模式,则描述一对多对象基数模式下的模型结构时,采用A:o1—B:o2n表示A类型的对象o1以相同的直接绑定方式连接n个B类型的对象o2,其中,n至少为2,o1表示A类型的对象的标识,o2表示B类型的对象的标识;若步骤S3中选择的模型模式的类别为多对多对象基数模式,则描述多对多对象基数模式下的模型结构时,采用A:o1i-B:o2j表示i个A类型的对象o1以2个以上同类型的直接绑定方式连接j个B类型的对象o2,其中,i和j至少为2;若步骤S3中选择的模型模式的类别为一对多关系基数模式,则描述一对多关系基数模式下的模型结构时,采用A:o1-B:o2Re:relm表示A类型的对象o1通过m个同类型的直接绑定方式连接B类型的对象o2,其中,m至少为2,Re为直接绑定方式的类型标识,rel为关系的标识;若步骤S3中选择的模型模式的类别为混合基数模式,则描述混合基数模式下的模型结构时,采用A:o1-B:o2jRe:relm表示A类型的对象o1通过m个同类型的直接绑定方式分别与j个B类型的对象o2相连接;若步骤S3中选择的模型模式的类别为一对多点基数模式,则描述一对多点基数模式下的模型结构时,采用PA:p1-PB:p2k表示A类型的对象o1通过一个PA类型的点p1采用同类型的间接绑定方式连接B类型的对象o2上的k个PB类型的点p2,k至少为2,PA和PB均为点的类型标识,p1和p2均为点的标识;若步骤S3中选择的模型模式的类别为多对多点基数模式,则描述多对多点基数模式下的模型结构时,采用PA:p1l-PB:p2k表示A类型的对象o1上的l个PA类型的点p1通过同类型的间接绑定方式分别连接B类型的对象o2上的k个PB类型的点p2,l至少为2。

全文数据:

权利要求:

百度查询: 北京理工大学;北京中科蜂巢科技有限公司 一种支持复杂模型结构转换的代码生成方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。