Movatterモバイル変換


[0]ホーム

URL:


CN102279750B - Iterative code generation method based on domain knowledge sharing - Google Patents

Iterative code generation method based on domain knowledge sharing
Download PDF

Info

Publication number
CN102279750B
CN102279750BCN 201110252089CN201110252089ACN102279750BCN 102279750 BCN102279750 BCN 102279750BCN 201110252089CN201110252089CN 201110252089CN 201110252089 ACN201110252089 ACN 201110252089ACN 102279750 BCN102279750 BCN 102279750B
Authority
CN
China
Prior art keywords
code generation
domain
data
generation system
module
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.)
Expired - Fee Related
Application number
CN 201110252089
Other languages
Chinese (zh)
Other versions
CN102279750A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJUfiledCriticalZhejiang University ZJU
Priority to CN 201110252089priorityCriticalpatent/CN102279750B/en
Publication of CN102279750ApublicationCriticalpatent/CN102279750A/en
Application grantedgrantedCritical
Publication of CN102279750BpublicationCriticalpatent/CN102279750B/en
Expired - Fee Relatedlegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Landscapes

Abstract

Translated fromChinese

本发明公开了一种基于领域知识共享的迭代式代码生成方法,包括如下步骤:1)基于动态语言开发核心代码生成系统;2)利用所述核心代码生成系统生成常规行业应用系统;3)提取所述常规行业应用系统中的共性领域相关知识代码;4)在所述共性领域相关知识代码基础上再次开发生成特定领域应用系统;所述核心代码生成系统包括使用接口、开发接口、依赖说明文件、自动化测试和部署套件;通过对所述特定领域应用系统再次提取共性领域相关知识代码可以实现迭代,具有产生的迭代式代码生成系统可扩展性强,支持领域支持的积累与细化,提高细分行业领域的开发效率,可测试性好,有利于提高项目质量,减少项目开发过程中返工的次数。

Figure 201110252089

The invention discloses an iterative code generation method based on domain knowledge sharing, comprising the following steps: 1) developing a core code generation system based on a dynamic language; 2) generating a conventional industry application system by using the core code generation system; 3) extracting Common field-related knowledge codes in the conventional industry application system; 4) Re-develop and generate specific field application systems on the basis of the common field-related knowledge codes; the core code generation system includes user interfaces, development interfaces, and dependency description files , automated testing and deployment suites; iteration can be realized by re-extracting common domain-related knowledge codes from the specific domain application system, and the generated iterative code generation system has strong scalability, supports the accumulation and refinement of domain support, and improves detailed The development efficiency and testability of different industries are good, which is conducive to improving the quality of the project and reducing the number of rework during the project development process.

Figure 201110252089

Description

Translated fromChinese
一种基于领域知识共享的迭代式代码生成方法An Iterative Code Generation Method Based on Domain Knowledge Sharing

技术领域technical field

本发明涉及计算机系统应用技术领域。具体来讲涉及一种用于面向行业应用领域实现快速开发的迭代式代码生成系统。The invention relates to the field of computer system application technology. Specifically, it relates to an iterative code generation system for realizing rapid development in the field of industry application.

背景技术Background technique

代码生成系统具有多年的发展历史,从早期的语法分析器自动生成系统到后来的各种MDA自动生成工具。随着企业/政府信息化技术的发展,针对不同行业的行业应用开发需求越来越强烈。于是涌现了大量针对行业应用的代码生成系统和快速开发平台。现有的针对行业应用的代码生成系统往往基于静态面向对象语言(如Java/C#/Delphi)和组件技术,提供给行业应用开发者各种GUI拖拉式控件,能够实现对表单数据自动生成增删改查代码并保存到支持的后端关系型数据库。The code generation system has a history of many years of development, from the early syntax analyzer automatic generation system to various MDA automatic generation tools later. With the development of enterprise/government information technology, the demand for industry application development for different industries is becoming stronger and stronger. As a result, a large number of code generation systems and rapid development platforms for industry applications have emerged. Existing code generation systems for industry applications are often based on static object-oriented languages (such as Java/C#/Delphi) and component technology, providing industry application developers with various GUI drag-and-drop controls, which can automatically generate, delete, and modify form data Check the code and save it to a supported back-end relational database.

现有的针对行业应用的代码生成系统在实际应用过程中所存在的不足有:The deficiencies in the actual application process of existing code generation systems for industry applications include:

1、代码生成系统功能单一。企业/政府信息化在初期主要是各种表格信息的电子化和网络化,实现这些表格信息的单机/联网录入和查询。现有的代码生成系统满足了这方面的需求。但是随着行业信息化的进一步发展,软件必须能够处理更复杂的行业业务系统,必须拥有领域相关知识。现有的代码生成系统不提供领域相关的代码生成功能。所以针对行业用户深层次的需求,代码生成系统往往力不从心。此外,也有开发商提供针对特定行业领域的代码生成系统,但是这些代码生成系统不能应用于其它行业领域,应用范围太窄。1. The function of the code generation system is single. In the initial stage of enterprise/government informatization, it is mainly the electronicization and networking of various forms of information, and the realization of stand-alone/network entry and query of these forms of information. Existing code generation systems fulfill this need. However, with the further development of industry informatization, software must be able to handle more complex industry business systems and must have domain-related knowledge. Existing code generation systems do not provide domain-specific code generation capabilities. Therefore, for the deep-seated needs of industry users, the code generation system is often unable to do what it wants. In addition, some developers also provide code generation systems for specific industry fields, but these code generation systems cannot be applied to other industry fields, and the application range is too narrow.

2、代码生成系统扩展困难。2. It is difficult to expand the code generation system.

a)   现有的代码生成系统往往不提供代码生成系统自身的扩展开发接口,当代码生成系统不能满足开发需求时难以简单扩展。比如众多面向企业应用领域的代码生成系统,其实核心的功能都是针对数据自动生成增删改查的代码。当要对应用进行深度开发时,代码生成系统往往无法满足要求。而由于没有开放代码生成系统自身的扩展接口,导致难以在代码生成系统生成的代码基础上进行深度扩展开发。a) Existing code generation systems often do not provide the extension development interface of the code generation system itself, and it is difficult to simply expand when the code generation system cannot meet the development requirements. For example, many code generation systems for enterprise application fields, in fact, the core function is to automatically generate codes for adding, deleting, modifying and checking data. When it comes to in-depth development of applications, code generation systems often fail to meet the requirements. However, since there is no open extension interface of the code generation system itself, it is difficult to carry out in-depth extension development on the basis of the code generated by the code generation system.

