CN102033743A - System and method for expanding model driving development capability by applying plug-in - Google Patents

System and method for expanding model driving development capability by applying plug-in Download PDF

Info

Publication number
CN102033743A
CN102033743A CN2010102851024A CN201010285102A CN102033743A CN 102033743 A CN102033743 A CN 102033743A CN 2010102851024 A CN2010102851024 A CN 2010102851024A CN 201010285102 A CN201010285102 A CN 201010285102A CN 102033743 A CN102033743 A CN 102033743A
Authority
CN
China
Prior art keywords
plug
model
class
definition information
object
Prior art date
Application number
CN2010102851024A
Other languages
Chinese (zh)
Other versions
CN102033743B (en
Inventor
张铁牛
李长锋
王四美
Original Assignee
西安赛斐软件科技有限公司
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
Priority to CN201010270884.4 priority Critical
Priority to CN201010270884 priority
Application filed by 西安赛斐软件科技有限公司 filed Critical 西安赛斐软件科技有限公司
Priority to CN 201010285102 priority patent/CN102033743B/en
Publication of CN102033743A publication Critical patent/CN102033743A/en
Application granted granted Critical
Publication of CN102033743B publication Critical patent/CN102033743B/en

Links

Abstract

The invention relates to a system and method for expanding the model driving development capability by applying a plug-in. In the system and the method, a'model and plug-in' combined mode is provided to describe and establish a software system, firstly a model designing tool is used for establishing basic model description of the software system and then establishing a plurality of reusable plug-pin model for further describing a basic model object, the plug-in model can be expanded randomly on various basic model objects, and the plug-in can complete a software function with any complexity, therefore, the expansion of the model driving development capability is realized. By utilizing the invention, the technical problems of the existing model driving development method that because a fixed model is adopted, the describing capability of complex service system is poor, and the software system with the model driving development can not be established, expanded and maintained visually and dynamically under the operating state and the like are solved. The system developed by using the method has the advantages that the development complexity degree is low, the development speed is fast, the reusable degree of technology is high, the expansion is flexible, the maintenance is convenient and the reliability is high.

Description

一种应用插件扩充模型驱动开发能力的系统及其方法技术领域[0001] 本发明涉及一种软件开发系统及其方法,尤其涉及一种模型驱动开发的软件开发系统及其方法,属于计算机软件领域。 SYSTEM AND METHOD expansion capability model-driven development of an application plug [0001] The present invention relates to a software development system and method, particularly to a system and method for software development model-driven development, it belongs to the field of computer software . 背景技术[0002] 近20年来,软件开发技术和开发方法有了长足的进步。 [0002] the past 20 years, software development technology and development methodology has made substantial progress. 面向对象技术的应用使系统分析更加贴进现实,使用UML建模技术使得大系统、复杂系统的开发更容易控制,各种灵活高效的开发语言及开发环境的出现使得开发速度进一步加快,但开发技术的前进速度还是跟不上客户越来越高、越来越复杂的需求。 Application of object-oriented technology to make the system even more 'realistic analysis, the use of UML modeling technology allows large systems, development of complex systems easier to control, the emergence of a variety of flexible and efficient development language and development environment enables developers to further accelerate the pace, but the development forward speed to keep up with technology or customers become more sophisticated, more complex needs. 系统变更频繁、软件文档管理跟不上软件变更、软件维护异常困难,使软件项目和产品的开发变得越来越难以控制,软件危机依就没有得到有效地解决。 Frequent changes to the system, software, document management software to keep up with changes, software maintenance is extremely difficult to make software project and product development becomes more and more difficult to control, depending on the software crisis has not been effectively resolved. 各行业都因使用软件产品而受益巨大,但软件企业一直为如何缩短项目交付期和满足客户需求而烦恼,同时也在寻找更加快捷的开发方法和开发工具,并向着软件生产工厂化的目标努力,但目前没有一种工具从本质上改变这一现状。 Various industries have benefited from the use of software products is huge, but software companies have been the delivery period and meet customer needs for the project to worry about how to shorten, while also looking for more efficient development methods and tools, and software production factory toward the goal , but not as a tool to change this situation essentially. [0003] 国际对象管理组织(OMG) 2001年提出了模型驱动架构(MDA)的概念,这种概念提出的开发方法是一种基于代码生成的开发方式,先用平台及语言无关的通用建模语言(UML)描述模型,然后再生成对应平台的代码框架,接着维护此框架来适应客户具体需求, 再编译为可执行的软件产品,最后发布产品供最终用户使用。 [0003] Object Management Group (OMG) in 2001 proposed the concept of Model Driven Architecture (MDA), the development of this concept proposed method is a development approach based code generation, the first general-purpose modeling language and platform-independent use language (UML) model description, and then generate the code corresponding to the platform frame, and then maintain this framework to suit the specific needs of customers, and then compiled into an executable software products, and finally release the product for the end user. 后期对软件维护时再重复这个过程。 Repeat this process when late on software maintenance. 这种方式自从OMG 2001年提出到现在已有不少建模工具中加入了代码生成的功能,但由于UML建模语言在描述能力上不能像开发语言那样灵活而强大,在实现上非常复杂,文档和代码同步困难,代码转换不彻底。 In this way since OMG 2001 put forward to now join the code generation function has a lot of modeling tools, but the UML modeling language is not as flexible as the development of language in describing the capabilities and powerful, very complicated in implementation, documentation and code synchronization difficulties, code conversion is not complete. 框架和代码的自动生成是减轻了部分的代码编写工作,现在还没有哪个产品能实现全部的自动生成,UML生成的代码还不能够足以描述复杂系统。 And automatic code generation framework is to reduce the code portion of the preparation, there is no product which can achieve all of the automatic generation, UML generated code is not enough to be able to describe complex systems. 因此目前没有一个工具能实现OMG提出目标。 There is currently no tool to achieve a goal proposed by OMG. [0004] 模型驱动开发(MDD,Model driven development)是基于MDA理论的开发方法的统称,凡是以业务建模为前提的开发方法都可以称之为MDD。 [0004] Model Driven Development (MDD, Model driven development) is based on a method developed collectively MDA theory, usually modeled as a prerequisite to the development of business methods can be called MDD. [0005] 由于OMG提出的模型驱动开发方法太过理论化和理想化,使得在系统实现上极为困难,针对此种状况,还有部分企业及开发人员提出了另一种实现MDA架构的MDD方法,此方法的系统一般包括:模型数据存储单元,模型设计工具,模型运行引擎,业务数据存储单元几部分,此方法的开发过程是使用模型设计工具设计业务的模型定义信息并存储到模型数据存储单元,使用模型运行引擎读取模型数据存储单元的模型定义信息并生成模型内存对象和软件界面,用户通过软件界面操作业务数据存储单元中的业务数据,完成软件功能,这种方法开发的软件系统拥有模型驱动开发的所有特性:灵活、高效、维护容易,解决了MDA代码生成方法的复杂性。 [0005] As the OMG model-driven development method proposed is too theoretical and idealistic, making the system extremely difficult to achieve for this situation, there are some companies and developers have come up with another way to achieve MDD MDA architecture the system of this method generally comprising: model data storage unit, model design tool, the model running engine, the service data storage unit parts, development of this method is to use a model design tool design business model definition information and stores the model data storage model definition information unit, the model runs using engine reads the model data storage unit and memory objects and model generation software interface, software interface operation by the user service data in the service data storage unit, complete software functions, the software system developed by this method has all the features of model-driven development: a flexible, efficient, easy to maintain, to solve the complexity of MDA code generation methods. 但是,此种方法也存在一个主要问题,因为软件的多样性和复杂性,一套固定的模型无法完全描述复杂的业务系统。 However, this method also has a major problem, because the diversity and complexity of the software, a fixed set of model can not fully describe complex business systems. 传统模型驱动开发要么就是解决问题能力有限,要么是半模型半代码的方法去构建系统,所以没能力完全在运行态对系统进行维护。 Traditional model-driven development or is the problem-solving ability is limited, either semi-half model code to build the system, so the state can not afford to completely run the system maintenance. 发明内容[0006] 为了解决现有的模型驱动开发方法采用一套固定模型对复杂业务系统描述能力不足,以及现有的模型驱动开发方法无法在运行态可视的、动态的用模型驱动开发方法构建、扩充和维护业务系统的技术问题,本发明提供了一种应用插件扩充模型驱动开发能力的系统及其方法,该系统和方法提出了“模型+插件”的组合方式来描述构建软件系统,先用模型设计工具建立软件系统的基本模型描述,再建立若干可复用的插件模型进一步描述基本模型对象,从而实现了对模型驱动开发能力的扩充。 SUMMARY OF THE INVENTION [0006] In order to solve the conventional model-driven development method using a fixed set of model complex business systems lack the ability to describe and model-driven development of existing methods can not be visualized in the operating mode of the dynamic model-driven development with the method build, expand and maintain business systems technical problems, the present invention provides a system and method for model-driven development to expand the capacity of an application plug-in, the system and method proposed a "model + plug-in" to describe the combination of building software systems, the basic model to build software systems design tools with the model description, and then create a number of plug-in model reusable objects further description of the basic model, enabling the expansion of the model-driven development capabilities. [0007] 本发明所采取的技术解决方案是:一种应用插件扩充模型驱动开发能力的系统, 包括模型数据存储单元、模型设计工具、业务数据存储单元、模型运行引擎,所述模型数据存储单元包括基本模型数据存储单元;所述模型数据存储单元是用于存储模型数据的数据库或文件;所述模型设计工具用于设计业务数据存储单元中的业务数据结构以及基本模型数据存储单元中的实体定义信息和界面定义信息;所述模型运行引擎用于定义业务元素类、字段类、业务表类、实体类和界面类,所述业务元素类、字段类、业务表类、实体类和界面类构成基本模型类,所述基本模型类用于在内存中构造对应的基本模型对象;其特殊之处是:所述模型运行引擎还包括插件支持程序集,所述插件支持程序集用于定义插件适配器类;所述模型数据存储单元还包括插件模型 [0007] The present invention is adopted technical solutions are: model-driven development system expansion capability of an application plug-ins, including the model data storage unit, Model Design Tool, service data storage unit, operating engine model, the model data storage unit a data storage unit including the basic model; the model data storage unit is a database or file storage data model; service data structure of the service model design tool for designing a data storage unit and the basic model of an entity in the data storage unit and the interface definition information of definition information; the model engine operating element for defining traffic class field class, business class table, the interface entity classes and classes, the service type element, field class, business class table, the interface entity classes and class constitute the basic model class, the base class is used to model the basic model of the object corresponding to the configuration memory; particularities: said model running engine assembly further comprising a support plug, said plug support assembly for defining widget adapter class; the model data storage unit further comprises a plug-in model 据存储单元和插件应用数据存储单元;所述插件模型数据存储单元用于存储插件模型的数据,所述插件模型的数据包括程序集定义信息、程序类定义信息和插件定义信息,所述插件应用数据存储单元用于存储插件应用定义信息;所述基本模型类具有一个插件适配器类对象;所述插件适配器类对象可管理多个插件,所述插件是插件实现类运行后的内存表现形式;也叫插件实现类对象;所述系统还包括插件运行库;所述插件运行库包括插件实现类程序集;所述插件实现类程序集包括至少一个插件实现类,每个插件实现类用于实现相应插件的接口规范和插件功能;所述基本模型类通过插件适配器类对象管理多个插件;所述模型设计工具还用于设计插件运行库及插件模型数据存储单元中的程序集定义信息、程序类定义信息、插件定义信息和插件应用数据存 Plug-in application data storage unit and a data storage unit; the plug-in model data storing means for storing data of the plug-in model, the data model comprises a plug assemblies definition information, definition information and the widget classes definition information, the plug-in application data storing means for storing the widget application definition information; the basic model type having a plug adapter class object; the plugin adapter class object can manage a plurality of inserts, said insert is a plug-in memory form of the implementation class of operation; or called plug-in implementation class object; the system further comprising a widget runtime; the insert comprises an insert implementation class runtime assembly; implementation class of the plug assembly comprising at least one insert implementation class, each for achieving a respective widget implementation class interface specification of the functional plug and plug; basic model of the classes managed by the widget class object a plurality of plug adapter; the model design tool design program for further widget runtime model and plug-in data storage unit definition information classes definition information, plug-ins and plug-in application data definition information stored 储单元中的插件应用定义信息。 The plug-in application storage unit definition information. [0008] 上述基本模型数据存储单元用于存储基本模型的数据,所述基本模型的数据包括界面定义信息和实体定义信息,所述界面定义信息包括控件定义信息和菜单定义信息,所述实体定义信息包括业务表定义信息和业务功能定义信息,所述业务表定义信息包括字段定义信息,所述字段定义信息包括业务元素定义信息;所述业务数据存储单元是存储业务数据的数据库或文件;所述模型运行引擎可实现以下功能:[0009] 1]从基本模型数据存储单元中读取实体定义信息和界面定义信息;根据实体类生成实体类对象,根据界面类生成与实体类对象相应的界面类对象;所述界面类对象的屏幕表现就是操作界面;所述界面类对象表现的数据就是实体类对象的数据;[0010] 2]根据用户操作将业务数据存储单元中的业务数据读取至实体类对象中供用户通过操作界面查看; [0008] The basic model of data storage means for storing data of the basic model, the data model comprises an interface definition of the basic information and the entity definition information, definition information including said interface control definition information and menu definitions information, the entity definition table definition information includes service information and service feature definition information, the service definition information table includes a field definition information, service definition information includes the field element definition information; the service data storage unit is a database storing service data or files; the said model running engine can achieve the following functions: [0009] 1] is read and the interface entity definition information defines the basic information in the model data storage unit; generating entity class object based on the entity class, the corresponding interface class generation interface according to the entity class object class object; said interface class object is the user interface screen performance; performance data of the interface class object data entity is a class object; [0010] 2] traffic data for the service data storage means to read according to a user operation entity object class for users to view via the user interface; [0011] 3]根据用户操作将实体类对象的数据保存到业务数据存储单元中;[0012] 4]根据已生成的实体类对象和界面类对象读取插件应用定义信息中所对应的插件定义信息,并根据该插件定义信息调用所对应的插件实现类生成插件实现类对象,并使插件实现类对象和实体类对象及操作界面关联以控制实体类对象和界面类对象。 [0011] 3] according to a user operation to save data to the service entity class object data storage means; [0012] 4] reads the widget widget defined in the application definition information corresponding to the class object in accordance with the entity and the generated interface class object information, and based on the plug-in implementation class definition information corresponding to the call generation widget class object implement plug, and plug and to achieve the object associated with the entity class object class and interface control entity to the class object and the interface class object. [0013] 第二种应用插件扩充模型驱动开发能力的系统包括模型数据存储单元、模型设计工具、业务数据存储单元、模型运行引擎,所述模型数据存储单元包括基本模型数据存储单元;所述模型设计工具用于设计业务数据存储单元中的业务数据结构以及基本模型数据存储单元中的实体定义信息和界面定义信息;所述模型运行引擎用于定义业务元素类、字段类、业务表类、实体类和界面类,所述业务元素类、字段类、业务表类、实体类和界面类构成基本模型类,所述基本模型类用于在内存中构造对应的基本模型对象;其特殊之处是:所述模型运行引擎还包括插件支持程序集,所述插件支持程序集用于定义插件接口、插件支持接口和插件适配器类;所述模型数据存储单元还包括插件模型数据存储单元和插件应用数据存储单元;所述插件模型数据存储单元用 [0013] A second application plug-in expansion capability of the model-driven development system comprises a model data storage unit, Model Design Tool, service data storage unit, operating engine model, the model data storage unit includes a basic model data storage unit; said model design tools designed for service data structure of service data storage unit and an interface entity definition information and model data base definition information storing unit; the model engine operating element for defining traffic class field class, business class tables, entities class and interface classes, the service type element, field class, business class table, the entity class and the class interface classes constitute the basic model, the basic model of the object class for the basic model structure corresponding to the memory; particularities is : the run-time engine model support assembly further comprises a plug, said plug support assembly for defining plugin interface, the interface supports the plug and plug adapter class; the model data storage unit further comprises a plug-in model data storage unit and plug-in application data a storage unit; the plug-in model data memory cell 于存储插件模型的数据,所述插件模型的数据包括程序集定义信息、程序类定义信息和插件定义信息,所述插件应用数据存储单元用于存储插件应用定义信息;所述插件接口中定义有一个基本模型类对象;实现插件接口的插件实现类必须实现此基本模型类对象;此基本模型类对象记录了实现此接口的插件实现类所服务的基本模型类对象;所述基本模型类可实现插件支持接口;插件支持接口中具有一个插件适配器类对象;所述插件适配器类具有一个基本模型类对象,此基本模型类对象记录了此适配器类所属的基本模型对象;所述插件适配器类具有一个可管理多个插件的插件接口列表,所述插件是插件实现类运行后的内存表现形式;所述插件接口列表中可以记录对应的插件;所述系统还包括插件运行库;所述插件运行库包括插件实现类程序集;所述插 The memory card in the data model, the data model comprises a plug assemblies definition information, definition information and the widget classes definition information, the plug-in application data storage unit for storing the widget application definition information; interface is defined with the insert the basic model of a class object; plugin interface to achieve the plug-in implementation of this class must implement the basic model of the object class; record this base class object model implementing this interface widget basic model class object classes and services; class implements the basic model the interface plug-in support; support plug having a plug adapter interface class object; said plug adapter having a base class an object class model, this basic model of the object class recorded a basic model of the object adapter class belongs; the type having a plug adapter can manage a plurality of plug interface list widget, the widget is a manifestation of the plug memory implementation class operation; the insert can be recorded in the interface list the corresponding plug; the system further comprising a widget runtime; the widget runtime implementation class includes an insert assembly; said plug 实现类程序集包括至少一个插件实现类;[0014] 所述系统还包括插件运行库;所述插件运行库包括插件实现类程序集和插件装载类程序集;所述插件实现类程序集包括至少一个插件实现类,每个插件实现类用于实现相应插件的接口规范和插件功能,所述插件装载类程序集包括至少一个插件装载类,插件装载类继承于插件适配器类,每个插件装载类可根据插件应用定义信息创建插件,并将创建的插件登记在插件接口列表中;所述基本模型类通过插件接口列表管理多个插件;所述模型设计工具还用于设计插件运行库及插件模型数据存储单元中的程序集定义信息、程序类定义信息、插件定义信息和插件应用数据存储单元中的插件应用定义信息。 Implementation class comprising at least one insert assembly implementation class; [0014] The system further comprises a widget runtime; the insert comprises an insert implement runtime class loader assembly and the plug assembly type; implementation class of the plug assembly comprising at least a plug-in implementation class, each widget implementation class implements the interface specifications and functions of the respective plug insert, the plug-type assembly comprising loading at least one insert loader class, the class inherits loaded plug adapter type plug, each plug-in loading type the plug can be created widget application definition information created and registered in the widget plug interface list; basic model of the classes managed by the interface listing a plurality of plug-ins; the model design tool for designing further widget runtime model and plug assembly definition information data storage unit, the program class definition information, definition information plug and plug-in application data storage unit plug-in application definition information. [0015] 上述基本模型数据存储单元用于存储基本模型的数据,所述基本模型的数据包括界面定义信息和实体定义信息,所述界面定义信息包括控件定义信息和菜单定义信息,所述实体定义信息包括业务表定义信息和业务功能定义信息,所述业务表定义信息包括字段定义信息,所述字段定义信息包括业务元素定义信息;所述业务数据存储单元是存储业务数据的数据库或文件;所述模型运行引擎可实现以下功能:[0016] 1]从基本模型数据存储单元中读取实体定义信息和界面定义信息;根据实体类生成实体类对象,根据界面类生成界面类对象;所述界面类对象的屏幕表现就是操作界面; 所述界面类对象表现的数据就是实体类对象的数据;[0017] 2]根据用户操作将业务数据存储单元中的业务数据读取至实体类对象中供用户通过操作界面查看;[0018] 3]根据用户操 [0015] The basic model of data storage means for storing data of the basic model, the data model comprises an interface definition of the basic information and the entity definition information, definition information including said interface control definition information and menu definitions information, the entity definition table definition information includes service information and service feature definition information, the service definition information table includes a field definition information, service definition information includes the field element definition information; the service data storage unit is a database storing service data or files; the said model running engine can achieve the following functions: [0016] 1] is read and the interface entity definition information defines the basic information in the model data storage unit; generating entity class object based on the entity class, the class generation interface according to the interface class object; said interface the class object is the user interface screen performance; performance data of the interface class object data entity is a class object; [0017] 2] traffic data for traffic data storage unit to read the entity class object for the user according to a user operation See via the user interface; [0018] 3] The user operation 将实体类对象的数据保存到业务数据存储单元中;[0019] 4]根据已生成的实体类对象和界面类对象读取插件应用定义信息中所对应的插件定义信息,并根据该插件定义信息调用所对应的插件实现类生成插件实现类对象,并使插件实现类对象和实体对象及界面类对象关联以控制实体对象和界面对象。 Save the data entity class object to a service data storage unit; [0019] 4] reads the definition information widget widget application definition information corresponding to the object classes and interfaces according to the entity class object is generated, and information based on the plug-in definition call corresponding to the plug-in implementation class object class generator plug-in implementation, and associated plug-in to achieve the object classes and objects and entity objects based interface to control the interface objects and entity objects. [0020] 一种应用插件扩充模型驱动开发能力的方法,包括以下步骤:[0021] (1)根据需求分析,模型设计工具建立模型运行引擎据以运行的实体定义信息和界面定义信息并存储在基本模型数据存储单元中;[0022] (2)模型设计工具根据所建立的相关信息定义相应的业务数据结构,并存储到业务数据存储单元中;[0023] (3)根据需求分析,模型设计工具建立插件模型的数据,并存储在插件模型数据存储单元中;[0024] (4)根据上述插件定义信息,模型设计工具编写相应的插件实现类代码,并编译生成插件实现类程序集;[0025] (5)使用模型设计工具定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中;[0026] (6)使用模型运行引擎运行基本模型和插件模型。 [0020] One application plug-in model-driven development capabilities to expand the method comprising the steps of: [0021] (1) According to needs analysis, model design tool to model data in order to run the engine running and the entity definition information and stored in the interface definition information the basic model of data storage unit; [0022] (2) model design tool according to relevant information defining established corresponding service data structure and stored in the service data storage unit; [0023] (3) according to the requirement analysis, model design tool to create a data plug-in model, and stored in the plug-in model data storage unit; [0024] (4) implementation class code based on the widget definition information, model design tool corresponding plug written and compiled plug-in implementation class assembly; [ 0025] (5) using the model and plug-in application design tool to define the basic definition information corresponding to the model, and stored in the plug-in application data storage unit; [0026] (6) using a model and running the model engine runs substantially plug-in model. [0027] 上述步骤1的具体步骤如下:[0028] 1. 1模型设计工具建立业务元素定义信息;[0029] 1. 2模型设计工具引用业务元素定义信息建立业务表定义信息;[0030] 1. 3模型设计工具引用业务表定义信息建立实体定义信息;[0031] 1. 4模型设计工具引用实体定义信息建立界面定义信息;[0032] 1. 5将上述信息存储到基本模型数据存储单元中;[0033] 所述步骤2的具体步骤如下:模型设计工具根据业务表定义信息定义业务数据结构,并生成业务数据存储单元中的业务数据结构;[0034] 步骤3的具体步骤如下:[0035] 3. 1模型设计工具建立程序集定义信息;[0036] 3. 2模型设计工具建立程序类定义信息,并指定其中的程序类所属的程序集;[0037] 3. 3模型设计工具建立插件定义信息,并指定其中实现插件功能的程序类;[0038] 3. 4将上述信息存储到插件模型数据存储单元中;[0039] 所述步 Specific steps [0027] Step 1 above is as follows: [0028] 1.1 Model Design Tool establishing service definition information element; [0029] 1.2 Model Design Tool reference element definition information to establish business service definition information table; [0030] 1 3. model design tool reference established business entity definition information table definition information; [0031] 1.4 model design tool reference create interface entity definition information defining information; [0032] 1.5 the above information is stored into the model data storage unit substantially ; specific steps [0033] step 2 of the following: model design tool information defines the service data structure defined according to the service table, and generates the service data structure of service data storage unit; [0034] step 3 specific steps are as follows: [0035 ] 3.1 model design tool set definition information creation process; [0036] 3.2 model design tool class definition information creation process, and wherein the specified assembly classes belong; [0037] 3.3 model design tool establish widget definition information, and to specify which classes implement plug-in functionality; [0038] 3.4 the above information is stored in the plug-in model data storage unit; [0039] the step 骤4的具体步骤如下:[0040] 4. 1根据插件定义信息,模型设计工具生成一个插件实现类代码框架;[0041] 4. 2模型设计工具根据插件实现类代码框架编写插件实现类代码;[0042] 4. 3模型设计工具根据插件实现类代码编译并生成插件实现类程序集;[0043] 步骤5的具体步骤如下:模型设计工具引用基本模型定义信息和插件模型定义信息,定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中;[0044] 步骤6的具体步骤如下:[0045] 6. 1创建基本模型对象及其子对象,模型运行引擎从基本模型数据存储单元中读取实体定义信息和界面定义信息,根据实体类生成实体类对象,根据界面类生成界面类对象;[0046] 6. 2创建基本模型类对象的插件,根据已生成的基本模型类对象,读取插件应用数据存储单元中相应的插件应用定义信息,根据插件应用定义 DETAILED follows. Step 4: [0040] 4.1 The plug generates a plugin definition information model implemented design tool framework class code; [0041] 4.2 Model Design Tool according to write plug-in implementation class code class code plug implement frame; [0042] 4.3 the model design tool widget implementation class code compiler implementation class and generates plug assembly; [0043] the steps are as follows 5: model design tool basic reference model definition information and the plug-in model definition information defines the basic widget application definition information corresponding to the model, and stored in the plug-in application data storage unit; [0044] step 6 specific steps are as follows: [0045] 6.1 creating a basic model object and its children, the basic data from the model run time engine model entity definition information and reading interface definition information storage unit, according to generate entity class object entity class, generating an interface type interface according to the class object; [0046] 6.2 basic model created widget class object, according to the basic model classes generated objects, reads the corresponding plug-in plug-in application definition information in the application data storage unit, plug-in application is defined according to 息读取插件模型数据存储单元中的程序集定义信息和程序类定义信息,根据程序集定义信息中的程序集名称调用对应程序集中的程序类创建插件实现类对象;并将所创建的插件实现类对象记录在基本模型类11对象的插件适配器类对象中;[0047] 6. 3建立基本模型类对象和插件实现类对象的关联,将插件实现类对象记录在插件适配器类对象后,调用基本模型对象及其子对象的插件启用方法建立插件实现类相应方法与基本模型类对象及其子对象事件的关联,此插件启用方法中设置插件适配器类对象中的各插件实现类对象的激活属性,此激活属性会在激活时建立基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联,此激活属性会在禁用时断开基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联;[0048] 6. 4运行过程中,插 Assembly widget information reading the model data storage unit definition information and program class definition information, call the corresponding assembly according to a program set definition information is a program name of the assembly to create a plug implement class object class; and the created widget to achieve the object class recorded in the class object plugin adapter 11 is substantially the object model classes; [0047] 6.3 to establish the basic model and the plug-in implementation class object associated object class, the class object implement plug-ins after recording adapter class object, call plug the base model of the object and its children how to enable plug-ins to associate the corresponding method implementation class with the basic model of the class object and its children's events, this method to enable the plug-in settings for each plug-in plug-in adapter class object implementation class object activation properties event, this activation will establish the basic model property class object and its children at the time of activation events associated with the plug-in implementation of the corresponding class method object, this property will be activated off the base model class object and its children in the disabled and associated with a respective plug-in implementation of the method of class object; operation process [0048] 6.4, the plug 实现类对象响应基本模型类对象及其子对象的事件并执行相应方法完成插件功能;[0049] 6. 5基本模型类对象及其子对象在销毁前先断开其事件与插件实现类对象相应方法的联系,并销毁插件实现类对象;[0050] 6. 6销毁基本模型类对象及其子对象;[0051] 第二种应用插件扩充模型驱动开发能力的方法,包括以下步骤:[0052] (1)根据需求分析,模型设计工具建立模型运行引擎据以运行的实体定义信息和界面定义信息并存储在基本模型数据存储单元中;[0053] (2)模型设计工具根据所建立的相关信息定义相应的业务数据结构,并存储到业务数据存储单元中;[0054] (3)根据需求分析,模型设计工具建立插件模型的数据,并存储在插件模型数据存储单元中;[0055] (4)根据上述插件定义信息,模型设计工具编写相应的插件实现类代码,并编译生成插件实现类程序集;[0056] Event class object implement in response to the basic model class object and its children and the respective method is completed widget functions; [0049] 6.5 Basic model class object and its children before their destruction disconnect event widget implementation class corresponding to the object Contact and destroy plugin implements the class object; [0050] 6.6 the destruction of the basic model of the class object and its children; [0051] the second method for model-driven development application plug-in expansion capability, comprising the steps of: [0052] (1) according to the requirement analysis, model design tool model running engine, according to the entity definition information and the interface definition information of running and stored in the basic model data storage unit; [0053] (2) model design tool information created according to define the corresponding service data structure and stored in the service data storage unit; [0054] (3) according to the requirement analysis, model design tool to create a data plug-in model, and stored in the plug-in model data storage unit; [0055] (4 ) is defined based on the widget information, the model design tool written in the corresponding plug-in implementation class code, and the compiler generates the implementation class plug assembly; [0056] (5)使用模型设计工具定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中,同时生成相应的插件装载类代码,并将其存储到程序类定义信息的程序类代码项中,并且把生成的插件装载类代码编译并合并到插件装载类程序集中;[0057] (6)使用模型运行引擎运行基本模型和插件模型。 (5) using the model and plug-in application design tool to define the basic definition information corresponding to the model, and stored in the plug-in application data storage means, while generating a corresponding class code plug loading, and information stored in the program class definition program class code key, and loading the plug-class code is compiled and incorporated into the widget class loader assembly; [0057] (6) using a model and running the model engine runs substantially plug-in model. [0058] 上述步骤1的具体步骤如下:[0059] 1. 1模型设计工具建立业务元素定义信息;[0060] 1. 2模型设计工具引用业务元素定义信息建立业务表定义信息;[0061] 1. 3模型设计工具引用业务表定义信息建立实体定义信息;[0062] 1. 4模型设计工具引用实体定义信息建立界面定义信息;[0063] 1. 5将上述信息存储到基本模型数据存储单元中;[0064] 所述步骤2的具体步骤如下:模型设计工具根据业务表定义信息定义业务数据结构,并生成业务数据存储单元中的业务数据结构;[0065] 所述步骤3的具体步骤如下:[0066] 3. 1模型设计工具建立程序集定义信息;[0067] 3. 2模型设计工具建立程序类定义信息,并指定其中的程序类所属的程序集;[0068] 3. 3模型设计工具建立插件定义信息,并指定其中实现插件功能的程序类;[0069] 3. 4将上述信息存储到插件模型数据存储单元中;[0070] 所 Specific steps [0058] Step 1 above is as follows: [0059] 1.1 Model Design Tool establishing service definition information element; [0060] 1.2 Model Design Tool reference element definition information to establish business service definition information table; [0061] 1 3. model design tool reference established business entity definition information table definition information; [0062] 1.4 model design tool reference create interface entity definition information defining information; [0063] 1.5 the above information is stored into the model data storage unit substantially ; [0064] step 2 the specific steps are as follows: model design tool information defines the service data structure defined according to the service table, and generates the service data structure of service data storage unit; [0065] step 3 of the specific steps are as follows: [0066] 3.1 model design tool set definition information creation process; [0067] 3.2 model design tool class definition information creation process, and wherein the specified assembly classes belong; [0068] 3.3 model design tool establishing plug-definition information, and to specify which classes implement plug-in functionality; [0069] 3.4 the above information is stored in the plug-in model data storage unit; [0070] the 述步骤4的具体步骤如下:[0071] 4. 1根据插件定义信息,模型设计工具生成一个插件实现类代码框架;[0072] 4. 2模型设计工具根据插件实现类代码框架编写插件实现类代码;[0073] 4. 3模型设计工具根据插件实现类代码编译并生成插件实现类程序集;[0074] 所述步骤5的具体步骤如下:模型设计工具引用基本模型定义信息和插件模型定义信息,定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中,同时生成相应的插件装载类代码,并将其存储到程序类定义信息的程序类代码项中,且把生成的插件装载类代码编译并合并到插件装载类程序集中;[0075] 所述步骤6的具体步骤如下:[0076] 6. 1创建基本模型类对象及其子对象,模型运行引擎从基本模型数据存储单元中读取实体定义信息和界面定义信息,根据实体类生成实体类对象,根据界面类 4 The steps are described as follows: [0071] 4.1 information model implemented design tool generates a plugin class code according to the frame widget defined above; [0072] 4.2 Model Design Tool according to write plug-in implementation class code class code plug implement frame ; [0073] 4.3 the model design tool widget implementation class code compiler implementation class and generates plug assembly; specific steps [0074] step 5 of the following: model design tool basic reference model definition information and the plug-in model definition information, defined plug-in application corresponding to the basic model of definition information stored in the plug-in application and data storage means, while generating a corresponding plug loading class code, and stores it into the program class definition program class code information item, and the resulting plug-class code is compiled and loaded into combined widget class loader assembly; specific steps [0075] step 6 of the following: [0076] 6.1 creating the basic model class object and its children, the basic data from the model run time engine model the storage unit reads the definition information entities and the interface definition information is generated according to the entity class object entity class, according to the interface type 生成界面类对象;[0077] 6. 2创建基本模型类对象的插件,根据已生成的基本模型类对象,读取插件应用数据存储单元中相应的插件应用定义信息,根据插件应用定义信息读取插件模型数据存储单元中的程序集定义信息和程序类定义信息,根据程序集定义信息中的程序集名称调用插件装载类程序集中的插件装载类相应装载方法创建插件实现类对象;并将插件实现类对象记录到基本模型类对象的插件适配器类对象中的插件接口列表中;[0078] 6. 3建立基本模型类对象和插件的关联,将插件登记在插件适配器类对象的插件接口列表后,调用基本模型类对象及其子对象的插件启用方法建立插件实现类对象相应方法与基本模型类对象及其子对象事件的关联,此插件启用方法中设置插件适配器类对象的插件接口列表中所记录的各插件实现类对象的激活属性,此激活 Generating an interface class object; [0077] 6.2 Basic model created widget class object, according to the basic model class object has been generated, the read definition information corresponding plug-in application plug-in application data storage unit, reads the definition information according to the plug-in application assembly plug-in model data storage unit definition information and program class definition information, according to the assembly the assembly name definition information call widget set widget load class program loading method for loading a respective class created widget class object implement; and plug after [0078] 6.3 basic model association class objects and plug-ins, the insert list of registered plug-ins interface adapter class object; implementation class to the object record list plugin interface plugin adapter base class object model in the class object , call the basic model of the class object and its children build plug-ins to enable plug-in implementation methods associated with the class object corresponding methods and basic model class object and its children's events, this plug-in settings plug-in adapter class object's method enabled plug-in interface list recording each plug implemented activation attribute class object, this activation 属性会在激活时建立基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联,此激活属性会在禁用时断开基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联;[0079] 6. 4运行中,插件实现类对象响应基本模型类对象及其子对象的事件并执行相应方法完成插件功能;[0080] 6. 5基本模型类对象销毁前先断开其事件与插件实现类对象相应方法的联系,并销毁插件实现类对象;[0081 ] 6. 6销毁基本模型类对象及其子对象。 Properties will establish the basic model class object and its children at the time of activation events associated with the plug-in implementation of the corresponding class method object, this property will be activated off the base model class object and its children in the event of a disabled plug-in implementation class subject associated with the respective process; [0079] 6.4 run, in response to the event widget class object implement the basic model of the class object and its children and respective method is performed to complete the plug-in function; [0080] 6.5 basic model class object is destroyed be disconnected from the front plug-in implementation contact with a corresponding event class object method, an object implementation class plug and destruction; [0081] 6.6 destruction basic model class object and its children. [0082] 本发明的优点:[0083] 1、系统扩展灵活。 [0082] The advantages of the invention: [0083] 1, system expansion flexibility. 本发明采用了“模型+插件”的组合方式来描述构建软件系统, 可实现实时跟踪和动态调整,无论是操作界面还是核心的业务功能,均可通过插件模型方便实现扩展并确保扩展能持续复用,并随着业务需求的改变而动态扩展系统。 The present invention uses a "model + plug-in" to describe the combination of building software systems, enabling real-time tracking and dynamic adjustment, both the user interface or core business functions, can easily extensible through plug-in models and to ensure that the expansion can continue to reuse with, and with the changing business needs of dynamic expansion of the system. 本发明使用插件模型扩展基本模型定义,解决了基本模型对软件系统描述能力不足的问题,使模型驱动开发方法也能设计出编码方法下的复杂业务功能。 The present invention uses a plug-in model extends the basic model definition to solve the basic model of the software system insufficient description ability, the model-driven development approach can design complex business functions in the encoding method. [0084] 2、系统维护方便。 Easy [0084] 2, system maintenance. 本发明独特的插件模型使每个插件都独立存在,更新软件系统就是替换插件,所以更新工作不会影响当前系统的使用。 Unique plug-in model of the invention are independent of each plug-in exists, update the software system is to replace the plug, the update will not affect the work of the current system. 本发明所构建的软件是基于基本模型和插件模型,模型透明、可读,对软件的维护就是对模型的维护,便于软件的维护和更新。 The present invention is constructed based on the basic model and the software plug-in model, model transparent, readable, software maintenance is the maintenance of the model, easy to maintain and update the software. [0085] 3、非编程开发,降低开发和调试中的技术要求。 [0085] 3, the non-programming development, reduce the development and debugging of the technical requirements. 本发明采用“模型+插件”的组合方式,以完全图形化的方式实现软件开发、测试、跟踪、维护活动,开发人员无需掌握复杂的13编程语言和框架,只需简单培训即可进行企业级专业软件开发。 The present invention is a "model + plug-in" combinations to fully graphical way to achieve software development, testing, tracking, maintenance activities, developers do not need to master complex programming languages ​​and frameworks of 13, just a simple training to enterprise-level professional software development. 本发明提供大量的经过反复验证的插件模型,可大幅减少开发调试工作量,业务逻辑调试工作量远远低于传统开发模式调试工作量。 The present invention provides a large number of through repeated verification plug-in model, can significantly reduce development and debugging effort, business logic debugging workload is much lower than traditional development mode debugging effort. 本发明使用插件模型扩展业务模型定义,增加了模型功能的复用,减少代码编写量。 The present invention uses extension plug-in model defines the business model, the model function increasing the reuse and reduce the amount of code written. [0086] 4、高可靠性。 [0086] 4, high reliability. 基于本发明开发的应用软件,构建于基本模型和经过反复验证的插件模型之上,很少甚至没有定制的编码,从而降低开发复杂度、减少出错可能性,能有效提高软件质量和可靠性。 Application software development based on the present invention, and the model built on the basic plug after repeated verification of the model, with little or no custom encoder, thereby reducing the development complexity, reduces the possibility of error, can effectively improve the quality and reliability of software. [0087] 5,减低复杂度。 [0087] 5, to reduce the complexity. 本发明依据对业务数据的高度概括和抽象,提供基本的业务模型和粒度大小适中的插件模型,具有细小粒度灵活方便的特征,可降低开发过程的复杂度。 According to the present invention and a high-level overview of the abstract service data, and providing basic business model plug-in model moderate grain size, fine particle size having flexible features, it can reduce the complexity of the development process. [0088] 6、可实现快速开发。 [0088] 6, can achieve rapid development. 本发明以模型为中心式的开发模式几乎屏蔽了所有的软件开发技术,可大幅度降低软件开发的技术要求,从而解决软件开发瓶颈;本发明特有的以模型构建的方式具有天生的工厂化生产特征,使得软件开发更便捷、有序,即使投入新人也可以立即带来开发效率的提升。 The present invention is a model-centric development model virtually blocked all software development technique, can significantly reduce the technical requirements of software development, so as to solve the bottleneck of software development; the invention-specific manner to model building inherently industrial production features, making software development more convenient and orderly, even if new investment can bring to enhance the development efficiency immediately. 本发明无需美工就能够自动生成风格统一的交互界面,且用户可以自定义应用界面布局。 The present invention can be automatically generated without graphic style uniform interface, and the user can customize the application interface layout. [0089] 7、降低成本,减少人力依赖。 [0089] 7, lower costs, reduced human dependency. 本发明特有的非编程开发模式,可有效降低对软件开发人员的技术要求,从而大量节省人力成本。 The present invention is non-specific programming development mode can effectively reduce the technical requirements for software developers to substantial savings in labor costs. 本发明基于“模型+插件”的构建式开发,可实现快速开发,从而缩短开发周期。 The present invention is based on the "Model + plug-in" style construction development, development can be achieved quickly, thus shortening the development period. 本发明“模型+插件”的构建式开发完全通过模型构建实现,所有业务处理、数据操作和逻辑过程都是透明可见且逻辑清晰的,不存在软件开发依赖于一两个核心技术人员的风险。 The present invention is "Model + plug-in" style construction built entirely by the development model implementation, all the service processing, data manipulation, and logical processes are transparent to visible and clear logic, software development risk depends on one or two core art does not exist. 本发明的低技术要求,可规避软件开发中的技术风险和人力风险,增加软件开发的可计划性,有效规避时间风险。 Low technical requirements of the present invention, can avoid the technical risk and human risk in software development, software development can increase planning, effective risk aversion time. [0090] 8、本发明可实现技术复用。 [0090] 8, the present invention can be implemented using multiplexing techniques. 本发明提出的模型继承方法解决了模型本身的复用能力,插件可复用,使业务模型和插件模型最大化利用率。 Model is derived from the method proposed by the invention solves the model itself multiplexing capability, reusable plug, plug-in model and the business model to maximize utilization. 本发明提出的模型包含关系使得在插件编写中更容易的访问和控制系统运行。 Model proposed in the present invention comprise the preparation of such plug-in relationship easier access and control system operation. 附图说明[0091] 图1为本发明系统的组成框架图;[0092] 图2为本发明系统中模型数据存储单元的结构示意图;[0093] 图3为本发明系统中插件运行库的第一种结构示意图;[0094] 图4为本发明系统的模型运行引擎和第一种结构的插件运行库中实现插件功能的核心类构成及关系图;[0095] 图5为基本模型对象和插件模型对象的第一种内存状态图;[0096] 图6为本发明系统中插件运行库的第二种结构示意图;[0097] 图7为本发明系统的模型运行引擎和第二种结构的插件运行库中实现插件功能的核心类构成及关系图;[0098] 图8为基本模型对象和插件模型对象的第二种内存状态图;[0099] 图9为本发明方法的模型运行流程示意图;[0100] 图10为基本模型和插件模型的内存对象的创建和销毁流程意示图;[0101] 图11为基本模型和插件模型定义及应用流程意示图;[0102] 图12为插件实现类 BRIEF DESCRIPTION OF FIG frame composition [0091] The present invention system of Figure 1; system schematic view of the model data storage unit [0092] FIG. 2 of the present invention; widget runtime system of the [0093] present invention. FIG. 3 a schematic view of one kind of structure; widget runtime [0094] the run time engine model system of the present invention in FIG. 4 and the first structure to realize plug-in function and configuration of the core class diagram; [0095] FIG. 5 is a basic model of the object and the plug a first memory state of FIG object model; widget runtime engine model [0097] FIG. 7 of the present invention system and the second configuration; [0096] FIG. 6 is a schematic structure of a second system of the present invention widget runtime core classes and relations configuration diagram of an implementation of runtime plug-in function; [0098] FIG. 8 is a state diagram of a basic model of a second memory objects and plug-in model objects; model operational flow [0099] FIG. 9 is a schematic view of the method of the present invention; [0100] FIG. 10 is to create and destroy processes intended illustrating memory object basic model and plug-in model; [0101] FIG. 11 is a basic model and plug-in model definitions and application processes intended diagram; [0102] FIG. 12 is a plug-in implementation class 程序集和插件装载类型程序集生成流程图;[0103] 图 13 为基本模型和插件模型的关系示意图[0104] 图 14 为基本模型之间的继承关系图;[0105] 图 15 为实体与界面关系图;[0106] 图 16 为模型设计工具截图;[0107] 图 17 为业务元素定义截图;[0108] 图 18 为业务表定义截图;[0109] 图 19 为实体定义截图;[0110] 图 20 为界面定义截图;[0111] 图 21 为界面菜单定义截图;[0112] 图 22 为继承了i^orm Base界面的运行图;[0113] 图 23 为程序集定义截图;[0114] 图 24 为程序类定义截图;[0115] 图 25 为插件定义截图;[0116] 图 26 为插件参数定义截图;[0117] 图 27 为插件应用定义截图;[0118] 图 28 为插件应用定义中插件选择截图。 Plug-type loader assemblies and assemblies to generate a flow chart; [0103] FIG. 13 is a plug-in model and the basic model of the relationship between the schematic [0104] FIG. 14 is a relationship diagram between the base inheritance model; [0105] FIG. 15 is the interface entity diagram; [0106] FIG. 16 is a model design tool theme; [0107] FIG. 17 is a service element defines the theme; [0108] FIG. 18 is a operational table defines the theme; [0109] FIG. 19 is an entity defined theme; [0110] FIG. 20 is the interface definition theme; [0111] FIG. 21 is a menu interface defined theme; [0112] FIG. 22 is inherited diagram i ^ orm Base interface; [0113] FIG. 23 is an assembly defined theme; [0114] FIG. 24 the program class definition theme; [0115] FIG. 25 is a plug-defined theme; [0116] FIG. 26 is a plug-in parameter defined theme; [0117] FIG. 27 is a plug-in application definition theme; [0118] FIG. 28 is a plug-in application definitions widget selected Screenshot. 具体实施方式[0119] 如图1所示,第一种应用插件扩充模型驱动开发能力的系统,包括模型数据存储单元、模型设计工具、业务数据存储单元、模型运行引擎以及插件运行库,模型数据存储单元包括基本模型数据存储单元;模型数据存储单元是用于存储模型数据的数据库或文件。 DETAILED DESCRIPTION [0119] As shown, the expansion capability model-driven development of a first application of a plug-in system, including the model data storage unit, Model Design Tool, service data storage unit, and the model engine operating widget runtime model data the basic model storage unit includes a data storage unit; the model data storage unit is a database or file storage data model. [0120] 模型设计工具用于设计业务数据存储单元中的业务数据结构以及基本模型数据存储单元中的实体定义信息和界面定义信息,还用于设计插件运行库及插件模型数据存储单元中的程序集定义信息、程序类定义信息、插件定义信息和插件应用数据存储单元中的插件应用定义信息。 [0120] Model Design Tool Design service traffic data for the data storage unit, and the interface entity definition information and the definition information of the basic model data storage unit, a program is also designed widget runtime model and plug-in data storage unit mapping information, the program type definition information, definition information plug and plug-in application data storage unit plug-in application definition information. [0121] 模型运行引擎用于定义业务元素类、字段类、业务表类、实体类和界面类,所业务元素类、字段类、业务表类、实体类和界面类构成基本模型类,所述基本模型类用于在内存中构造对应的基本模型对象;还包括插件支持程序集,插件支持程序集用于定义插件适配器类;基本模型类具有一个插件适配器类对象;插件适配器类对象可管理多个插件,插件是插件实现类运行后的内存表现形式;也叫插件实现类对象;模型运行引擎用于读取设计好的模型数据存储单元中的模型数据,根据读取的数据,调用基本模型类和插件实现类生成软件,根据用户操作并存取业务数据存储单元中的业务数据完成软件功能。 [0121] Model for the engine operating element defining business class, field class, business class table, the interface entity classes and classes, the service element class, field class, business class table, the entity class and the class interface classes constitute the basic model, the the basic model class for the basic model structure corresponding to the object in memory; support assembly further comprises a plug, the plug support assembly to define plug-type adapter; basic model type having a plug adapter class object; plugin adapter manages multiple class objects a plug-in, plug-in is the form of plug-in memory implementation class operation; also called plug-in implementation class object; run time engine model designed for reading the model data in the model data storage unit, the data is read, the basic call model class and class generation software plug-in implementation, according to a user operation and access service traffic data storage unit is completed the software functions. [0122] 插件运行库包括插件实现类程序集;插件实现类程序集包括至少一个插件实现类,每个插件实现类用于实现相应插件的接口规范和插件功能;基本模型类通过插件适配器类对象管理多个插件。 [0122] widget runtime implementation class comprises an insert assembly; implementation class plug assembly comprising at least one insert implementation class, each plug-in and plug the interface specification to realize the function for implementing the corresponding widget class; basic model class by class object plugin adapter manage multiple plug-ins. [0123] 如图2所示,模型数据存储单元还包括插件模型数据存储单元和插件应用数据存储单元;插件模型数据存储单元用于存储插件模型的数据,插件模型的数据包括程序集定义信息、程序类定义信息和插件定义信息,插件应用数据存储单元用于存储插件应用定义fn息ο[0124] 基本模型的数据包括界面定义信息和实体定义信息,界面定义信息包括控件定义信息和菜单定义信息,实体定义信息包括业务表定义信息和业务功能定义信息,业务表定义信息包括字段定义信息,字段定义信息包括业务元素定义信息;业务数据存储单元是存储业务数据的数据库或文件;[0125] 实体定义信息中包括业务表定义信息和功能定义信息。 [0123] As shown, the model data storage unit further comprises a plug-in model plug-in application data storage unit and a data storage unit 2; plug-in model data storage unit for storing a data model of the plug, the assembly comprising a plug-in model definition information, data and definition information classes definition information plug, plug-in application data storage unit for storing the widget application definition information fn ο [0124] the basic model includes an interface definition information and information entity definition, interface definition information including definition information and controls the menu definition information , entity definition information includes service table definition information and operational function definition information, the service table definition information includes a field definition information field definition information includes a service element definition information; service data storage unit is a storage service data in the database or file; [0125] entity table definition information including definition information and service definition information functions. 实体定义信息包括实体ID,实体名称等,实体ID是唯一标识一个实体的编号,实体名称是实体的命名,如图17所示。 Entity definition information includes an entity ID, an entity name, etc., the entity ID is a number uniquely identifies the entity, the entity name is a named entity, shown in Figure 17. 业务表定义信息中包括实体ID,业务表ID,主表ID,主子关系,增加,删除,修改,复制; 其中实体ID标识了该业务表所属的实体,业务表ID唯一标识了一个业务表,主子关系确定了业务表之间的引用关系,增加,删除,修改,复制标识了此业务表是否可以增加,删除,修改,复制表中的记录,如图18所示。 Service definition information table includes an entity ID, business table ID, main table ID, master relationship, add, delete, edit, copy; wherein the entity ID identifies the entity of the service table belongs, the business table ID that uniquely identifies a service table, determining the relationship between the master reference relationships between business tables, add, delete, edit, copy table identifies whether the service can add, delete, edit, copy records in the table, as shown in FIG. 业务表ID指定的业务表是在表定义信息中,表定义信息包括业务表ID,业务表名称,原数据库名称,原表名,所属分类,其中业务表ID唯一标识了一个业务表定义信息,业务表名称是业务表在模型中的命名,原数据库名是此表在业务数据存储单元中的数据库名称,原表名指定了此业务表对应的数据库中的存储表名,所属分类指定了此表所属的子系统,如表5所示。 Business table ID specified business table is the table definition information, the table definition information including business table ID, business table name, the original name of the database, the original table name, category, in which the business table ID uniquely identifies a business table definition information, service table name service table named in the model, the original name of the database is a table name of the database in the service data storage unit, the original table specifies a storage table of this service corresponding to the table in the database, category specifies this subsystem table belongs, as shown in table 5. 业务表定义还包括业务表的字段定义,字段定义信息包括业务表ID,字段ID,字段名称,业务元素,其中业务表ID指定该字段所属的业务表,字段ID唯一标识了一个字段的定义信息,字段名称对应于存储数据库中对应业务表中的字段,业务元素指定了该字段的数据类型,如表6所示。 Service table definition further comprises a field definition business table, field definition information includes service table ID, field ID, field name, service elements, wherein the business table ID specified service table the field belongs, field ID uniquely identifies definition information is a field , corresponding to the field name is stored in the corresponding service database table field, a service element specifies the data type of the field, as shown in table 6. 功能定义信息包括实体ID,功能ID,功能名称,实体ID标识此功能所属的实体,功能ID唯一标识一个功能定义,功能名称是功能命名,如表9所示。 Function definition information includes the entity ID, the function ID, name of function, the entity ID identifies the entity belongs to this function, a function ID uniquely identifies a function definition, function names are named function, as shown in Table 9. 实体定义信息定义了业务表的结构和业务表的关系以及实体功能。 Entity definition information defines the relationship between structure and function as well as business entity table business table. [0126] 界面定义信息包括控件定义信息,菜单定义信息。 [0126] interface definition information including definition information controls, menu definition information. 界面定义信息定义了软件运行界面的样式,界面定义信息中包括界面ID,界面名称,界面所表现的实体,界面ID是唯一标识一个界面编号,实体是界面表现的数据来源,如表10所示。 Interface definition software running style information defines the interface, the interface entity comprises an interface definition information ID, the name of the interface, the performance of the interface, the interface ID is a unique identification number interface, the interface entity is the source of the performance data, as shown in Table 10 .控件和菜单是构成界面的主要元素,控件定义信息中定义了控件的类型,表现的实体中的业务表和字段,如表11所示。菜单定义信息中定义了操作界面的菜单和工具条项目,如表12所示。 [0127] 模型运行引擎可实现以下功能:[0128] 1]从基本模型数据存储单元中读取实体定义信息和界面定义信息;根据实体类生成实体类对象,根据界面类生成与实体类对象相应的界面类对象;所述界面类对象的屏幕表现就是操作界面;所述界面类对象表现的数据就是实体类对象的数据;[0129] 2]根据用户操作将业务数据存储单元中的业务数据读取至实体类对象中供用户通过操作界面查看;[0130] 3]根据用户操作将实体类对象的数据保存到业务数据存储单元中;[0131] 4]根据已生成的实体类对象和界面类对象读取插件应用定义信息中所对应的插件定义信息,并根据该插件定义信息调用所对应的插件实现类生成插件实现类对象,并使插件实现类对象和实体类对象及操作界面关联以控制实体类对象和界面类对象。 [0132] 本发明的第二种结构的系统,包括模型数据存储单元、模型设计工具、业务数据存储单元、模型运行引擎,插件运行库,模型数据存储单元包括基本模型数据存储单元;模型设计工具用于设计业务数据存储单元中的业务数据结构以及基本模型数据存储单元中的实体定义信息和界面定义信息;模型运行引擎用于定义业务元素类、字段类、业务表类、实体类和界面类,所述业务元素类、字段类、业务表类、实体类和界面类构成基本模型类,所述基本模型类用于在内存中构造对应的基本模型对象;[0133] 模型运行引擎还包括插件支持程序集,插件支持程序集用于定义插件接口、插件支持接口和插件适配器类;模型数据存储单元还包括插件模型数据存储单元和插件应用数据存储单元;插件模型数据存储单元用于存储插件模型的数据,插件模型的数据包 程序集定义信息、程序类定义信息和插件定义信息,所述插件应用数据存储单元用于存储插件应用定义信息;[0134] 插件接口中定义有一个基本模型类对象;实现插件接口的插件实现类必须实现此基本模型类对象;此基本模型类对象记录了实现此接口的插件实现类所服务的基本模型类对象;[0135] 基本模型类可实现插件支持接口;插件支持接口中具有一个插件适配器类对象; 插件适配器类具有一个基本模型类对象,此基本模型类对象记录了此适配器类所属的基本模型对象;插件适配器类具有一个可管理多个插件的插件接口列表,插件是插件实现类运行后的内存表现形式;插件接口列表中可以记录对应的插件;[0136] 系统还包括插件运行库;插件运行库包括插件实现类程序集和插件装载类程序集;插件实现类程序集包括至少一个插件实现类,每个插件 现类用于实现相应插件的接口规范和插件功能,插件装载类程序集包括至少一个插件装载类,插件装载类继承于插件适配器类,每个插件装载类可根据插件应用定义信息创建插件,并将创建的插件登记在插件接口列表中;基本模型类通过插件接口列表管理多个插件;模型设计工具还用于设计插件运行库及插件模型数据存储单元中的程序集定义信息、程序类定义信息、插件定义信息和插件应用数据存储单元中的插件应用定义信息。基本模型数据存储单元用于存储基本模型的数据,基本模型的数据包括界面定义信息和实体定义信息,界面定义信息包括控件定义信息和菜单定义信息,实体定义信息包括业务表定义信息和业务功能定义信息,业务表定义信息包括字段定义信息,字段定义信息包括业务元素定义信息;业务数据存储单元是存储业务数据的数据库或文件;[0137] 本系统的模型运行引擎可实现的功能与第一种系统模型运行引擎相同。 [0138] 插件模型数据存储单元:插件模型数据存储单元用于存储程序集定义信息,程序类定义信息,插件定义信息。 (插件模型是用于扩展基本模型描述能力的插件定义信息。 插件是一种可以带参数的进一步描述基本模型对象的可复用的软件组件,基本模型对象就是一个具体的基本模型;所述插件模型由程序集信息定义、程序类信息定义和插件信息定义组成;)其中程序集定义信息包括程序集ID,程序集名称,程序集类型,是否为动态,程序集ID唯一标识一个程序集定义信息,程序集名称标识程序集文件名称,程序集类型标识程序集运行的地点。是否为动态标识程序集是否可以被模型设计工具动态生成,程序集类型分为公用插件,客户端插件,服务端插件,公用插件是服务端和客户端都可以运行的插件, 服务端插件只能运行在服务端,客户端插件只能运行在客户端,程序集定义信息如表13所示。其中程序类定义信息包括程序类ID,程序类名称,程序类类型,程序集ID,程序类代码, 程序类ID唯一标识一个程序类定义信息,程序类名称标识程序类在程序集文件中定义的名称,程序集ID标识了此程序类所属程序集,程序类类型定义了程序类是用于哪种插件类型,程序类代码用于存储此程序类的实现代码,程序类定义信息如表14所示。其中插件定义信息包括插件ID,插件名称,插件主体对象类型,客户端实现类ID,服务端实现类ID,插件ID唯一标识一个插件定义信息,插件名称是一个有意义的插件命名,插件主体对象类型标识了此插件可以应用的基本模型对象类型,客户端实现类ID标识此插件的客户端实现类,服务端实现类ID标识该插件的服务端实现类,插件定义信息如表15所示。插件定义信息中还包括插件参数定义信息,插件参数定义信息包括插件ID,参数名称,参数类型,参数默认值,参数说明,插件ID标识了该参数所属的插件,参数名称标识了插件ID对应插件的参数名称,参数类型是参数的数据类型,参数说明是对该插件参数的使用说明,如表16所示。 [0139] 插件应用数据存储单元:插件应用数据存储单元用于存储插件的应用定义信息。插件应用定义信息包括插件应用ID,模型对象ID,模型对象类型,插件ID,是否启用,插件应用ID唯一标识了一个插件在一个基本模型对象上的扩展定义信息,模型对象ID标识了该应用的基本模型对象,模型对象类型标识该模型对象的类型,插件ID标识了应用在该模型对象上的插件。是否启用标识了此插件应用是否生效,生效时则模型引擎在执行模型时会自动装载该插件,不启用时则不装载该插件。 [0140] 模型设计工具:模型设计工具用于设计基本模型数据存储单元的基本模型定义信息,设计插件模型数据存储单元中的插件模型定义信息、设计插件应用数据存储单元中的插件应用定义信息,设计插件运行库,设计业务数据存储单元中的业务数据结构,主界面如图16所示,模型设计工具包括业务元素定义信息设计工具(图17),业务表定义信息设计工具(图18),实体定义信息设计工具(图19),界面定义信息设计工具(图20、21),程序集定义信息设计工具(图23),程序类定义信息设计工具(图,插件定义信息设计工具(图25、26),插件应用定义信息设计工具(图27、28)。[0141] 业务数据存储单元:业务数据存储单元是用于存储业务数据的文件或数据库,业务数据的存储结构与基本模型数据存储单元中的业务表定义信息一致。[0142] 模型运行引擎:模型运 引擎包括基本模型类程序集和插件支持程序集,所述基本模型类程序集中定义了业务元素类、业务表类、实体类和界面类;插件支持程序集中定义了插件接口、插件支持接口、插件适配器类。如图4所示。模型运行引擎是用于读取模型数据存储单元中的模型信息并调用相关的基本模型类和插件实现类从而动态生成模型内存对象和操作界面,同时根据用户操作存取业务数据存储单元中的业务数据。[0143] 插件接口IPlugin提供一个规范来约束插件实现类必须实现的属性和方法,接口成员有(1)基本模型类对象owner属性记录了一个插件依附的主体对象(基本模型对象), (2)布尔类型对象Active属性用于标记插件启用状态,状态为false时断开主体对象事件和插件实现类中处理方法的关联。状态为true时建立主体对象事件和插件实现类中处理方法的关联。插件实现类 须继承此接口,实现此接口的属性和方法来完成插件功能。[0144] 插件适配器类PluginSocket维护了一个插件接口列表属性list和插件装载方法load, (1) list属性是一个IPlugin结构的列表对象,此列表用来管理一系列附加在基本模型对象上的插件信息,Load方法是一个虚方法,继承与此插件适配器类的插件装载类在此方法中将定义在此基本模型对象上的插件依次登记在插件接口列表中。插件装载类是由模型设计工具根据插件定义信息和应用定义信息自动生成的。模型运行引擎加载完基本模型对象后调用该对象的插件装载类的load方法把定义在此基本模型对象的插件实现类创建起来并登记在插件适配器的插件接口列表中。 [0145] 插件支持接口ISupportPlugin维护了支持基本模型对象管理其插件的一系列属性和方法,(I)Plugins属性,此属性是插件适配器类PluginSocke类型,此结构用于管理所有附着在此基本模型对象上的插件实现类对象信息,^CreatePlugins方法,在基本模型对象创建后调用该方法将定义在此基本模型对象上的插件创建起来。 (3)ACtivatePlugins 方法按顺序启用该基本模型对象上附加的所有插件,插件建立基本模型类对象事件与插件处理方法的关联。 G^eactivatePlugins方法,此方法按与启用插件相反的顺序断开基本模型对象所附着插件的处理方法与基本模型类对象事件的关联。为了使基本模型类对象能动态的应用插件扩展功能,基本模型类必须实现此接口。 [0146] 基本模型类包括业务元素类,字段类,业务表类,实体类,界面类,各种控件类,菜单类。所有基本模型类定义中都实现了插件支持接口ISupportPlugin,使基本模型可以用插件扩展其功能。如下代码所示:其中的TModel可以是业务表类型TTable,实体类型TEntity 等基本模型类。 public class TModel :ISupportPlugin<TModel>[0147] { //插件适配器[0148] PluginSocket<TModel>Plugins[0149] {[0150] get {return Plugins ;}[0151] }[0152] void CreatePlugins ()[0153] {[0154] //此方法将模型定义中已定义的插件创建起来。 [0155] //可以调用插件的装载类型的load方法来实现此功能[0156] }[0157] void ActivatePluginsO[0158] {[0159] //此方法按顺序启用本主体挂接的所有插件,插件自动建立模[0160] 型主体事件与插件处理方法的关联。 [0161] //可以将各插件实现类型的active值设置为true来实现。 [0162] }[0163] void DeactivatePlugins ()[0164] {[0165] //此方法按相反顺序断开本主体所挂插件的处理方法与主体事件[0166] 的关联。 [0167] //可以将各插件实现类型的active值设置为false来实现。 [0168] }[0169] }[0170] 插件运行库:插件运行库包括插件实现类程序集和插件装载类程序集,如图6所示,插件实现类程序集包含了用于实现插件功能的插件实现类,插件装载类程序集包含了用于装载插件的插件装载类,插件装载类用于将插件实现类对象装载到插件适配器的插件接口列表中。 [0171] 插件实现类是由用户编写的实现插件功能的代码。此类必须实现IPlugin接口, 接口中的属性owner为此插件实现的主体对象,属性Active的set方法中,如果active为true则设置主体对象事件与实现类处理方法的关联,如为false则设置主体对象事件与实现类处理方法的断开。插件实现类的代码编译后生成的程序集会合并到插件运行库中的插件实现类程序集中。插件实现类代码框架如下所示:0172]0173]0174]0175]0176]0177]0178]0179]0180] 0181] 0182]插件0183]0184]0185]0186]0187]0188]0189]0190]0191]0192]0193]0194]0195]0196]0197]0198]0199]0200] 0201] 0202]0203]0204]public class Model_Plugin :IPlugin<TModel>主体对象(也是基本模型对象)private TModel_0wner -J, TModel Owner{get {return—Owner ;}private bool—Active ;//激活状态标记,在用模型设计工具设置参数时将此状态置为false断开主体对象事件与插件相应方法的关联。 Il当参数设置完毕后模型设计工具会将此状态置为true,挂接主体对象事件与//相应方法的关联。 public bool Activeget{return—Active ;set{if (value)Il挂接模型主体对象事件与插件对应方法的关联this.Owner. Event+ = Event ;else {断开模型主体对象事件与插件对应方法的关联tthis. Owner. Event- = Eventthis.Active = value[0205] [PluginParam]//标记此参数为可被模型工具调整的参数[0206] public string Paraml;//开发人员可调插件的参数。 [0207] private string—Paraml;//插件内部属性。 [0208] //插件构造方法,插件装载类在创建此插件实现类的对象时会自动调用此构造方法。 [0209] //此构造方法传递主体对象给插件实现类。 [021 O, publ ic Model—Plugin(/Model owner)[021]] {[021 2] thiS. Owner—owner:[021 3] //构造方法处理必要属性的初始化[0214] }[021 5] publ ic void Event(object sender,EventArgs e)[021 6] {[021 7] //主体对象事件响应处理代码[021 8] //在此处实现插件功能代码[021 9] }[0220] public void Dispose 0//处理资源的释放[0221] {[0222] thiS. Active—false:[0223] //处理其他资源释放[0224] }[0225] }[0226] 插件装载类PluginLoader是模型设计工具根据插件应用设置信息自动生成的一个类,此类继承与插件适配器类,实现了插件适配器类中的虚方法load方法,在此方法中将所属该主体对象的所有插件都创建起来并装载到其插件接口列表list中。此类代码在内存中生成并编译后合并到插件运行库中的插件装载类程序集中。生成的代码框架如下所刀亏:[0227] //插件装载类代码示例(此部分代码由模型设计工具自动生成)[0228] publ ic class PluginL。 ader:PluginS。 Cket<TM。 del>[0229] {[0230] publ ic override void Load(/Model sender)[0231] {[0232] //将挂在此基本模型对象上的插件也依次加入列表。 [0233] Model—Pluginl Pl—new Model—Pluginl(sender);[0234] P. Paraml一''ParamValue” :[0235] thiS.List.Add(P1);[0236] Model—Pluginl p2一new Model—Plugin2(sender);[0237] p2.Paraml一''ParamValue” :[0238] thiS. List. Add(p2);[0239] }[0240] }[0241] 本发明原理:本发明的插件不同于一般意义上的插件,是一种可以带参数的进一步描述基本模型对象的可复用的软件组件,插件必须附着在基本模型对象上,也称为插件的主体对象,让主体对象满足一定的业务规则或者让主体对象实现一定的功能。插件可以自动响应主体对象的消息并自动完成相关操作。插件模型就是一种可以解决业务领域问题的插件定义。同一个基本模型对象可以使用多个插件模型扩充其描述能力,并用插件完成其功能。同一个插件也可以通过调整参数对不同基本模型对象扩充功能。 [0242] 在本发明如上所述生成应用软件原理和方法下,结合附图进一步说明本发明的系统构成和实施方式。使用本发明的方法进行软件开发的步骤如下:[0243] 步骤1 :根据需求分析,模型设计工具建立模型运行引擎据以运行的实体定义信息和界面定义信息并存储在基本模型数据存储单元中;[0244] 步骤1的具体步骤如下:[0245] 1. 1模型设计工具建立业务元素定义信息;[0246] 1. 2模型设计工具引用业务元素定义信息建立业务表定义信息;[0247] 1. 3模型设计工具引用业务表定义信息建立实体定义信息;[0248] 1. 4模型设计工具引用实体定义信息建立界面定义信息;[0249] 1. 5将上述信息存储到基本模型数据存储单元中;[0250] 业务元素定义:业务元素是对字段的数据类型进行业务领域概念的定义,如销售系统中的数量,金额,折扣等概念,只有在销售系统中才有特殊的意义,财务系统中的“借方”,“贷方”等在财务系统中才有意义,而本发明设计一套软件都是针对某业务领域的软件系统,在系统中的各个模块中会大量出现概念相同的字段类型定义。如在销售系统中的销售出库制单业务中和销售订货制单业务中都会用到价格字段,虽然在二个业务中一个是销售价格,一个是订货价格,但价格在计算中都会使用相同的数据类型进行,如指定为计算机可识别的money或decimal等数据类型,但此种类型是面向计算机的,一般只有编程人员才能理解他的实际意思,而模型驱动开发是面向业务的开发方法,不懂编程的设计人员或业务人员也可以设计系统,让他们能正确设计系统,必须使用一种方法指定计算机数据类型和业务概念相对应的影射关系,业务元素就是为了完成此种功能的,方法为:使用模型设计工具建立业务元素定义信息,如将业务领域内的概念“数量”定义为业务元素名称为“数量”,实际类型为int或float的计算机系统可识别的类型,价格定义为业务元素名称为“价格”,实际类型为“money”或“decimal”的计算机系统可识别的类型,这样在设计业务表中构成的字段时就可以直接使用业务元素来定义字段的类型了,业务元素定义步骤为:(1)找到模型设计工具中的业务元素维护工具(见图16中的“业务元素定义”),并点击打开业务元素维护界面,(2)在业务元素维护界面中点击“新增”打开新建业务元素界面(见图17), (3)输入业务元素名称,类型等信息,(4)保存并完成业务元素定义。如表4是已完成的部分业务元素定义信息。 [0251] 业务表定义:业务表是构成业务系统存储信息的最基本的数据结构,是一个二维的关系表。每一列用于表示一个业务对象的构成属性,在计算机系统中也叫字段或域,每一行用于表示一个对象数据,如表1、2、3所示就是构成一个简单销售订单系统的三个表(销售订单主表,销售订单明细表,和一个客户信息表),业务表定义就是定义业务表的属性和组成这个表的字段属性。字段属性中的业务元素项可以指定为已定义的业务元素。指定后此字段就使用业务元素的类型来使用和存储此字段数据,也会自动处理在业务元素上定义的所有业务规则。业务表定义步骤为:(1)找到模型设计工具中业务表维护项(参见图16 中的“表定义”),点击并打开业务表维护界面(2)在业务表维护界面中点击“新增”打开新建业务表界面(参见图18),(3)输入业务表名称,所属分类,原数据库名,原表名等信息, (5)添加此表的字段信息(字段名称,业务元素,长度等信息),(6)保存并完成业务表定义。如表5是对业务表1、2、3进行定义的信息,表6是对业务表1、2、3中的字段定义信息。 [0252] 表1、业务表-客户信息表[0253]

Figure CN102033743AD00231

[0254] 表2、业务表-销售订单主表[0255] [0254] Table 2, Table business - Sales Order main table [0255]

Figure CN102033743AD00232

[0256] 表3、业务表-销售订单产品表[0257] [0256] Table 3, Table business - Sales Order Products Table [0257]

Figure CN102033743AD00233

[0258] 表4、基本模型-业务元素定义信息[0259] [0258] Table 4, the basic model - service definition information element [0259]

Figure CN102033743AD00234

1001 Quantity 数量 decimal 1002 Price 价格 Money 1003 Money 金额 Money 1004 Date 日期 Datetime 1005 SeqNo 序号 int 1001 Quantity number of decimal 1002 Price Price Money 1003 Money Money 1004 Date Amount Date Datetime 1005 SeqNo number int

Figure CN102033743AD00241

[0260] 表5、基本模型定义——业务表定义信息[0261] [0260] Table 5, the basic model definition - service definition information table [0261]

Figure CN102033743AD00242

[0262][0263] 表6、基本模型-业务表字段定义信息[0264] [0262] [0263] Table 6, the basic model - traffic field definition information table [0264]

Figure CN102033743AD00243
Figure CN102033743AD00251

[0265] 实体定义信息,本发明中的实体是指一个可操作的、意义完整的业务对象,如图2 所示,一个实体是由若干业务表和若干操作实体的功能组成,对实体定义就是定义这个实体所组成的业务表、业务表之间的引用关系和实体的功能。 [0265] entity definition information, in the present invention refers to a entity operable, meaning complete business object, shown in Figure 2, a business entity is a function of several tables and a plurality of operation entities composition entity is defined the definition of this entity composed of business tables, references and entities functional relationship between the business table. 实体功能就是操作此实体数据的功能的集合。 A set of functional entities is the operating function of the entity of data. 基本模型的实体中已预定义了业务表的增删改查功能定义信息,模型运行库已包含了业务表的增删改查功能执行代码,设计人员可以通过模型设计工具启用或禁用这些功能,复杂实体功能由插件实现。 Solid basic model has predefined CRUD operations table function definition information, the model runtime already contains CRUD operations table functions execute code, designers can enable or disable these features by model design tools, complex entity function is performed by plug-ins. 实体定义步骤为:(1)在模型设计工具中找到实体维护项(参见图16中的“实体定义”),并点击打开实现维护界面(2)在实现维护界面中点击“新增”打开新建实体界面(参见图19),(3)输入实体名称,实体类型,实体分类等信息,(4) 定位到业务表定义,点击添加,依次添加此实体的业务表并设计之间的关系,(¾定位到业务功能定义,添加此实体的功能定义(6)保存并完成实体定义。如表7为实体定义信息,表8为实体中的业务表定义,表9为实体中的功能定义。[0266] 表7、基本模型-实体定义信息[0267] Entity is defined steps: (1) find an entity in the model design tool maintenance items ( "Entity Definitions" see Figure 16) and click Open implement maintenance interface (2) Click "Add" in the realization of the maintenance interface to open the New an interface entity (see FIG. 19), (3) the input entity name, entity type, entity class information, (4) is positioned to define the service table, click Add, and then add this service entity table and the relationship between the design, ( ¾ targeting business function definitions, add functionality defined for this entity (6) to save and complete entity definition. as shown in table 7 for the entity definition information table 8 for the service table definition entity, table 9 for the function definition entity. [ 0266] table 7, the basic model - the entity definition information [0267]

Figure CN102033743AD00252
Figure CN102033743AD00253
Figure CN102033743AD00254
Figure CN102033743AD00261

[0272] 界面定义信息,界面是用户操作实体对象的用户接口,如图2所示界面由若干界面控件组成。 [0272] interface definition information, the user interface is a user interface operating entity object, as shown in FIG. 2 by a plurality of interface control interface components. 界面定义就是定义用户操作实体的软件界面属性和界面所组成的控件。 Interface definition is the definition of user interface attributes and operations control software interface entity composed. 一个界面唯一表现一个实体,但一个实体可以由若干用户界面表现。 A single interface performance of an entity, but an entity can be expressed by a number of user interface. 如图12所示,如需要实现特殊界面效果也可以在界面层定义插件来实现。 12, the interface such as the need to achieve special effects may also be achieved in the interface layer defines plug. 业务界面定义步骤为:(1)在模型设计工具中找到界面维护项(参见图16中的“界面定义”),并点击打开界面维护界面(2)在界面维护界面中点击“新增”打开新建界面的界面(参见图20),C3)输入界面名称,选择界面类型,选择界面所属分类,选择界面表现的实体等信息,(4)定义界面的控件信息,界面控件信息可以自动生成,(¾定义界面的菜单和工具栏信息,(6)保存并完成界面定义,如表10是界面定义信息,表11为界面中的控件定义信息,界面控件定义信息,表12为界面中的菜单定义信息。[0273] 表10、基本模型-界面定义信息[0274] Business interface defined steps: (1) found in the model interface design tool maintenance items ( "Interface Definition" see Figure 16) and click Open interface and maintenance interface (2) Click "Add" to open the interface and maintenance interface interface new interface (see FIG. 20), C3) an input interface name, select the type of interface, selection interface Categorize, selection interface performance information entity the like, the control information (4) definition of the interface, the interface control information may be automatically generated, ( menus and toolbars information ¾ defined interface (6) to save and complete interface definition, as shown in table 10 is the interface definition information table 11 defined for the control information interface, the interface control definition information table 12 menu definition interface is information [0273] table 10, the basic model - interface Definition information [0274]

Figure CN102033743AD00262

[0275] 表11、基本模型-界面控件定义信息[0276] [0275] Table 11, the basic model - control interface definition information [0276]

Figure CN102033743AD00263

[0277][0278] 表12、基本模型-界面菜单定义信息[0279] [0277] [0278] Table 12, the basic model - interface menu definition information [0279]

Figure CN102033743AD00271

[0280] 步骤2 :模型设计工具根据所建立的相关信息定义相应的业务数据结构,并存储到业务数据存储单元中;[0281] 步骤2的具体步骤如下:模型设计工具根据业务表定义信息定义业务数据结构, 并生成业务数据存储单元中的业务数据结构;[0282] 步骤3 :根据需求分析,模型设计工具建立插件模型的数据,并存储在插件模型数据存储单元中;[0283] 步骤3的具体步骤如下:[0284] 3. 1模型设计工具建立程序集定义信息;[0285] 3. 2模型设计工具建立程序类定义信息,并指定其中的程序类所属的程序集;[0286] 3. 3模型设计工具建立插件定义信息,指定其中实现插件功能的程序类;[0287] 3. 4将上述信息存储到插件模型数据存储单元中;[0288] 步骤4 :根据上述插件定义信息,模型设计工具编写相应的插件实现类代码,并编译生成插件实现类程序集;[0289] 步骤4的具体 [0280] Step 2: Model Design Tool according to relevant information defining established corresponding service data structure and stored in the service data storage unit; [0281] Step specific Step 2 as follows: Model Design Tool information defined according to the service table definition service data structure, and generating traffic data structures service data storage unit; [0282] step 3: according to the requirement analysis, model design tool to create a data plug-in model, and stored in the plug-in model data storage unit; [0283] step 3 the steps are as follows: [0284] 3.1 model design tool set definition information creation process; [0285] 3.2 model design tool class definition information creation process, and wherein the specified assembly classes belong; [0286] 3 3. model design tool plug established definition information which specifies the program type plug-in functionality implemented; [0287] 3.4 the above information is stored in the plug-in model data storage unit; [0288] step 4: definition information based on the plug-in model design tools preparation of the corresponding plug-in implementation class code, and the compiler generates the implementation class plug assembly; [0289] step 4 of the specific 骤如下:[0290] 4. 1根据插件定义信息,模型设计工具生成一个插件实现类代码框架;[0291] 4. 2模型设计工具根据插件实现类代码框架编写插件实现类代码;[0292] 4. 3模型设计工具根据插件实现类代码编译并生成插件实现类程序集;[0293] 步骤5 :使用模型设计工具定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中;[0294] 步骤5的具体步骤如下:[0295] 模型设计工具引用基本模型定义信息和插件模型定义信息,定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中;[0296] 步骤6 :使用模型运行引擎运行基本模型和插件模型。 Procedure is as follows: [0290] 4.1 implement frame widget class code definition information, generates a Model Design Tool according plug; [0291] 4.2 Model Design Tool according to write plug-in implementation class code class code plug implement frame; [0292] 4 3. model design tool insert according implementation class code compilation and generate widget implementation class assembly; [0293] step 5: using the model design tool defines the basic model corresponding plug-in application definition information, and storing the plug-in application data storage unit; specific steps [0294] step 5 is as follows: [0295] model design tool reference basic model definition information and the plug-in model definition information, widget application definition information defines the basic model corresponding to, and stored in the plug-in application data storage unit; [0296 ] step 6: use the model to run the engine running basic model and plug-in model. [0297] 步骤6的具体步骤如下:如图10所示:[0298] 6. 1创建基本模型对象及其子对象,模型运行引擎从基本模型数据存储单元中读取实体定义信息和界面定义信息,根据实体类生成实体类对象,根据界面类生成界面类对象;[0299] 6. 2创建基本模型类对象的插件,根据已生成的基本模型类对象,读取插件应用数据存储单元中相应的插件应用定义信息,根据插件应用定义信息读取插件模型数据存储单元中的程序集定义信息和程序类定义信息,根据程序集定义信息中的程序集名称调用对应程序集中的程序类创建插件实现类对象;并将所创建的插件实现类对象记录在基本模型类对象的插件适配器类对象中;[0300] 6. 3建立基本模型类对象和插件实现类对象的关联,将插件实现类对象记录在插件适配器类对象后,调用基本模型对象及其子对象的插件启用方法建立插件 [0297] 6. The steps are as follows: Figure 10: [0298] 6.1 Creating a basic model object and its children, the basic model from the model run time engine reads the data entity definition information storing unit and the interface definition information the entity class generate entity class object, generating an interface type interface according to the class object; [0299] 6.2 basic model created widget class object, according to the basic model generated class object, plug-in application to read a respective data storage unit widget application definition information, definition information reading plug assembly model data definition information storing unit and the plug-in application to the class definition information, call the corresponding program according to the mapping information set assembly name created widget classes implement class object; and the created widget implementation class objects are recorded in the adapter plug base class object's class object model; [0300] 6.3 to establish the basic model and the plug-in implementation class object associated object class, the class object implement recording plug after the plug-in adapter class object, call the basic model object and its children build plug-ins to enable plug-in method 实现类相应方法与基本模型类对象及其子对象事件的关联,此插件启用方法中设置插件适配器类对象中的各插件实现类对象的激活属性,此激活属性会在激活时建立基本模型类对象及其子对象27的事件与插件实现类对象中相应方法的关联,此激活属性会在禁用时断开基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联;[0301] 6. 4运行过程中,插件实现类对象响应基本模型类对象及其子对象的事件并执行相应方法完成插件功能;[0302] 6. 5基本模型类对象及其子对象在销毁前先断开其事件与插件实现类对象相应方法的联系,并销毁插件实现类对象;[0303] 6. 6销毁基本模型类对象及其子对象。 Associated with the corresponding class and method to achieve the basic model of the class object and its children's events, this method to enable the plug-in settings for each plug-in plug-in adapter class object implementation class object activation properties, this property will create activation basic model class object when activated its child object event event associated with a respective plug 27 of the method implemented in the class object, this basic model breaks the activation attribute class object and its children is disabled when the plug-in implementation class associated with the corresponding method object; [0301 ] 6.4 during operation in response to the event widget class object implement the basic model of the class object and its children and respective method is performed to complete the plug-in function; [0302] 6.5 basic model class object and its children before destruction before break the plug opening event which contact the appropriate method to achieve the object class, the class object implement plug and destruction; [0303] 6.6 destruction basic model class object and its children. [0304] 第二种应用插件扩充模型驱动开发能力的方法,包括以下步骤:[0305] 步骤1 :根据需求分析,模型设计工具建立模型运行引擎据以运行的实体定义信息和界面定义信息并存储在基本模型数据存储单元中;[0306] 步骤1的具体步骤如下:[0307] 1. 1模型设计工具建立业务元素定义信息;[0308] 1. 2模型设计工具引用业务元素定义信息建立业务表定义信息;[0309] 1. 3模型设计工具引用业务表定义信息建立实体定义信息;[0310] 1. 4模型设计工具引用实体定义信息建立界面定义信息;[0311] 1. 5将上述信息存储到基本模型数据存储单元中;[0312] 步骤2 :模型设计工具根据所建立的相关信息定义相应的业务数据结构,并存储到业务数据存储单元中;所述步骤2的具体步骤如下:[0313] 步骤2的具体步骤如下:模型设计工具根据业务表定义信息定义业务数据结构, 并生成 [0304] The second model-driven development capabilities to expand the application plug method comprising the steps of: [0305] Step 1: According to the needs analysis, model design tool to model the engine running, according to the entity definition information and screen definition information storage and running in the basic model of the data storage unit; specific steps [0306] step 1 is as follows: [0307] 1.1 model design tool establishing service definition information element; [0308] 1.2 model design tool service reference table element definition information to establish business definition information; [0309] 1.3 model design tool reference established business entity definition information table definition information; [0310] 1.4 model design tool reference create interface entity definition information defining information; [0311] 1.5 the above information is stored the basic model to the data storage unit; [0312] step 2: the model design tool definition information corresponding to the established service data structures, service data and stored in the storage means; step 2 specific steps are as follows: [0313 ] 2 the steps are as follows: model design tool information defines the service data structure defined according to the service table, and generates 务数据存储单元中的业务数据结构;[0314] 步骤3 :根据需求分析,模型设计工具建立插件模型的数据,并存储在插件模型数据存储单元中;[0315] 步骤3的具体步骤如下:[0316] 3. 1模型设计工具建立程序集定义信息;[0317] 3. 2模型设计工具建立程序类定义信息,并指定其中的程序类所属的程序集;[0318] 3. 3模型设计工具建立插件定义信息,指定其中实现插件功能的程序类;[0319] 3. 4将上述信息存储到插件模型数据存储单元中;[0320] 步骤4 :根据上述插件定义信息,模型设计工具编写相应的插件实现类代码,并编译生成插件实现类程序集;[0321 ] 步骤4的具体步骤如下:[0322] 4. 1根据插件定义信息,模型设计工具生成一个插件实现类代码框架;[0323] 4. 2模型设计工具根据插件实现类代码框架编写插件实现类代码;[0324] 4. 3模型设计工具根据插件实现类代码编 Service data structure of service data storage unit; [0314] Step 3: According to the requirement analysis, model design tool to create a data plug-in model, and stored in the plug-in model data storage unit; [0315] Step specific Step 3 as follows: [ 0316] 3.1 model design tool set definition information creation process; [0317] 3.2 model design tool class definition information creation process, and wherein the specified assembly classes belong; [0318] 3.3 model design tool established plug-definition information, which specifies the program function class implements plug; [0319] 3.4 the above information is stored in the plug-in model data storage unit; 4 [0320] step: preparation of the corresponding plug according to the above-described definition information widget, model design tool implementation class code, and the compiler generates a plugin class implement assembly; [0321] step 4 of the specific steps are as follows: [0322] 4.1 the plug definition information, a model design tool generates plug-in implementation class code frame; [0323] 4. 2 model design tool according to write plug-ins framework implementation plug-in implementation class code class code; [0324] 4.3 The model design tool plug-in implementation class code compiled 并生成插件实现类程序集;[0325] 步骤5 :使用模型设计工具定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中,同时生成相应的插件装载类,并将其存储到程序类定义信息中, 同时将生成的插件装载类编译并合并到插件装载类程序集中;[0326] 步骤5的具体步骤如下:模型设计工具引用基本模型定义信息和插件模型定义信息,定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中,同时生成相应的插件装载类,并将其存储到程序类定义信息中,同时将生成的插件装载类编译并合并到插件装载类程序集中;[0327] 步骤6 :使用模型运行引擎运行基本模型和插件模型。 And generates a plugin class implement assembly; [0325] Step 5: Using the Model Design Tool definition and application widget definition information corresponding to the basic model, and stored in the plug-in application data storage means, while generating a corresponding plug-in loading type, and the program stored in the class definition information, and the generated widget class is loaded and incorporated into the compiled plug-type loader assembly; [0326] the steps are as follows 5: model design tool basic reference model definition information and the plug-in model definition information, definition and application widget definition information corresponding to the basic model, and stored in the plug-in application data storage means, while generating a corresponding plug-in loading type, and stores the program information in the class definition, and loading the generated plugin class compiled and combined class loader assembly to the plug; [0327] step 6: using the run model run engine plug-in model and the base model. [0328] 步骤6的具体步骤如下:[0329] 6. 1创建基本模型类对象及其子对象,模型运行引擎从基本模型数据存储单元中读取实体定义信息和界面定义信息,根据实体类生成实体类对象,根据界面类生成界面类对象;[0330] 6. 2创建基本模型类对象的插件,根据已生成的基本模型类对象,读取插件应用数据存储单元中相应的插件应用定义信息,根据插件应用定义信息读取插件模型数据存储单元中的程序集定义信息和程序类定义信息,根据程序集定义信息中的程序集名称调用插件装载类程序集中的插件装载类相应装载方法创建插件实现类对象;并将插件实现类对象记录到基本模型类对象的插件适配器类对象中的插件接口列表中;[0331] 6. 3建立基本模型类对象和插件的关联,将插件登记在插件适配器类对象的插件接口列表后,调用基本模型类对象及其子对象的插 [0328] 6. The steps are as follows: [0329] 6.1 Creating the basic model class object and its children, runtime engine reads the model entity definition information and the interface definition information from the base model data storage unit, according to the entity classes generated entity class object, generating an interface type interface according to the class object; [0330] 6.2 basic model created widget class object, according to the basic model class object has been generated, the read definition information corresponding plug-in application plug-in application data storage unit, the plug-in application assembly defined widget information reading the model data storage unit definition information and program class definition information, according to the assembly the assembly name definition information call widget set widget load class program loading method of loading the appropriate class created widget implementation class objects; and recording widget class object to implement the interface list widget plugin adapter base class object model in the class object; [0331] 6.3 basic model association class objects and widget registered in the widget plugin adapter after the list of plug-in interface to the class object, call the plug base model of the class object and its children 启用方法建立插件实现类对象与基本模型类对象及其子对象事件的关联,此插件启用方法中设置插件适配器类对象的插件接口列表中所记录的各插件实现类对象的激活属性,此激活属性会在激活时建立基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联;模型运行引擎还可以在运行时断开插件与基本模型对象的关联,并修改其插件参数,修改后再重新建立与基本模型对象的关联。 Enable method for establishing plug-in implementation class object associated with the base model classes object and its children's events, this plug-in plug-ins to enable plug-in settings for each adapter class object's method in the list of plug-in interface to achieve activation of the recorded object attribute class, this property is activated the basic model will create class object and its children at the time of activation events associated with the plug-in implementation of the appropriate methods class object; model running engine can also disconnect the plug associated with the basic model objects at run time, and modify its plug-in parameters, and then re-modify the basic model associated with the object. [0332] 6. 4运行中,插件实现类对象响应基本模型类对象及其子对象的事件并执行相应方法完成插件功能;[0333] 6. 5基本模型类对象销毁前先断开其事件与插件实现类对象相应方法的联系,并销毁插件实现类对象;[0334] 6. 6销毁基本模型类对象及其子对象。 [0332] 6.4 run, the widget class object implement the basic model in response to the event class object and its child objects and the respective method is completed widget functions; be disconnected from the previous event [0333] 6.5 Basic model class object is destroyed Contact plug to achieve the object class corresponding method, an object implementation class plug and destruction; [0334] 6.6 destruction basic model class object and its children. [0335] 如图14所示,本发明中的基本模型是可以相互继承的,子模型继承父模型后自动拥有父模型所有的结构和功能。 [0335] 14, in the present invention, the basic model can be inherited from each other, automatically has all the structural and functional model is derived from the parent parent model child model. 有益效果在于在模型驱动开发方法下可以更有效的重复利用模型和定义在模型上的插件,比如只要在顶级界面上实现一个功能则继承于此界面的界面定义都会自动实现此功能。 In the advantageous effect is that the model-driven development more efficient reuse model and the model is defined in the plug, such as any one of those on the top-level interface functions inherited interface definition for this interface will automatically implement this feature. 如图21定义了一个子窗口界面ChildFormBase,其中定义了基本的菜单项,而图20的界面定义继承自此界面定义(参见图20中的继承界面项),所以图20的界面运行以后会自动拥有图21中所定义的菜单项,如图22所示。 21 defines a sub-window interface ChildFormBase, which defines the basic menu items, and the interface definition of Figure 20 that inherits from this interface definition (Inherited interface items see FIG. 20), so that after the operation of the interface of FIG. 20 will be automatically FIG menu item 21 has defined, as shown in FIG 22. [0336] 如图2所示,本发明中的基本模型拥有逻辑上的包含的关系,比如实体模型包含有业务表定义和实体功能定义,界面定义包含控件定义、界面功能定义和菜单工具条定义。 [0336] As shown in FIG. 2, the basic model of the present invention has a logical relationship comprise, for example solid model comprising business entity table definitions and function definition, interface definition contains the definition of the control, interface functions and menu bar defined definitions . 在本发明中,所有具有父模型的基本模型在构造模型对象时都会构造一个指向父模型对象的属性Owner,这样做的有意效果在于在插件实现类代码编写过程中可以更方便的访问和控制基本模型对象。 In the present invention, all of the basic model has a parent model in the construction of the model objects are configured a pointer property Owner parent model object, this intentional effect in that the plug-in implementation class coding process can be more convenient access and control basic model objects. 比如一个定义在字段级的插件实现类代码中可以通过this. Owner访问到字段所属的业务表。 For example, a defined class code can be achieved by this. Owner access to the service table field belongs in field level plug. [0337] 本发明的模型数据存储单元和业务数据存储单元是低偶合的,一套模型数据存储单元可以描述若干套业务数据存储单元。 Model data storage unit and storing service data units [0337] of the present invention is low coupling, a model data storage unit may be a plurality of sets of service description data storage unit. [0338] 程序集定义信息:程序集是程序类代码编译后的可执行代码集合,程序集就是软件组件的集合,本发明的程序集分为服务端程序集、客户端程序集、公用程序集。 [0338] Assembly definition information: executable code assembly is a collection of classes after the code is compiled, the assembly is a collection of software components, the assembly of the present invention is divided into the service side assembly, the assembly client, Utilities Set . 程序集可指定为动态程序集和静态程序集,动态程序集是指在运行过程中可动态的构建和维护的程序集,静态程序集是指运行过程中只能调用程序集而不能修改程序集,程序集定义就是对模型运行中引用到的程序集信息在模型数据存储单元中进行描述登记,程序集定义步骤为:(1)在模型设计工具中找到程序集维护项(参见图16中的“程序组件”),并点击打开程序集维护界面,(2)在该界面中点击“新增”打开新建程序集界面(参见图23),(3)输入程序集名称,程序集类型,程序集位置,是否为动态等信息,(4)保存并完成程序集定义。 Assemblies can be specified as static and dynamic assembly assembly, dynamic assembly means the assembly can dynamically build and maintain during operation, static assembly is the process of running the assembly can only be called an assembly and can not be modified , the assembly defined is a reference model operation to the assembly information is described is registered in the model data storage unit, the assembly is defined the steps of: (1) locate the assembly in the model design tool maintenance items (in see FIG. 16 "program component"), and click open the assembly and maintenance interface (2) click the "new" open a new screen assemblies (see FIG. 23), (3) the name of the input assembly, the assembly type in this interface, the program set position, whether the dynamic information, (4) and completing the save set definition. 模型运行引擎根据这些定义信息动态的维护程序集和使用其中的程序类。 Model engine maintenance operation wherein the assembly and use of these classes defined in accordance with dynamic information. 本发明中的插件实现类编译后的结果文件就是动态程序集文件。 Results file in the plug of the present invention is to achieve a dynamic assembly compiled class files. 只有指定为动态程序集才能在运行过程中把动态生成的程序类信息增加到对应程序集中。 Only designated as a dynamic assembly during operation to the dynamically generated class information added to the program corresponding to assembly. 如表13为程序集定义信息。 The table definition information 13 for the assembly. [0339] 表13、插件模型-程序集定义信息[0340] [0339] Table 13, plug-in model - a program mapping information [0340]

Figure CN102033743AD00301

[0341][0342] 程序类定义信息:程序类是一种有结构的功能代码集合,本发明所说的程序类是指插件功能实现类和插件装载类,在编写和使用一个插件之前先在插件模型存储单元中定义此插件功能实现类信息,程序类定义就是用模型设计工具对程序类信息在插件模型数据存储单元中进行描述登记,程序类定义步骤为:(1)在模型设计工具中找到程序类维护项(参见图16中的“程序类”),并点击打开程序类维护界面,在该界面中点击“新增”按钮打开新增程序类界面(参见图M),(¾输入程序类名称,选择所属程序集,(3)选择所属类型, (4)保存并完成程序类定义。模型运行引擎在加载插件过程中根据这些描述信息动态的构建具体的程序类对象来实现插件功能。如表14是订单系统用到的程序类定义信息。[0343] 表14、插件模型-程序类定义信息[0344] [0341] [0342] definition information classes: class is an functional set of code structure, the present invention refers to the class of said plug and plug loading implementation class category, prior to the preparation and use of a plug-in widget model storage unit as defined in this widget implementation class information, class used to define that program type information is described is registered in the plug-in model data storage unit with a model design tool, class used to define the steps of: (1) the model design tool maintenance items found classes ( "class" see Figure 16) and click open class maintenance program interface, click on the "Add" button to open the new program class interface (see Figure M) in the interface, (¾ input to the class name, selection procedures set belongs, (3) select their type, (4) save, and completing the class definition. models running engine loading plug process to achieve plug-in function constructed in accordance with the specific procedure class object which describes dynamic information as table 14 is a program information Order class definition used in the system [0343] table 14, plug-in model - class program definition information [0344]

Figure CN102033743AD00311

[0345] 插件定义:本发明的插件由插件实现类和插件装载类组成,插件实现类用于实现插件功能,插件装载类用于装载插件实现类对象到基本模型对象上的插件适配器中,插件定义就是用模型设计工具对插件实现类及其参数信息在插件模型存储单元中进行描述登记,插件定义步骤为:(1)在用模型设计工具中找到插件维护项(参见图16中的“插件定义”),并点击打开插件定义维护界面(2)在该界面中点击“新增”打开插件定义界面(参见图25),(3)输入插件名称,指定可插入模型对象类型,指定客户端处理类,指定服务端处理类,指定插件各个参数信息(参见图26)(参数名称,参数类型,参数缺省值等),(4)保存并完成插件定义。 [0345] defined widget: widget according to the present invention is achieved by loading plugins widget class and classes, widget implementation class for implementing the plug-in function, plug-in loading type for loading widget class object to achieve substantially the plugin adapter model object, the insert is defined and its implementation class of the widget is described is registered in the parameter information storage unit with the plug-in model model design tool, plug-defined steps: (1) find the model with the plug-in design tool maintenance items ( "see plug 16 of FIG. definition "), and click open maintenance interface widget defined in (2) in the interface click the" Add "defines open interface plug (see FIG. 25), (3) the name of an input plug specifies the type of model object may be inserted, specify the client treatment classes, designated class processing server, information specifying each parameter plug (parameter name, parameter type, parameter default values, etc.) (see FIG. 26), (4) save and complete plug defined. 如表15是订单系统用到的插件定义信息。 As shown in Table 15 is a plug-order system used in the definition of information. 表16是订单系统中插件的参数定义信息。 Table 16 is the order parameter defines the information system plug-ins. [0346] 表15、插件模型-插件定义信息[0347] [0346] Table 15, plug-in model - widget definition information [0347]

Figure CN102033743AD00321

[0348] 表16、插件模型-插件参数定义信息[0349] [0348] Table 16, plug-in model - plug-in parameter definition information [0349]

Figure CN102033743AD00322

[0350] [0350]

Figure CN102033743AD00331

[0351] 编写插件实现类:插件实现类是完成插件功能的程序代码段,插件实现类通过响应基本模型对象的消息完成插件功能,插件实现类在基本模型对象创建后由插件装载类型自动创建,在基本模型对象释放前释放。 [0351] prepared widget implementation class: widget implementing class is a complete plug-in function code segments, widget implementation class to complete the plug-in function by a message in response to the basic model of the object, plug-in implementation class created automatically loading type by the plug after the basic model of the object is created, before the release of the basic model of the object is released. 编写一个插件实现类型步骤为:[0352] (1)使用模型设计工具自动生成一个已定义的插件实现类代码框架;[0353] (2)插件设计人员根据实现类代码框架和业务功能需求使用模型设计工具或第三方工具编写插件功能的实现类代码;[0354] (3)插件实现类编写完成后编译并生成插件实现类程序集。 Write a plugin implementation types steps of: [0352] (1) using the model design tool automatically generates a plugin defined class that implements the code frame; [0353] (2) plug designers use model according to an implementation class code frame and business functional requirements design tools or third-party tools to write a plugin class code implementing the functions; [0354] (3) after the plug-in implementation class prepared compile and generate implementation classes plug assembly. [0355] 使用模型设计工具定义与基本模型对应的插件应用定义信息:当利用模型设计工具对软件系统基本建模后仍无法完成复杂业务功能需求时可以利用插件模型对基本模型对象进行扩展定义。 The basic model can be extended definition of the object when using the plug-in model after model design using the basic tools for software modeling system is still unable to complete the complex business functional requirements: [0355] using the model design tools to define and plug-in application definition information corresponding to the basic model. 应用插件扩展基本模型对象步骤为(1)使用模型设计工具打开基本模型设计界面(参见图17到图21),选择一个要用插件扩展功能的基本模型对象,(¾点击“插件”项打开插件定义界面(参见图27),点击“PluginName”项会弹出插件选择窗口(参见图观),在插件选择窗口中选择一个已定义的插件,针对此基本模型对象业务功能需要设置插件参数,(¾保存定义并完成业务模型功能扩展。如图27所示,模型设计工具会根据插件实现类信息和参数定义信息自动生成插件的装载类型代码并在程序类定义信息中登记一个插件装载类定义信息并把生成的装载代码一并存储在类代码项,模型运行引擎根据此登记的信息动态调用插件装载类来创建插件实现类的对象。与一般的代码模版生成的类不同,此装载类代码只包含装载代码,而不包含实现代码,插件装载类是根 Application plug-ins extend the base model object step (1) using the model design tool to open the basic model design interface (see FIGS. 17 to 21), select the basic model object to use a plug-in expansion capabilities, (¾ click on the "plug-in" item to open the plug-in definition screen (see Figure 27), click on "PluginName" item will pop up plugin selection window (see Figure outlook), the plug-in selection window, select a plug-in has been defined, the basic model object business functions for this you need to set plug-in parameters, (¾ save and define extensions to complete the business model shown in Figure 27, the model-based design tool parameter information and the definition information generated automatically loading type plug-in code and register a widget class loading procedure definition information according to the class definition information and plug-in implementation loading the generated code is stored together in the class code item, based on this information the model engine operating registered dynamic class loader calls the plug-in plug-in to create the object implementation class. different general code generated by the template class, this class code contains only the loading load code, and does not include the implementation code is the root class loading widget 附加在基本模型对象上的所有插件动态生成插件装载类代码。插件参数可以是常量,变量,表达式,脚本和代码片段。丰富的插件参数类型可以通过调整参数提供灵活强大的通用插件功能。如图13所示,一个基本模型对象同时可以使用若干个插件扩展其功能,同一个插件也可以通过调整参数来为不同的基本模型对象提供服务。如表17,18是对订单系统中应用的插件应用定义信息。[0356] 表17、插件应用定义信息-插件部分[0357] Appended to the base model of the object to load all plugins widget class dynamically generated code may be a plug-in parameter constants, variables, expressions, scripts and code fragments rich plug parameter types can provide flexible and powerful universal plug-in features by adjusting the parameters, such as as shown in FIG. 13, a model object substantially simultaneously a number of plug-ins can be used to extend its functionality, may also be provided for the different services the same basic model of the object by adjusting the parameter plug-in. as shown in table 17 and 18 is a plug-in application of orders in the system application definition information [0356] table 17, the application definition information plug - insert portion [0357]

Figure CN102033743AD00341

[0358] 表18、插件应用定义信息-参数部分[0359] [0358] Table 18, plug-in application definition information - Part Parameters [0359]

Figure CN102033743AD00342

[0360] 运行模型:如图9所示,模型运行过程如下:[0361] (1)模型运行引擎启动后读取基本模型存储单元中实体定义信息和相关界面定义信息并从插件应用数据存储单元中找出与之对应的插件应用定义信息;[0362] (2)根据基本模型类和插件实现类,在内存中创建基本模型类对象和插件实现类对象;[0363] (3)接着显示操作界面并等待用户操作;[0364] (4)用户通过操作软件界面进行业务处理;[0365] (5)基本模型类对象在需要存取业务数据的时候调用相应方法访问业务数据存储单元存取业务数据,完成软件功能。 [0360] Run Model: 9, the model runs as follows: [0361] (1) Run the model entity definition basic engine reads the information model storage unit and interface definitions related information and starts the application data storage unit from the plug plug-in to find the corresponding application definition information; [0362] (2) according to the basic model type and plug-in implementation class, class objects to create the basic model and the plug-in implementation class objects in memory; [0363] (3) Next, the display operation and waiting for user interface; [0364] (4) by operation of the user service processing software interface; [0365] (5) calls the base class object model corresponding method for accessing services access service data storage unit when needed to access the service data data, complete software features. [0366] 维护模型:使用本发明开发的软件系统具体良好的可维护性,可以在系统运行态进行可视的查看、修改软件模型进行软件维护,并随时能在运行态看到运行效果。 [0366] Maintenance model: using software developed by the inventors particularly good maintainability, can be viewed in the visual system operating mode, modify the software model software maintenance, and operation effect can be seen at any time in the operating mode. 软件文档也会随维护模型而自动同步变更。 Software documentation will be maintained with the model and automatically synchronize changes. 应用本发明方法所开发的软件解决了普通方法开发软件的维护困难的问题,本发明以模型为中心的开发方法使得软件的开发周期变短,软件生命周期变长,是可随用户业务系统变化而变化的智能软件系统。 The method of application of the present invention to develop software to solve the difficulties of maintaining an ordinary method to develop software problems, the present invention is to model the development of the method the center of such software development cycle becomes shorter, the software life cycle becomes long, it is with the user service system change the change of intelligent software system. 模型就是软件,模型就是文档,对模型的维护就是对软件的维护。 Model is a software model is the document, the model is to maintain the maintenance of the software. [0367] 术语解释:[0368] 基本模型:构成软件组成部件的结构,功能,界面的描述定义;[0369] 插件模型:扩展软件基本模型的插件描述定义;[0370] 基本模型对象:具体的基本模型,有业务元素,字段,业务表,实体,功能,菜单,控件等;[0371] 基本模型类:用于定义基本模型对象结构的程序类,有业务元素类,字段类,业务表类,实体类,功能类,控件类,与基本模型对象一一对应;[0372] 基本模型类对象:基本模型类运行后的内存表现就叫基本模型类对象;[0373] 插件:插件是一种可以带参数的进一步描述基本模型对象的可复用的软件组件;[0374] 插件实现类:实现插件功能的程序类;[0375] 插件实现类对象:插件实现类运行后的内存表现;[0376] 插件装载类:用于将插件实现类对象创建并登记到插件适配器中的程序类,插件装载类在创建插件实现类对 [0367] Terminology: [0368] the basic model: configuration structure, function, description definition interface software component parts; [0369] plug-in model: extension base model software description defined above; [0370] Basic model object: specific the basic model, there are service elements, field, table service, entity, functions, menus, controls and the like; [0371] basic model class: program basic model object structure class definition, service element class, field class, business class table , entity class, functional class, control class, and the basic model object one correspondence; [0372] the basic model class objects: the base model classes run the memory performance model called the basic class objects; [0373] plug-ins: plug-ins are further description of the basic model of an object can be parameterized software-reusable components; [0374] widget implementation class: implement plug-in functionality classes; [0375] widget implementation class objects: plug-in implementation of memory performance after class operation; [0376 ] plugin class is loaded: for the plug-in implementation class object is created and registered in the program category plugin adapter, plug-in loading of the class implementation class created widget 象时会将插件的参数信息传递给创建的插件实现类对象;插件装载类是由模型设计工具根据插件的定义信息和参数定义信息生成的;[0377] 插件运行库:含有插件实现类的一个或多个程序集或动态链接库;[0378] 程序集:程序集是一种含有程序数据和代码的文件,其中可以包含多个程序类; 可供其他程序或程序集调用;[0379] 动态链接库:动态链接库是一种含有程序数据和代码的文件,其中可以包含多个程序类;可供其他程序或动态链接库调用;[0380] 主体对象:是相对于插件来说的插件附着的对象,也就是基本模型对象。 As parameter information will be passed to the plug-in plug-in creates an object implementation class; widget class is loaded by a Model Design Tool generated widget according to the definition information and the parameter information defined; [0377] Runtime widget: a widget implementation class comprising or more assemblies or dynamic link libraries; [0378] assembly: assembly is a file containing the program code and data, which may comprise a plurality of classes; program or set of programs for other calls; [0379] dynamic libraries: a dynamic link library data and files containing program code, which may comprise a plurality of classes; available to other programs or dynamic link library call; [0380] principal objects: a plug with respect to the plug is attached object, which is the basic model of the object.

Claims (8)

1. 一种应用插件扩充模型驱动开发能力的系统,包括模型数据存储单元、模型设计工具、业务数据存储单元、模型运行引擎,所述模型数据存储单元包括基本模型数据存储单元;所述模型数据存储单元是用于存储模型数据的数据库或文件;所述模型设计工具用于设计业务数据存储单元中的业务数据结构以及基本模型数据存储单元中的实体定义信息和界面定义信息;所述模型运行引擎用于定义业务元素类、字段类、业务表类、实体类和界面类,所述业务元素类、字段类、业务表类、实体类和界面类构成基本模型类,所述基本模型类用于在内存中构造对应的基本模型对象;其特征在于:所述模型运行引擎还包括插件支持程序集,所述插件支持程序集用于定义插件适配器类;所述模型数据存储单元还包括插件模型数据存储单元和插件应用数据存储单元; An extension of the application of model-driven development capability plug-in system, including the model data storage unit, Model Design Tool, service data storage unit, operating engine model, the model data storage unit includes a basic model data storage unit; the model data the storage unit is a database or file storage data model; business entity definition data structure of the service model design tool for designing a data storage unit and the basic model data storage unit information and the interface definition information; said model running engine element for defining business class, field class, business class table, the interface entity classes and classes, the service type element, field class, business class table, the interface entity classes and classes constitute the basic model class, the class with the basic model model object corresponding to the basic structure in memory; characterized in that: said engine further comprises a plug-in model is run to support the assembly, the plug support assembly to define plug adapter class; the model data storage unit further comprises a plug-in model plug-in application data storage unit and a data storage unit; 述插件模型数据存储单元用于存储插件模型的数据,所述插件模型的数据包括程序集定义信息、程序类定义信息和插件定义信息,所述插件应用数据存储单元用于存储插件应用定义fn息;所述基本模型类具有一个插件适配器类对象;所述插件适配器类对象可管理多个插件,所述插件是插件实现类运行后的内存表现形式;也叫插件实现类对象;所述系统还包括插件运行库;所述插件运行库包括插件实现类程序集;所述插件实现类程序集包括至少一个插件实现类,每个插件实现类用于实现相应插件的接口规范和插件功能;所述基本模型类通过插件适配器类对象管理多个插件;所述模型设计工具还用于设计插件运行库及插件模型数据存储单元中的程序集定义信息、程序类定义信息、插件定义信息和插件应用数据存储单元中的插件应用定义信息。 Said plug-in model data storing means for storing data of the plug-in model, the data model comprises a plug assemblies definition information, definition information and the widget classes definition information, the plug-in application data storage unit for storing the widget application definition information fn ; basic model of the classes having a plug adapter class object; the plugin adapter class object can manage a plurality of inserts, said insert is a manifestation of the plug-in memory implementation class operation; also called plug-in implementation class object; said system further runtime plug comprising; the insert comprises an insert implementation class runtime assembly; implementation class of the plug assembly comprising at least one insert implementation class, each plug-in and plug the interface specification to realize the function for implementing the corresponding widget class; the the basic model class management class object by a plurality of plugin adapter plug; the model design tool design program for further widget runtime model and plug-in data storage unit definition information, the program type definition information, definition information plug and plug the application data plug-in application storage unit definition information.
2.根据权利要求1所述的应用插件扩充模型驱动开发能力的系统,其特征在于:所述基本模型数据存储单元用于存储基本模型的数据,所述基本模型的数据包括界面定义信息和实体定义信息,所述界面定义信息包括控件定义信息和菜单定义信息,所述实体定义信息包括业务表定义信息和业务功能定义信息,所述业务表定义信息包括字段定义信息,所述字段定义信息包括业务元素定义信息;所述业务数据存储单元是存储业务数据的数据库或文件;所述模型运行引擎可实现以下功能:1]从基本模型数据存储单元中读取实体定义信息和界面定义信息;根据实体类生成实体类对象,根据界面类生成与实体类对象相应的界面类对象;所述界面类对象的屏幕表现就是操作界面;所述界面类对象表现的数据就是实体类对象的数据;2]根据用户操作将业务数据存储单元 2. The system of model-driven development application plug expansion capability according to claim 1, wherein: said basic model data storage unit for storing data of the basic model, the data model comprises an interface definition of the basic information and the entity definition information, definition information including said interface definition information and menu controls definition information, said entity comprising a service definition information table definition information and service definition information function, the service definition information table includes a field definition information, definition information includes the field service definition information element; the service data storage unit is a database storing service data or files; the engine can run the model to achieve the following functions: 1] and read interface entity definition information from the basic model of definition information data storage unit; according entity class object entity class, the entity class generation interface according to the object class corresponding to the class object interface; the interface class object is the user interface screen performance; performance of the interface class object data is the data entity class object; 2] the user operates the service data storage unit 中的业务数据读取至实体类对象中供用户通过操作界面查看;3]根据用户操作将实体类对象的数据保存到业务数据存储单元中;4]根据已生成的实体类对象和界面类对象读取插件应用定义信息中所对应的插件定义信息,并根据该插件定义信息调用所对应的插件实现类生成插件实现类对象,并使插件实现类对象和实体类对象及操作界面关联以控制实体类对象和界面类对象。 Reading the service data for the user to view the entity class object via the user interface; 3] according to a user operation to save data to the service entity class object data storage means; 4] The entity class and interface objects generated class object reading definition information widget widget information corresponding to the application definition and generates a plugin implementation class definition information based on the widget corresponding to the widget call implementation class objects, class objects and associated plug-in to achieve the object and the entity class and interface control entity to class objects and interface class object.
3. 一种应用插件扩充模型驱动开发能力的系统,包括模型数据存储单元、模型设计工具、业务数据存储单元、模型运行引擎,所述模型数据存储单元包括基本模型数据存储单元;所述模型设计工具用于设计业务数据存储单元中的业务数据结构以及基本模型数据存储单元中的实体定义信息和界面定义信息;所述模型运行引擎用于定义业务元素类、字段类、业务表类、实体类和界面类,所述业务元素类、字段类、业务表类、实体类和界面类构成基本模型类,所述基本模型类用于在内存中构造对应的基本模型对象; 其特征在于:所述模型运行引擎还包括插件支持程序集,所述插件支持程序集用于定义插件接口、 插件支持接口和插件适配器类;所述模型数据存储单元还包括插件模型数据存储单元和插件应用数据存储单元;所述插件模型数据存储单元用于 A model-driven development expansion capability application plug-in system comprises a model data storage unit Model Design Tool, service data storage unit, operating engine model, the model data storage unit includes a basic model data storage unit; the Model Design design tools for service data in the service data storage unit and an interface entity definition information and model data base definition information storing unit; the model engine operating element for defining traffic class field class, business class table, the entity class class and interface, the service type element, field class, business class table, the entity class and the class interface classes constitute the basic model, the basic model of the object class for the basic model structure corresponding to the memory; characterized in that: said model engine running support assembly further comprises a plug, said plug support assembly for defining plugin interface, the interface supports the plug and plug adapter class; the model data storage unit further comprises a plug-in model plug-in application data storage unit and a data storage unit; the plug-in model data storing means for 储插件模型的数据,所述插件模型的数据包括程序集定义信息、程序类定义信息和插件定义信息,所述插件应用数据存储单元用于存储插件应用定义fn息;所述插件接口中定义有一个基本模型类对象;实现插件接口的插件实现类必须实现此基本模型类对象;此基本模型类对象记录了实现此接口的插件实现类所服务的基本模型类对象;所述基本模型类可实现插件支持接口;插件支持接口中具有一个插件适配器类对象; 所述插件适配器类具有一个基本模型类对象,此基本模型类对象记录了此适配器类所属的基本模型对象;所述插件适配器类具有一个可管理多个插件的插件接口列表,所述插件是插件实现类运行后的内存表现形式;所述插件接口列表中可以记录对应的插件;所述系统还包括插件运行库;所述插件运行库包括插件实现类程序集;所述插件实 Data storage plug-in model, the data model comprises a plug assemblies definition information, definition information and the widget classes definition information, the plug-in application data storage unit for storing the widget application definition information fn; defining the plugin interface the basic model of a class object; plugin interface to achieve the plug-in implementation of this class must implement the basic model of the object class; record this base class object model implementing this interface widget basic model class object classes and services; class implements the basic model the interface plug-in support; support plug having a plug adapter interface class object; said plug adapter having a base class an object class model, this basic model of the object class recorded a basic model of the object adapter class belongs; the type having a plug adapter can manage a plurality of plug interface list widget, the widget is a manifestation of the plug memory implementation class operation; the insert can be recorded in the interface list the corresponding plug; the system further comprising a widget runtime; the widget runtime implementation class includes an insert assembly; said solid plug 现类程序集包括至少一个插件实现类;所述系统还包括插件运行库;所述插件运行库包括插件实现类程序集和插件装载类程序集;所述插件实现类程序集包括至少一个插件实现类,每个插件实现类用于实现相应插件的接口规范和插件功能,所述插件装载类程序集包括至少一个插件装载类,插件装载类继承于插件适配器类,每个插件装载类可根据插件应用定义信息创建插件,并将创建的插件登记在插件接口列表中;所述基本模型类通过插件接口列表管理多个插件;所述模型设计工具还用于设计插件运行库及插件模型数据存储单元中的程序集定义信息、程序类定义信息、插件定义信息和插件应用数据存储单元中的插件应用定义信息。 Now type comprising at least one insert assembly implementation class; the system further comprising a widget runtime; the insert comprises an insert implement runtime class loader assembly and the plug assembly type; implementation class of the plug assembly includes at least one plug-in implementation class, each widget implementation class implements the interface specifications and functions of the respective plug insert, the plug-type assembly comprising loading at least one insert loader type, plug-in loading class inherits a plugin adapter classes, each class may be loaded plug according to plug widget application definition information created and registered in the widget created widget interface list; basic model of the classes managed by the interface listing a plurality of plug-ins; the model design tool for designing further widget runtime model data storage unit and plug the procedure set definition information, plug-in application-defined program class definition information, definition information plug and plug-in application information in the data storage unit.
4.根据权利要求3所述的应用插件扩充模型驱动开发能力的系统,其特征在于:所述基本模型数据存储单元用于存储基本模型的数据,所述基本模型的数据包括界面定义信息和实体定义信息,所述界面定义信息包括控件定义信息和菜单定义信息,所述实体定义信息包括业务表定义信息和业务功能定义信息,所述业务表定义信息包括字段定义信息,所述字段定义信息包括业务元素定义信息;所述业务数据存储单元是存储业务数据的数据库或文件;所述模型运行引擎可实现以下功能:1]从基本模型数据存储单元中读取实体定义信息和界面定义信息;根据实体类生成实体类对象,根据界面类生成界面类对象;所述界面类对象的屏幕表现就是操作界面;所述界面类对象表现的数据就是实体类对象的数据;2]根据用户操作将业务数据存储单元中的业务数据读取至 Expansion plug according to the application of model-driven system according to claim 3 development capabilities, wherein: said basic model data storage unit for storing data of the basic model, the data model comprises an interface definition of the basic information and the entity definition information, definition information including said interface definition information and menu controls definition information, said entity comprising a service definition information table definition information and service definition information function, the service definition information table includes a field definition information, definition information includes the field service definition information element; the service data storage unit is a database storing service data or files; the engine can run the model to achieve the following functions: 1] and read interface entity definition information from the basic model of definition information data storage unit; according entity classes generate entity class object, generating an interface according to the interface class object class; the interface class object is the user interface screen performance; performance data of the interface class object is a data object entity class; 2] traffic data according to a user operation traffic data storage unit to read 实体类对象中供用户通过操作界面查看;3]根据用户操作将实体类对象的数据保存到业务数据存储单元中;4]根据已生成的实体类对象和界面类对象读取插件应用定义信息中所对应的插件定义信息,并根据该插件定义信息调用所对应的插件实现类生成插件实现类对象,并使插件实现类对象和实体对象及界面类对象关联以控制实体对象和界面对象。 Entity class object via the user interface for the user to view; 3] according to a user operation to save data to the service entity class object data storage means; 4] The read class object and the entity class object generated interface plug-in application definition information definition information corresponding to the widget, and to achieve the object class generation widget based on the widget implementation class definition information corresponding to the calling plug, and plug and to achieve the object associated with the entity object class and interface control entity class objects to objects and interface objects.
5. 一种应用插件扩充模型驱动开发能力的方法,其特征在于:包括以下步骤:(1)根据需求分析,模型设计工具建立模型运行引擎据以运行的实体定义信息和界面定义信息并存储在基本模型数据存储单元中;(2)模型设计工具根据所建立的相关信息定义相应的业务数据结构,并存储到业务数据存储单元中;(3)根据需求分析,模型设计工具建立插件模型的数据,并存储在插件模型数据存储单元中;(4)根据上述插件定义信息,模型设计工具编写相应的插件实现类代码,并编译生成插件实现类程序集;(5)使用模型设计工具定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中;(6)使用模型运行引擎运行基本模型和插件模型。 A model-driven development application plug extension capability, characterized in that: comprising the steps of: (1) According to the requirement analysis, Model Design Tool establishing the information model entity definition according to the engine running and running the interface definition information and stored in the basic model of data storage units; (2) model design tool according to relevant information defining established corresponding service data structure and stored in the service data storage unit; (3) according to the requirement analysis, model design tool to create a data plug-in model , and stored in the plug-in model data storage unit; (4) the plug-definition information, the model design tool written in the corresponding plug-in implementation class code, and the compiler generates a plugin implementation class assemblies; (5) using the model design tool defined substantially model definition information corresponding to the plug-in application, and stores the plug-in application data storage unit; (6) using a model and running the model engine runs substantially plug-in model.
6.根据权利要求5所述应用插件扩充模型驱动开发能力的方法,其特征在于: 所述步骤1的具体步骤如下:·1.1模型设计工具建立业务元素定义信息; 1. 2模型设计工具引用业务元素定义信息建立业务表定义信息; 1. 3模型设计工具引用业务表定义信息建立实体定义信息; 1. 4模型设计工具引用实体定义信息建立界面定义信息; 1. 5将上述信息存储到基本模型数据存储单元中; 所述步骤2的具体步骤如下:模型设计工具根据业务表定义信息定义业务数据结构,并生成业务数据存储单元中的业务数据结构;步骤3的具体步骤如下:·3. 1模型设计工具建立程序集定义信息;·3. 2模型设计工具建立程序类定义信息,并指定其中的程序类所属的程序集; 3. 3模型设计工具建立插件定义信息,并指定其中实现插件功能的程序类;·3. 4将上述信息存储到插件模型数据存 The method according to the application of model-driven development capacity expansion plug as claimed in claim, wherein: said step 1 specific steps are as follows: · 1.1 Model Design Tool establishing service definition information elements; 1.2 Model Design Tool services references establishing service definition information element definition information table; 1.3 model design tool reference established business entity definition information table definition information; 1.4 model design tool definition information entity reference information to establish interface definition; 1.5 the above information is stored to the elementary model data storage means; step 2 specific steps are as follows: model design tool information defines the service data structure defined according to the service table, and generates the service data structure of service data storage unit; 3 the steps are as follows: 31. model design tools to create an assembly definition information; · 32 model design tool to create a class definition program information and the specified assembly which belongs to the class; 3.3 design tool to create a plug-in model definition information, and implement specify which plug-in function the classes;. * 34 the above information is stored into the model data storage widget 单元中; 所述步骤4的具体步骤如下:·4. 1根据插件定义信息,模型设计工具生成一个插件实现类代码框架;.4. 2模型设计工具根据插件实现类代码框架编写插件实现类代码; 4. 3模型设计工具根据插件实现类代码编译并生成插件实现类程序集; 步骤5的具体步骤如下:模型设计工具引用基本模型定义信息和插件模型定义信息,定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中; 步骤6的具体步骤如下:.6. 1创建基本模型对象及其子对象,模型运行引擎从基本模型数据存储单元中读取实体定义信息和界面定义信息,根据实体类生成实体类对象,根据界面类生成界面类对象;.6. 2创建基本模型类对象的插件,根据已生成的基本模型类对象,读取插件应用数据存储单元中相应的插件应用定义信息,根据插件应用定义信息读取插件 Unit; step 4 specific steps are as follows: · 41 generates a plugin class code implemented in accordance with the frame definition information widget, Model Design Tool; .4 2 Model Design Tool according to write plug-ins Framework implementation plug-in implementation class code class code. ; 4.3 model design tool the widget code compiler implementation class implementation class and generates a plug assembly; 5 the steps are as follows: model design tool basic reference model definition information and the plug-in model definition information defines the basic model corresponding plug-in application definition information stored in the plug-in application and data storage unit; 6 the steps are as follows: 1 .6 create the basic model object and its children, the basic model runtime engine reads the model data storage unit and an interface entity definition information. definition information is generated according to the entity class object entity class, generating an interface according to the interface type class object; .6 2 create the basic model of the widget class object, according to the basic model generated class object, plug-in application to read a respective data storage unit widget application definition information, information reading application definition plug according to plug 型数据存储单元中的程序集定义信息和程序类定义信息,根据程序集定义信息中的程序集名称调用对应程序集中的程序类创建插件实现类对象;并将所创建的插件实现类对象记录在基本模型类对象的插件适配器类对象中;.6. 3建立基本模型类对象和插件实现类对象的关联,将插件实现类对象记录在插件适配器类对象后,调用基本模型对象及其子对象的插件启用方法建立插件实现类相应方法与基本模型类对象及其子对象事件的关联,此插件启用方法中设置插件适配器类对象中的各插件实现类对象的激活属性,此激活属性会在激活时建立基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联,此激活属性会在禁用时断开基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联;.6. 4运行过程中,插件实现类对象响应基本模 Assembly data storage unit type definition information and program class definition information corresponding to the calling program in accordance with the program set definition information set assembly name created widget classes implement class object; plug and the created object record implementation class in the plugin adapter base class object's class object model; .6 3 establish the basic model and the plug-in implementation class object associated object class, the class object implement plug-ins after recording the adapter class object, call the object and its children basic model plug-in to enable the appropriate method associated with the basic method plug-in implementation class model class object and its children's events, this method to enable the plug-in settings for each plug-in plug-in adapter class object implementation class object activation properties, this property will activate the activation establish the basic model class object and its children when the event is associated with a corresponding plug-in implementation class method object, this property will be activated off the base model class object and its children in the event of a disabled plug-in implementation class object corresponding method association;. 0.64 during operation, the widget class object implement in response to the fundamental mode 类对象及其子对象的事件并执行相应方法完成插件功能;.6. 5基本模型类对象及其子对象在销毁前先断开其事件与插件实现类对象相应方法的联系,并销毁插件实现类对象;.6. 6销毁基本模型类对象及其子对象; Event class object and its sub-objects and perform the appropriate way to do plug-in function; .6 5 basic model class object and its children before its destruction disconnect events and contact the appropriate method of plug-in implementation class objects, and destruction of plug-in implementation class object; .6 6 destruction of the basic model of the class object and its children;
7. 一种应用插件扩充模型驱动开发能力的方法,其特征在于:包括以下步骤:(1)根据需求分析,模型设计工具建立模型运行引擎据以运行的实体定义信息和界面定义信息并存储在基本模型数据存储单元中;(2)模型设计工具根据所建立的相关信息定义相应的业务数据结构,并存储到业务数据存储单元中;(3)根据需求分析,模型设计工具建立插件模型的数据,并存储在插件模型数据存储单元中;(4)根据上述插件定义信息,模型设计工具编写相应的插件实现类代码,并编译生成插件实现类程序集;(5)使用模型设计工具定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中,同时生成相应的插件装载类代码,并将其存储到程序类定义信息的程序类代码项中,并且把生成的插件装载类代码编译并合并到插件装载类程序集中;(6)使用模型 An extension plug-in application capability model-driven development method, characterized by: comprising the steps of: (1) According to the requirement analysis, Model Design Tool establishing the information model entity definition according to the engine running and running the interface definition information and stored in the basic model of data storage units; (2) model design tool according to relevant information defining established corresponding service data structure and stored in the service data storage unit; (3) according to the requirement analysis, model design tool to create a data plug-in model , and stored in the plug-in model data storage unit; (4) the plug-definition information, the model design tool written in the corresponding plug-in implementation class code, and the compiler generates a plugin implementation class assemblies; (5) using the model design tool defined substantially widget application definition information corresponding to the model, and stored in the plug-in application data storage means, while generating a corresponding class code plug loading, and stores the class code to the class program definition information items, and loading the generated plugin class the combined code is compiled and loaded into plug-in type assembly; (6) using a model 行引擎运行基本模型和插件模型。 Line engine running basic model and plug-in model.
8.根据权利要求7所述应用插件扩充模型驱动开发能力的方法,其特征在于: 所述步骤1的具体步骤如下:·1. 1模型设计工具建立业务元素定义信息; 1. 2模型设计工具引用业务元素定义信息建立业务表定义信息; 1. 3模型设计工具引用业务表定义信息建立实体定义信息; 1. 4模型设计工具引用实体定义信息建立界面定义信息; 1. 5将上述信息存储到基本模型数据存储单元中; 所述步骤2的具体步骤如下:模型设计工具根据业务表定义信息定义业务数据结构,并生成业务数据存储单元中的业务数据结构;所述步骤3的具体步骤如下:·3. 1模型设计工具建立程序集定义信息;·3. 2模型设计工具建立程序类定义信息,并指定其中的程序类所属的程序集; 3. 3模型设计工具建立插件定义信息,并指定其中实现插件功能的程序类;·3. 4将上述信息存储到插件模型数 8. The method of claim 7 Application of model-driven development capability expansion plug according to claim, wherein: the step 1 of the specific steps are as follows: · Model Design Tool 11 to establish service definition information elements; 1.2 Model Design Tool. element referenced service definition information table establishing service definition information; 1.3 model design tool reference established business entity definition information table definition information; 1.4 model design tool definition information entity reference information to establish interface definition; 1.5 the above information is stored the basic model of data storage unit; step 2 specific steps are as follows: model design tool information defines the service data structure defined according to the service table, and generates the service data structure of service data storage unit; 3 the steps are the following: · model design tool 31 establishment procedure set definition information; 32 * model design tool class definition information creation process, and wherein the assembly procedure specified class belongs;. 3.3 model design tool plug established definition information, and to specify wherein the widget classes implement functions; · the information storage 34 to the number of plug-in model 存储单元中; 所述步骤4的具体步骤如下:·4. 1根据插件定义信息,模型设计工具生成一个插件实现类代码框架; 4. 2模型设计工具根据插件实现类代码框架编写插件实现类代码;·4. 3模型设计工具根据插件实现类代码编译并生成插件实现类程序集; 所述步骤5的具体步骤如下:模型设计工具引用基本模型定义信息和插件模型定义信息,定义与基本模型对应的插件应用定义信息,并存储到插件应用数据存储单元中,同时生成相应的插件装载类代码,并将其存储到程序类定义信息的程序类代码项中,且把生成的插件装载类代码编译并合并到插件装载类程序集中;所述步骤6的具体步骤如下:·6. 1创建基本模型类对象及其子对象,模型运行引擎从基本模型数据存储单元中读取实体定义信息和界面定义信息,根据实体类生成实体类对象,根据界面类生成界 Storage means; step 4 specific steps are as follows: · The plug 41 generates a plugin definition information model implemented design tool frame class code; 4.2 Model Design Tool according to write plug-in implementation class code class code plug implement frame. .; 43 * model design tool the widget code compiler implementation class implementation class and generates a plug assembly; step 5 specific steps are as follows: model design tool corresponding to the basic reference model definition information and the plug-in model definition information, definition of the basic model plug-in application definition information stored in the plug-in application and data storage means, while generating a corresponding plug loading class code, and the program stored in the program category code item class definition information, and the plug-in loading the generated class code compiled and incorporated into the widget class loader assembly; 6 the steps are the following: * 61 to create the basic model of the class object and its children, the model entity definitions runtime engine reads the information from the basic model of the interface and the data storage unit definition information generating entity entity classes according to the class object is generated according to the sector-based interface 类对象;·6. 2创建基本模型类对象的插件,根据已生成的基本模型类对象,读取插件应用数据存储单元中相应的插件应用定义信息,根据插件应用定义信息读取插件模型数据存储单元中的程序集定义信息和程序类定义信息,根据程序集定义信息中的程序集名称调用插件装载类程序集中的插件装载类相应装载方法创建插件实现类对象;并将插件实现类对象记录到基本模型类对象的插件适配器类对象中的插件接口列表中;·6. 3建立基本模型类对象和插件的关联,将插件登记在插件适配器类对象的插件接口列表后,调用基本模型类对象及其子对象的插件启用方法建立插件实现类对象相应方法与基本模型类对象及其子对象事件的关联,此插件启用方法中设置插件适配器类对象的插件接口列表中所记录的各插件实现类对象的激活属性,此激活属性会在激活 Class object; · 62 create the basic model of the widget class object, according to the basic model generated class object, reads the corresponding plug-in plug-in application definition information in the application data storage unit, the information reading plug according to plug-in model application definition data storage assembly definition information and program class definition information unit, the respective plug loading method of creating the assembly according to the assembly name definition information call load class program widget set widget class object classes implement load; implementation class and object recording widget the plugin interface list plugin adapter class basic model class object in the; · 63 associated basic model class objects and insert, the insert is registered in the interface list widget plugin adapter class object, call the basic model class object and plug-in child objects enable plug-in implementation methods associated with the basic method of the class object corresponding model class object and its children's events, this plug-in plug-ins to enable plug-in settings for each adapter class object's method in the plug-in interface list recorded in the implementation class activation properties of the object, this property will activate the activation 建立基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联,此激活属性会在禁用时断开基本模型类对象及其子对象的事件与插件实现类对象中相应方法的关联;·6. 4运行中,插件实现类对象响应基本模型类对象及其子对象的事件并执行相应方法完成插件功能;--6. 5基本模型类对象销毁前先断开其事件与插件实现类对象相应方法的联系,并销毁插件实现类对象;-6. 6销毁基本模型类对象及其子对象。 The corresponding event class object method to establish the basic model class object and its children events associated with the plug-in implementation of the corresponding class method object, this property will be activated off the base model class object and its children when disabled and plug-in implementation the association; * 64 operation, in response to the event widget class object implement the basic model of the class object and its children and respective method is performed to complete the plug-in function; -. 65 base model class object before its destruction events and disconnect plug Information corresponding method to achieve the object class, the class object implement plug and destruction;. -66 destroy the basic model class object and its children.
CN 201010285102 2010-09-02 2010-09-17 System and method for expanding model driving development capability by applying plug-in CN102033743B (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201010270884.4 2010-09-02
CN201010270884 2010-09-02
CN 201010285102 CN102033743B (en) 2010-09-02 2010-09-17 System and method for expanding model driving development capability by applying plug-in

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010285102 CN102033743B (en) 2010-09-02 2010-09-17 System and method for expanding model driving development capability by applying plug-in

Publications (2)

Publication Number Publication Date
CN102033743A true CN102033743A (en) 2011-04-27
CN102033743B CN102033743B (en) 2013-03-20

Family

ID=43886683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010285102 CN102033743B (en) 2010-09-02 2010-09-17 System and method for expanding model driving development capability by applying plug-in

Country Status (1)

Country Link
CN (1) CN102033743B (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103176795A (en) * 2013-02-04 2013-06-26 中国电子科技集团公司第二十八研究所 Method for applying plug-in technology to data filtering of information distribution software
CN103197932A (en) * 2013-04-19 2013-07-10 济南大学 Component business model for developing application of modeless documental database
CN103442349A (en) * 2013-08-22 2013-12-11 重庆邮电大学 Wireless sensor network firmware updating method based on XMPP
CN103793346A (en) * 2012-10-29 2014-05-14 洛克威尔自动控制技术股份有限公司 Linkable plug-in
CN103914307A (en) * 2014-04-22 2014-07-09 浪潮电子信息产业股份有限公司 Interactive-interface fast implementation method based on reusable library
CN103927168A (en) * 2014-04-02 2014-07-16 北京中交兴路车联网科技有限公司 Object-oriented data model persistence method and device
WO2014114253A1 (en) * 2013-01-24 2014-07-31 Tencent Technology (Shenzhen) Company Limited Methods and systems for creating data applications
CN105183458A (en) * 2015-08-14 2015-12-23 深圳联友科技有限公司 Software platform development method and apparatus
CN106415548A (en) * 2014-04-25 2017-02-15 塔塔咨询服务公司 A model driven computational platform for integrated design of products, materials and manufacturing processes
CN106445818A (en) * 2016-09-13 2017-02-22 郑州云海信息技术有限公司 Debug method and device for automated scripts based on model driving
US9606521B2 (en) 2011-11-11 2017-03-28 Rockwell Automation Technologies, Inc. Chainable plug-ins
CN106681718A (en) * 2016-12-16 2017-05-17 武汉中地数码科技有限公司 Toolkit-based desktop side plugin frame and implementation method thereof
WO2019179067A1 (en) * 2018-03-18 2019-09-26 平安科技(深圳)有限公司 Service logic processing method and system, computer device, and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731351A (en) * 2005-08-26 2006-02-08 南京邮电大学 A method of model driving for grid computation
CN101477462A (en) * 2009-02-12 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 Model-driven software development method used for dynamically changing system behavior

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1731351A (en) * 2005-08-26 2006-02-08 南京邮电大学 A method of model driving for grid computation
CN101477462A (en) * 2009-02-12 2009-07-08 山东浪潮齐鲁软件产业股份有限公司 Model-driven software development method used for dynamically changing system behavior

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
麻志毅等: "一种支持模型驱动开发的元建模平台的研制", 《电子学报》, vol. 36, no. 4, 30 April 2008 (2008-04-30) *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9606521B2 (en) 2011-11-11 2017-03-28 Rockwell Automation Technologies, Inc. Chainable plug-ins
CN103793346A (en) * 2012-10-29 2014-05-14 洛克威尔自动控制技术股份有限公司 Linkable plug-in
CN103793346B (en) * 2012-10-29 2018-01-19 罗克韦尔自动化技术公司 The method of the function of automatic control system, machine readable media and modification part
WO2014114253A1 (en) * 2013-01-24 2014-07-31 Tencent Technology (Shenzhen) Company Limited Methods and systems for creating data applications
CN103176795B (en) * 2013-02-04 2016-03-02 中国电子科技集团公司第二十八研究所 A kind of based on the application process of plug-in part technology in distribution of information software data filters
CN103176795A (en) * 2013-02-04 2013-06-26 中国电子科技集团公司第二十八研究所 Method for applying plug-in technology to data filtering of information distribution software
CN103197932A (en) * 2013-04-19 2013-07-10 济南大学 Component business model for developing application of modeless documental database
CN103197932B (en) * 2013-04-19 2016-05-25 济南大学 A kind of business component model of developing the application of non-mode document data storehouse
CN103442349A (en) * 2013-08-22 2013-12-11 重庆邮电大学 Wireless sensor network firmware updating method based on XMPP
CN103442349B (en) * 2013-08-22 2016-04-13 重庆邮电大学 Based on the wireless sensor network firmware update of XMPP
CN103927168A (en) * 2014-04-02 2014-07-16 北京中交兴路车联网科技有限公司 Object-oriented data model persistence method and device
CN103914307A (en) * 2014-04-22 2014-07-09 浪潮电子信息产业股份有限公司 Interactive-interface fast implementation method based on reusable library
CN106415548A (en) * 2014-04-25 2017-02-15 塔塔咨询服务公司 A model driven computational platform for integrated design of products, materials and manufacturing processes
CN105183458A (en) * 2015-08-14 2015-12-23 深圳联友科技有限公司 Software platform development method and apparatus
CN106445818A (en) * 2016-09-13 2017-02-22 郑州云海信息技术有限公司 Debug method and device for automated scripts based on model driving
CN106445818B (en) * 2016-09-13 2019-05-10 郑州云海信息技术有限公司 A kind of automatized script adjustment method and device based on model-driven
CN106681718A (en) * 2016-12-16 2017-05-17 武汉中地数码科技有限公司 Toolkit-based desktop side plugin frame and implementation method thereof
WO2019179067A1 (en) * 2018-03-18 2019-09-26 平安科技(深圳)有限公司 Service logic processing method and system, computer device, and storage medium

Also Published As

Publication number Publication date
CN102033743B (en) 2013-03-20

Similar Documents

Publication Publication Date Title
US7793256B2 (en) Methods and systems for supporting and deploying distributed computing components
Voelter et al. Product line implementation using aspect-oriented and model-driven software development
US7464366B2 (en) Programming interface for a componentized and extensible workflow model
US7451432B2 (en) Transformation of componentized and extensible workflow to a declarative format
US7055130B2 (en) Methods and systems for identifying dependencies between object-oriented elements
EP1015969B1 (en) Method and system for database application software creation requiring minimal programming
US6704743B1 (en) Selective inheritance of object parameters in object-oriented computer environment
US8712953B2 (en) Data consumption framework for semantic objects
US7000219B2 (en) Software development process
US5842020A (en) System, method and article of manufacture for providing dynamic user editing of object oriented components used in an object oriented applet or application
US7266565B2 (en) Table-oriented application development environment
US8170901B2 (en) Extensible framework for designing workflows
Riehle et al. The architecture of a UML virtual machine
US5913065A (en) System, method and article of manufacture for creating hierarchical folder components for use in a java application or applet
JP2006107478A (en) Extensible flamework for designing work flow
JP2006107479A (en) Framework for modeling cross-cutting behavioral concerns inside work flow region
US20060064667A1 (en) System and method of model-driven development using a transformation model
US7631291B2 (en) Declarative representation for an extensible workflow model
US20080022257A1 (en) Business process execution language (bpel) application generator for legacy interfaces
JP5710852B2 (en) A framework for seamless authoring and editing of workflows at design and runtime
US7865350B1 (en) Partitioning a model in modeling environments
Erdweg et al. Evaluating and comparing language workbenches: Existing results and benchmarks for the future
US5790855A (en) System, method and article of manufacture for type checking appropriateness of port connection and variable type matching in connection with multiport object-oriented components
KR100938036B1 (en) System supporting animation of graphical display elements through animation object instances
US7370315B1 (en) Visual programming environment providing synchronization between source code and graphical component objects

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
C14 Grant of patent or utility model
C41 Transfer of patent application or patent right or utility model
CP03 Change of name, title or address