CN113296776A - 对象模型的代码转换方法、装置、存储介质及电子设备 - Google Patents

对象模型的代码转换方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN113296776A
CN113296776A CN202110679430.0A CN202110679430A CN113296776A CN 113296776 A CN113296776 A CN 113296776A CN 202110679430 A CN202110679430 A CN 202110679430A CN 113296776 A CN113296776 A CN 113296776A
Authority
CN
China
Prior art keywords
target
language
object model
code
model
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
Application number
CN202110679430.0A
Other languages
English (en)
Inventor
陈浩
董陈鑫
黑新宏
党政
丁雅婕
胡先智
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xian University of Technology
Original Assignee
Xian University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xian University of Technology filed Critical Xian University of Technology
Priority to CN202110679430.0A priority Critical patent/CN113296776A/zh
Publication of CN113296776A publication Critical patent/CN113296776A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请提出一种对象模型的代码转换方法、装置、存储介质及电子设备,通过将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;其中,描述信息包括目标对象模型的构建要素;调用转换插件,以将目标类图转换为目标代码;其中,转换插件包括目标类图与目标代码之间的映射关系。对象模型不再需要应用开发人员手动编写代码,省时省力,同时减轻了开发人员的工作负担,效率和可靠性也有显著提升,并且由于模型统一的描述,更加便于试验资源的共享和重用。

Description

