CN102279750A - 一种基于领域知识共享的迭代式代码生成方法 - Google Patents
一种基于领域知识共享的迭代式代码生成方法 Download PDFInfo
- Publication number
- CN102279750A CN102279750A CN2011102520897A CN201110252089A CN102279750A CN 102279750 A CN102279750 A CN 102279750A CN 2011102520897 A CN2011102520897 A CN 2011102520897A CN 201110252089 A CN201110252089 A CN 201110252089A CN 102279750 A CN102279750 A CN 102279750A
- Authority
- CN
- China
- Prior art keywords
- data
- interface
- code
- code generation
- domain
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于领域知识共享的迭代式代码生成方法,包括如下步骤:1)基于动态语言开发核心代码生成***;2)利用所述核心代码生成***生成常规行业应用***;3)提取所述常规行业应用***中的共性领域相关知识代码;4)在所述共性领域相关知识代码基础上再次开发生成特定领域应用***;所述核心代码生成***包括使用接口、开发接口、依赖说明文件、自动化测试和部署套件;通过对所述特定领域应用***再次提取共性领域相关知识代码可以实现迭代,具有产生的迭代式代码生成***可扩展性强,支持领域支持的积累与细化,提高细分行业领域的开发效率,可测试性好,有利于提高项目质量,减少项目开发过程中返工的次数。
Description
技术领域
本发明涉及计算机***应用技术领域。具体来讲涉及一种用于面向行业应用领域实现快速开发的迭代式代码生成***。
背景技术
代码生成***具有多年的发展历史,从早期的语法分析器自动生成***到后来的各种MDA自动生成工具。随着企业/政府信息化技术的发展,针对不同行业的行业应用开发需求越来越强烈。于是涌现了大量针对行业应用的代码生成***和快速开发平台。现有的针对行业应用的代码生成***往往基于静态面向对象语言(如Java/C#/Delphi)和组件技术,提供给行业应用开发者各种GUI拖拉式控件,能够实现对表单数据自动生成增删改查代码并保存到支持的后端关系型数据库。
现有的针对行业应用的代码生成***在实际应用过程中所存在的不足有:
1、代码生成***功能单一。企业/政府信息化在初期主要是各种表格信息的电子化和网络化,实现这些表格信息的单机/联网录入和查询。现有的代码生成***满足了这方面的需求。但是随着行业信息化的进一步发展,软件必须能够处理更复杂的行业业务***,必须拥有领域相关知识。现有的代码生成***不提供领域相关的代码生成功能。所以针对行业用户深层次的需求,代码生成***往往力不从心。此外,也有开发商提供针对特定行业领域的代码生成***,但是这些代码生成***不能应用于其它行业领域,应用范围太窄。
2、代码生成***扩展困难。
a) 现有的代码生成***往往不提供代码生成***自身的扩展开发接口,当代码生成***不能满足开发需求时难以简单扩展。比如众多面向企业应用领域的代码生成***,其实核心的功能都是针对数据自动生成增删改查的代码。当要对应用进行深度开发时,代码生成***往往无法满足要求。而由于没有开放代码生成***自身的扩展接口,导致难以在代码生成***生成的代码基础上进行深度扩展开发。
b) 代码生成***没有考虑自动生成的代码本身的可维护性。针对同样的逻辑,代码生成***生成同样的重复的代码,没有利用MVC模式分离关注面,没有用继承等特性减少重复代码。同时代码生成***往往要求用户不能修改自动生成的代码。这样导致应用开发者要更改某项功能时,必须繁琐的一编一遍点鼠标进行更改。比如某个***有100个表单全部要更改layout属性,就要针对这100个表单点击右键更改layout属性,大概要点击500次以上的鼠标。其实如果设计合理,开发者只需要在代码中改一个地方。这样的代码生成***不仅没有减少开发者的工作量,反而增加了工作量。
3、不支持自动化测试。传统的代码生成***提供给开发者的是一个GUI界面的集成开发环境,没有提供易于测试的CLI与API接口,所以难以实现自动化测试与及时测试。这会导致代码质量低下,甚至大量返工。
4、不支持迭代式的代码生成***。这些已有的代码生成***是一次性的。由代码生成***开发商开发出来,交给应用开发商使用。代码生成***拥有的领域知识是由代码生成***开发商内置的。比如语法分析器自动生成***的领域知识是语法分析,针对企业应用的表单自动生成***的领域知识是数据库sql相关知识。但是不同行业应用的软件开发需要不同行业的领域知识,且当行业划分越来越细时,需要的领域知识也越来越复杂。针对固化的内置特定领域的代码生成***将不能应对现在的软件发展的趋势。软件***本身必须能随着领域的扩展和深入而扩展,因而要求支持多层的迭代式开发的代码生成***。实用的迭代式代码生成***应该支持下面的场景:拥有数据库相关知识的开发商提供数据库持久化支持的代码生成***;然后电子政务***开发商开发通用政务自动代码生成***,该电子政务***的数据应该能利用下层的代码生成***自动保存到数据库;在更细分的电子警务领域,熟悉该领域的开发商可以利用电子政务代码生成***开发出电子警务代码生成***。
发明内容
本发明针对上述技术的缺陷,提出一种基于领域知识共享的迭代式代码生成方法。
为了解决上述技术问题,本发明的技术方案如下:
一种基于领域知识共享的迭代式代码生成方法,包括如下步骤:
1)基于动态语言开发核心代码生成***;
2)利用所述核心代码生成***生成常规行业应用***;
3)提取所述常规行业应用***中的共性领域相关知识代码;
4)在所述共性领域相关知识代码基础上再次开发生成特定领域应用***;
所述核心代码生成***包括使用接口、开发接口、依赖说明文件、自动化测试和部署套件;通过对所述特定领域应用***再次提取共性领域相关知识代码可以实现迭代。
作为可选方案,所述开发核心代码生成***包括如下步骤:
21)开发支持数据增删改查的数据持久化***和消息处理引擎,所述消息处理引擎用于调用和实现所述数据持久化***;
22)开发规则引擎、流程引擎和表单模板***,所述规则引擎和流程引擎用于对业务规则和业务流程的建模,所述表单模板***用于提供相关数据/规则与流程表单的输入输出界面;
23)生成使用接口和开发接口,所述使用接口和开发接口包括API、CLI、GUI接口;
24)生成依赖说明文件、自动化测试和部署套件;
所述API接口用于继承父对象的属性,所述CLI接口用于命令行调用方式,所述GUI接口用于提供对象属性的输入控件;所述依赖说明文件用于说明各个模块的依赖关系,所述自动化测试套件用于测试所述核心代码生成***,所述部署套件用于部署***运行环境。
作为可选方案,所述利用所述核心代码生成***生成常规行业应用***包括如下步骤:
31)选择数据库,并定义领域对象和对象属性;
32) 定义规则数据和流程数据;
33)调用所述核心代码生成***生成输入输出界面与控制代码;
34)按特定需要修改自动生成的代码。
作为可选方案,所述数据持久化***通过OR-mapping库辅助实现,所述OR-mapping库至少提供save,update,find,delete方法,保存新增加的对象时,调用所述save方法;更新对象时,调用所述update方法;查询对象时,调用所述find方法;删除对象时,调用所述delete方法,所述OR-mapping库获取所述数据持久化的属性,并构造***数据库的SQL语句,所述SQL语句的格式为“insert into 表名(字段1,, 字段2,…,字段n) values (值1,值2,…,值n)”,所述表名对应于对象类名,所述字段名对应于对象属性名,所述值对应于对象属性值。
作为可选方案, 所述规则引擎基于开源的drools实现,所述流程引擎包括业务流程建模定义工具模块、过程定义模块、工作流执行环境引擎模块、任务管理模块,所述流程引擎基于开源的osworkflow或jbpm实现。
作为可选方案,所述表单模板***生产的输出界面是基于HTML+JS+Css的标准web界面;所述表单模板***包括表单定义器、表单数据绑定模块、表单管理模块;所述表单模板***基于quaderno或JTang Form辅助实现。
作为可选方案,所述核心代码生成***嵌入全文搜索功能、数据挖掘功能和知识发现功能的一种或几种。
作为可选方案,所述依赖说明文件的格式为“模块A : 模块B[,模块C]”,所述模块可以指代码、领域知识数据包、第三方组件、操作***版本;所述自动化测试套件至少提供根据配置文件模拟待测试环境、查找所有需要运行的测试用例、运行所有的测试用例、报告测试结果功能;所述部署套件至少提供定义待部署目标环境、检查目标环境并自动安装缺少的应用和升级过期的组件、准备需要部署的代码包和数据包和安装代码包和数据包功能。
本发明的有益效果在于:
1.本发明产生的迭代式代码生成***可扩展性强,相比于传统的一次性代码生成***,可以适应不同的应用领域。由于底层采用动态语言开发,迭代开发时不存在编译过程,不存在强类型***的限制,故而可以灵活适配不同的应用领域。此外,采用消息引擎作为不同模块之间的调用接口,在耦合度上小于基于组件的代码生成技术,更适合构建大型和分布式***。
2.支持领域支持的积累与细化,提高细分行业领域的开发效率。代码生成***最主要的目的是提高开发者的开发效率,通过迭代式的知识积累,面向特定领域时就能更生成更符合该领域的代码,减少开发者后期修改生成后代码的工作量。
3.可测试性好,有利于提高项目质量,减少项目开发过程中返工的次数。传统的MDA方法不提供测试接口,因而代码生成的质量无法保证,本发明通过分层架构与MVC模式减少重复代码,提供可测试的编程接口,使得可测试性大幅度提高,完全支持自动化测试。
4.海量数据支持。传统的Sql数据库在处理互联网的海量数据时往往力不从心,Nosql数据库通过schema-less方案来减少DML操作导致的锁表,避免复杂结构与多表连接查询,从而提高了数据层的可扩展性,本发明方法的数据层即支持Sql数据库,也支持No-sql数据库,只需要提供据的CURD接口即可,从而可以应用于互联网类的涉及海量数据处理领域。
5.方便的部署***。首先通过动态语言免除了烦琐的编译过程,此外通过统一的依赖管理与测试接口,方便了***的自动化部署。
附图说明
图1为代码生成***的总体架构;
图2 迭代式开发与部署过程。
具体实施方式
下面将结合附图和具体实施例对本发明做进一步的说明。
1、首先实现一个核心的代码生成***
代码生成***采用JVM作为目标机器平台,从而屏蔽了具体硬件的差异。采用基于JVM的动态语言作为开发语言。典型的JVM动态语言包括Jruby、Jpython、Scala、Groovy、Clojuer等。这些语言都可以用来开发代码生成***,且不同语言直接可以互相调用。动态语言代码在运行时被动态翻译为JVM上的字节码,然后JVM虚拟机解释执行这些字节码。
a) 先开发一个支持数据增删改查的数据持久化***。该数据持久化***可以基于第三方OR-mapping库辅助实现,比如ActiveRecord或者Hibernate。 对给定对象,OR-mapping库应该提供save,update,find,delete方法。当要保存新增加的对象时,调用save方法;当要更新对象时,调用update方法;当要查询对象时,调用find方法;当要删除对象时,调用delete方法。
以save方法为例,当要保存某对象时,数据持久化***将save请求转发到OR-mapping库。OR-mapping库动态通过反射技术获得对象所有需要持久化的属性,然后构造一个插于数据库的sql语句(对于能够用标准sql实现的语句,不使用特定厂商数据库特有sql语法)。该sql语句的格式为“insert into 表名(字段1,, 字段2,…,字段n) values (值1,值2,…,值n)”。其中表名对应于对象类名,字段名对应于对象属性名,值对应于对象属性值。比如对象为Student, Student的属性有两个name和xuehao,当要保存学生“张三,20111023”到数据库时,自动生成如下的sql语句“insert into Student(name,xuehao) values (‘张三’,’ 20111023’)”。这样只要底层的数据库支持sql标准,不管是sql server还是oracle,我们都能将数据保存成功。对于没有标准sql可以实现的功能,比如查询分页功能,则可以为所支持的数据库构造单独的sql输出模板,当部署时选择不同的数据库时,根据选定的数据库选择sql输出模板。
对于Nosql数据库,可以采用类似于Sql数据库的OR-Mapping库实现数据持久化,比如通过ruby-mogodb-driver可以实现用Jruby语言保存数据到Nosql数据库MogoDB。
b) 然后实现一个消息处理引擎,相关消息数据可以通过数据持久化***保存到数据库层;消息处理引擎实现数据持久化的调用方和数据持久化的实现方的解耦。这样可以实现中间件应用服务器和数据库服务器独立部署,独立升级。此外,应用服务器的各部件之间也通过消息引擎互通,比如流程引擎、规则引擎、表单引擎之间也通过消息引擎协作,使得整个***模块性更强,功能升级更方便。消息引擎要支持点对点模型和发布订阅模式两种消息传递机制,可以基于开源消息中间件如activeMQ或者openjms辅助实现。消息引擎的消息格式默认采用Json格式,同时也支持XML格式和ProtoBuf等二进制格式。以上面提到的保存一条学生数据的消息为例,应用模块通过消息引擎发送给数据持久化模块的消息为:
{
"action" : "save",
"object" : {
"name" : "张三",
"xuehao" : "20111023"
}
}
消息的编码统一采用UTF-8编码。
c) 接着实现规则引擎和流程引擎,以提供对业务规则和业务流程的建模。规则和流程的变更通过消息处理引擎触发。规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎可以基于开源的drools实现。流程引擎由如下几个模块组成:业务流程建模定义工具、过程定义、工作流执行环境(引擎)、任务管理模块等。流程引擎可以基于开源的osworkflow或jbpm等辅助实现。
d) 进而实现一个表单模板***,提供相关数据/规则与流程表单的输入输出界面;表单模板***生产的输入界面是基于HTML+Js+Css的标准web界面。web界面中的输入框对应于应用层需要保持和运算的对象属性。表单模板***至少包括表单定义器、表单数据绑定模块、表单管理模块等。表单模板***可以基于quaderno或JTang Form辅助实现。还是以保存学生信息为例,表单模板***至少生成如下的Web界面代码:
<input type="text" name="name" value="张三">
<input type="text" name="xuehao" value="20111023">
<input type="submit" value="提交">
e) 其它计算机相关领域功能的实现,包括全文搜索/数据挖掘/知识发现等。这些功能是可选的,不一定要由核心代码生成***提供,可以由上层应用实现。
上述核心的代码生成***可使用动态语言开发,方便后期应用到各种未知的领域而无需事先设计对象继承体系,更改代码无需重新编译一方便了后期的部署。
2、然后提供该核心代码生成***的使用接口和二次开发接口,相关接口包括三种:API/CLI/GUI接口。以保持对象为例:API接口规定所有需要持久化的对象必须继承自PersistentObject对象,然后通过继承获得save,update,find,delete方法。这样保持对象时调用save方法即可实现;CLI接口规定了命令行调用方式,如“save 对象名(属性1:值1[,属性2,值2])”,其中方括号内是可选参数。GUI接口则提供对象属性的输入控件,并提供保存按钮。当按下保持按钮后,所有输入的对象属性保持到数据库。
3、提供该基本的代码生成***的依赖说明文件,提供一个自动化测试和部署的套件。
a) 依赖说明文件的基本格式为“模块A : 模块B[, 模块C]”,表明模块A依赖于模块B和模块C。模块可以指代码、领域知识数据包、第三方组件、操作***版本等。
b) 自动化测试套件至少提供四个功能:1根据配置文件模拟待测试环境,2查找所有需要运行的测试用例,3运行所有的测试用例,4报告测试结果。
c) 部署套件至少提供四个功能:1、定义待部署目标环境,2、检查目标环境并自动安装缺少的应用和升级过期的组件。3、准备需要部署的代码包和数据包。4、安装代码包和数据包。
4、行业应用开发商利用该代码生成***既可以快速开发常规的行业应用***。步骤如下:
a) 选择数据库,并定义领域对象模型和对象属性。这里以一个大学学生信息管理***为例。选择数据库为Oracle 10g。然后建立一个Student对象,该对象有两个属性name和学号。根据该Student对象信息自动建立数据库表到oracle数据库中。
b) 输入规则数据与流程定义数据。规则数据如:学号第一位代表本科、硕士还是博士,学号中间两位代表入学年份,学号后5位为顺序号。流程定义数据如:学生信息变更时要先输入人员录入变更请求->班主任审核->系领导批准->流程结束。
c) 调用代码生成接口自动生成输入输出界面与控制代码。根据以上信息自动生成基于Web的输入接口,自动生成流程控制代码、自动处理规则约束、自动生成数据库持久化代码。
d) 修改自动生成的代码以适应特定应用需求。
e) 打包分发
5、行业应用开发商可以成为代码生成***提供商。方法是将共性领域相关知识及领域数据提取出来,实现针对该领域的快速开发功能,然后打包领域知识数据库和功能代码,提供开发接口说明、依赖说明文件。比如可以将大学学生信息管理***的对象模型数据、规则数据、流程定义数据、自动生成的输入输出界面与控制代码全部打包,然后提供给细分领域的开发商使用。
6、细分领域的行业应用开发商则可以直接在领域代码生成***上进行开发,并可以根据该特定领域要求开发应用***,方法同步骤4。应用领域越具体,领域知识越丰富和明确,开发效率就会更高。从步骤6可以跳转到步骤5,从而成为一个迭代式的代码生成***。比如学生寝室管理***开发商可以和学生信息管理***开发商合作,在基础的学生信息管理***基础之上开发。学生寝室管理***开发商需要扩展学生对象模型,增加寝室相关信息。增加寝室分配的规则和审批流程,生成输入输出接口和控制代码等。
7、细分领域的行业应用开发商的***依赖于该领域代码生成***和核心代码生成***,而领域代码生成***依赖于核心代码生成***。它们构成树形依赖。依赖通过依赖说明文件管理。当被依赖的***更新时,上层应用***可以直接受益于这些更新。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
Claims (8)
1.一种基于领域知识共享的迭代式代码生成方法,其特征在于,包括如下步骤:
1)基于动态语言开发核心代码生成***;
2)利用所述核心代码生成***生成常规行业应用***;
3)提取所述常规行业应用***中的共性领域相关知识代码及领域数据;
4)在所述共性领域相关知识代码和领域数据的基础上再次开发生成特定领域应用***;
所述核心代码生成***包括使用接口、开发接口、依赖说明文件、自动化测试和部署套件;通过对所述特定领域应用***再次提取共性领域相关知识代码及领域数据可以实现迭代。
2.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述开发核心代码生成***包括如下步骤:
21)开发支持数据增删改查的数据持久化***和消息处理引擎,所述消息处理引擎用于调用和实现所述数据持久化***;
22)开发规则引擎、流程引擎和表单模板***,所述规则引擎和流程引擎用于对业务规则和业务流程的建模,所述表单模板***用于提供相关数据/规则与流程表单的输入输出界面;
23)生成使用接口和开发接口,所述使用接口和开发接口包括API、CLI、GUI接口;
24)生成依赖说明文件、自动化测试和部署套件;
所述API接口用于继承父对象的属性,所述CLI接口用于命令行调用方式,所述GUI接口用于提供对象属性的输入控件;所述依赖说明文件用于说明各个模块的依赖关系,所述自动化测试套件用于测试所述核心代码生成***,所述部署套件用于部署***运行环境。
3.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述利用所述核心代码生成***生成常规行业应用***包括如下步骤:
31)选择数据库,并定义领域对象和对象属性;
32) 定义规则数据和流程数据;
33)调用所述核心代码生成***生成输入输出界面与控制代码;
34)按特定需要修改自动生成的代码。
4.根据权利要求2所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于, 所述数据持久化***通过OR-mapping库辅助实现,所述OR-mapping库至少提供save,update,find,delete方法,保存新增加的对象时,调用所述save方法;更新对象时,调用所述update方法;查询对象时,调用所述find方法;删除对象时,调用所述delete方法,所述OR-mapping库获取所述数据持久化的属性,并构造***数据库的SQL语句,所述SQL语句的格式为“insert into 表名(字段1,, 字段2,…,字段n) values (值1,值2,…,值n)”,所述表名对应于对象类名,所述字段名对应于对象属性名,所述值对应于对象属性值。
5.根据权利要求2所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述规则引擎基于开源的drools实现,所述流程引擎包括业务流程建模定义工具模块、过程定义模块、工作流执行环境引擎模块、任务管理模块,所述流程引擎基于开源的osworkflow或jbpm实现。
6.根据权利要求2所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述表单模板***生产的输出界面是基于HTML+JS+Css的标准web界面;所述表单模板***包括表单定义器、表单数据绑定模块、表单管理模块;所述表单模板***基于quaderno或JTang Form辅助实现。
7.根据权利要求2所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述核心代码生成***嵌入全文搜索功能、数据挖掘功能和知识发现功能的一种或几种。
8.根据权利要求2所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述依赖说明文件的格式为“模块A : 模块B[,模块C]”,所述模块可以指代码、领域知识数据包、第三方组件、操作***版本;所述自动化测试套件至少提供根据配置文件模拟待测试环境、查找所有需要运行的测试用例、运行所有的测试用例、报告测试结果功能;所述部署套件至少提供定义待部署目标环境、检查目标环境并自动安装缺少的应用和升级过期的组件、准备需要部署的代码包和数据包和安装代码包和数据包功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110252089 CN102279750B (zh) | 2011-08-30 | 2011-08-30 | 一种基于领域知识共享的迭代式代码生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110252089 CN102279750B (zh) | 2011-08-30 | 2011-08-30 | 一种基于领域知识共享的迭代式代码生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102279750A true CN102279750A (zh) | 2011-12-14 |
CN102279750B CN102279750B (zh) | 2013-07-31 |
Family
ID=45105218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110252089 Active CN102279750B (zh) | 2011-08-30 | 2011-08-30 | 一种基于领域知识共享的迭代式代码生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102279750B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681852A (zh) * | 2012-05-16 | 2012-09-19 | 河南辉煌科技股份有限公司 | 基于JavaEE的敏捷开发方法 |
CN103064909A (zh) * | 2012-12-19 | 2013-04-24 | 武汉虹翼信息有限公司 | 一种基于Drools规则引擎的基站数据库核查方法 |
CN103209214A (zh) * | 2013-04-03 | 2013-07-17 | 蓝盾信息安全技术股份有限公司 | 一种基于NoSQL的消息中间件的实现方法 |
CN104391845A (zh) * | 2014-04-02 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 一种生成数据库脚本的方法及装置 |
CN104917663A (zh) * | 2014-03-12 | 2015-09-16 | 深圳市赛格导航科技股份有限公司 | 一种基于ActiveMQ服务器的定位信息分发***及方法 |
CN105488147A (zh) * | 2015-11-26 | 2016-04-13 | 南京莱斯信息技术股份有限公司 | 一种基于sql模板的持久化方法 |
CN105512314A (zh) * | 2015-12-15 | 2016-04-20 | 宋连兴 | 一种在应用程序内实现可分离的数据处理方法 |
CN105787056A (zh) * | 2016-02-29 | 2016-07-20 | 浪潮通用软件有限公司 | 一种基于自定义计算模型的计算方法 |
CN106776824A (zh) * | 2016-11-21 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | Android数据库的级方法及*** |
CN108027819A (zh) * | 2015-09-28 | 2018-05-11 | 华为技术有限公司 | 数据处理设备和操作数据处理设备的方法 |
CN109358844A (zh) * | 2018-09-30 | 2019-02-19 | 仝瑞麟 | 程序执行方法及装置 |
CN110413530A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 一种行为执行方法及装置 |
CN111142861A (zh) * | 2019-12-17 | 2020-05-12 | 西安电子科技大学 | 结构化综控***集成方法及装置 |
CN116755683A (zh) * | 2023-08-14 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114226A (zh) * | 2007-08-28 | 2008-01-30 | 北京中企开源信息技术有限公司 | 一种基于模型组件的代码自动生成装置、***及方法 |
CN101488086A (zh) * | 2008-12-23 | 2009-07-22 | 北京中企开源信息技术有限公司 | 一种基于领域模型的软件生成方法及装置 |
US20090288068A1 (en) * | 2008-05-13 | 2009-11-19 | Facton Gmbh | Domain model concept for developing computer applications |
CN101794226A (zh) * | 2010-03-08 | 2010-08-04 | 山东大学 | 一种适应多业务抽象层次的服务化软件构造方法和*** |
-
2011
- 2011-08-30 CN CN 201110252089 patent/CN102279750B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114226A (zh) * | 2007-08-28 | 2008-01-30 | 北京中企开源信息技术有限公司 | 一种基于模型组件的代码自动生成装置、***及方法 |
US20090288068A1 (en) * | 2008-05-13 | 2009-11-19 | Facton Gmbh | Domain model concept for developing computer applications |
CN101488086A (zh) * | 2008-12-23 | 2009-07-22 | 北京中企开源信息技术有限公司 | 一种基于领域模型的软件生成方法及装置 |
CN101794226A (zh) * | 2010-03-08 | 2010-08-04 | 山东大学 | 一种适应多业务抽象层次的服务化软件构造方法和*** |
Non-Patent Citations (1)
Title |
---|
吴家菊 等: "基于RUP的迭代式软件开发研究及应用", 《现代电子技术》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681852A (zh) * | 2012-05-16 | 2012-09-19 | 河南辉煌科技股份有限公司 | 基于JavaEE的敏捷开发方法 |
CN102681852B (zh) * | 2012-05-16 | 2015-05-13 | 河南辉煌科技股份有限公司 | 基于JavaEE的敏捷开发方法 |
CN103064909B (zh) * | 2012-12-19 | 2016-08-17 | 武汉虹翼信息有限公司 | 一种基于Drools规则引擎的基站数据库核查方法 |
CN103064909A (zh) * | 2012-12-19 | 2013-04-24 | 武汉虹翼信息有限公司 | 一种基于Drools规则引擎的基站数据库核查方法 |
CN103209214A (zh) * | 2013-04-03 | 2013-07-17 | 蓝盾信息安全技术股份有限公司 | 一种基于NoSQL的消息中间件的实现方法 |
CN104917663A (zh) * | 2014-03-12 | 2015-09-16 | 深圳市赛格导航科技股份有限公司 | 一种基于ActiveMQ服务器的定位信息分发***及方法 |
CN104391845A (zh) * | 2014-04-02 | 2015-03-04 | 贵阳朗玛信息技术股份有限公司 | 一种生成数据库脚本的方法及装置 |
CN104391845B (zh) * | 2014-04-02 | 2018-10-12 | 贵阳朗玛信息技术股份有限公司 | 一种生成数据库脚本的方法及装置 |
CN108027819B (zh) * | 2015-09-28 | 2020-10-23 | 华为技术有限公司 | 数据处理设备和操作数据处理设备的方法 |
CN108027819A (zh) * | 2015-09-28 | 2018-05-11 | 华为技术有限公司 | 数据处理设备和操作数据处理设备的方法 |
CN105488147A (zh) * | 2015-11-26 | 2016-04-13 | 南京莱斯信息技术股份有限公司 | 一种基于sql模板的持久化方法 |
CN105512314A (zh) * | 2015-12-15 | 2016-04-20 | 宋连兴 | 一种在应用程序内实现可分离的数据处理方法 |
CN105787056A (zh) * | 2016-02-29 | 2016-07-20 | 浪潮通用软件有限公司 | 一种基于自定义计算模型的计算方法 |
CN106776824A (zh) * | 2016-11-21 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | Android数据库的级方法及*** |
CN106776824B (zh) * | 2016-11-21 | 2020-10-16 | 武汉斗鱼网络科技有限公司 | Android数据库的升级方法及*** |
CN109358844A (zh) * | 2018-09-30 | 2019-02-19 | 仝瑞麟 | 程序执行方法及装置 |
CN110413530A (zh) * | 2019-08-02 | 2019-11-05 | 中国工商银行股份有限公司 | 一种行为执行方法及装置 |
CN110413530B (zh) * | 2019-08-02 | 2024-01-05 | 中国工商银行股份有限公司 | 一种行为执行方法及装置 |
CN111142861A (zh) * | 2019-12-17 | 2020-05-12 | 西安电子科技大学 | 结构化综控***集成方法及装置 |
CN111142861B (zh) * | 2019-12-17 | 2022-05-03 | 西安电子科技大学 | 结构化综控***集成方法及装置 |
CN116755683A (zh) * | 2023-08-14 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
CN116755683B (zh) * | 2023-08-14 | 2023-11-14 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102279750B (zh) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279750B (zh) | 一种基于领域知识共享的迭代式代码生成方法 | |
US11789715B2 (en) | Systems and methods for transformation of reporting schema | |
US11620117B2 (en) | Systems and methods for code clustering analysis and transformation | |
US11188319B2 (en) | Systems and methods for entry point-based code analysis and transformation | |
US11436006B2 (en) | Systems and methods for code analysis heat map interfaces | |
US9465590B2 (en) | Code generation framework for application program interface for model | |
US8327351B2 (en) | Application modification framework | |
US7493594B2 (en) | System and method for designing component based applications | |
US11429365B2 (en) | Systems and methods for automated retrofitting of customized code objects | |
US8448132B2 (en) | Systems and methods for modifying code generation templates | |
US9594548B2 (en) | Dynamically updating templated applications | |
US20060206861A1 (en) | System and method for generating component based applications | |
US8095570B2 (en) | Decorated model architecture for efficient model-driven application development | |
US20110047453A1 (en) | Display Rendering System With Supporting Components | |
US10331423B1 (en) | Utilizing cross platform streamable user interfaces to reduce software deployment frequency caused by user interface improvements | |
US20050114479A1 (en) | System and method for hierarchically representing configuration items | |
KR20050024227A (ko) | 소프트웨어 컴포넌트화 | |
CN101901265B (zh) | 一种虚拟试验数据对象化管理*** | |
US20220360492A1 (en) | Declarative specification based override mechanism for customizing data centers deployed on cloud platforms | |
US10732940B2 (en) | Enterprise services framework for presentation layer management | |
Soma et al. | A model-based framework for developing and deploying data aggregation services | |
CN118151891A (zh) | 一种应用管理方法及相关设备 | |
CN118467503A (zh) | 数据库对象迁移方法、装置、设备、介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |