CN109840117A - 训练模型的实现方法、设备以及存储介质 - Google Patents

训练模型的实现方法、设备以及存储介质 Download PDF

Info

Publication number
CN109840117A
CN109840117A CN201810635591.8A CN201810635591A CN109840117A CN 109840117 A CN109840117 A CN 109840117A CN 201810635591 A CN201810635591 A CN 201810635591A CN 109840117 A CN109840117 A CN 109840117A
Authority
CN
China
Prior art keywords
program
algorithm logic
training
logic layer
business algorithm
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
CN201810635591.8A
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201810635591.8A priority Critical patent/CN109840117A/zh
Publication of CN109840117A publication Critical patent/CN109840117A/zh
Priority to PCT/CN2019/091561 priority patent/WO2019242586A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开一种训练模型的实现方法、设备以及计算机可读存储介质,该方法包括:训练程序加载业务算法逻辑层生成的动态库;在前向传播和反向传播计算时,通过前向传播接口和反向传播接口调用所述动态库的前向传播程序和反向传播程序进行训练,得到训练模型。本发明实施例的训练程序和业务算法逻辑层脱耦合,训练程序和业务算法逻辑层可以独立运行也可以由训练程序加载业务算法逻辑层运行,方便各自开发维护;编译运行只涉及业务算法逻辑层代码,节省编译时间,提升版本开发效率。

Description