b)  代码生成系统没有考虑自动生成的代码本身的可维护性。针对同样的逻辑,代码生成系统生成同样的重复的代码,没有利用MVC模式分离关注面,没有用继承等特性减少重复代码。同时代码生成系统往往要求用户不能修改自动生成的代码。这样导致应用开发者要更改某项功能时,必须繁琐的一编一遍点鼠标进行更改。比如某个系统有100个表单全部要更改layout属性,就要针对这100个表单点击右键更改layout属性,大概要点击500次以上的鼠标。其实如果设计合理,开发者只需要在代码中改一个地方。这样的代码生成系统不仅没有减少开发者的工作量,反而增加了工作量。b) The code generation system does not consider the maintainability of the automatically generated code itself. For the same logic, the code generation system generates the same repetitive code, does not use the MVC pattern to separate concerns, and does not use inheritance and other features to reduce repetitive code. At the same time, the code generation system often requires that the user cannot modify the automatically generated code. In this way, when the application developer wants to change a certain function, he must edit and click the mouse to make the change tediously. For example, if a system has 100 forms and all of them need to change the layout attribute, it is necessary to right-click on these 100 forms to change the layout attribute, and it takes more than 500 mouse clicks. In fact, if the design is reasonable, developers only need to change one place in the code. Such a code generation system not only does not reduce the workload of developers, but increases the workload.

3、不支持自动化测试。传统的代码生成系统提供给开发者的是一个GUI界面的集成开发环境,没有提供易于测试的CLI与API接口,所以难以实现自动化测试与及时测试。这会导致代码质量低下,甚至大量返工。3. Does not support automated testing. The traditional code generation system provides developers with an integrated development environment with GUI interface, but does not provide easy-to-test CLI and API interfaces, so it is difficult to realize automated testing and timely testing. This can lead to poor code quality and even a lot of rework.

4、不支持迭代式的代码生成系统。这些已有的代码生成系统是一次性的。由代码生成系统开发商开发出来,交给应用开发商使用。代码生成系统拥有的领域知识是由代码生成系统开发商内置的。比如语法分析器自动生成系统的领域知识是语法分析,针对企业应用的表单自动生成系统的领域知识是数据库sql相关知识。但是不同行业应用的软件开发需要不同行业的领域知识,且当行业划分越来越细时,需要的领域知识也越来越复杂。针对固化的内置特定领域的代码生成系统将不能应对现在的软件发展的趋势。软件系统本身必须能随着领域的扩展和深入而扩展,因而要求支持多层的迭代式开发的代码生成系统。实用的迭代式代码生成系统应该支持下面的场景:拥有数据库相关知识的开发商提供数据库持久化支持的代码生成系统;然后电子政务系统开发商开发通用政务自动代码生成系统,该电子政务系统的数据应该能利用下层的代码生成系统自动保存到数据库;在更细分的电子警务领域,熟悉该领域的开发商可以利用电子政务代码生成系统开发出电子警务代码生成系统。4. Does not support iterative code generation system. These existing code generation systems are one-off. It is developed by the developer of the code generation system and handed over to the application developer for use. The domain knowledge possessed by the code generation system is built-in by the developer of the code generation system. For example, the domain knowledge of the syntax analyzer automatic generation system is syntax analysis, and the domain knowledge of the form automatic generation system for enterprise applications is database SQL-related knowledge. However, software development for different industry applications requires domain knowledge of different industries, and when industries are divided more and more finely, the required domain knowledge becomes more and more complex. A built-in domain-specific code generation system for solidification will not be able to cope with the current trend of software development. The software system itself must be able to expand with the expansion and depth of the field, so a code generation system that supports multi-layer iterative development is required. A practical iterative code generation system should support the following scenarios: a developer with database-related knowledge provides a code generation system supported by database persistence; then an e-government system developer develops an automatic code generation system for general government It should be able to use the underlying code generation system to automatically save to the database; in the more subdivided e-police field, developers familiar with this field can use the e-government code generation system to develop an e-police code generation system.

发明内容Contents of the invention

本发明针对上述技术的缺陷,提出一种基于领域知识共享的迭代式代码生成方法。Aiming at the defects of the above technologies, the present invention proposes an iterative code generation method based on domain knowledge sharing.

为了解决上述技术问题,本发明的技术方案如下:In order to solve the problems of the technologies described above, the technical solution of the present invention is as follows:

一种基于领域知识共享的迭代式代码生成方法,包括如下步骤:An iterative code generation method based on domain knowledge sharing, comprising the following steps:

1)基于动态语言开发核心代码生成系统;1) Develop the core code generation system based on dynamic language;

2)利用所述核心代码生成系统生成常规行业应用系统;2) Using the core code generation system to generate conventional industry application systems;

3)提取所述常规行业应用系统中的共性领域相关知识代码;3) Extracting the common field-related knowledge codes in the conventional industry application system;

4)在所述共性领域相关知识代码基础上再次开发生成特定领域应用系统;4) On the basis of the common field-related knowledge codes, re-develop and generate specific field application systems;

所述核心代码生成系统包括使用接口、开发接口、依赖说明文件、自动化测试和部署套件;通过对所述特定领域应用系统再次提取共性领域相关知识代码可以实现迭代。The core code generation system includes user interfaces, development interfaces, dependency description files, automated testing and deployment suites; iteration can be realized by re-extracting common domain-related knowledge codes from the specific domain application system.

作为可选方案,所述开发核心代码生成系统包括如下步骤:As an optional solution, the developing core code generation system includes the following steps:

