CN109408043A - 一种程序生成方法及装置 - Google Patents

一种程序生成方法及装置 Download PDF

Info

Publication number
CN109408043A
CN109408043A CN201811222020.8A CN201811222020A CN109408043A CN 109408043 A CN109408043 A CN 109408043A CN 201811222020 A CN201811222020 A CN 201811222020A CN 109408043 A CN109408043 A CN 109408043A
Authority
CN
China
Prior art keywords
code
description information
template
program
transaction
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.)
Granted
Application number
CN201811222020.8A
Other languages
English (en)
Other versions
CN109408043B (zh
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.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
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 Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN201811222020.8A priority Critical patent/CN109408043B/zh
Publication of CN109408043A publication Critical patent/CN109408043A/zh
Application granted granted Critical
Publication of CN109408043B publication Critical patent/CN109408043B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本发明公开了一种程序生成方法及装置,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。并且,采用统一的程序生成方法可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。

Description

一种程序生成方法及装置
技术领域
本发明涉及计算机技术领域,更具体的说,涉及一种程序生成方法及装置。
背景技术
目前,很多工具都可以根据输入信息生成一些代码片段,例如,Eclipse工具可以自动生成getter/setter,tostring,equals等代码,Mybatis generator工具可以生成mybatis数据库访问代码。但是,现有的工具并不具有形成完整系统交易的功能,因此,无法将这些代码片段形成完整的业务。
现有采用人工干预方法将这些代码片段形成完整的系统交易流程。由于系统交易流程复杂,考虑因素多,设计、编码和测试的工作量大,因此人工编写代码片段容易因疏漏而形成漏洞BUG,且容易存在编码不规范的问题。
发明内容
有鉴于此,本发明公开一种程序生成方法及装置,以实现代码自动生成,简化代码开发流程,提高代码质量和可读性,减少工作量,有效避免编码不规范的问题。
一种程序生成方法,包括:
通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
将所述标准代码作为目标代码进行输出。
可选的,所述程序模板分为:标准程序模板和用户自定制程序模板。
可选的,所述交易需求描述信息为:将用户输入的初始需求描述信息转换成预设标准格式后,生成的预设标准格式的交易需求描述信息。
可选的,所述将所述标准代码作为目标代码进行输出,具体包括:
获取预设补充条件;
将所述预设补充条件添加至所述标准代码,形成目标代码;
输出所述目标代码。
可选的,所述交易技术参数包括:通信协议、报文格式、命名规则,类型选项、技术限制、名称转换表、默认值和错误码。
一种程序生成装置,包括:
获取单元,用于通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
代码生成单元,用于由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
输出单元,用于将所述标准代码作为目标代码进行输出。
可选的,所述程序模板分为:标准程序模板和用户自定制程序模板。
可选的,所述交易需求描述信息为:将用户输入的初始需求描述信息转换成预设标准格式后,生成的预设标准格式的交易需求描述信息。
可选的,所述输出单元具体包括:
获取子单元,用于获取预设补充条件;
添加子单元,用于将所述预设补充条件添加至所述标准代码,形成目标代码;
输出子单元,用于输出所述目标代码。
可选的,所述交易技术参数包括:通信协议、报文格式、命名规则,类型选项、技术限制、名称转换表、默认值和错误码。
从上述的技术方案可知,本发明公开了一种程序生成方法及装置,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。
并且,采用统一的程序生成方法可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据公开的附图获得其他的附图。
图1为本发明实施例公开的一种程序生成方法流程图;
图2为本发明实施例公开的另一种程序生成方法流程图;
图3为本发明实施例公开的一种程序生成装置的结构示意图;
图4为本发明实施例公开的另一种程序生成装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种程序生成方法及装置,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。
并且,采用统一的程序生成方法可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。
参见图1,本发明一实施例公开的一种程序生成方法流程图,该方法包括步骤:
步骤S101、通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
其中,交易需求描述信息可以包括:界面字段、接口字段、取值说明、检查条件、更新数据表、字段清单、交易码、交易类型、交易名称、代码类型、输入内容、输出内容、访问表等等。
可以理解,在实际应用中,不同的业务人员输入的交易需求描述信息的格式可能会不相同,为便于代码生成引擎对获取的交易需求描述信息进行处理,本实施例中,在获取到用户输入的初始交易需求描述信息之后,首先会将该初始交易需求描述信息转换成预设标准格式,然后,代码生成引擎获取预设标准格式的交易需求描述信息。
也就是说,本步骤中,通过代码生成引擎获取交易需求描述信息实际为:通过代码生成引擎获取预设标准格式的交易需求描述信息。
例如,业务人员提出的交易需求描述信息为:开立活期存款账户,交易自动生成账号,用户指定账号的所属客户号和利率。
该信息转换为标准格式为:
交易技术参数可以包括:通信协议、报文格式、命名规则,类型选项、技术限制、名称转换表、默认值和错误码等。
其中,报文格式包括:定长、json、xml和8583等格式。
名称转换表可以包括一种或多种,如字段名转换表、数据表名转换表、函数名转换表、条件名转换表等,名称转换表的内容可以随业务需要不断扩充丰富。在实际应用中,可以把需求的文字描述转换为程序代码的变量名、数据表名、函数名、条件表达式等,从而使需求描述可以更加人性化、直观容易理解和表述,其中,转换出的程序代码需要符合计算机编程语言的要求,符合编码规范要求。在实际实施时,可以提供下拉列表给需求编写人员挑选文字描述。
举例说明交易技术参数的表示形式,具体如下:
关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系型数据库可以包括:表名、描述、业务含义、数据类型描述、字段清单、字段类型和取值条件。
举例说明,请参见表1和表2,表1为表清单,表2为字段清单。
表1
表名 描述 业务含义
account_info 账户信息表 存放账户资料
Customer_info 客户信息表 存放客户资料
表2
表名 字段名 字段类型 字段说明 取值条件
Customer_info customerNo Char(20) 客户号 不为空
Customer_info customerName Char(50) 客户名 不为空
Account_info accountNo Char(20) 账号 不为空
Account_info customerNo Char(20) 所属客户号 不为空
Account_info interestRate Float 利率 大于0
在实际应用中,可以设计一种模板语言,来支持标签定义、替换、合成等功能,所设计的模板语言即是程序模板。本实施例中,程序模板包括:程序头部、可变占位符、替换规则、自动备注等功能。其中,替换规则包括:全部替换、单个替换、累加替换、条件替换、前增加、后增加和删除。
需要特别说明的是,程序模板分为:标准程序模板和用户自定制程序模板,标准程序模板是公共的标准化通用模板,适用于常用程序。当所需的交易程序比较特殊时,用户可以在标准程序模板的基础上依据实际需要进行修改,得到用户自定制程序模板。
为方便理解,现以标准程序模板中交易模板为例,说明标准程序模板的一种表示形式,交易模板的表示形式如下:
readjson("需求")
readjson("技术参数")
connnect("数据库")
genInterface("输入")
genInterface("输出")
genTran("输入","检查","数据读写","输出")
在上述示出的交易模板的基础上,例如,当用户需要增加替换处理的特殊代码时,那么得到用户自定制程序模板可以为:
readjson("需求")
readjson("技术参数")
connnect("数据库")
genInterface("输入")
genInterface("输出")
genTran("输入","检查","数据读写","输出")
replace("todo getSeq","getAccountNo()")
可以理解,不同类别代码有不同的处理流程和功能,因此,在实际应用中,可以根据需要定制多种类别的程序模板。
例如:查询类模板,包括:输入搜索条件、读取数据库,格式化显示等功能。
维护类模板,包括:增删改查功能。
金融交易模板,包括:账户余额更新、插入交易、会计账务处理、记录log、推送通知等功能。
步骤S102、由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
其中,标准代码可以包括:JAVA的交易层代码、接口代码、服务层代码等。
例如,标准代码可以表示成如下形式:
src\Deposit\tran1001.java交易层代码
src\Deposit\tran1001input.java输入接口代码
src\Deposit\tran1001output.java输出接口代码
src\Deposit\accountService.java服务层代码
生成的标准代码支持目录创建、文件创建、文件生成和替换、输入提示、错误处理、log记录、测试代码自动生成、文档自动生成等功能。还可以支持调用Eclipse自动生成getter/setter,tostring,equals等插件,mybatis generator等工具。并且,还可以对代码片段进行集成调用,并将这些代码整合成完整的交易程序。
本步骤中,根据交易需求描述信息可以自动生成需求文档、栏位信息说明和检查条件说明。
根据交易技术参数可以自动生成接口文档和技术参考文档。
根据关系型数据库可以自动生成SQL(Structured Query Language,结构化查询语言)代码和DDL(Data Definition Language,数据库模式定义语言)代码,数据字典文档。
根据程序模板可以自动生成代码和数据字段文档。
步骤S103、将所述标准代码作为目标代码进行输出。
基于上述论述可知,本发明公开的程序生成方法实际可以看成代码生成工具,该代码生成功能可以按照交易码、接口格式和数据表,自动生成标准的程序流程。例如,目标为参数维护交易程序,采用本发明公开的方案可以自动读取参数表的字段,生成标准增删改查代码,开发人员只需要增加各字段特殊的有效性检查条件即可。
本发明公开的程序生成方法可应用于交易程序的生成过程,交易程序可以包括:维护类交易程序、查询了交易程序、金融类交易程序和状态类交易程序,其中,状态类交易如冻结、解冻、挂失、解挂、签发、重空流转等。
综上可知,本发明公开的程序生成方法,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。
并且,采用统一的程序生成方法可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。
需要说明的是,当用户所需的程序为程序模板中没有包含的特殊内容时(例如特殊号码生成),在上述实施例步骤S102生成标准代码之后,还需要在标准代码的基础上补充一些特殊条件,从而满足特殊场景的需要。
参见图2,本发明另一实施例公开的一种程序生成方法流程图,该方法包括步骤:
步骤S201、通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
步骤S202、由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
需要特别说明的是,步骤S201和图1所示实施例中的步骤S101对应,步骤S202和图1所示实施例中的步骤S102对应,因此,步骤S201和步骤S202的具体工作原理请参见图1所示实施例,此处不再赘述。
步骤S203、获取预设补充条件;
本步骤中所述的预设补充条件为:为满足实际场景需求,需要在标准代码中增加的一些条件,比如:增加多字段关联检查,或是,客户类型为VIP客户,利率优惠10%等。
步骤S204、将所述预设补充条件添加至所述标准代码,形成目标代码;
步骤S205、输出所述目标代码。
综上可知,本发明公开的程序生成方法,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。
并且,采用统一的程序生成方法可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。
为进一步优化上述实施例,还可以包括步骤:
对目标代码的正确性进行测试,生成自动化测试代码。
为及时发现程序是否存在问题,从而确保程序的正确性,本发明在生成目标代码后,还可以在预设场景条件下,对目标代码的正确性进行测试。
测试过程可以为:
(1)准备测试数据,并将测试数据写入关系型数据库;
(2)填写输入接口;
(3)调用交易功能;
(4)检查输出接口信息的正确性,对返回信息进行比较和判断;
(5)检查关系型数据库信息的正确性,读取关系型数据库中的更新数据,检查读取的更新数据是否更新正确。
与上述方法实施例相对应,本发明还公开了一种程序生成装置。
参见图3,本发明一实施例公开的一种程序生成装置的结构示意图,该装置包括:
获取单元301,用于通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
其中,交易需求描述信息可以包括:界面字段、接口字段、取值说明、检查条件、更新数据表、字段清单、交易码、交易类型、交易名称、代码类型、输入内容、输出内容、访问表等等。
可以理解,在实际应用中,不同的业务人员输入的交易需求描述信息的格式可能会不相同,为便于代码生成引擎对获取的交易需求描述信息进行处理,本实施例中,在获取到用户输入的初始交易需求描述信息之后,首先会将该初始交易需求描述信息转换成预设标准格式,然后,代码生成引擎获取预设标准格式的交易需求描述信息。
也就是说,通过代码生成引擎获取交易需求描述信息实际为:通过代码生成引擎获取预设标准格式的交易需求描述信息。
交易技术参数可以包括:通信协议、报文格式、命名规则,类型选项、技术限制、名称转换表、默认值和错误码等。
其中,报文格式包括:定长、json、xml和8583等格式。
名称转换表可以包括一种或多种,如字段名转换表、数据表名转换表、函数名转换表、条件名转换表等,名称转换表的内容可以随业务需要不断扩充丰富。在实际应用中,可以把需求的文字描述转换为程序代码的变量名、数据表名、函数名、条件表达式等,从而使需求描述可以更加人性化、直观容易理解和表述,其中,转换出的程序代码需要符合计算机编程语言的要求,符合编码规范要求。在实际实施时,可以提供下拉列表给需求编写人员挑选文字描述。
关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
关系型数据库可以包括:表名、描述、业务含义、数据类型描述、字段清单、字段类型和取值条件。
需要说明的是,交易需求描述信息、交易技术参数、关系型数据库和程序模板的表示形式可参见方法示例对应部分,此处不再赘述。
在实际应用中,可以设计一种模板语言,来支持标签定义、替换、合成等功能,所设计的模板语言即是程序模板。本实施例中,程序模板包括:程序头部、可变占位符、替换规则、自动备注等功能。其中,替换规则包括:全部替换、单个替换、累加替换、条件替换、前增加、后增加和删除。
需要特别说明的是,程序模板分为:标准程序模板和用户自定制程序模板,标准程序模板是公共的标准化通用模板,适用于常用程序。当所需的交易程序比较特殊时,用户可以在标准程序模板的基础上依据实际需要进行修改,得到用户自定制程序模板。
可以理解,不同类别代码有不同的处理流程和功能,因此,在实际应用中,可以根据需要定制多种类别的程序模板。
例如:查询类模板,包括:输入搜索条件、读取数据库,格式化显示等功能。
维护类模板,包括:增删改查功能。
金融交易模板,包括:账户余额更新、插入交易、会计账务处理、记录log、推送通知等功能。
代码生成单元302,用于由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
其中,标准代码可以包括:JAVA的交易层代码、接口代码、服务层代码等。
生成的标准代码支持目录创建、文件创建、文件生成和替换、输入提示、错误处理、log记录、测试代码自动生成、文档自动生成等功能。还可以支持调用Eclipse自动生成getter/setter,tostring,equals等插件,mybatis generator等工具。并且,还可以对代码片段进行集成调用,并将这些代码整合成完整的交易程序。
根据交易需求描述信息可以自动生成需求文档、栏位信息说明和检查条件说明。
根据交易技术参数可以自动生成接口文档和技术参考文档。
根据关系型数据库可以自动生成SQL(Structured Query Language,结构化查询语言)代码和DDL(Data Definition Language,数据库模式定义语言)代码,数据字典文档。
根据程序模板可以自动生成代码和数据字段文档。
输出单元303,用于将所述标准代码作为目标代码进行输出。
基于上述论述可知,本发明公开的程序生成装置实际可以看成代码生成工具,该代码生成功能可以按照交易码、接口格式和数据表,自动生成标准的程序流程。例如,目标为参数维护交易程序,采用本发明公开的方案可以自动读取参数表的字段,生成标准增删改查代码,开发人员只需要增加各字段特殊的有效性检查条件即可。
本发明公开的程序生成装置可应用于交易程序的生成过程,交易程序可以包括:维护类交易程序、查询了交易程序、金融类交易程序和状态类交易程序,其中,状态类交易如冻结、解冻、挂失、解挂、签发、重空流转等。
综上可知,本发明公开的程序生成装置,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。
并且,采用统一的程序生成装置可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。
需要说明的是,当用户所需的程序为程序模板中没有包含的特殊内容时(例如特殊号码生成),在上述实施例生成标准代码之后,还需要在标准代码的基础上补充一些特殊条件,从而满足特殊场景的需要。
参见图4,本发明另一实施例公开的程序生成装置的结构示意图,该装置包括:
获取单元401,用于通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
代码生成单元402,用于由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
获取子单元403,用于获取预设补充条件;
预设补充条件为:为满足实际场景需求,需要在标准代码中增加的一些条件,比如:增加多字段关联检查,或是,客户类型为VIP客户,利率优惠10%等。
添加子单元404,用于将所述预设补充条件添加至所述标准代码,形成目标代码;
输出子单元405,用于输出所述目标代码。
综上可知,本发明公开的程序生成装置,由代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板,然后代码生成引擎基于程序生成模板,对交易需求描述信息、交易技术参数和关系型数据库进行处理,生成标准代码。本发明采用代码生成引擎、程序模板和参数化配置功能,实现了对交易需求描述信息、交易技术参数和关系型数据库的自动整合处理,从而支持代码自动生成。相对于传统方案采用人工编写代码片段而言,本发明简化了代码开发流程,提高了代码质量和可读性,减少了工作量。
并且,采用统一的程序生成方法可以提高系统升级改造的效率,增强程序的扩展性,并有效避免了编码不规范的问题。
需要说明的是,本发明还可以对目标代码的正确性进行测试。生成自动化测试代码。
为及时发现程序是否存在问题,从而确保程序的正确性,本发明在生成目标代码后,还可以在预设场景条件下,对目标代码的正确性进行测试。
测试过程可以为:
(1)准备测试数据,并将测试数据写入关系型数据库;
(2)填写输入接口;
(3)调用交易功能;
(4)检查输出接口信息的正确性,对返回信息进行比较和判断;
(5)检查关系型数据库信息的正确性,读取关系型数据库中的更新数据,检查读取的更新数据是否更新正确。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种程序生成方法,其特征在于,包括:
通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
将所述标准代码作为目标代码进行输出。
2.根据权利要求1所述的方法,其特征在于,所述程序模板分为:标准程序模板和用户自定制程序模板。
3.根据权利要求1所述的方法,其特征在于,所述交易需求描述信息为:将用户输入的初始需求描述信息转换成预设标准格式后,生成的预设标准格式的交易需求描述信息。
4.根据权利要求1所述的方法,其特征在于,所述将所述标准代码作为目标代码进行输出,具体包括:
获取预设补充条件;
将所述预设补充条件添加至所述标准代码,形成目标代码;
输出所述目标代码。
5.根据权利要求1所述的方法,其特征在于,所述交易技术参数包括:通信协议、报文格式、命名规则,类型选项、技术限制、名称转换表、默认值和错误码。
6.一种程序生成装置,其特征在于,包括:
获取单元,用于通过代码生成引擎获取交易需求描述信息、交易技术参数、关系型数据库和程序模板;
代码生成单元,用于由所述代码生成引擎基于所述程序模板,对所述交易需求描述信息、所述交易技术参数和所述关系型数据库按照代码生成流程进行处理,生成标准代码;
输出单元,用于将所述标准代码作为目标代码进行输出。
7.根据权利要求6所述的装置,其特征在于,所述程序模板分为:标准程序模板和用户自定制程序模板。
8.根据权利要求6所述的装置,其特征在于,所述交易需求描述信息为:将用户输入的初始需求描述信息转换成预设标准格式后,生成的预设标准格式的交易需求描述信息。
9.根据权利要求6所述的装置,其特征在于,所述输出单元具体包括:
获取子单元,用于获取预设补充条件;
添加子单元,用于将所述预设补充条件添加至所述标准代码,形成目标代码;
输出子单元,用于输出所述目标代码。
10.根据权利要求6所述的装置,其特征在于,所述交易技术参数包括:通信协议、报文格式、命名规则,类型选项、技术限制、名称转换表、默认值和错误码。
CN201811222020.8A 2018-10-19 2018-10-19 一种程序生成方法及装置 Active CN109408043B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811222020.8A CN109408043B (zh) 2018-10-19 2018-10-19 一种程序生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811222020.8A CN109408043B (zh) 2018-10-19 2018-10-19 一种程序生成方法及装置

Publications (2)

Publication Number Publication Date
CN109408043A true CN109408043A (zh) 2019-03-01
CN109408043B CN109408043B (zh) 2021-10-22

Family

ID=65467836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811222020.8A Active CN109408043B (zh) 2018-10-19 2018-10-19 一种程序生成方法及装置

Country Status (1)

Country Link
CN (1) CN109408043B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078205A (zh) * 2019-11-22 2020-04-28 北京锐安科技有限公司 一种模块化编程方法、装置、存储介质及电子设备
CN111208995A (zh) * 2019-12-20 2020-05-29 中国建设银行股份有限公司 Ibm主机作业的自动生成方法、系统、装置及存储介质
CN111339743A (zh) * 2020-02-19 2020-06-26 中国建设银行股份有限公司 一种账号生成的方法和装置
CN111367932A (zh) * 2020-03-06 2020-07-03 深圳市今天国际物流技术股份有限公司 数据库表单变更通知方法、装置、计算机设备及存储介质
CN111638875A (zh) * 2020-06-05 2020-09-08 中国银行股份有限公司 一种对端生成方法及系统
CN111639120A (zh) * 2020-06-05 2020-09-08 中国建设银行股份有限公司 一种架构视图的成图方法、装置、设备及可读存储介质
CN111857684A (zh) * 2020-07-07 2020-10-30 北京机电工程总体设计部 一种基于模板的厚德平台组件代码生成方法
CN112346726A (zh) * 2020-03-16 2021-02-09 成都华微电子科技有限公司 一种基于表单信息自动化生成设计代码的方法
CN113282286A (zh) * 2021-05-31 2021-08-20 北京经纬恒润科技股份有限公司 一种算法开发方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
CN105242914A (zh) * 2015-09-06 2016-01-13 江苏马上游科技股份有限公司 一种基于模型驱动生成代码的方法及系统
CN106293664A (zh) * 2015-05-27 2017-01-04 交通银行股份有限公司 代码生成方法及装置
CN106354492A (zh) * 2016-08-23 2017-01-25 深圳Tcl智能家庭科技有限公司 一种快速调整交易流程对接的自动化代码生成方法及系统
CN106445556A (zh) * 2016-10-18 2017-02-22 中国银行股份有限公司 一种可视化代码生成方法及系统
US20170300305A1 (en) * 2013-03-13 2017-10-19 Microsoft Technology Licensing, Llc Executable guidance experiences based on implicitly generated guidance models
CN107273117A (zh) * 2017-05-25 2017-10-20 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成系统
CN107729003A (zh) * 2017-11-20 2018-02-23 江苏神州信源系统工程有限公司 代码的自动生成方法、装置及电子设备
CN108153897A (zh) * 2018-01-10 2018-06-12 中国银行股份有限公司 一种plsql程序代码生成方法及系统
US20180181376A1 (en) * 2015-11-09 2018-06-28 Microsoft Technology Licensing, Llc Generation of an application from template

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103135976A (zh) * 2011-11-30 2013-06-05 阿里巴巴集团控股有限公司 代码自动生成方法及装置
US20170300305A1 (en) * 2013-03-13 2017-10-19 Microsoft Technology Licensing, Llc Executable guidance experiences based on implicitly generated guidance models
CN106293664A (zh) * 2015-05-27 2017-01-04 交通银行股份有限公司 代码生成方法及装置
CN105242914A (zh) * 2015-09-06 2016-01-13 江苏马上游科技股份有限公司 一种基于模型驱动生成代码的方法及系统
US20180181376A1 (en) * 2015-11-09 2018-06-28 Microsoft Technology Licensing, Llc Generation of an application from template
CN106354492A (zh) * 2016-08-23 2017-01-25 深圳Tcl智能家庭科技有限公司 一种快速调整交易流程对接的自动化代码生成方法及系统
CN106445556A (zh) * 2016-10-18 2017-02-22 中国银行股份有限公司 一种可视化代码生成方法及系统
CN107273117A (zh) * 2017-05-25 2017-10-20 深圳市彬讯科技有限公司 一种编程友好型的敏捷代码自动生成系统
CN107729003A (zh) * 2017-11-20 2018-02-23 江苏神州信源系统工程有限公司 代码的自动生成方法、装置及电子设备
CN108153897A (zh) * 2018-01-10 2018-06-12 中国银行股份有限公司 一种plsql程序代码生成方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
文彬0L0: "模板引擎使用-自动生成代码", 《HTTPS://WWW.JIANSHU.COM/P/45997D974960》 *
王黎明: "控制系统基于模型的系统工程开发方法研究", 《中国博士学位论文全文数据库 (工程科技Ⅱ辑)》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078205A (zh) * 2019-11-22 2020-04-28 北京锐安科技有限公司 一种模块化编程方法、装置、存储介质及电子设备
CN111078205B (zh) * 2019-11-22 2024-01-26 北京锐安科技有限公司 一种模块化编程方法、装置、存储介质及电子设备
CN111208995A (zh) * 2019-12-20 2020-05-29 中国建设银行股份有限公司 Ibm主机作业的自动生成方法、系统、装置及存储介质
CN111339743B (zh) * 2020-02-19 2023-07-18 中国建设银行股份有限公司 一种账号生成的方法和装置
CN111339743A (zh) * 2020-02-19 2020-06-26 中国建设银行股份有限公司 一种账号生成的方法和装置
CN111367932A (zh) * 2020-03-06 2020-07-03 深圳市今天国际物流技术股份有限公司 数据库表单变更通知方法、装置、计算机设备及存储介质
CN112346726A (zh) * 2020-03-16 2021-02-09 成都华微电子科技有限公司 一种基于表单信息自动化生成设计代码的方法
CN112346726B (zh) * 2020-03-16 2023-12-12 成都华微电子科技股份有限公司 一种基于表单信息自动化生成设计代码的方法
CN111639120A (zh) * 2020-06-05 2020-09-08 中国建设银行股份有限公司 一种架构视图的成图方法、装置、设备及可读存储介质
CN111639120B (zh) * 2020-06-05 2023-08-18 中国建设银行股份有限公司 一种架构视图的成图方法、装置、设备及可读存储介质
CN111638875B (zh) * 2020-06-05 2023-09-22 中国银行股份有限公司 一种对端生成方法及系统
CN111638875A (zh) * 2020-06-05 2020-09-08 中国银行股份有限公司 一种对端生成方法及系统
CN111857684A (zh) * 2020-07-07 2020-10-30 北京机电工程总体设计部 一种基于模板的厚德平台组件代码生成方法
CN113282286A (zh) * 2021-05-31 2021-08-20 北京经纬恒润科技股份有限公司 一种算法开发方法及装置
CN113282286B (zh) * 2021-05-31 2024-01-30 北京经纬恒润科技股份有限公司 一种算法开发方法及装置

Also Published As

Publication number Publication date
CN109408043B (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
CN109408043A (zh) 一种程序生成方法及装置
US11714792B2 (en) Creating data in a data store using a dynamic ontology
US7792793B2 (en) Data export/import from multiple data source to a destination data repository using corresponding data exporters and an importer
CN101308490B (zh) 一种动态报表生成方法及平台
US6684222B1 (en) Method and system for translating data associated with a relational database
US20050183002A1 (en) Data and metadata linking form mechanism and method
CN102117202B (zh) 基于j2ee架构的代码生成装置
CN101751382B (zh) 一种基于标签的数据采集方法与系统
US20070078877A1 (en) XBRL data conversion
US8615526B2 (en) Markup language based query and file generation
CN101452503A (zh) 一种异构临床医疗信息共享系统和方法
CN104881275A (zh) 一种电子报表生成方法及装置
CN102214243A (zh) Xbrl分类标准版本管理系统
CN109299200A (zh) 将数据模型转换为数据库的方法、装置及设备
CN114338855B (zh) 一种实现hl7、fhir标准、自定义xml消息的解析生成方法
CN109766085A (zh) 一种处理枚举类型代码的方法及装置
CN104991785A (zh) 一种标准化临床数据业务支撑系统及方法
CN109298954A (zh) 一种智能调用Dubbo远程服务的方法及装置
US10402380B1 (en) Interactive user interface for schema transformation
CN110378778A (zh) 多数据源对账方法、系统、电子设备及存储介质
US20190347341A1 (en) Method and system for schema transformation
CN103020318A (zh) 一种对数据库中数据库表维护的方法
CN112464279A (zh) 基于业务驱动的表单设计实现方法和系统
CN108090205A (zh) 一种基于j2ee的部队后勤数据统一管理系统
CN110909520A (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
GR01 Patent grant
GR01 Patent grant