训练模型的实现方法、设备以及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种训练模型的实现方法、设备以及计算机可读存储介质。
背景技术
在团队协作过程中,由于训练工具版本众多,不同研发工程师拿到的训练工具版本可能不一样,不同的训练工具依赖的软件环境和硬件环境不同,在此种情况下,生成的训练模型对运行环境的软件环境和硬件环境也不一样,一旦在产品集成联调阶段把所有训练模型运行在同一个生产环境中,就会出现各种意想不到的异常。
发明内容
有鉴于此,本发明实施例的目的在于提供一种训练模型的实现方法、设备以及计算机可读存储介质,以解决训练工具版本众多,导致在产品集成联调阶段把所有训练模型运行在同一个生产环境中出现的问题。
本发明实施例解决上述技术问题所采用的技术方案如下:
根据本发明实施例的一个方面,提供的一种训练模型的实现方法,所述方法包括:
训练程序加载业务算法逻辑层生成的动态库;
在前向传播和反向传播计算时,通过前向传播接口和反向传播接口调用所述动态库的前向传播程序和反向传播程序进行训练,得到训练模型。
根据本发明实施例的另一个方面,提供的一种训练模型的实现设备,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的训练模型的实现程序,所述训练模型的实现程序被所述处理器执行时实现上述的训练模型的实现方法的步骤。
根据本发明实施例的另一个方面,提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有训练模型的实现程序,所述训练模型的实现程序被处理器执行时实现上述的训练模型的实现方法的步骤。
本发明实施例的训练模型的实现方法、设备以及计算机可读存储介质,训练程序和业务算法逻辑层脱耦合,训练程序和业务算法逻辑层可以独立运行也可以由训练程序加载业务算法逻辑层运行,方便各自开发维护;编译运行只涉及业务算法逻辑层代码,节省编译时间,提升版本开发效率。
附图说明
图1为现有训练工具的内部框架结构示意图;
图2为现有训练工具的编译流程示意图;
图3为现有训练工具添加新层的编译流程示意图;
图4为本发明第一实施例的训练模型的实现方法流程示意图;
图5为本发明实施例的训练工具的内部框架结构示意图;
图6为本发明实施例的训练工具的算法逻辑层结构示意图;
图7为本发明实施例的训练工具的核心模块结构示意图;
图8为本发明实施例的算法迭代嵌入新算法层的流程示意图;
图9为本发明第二实施例的训练模型的实现设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
第一实施例
为了更好地理解本实施例,以下对现有训练工具添加新层的编译流程进行说明:
如图1所示为现有训练工具的内部框架结构示意图,训练工具包括核心层、底层依赖函数库和若干个新添加层,核心层包括卷积层、池化层、全连接层。
以caffe为例,caffe的版本编译流程如图2所示。caffe把所有层的配置项在编译之前先用protoc工具生成代码caffe.pb.cc和caffe.pb.h,caffe各个层的代码中把配置项代码用include包含进来,然后编译生成libcaffe.so,编译caffe.cpp把libcaffe.so链接进来生成可执行文件caffe。
请参考图3所示,如果要添加一个层(BN层为例),首先在caffe.proto中添加BN层的配置项,生成caffe.pb.h和caffe.pb.cc以后,把BN层的cpp、cu、h代码分别放至caffe的编译目录,例如:放至~/src/caffe/layers/目录和~/include/caffe/layers/目录,然后编译生成libcaffe.so,最后和caffe.cpp一起链接成新的caffe可执行文件。
上述的编译方式存在的问题是,新添加层和caffe的主版本耦合太紧密,不易剥离。
基于上述方式存在的问题,如图4所示,本发明第一实施例提供一种训练模型的实现方法,所述方法包括:
步骤S11:训练程序加载业务算法逻辑层生成的动态库。
在本实施例中,所述业务算法逻辑层生成动态库包括:
获取所述业务算法逻辑层的配置文件;
根据所述业务算法逻辑层的配置文件、依赖头文件和底层依赖函数库文件,按照所述业务算法逻辑层的算法逻辑编译生成所述动态库。
在本实施例中,所述配置文件为JSON格式的配置文件。作为示例地,JSON格式的配置文件如下所示:
{
"var_eps":1e-10,
"moving_average":1,
"decay":7,
"first_filler_type":"constant",
"first_filler_value":1,
"first_filler_lr_mult":1.00001,
"first_filler_decay_mult":0.1,
"second_filler_type":"constant",
"second_filler_value":1,
"second_filler_lr_mult":1.00001,
"second_filler_decay_mult":0.1
}
可选的,所述获取所述业务算法逻辑层的配置文件包括:
通过预设的解析函数,获取所述业务算法逻辑层的配置文件。
作为示例地,预设的解析函数可如下所示:
any getvalue(char*paraname,const char*layerparapath),其中,输入:查询字段,配置文件路径;输出:查询字段对应的数据(any可以保存任意类型)。调用该函数后,通过配置文件路径,找到对应的配置文件(例如BN.json),以查询”var_eps”字段为例,函数将返回1e-10。
可选的,所述根据所述业务算法逻辑层的配置文件、依赖头文件和底层依赖函数库文件,按照所述业务算法逻辑层的算法逻辑编译生成所述动态库之后还包括:
将所述动态库存储到所述训练程序的指定目录。
在一种实施方式中,所述训练程序加载业务算法逻辑层生成的动态库之前还包括:
通过初始化接口调用所述动态库的初始化程序,对所述业务算法逻辑层的参数进行初始化。
在另一种实施方式中,所述训练程序加载业务算法逻辑层生成的动态库之前还包括:
获取所述训练程序的评估结果,对所述训练程序的代码进行修改。
在该实施方式中,所述获取所述训练程序的评估结果,对所述训练程序的代码进行修改之前还包括:
获取所述业务算法逻辑层提交的代码修改需求;
根据所述代码修改需求,得到所述训练程序的评估结果。
步骤S12:在前向传播和反向传播计算时,通过前向传播接口和反向传播接口调用所述动态库的前向传播程序和反向传播程序进行训练,得到训练模型。
为了更好地阐述本实施例,以下结合图5-图8进行说明:
如图5所示,训练工具包括核心模块和业务算法逻辑层(图中虚线框所示),业务算法逻辑层可以独立编译运行调试。
如图6所示,业务算法逻辑层包括配置文件、算法逻辑、依赖头文件和底层依赖函数库文件以及API(Application Programming Interface,应用程序编程接口)。依赖头文件和底层依赖函数库文件来自核心模块提供和生成;算法逻辑即各层的算法逻辑;API主要是如下三个接口:
1、初始化接口:该接口在训练程序初始化的时候会根据配置文件逐层调用。初始化具体的实现由算法逻辑层调用,主要功能是实现各个业务逻辑算法的参数初始化读入内存。接口形式如下所示:
template<typename Dtype>
void XxxLayer<Dtype>::LayerSetUp(const vector<Blob<Dtype>*>&bottom,
const vector<Blob<Dtype>*>&top);
2、前向传播接口:该接口在训练程序做前向传播计算的时候逐层调用。接口形式如下所示:
template<typename Dtype>
void XxxLayer<Dtype>::Forward_cpu(const vector<Blob<Dtype>*>&bottom,
const vector<Blob<Dtype>*>&top);
3、反向传播接口:该接口在训练程序做反向传播计算的时候逐层调用。接口形式如下所示:
template<typename Dtype>
void XxxLayer<Dtype>::Backward_cpu(const vector<Blob<Dtype>*>&top,
const vector<bool>&propagate_down,const vector<Blob<Dtype>*>&bottom);
支撑层提供底层库管理主要以动态库的形式,给业务算法逻辑层在编译时链接,然后可以被业务算法逻辑层直接调用。
如图7所示,核心模块包括核心层管理、初始化接口、前向传播接口、反向传播接口以及底层函数管理。核心层包括卷积层、全连接层、池化层等,核心模块在初始化阶段通过dlopen把新添加层生成的动态库加载,循环前向计算和反向计算的时候分别调用该层前向传播接口和反向传播接口。
图8为算法迭代嵌入新算法层流程示意图,如图所示,黑色框代表新添加层的算法,原来训练过程从上到下经过data、conv、norm、pool、fc、loss,添加新添加层后,经过pool运算后,调用new的前向运算和反向运算的API实现将新添加层嵌入到训练迭代过程。
本发明实施例的训练模型的实现方法,训练程序和业务算法逻辑层脱耦合,训练程序和业务算法逻辑层可以独立运行也可以由训练程序加载业务算法逻辑层运行,方便各自开发维护;编译运行只涉及业务算法逻辑层代码,节省编译时间,提升版本开发效率。
第二实施例
如图9所示,本发明第二实施例提供一种训练模型的实现设备,所述设备包括:存储器21、处理器22及存储在所述存储器21上并可在所述处理器22上运行的训练模型的实现程序,所述训练模型的实现程序被所述处理器22执行时,用于实现以下所述的训练模型的实现方法的步骤:
训练程序加载业务算法逻辑层生成的动态库;
在前向传播和反向传播计算时,通过前向传播接口和反向传播接口调用所述动态库的前向传播程序和反向传播程序进行训练,得到训练模型。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
通过初始化接口调用所述动态库的初始化程序,对所述业务算法逻辑层的参数进行初始化。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
获取所述业务算法逻辑层的配置文件;
根据所述业务算法逻辑层的配置文件、依赖头文件和底层依赖函数库文件,按照所述业务算法逻辑层的算法逻辑编译生成所述动态库。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
通过预设的解析函数,获取所述业务算法逻辑层的配置文件。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
所述配置文件为JSON格式的配置文件。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
将所述动态库存储到所述训练程序的指定目录。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
获取所述训练程序的评估结果,对所述训练程序的代码进行修改。
所述训练模型的实现程序被所述处理器22执行时,还用于实现以下所述的训练模型的实现方法的步骤:
获取所述业务算法逻辑层提交的代码修改需求;
根据所述代码修改需求,得到所述训练程序的评估结果。
本发明实施例的训练模型的实现设备,训练程序和业务算法逻辑层脱耦合,训练程序和业务算法逻辑层可以独立运行也可以由训练程序加载业务算法逻辑层运行,方便各自开发维护;编译运行只涉及业务算法逻辑层代码,节省编译时间,提升版本开发效率。
第三实施例
本发明第三实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有训练模型的实现程序,所述训练模型的实现程序被处理器执行时用于实现第一实施例所述的训练模型的实现方法的步骤。
需要说明的是,本实施例的计算机可读存储介质,与第一实施例的方法属于同一构思,其具体实现过程详细见方法实施例,且方法实施例中的技术特征在本实施例中均对应适用,这里不再赘述。
本发明实施例的计算机可读存储介质,训练程序和业务算法逻辑层脱耦合,训练程序和业务算法逻辑层可以独立运行也可以由训练程序加载业务算法逻辑层运行,方便各自开发维护;编译运行只涉及业务算法逻辑层代码,节省编译时间,提升版本开发效率。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

