一种生成Java代码并通过Java源代码逆向建模的方法技术

技术编号:33841242 阅读:22 留言:0更新日期:2022-06-18 10:23
本发明专利技术公开了一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法,该方法采用模型即代码,代码即模型的思想,利用正向代码和逆向建模使得代码与模型始终保持一致,该方法主要功能包括:模型设计、模型解析并生成代码、代码变更监听并逆向生成组件模型,利用本发明专利技术,可以应用于软件设计开发领域,通过图形化的模型设计快速生成Java源码,通过代码变更逆向建模生成组件模型,利用模型即代码,代码即模型的思想,将模型与代码深度绑定,以组件化的形式参与到软件的设计开发过程中,提高从业者的建模能力,提高代码的开发效率,同时,弥补在设计阶段中缺少、缺失或与源代码不一致的模型文档。不一致的模型文档。不一致的模型文档。

【技术实现步骤摘要】
一种生成Java代码并通过Java源代码逆向建模的方法


[0001]本专利技术涉及基于软件应用建模生成源代码,并通过Java源代码逆向建模的方法。

技术介绍

[0002]应用建模方法对软件的设计需求、总体构架、内部结构等进行描述已经成为软件设计过程中一种行之有效、并被广泛运用的设计技术。软件的逆向建模过程与软件设计过程中的建模过程相反,是对已经存在的软件源代码进行分析,逆向生成软件模型描述的过程。
[0003]人们习惯于把源代码视为软件设计中最主要的成果,但随着软件工程理论的发展, 人们逐渐意识到软件的设计模型描述能够比源代码更准确、更深刻和更清晰地反映软件的设计思想和设计框架。然而,软件设计模型的描述文档并非总能与软件的实际设计保持一致。在开发过程中,由于代码编写与文档编写的不同步,常常出现模型文档的缺少、缺失、与代码不一致等情况,而通过购买或免费取得的源代码产品则往往没有提 供相应的详细模型文档。逆向建模即是通过对源代码的自动分析,提取出代码各个层次上各类对象的相关信息,分析各对象间的相互关系并生成多种类型的模型描述文档。
[0004]在许多开发工具中已经加入了逆向建模的工具,但所提供的功能还比较有限,能够生成的模型文档也比较简陋。例如在Microsoft的Visual Studio开发工具中,可以通过逆向工程功能生成 Visio 格式的类模型文档,但文档中只包括了分别对各个类的描述信息,没有更多关于类体系结构、对象体系结构等的描述。如何通过逆向建模生成更为详细、更深层次的模型文档,还有待进一步的讨论和研究。
技术实现思路
本专利技术所述一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法,解决上述技术问题采用的技术方案如下:所述的组件模型中给出了类的定义、类系的组织结构,并采用模型即代码,代码即模型的思想,利用正向代码和逆向建模使得代码与模型始终保持一致。该方法主要包括步骤:步骤1:通过图形化页面设计组件模型;步骤2:将组件模型数据解析并生成Java类源码;步骤3:将源码自动推送至GitLab工作空间;步骤4:监听代码变更事件,变更的代码,通过逆向建模方式解析并生成最新的组件模型数据;作为本专利技术优选的,所述组件模型包括但不限于:软件系统设计过程的控制层、服务层、持久层、实体模型载体。
[0005]作为本专利技术优选的,所述步骤2中所述的组件模型数据包括:类的定义以及类的组织结构。
[0006]作为本专利技术优选的,所述类的定义以及类的组织结构包括但不限于Java类名称、成员变量名、成员变量类型、方法名、方法返回类型、方法参数名、方法参数类型、方法体。
[0007]作为本专利技术优选的,所述生成Java源码包括:通过JavaParser,JavaParser是一款
用于Java源码的分析、转换和生成的工具,使用JavaParser中将元数据载入,最终生成生成Java源码。
[0008]作为本专利技术优选的,所述GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 。
[0009]作为本专利技术优选的,所述代码变更监听:利用了GitLab API提供的一个hook服务,通过配置自定义的url, GitLab在监听到项目代码变更后,向配置的url推送网络消息,从而接收到变更的代码。
[0010]作为本专利技术优选的,所述逆向建模解析最新代码并生成组件模型包括:使用JavaParser对最新Java代码解析成一棵语法树, 然后基于这棵树对Java代码进行分析,分析结果并转换成最新的组件模型数据。
[0011]本专利技术所述一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法与现有技术相比具有的有益效果:利用本专利技术,可以应用于软件设计开发领域,通过图形化的模型设计快速生成Java源码,通过代码变更逆向建模生成组件模型,利用模型即代码,代码即模型的思想,将模型与代码深度绑定,以组件化的形式参与到软件的设计开发过程中,提高从业者的建模能力,提高代码的开发效率,同时,弥补在设计阶段中缺少、缺失或与源代码不一致的模型文档。
附图说明
[0012]图1为组件模型数据示意图。
[0013]图2为组件模型设计并生成Java代码的流程图。
[0014]图3为代码变更监听并逆向生成组件模型的流程图。
具体实施方式
[0015]在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
[0016]为使本专利技术的目的、技术方案和优点更加清楚明白,下文中将结合附图和实施例,对本专利技术的一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法进行详细说明。
[0017]本专利技术所述一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法,采用模型即代码,代码即模型的思想,利用正向代码和逆向建模使得代码与模型始终保持一致;该方法包括步骤:组件模型设计、模型解析并生成代码、代码变更监听并逆向生成组件模型。
[0018]其中,组件模型包括但不限于:软件系统设计过程的控制层、服务层、持久层、实体模型等载体,所述组件模型数据包括:Java类名称、成员变量名、成员变量类型、方法名、方法返回类型、方法参数名、方法参数类型、方法体。
[0019]所述生成Java源码的包括:通过JavaParser载入组件模型属性,最终生成Java源代码。JavaParser是一款用于Java源码的分析、转换和生成的工具,使用JavaParser中将元
数据载入,最终生成生成Java源码。
[0020]所述GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务 。GitLab代码监听包括:使用GitLab API提供的一个hook服务,通过配置自定义的url, GitLab在监听到项目代码变更后,向配置的url推送网络消息,从而接收到变更的代码。
[0021]所述逆向工程解析最新代码并生成组件模型数据包括:使用JavaParser对最新Java代码解析成一棵语法树, 然后基于这棵树对Java代码进行分析,分析结果并转换成最新的组件模型数据。
[0022]实施例:下面通过一个实施例,对本专利技术所述一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法的优点和设计内容,进行详细说明。
[0023]本实施例所述一种基于组件模型生成Java代码,并通过Java源代码逆向建模的方法中,所述组件模型是指软件系统设计过程的控制层、服务层、持久层、实体模型等载体,组件模型数据为Java类名称、成员变量名、成员变量类型、方法名、方法返回类型、方法参数名、方法参数类型、方法体。附图1为组件模型的数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生成Java代码并通过Java源代码逆向建模的方法,其特征在于:包括以下步骤:步骤1:通过图形化页面设计组件模型;步骤2:将组件模型数据解析并生成Java类源码;步骤3:将源码自动推送至GitLab工作空间;步骤4:监听代码变更事件,变更的代码通过逆向建模解析并生成最新的组件模型数据。2.根据权利要求1所述的一种生成Java代码并通过Java源代码逆向建模的方法,其特征在于,所述步骤1中所述的组件模型,包括但不限于软件系统设计过程的控制层、服务层、持久层、实体模型载体。3.根据权利要求1所述的一种生成Java代码并通过Java源代码逆向建模的方法,其特征在于,所述步骤2中所述的组件模型数据包括:类的定义以及类的组织结构。4.根据权利要求2所述的一种生成Java代码并通过Java源代码逆向建模的方法,其特征在于,所述类的定义以及类的组织结构包括但不限于Java类名称、成员变量名、成员变量类型、方法名、方法返回类型、方法参数名、方法参数类型、方法体。5.根据权利要求1所述的一种生成Java代码并通过Java源代码逆向建模的方法,其特征在于,所述步骤2中所述的将模型生成Java源码的工具为...

【专利技术属性】
技术研发人员:陈君斌
申请(专利权)人:来未来科技浙江有限公司
类型:发明
国别省市:

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

1