对象模型的代码转换方法、装置、存储介质及电子设备
技术领域
本申请涉及虚拟试验领域,具体而言,涉及一种对象模型的代码转换方法、装置、存储介质及电子设备。
背景技术
传统的试验场相互独立,呈“烟囱式”结构,相互独立,不能互通和互操作,难以满足当前先进装备的多样性、复杂化、多任务的试验需求。相比于依托单个试验靶场进行的传统试验,多区域联合试验能通过网络将分布于不同地理位置的试验对象连接起来,完成信息交互,从而达到试验和测试的目的,具备成本低、风险小、不受时空因素影响、能够重复利用等优点。
对象模型是多区域联合试验中试验资源通信的公共语言,是所有靶场资源应用相互通信、相互操作的重要基础。对象模型是从面向对象的角度出发对实体设备进行抽象描述,从宏观角度对完成某项功能所必须的要素进行分析,将具有相同属性和行为的要素归纳为类的一组相关模型。对象模型到面向对象编程语言的代码转换技术是构建多区域联合试验组件的基础。
随着试验的大型化,设备资源的对象模型呈现复杂化、多样化的发展趋势,其对象模型需要应用开发人员手动编写代码,不仅耗时费力,也加大了开发人员的工作负担,效率和可靠性也不高,并且由于模型缺乏统一的描述,对试验资源的共享和重用带来不便。
发明内容
本申请的目的在于提供一种对象模型的代码转换方法、装置、存储介质及电子设备,以至少部分改善上述问题。
为了实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供一种对象模型的代码转换方法,所述方法包括:
将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;
其中,所述描述信息包括所述目标对象模型的构建要素;
调用转换插件,以将所述目标类图转换为目标代码;
其中,所述转换插件包括所述目标类图与所述目标代码之间的映射关系。
第二方面,本申请实施例提供一种对象模型的代码转换装置,所述装置包括:
处理单元,用于将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;
其中,所述描述信息包括所述目标对象模型的构建要素;
转换单元,用于调用转换插件,以将所述目标类图转换为目标代码;
其中,所述转换插件包括所述目标类图与所述目标代码。
第三方面,本申请实施例提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的方法。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现上述的方法。
相对于现有技术,本申请实施例所提供的一种对象模型的代码转换方法、装置、存储介质及电子设备,通过将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;其中,描述信息包括目标对象模型的构建要素;调用转换插件,以将目标类图转换为目标代码;其中,转换插件包括目标类图与目标代码之间的映射关系。对象模型不再需要应用开发人员手动编写代码,省时省力,同时减轻了开发人员的工作负担,效率和可靠性也有显著提升,并且由于模型统一的描述,更加便于试验资源的共享和重用。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本申请实施例提供的电子设备的结构示意图;
图2为本申请实施例提供的对象模型的代码转换方法的流程示意图;
图3为本申请实施例提供的对象模型的代码转换方法的流程示意图之一;
图4为本申请实施例提供的对象模型的代码转换方法的流程示意图之一;
图5为本申请实施例提供的Java文件内容示意图;
图6为本申请实施例提供的转换插件原理示意图;
图7为本申请实施例提供的S106的子步骤示意图;
图8为本申请实施例提供的对象模型的代码转换装置的单元示意图。
图中:10-处理器;11-存储器;12-总线;13-通信接口;201-处理单元;202-转换单元。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本申请的描述中,需要说明的是,术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
本申请实施例提供了一种电子设备,可以是计算机设备或服务器设备。请参照图1,电子设备的结构示意图。电子设备包括处理器10、存储器11、总线12。处理器10、存储器11通过总线12连接,处理器10用于执行存储器11中存储的可执行模块,例如计算机程序。
处理器10可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,对象模型的代码转换方法的各步骤可以通过处理器10中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器10可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器11可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。
总线12可以是ISA(Industry Standard Architecture)总线、PCI(PeripheralComponent Interconnect)总线或EISA(Extended Industry Standard Architecture)总线等。图1中仅用一个双向箭头表示,但并不表示仅有一根总线12或一种类型的总线12。
存储器11用于存储程序,例如对象模型的代码转换装置对应的程序。对象模型的代码转换装置包括至少一个可以软件或固件(firmware)的形式存储于存储器11中或固化在电子设备的操作系统(operating system,OS)中的软件功能模块。处理器10在接收到执行指令后,执行所述程序以实现对象模型的代码转换方法。
可能地,本申请实施例提供的电子设备还包括通信接口13。通信接口13通过总线与处理器10连接。
应当理解的是,图1所示的结构仅为电子设备的部分的结构示意图,电子设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
本申请实施例提供的一种对象模型的代码转换方法,可以但不限于应用于图1所示的电子设备,具体的流程,请参考图2,对象模型的代码转换方法包括:
S105,将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图。
其中,描述信息包括目标对象模型的构建要素。构建要素可以为目标对象模型的功能限定表述、特征限定表述以及材质限定表述等。
在一种可能的实现方式中,构建要素包括目标对象模型的版型信息和元素内容信息,依据版型信息和元素内容信息构建目标类图,类图包括版型字段和元素内容字段,其中版型字段中的内容为版型信息,元素内容字段中为元素内容信息。元素内容主要包括权限修饰符、返回值类型、属性名称或方法名称。
S106,调用转换插件,以将目标类图转换为目标代码。
其中,转换插件包括目标类图与目标代码之间的映射关系。
综上所述,本申请实施例提供了一种对象模型的代码转换方法,通过将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;其中,描述信息包括目标对象模型的构建要素;调用转换插件,以将目标类图转换为目标代码;其中,转换插件包括目标类图与目标代码之间的映射关系。对象模型不再需要应用开发人员手动编写代码,省时省力,同时减轻了开发人员的工作负担,效率和可靠性也有显著提升,并且由于模型统一的描述,更加便于试验资源的共享和重用。
对于目标构建模型,本申请实施例还提出了一种可能的实现方式,目标构建模型为TENA元模型。基于TENA元模型构建与目标对象模型对应的目标类图,TENA元模型包括构成对象模型的一系列关键字,是其子集,相当于英语中的单词,中文中的汉字短语。
TENA元模型具有以下特点:支持分布式计算、有足够丰富的特征能对设备资源进行建模、能够保证信息的语义一致性、在满足上述要求的同时尽可能地易于使用和理解。
TENA元模型包括以下内容:
(1)状态分布对象(SDO);
SDO是指在靶场事件期间其生命周期非零,且状态演变的对象。一个SDO包含两部分:一个是对象接口、一个是公共状态。
(2)本地类(Local Class);
本地类是一个复杂数据类型,包含方法和状态信息。但本地类的方法不能进行远程调用,而总是只能在本地调用。
(3)消息(Message);
消息等同于一个本地类,也是一种复杂的数据类型,包含本地方法和消息信息。
(4)继承(Inheritance);
继承是任何一个面向对象编程语言元模型的核心概念,继承是一种“is-a”的关系,提供了在概念上的可扩展性和可替代性。
(5)聚合(Composition);
聚合是元模型最重要的方面,聚合是一种“has-a”的关系,聚合关系确定了被包含对象的生命周期不会超过包含者。
(6)接口;
接口主要作用是封装方法,并可以由状态分布对象实现。接口只包含方法,且至少包含一个方法。接口可以继承接口,支持多继承和多重继承。
(7)枚举(Enumeration);
枚举类型用于定义有名符号的集合,可以提高模型的可读性,它本质上是一种取值范围受限的整数类型。
(8)异常(Exception);
异常用于捕获在试验中出现的错误情况,它本质上是一个类。
(9)向量(Vector);
向量是一个容器,类似于面向对象语言中的集合。
(10)包(Package);
包是一个命名空间。减少命名上的冲突。
在图2的基础上,关于如何搭建目标构建模型,本申请实施例还提供了一种可能的实现方式,请参考图3,对象模型的代码转换方法还包括:
S101,依据搭建指令在目标平台上搭建目标构建模型。
其中,搭建指令包括目标构建模型的架构信息和数据类型信息。
在一种可能的实现方式中,目标平台采用MagicDraw平台,在MagicDraw平台上依据目标构建模型的架构信息和数据类型信息搭建目标构建模型。搭建完成的目标构建模型能够支持基础语言的运用,基础语言例如为TDL语言。
TDL语言是基于TENA元模型的一种描述性语言,与统一建模语言(UnifiedModeling Language,UML)类似,是一种平台无关的描述语言。通过对MagicDraw平台进行配置,使其能够支持以TDL语言进行对象模型的建模。具体包括:
第一步,新建空白项目,新建profile文件夹,在profile文件夹内,以UML版型为基础自定义新版型,二者关系如下表1所示。
新定义的版型 UML内部版型
TENA::Package Package
TENA::Class Class
TENA::LocalClass Class
TENA::Message Class
TENA::Interface Interface
TENA::Enumeration Enumeration
TENA::Exception Class
表1
第二步,在profile文件夹内,新建数据类型,以UML基本数据类型为基础,建立新的基本数据类型,二者关系如下表2所示。
Figure BDA0003122316510000101
Figure BDA0003122316510000111
表2
第三步,以模板类型方式将工程导出,以模板工程的方式应用到MagicDraw平台。将profile文件工程以module类型导出,将导出的文件放入MagicDraw平台安装目录下的Template文件下。
第四步,创建TDL工具栏。
通过以上步骤完成MagicDraw对TDL语言的支持。
在图2的基础上,对于如何获取转换插件,本申请实施例还提供了一种可能的实现方式,请参考图4,对象模型的代码转换方法还包括:
S102,获取配置文件。
其中,配置文件包括第一映射关系和第二映射关系,第一映射关系为所有的类图到基础语言之间的映射关系,第二映射关系为基础语言与目标语言之间的映射关系,基础语言为与目标构建模型的匹配的语言,目标语言为构建目标代码的语言。
S103,将第一映射关系和第二映射关系配置于转换插件。
可以通过代码生成工具编写转换插件,完成将第一映射关系和第二映射关系配置于转换插件的步骤。
可以按照MagicDraw规范编写转换插件,完成将第一映射关系和第二映射关系配置于转换插件的步骤。
代码生成工具可以为FreeMarker Template Language(FTL)编写模板文件的工具。
代码转换插件可以为基于FreeMarker和FTL模板文件的插件。
S104,通过目标平台的扩展接口,将转换插件部署于目标平台。
需要说明的是,还需要在目标平台上构建类图处理规则,所有的类图到基础语言之间的映射关系,即第一映射关系。
MagicDraw平台提供丰富的API可供二次开发,通过API能够获取到UML类图中的内容,并且结合TDL语言结构特性,生成以TDL语言描述的对象模型描述文件。
定义类图处理规则,将UML类图转化为以TDL语言描述的对象模型。类图处理规则如下:
①TENA::Package的处理;
对象模型的一个包生成一个与之同名的文件,文件中包含包的代码结构。包的基本结构如下:
Figure BDA0003122316510000121
Figure BDA0003122316510000131
②TENA::Class的处理;
对象模型中的一个类包含在一个数据包中。对于类图中类结构,通过版型字段是否为TENA::Class来判定,然后将其内容映射到类上面。其基本结构如下:
Figure BDA0003122316510000132
③LocalClass的处理;
通过版型字段是否为TENA::LocalClass来判定,然后将其内容映射到自定义的局部类上面。其基本结构如下:
Figure BDA0003122316510000133
④TENA::Message的处理;
对于类图中的消息结构,通过版型字段是否为TENA::Message来判定,然后将其内容映射都我们自定义的消息上面,其结构如下:
Figure BDA0003122316510000134
Figure BDA0003122316510000141
⑤TENA::Interface的处理;
对于类图中接口结构,通过版型字段是否为TENA::Interface来判定,然后将其内容映射都自定义的接口上面,其结构如下:
Figure BDA0003122316510000142
⑥TENA::Enumeration的处理;
对于类图中枚举结构,通过版型字段是否为TENA::Enumeration来判定,然后将其内容映射都自定义的枚举上面,其结构如下:
Figure BDA0003122316510000143
⑦TENA::Exception的处理;
对于类图中的异常,通过版型字段是否为TENA::Exception来判定,然后将其映射都自定义的异常上面,其结构如下:
Figure BDA0003122316510000144
Figure BDA0003122316510000151
基于以上处理规则,利用MagicDraw的API获取类图中的版型字段,进行版型判断,生成不同的结构,继而获取到类图中的元素内容,元素内容主要包括权限修饰符、返回值类型、属性名称或方法名称,将其写入到结构中,并写入文件,最终得到以TDL语言描述的对象模型文件.tdl文件,即目标对象模型通过基础语言描述的代码。
在一种可能的实现方式中,关于配置文件所包括的基础语言与目标语言之间的映射关系,本申请实施例还提供了一种可能的实现方式,请参考下文:
将TDL语言描述的目标对象模型转化为目标代码(以Java语言代码为目标代码作为示例),需要建立TDL关键字、基本数据类型到Java关键字、数据类型的映射,构建以下映射规则:
规则1:TENA::Package表示一个命名空间,将功能相似或相关的类或接口组织在同一个包中,方便查找和使用,与Java语言中的包概念类似,因此将其映射为Java中的Package;
规则2:TENA::Class是一个复杂数据类型,包含若干方法和数据成员,能够在本地和远程调用,与Java中的class功能类似,因此将其映射为Java中的class;
规则3:TENA::Local也是一个复杂的数据类型,内容与class类似,但其不能被远程调用,只能本地访问,与Java中的class功能类似,因此将其也映射为Java中的class;
规则4:TENA::Message等同于一个局部类,也是一种复杂的数据类型,包含本地方法和类似于类中属性的消息信息。因此将其映射为Java中的class。
规则5:TENA::Interface主要作用是封装方法,并可以由状态分布对象类实现。接口只包含方法,且至少包含一个方法。与Java中的interface功能类似,因此将其映射为Java中的interface;
规则6:TENA::Enumeration用于声明一组命名的常数,可以提高模型的可读性,它本质上是一种取值范围受限的整数类型。与Java中的enum功能类似,因此将其映射为Java中的enum;
规则7:将TENA::Exception用于捕获在试验中出现的错误情况,它本质上是一个类,但不包含属性。将其映射为Java中的class。
规则8:TENA::boolean表示是非概念,有真与假两个,与Java语言中的boolean功能类似,因此将其映射为Java中的boolean;
规则9:TENA::char8表示字符,占有8位,可以存储一个英文字符,Java中的char占2个字节,共16位,因此能够承载TENA::char8所表示的内容,所以将其映射为Java语言中的char;
规则10:TENA::float32表示32位的浮点类型数据,在Java中,float类型恰好占32位,因此将其映射为Java中的float;
规则11:TENA::float64表示64位的浮点类型数据,在Java中,double类型占64位,因此将其映射为Java中的double。
规则12:TENA::int16表示16位的整型数据,在Java中short类型为短整型,占16位,因此将其映射为Java中的short。
规则13:TENA::int32表示32位的整型数据,在Java中int为整型,占32位,因此将其映射为Java中的int。
规则14:TENA::int64表示64位的整型数据,在Java中long位长整型,占64位,因此将其映射为Java中的long。
规则15:TENA::int8表示8位整型数据,在Java中整型数据占32位,能够承载TENA::int8中的数据,所以可以将其映射为Java中的int。
规则16:将TENA::octet代表8bit,而Java中的byte可以表示4bit到10bit,通常表示8bit,因此将其映射为Java中的byte。
规则17:将TENA::string由一个字符数组构成,用来存储字符串,与Java中的String实现和功能类似,因此将其映射为Java中的String。
规则18:将TENA::uint8表示8位无符号整型,Java中没有符号数据类型的概念,但Java中整型数据占32位,能够承载TENA::uint8中的数据,所以可以将其映射为Java中的int。
规则19:将TENA::uint32表示32位无符号整型,在Java中整型数据占32位,因此可以将其映射为Java中的int。
规则20:将TENA::void表示无返回值,Java中的void也表示无返回值,因此将映射为Java中的void。
关于,如何生成转换插件,本申请实施例还提供了一种可能的实现方式,请参考下文。
MagicDraw平台提供丰富API可供二次开发,基于API在MagicDraw平台上进行插件开发,并通过配置xml文件将插件应用到MagicDraw平台,配置xml文件如下所示。
Figure BDA0003122316510000171
Figure BDA0003122316510000181
FreeMarker的模版文件是自动生成代码的业务规则载体,主要用于定义如何展现出要生成的数据,哪些数据是不变的、规律的,哪些数据是可变的、需要外界输入的。利用FreeMarker Template Language(FTL)编写模板文件,依据Java语言语法和结构特性构建FTL模板,FTL模板构建原理如下:
依据Java语言特征,总结标准的Java文件所具有的内容。如图5所示,Java文件中包含权限修饰符,保留字,名称,一对大括号,以及若干属性和方法,属性和方法又包含权限修饰符、类型、名称等信息。依据以上映射规则可以得出哪些数据需要进行数据输入,例如包名、类名、属性的权限修饰符、属性的数据类型、属性名、方法名等都需要由外界数据输入来得到,因此利用FTL语言语法规则,将其用“$”和大括号来占位并标记。且由于属性和方法并不唯一,因此使用FTL语言中的循环标记,编写的FTL模板如下所示。
Figure BDA0003122316510000182
Figure BDA0003122316510000191
Figure BDA0003122316510000201
将TDL对象模型描述文件与定义好的模板结合通过FreeMarker的处理能够自动的生成Java语言代码。首先以字符串的方式读入tdl文件中的内容,判断写入的版型结构,依据不同的版型结构在模板中选取不同的模板结构;从tdl文件中获取相应的版型结构中的属性和方法,再依据模板进行写入。具体为:
①获取包字段,判断包名称,并以键值对的方式保存在map中;
②获取版型字段,判断版型类型,存入map中,获取版型结构中的属性和方法,依据映射规则进行映射后,将其保存到map中。
③将map中的数据结合模板文件通过FreeMarker和写入到文件中,形成Java文件。
代码生成插件原理如图6所示,用户通过UML类图(描述信息)依据目标构建模型进行对象模型的构建,从而获得目标对象模型,调用插件,结合FreeMarker的模板(映射关系),将目标对象模块转换为Java代码。
在图4的基础上,关于步骤S106中的内容,本申请实施例还提供了一种可能的实现方式,请参考图7,S106包括:
S106-1,调用转换插件。
S106-2,转换插件将目标对象模型转换为目标代码。
在一种可能的实现方式中,本申请实施例中的目标代码为Java代码。
请参阅图8,图8为本申请实施例提供的一种对象模型的代码转换装置,可选的,该对象模型的代码转换装置被应用于上文所述的电子设备。
对象模型的代码转换装置包括:处理单元201和转换单元202。
处理单元201,用于将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图。可选地,处理单元201可以执行上述的S105。
其中,描述信息包括目标对象模型的构建要素。
转换单元202,用于调用转换插件,以将目标类图转换为目标代码;可选地,转换单元202可以执行上述的S106。
其中,转换插件包括目标类图与目标代码之间的映射关系。
在一种可能的实现方式中,处理单元201还用于获取配置文件,其中,配置文件包括第一映射关系和第二映射关系,第一映射关系为所有的类图到基础语言之间的映射关系,第二映射关系为基础语言与目标语言之间的映射关系,基础语言为与目标构建模型的匹配的语言,目标语言为构建目标代码的语言;将第一映射关系和第二映射关系配置于转换插件;通过目标平台的扩展接口,将转换插件部署于目标平台。可选地,处理单元201可以执行上述的S102~S104。
在一种可能的实现方式中,转换单元202还用于调用转换插件;转换插件将目标类图转换为基础语言对应的代码,并将基础语言对应的代码转换为目标代码。可选地,转换单元202可以执行上述的S106-1和S106-2。
需要说明的是,本实施例所提供的对象模型的代码转换装置,其可以执行上述方法流程实施例所示的方法流程,以实现对应的技术效果。为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。
本申请实施例还提供了一种存储介质,该存储介质存储有计算机指令、程序,该计算机指令、程序在被读取并运行时执行上述实施例的对象模型的代码转换方法。该存储介质可以包括内存、闪存、寄存器或者其结合等。
下面提供一种电子设备,可以是计算机设备或服务器设备,该电子设备如图1所示,可以实现上述的对象模型的代码转换方法;具体的,该电子设备包括:处理器10,存储器11、总线12。处理器10可以是CPU。存储器11用于存储一个或多个程序,当一个或多个程序被处理器10执行时,执行上述实施例的对象模型的代码转换方法。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

