CN109614091A - 代码自动生成方法、装置、电子设备及存储介质 - Google Patents
代码自动生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109614091A CN109614091A CN201811180736.6A CN201811180736A CN109614091A CN 109614091 A CN109614091 A CN 109614091A CN 201811180736 A CN201811180736 A CN 201811180736A CN 109614091 A CN109614091 A CN 109614091A
- Authority
- CN
- China
- Prior art keywords
- uml
- template
- title
- purpose project
- code
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Abstract
一种代码自动生成方法,所述方法包括:接收代码自动生成请求;根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称;确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称;将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。本发明还提供一种代码自动生成装置、电子设备及存储介质,用于开发辅助自动生成代码。
Description
技术领域
本发明涉及移动互联网技术领域,具体涉及一种代码自动生成方法及装置、电子设备及存储介质。
背景技术
UML因其简单、统一的特点,而且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标准。在软件无线电系统的开发过程中,统一建模语言可以在整个设计周期中使用,帮助设计者缩短设计时间,减少改进的成本,使软硬件分割最优。但是目前的UML没有形成设计的规范化,导致一些工程中的代码不可自动生成,降低了工程师的工作效率。
发明内容
鉴于以上内容,有必要提出一种代码自动生成方法及装置、电子设备及存储介质,可用于开发辅助自动生成代码。
本发明的第一方面提供一种代码自动生成方法,所述方法包括:
接收代码自动生成请求;
根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称;
确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称;
将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。
进一步地,所述方法还包括:
建立UML模板;
所述建立UML模板包括:
获取MVC源代码,每个MVC源代码包括唯一的名称;
根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板,其中,每个UML模板的名称与对应的MVC源代码的名称相同。
进一步地,每个MVC源代码为规范化的MVC函数,根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板包括:
根据预设的MVC源代码与UML代码之间的转换规则将所述规范化的MVC函数转换为对应的UML模板。
进一步地,确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板包括:
确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板;
依次逐个确定预设的UML模板中名称与所述目标工程目录文件夹中的其他目标工程目录文件夹的名称匹配的其他UML模板。
进一步地,确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板包括:
将所述预设的UML模板的名称逐个与所述一目标工程目录文件夹的名称进行比较;
判断所述预设的UML模板中是否存在与所述一目标工程目录文件夹的名称匹配的名称;
当所述预设的UML模板中存在与所述一目标工程目录文件夹的名称匹配的名称时,根据所述名称确定所述UML模板。
进一步地,将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码包括:
在确定完所有目标工程目录文件夹的名称后,逐个比较所述确定的UML模板的名称与所述目标工程目录文件夹的名称;
逐个将所述确定的UML模板添加到名称与所述UML模板的名称匹配的目标工程目录文件夹。
进一步地,将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码包括:
当确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板时,将所述确定的一UML模板添加至所述一目标工程目录文件夹;
在继续确定的过程中,当确定有与目标工程目录文件夹的名称匹配的UML模板时,将所述确定的UML模板添加至所述目标工程目录文件夹来生成所述目标工程的代码。
本发明的第二方面提供一种代码自动生成装置,所述装置包括:
接收模块,用于接收代码自动生成请求;
获取模块,用于根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称;
确定模块,用于确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称;
添加模块,用于将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。
本发明的第三方面提供一种电子设备,所述电子设备包括处理器及存储器,所述处理器用于执行所述存储器中存储的至少一个指令时实现如上任意一项所述的代码自动生成方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行以实现如上任意一项所述的代码自动生成方法。
本发明通过所述代码自动生成请求中的信息来获取对应的目标工程,并根据目标工程目录的名称来确定各UML模板,再将各UML模板添加至名称匹配的目标工程目录文件夹,来将UML模板中的代码自动添加至目标工程目录文件夹下,从而自动生成所述工程或者所述工程的代码,而无需工程师从零开始设计。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的代码自动生成方法的流程图。
图2是本发明实施例二提供的代码自动生成装置的功能模块图。
图3是本发明实施例三提供的电子设备的示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
图1为本发明实施例一提供的代码自动生成方法的示意流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。所述方法应用于电子设备中,所述电子设备可以为任何一种电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等。如图1所示,所述代码自动生成方法可以包括以下步骤:
步骤11,接收代码自动生成请求。
所述代码自动生成请求是用户操作用户界面所生成的请求。所述代码自动生成请求可为用户在用户界面中输入目标工程的地址后自动生成的请求,所述请求中包括目标工程的地址。或者,所述代码自动生成请求可为用户在用户界面中输入工程模板的网址后自动生成的请求,所述请求中包括工程模板的网址。或者,所述代码自动生成请求可为用户在用户界面中输入目标工程的地址或者工程模板的网址后点击虚拟框的操作自动生成的请求,所述请求中包括目标工程的地址,或者工程模板的网址。
步骤12,根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称。
当所述请求中包括目标工程的地址时,根据所述代码自动生成请求获取目标工程,为根据所述目标工程的地址从本地直接获取所述目标工程。所述本地可为本地的磁盘或者外接的磁盘。所述目标工程为预先存储在本地的磁盘或者外接的磁盘。所述目标工程为工程师自己新设计的工程,或者为工程师在从官网上所下载的工程模板上进行设计的工程。所述目标工程中可包括代码或者不包括代码。
当所述请求中包括工程模板的网址时,根据所述代码自动生成请求获取目标工程,为获取所述工程模板的网址所对应的网站上的工程模板。所述工程模板的网址所对应的网站可为官网或为非官网,例如为工程爱好者所建立的网站。其中,所述工程爱好者所建立的网站上包括有各工程师爱好者所上传的工程模板。所述目前工程中可包括代码或者不包括代码。
所述目标工程包括主目录文件夹。所述主目录文件夹可包括子目录文件夹或者不包括子目录文件夹。所述子目录文件夹可包括子子目录文件夹或者不包括子子目录文件夹。依次,所述子子目录文件夹还可以再分为一层或多层目录文件夹。所述目标工程目录文件夹的名称包括所述主目录文件夹的名称、所述子目录文件夹的名称及所述子子目录文件夹的名称等。例如,所述目标工程为ManageTopics工程,所述ManageTopics工程包括MainLogin主目录、MainLoad主目录、MainRefresh主目录及Topics主目录,所述MainLoad主目录包括StartLoadData子目录及ReLoadDataIfNotEmpty子目录,所述MainRefresh主目录包括Refresh子目录及OnRefresh子目录,则所述目标工程目录文件夹的名称包括:MainLogin、MainLoad、MainRefresh、Topics、StartLoadData、ReLoadDataIfNotEmpty、Refresh及OnRefresh。每个目标工程目录文件夹的名称不同。
步骤13,确定预设的UML(Unified Modeling Language,统一建模语言)模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称。
在本实施例中,所述方法还包括建立UML模板。所述建立UML模板包括步骤:
a:获取MVC(Model View Controller,模型-视图-控制器)源代码,每个MVC源代码包括唯一的名称。
所述MVC是一种软件设计模式。所述MVC用一种业务逻辑、数据、界面显示分离的方法组织代码。所述MVC包括Model(模型)、View(视图)及Controller(控制器)。所述Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常所述Model(模型)对象负责在数据库中存取数据。所述View(视图)是应用程序中处理数据显示的部分,通常所述View(视图)是依据模型数据创建的。所述Controller(控制器)是应用程序中处理用户交互的部分,通常所述Controller(控制器)负责从视图读取数据,控制用户输入,并向Model(模型)发送数据。所述MVC由于其View(视图)与Controller(控制器)之间的过于紧密的连接,妨碍了视图与控制的独立重用,且由于视图对模型数据的低效率访问,依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据,如此,将妨碍了MVC的发展。每个MVC源代码为规范化的MVC函数,每个MVC源代码的名称为所述规范化的MVC函数的名称。例如,当规范化的MVC函数为manager函数、isEmpltyOfView函数、startLoadData函数、reloadDataIfNotEmpty函数、loadCache函数、refresh函数、onRefresh函数、onLoadMore函数时,所述MVC源代码的名称相应为manager、isEmpltyOfView、startLoadData、reloadDataIfNotEmpty、loadCache、refresh、onRefresh、onLoadMore。每个MVC源代码的名称不同。
b:根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板,其中,每个UML模板的名称与对应的MVC源代码的名称相同。
所述UML是面向对象软件的标准化建模语言。所述UML定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。本实施例中,所述UML定义类图。这些图从不同的侧面对系统进行描述。UML在整个软件开发过程中采用相同的概念和表示方法,在不同的开发阶段,不必转换概念和表示,且为采用图形化的表现形式,所产生的模型易于理解,方便了开发人员与用户之间的沟通,因此,UML广泛用于各种类型的软件系统建模。
根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板为根据预设的MVC源代码与UML代码之间的转换规则将所述规范化的MVC函数转换为对应的UML模板。其中,具体的转换方法为现有技术,在此不进行赘述。在将所述规范化的MVC函数转换为对应的UML模板时,名称不变。例如,MVC函数startLoadData函数转换为UML模板中的startLoadData模板。
在本实施例中,所述UML模板还可为工程师在所述MVC源代码转换后所生成的文件上继续编辑所生成的模板。
所述确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板包括:
确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板;依次逐个确定预设的UML模板中名称与所述目标工程目录文件夹中的其他目标工程目录文件夹的名称匹配的其他UML模板。
所述确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板包括:
将所述预设的UML模板的名称逐个与所述一目标工程目录文件夹的名称进行比较;
判断所述预设的UML模板中是否存在与所述一目标工程目录文件夹的名称匹配的名称;
当所述预设的UML模板中存在与所述一目标工程目录文件夹的名称匹配的名称时,根据所述名称确定所述UML模板。
所述预设的UML模板中名称与所述一目标工程目录文件夹的名称匹配的UML模板包括所述预设的UML模板中名称与所述一目标工程目录文件夹的名称完全相同的UML模板及所述预设的UML模板中名称与所述一目标工程目录文件夹的名称实质相同的UML模板。所述实质相同可通过预先设置的规则来确定为匹配,例如,当所述目标工程目录文件夹的名称与所述UML模板的名称仅为大小写区别时,所述预先设置的规则为忽略大小写。
步骤14,将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。
所述将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码可为:在确定完所有目标工程目录文件夹的名称后,逐个比较所述确定的UML模板的名称与所述目标工程目录文件夹的名称;逐个将所述确定的UML模板添加到名称与所述UML模板的名称匹配的目标工程目录文件夹。例如,当确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的UML模板有startLoadData模板、ReLoadDataIfNotEmpty模板、Refresh模板及OnRefresh模板时,将所述startLoadData模板添加到StartLoadData文件夹,将所述ReLoadDataIfNotEmpty模板添加到ReLoadDataIfNotEmpty文件夹,将所述Refresh模板添加到Refresh文件夹,将所述OnRefresh模板添加到OnRefresh文件夹。
所述将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码还可为:当确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板时,将所述确定的一UML模板添加至所述一目标工程目录文件夹;在继续确定的过程中,当确定有与目标工程目录文件夹的名称匹配的UML模板时,将所述确定的UML模板添加至对应的目标工程目录文件夹来生成所述目标工程的代码。例如,当确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的一UML模板:startLoadData模板时,将所述startLoadData模板添加到startLoadData文件夹,并继续确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的UML模板,当确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的一UML模板:OnRefresh模板时,将所述OnRefresh模板添加到OnRefresh文件夹。如此,在将各UML模板分别添加到对应的目标工程目录文件夹时,无需再逐个比较所述确定的UML模板的名称与目标工程目录文件夹的名称,节省了代码自动生成时间且减轻了处理器的工作量。
本发明通过根据所述代码自动生成请求中的信息来获取对应的目标工程,并根据目标工程目录的名称来确定各UML模板,再将各UML模板添加至名称匹配的目标工程目录文件夹,来将UML模板中的代码自动添加至目标工程目录文件夹下,从而自动生成所述工程或者所述工程的代码,而无需工程师从零开始设计。
本方法通过所述代码自动生成请求,获取目标工程,从而可根据所述代码自动生成请求中的信息来获取待自动生成代码的目标工程;通过确定预设的UML(UnifiedModeling Language,统一建模语言)模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,从而确定预设的UML模板中可以用到目标工程中的UML模板;通过将各UML模板分别添加至名称与对应的UML模板的名称相匹配的目标工程目录文件夹,从而自动生成代码,无需工程师从零开始设计;通过当确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板时,将所述确定的一UML模板添加至所述一目标工程目录文件夹,并在继续确定的过程中,当确定有与目标工程目录文件夹的名称匹配的UML模板时,将所述确定的UML模板添加至对应的目标工程目录文件夹,从而无需在确定UML模板后再逐个比较所述确定的UML模板的名称与目标工程目录文件夹的名称,节省了代码自动生成时间且减轻了处理器的工作量。
实施例二
图2为本发明实施例二提供的代码自动生成装置的功能模块图。在一些实施例中,所述代码自动生成装置20运行于电子设备中。所述电子设备可以为任何一种电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等。所述代码自动生成装置20可以包括多个由程序代码段所组成的功能模块。所述代码自动生成装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行自动生成代码。
本实施例中,所述代码自动生成装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块21、获取模块22、确定模块23及添加模块24。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
所述接收模块21,用于接收代码自动生成请求。
所述代码自动生成请求是用户操作用户界面所生成的请求。所述代码自动生成请求可为用户在用户界面中输入目标工程的地址后自动生成的请求,所述请求中包括目标工程的地址。或者,所述代码自动生成请求可为用户在用户界面中输入工程模板的网址后自动生成的请求,所述请求中包括工程模板的网址。或者,所述代码自动生成请求可为用户在用户界面中输入目标工程的地址或者工程模板的网址后点击虚拟框的操作自动生成的请求,所述请求中包括目标工程的地址,或者工程模板的网址。
所述获取模块22,用于根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称。
当所述请求中包括目标工程的地址时,根据所述代码自动生成请求获取目标工程,为根据所述目标工程的地址从本地直接获取所述目标工程。所述本地可为本地的磁盘或者外接的磁盘。所述目标工程为预先存储在本地的磁盘或者外接的磁盘。所述目标工程为工程师自己新设计的工程,或者为工程师在从官网上所下载的工程模板上进行设计的工程。所述目标工程中可包括代码或者不包括代码。
当所述请求中包括工程模板的网址时,根据所述代码自动生成请求获取目标工程,为获取所述工程模板的网址所对应的网站上的工程模板。所述工程模板的网址所对应的网站可为官网或为非官网,例如为工程爱好者所建立的网站。其中,所述工程爱好者所建立的网站上包括有各工程师爱好者所上传的工程模板。所述目前工程中可包括代码或者不包括代码。
所述目标工程包括主目录文件夹。所述主目录文件夹可包括子目录文件夹或者不包括子目录文件夹。所述子目录文件夹可包括子子目录文件夹或者不包括子子目录文件夹。依次,所述子子目录文件夹还可以再分为一层或多层目录文件夹。所述目标工程目录文件夹的名称包括所述主目录文件夹的名称、所述子目录文件夹的名称及所述子子目录文件夹的名称等。例如,所述目标工程为ManageTopics工程,所述ManageTopics工程包括MainLogin主目录、MainLoad主目录、MainRefresh主目录及Topics主目录,所述MainLoad主目录包括StartLoadData子目录及ReLoadDataIfNotEmpty子目录,所述MainRefresh主目录包括Refresh子目录及OnRefresh子目录,则所述目标工程目录文件夹的名称包括:MainLogin、MainLoad、MainRefresh、Topics、StartLoadData、ReLoadDataIfNotEmpty、Refresh及OnRefresh。每个目标工程目录文件夹的名称不同。
所述确定模块23,用于确定预设的UML(Unified Modeling Language,统一建模语言)模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称。
在本实施例中,所述装置还包括建立模块25,所述建立模块25用于建立UML模板。具体地,所述建立模块25用于:
a:获取MVC(Model View Controller,模型-视图-控制器)源代码,每个MVC源代码包括唯一的名称。
所述MVC是一种软件设计模式。所述MVC用一种业务逻辑、数据、界面显示分离的方法组织代码。所述MVC包括Model(模型)、View(视图)及Controller(控制器)。所述Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常所述Model(模型)对象负责在数据库中存取数据。所述View(视图)是应用程序中处理数据显示的部分,通常所述View(视图)是依据模型数据创建的。所述Controller(控制器)是应用程序中处理用户交互的部分,通常所述Controller(控制器)负责从视图读取数据,控制用户输入,并向Model(模型)发送数据。所述MVC由于其View(视图)与Controller(控制器)之间的过于紧密的连接,妨碍了视图与控制的独立重用,且由于视图对模型数据的低效率访问,依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据,如此,将妨碍了MVC的发展。每个MVC源代码为规范化的MVC函数,每个MVC源代码的名称为所述规范化的MVC函数的名称。例如,当规范化的MVC函数为manager函数、isEmpltyOfView函数、startLoadData函数、reloadDataIfNotEmpty函数、loadCache函数、refresh函数、onRefresh函数、onLoadMore函数时,所述MVC源代码的名称相应为manager、isEmpltyOfView、startLoadData、reloadDataIfNotEmpty、loadCache、refresh、onRefresh、onLoadMore。每个MVC源代码的名称不同。
b:根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板,其中,每个UML模板的名称与对应的MVC源代码的名称相同。
所述UML是面向对象软件的标准化建模语言。所述UML定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。本实施例中,所述UML定义类图。这些图从不同的侧面对系统进行描述。UML在整个软件开发过程中采用相同的概念和表示方法,在不同的开发阶段,不必转换概念和表示,且为采用图形化的表现形式,所产生的模型易于理解,方便了开发人员与用户之间的沟通,因此,UML广泛用于各种类型的软件系统建模。
根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板为根据预设的MVC源代码与UML代码之间的转换规则将所述规范化的MVC函数转换为对应的UML模板。其中,具体的转换方法为现有技术,在此不进行赘述。在将所述规范化的MVC函数转换为对应的UML模板时,名称不变。例如,MVC函数startLoadData函数转换为UML模板中的startLoadData模板。
在本实施例中,所述UML模板还可为工程师在所述MVC源代码转换后所生成的文件上继续编辑所生成的模板。
所述确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板包括:
确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板;依次逐个确定预设的UML模板中名称与所述目标工程目录文件夹中的其他目标工程目录文件夹的名称匹配的其他UML模板。
所述确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板包括:
将所述预设的UML模板的名称逐个与所述一目标工程目录文件夹的名称进行比较;
判断所述预设的UML模板中是否存在与所述一目标工程目录文件夹的名称匹配的名称;
当所述预设的UML模板中存在与所述一目标工程目录文件夹的名称匹配的名称时,根据所述名称确定所述UML模板。
所述预设的UML模板中名称与所述一目标工程目录文件夹的名称匹配的UML模板包括所述预设的UML模板中名称与所述一目标工程目录文件夹的名称完全相同的UML模板及所述预设的UML模板中名称与所述一目标工程目录文件夹的名称实质相同的UML模板。所述实质相同可通过预先设置的规则来确定为匹配,例如,当所述目标工程目录文件夹的名称与所述UML模板的名称仅为大小写区别时,所述预先设置的规则为忽略大小写。
所述添加模块24,用于将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。
所述将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码可为:在确定完所有目标工程目录文件夹的名称后,逐个比较所述确定的UML模板的名称与所述目标工程目录文件夹的名称;逐个将所述确定的UML模板添加到名称与所述UML模板的名称匹配的目标工程目录文件夹。例如,当确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的UML模板有startLoadData模板、ReLoadDataIfNotEmpty模板、Refresh模板及OnRefresh模板时,将所述startLoadData模板添加到StartLoadData文件夹,将所述ReLoadDataIfNotEmpty模板添加到ReLoadDataIfNotEmpty文件夹,将所述Refresh模板添加到Refresh文件夹,将所述OnRefresh模板添加到OnRefresh文件夹。
所述将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码还可为:当确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板时,将所述确定的一UML模板添加至所述一目标工程目录文件夹;在继续确定的过程中,当确定有与目标工程目录文件夹的名称匹配的UML模板时,将所述确定的UML模板添加至对应的目标工程目录文件夹来生成所述目标工程的代码。例如,当确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的一UML模板:startLoadData模板时,将所述startLoadData模板添加到startLoadData文件夹,并继续确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的UML模板,当确定预设的UML模板中名称与目标工程目录文件夹的名称匹配的一UML模板:OnRefresh模板时,将所述OnRefresh模板添加到OnRefresh文件夹。如此,在将各UML模板分别添加到对应的目标工程目录文件夹时,无需再逐个比较所述确定的UML模板的名称与目标工程目录文件夹的名称,节省了代码自动生成时间且减轻了处理器的工作量。
本发明通过根据所述代码自动生成请求中的信息来获取对应的目标工程,并根据目标工程目录的名称来确定各UML模板,再将各UML模板添加至名称匹配的目标工程目录文件夹,来将UML模板中的代码自动添加至目标工程目录文件夹下,从而自动生成所述工程或者所述工程的代码,而无需工程师从零开始设计。
本装置通过所述代码自动生成请求,获取目标工程,从而可根据所述代码自动生成请求中的信息来获取待自动生成代码的目标工程;通过确定预设的UML(UnifiedModeling Language,统一建模语言)模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,从而确定预设的UML模板中可以用到目标工程中的UML模板;通过将各UML模板分别添加至名称与对应的UML模板的名称相匹配的目标工程目录文件夹,从而自动生成代码,无需工程师从零开始设计;通过当确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板时,将所述确定的一UML模板添加至所述一目标工程目录文件夹,并在继续确定的过程中,当确定有与目标工程目录文件夹的名称匹配的UML模板时,将所述确定的UML模板添加至对应的目标工程目录文件夹,从而无需在确定UML模板后再逐个比较所述确定的UML模板的名称与目标工程目录文件夹的名称,节省了代码自动生成时间且减轻了处理器的工作量
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备或处理器(processor)执行本发明各个实施例所述方法的部分。
实施例三
图3为本发明实施例三提供的电子设备的示意图。
所述电子设备3包括:计算机可读存储介质31、至少一个处理器32、及存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33。所述至少一个处理器32执行所述计算机程序33时实现上述代码自动生成方法实施例中的步骤。或者,所述至少一个处理器32执行所述计算机程序33时实现上述代码自动生成装置实施例中的各模块的功能。
示例性的,所述计算机程序33可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器31中,并由所述至少一个处理器32执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序33在所述电子设备3中的执行过程。例如,所述计算机程序33可以被分割成图2所示的模块,各模块具体功能参见实施例二。
所述电子设备3可以为任何一种电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等。本领域技术人员可以理解,所述示意图3仅仅是电子设备3的示例,并不构成对电子设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备3还可以包括输入输出设备、网络接入设备、总线等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述电子设备3的控制中心,利用各种接口和线路连接整个电子设备3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述电子设备3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备3的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述电子设备3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的电子设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神范围。
Claims (10)
1.一种代码自动生成方法,其特征在于,所述方法包括:
接收代码自动生成请求;
根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称;
确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称;
将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
建立UML模板;
所述建立UML模板包括:
获取MVC源代码,每个MVC源代码包括唯一的名称;
根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板,其中,每个UML模板的名称与对应的MVC源代码的名称相同。
3.如权利要求2所述的方法,其特征在于,每个MVC源代码为规范化的MVC函数,根据预设的MVC源代码与UML代码之间的转换规则将所述MVC源代码转换为UML模板包括:
根据预设的MVC源代码与UML代码之间的转换规则将所述规范化的MVC函数转换为对应的UML模板。
4.如权利要求1所述的方法,其特征在于,确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板包括:
确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板;
依次逐个确定预设的UML模板中名称与所述目标工程目录文件夹中的其他目标工程目录文件夹的名称匹配的其他UML模板。
5.如权利要求4所述的方法,其特征在于,确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板包括:
将所述预设的UML模板的名称逐个与所述一目标工程目录文件夹的名称进行比较;
判断所述预设的UML模板中是否存在与所述一目标工程目录文件夹的名称匹配的名称;
当所述预设的UML模板中存在与所述一目标工程目录文件夹的名称匹配的名称时,根据所述名称确定所述UML模板。
6.如权利要求1所述的方法,其特征在于,将各UML模板分别添加至名称与对应UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码包括:
在确定完所有目标工程目录文件夹的名称后,逐个比较所述确定的UML模板的名称与所述目标工程目录文件夹的名称;
逐个将所述确定的UML模板添加到名称与所述UML模板的名称匹配的目标工程目录文件夹。
7.如权利要求1所述的方法,其特征在于,将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码包括:
当确定预设的UML模板中名称与一目标工程目录文件夹的名称匹配的一UML模板时,将所述确定的一UML模板添加至所述一目标工程目录文件夹;
在继续确定的过程中,当确定有与目标工程目录文件夹的名称匹配的UML模板时,将所述确定的UML模板添加至所述目标工程目录文件夹来生成所述目标工程的代码。
8.一种代码自动生成装置,其特征在于,所述装置包括:
接收模块,用于接收代码自动生成请求;
获取模块,用于根据所述代码自动生成请求获取目标工程,所述目标工程包括目标工程目录文件夹,每个目标工程目录文件夹包括唯一的名称;
确定模块,用于确定预设的UML模板中名称与所述目标工程目录文件夹的名称匹配的UML模板,其中,每个UML模板包括唯一的名称;
添加模块,用于将各UML模板分别添加至名称与对应的UML模板的名称匹配的目标工程目录文件夹来生成所述目标工程的代码。
9.一种电子设备,其特征在于,所述电子设备包括处理器及存储器,所述处理器用于执行所述存储器中存储的至少一个指令时实现如权利要求1至7中任意一项所述的代码自动生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行以实现如权利要求1至7中任意一项所述的代码自动生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180736.6A CN109614091A (zh) | 2018-10-09 | 2018-10-09 | 代码自动生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811180736.6A CN109614091A (zh) | 2018-10-09 | 2018-10-09 | 代码自动生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614091A true CN109614091A (zh) | 2019-04-12 |
Family
ID=66002376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811180736.6A Pending CN109614091A (zh) | 2018-10-09 | 2018-10-09 | 代码自动生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614091A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070074178A1 (en) * | 2005-09-28 | 2007-03-29 | Schwartz David R | Method and system for broadly sharing UML-based models |
CN103164252A (zh) * | 2013-04-15 | 2013-06-19 | 西安电子科技大学 | 一种由序列图生成Java代码框架的方法 |
CN104391706A (zh) * | 2014-12-02 | 2015-03-04 | 南京大学 | 一种基于逆向工程的模型库构造方法 |
CN105630472A (zh) * | 2014-11-03 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 制造执行系统客户端快速开发框架及其软件开发方法 |
WO2016085213A1 (ko) * | 2014-11-27 | 2016-06-02 | 주식회사 엘지씨엔에스 | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 |
CN106020788A (zh) * | 2016-04-28 | 2016-10-12 | 齐鲁工业大学 | 一种智能化的软件编程方法 |
CN106445494A (zh) * | 2009-10-14 | 2017-02-22 | 韦尔迈格服务有限公司 | 自动化企业软件开发 |
CN106648690A (zh) * | 2016-12-29 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种代码自动生成方法及装置 |
CN107148615A (zh) * | 2014-11-27 | 2017-09-08 | 乐金信世股份有限公司 | 计算机可执行的模型逆向工程方法及装置 |
-
2018
- 2018-10-09 CN CN201811180736.6A patent/CN109614091A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070074178A1 (en) * | 2005-09-28 | 2007-03-29 | Schwartz David R | Method and system for broadly sharing UML-based models |
CN106445494A (zh) * | 2009-10-14 | 2017-02-22 | 韦尔迈格服务有限公司 | 自动化企业软件开发 |
CN103164252A (zh) * | 2013-04-15 | 2013-06-19 | 西安电子科技大学 | 一种由序列图生成Java代码框架的方法 |
CN105630472A (zh) * | 2014-11-03 | 2016-06-01 | 中国科学院沈阳自动化研究所 | 制造执行系统客户端快速开发框架及其软件开发方法 |
WO2016085213A1 (ko) * | 2014-11-27 | 2016-06-02 | 주식회사 엘지씨엔에스 | 컴퓨터 수행 가능한 모델 역공학 방법 및 장치 |
CN107148615A (zh) * | 2014-11-27 | 2017-09-08 | 乐金信世股份有限公司 | 计算机可执行的模型逆向工程方法及装置 |
CN104391706A (zh) * | 2014-12-02 | 2015-03-04 | 南京大学 | 一种基于逆向工程的模型库构造方法 |
CN106020788A (zh) * | 2016-04-28 | 2016-10-12 | 齐鲁工业大学 | 一种智能化的软件编程方法 |
CN106648690A (zh) * | 2016-12-29 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种代码自动生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614102A (zh) | 代码自动生成方法、装置、电子设备及存储介质 | |
CN112671769B (zh) | 电子合同的签署方法、装置及设备 | |
CN110442329A (zh) | 代码段的生成方法、装置、存储介质及计算机设备 | |
CN108279882B (zh) | 框架生成方法、装置、设备及计算机可读介质 | |
CN103677821A (zh) | 软件开发工具代码发布的方法和装置 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN106951254B (zh) | 支付系统中相似业务功能模块复用的方法及装置 | |
CN110471754A (zh) | 作业调度中的数据展示方法、装置、设备及存储介质 | |
CN109144511B (zh) | 数值模拟图形用户界面自动生成方法及系统 | |
CN107798120B (zh) | 一种数据转换方法及装置 | |
CN109542398B (zh) | 一种业务系统生成方法、装置及计算机可读存储介质 | |
CN111158800A (zh) | 基于映射关系构建任务dag的方法及装置 | |
CN114237587A (zh) | 一种基于IDEA技术服务SmartFlow的管控方法及系统 | |
CN111476007B (zh) | 表格生成方法、装置、计算机装置及计算机可读存储介质 | |
CN109710303A (zh) | 语音交互产品的多版本并行开发方法及系统 | |
CN107256167A (zh) | 应用于应用系统迁移的升级控制方法及升级控制设备 | |
CN109614091A (zh) | 代码自动生成方法、装置、电子设备及存储介质 | |
CN107533468A (zh) | 用于云和设备套件的可扩展性捆绑包 | |
CN115543428A (zh) | 一种基于策略模板的模拟数据生成方法和装置 | |
CN108763365A (zh) | 案件信息动态导入方法、装置、设备及存储介质 | |
CN108667647A (zh) | 一种设备参数的设置方法、设备及服务器 | |
CN113420306A (zh) | 资源共享方法、装置、计算设备及计算机可读存储介质 | |
WO2017078548A1 (en) | Systems and methods for information flow analysis | |
CN117724709A (zh) | 一种软件应用的生成方法、装置、终端设备及存储介质 | |
CN113448960A (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 |