CN106066797A - 基于dsl理念的优化模型驱动开发方法和装置 - Google Patents
基于dsl理念的优化模型驱动开发方法和装置 Download PDFInfo
- Publication number
- CN106066797A CN106066797A CN201610385812.1A CN201610385812A CN106066797A CN 106066797 A CN106066797 A CN 106066797A CN 201610385812 A CN201610385812 A CN 201610385812A CN 106066797 A CN106066797 A CN 106066797A
- Authority
- CN
- China
- Prior art keywords
- user interface
- template
- interface templates
- dsl
- theory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于DSL理念的优化模型驱动开发方法和装置,其中,基于DSL理念的优化模型驱动开发方法,包括,建立后端的元数据模板;建立后端的用户界面模板;建立前端的用户界面模板;建立前端的业务模板;架构前后端用户界面模板的转换框架;输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。实现能将逻辑模型转换成满足非功能性需求的物理文件的优点。
Description
技术领域
本发明涉及互联网领域,具体地,涉及一种基于DSL理念的优化模型驱动开发方法和装置。
背景技术
目前,在企业软件领域中,通常可见软件开发以创建逻辑模型为开头,统一建模语言(UML,Unified Modeling Language)很好的揭示了这一点,包括实体模型、流程模型、状态模型等。另外其他常见的业务规则模型、组织模型等,也都刻画了软件开发所需要的具体功能模型。
基于DSL(特定领域语言,Domain Specific Language)的模型驱动开发(MDD)、特定领域建模 DSM(Domain Specific Modeling)等高抽象开发方法,更进一步地帮助开发步骤自动化,方便代码生成。MDD的基本思想是让开发中心从编程转移到高级别抽象中去,通过模型转成代码或其他工件来驱动部分或全部的自动化开发。
传统的DSL定义如图1所示,包括元数据模型(metamodels)、模型(models)、模板(templates)、模型文本转换(M2T),模型转换(M2M)。
DSL的工作过程如图2所示,解析“DSL脚本”获取“语义模型”,再利用“语义模型”生成简单的文本文件,如源代码、数据库脚本等。
然而,基于DSL的模型驱动开发方法仍然不能满足将逻辑模型转换成满足非功能性需求的物理文件。
“模板”作为一个被广泛性使用的词汇,其基本含义已被大家所熟知。无论是从狭义理解,还是从广义理解,“模板”都具备了如下特点:
模板即样板,作为样板必然是具有高度的复用性;
模板即源头,作为源头必然是基础的所在;
DSL从定义上就完全能满足“模板”的概念,从较高的抽象层次上提出了一个完善的模板搭建、模板建立、及模板转换的过程,并且DSL的软件架构可以跨接软件工程过程各阶段之间的鸿沟,特别是通过代码生成可以很好的进行设计和实现阶段的衔接。
发明内容
本发明的目的在于,针对上述问题,提出一种基于DSL理念的优化模型驱动开发方法和装置,以实现能将逻辑模型转换成满足非功能性需求的物理文件的优点。
为实现上述目的,本发明采用的技术方案是:
一种基于DSL理念的优化模型驱动开发方法,包括,
建立后端的元数据模板;
建立后端的用户界面模板;
建立前端的用户界面模板;
建立前端的业务模板;
架构前后端用户界面模板的转换框架;
输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
优选的,所述建立前端的用户界面模板具体为:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。
优选的,每类前端的用户界面模板由一个或多个模型文件组成。
优选的,建立前端的业务模板具体为:
从不同的领域模型的不同业务需求中抽象出基本的业务模板,将领域的业务流程框架化和规划化,使前端的业务模板具有更高的复用性。
同时本发明技术方案还公开一种基于DSL理念的优化模型驱动开发装置,包括,
后端元数据模板建立单元:建立后端的元数据模板;
后端用户界面模板建立单元:后端的用户界面模板;
前端用户界面模板建立单元:建立前端的用户界面模板;
前端业务模板建立单元:前端的业务模板;
前后端用户界面模板架构单元:架构前后端用户界面模板的转换框架;
物理工作文件输出单元:输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
优选的,所述建立前端的用户界面模板具体为:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。
优选的,每类前端的用户界面模板由一个或多个模型文件组成。
优选的,建立前端的业务模板具体为:
从不同的领域模型的不同业务需求中抽象出基本的业务模板,将领域的业务流程框架化和规划化,使前端的业务模板具有更高的复用性。
本发明的技术方案具有以下有益效果:
本发明针对领域模型需要产生不同的物理工作文件,以DSL的概念为封装,结合“用户界面和交互模板”和“业务模板”,抽象出可以单独的模板和模板集合,模板既抽象出代表领域模型元素的框架,也提供了怎样把领域模型的元素转换为相关的物理文件元素的指令,实现能将逻辑模型转换成满足非功能性需求的物理文件的目的。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为现有的DSL定义示意图;
图2为DSL的工作过程原理框图;
图3为本发明实施例所述的基于DSL理念的优化模型驱动开发方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
一种基于DSL理念的优化模型驱动开发方法,包括,
建立后端的元数据模板;
建立后端的用户界面模板;
建立前端的用户界面模板;
建立前端的业务模板;
架构前后端用户界面模板的转换框架;
输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
优选的,所述建立前端的用户界面模板具体为:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。
优选的,每类前端的用户界面模板由一个或多个模型文件组成。
优选的,建立前端的业务模板具体为:
从不同的领域模型的不同业务需求中抽象出基本的业务模板,将领域的业务流程框架化和规划化,使前端的业务模板具有更高的复用性。
同时本发明技术方案还公开一种基于DSL理念的优化模型驱动开发装置,包括,
后端元数据模板建立单元:建立后端的元数据模板;
后端用户界面模板建立单元:后端的用户界面模板;
前端用户界面模板建立单元:建立前端的用户界面模板;
前端业务模板建立单元:前端的业务模板;
前后端用户界面模板架构单元:架构前后端用户界面模板的转换框架;
物理工作文件输出单元:输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
优选的,所述建立前端的用户界面模板具体为:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。
优选的,每类前端的用户界面模板由一个或多个模型文件组成。
优选的,建立前端的业务模板具体为:
从不同的领域模型的不同业务需求中抽象出基本的业务模板,将领域的业务流程框架化和规划化,使前端的业务模板具有更高的复用性。
主要过程如图3所示:
下面是本文所述模型驱动开发方法的主要流程:
建立后端的元数据模板;
建立后端的用户界面模板;
建立前端的用户界面模板;
建立前端的业务模板;
架构前后端用户界面模板的转换框架;
输出物理工作文件。
建立后端的元数据模板:
使用UML等方式都可以较为轻便地构建企业软件的数据模型,因此此过程不在这里多加赘述。
建立后端用户界面模板:
根据领域模型的需求,可以创建相应的对象,并通过属性和方法来定义模型的特性和功能。熟知的编程语言中,C#、Ruby、Java等通用语言都可以满足建立后端元数据模型的要求,下面以Java为例进行举例描述:
在ERP产品中经常涉及到的一个概念叫“单据”,包括“收付单据”、“物料单据”、“销售单据”等,每张单据中表示单据特性的对象称之为“单据项”,不同的“单据项”代表了不同的含义,可以是单据编码、单据名称、单据数量等,同时在“单据项”中定义每个特性的具体属性。
在此,我们在Java中定义一个单据对象模型用来代表单据,并定义单据项对象用来表示单据特性。
建立前端用户界面模板:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。其中每类模型文件可以由一个或多个模型文件组成。
以企业单据为例,不论是采购单据或销售单据,必然都有单据数量、单据金额等,不同的领域模型之间是能够抽取出统一的界面模型模板。当领域模型的数量更大时,也必然是可以建立更多类型的界面模型模板,而这些界面模型模板中又是能够抽象出更底层的模型文件。
建立前端的业务模板:
从不同的领域模型的不同业务需求中抽象出基本的业务模型,将领域的业务流程框架化、规划化,使之具有更高的复用性。
架构前后端用户界面模板的转换框架:
在建立前后端用户界面模板后,再衔接框架将两者嫁接起来,使之行之有效。
输出物理工作文件:
选择目标平台后,根据领域的不同请求参数加载不同的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于DSL理念的优化模型驱动开发方法,其特征在于,包括,
建立后端的元数据模板;
建立后端的用户界面模板;
建立前端的用户界面模板;
建立前端的业务模板;
架构前后端用户界面模板的转换框架;
输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
2.根据权利要求1所述的基于DSL理念的优化模型驱动开发方法,其特征在于,所述建立前端的用户界面模板具体为:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。
3.根据权利要求2所述的基于DSL理念的优化模型驱动开发方法,其特征在于,每类前端的用户界面模板由一个或多个模型文件组成。
4.根据权利要求1所述的基于DSL理念的优化模型驱动开发方法,其特征在于,建立前端的业务模板具体为:
从不同的领域模型的不同业务需求中抽象出基本的业务模板,将领域的业务流程框架化和规划化,使前端的业务模板具有更高的复用性。
5.一种基于DSL理念的优化模型驱动开发装置,其特征在于,包括,
后端元数据模板建立单元:建立后端的元数据模板;
后端用户界面模板建立单元:后端的用户界面模板;
前端用户界面模板建立单元:建立前端的用户界面模板;
前端业务模板建立单元:前端的业务模板;
前后端用户界面模板架构单元:架构前后端用户界面模板的转换框架;
物理工作文件输出单元:输出物理工作文件,即根据请求参数加载后端的元数据模板、后端的用户界面模板、前端的用户界面模板和前端的业务模板中的模板文件,解析模板文件中的指令,生成最终物理工作文件,然后在前端浏览器上加载物理工作文件。
6.根据权利要求5所述的基于DSL理念的优化模型驱动开发装置,其特征在于,所述建立前端的用户界面模板具体为:
根据领域模型的用户界面需求,对领域模型进行结构化和抽象化,将技术实现与领域业务相分离,从中抽取出公共的模型模板。
7.根据权利要求6所述的基于DSL理念的优化模型驱动开发装置,其特征在于,每类前端的用户界面模板由一个或多个模型文件组成。
8.根据权利要求5所述的基于DSL理念的优化模型驱动开发装置,其特征在于,建立前端的业务模板具体为:
从不同的领域模型的不同业务需求中抽象出基本的业务模板,将领域的业务流程框架化和规划化,使前端的业务模板具有更高的复用性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610385812.1A CN106066797A (zh) | 2016-06-03 | 2016-06-03 | 基于dsl理念的优化模型驱动开发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610385812.1A CN106066797A (zh) | 2016-06-03 | 2016-06-03 | 基于dsl理念的优化模型驱动开发方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106066797A true CN106066797A (zh) | 2016-11-02 |
Family
ID=57421060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610385812.1A Pending CN106066797A (zh) | 2016-06-03 | 2016-06-03 | 基于dsl理念的优化模型驱动开发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106066797A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831279A (zh) * | 2019-04-22 | 2020-10-27 | 华为技术有限公司 | 界面代码生成方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403968A (zh) * | 2008-11-20 | 2009-04-08 | 用友软件股份有限公司 | 一种基于模板的模型驱动软件开发方法和系统 |
EP2112593A1 (en) * | 2008-04-25 | 2009-10-28 | Facton GmbH | Domain model concept for developing computer applications |
CN101794226A (zh) * | 2010-03-08 | 2010-08-04 | 山东大学 | 一种适应多业务抽象层次的服务化软件构造方法和系统 |
-
2016
- 2016-06-03 CN CN201610385812.1A patent/CN106066797A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2112593A1 (en) * | 2008-04-25 | 2009-10-28 | Facton GmbH | Domain model concept for developing computer applications |
CN101403968A (zh) * | 2008-11-20 | 2009-04-08 | 用友软件股份有限公司 | 一种基于模板的模型驱动软件开发方法和系统 |
CN101794226A (zh) * | 2010-03-08 | 2010-08-04 | 山东大学 | 一种适应多业务抽象层次的服务化软件构造方法和系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831279A (zh) * | 2019-04-22 | 2020-10-27 | 华为技术有限公司 | 界面代码生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101763064B (zh) | 面向工艺对象的飞机复杂构件数控加工工艺设计系统及方法 | |
CN106873974A (zh) | 智能代码生成引擎系统及方法 | |
CN105512304A (zh) | 在线生成互联网应用方法和系统集成方法及支撑平台 | |
CN105260189A (zh) | 基于模型驱动生成代码的方法及系统 | |
EP1441238A3 (en) | Modeling in-situ reservoirs with derivative constraints | |
CN103092589A (zh) | 一种基于ssh框架的代码自动生成方法 | |
CN101403968A (zh) | 一种基于模板的模型驱动软件开发方法和系统 | |
El Fazziki et al. | A service oriented information system: a model driven approach | |
CN106066797A (zh) | 基于dsl理念的优化模型驱动开发方法和装置 | |
Bézivin et al. | On the applicability scope of model driven engineering | |
Jian-li et al. | CAD system design on standard part based on software reuse | |
CN108121537A (zh) | 一种软件生产线系统及其生产方法 | |
Nguyen et al. | Agile development of platform independent model in model driven architecture | |
Aboulsamh et al. | Towards a model-driven approach to information system evolution | |
CN102681830B (zh) | 一种比较程序文本的方法和设备 | |
Dhar et al. | Learning from prototypes | |
Ibrahimi et al. | Model Slicing on Low-code Platforms. | |
Wijekoon et al. | Combining Model Driven Development and Agile Software Development | |
Ni et al. | Togaf for agile soa modelling | |
Fallon et al. | Automated REA (AREA): a software toolset for a machine-readable resource-event-agent (REA) ontology specification | |
CN105354175B (zh) | 一种数据转换方法及系统 | |
CN105574012B (zh) | 备课文档的创建方法、备课文档的创建系统和服务器 | |
Hatebur et al. | Deriving software architectures from problem descriptions | |
Lochmann et al. | The sales scenario: A model-driven software product line | |
Laguna et al. | Feature patterns and multi-paradigm variability models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161102 |