Claims (10)

1.一种对象模型的代码转换方法,其特征在于,所述方法包括:
将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;
其中,所述描述信息包括所述目标对象模型的构建要素;
调用转换插件,以将所述目标类图转换为目标代码;
其中,所述转换插件包括所述目标类图与所述目标代码之间的映射关系。
2.如权利要求1所述的对象模型的代码转换方法,其特征在于,在调用转换插件之前,所述方法还包括:
获取配置文件,其中,所述配置文件包括第一映射关系和第二映射关系,所述第一映射关系为所有的类图到基础语言之间的映射关系,所述第二映射关系为所述基础语言与目标语言之间的映射关系,所述基础语言为与所述目标构建模型的匹配的语言,所述目标语言为构建所述目标代码的语言;
将所述第一映射关系和所述第二映射关系配置于所述转换插件;
通过目标平台的扩展接口,将所述转换插件部署于所述目标平台。
3.如权利要求1所述的对象模型的代码转换方法,其特征在于,所述调用转换插件,以将所述目标类图转换为目标代码的步骤,包括:
调用所述转换插件;
所述转换插件将所述目标类图转换为基础语言对应的代码,并将所述基础语言对应的代码转换为所述目标代码。
4.如权利要求1所述的对象模型的代码转换方法,其特征在于,在目标构建模型依据描述信息,构建与目标对象模型对应的目标类图之前,所述方法还包括:
依据搭建指令在目标平台上搭建所述目标构建模型,其中,所述搭建指令包括所述目标构建模型的架构信息和数据类型信息。
5.如权利要求1所述的对象模型的代码转换方法,其特征在于,所述目标代码为Java代码。
6.一种对象模型的代码转换装置,其特征在于,所述装置包括:
处理单元,用于将描述信息作为目标构建模型的输入,输出与目标对象模型对应的目标类图;
其中,所述描述信息包括所述目标对象模型的构建要素;
转换单元,用于调用转换插件,以将所述目标类图转换为目标代码;
其中,所述转换插件包括所述目标类图与所述目标代码之间的映射关系。
7.如权利要求6所述的对象模型的代码转换装置,其特征在于,
所述处理单元还用于获取配置文件,其中,所述配置文件包括第一映射关系和第二映射关系,所述第一映射关系为所有的类图到基础语言之间的映射关系,所述第二映射关系为所述基础语言与目标语言之间的映射关系,所述基础语言为与所述目标构建模型的匹配的语言,所述目标语言为构建所述目标代码的语言;将所述第一映射关系和所述第二映射关系配置于所述转换插件;通过目标平台的扩展接口,将所述转换插件部署于所述目标平台。
8.如权利要求6所述的对象模型的代码转换装置,其特征在于,
所述转换单元还用于调用所述转换插件;所述转换插件将所述目标类图转换为基础语言对应的代码,并将所述基础语言对应的代码转换为所述目标代码。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
10.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,实现如权利要求1-5中任一项所述的方法。
CN202110679430.0A 2021-06-18 2021-06-18 对象模型的代码转换方法、装置、存储介质及电子设备 Pending CN113296776A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110679430.0A CN113296776A (zh) 2021-06-18 2021-06-18 对象模型的代码转换方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110679430.0A CN113296776A (zh) 2021-06-18 2021-06-18 对象模型的代码转换方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN113296776A true CN113296776A (zh) 2021-08-24