Claims (10)

1.一种训练模型的实现方法,所述方法包括:
训练程序加载业务算法逻辑层生成的动态库;
在前向传播和反向传播计算时,通过前向传播接口和反向传播接口调用所述动态库的前向传播程序和反向传播程序进行训练,得到训练模型。
2.根据权利要求1所述的方法,其特征在于,所述训练程序加载业务算法逻辑层生成的动态库之前还包括:
通过初始化接口调用所述动态库的初始化程序,对所述业务算法逻辑层的参数进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述训练程序加载业务算法逻辑层生成的动态库之前还包括:
获取所述业务算法逻辑层的配置文件;
根据所述业务算法逻辑层的配置文件、依赖头文件和底层依赖函数库文件,按照所述业务算法逻辑层的算法逻辑编译生成所述动态库。
4.根据权利要求3所述的方法,其特征在于,所述获取所述业务算法逻辑层的配置文件包括:
通过预设的解析函数,获取所述业务算法逻辑层的配置文件。
5.根据权利要求3所述的方法,其特征在于,所述配置文件为JSON格式的配置文件。
6.根据权利要求3所述的方法,其特征在于,所述根据所述业务算法逻辑层的配置文件、依赖头文件和底层依赖函数库文件,按照所述业务算法逻辑层的算法逻辑编译生成所述动态库之后还包括:
将所述动态库存储到所述训练程序的指定目录。
7.根据权利要求1所述的方法,其特征在于,所述训练程序加载业务算法逻辑层生成的动态库之前还包括:
获取所述训练程序的评估结果,对所述训练程序的代码进行修改。
8.根据权利要求7所述的方法,其特征在于,所述获取所述训练程序的评估结果,对所述训练程序的代码进行修改之前还包括:
获取所述业务算法逻辑层提交的代码修改需求;
根据所述代码修改需求,得到所述训练程序的评估结果。
9.一种训练模型的实现设备,其特征在于,所述设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的训练模型的实现程序,所述训练模型的实现程序被所述处理器执行时实现如权利要求1至8中任一项所述的训练模型的实现方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有训练模型的实现程序,所述训练模型的实现程序被处理器执行时实现如权利要求1至8中任一项所述的训练模型的实现方法的步骤。
CN201810635591.8A 2018-06-20 2018-06-20 训练模型的实现方法、设备以及存储介质 Pending CN109840117A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810635591.8A CN109840117A (zh) 2018-06-20 2018-06-20 训练模型的实现方法、设备以及存储介质
PCT/CN2019/091561 WO2019242586A1 (zh) 2018-06-20 2019-06-17 训练模型的实现方法、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810635591.8A CN109840117A (zh) 2018-06-20 2018-06-20 训练模型的实现方法、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN109840117A true CN109840117A (zh) 2019-06-04