21)开发支持数据增删改查的数据持久化系统和消息处理引擎,所述消息处理引擎用于调用和实现所述数据持久化系统;21) Develop a data persistence system and a message processing engine that support data addition, deletion, modification and query, and the message processing engine is used to call and implement the data persistence system;

22)开发规则引擎、流程引擎和表单模板系统,所述规则引擎和流程引擎用于对业务规则和业务流程的建模,所述表单模板系统用于提供相关数据/规则与流程表单的输入输出界面;22) Develop a rule engine, process engine and form template system, the rule engine and process engine are used to model business rules and business processes, and the form template system is used to provide input and output of relevant data/rules and process forms interface;

23)生成使用接口和开发接口,所述使用接口和开发接口包括API、CLI、GUI接口;23) Generate a user interface and a development interface, which include API, CLI, and GUI interfaces;

24)生成依赖说明文件、自动化测试和部署套件;24) Generate dependency documentation, automated testing and deployment suites;

所述API接口用于继承父对象的属性,所述CLI接口用于命令行调用方式,所述GUI接口用于提供对象属性的输入控件;所述依赖说明文件用于说明各个模块的依赖关系,所述自动化测试套件用于测试所述核心代码生成系统,所述部署套件用于部署系统运行环境。The API interface is used for inheriting the properties of the parent object, the CLI interface is used for command line calling, and the GUI interface is used for providing input controls for object properties; the dependency description file is used to illustrate the dependencies of each module, The automated test suite is used to test the core code generation system, and the deployment suite is used to deploy the system operating environment.

作为可选方案,所述利用所述核心代码生成系统生成常规行业应用系统包括如下步骤:As an optional solution, the generation of a conventional industry application system using the core code generation system includes the following steps:

31)选择数据库,并定义领域对象和对象属性;31) Select the database, and define domain objects and object properties;

32) 定义规则数据和流程数据;32) Define rule data and process data;

33)调用所述核心代码生成系统生成输入输出界面与控制代码;33) calling the core code generation system to generate input and output interfaces and control codes;

34)按特定需要修改自动生成的代码。34) Modify the automatically generated code according to specific needs.

作为可选方案,所述数据持久化系统通过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)”,所述表名对应于对象类名,所述字段名对应于对象属性名,所述值对应于对象属性值。As an optional solution, the data persistence system is assisted by an OR-mapping library. The OR-mapping library provides at least save, update, find, and delete methods. When saving a newly added object, call the save method; update When the object is called, the update method is called; when the object is queried, the find method is called; when the object is deleted, the delete method is called, and the OR-mapping library obtains the attributes of the data persistence, and constructs the SQL inserted into the database Statement, the format of the SQL statement is "insert into table name (field 1,, field 2, ..., field n) values (value 1, value 2, ..., value n)", and the table name corresponds to the object class name, the field name corresponds to the object attribute name, and the value corresponds to the object attribute value.

作为可选方案, 所述规则引擎基于开源的drools实现,所述流程引擎包括业务流程建模定义工具模块、过程定义模块、工作流执行环境引擎模块、任务管理模块,所述流程引擎基于开源的osworkflow或jbpm实现。As an optional solution, the rule engine is implemented based on open source drools, the process engine includes a business process modeling definition tool module, a process definition module, a workflow execution environment engine module, and a task management module, and the process engine is based on an open source osworkflow or jbpm implementation.

作为可选方案,所述表单模板系统生产的输出界面是基于HTML+JS+Css的标准web界面;所述表单模板系统包括表单定义器、表单数据绑定模块、表单管理模块;所述表单模板系统基于quaderno或JTang Form辅助实现。As an alternative, the output interface produced by the form template system is a standard web interface based on HTML+JS+Css; the form template system includes a form definer, a form data binding module, and a form management module; the form template The system is implemented based on quadrno or JTang Form.

作为可选方案,所述核心代码生成系统嵌入全文搜索功能、数据挖掘功能和知识发现功能的一种或几种。As an optional solution, the core code generation system embeds one or more of full-text search function, data mining function and knowledge discovery function.

作为可选方案,所述依赖说明文件的格式为“模块A : 模块B[,模块C]”,所述模块可以指代码、领域知识数据包、第三方组件、操作系统版本;所述自动化测试套件至少提供根据配置文件模拟待测试环境、查找所有需要运行的测试用例、运行所有的测试用例、报告测试结果功能;所述部署套件至少提供定义待部署目标环境、检查目标环境并自动安装缺少的应用和升级过期的组件、准备需要部署的代码包和数据包和安装代码包和数据包功能。As an alternative, the format of the dependency description file is "module A: module B[, module C]", and the module can refer to code, domain knowledge data package, third-party components, operating system version; the automated test The suite at least provides the functions of simulating the environment to be tested according to the configuration file, finding all the test cases that need to be run, running all the test cases, and reporting the test results; the deployment suite at least provides the functions of defining the target environment to be deployed, checking the target environment and automatically installing the missing Apply and upgrade outdated components, prepare code packages and data packages for deployment, and install code package and data package functions.

本发明的有益效果在于:The beneficial effects of the present invention are:

1.本发明产生的迭代式代码生成系统可扩展性强,相比于传统的一次性代码生成系统,可以适应不同的应用领域。由于底层采用动态语言开发,迭代开发时不存在编译过程,不存在强类型系统的限制,故而可以灵活适配不同的应用领域。此外,采用消息引擎作为不同模块之间的调用接口,在耦合度上小于基于组件的代码生成技术,更适合构建大型和分布式系统。1. The iterative code generation system produced by the present invention has strong scalability, and can adapt to different application fields compared with the traditional one-time code generation system. Since the bottom layer is developed in a dynamic language, there is no compiling process during iterative development, and there is no limitation of a strong type system, so it can be flexibly adapted to different application fields. In addition, using the message engine as the call interface between different modules is less coupled than component-based code generation technology, and is more suitable for building large-scale and distributed systems.

2.支持领域支持的积累与细化,提高细分行业领域的开发效率。代码生成系统最主要的目的是提高开发者的开发效率,通过迭代式的知识积累,面向特定领域时就能更生成更符合该领域的代码,减少开发者后期修改生成后代码的工作量。2. Support the accumulation and refinement of field support, and improve the development efficiency of subdivided industries. The main purpose of the code generation system is to improve the development efficiency of developers. Through iterative knowledge accumulation, it can generate codes that are more suitable for specific fields, and reduce the workload of developers to modify the generated code later.

3.可测试性好,有利于提高项目质量,减少项目开发过程中返工的次数。传统的MDA方法不提供测试接口,因而代码生成的质量无法保证,本发明通过分层架构与MVC模式减少重复代码,提供可测试的编程接口,使得可测试性大幅度提高,完全支持自动化测试。3. Good testability, which is conducive to improving project quality and reducing the number of rework during project development. The traditional MDA method does not provide a test interface, so the quality of code generation cannot be guaranteed. The present invention reduces repetitive code through the layered architecture and MVC mode, provides a testable programming interface, greatly improves testability, and fully supports automated testing.

4.海量数据支持。传统的Sql数据库在处理互联网的海量数据时往往力不从心,Nosql数据库通过schema-less方案来减少DML操作导致的锁表,避免复杂结构与多表连接查询,从而提高了数据层的可扩展性,本发明方法的数据层即支持Sql数据库,也支持No-sql数据库,只需要提供据的CURD接口即可,从而可以应用于互联网类的涉及海量数据处理领域。4. Massive data support. Traditional Sql databases are often unable to handle massive amounts of data on the Internet. Nosql databases use schema-less solutions to reduce table locks caused by DML operations, avoid complex structures and multi-table connection queries, and thus improve the scalability of the data layer. This The data layer of the invented method not only supports Sql database, but also supports No-sql database, and only needs to provide the CURD interface of the data, so that it can be applied to the Internet-like fields involving massive data processing.

5.方便的部署系统。首先通过动态语言免除了烦琐的编译过程,此外通过统一的依赖管理与测试接口,方便了系统的自动化部署。5. Convenient deployment system. First of all, the tedious compilation process is eliminated through the dynamic language. In addition, the automated deployment of the system is facilitated through the unified dependency management and testing interface.

附图说明Description of drawings

 图1为代码生成系统的总体架构;Figure 1 is the overall architecture of the code generation system;

图2 迭代式开发与部署过程。Figure 2 Iterative development and deployment process.

具体实施方式Detailed ways

下面将结合附图和具体实施例对本发明做进一步的说明。The present invention will be further described below in conjunction with the accompanying drawings and specific embodiments.

1、首先实现一个核心的代码生成系统1. First implement a core code generation system

代码生成系统采用JVM作为目标机器平台,从而屏蔽了具体硬件的差异。采用基于JVM的动态语言作为开发语言。典型的JVM动态语言包括Jruby、Jpython、Scala、Groovy、Clojuer等。这些语言都可以用来开发代码生成系统,且不同语言直接可以互相调用。动态语言代码在运行时被动态翻译为JVM上的字节码,然后JVM虚拟机解释执行这些字节码。The code generation system adopts JVM as the target machine platform, thus shielding the difference of specific hardware. Adopt the dynamic language based on JVM as the development language. Typical JVM dynamic languages include Jruby, Jpython, Scala, Groovy, Clojuer, etc. These languages can be used to develop code generation systems, and different languages can call each other directly. Dynamic language codes are dynamically translated into bytecodes on the JVM at runtime, and then the JVM virtual machine interprets and executes these bytecodes.

a) 先开发一个支持数据增删改查的数据持久化系统。该数据持久化系统可以基于第三方OR-mapping库辅助实现,比如ActiveRecord或者Hibernate。 对给定对象,OR-mapping库应该提供save,update,find,delete方法。当要保存新增加的对象时,调用save方法;当要更新对象时,调用update方法;当要查询对象时,调用find方法;当要删除对象时,调用delete方法。a) First develop a data persistence system that supports data addition, deletion, modification and query. The data persistence system can be implemented based on a third-party OR-mapping library, such as ActiveRecord or Hibernate. For a given object, the OR-mapping library should provide save, update, find, delete methods. When the newly added object is to be saved, the save method is called; when the object is to be updated, the update method is called; when the object is to be queried, the find method is called; when the object is to be deleted, the delete method is called.

以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输出模板。Take the save method as an example. When an object is to be saved, the data persistence system forwards the save request to the OR-mapping library. The OR-mapping library dynamically obtains all the attributes of the object that need to be persisted through reflection technology, and then constructs a sql statement inserted into the database (for statements that can be implemented with standard sql, the specific sql syntax of the specific manufacturer's database is not used). The format of the SQL statement is "insert into table name (field 1,, field 2, ..., field n) values (value 1, value 2, ..., value n)". The table name corresponds to the object class name, the field name corresponds to the object attribute name, and the value corresponds to the object attribute value. For example, if the object is Student, the attribute of Student has two names and xuehao. When the student "Zhang San, 20111023" is to be saved to the database, the following sql statement will be automatically generated "insert into Student(name, xuehao) values ('Zhang San' ,'20111023')". In this way, as long as the underlying database supports the sql standard, we can successfully save the data no matter it is sql server or oracle. For functions that cannot be realized by standard SQL, such as query paging function, you can construct a separate SQL output template for the supported databases. When selecting a different database during deployment, select the SQL output template according to the selected database.

对于Nosql数据库,可以采用类似于Sql数据库的OR-Mapping库实现数据持久化,比如通过ruby-mogodb-driver可以实现用Jruby语言保存数据到Nosql数据库MogoDB。For Nosql databases, OR-Mapping libraries similar to Sql databases can be used to achieve data persistence. For example, ruby-mogodb-driver can be used to save data in Jruby language to Nosql database MogoDB.

b) 然后实现一个消息处理引擎,相关消息数据可以通过数据持久化系统保存到数据库层;消息处理引擎实现数据持久化的调用方和数据持久化的实现方的解耦。这样可以实现中间件应用服务器和数据库服务器独立部署,独立升级。此外,应用服务器的各部件之间也通过消息引擎互通,比如流程引擎、规则引擎、表单引擎之间也通过消息引擎协作,使得整个系统模块性更强,功能升级更方便。消息引擎要支持点对点模型和发布订阅模式两种消息传递机制,可以基于开源消息中间件如activeMQ或者openjms辅助实现。消息引擎的消息格式默认采用Json格式,同时也支持XML格式和ProtoBuf等二进制格式。以上面提到的保存一条学生数据的消息为例,应用模块通过消息引擎发送给数据持久化模块的消息为:b) Then implement a message processing engine, and related message data can be saved to the database layer through the data persistence system; the message processing engine realizes the decoupling of the caller of data persistence and the implementer of data persistence. In this way, middleware application servers and database servers can be independently deployed and upgraded independently. In addition, the components of the application server also communicate with each other through the message engine, such as the process engine, the rule engine, and the form engine also cooperate through the message engine, which makes the whole system more modular and more convenient for function upgrades. The message engine should support two messaging mechanisms, the point-to-point model and the publish-subscribe model, which can be implemented based on open source message middleware such as activeMQ or openjms. The message format of the message engine adopts Json format by default, and also supports binary formats such as XML format and ProtoBuf. Taking the above-mentioned message of saving a student data as an example, the message sent by the application module to the data persistence module through the message engine is:

{{

  "action" : "save","action" : "save",

  "object" : {"object" : {

        "name" : "张三","name": "Zhang San",

        "xuehao" : "20111023""xuehao" : "20111023"

      }}

}}

消息的编码统一采用UTF-8编码。The encoding of the message is uniformly encoded in UTF-8.

c)   接着实现规则引擎和流程引擎,以提供对业务规则和业务流程的建模。规则和流程的变更通过消息处理引擎触发。规则引擎实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。规则引擎可以基于开源的drools实现。流程引擎由如下几个模块组成:业务流程建模定义工具、过程定义、工作流执行环境(引擎)、任务管理模块等。流程引擎可以基于开源的osworkflow或jbpm等辅助实现。c) Then implement the rule engine and process engine to provide modeling of business rules and business processes. Changes to rules and processes are triggered through the message processing engine. The rule engine separates business decisions from application code and writes business decisions using predefined semantic modules. Accept data input, interpret business rules, and make business decisions based on business rules. The rule engine can be implemented based on open source drools. The process engine consists of the following modules: business process modeling definition tool, process definition, workflow execution environment (engine), task management module, etc. The process engine can be based on auxiliary implementations such as open source osworkflow or jbpm.

d)   进而实现一个表单模板系统,提供相关数据/规则与流程表单的输入输出界面;表单模板系统生产的输入界面是基于HTML+Js+Css的标准web界面。web界面中的输入框对应于应用层需要保持和运算的对象属性。表单模板系统至少包括表单定义器、表单数据绑定模块、表单管理模块等。表单模板系统可以基于quaderno或JTang Form辅助实现。还是以保存学生信息为例,表单模板系统至少生成如下的Web界面代码:d) Further implement a form template system to provide input and output interfaces for relevant data/rules and process forms; the input interface produced by the form template system is a standard web interface based on HTML+Js+Css. The input boxes in the web interface correspond to the object attributes that need to be maintained and operated by the application layer. The form template system includes at least form definer, form data binding module, form management module and so on. The form template system can be implemented based on quadrno or JTang Form. Still taking saving student information as an example, the form template system at least generates the following web interface code:

<input type="text" name="name" value="张三"><input type="text" name="name" value="Zhang San">

<input type="text" name="xuehao" value="20111023"><input type="text" name="xuehao" value="20111023">

<input type="submit" value="提交"><input type="submit" value="submit">

e)  其它计算机相关领域功能的实现,包括全文搜索/数据挖掘/知识发现等。这些功能是可选的,不一定要由核心代码生成系统提供,可以由上层应用实现。e) Realization of functions in other computer-related fields, including full-text search/data mining/knowledge discovery, etc. These functions are optional and not necessarily provided by the core code generation system, but can be implemented by upper-layer applications.

上述核心的代码生成系统可使用动态语言开发,方便后期应用到各种未知的领域而无需事先设计对象继承体系,更改代码无需重新编译一方便了后期的部署。The above-mentioned core code generation system can be developed using a dynamic language, which is convenient for later application to various unknown fields without the need to design an object inheritance system in advance, and does not need to be recompiled to change the code, which facilitates later deployment.

2、然后提供该核心代码生成系统的使用接口和二次开发接口,相关接口包括三种:API/CLI/GUI接口。以保持对象为例:API接口规定所有需要持久化的对象必须继承自PersistentObject对象,然后通过继承获得save,update,find,delete方法。这样保持对象时调用save方法即可实现;CLI接口规定了命令行调用方式,如“save 对象名(属性1:值1[,属性2,值2])”,其中方括号内是可选参数。GUI接口则提供对象属性的输入控件,并提供保存按钮。当按下保持按钮后,所有输入的对象属性保持到数据库。2. Then provide the use interface and secondary development interface of the core code generation system. The relevant interfaces include three types: API/CLI/GUI interface. Take persistent objects as an example: the API interface stipulates that all objects that need to be persisted must inherit from the PersistentObject object, and then obtain the save, update, find, and delete methods through inheritance. In this way, it can be realized by calling the save method when keeping the object; the CLI interface specifies the command line calling method, such as "save object name (attribute 1: value 1 [, attribute 2, value 2])", where the square brackets are optional parameters . The GUI interface provides input controls for object properties and a save button. When the Hold button is pressed, all entered object properties are saved to the database.

3、提供该基本的代码生成系统的依赖说明文件,提供一个自动化测试和部署的套件。3. Provide the dependency documentation of the basic code generation system, and provide an automated testing and deployment suite.

a)  依赖说明文件的基本格式为“模块A : 模块B[, 模块C]”,表明模块A依赖于模块B和模块C。模块可以指代码、领域知识数据包、第三方组件、操作系统版本等。a) The basic format of the dependency specification file is "Module A : Module B[, Module C]", indicating that Module A depends on Module B and Module C. Modules can refer to code, domain knowledge packages, third-party components, operating system versions, etc.