Family

ID=77328795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110679430.0A Pending CN113296776A (zh) 2021-06-18 2021-06-18 对象模型的代码转换方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113296776A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114895912A (zh) * 2022-06-07 2022-08-12 康键信息技术(深圳)有限公司 编码架构下实体类对象的转换方法、装置、设备及介质
WO2024046460A1 (zh) * 2022-09-02 2024-03-07 深圳忆海原识科技有限公司 端口模型、构建方法、系统及神经网络构建平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605556A (zh) * 2013-10-23 2014-02-26 中国运载火箭技术研究院 虚拟试验对象一体化构建系统及方法
US20160173654A1 (en) * 2014-11-28 2016-06-16 Electronics And Telecommunications Research Institute Method and apparatus for live-virtual-constructive interoperation
CN110705091A (zh) * 2019-09-27 2020-01-17 西安理工大学 一种轻量级的虚拟试验靶场对象模型组件构建方法
CN111381983A (zh) * 2020-03-06 2020-07-07 西安理工大学 虚拟试验靶场验证系统的轻量级消息中间件系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605556A (zh) * 2013-10-23 2014-02-26 中国运载火箭技术研究院 虚拟试验对象一体化构建系统及方法
US20160173654A1 (en) * 2014-11-28 2016-06-16 Electronics And Telecommunications Research Institute Method and apparatus for live-virtual-constructive interoperation
CN110705091A (zh) * 2019-09-27 2020-01-17 西安理工大学 一种轻量级的虚拟试验靶场对象模型组件构建方法
CN111381983A (zh) * 2020-03-06 2020-07-07 西安理工大学 虚拟试验靶场验证系统的轻量级消息中间件系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114895912A (zh) * 2022-06-07 2022-08-12 康键信息技术(深圳)有限公司 编码架构下实体类对象的转换方法、装置、设备及介质
WO2024046460A1 (zh) * 2022-09-02 2024-03-07 深圳忆海原识科技有限公司 端口模型、构建方法、系统及神经网络构建平台

Similar Documents

Publication Publication Date Title
US10908925B2 (en) Dynamic loading method, and target file creation method and apparatus
US6023578A (en) Systems, methods and computer program products for generating an object oriented application for an object oriented environment
US5428792A (en) System for producing language neutral objects and generating an interface between the objects and multiple computer languages
US5692195A (en) Parent class shadowing
CN109375899A (zh) 一种形式验证Solidity智能合约的方法
Clark1 et al. Engineering modelling languages: A precise meta-modelling approach
TWI556170B (zh) 將作業系統之原始應用程式介面投射至其它程式語言(二)
CN108345511B (zh) 一种应用数据校验方法、装置及电子设备
CN111290778B (zh) Ai模型的包装方法、平台及电子设备
CN106462412A (zh) 动态地产生的基于模式的类的结构识别
CN113296776A (zh) 对象模型的代码转换方法、装置、存储介质及电子设备
Drozdek Data structures and algorithms in Java
EP1493100A1 (en) Dynamic generation of schema information for data description languages
WO2002077803A1 (en) Method and apparatus for dynamic assembly and verification of software components into flexible applications
WO2024045382A1 (zh) 区块链中实现反射机制
Lea User's Guide to the GNU C++ Library
Snook et al. Verifying dynamic properties of UML models by translation to the B language and toolkit
WO2022042252A1 (zh) 驱动配置管理方法、装置、介质、设备及系统
CN112347534B (zh) 一种基于ifc扩展的水利水电工程bim模型转换方法
Zhao et al. Pattern-based design evolution using graph transformation
CN112306463A (zh) 基于POJO的mybatis生成方法、系统、存储介质及设备
CN112287032B (zh) 一种区块链数据存储方法、装置及区块链节点
CN111367512B (zh) 一种应用程序开发中创建Android库模块依赖关系的方法及装置
Abdalla et al. Object-oriented finite element and graphics data-translation facility
CN113971019A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210824