Family

ID=66883016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810635591.8A Pending CN109840117A (zh) 2018-06-20 2018-06-20 训练模型的实现方法、设备以及存储介质

Country Status (2)

Country Link
CN (1) CN109840117A (zh)
WO (1) WO2019242586A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019242586A1 (zh) * 2018-06-20 2019-12-26 中兴通讯股份有限公司 训练模型的实现方法、设备以及存储介质
CN111010346A (zh) * 2019-12-23 2020-04-14 深信服科技股份有限公司 基于动态路由的报文处理方法、设备、存储介质及装置
CN113129049A (zh) * 2019-12-31 2021-07-16 上海哔哩哔哩科技有限公司 用于模型训练和应用的文件配置方法和***
CN113469322A (zh) * 2020-03-31 2021-10-01 杭州海康威视数字技术股份有限公司 确定模型的可执行程序的方法、装置、设备及存储介质
CN113918235A (zh) * 2021-09-17 2022-01-11 北京房江湖科技有限公司 应用加载的方法及装置、计算机程序产品和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229904A (zh) * 2017-04-24 2017-10-03 东北大学 一种基于深度学习的目标检测与识别方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064783A (zh) * 2011-10-19 2013-04-24 通用电气公司 使用重复利用动态链接库进行功能测试的***和方法
CN104820613B (zh) * 2015-05-27 2018-03-27 北京思朗科技有限责任公司 一种异构多核程序的编译方法
CN106528171B (zh) * 2016-11-24 2019-09-24 郑州云海信息技术有限公司 一种异构计算平台子***间的接口设计方法、装置及***
CN107239315B (zh) * 2017-04-11 2019-11-15 赛灵思公司 面向神经网络异构计算平台的编程模型
CN108021395B (zh) * 2017-12-27 2022-04-29 北京金山安全软件有限公司 一种面向神经网络的数据并行处理方法及***
CN109840117A (zh) * 2018-06-20 2019-06-04 中兴通讯股份有限公司 训练模型的实现方法、设备以及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229904A (zh) * 2017-04-24 2017-10-03 东北大学 一种基于深度学习的目标检测与识别方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIZHIIL2825: "caffe 想把添加层代码做成动态库,动态加载到caffe版本,有做过的能提供点经验吗?", 《WWW.CAFFECN.CN/?/QUESTION/1548》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019242586A1 (zh) * 2018-06-20 2019-12-26 中兴通讯股份有限公司 训练模型的实现方法、设备以及存储介质
CN111010346A (zh) * 2019-12-23 2020-04-14 深信服科技股份有限公司 基于动态路由的报文处理方法、设备、存储介质及装置
CN111010346B (zh) * 2019-12-23 2021-10-19 深信服科技股份有限公司 基于动态路由的报文处理方法、设备、存储介质及装置
CN113129049A (zh) * 2019-12-31 2021-07-16 上海哔哩哔哩科技有限公司 用于模型训练和应用的文件配置方法和***
CN113129049B (zh) * 2019-12-31 2023-07-28 上海哔哩哔哩科技有限公司 用于模型训练和应用的文件配置方法和***
CN113469322A (zh) * 2020-03-31 2021-10-01 杭州海康威视数字技术股份有限公司 确定模型的可执行程序的方法、装置、设备及存储介质
CN113469322B (zh) * 2020-03-31 2023-07-18 杭州海康威视数字技术股份有限公司 确定模型的可执行程序的方法、装置、设备及存储介质
CN113918235A (zh) * 2021-09-17 2022-01-11 北京房江湖科技有限公司 应用加载的方法及装置、计算机程序产品和存储介质
CN113918235B (zh) * 2021-09-17 2023-11-17 贝壳找房(北京)科技有限公司 应用加载的方法及装置、存储介质

Also Published As

Publication number Publication date
WO2019242586A1 (zh) 2019-12-26

Similar Documents

Publication Publication Date Title
CN109840117A (zh) 训练模型的实现方法、设备以及存储介质
EP2249249B1 (en) Systems and methods for modifying code generation templates
La Rosa et al. Questionnaire-based variability modeling for system configuration
CN107273117B (zh) 一种编程友好型的敏捷代码自动生成***
CN106126204B (zh) 一种基于模块化设计的信息***迭代式扩展开发方法
CN101443768A (zh) 描述及开发动态行为应用***的方法与***
EP2098954B1 (en) Systems and methods for template reverse engineering
CN107220172A (zh) 通过模型驱动技术进行自动用户界面(ui)测试的方法和***
Zhang et al. SOMA-ME: A platform for the model-driven design of SOA solutions
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
CN110795091B (zh) 一种模块化路由解耦方法、存储介质、电子设备及***
Benouda et al. MDA approach to automate code generation for mobile applications
Khuat Developing a frontend application using ReactJS and Redux
Mens et al. Architectural transformations: From legacy to three-tier and services
Peralta Microservice APIs: Using Python, Flask, FastAPI, OpenAPI and More
US20110066566A1 (en) Conceptual representation of business processes for cross-domain mapping
Bendraou et al. Achieving process modeling and execution through the combination of aspect and model‐driven engineering approaches
Marchetto et al. Transforming a java application in an equivalent web-services based application: toward a tool supported stepwise approach
Weigert et al. Experiences in deploying model-driven engineering
Abdulhameed et al. Aspect oriented programming: Concepts, characteristics and implementation
Dahman et al. Towards consistency management for a business-driven development of soa
Kealey Enhanced use case map analysis and transformation tooling
CN110399296A (zh) 测试客户端与服务端之间交互接口的方法、***和介质
US20190310933A1 (en) Externalized definition and reuse of mocked transactions
Malavolta Software Architecture Modeling by Reuse, Composition and Customization

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: 20190604