预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN113626026A(43)申请公布日2021.11.09(21)申请号202110822605.9(22)申请日2021.07.21(71)申请人北京理工大学地址100081北京市海淀区中关村南大街5号申请人北京中科蜂巢科技有限公司(72)发明人鲁金直丁洁王国新阎艳(74)专利代理机构北京理工大学专利中心11120代理人刘西云(51)Int.Cl.G06F8/35(2018.01)G06F16/242(2019.01)权利要求书3页说明书9页附图3页(54)发明名称一种支持复杂模型结构转换的代码生成方法(57)摘要本发明提供一种支持复杂模型结构转换的代码生成方法,使用KARMA语言描述代码生成,支持通过定义模型模式,将多个模型元素(包括对象、关系、点、角色)构成的复杂模型结构作为一个整体进行查询和转换,一方面,便于某些特定格式目标代码的生成,另一方面,通过模型模式的形式,用户只需对所需转换的模型结构进行描述,而无需关注具体查询的细节和过程,提高了用户友好性,增强了转换的能力和效率;此外,本发明提出的KARMA代码生成语言以GOPPRR六种元素为底层查询和转换的元素,屏蔽了领域模型的具体细节,针对多种领域模型(例如SysML模型和AADL模型),都可使用以GOPPRR为底层元素,通过描述模型模式进行查询,实现模型至目标代码的转换。CN113626026ACN113626026A权利要求书1/3页1.一种支持复杂模型结构转换的代码生成方法,其特征在于,用于生成所需设计系统对应的目标代码,其中,目标代码为所需设计系统的初步实现代码、所需设计系统的测试用例或者用于生成验证所需设计系统的仿真器的代码;所述方法包括以下步骤:S1:根据根据GOPPRR元模型概念定义不同类别的模型模式、使用KARMA建模语言建立所需设计系统不同类型的架构模型、根据所需要生成的目标代码定义代码模板,并确定代码模板中固定不变的代码信息和需要填充的代码信息;S2:在步骤S1得到的不同类型的架构模型中,找到可以获取到目标代码中所需要填充的代码信息的模型元素,从而完成架构模型中的模型元素与目标代码中所需要填充的代码信息的映射关系的建立,其中,模型元素包括GOPPRR元模型概念中的对象、关系、角色、点;S3:确定用于生成目标代码所需要填充代码信息的模型元素所在的模型结构,再从步骤S1中所定义的模型模式中分别为步骤S2中确定下来的每个模型结构选择对应的模型模式;S4:采用步骤S3中选择的模型模式分别描述各模型模式对应的模型结构,得到各模型结构中每一个模型元素的类型以及模型元素与模型元素之间的连接形式,并对每个模型结构中各模型元素包含的属性的值进行约束;S5:根据模型模式所描述的模型结构,对步骤S1中得到的不同类型的架构模型进行查询,得到架构模型中所有与步骤S3中选择的模型模式所描述的模型结构具有相同结构的模型结构,然后根据模型模式中所描述的约束条件,对查询得到的模型结构进行过滤,筛去不符合约束条件的模型结构;S6:获取剩余模型结构中与目标代码具有映射关系的属性,将获取到的属性的值根据映射关系填充至步骤S1中所需要生成的目标代码的代码模板中。2.如权利要求1所述的一种支持复杂模型结构转换的代码生成方法,其特征在于,不同类别的模型模式根据GOPPRR元模型概念描述的图、对象、点、属性、关系以及角色之间的联系来定义,其中,模型模式是一个由模型结构和模型约束组成的规范;同时,所述GOPPRR元模型概念描述的图、对象、点、属性、关系以及角色之间的联系具体为:图表示对象以及各对象之间的关系的集合;对象是图中的实体,通过角色与关系相连;关系具有方向性,方向通过依附在关系两端的角色表征,且角色具有起点和终点两种类型;点代表对象的一个端口,依附于对象存在;属性用于描述图、对象、角色、关系和点的特性。3.如权利要求2所述的一种支持复杂模型结构转换的代码生成方法,其特征在于,模型模式的类别包括单元素模式、简单模式、基数模式以及分组模式,其中,所述简单模式包括直接绑定子模式、间接绑定子模式以及混合绑定子模式,所述基数模式包括一对多对象基数模式、多对多对象基数模式、一对多关系基数模式、一对多点基数模式、多对多点基数模式以及混合基数模式;其中,当模型模式的类别为单元素模式时,模型结构中仅包含一个对象;当模型模式的类别为直接绑定子模式时,模型结构中所有对象和角色之间的连接方式均为直接连接;当模型模式的类别为间接绑定子模式时,模型结构中所有对象和角色之间通过点来连接;当模型模式的类别为混合绑定子模式时,模型结构中一部分对象和角色之间的连接方式为直接连接,另一部分对象和角色之间通过点来连接;2CN113626026A权利要求书