b)  自动化测试套件至少提供四个功能:1根据配置文件模拟待测试环境,2查找所有需要运行的测试用例,3运行所有的测试用例,4报告测试结果。b) The automated test suite provides at least four functions: 1 to simulate the environment to be tested according to the configuration file, 2 to find all the test cases that need to be run, 3 to run all the test cases, and 4 to report the test results.

c)  部署套件至少提供四个功能:1、定义待部署目标环境,2、检查目标环境并自动安装缺少的应用和升级过期的组件。3、准备需要部署的代码包和数据包。4、安装代码包和数据包。c) The deployment suite provides at least four functions: 1. Define the target environment to be deployed, 2. Check the target environment and automatically install missing applications and upgrade outdated components. 3. Prepare the code packages and data packages that need to be deployed. 4. Install the code package and data package.

4、行业应用开发商利用该代码生成系统既可以快速开发常规的行业应用系统。步骤如下:4. Industry application developers can quickly develop conventional industry application systems by using the code generation system. Proceed as follows:

a)  选择数据库,并定义领域对象模型和对象属性。这里以一个大学学生信息管理系统为例。选择数据库为Oracle 10g。然后建立一个Student对象,该对象有两个属性name和学号。根据该Student对象信息自动建立数据库表到oracle数据库中。a) Select the database, and define the domain object model and object properties. Here we take a university student information management system as an example. Select the database as Oracle 10g. Then create a Student object, which has two attributes name and student number. According to the information of the Student object, the database table is automatically established in the oracle database.

b)  输入规则数据与流程定义数据。规则数据如:学号第一位代表本科、硕士还是博士,学号中间两位代表入学年份,学号后5位为顺序号。流程定义数据如:学生信息变更时要先输入人员录入变更请求->班主任审核->系领导批准->流程结束。b) Input rule data and process definition data. Rule data such as: the first digit of the student ID represents undergraduate, master or doctorate, the middle two digits of the student ID represent the year of enrollment, and the last 5 digits of the student ID are the sequence number. Process definition data such as: When changing student information, you must first enter the personnel input change request->head teacher review->department leader approval->process end.

c)   调用代码生成接口自动生成输入输出界面与控制代码。根据以上信息自动生成基于Web的输入接口,自动生成流程控制代码、自动处理规则约束、自动生成数据库持久化代码。c) Call the code generation interface to automatically generate input and output interfaces and control codes. According to the above information, it automatically generates a web-based input interface, automatically generates process control codes, automatically handles rule constraints, and automatically generates database persistence codes.

d)  修改自动生成的代码以适应特定应用需求。d) Modify the automatically generated code to suit specific application needs.

e)  打包分发e) Package distribution

5、行业应用开发商可以成为代码生成系统提供商。方法是将共性领域相关知识及领域数据提取出来,实现针对该领域的快速开发功能,然后打包领域知识数据库和功能代码,提供开发接口说明、依赖说明文件。比如可以将大学学生信息管理系统的对象模型数据、规则数据、流程定义数据、自动生成的输入输出界面与控制代码全部打包,然后提供给细分领域的开发商使用。5. Industry application developers can become code generation system providers. The method is to extract the relevant knowledge and domain data of the common domain, realize the rapid development function for this domain, and then package the domain knowledge database and function code, and provide development interface description and dependency description file. For example, the object model data, rule data, process definition data, automatically generated input and output interfaces and control codes of the university student information management system can all be packaged, and then provided to developers in subdivided fields for use.

6、细分领域的行业应用开发商则可以直接在领域代码生成系统上进行开发,并可以根据该特定领域要求开发应用系统,方法同步骤4。应用领域越具体,领域知识越丰富和明确,开发效率就会更高。从步骤6可以跳转到步骤5,从而成为一个迭代式的代码生成系统。比如学生寝室管理系统开发商可以和学生信息管理系统开发商合作,在基础的学生信息管理系统基础之上开发。学生寝室管理系统开发商需要扩展学生对象模型,增加寝室相关信息。增加寝室分配的规则和审批流程,生成输入输出接口和控制代码等。6. Industry application developers in subdivided fields can directly develop on the field code generation system, and can develop application systems according to the requirements of the specific field. The method is the same as step 4. The more specific the application domain, the richer and clearer the domain knowledge, the higher the development efficiency will be. From step 6 you can jump to step 5, thus becoming an iterative code generation system. For example, the developer of the student dormitory management system can cooperate with the developer of the student information management system to develop on the basis of the basic student information management system. The developer of the student dormitory management system needs to expand the student object model to increase dormitory-related information. Increase the rules and approval process of dormitory allocation, generate input and output interfaces and control codes, etc.

7、细分领域的行业应用开发商的系统依赖于该领域代码生成系统和核心代码生成系统,而领域代码生成系统依赖于核心代码生成系统。它们构成树形依赖。依赖通过依赖说明文件管理。当被依赖的系统更新时,上层应用系统可以直接受益于这些更新。7. The systems of industry application developers in subdivided fields depend on the field code generation system and the core code generation system, and the field code generation system depends on the core code generation system. They form a tree of dependencies. Dependencies are managed through dependency specification files. When the dependent systems are updated, the upper application system can directly benefit from these updates.

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。The above is only a preferred embodiment of the present invention, it should be pointed out that for those of ordinary skill in the art, without departing from the concept of the present invention, some improvements and modifications can also be made, and these improvements and modifications should also be considered Within the protection scope of the present invention.

Claims (7)

Translated fromChinese
1.一种基于领域知识共享的迭代式代码生成方法,其特征在于,包括如下步骤:1. an iterative code generation method based on domain knowledge sharing, is characterized in that, comprises the steps:1)基于动态语言开发核心代码生成系统;1) Develop the core code generation system based on dynamic language;2)利用所述核心代码生成系统生成常规行业应用系统;2) Using the core code generation system to generate conventional industry application systems;3)提取所述常规行业应用系统中的共性领域相关知识代码及领域数据;3) Extract the knowledge codes and domain data related to common domains in the conventional industry application system;4)在所述共性领域相关知识代码和领域数据的基础上再次开发生成特定领域应用系统;4) On the basis of the common domain-related knowledge codes and domain data, re-develop and generate specific domain application systems;所述核心代码生成系统包括使用接口、开发接口、依赖说明文件、自动化测试和部署套件;通过对所述特定领域应用系统再次提取共性领域相关知识代码及领域数据可以实现迭代;The core code generation system includes user interfaces, development interfaces, dependency description files, automated testing and deployment suites; iterations can be realized by re-extracting common domain-related knowledge codes and domain data from the specific domain application system;所述开发核心代码生成系统包括如下步骤:Described development core code generation system comprises the steps:21)开发支持数据增删改查的数据持久化系统和消息处理引擎,所述消息处理引擎用于调用和实现所述数据持久化系统;21) Develop a data persistence system and a message processing engine that support data addition, deletion, modification and query, and the message processing engine is used to call and implement the data persistence system;22)开发规则引擎、流程引擎和表单模板系统,所述规则引擎和流程引擎用于对业务规则和业务流程的建模,所述表单模板系统用于提供相关数据/规则与流程表单的输入输出界面;22) Develop a rule engine, process engine and form template system, the rule engine and process engine are used to model business rules and business processes, and the form template system is used to provide input and output of relevant data/rules and process forms interface;23)生成使用接口和开发接口,所述使用接口和开发接口包括API、CLI、GUI接口;23) Generate a user interface and a development interface, which include API, CLI, and GUI interfaces;24)生成依赖说明文件、自动化测试和部署套件;24) Generate dependency documentation, automated testing and deployment suites;所述API接口用于继承父对象的属性,所述CLI接口用于命令行调用方式,所述GUI接口用于提供对象属性的输入控件;所述依赖说明文件用于说明各个模块的依赖关系,所述自动化测试套件用于测试所述核心代码生成系统,所述部署套件用于部署系统运行环境。The API interface is used for inheriting the properties of the parent object, the CLI interface is used for command line calling, and the GUI interface is used for providing input controls for object properties; the dependency description file is used to illustrate the dependencies of each module, The automated test suite is used to test the core code generation system, and the deployment suite is used to deploy the system operating environment.2.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述利用所述核心代码生成系统生成常规行业应用系统包括如下步骤:2. a kind of iterative code generation method based on domain knowledge sharing according to claim 1, is characterized in that, described utilizing described core code generation system to generate conventional industry application system comprises the following steps:31)选择数据库,并定义领域对象和对象属性;31) Select the database, and define domain objects and object properties;32) 定义规则数据和流程数据;32) Define rule data and process data;33)调用所述核心代码生成系统生成输入输出界面与控制代码;33) calling the core code generation system to generate input and output interfaces and control codes;34)按特定需要修改自动生成的代码。34) Modify the automatically generated code according to specific needs.3.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于, 所述数据持久化系统通过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)”,所述表名对应于对象类名,所述字段名对应于对象属性名,所述值对应于对象属性值。3. The iterative code generation method based on domain knowledge sharing according to claim 1, wherein the data persistence system is assisted by an OR-mapping library, and the OR-mapping library at least provides save, update, find, delete methods, when saving a newly added object, call the save method; when updating an object, call the update method; when querying an object, call the find method; when deleting an object, call the delete method, The OR-mapping library obtains the attributes of the data persistence, and constructs an SQL statement inserted into the database. The format of the SQL statement is "insert into table name (field 1,, field 2, ..., field n) values ( value 1, value 2, ..., value n)", the table name corresponds to the object class name, the field name corresponds to the object attribute name, and the value corresponds to the object attribute value.4.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述规则引擎基于开源的drools实现,所述流程引擎包括业务流程建模定义工具模块、过程定义模块、工作流执行环境引擎模块、任务管理模块,所述流程引擎基于开源的osworkflow或jbpm实现。4. A kind of iterative code generation method based on domain knowledge sharing according to claim 1, characterized in that, the rule engine is realized based on open source drools, and the process engine includes a business process modeling definition tool module, a process A definition module, a workflow execution environment engine module, and a task management module, the process engine is implemented based on open source osworkflow or jbpm.5.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述表单模板系统生产的输出界面是基于HTML+JS+Css的标准web界面;所述表单模板系统包括表单定义器、表单数据绑定模块、表单管理模块;所述表单模板系统基于quaderno或JTang Form辅助实现。5. a kind of iterative code generation method based on domain knowledge sharing according to claim 1, is characterized in that, the output interface that described form template system produces is the standard web interface based on HTML+JS+Css; The template system includes a form definer, a form data binding module, and a form management module; the form template system is based on quadrno or JTang Form auxiliary implementation.6.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述核心代码生成系统嵌入全文搜索功能、数据挖掘功能和知识发现功能的一种或几种。6. A kind of iterative code generation method based on domain knowledge sharing according to claim 1, characterized in that, the core code generation system embeds one or more of full-text search function, data mining function and knowledge discovery function .7.根据权利要求1所述的一种基于领域知识共享的迭代式代码生成方法,其特征在于,所述依赖说明文件的格式为“模块A : 模块B[,模块C]”,所述模块可以指代码、领域知识数据包、第三方组件、操作系统版本;所述自动化测试套件至少提供根据配置文件模拟待测试环境、查找所有需要运行的测试用例、运行所有的测试用例、报告测试结果功能;所述部署套件至少提供定义待部署目标环境、检查目标环境并自动安装缺少的应用和升级过期的组件、准备需要部署的代码包和数据包和安装代码包和数据包功能。7. A kind of iterative code generation method based on domain knowledge sharing according to claim 1, it is characterized in that, the format of described dependency specification file is " module A: module B [, module C] ", described module It can refer to code, domain knowledge data package, third-party components, and operating system version; the automated test suite at least provides the functions of simulating the environment to be tested according to the configuration file, finding all test cases that need to be run, running all test cases, and reporting test results The deployment suite at least provides the functions of defining the target environment to be deployed, checking the target environment and automatically installing missing applications and upgrading outdated components, preparing code packages and data packages that need to be deployed, and installing code packages and data packages.
CN 2011102520892011-08-302011-08-30Iterative code generation method based on domain knowledge sharingExpired - Fee RelatedCN102279750B (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
CN 201110252089CN102279750B (en)2011-08-302011-08-30Iterative code generation method based on domain knowledge sharing

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
CN 201110252089CN102279750B (en)2011-08-302011-08-30Iterative code generation method based on domain knowledge sharing

Publications (2)

Publication NumberPublication Date
CN102279750A CN102279750A (en)2011-12-14
CN102279750Btrue CN102279750B (en)2013-07-31

Family

ID=45105218

Family Applications (1)

Application NumberTitlePriority DateFiling Date
CN 201110252089Expired - Fee RelatedCN102279750B (en)2011-08-302011-08-30Iterative code generation method based on domain knowledge sharing

Country Status (1)

CountryLink
CN (1)CN102279750B (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN102681852B (en)*2012-05-162015-05-13河南辉煌科技股份有限公司Agile development method based on JavaEE
CN103064909B (en)*2012-12-192016-08-17武汉虹翼信息有限公司A kind of base station database check method based on Drools regulation engine
CN103209214A (en)*2013-04-032013-07-17蓝盾信息安全技术股份有限公司Not only structured query language (NoSQL)-based method for realizing message-oriented middleware
CN104917663A (en)*2014-03-122015-09-16深圳市赛格导航科技股份有限公司ActiveMQ server-based positioning information distribution system and method
CN104391845B (en)*2014-04-022018-10-12贵阳朗玛信息技术股份有限公司 A method and device for generating database scripts
WO2017058042A1 (en)*2015-09-282017-04-06Huawei Technologies Co., Ltd.A data processing device and a method of operating the data processing device
CN105488147A (en)*2015-11-262016-04-13南京莱斯信息技术股份有限公司Persistence method based on SQL (Structured Query Language) template
CN105512314A (en)*2015-12-152016-04-20宋连兴Separable data processing method realized in applications
CN105787056A (en)*2016-02-292016-07-20浪潮通用软件有限公司Calculating method based on custom calculation model
CN106776824B (en)*2016-11-212020-10-16武汉斗鱼网络科技有限公司 Android database upgrade method and system
CN109358844A (en)*2018-09-302019-02-19仝瑞麟Program excutive method and device
CN110413530B (en)*2019-08-022024-01-05中国工商银行股份有限公司Behavior execution method and device
CN111142861B (en)*2019-12-172022-05-03西安电子科技大学Method and device for integrating structured comprehensive control system
CN116755683B (en)*2023-08-142023-11-14腾讯科技(深圳)有限公司Data processing method and related device
CN119201131A (en)*2024-11-082024-12-27金华八达集团有限公司 A method and system for iterative use of code snippet extraction based on parallelization

Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN101114226A (en)*2007-08-282008-01-30北京中企开源信息技术有限公司Code automatically generating device based on model component, system and method
CN101488086A (en)*2008-12-232009-07-22北京中企开源信息技术有限公司Software generation method and apparatus based on field model
CN101794226A (en)*2010-03-082010-08-04山东大学Service software construction method and system adapting to multiple business abstraction levels

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20090288068A1 (en)*2008-05-132009-11-19Facton GmbhDomain model concept for developing computer applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
CN101114226A (en)*2007-08-282008-01-30北京中企开源信息技术有限公司Code automatically generating device based on model component, system and method
CN101488086A (en)*2008-12-232009-07-22北京中企开源信息技术有限公司Software generation method and apparatus based on field model
CN101794226A (en)*2010-03-082010-08-04山东大学Service software construction method and system adapting to multiple business abstraction levels

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
吴家菊 等.基于RUP的迭代式软件开发研究及应用.《现代电子技术》.2009,(第16期),95-99.
基于RUP的迭代式软件开发研究及应用;吴家菊 等;《现代电子技术》;20090831(第16期);95-99*

Also Published As

Publication numberPublication date
CN102279750A (en)2011-12-14

Similar Documents

PublicationPublication DateTitle
CN102279750B (en)Iterative code generation method based on domain knowledge sharing
US11789715B2 (en)Systems and methods for transformation of reporting schema
US11726969B2 (en)Matching metastructure for data modeling
US9465590B2 (en)Code generation framework for application program interface for model
US7823120B2 (en)Device, system and method for accelerated modeling
CN102656557B (en) Automate Enterprise Software Development
US9904522B2 (en)Web development system
US8954375B2 (en)Method and system for developing data integration applications with reusable semantic types to represent and process application data
US8739150B2 (en)Systems and methods for dynamically replacing code objects via conditional pattern templates
US20210357577A1 (en)Logical, recursive definition of data transformations
US20200167143A1 (en)Systems and methods for automated retrofitting of customized code objects
US20110078211A1 (en)Systems and methods for analyzing and transforming an application from a source installation to a target installation
US20110282995A1 (en)Systems and methods for dynamically deploying an application transformation tool over a network
US20090254881A1 (en)Code generation techniques for administrative tasks
JP2005078649A (en)Branding framework
CN104461531B (en)A kind of implementation method of reporting system SQL
CN113841135B (en) Service Management in DBMS
US20130019225A1 (en)Incremental Inferences for Developing Data Models
WO2024005969A1 (en)Using a semantic tree of a compiler to execute a semantic code query against source code
WO2011041246A1 (en)Systems and methods for analyzing and transforming an application from a source installation to a target installation
US20120330878A1 (en)Conventions for inferring data models
US11888937B2 (en)Domain specific provider contracts for core data services

Legal Events

DateCodeTitleDescription
C06Publication
PB01Publication
C10Entry into substantive examination
SE01Entry into force of request for substantive examination
C14Grant of patent or utility model
GR01Patent grant
CF01Termination of patent right due to non-payment of annual fee

Granted publication date:20130731

CF01Termination of patent right due to non-payment of annual fee

[8]ページ先頭

©2009-2025 Movatter.jp