[发明专利]一种基于模型驱动生成代码的方法及系统有效
申请号: | 201510556852.3 | 申请日: | 2015-09-06 |
公开(公告)号: | CN105242914A | 公开(公告)日: | 2016-01-13 |
发明(设计)人: | 陈勇;胡中骥 | 申请(专利权)人: | 江苏马上游科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 212009 江苏省镇江新区丁*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模型 驱动 生成 代码 方法 系统 | ||
技术领域
本发明涉及生成代码的方法及系统,具体地说是一种基于模型驱动生成代码的方法及系统。
背景技术
在我们开发程序的过程中,特别是开发一些业务系统的过程中,一些重复的代码总是不可避免的,比如资料的增删改查界面的代码、数据库语句等,这些工作如果要开发人员去手动完成话,不仅会降低开发效率,而且会带来很多潜在缺陷,从而提高了项目的人力资源成本、增大了项目的风险。采用代码生成技术能大幅提高软件开发的质量和生产率,降低软件开发的风险,代码生成是一个专注于解放编码生产力,用程序来编程的研究方向。它是MDA思想的一个重要的技术基础。MDA的基本思想是在软件开发中以模型为驱动,由模型来生成或编译成程序代码,实现软件需求。只有在代码生成技术获得充分发展的基础上,模型驱动架构的思想才能得以实现。
目前,大多数代码生成器都是单一的通过数据库和相关的参数设计来实现,因此灵活性欠佳,不能完全满足软件开发的实际需要,难以在软件开发项目中得到充分的应用。因此在大一些的开发团队中都在使用着各种或公开或自主开发的代码生成工具。
发明内容
本发明的目的是为了解决上述存在的技术问题,提供一种基于模型驱动生成代码的方法及系统。
本发明所采用的技术方案是:
一种基于模型驱动生成代码的方法及系统,系统在数据模型层由数据库模型、模型架构以及代码模板三部分构成,在代码生成的过程中,由模型分析模块从数据库模型及操作模型中获取有编程人员所指定的模型对象,通过模板引擎根据这些对象调用对应的代码模板,最后,代码生成器负责清理这些模型对象之间的关系,并根据模板引擎产生最终的基于对象的代码。
进一步的,模型架构文档Schema:采用XML来存储模型数据,作为代码生成的数据源,该数据模型XML文档中的结构和语法由XMLSchema来定义,Schema定义了数据模型的规范和格式。
模型分析:主要负责读取数据模型和操作模型XML文件中的数据,并生成类似DOM的内存数模型,作为代码生成器的数据源,完成对象和控制层的数据准备工作。
模板引擎:采用目前比较流行的VeloCity、FreeMaker等模板引擎技术,用数据模型和操作模型中的数据替换模板文件中的可变部分生成最终的代码。
代码生成:根据上述生成的基础数据配合系统架构文档等信息完成代码的生成,在代码生成器中封装了模型到代码的生成规则和转换逻辑。
本发明的有益效果是,
本发明公开的一种基于模型驱动生成代码的方法及系统,
1、积极性的代码生成模式
本系统的代码生成模式属于积极的代码生成器,即在产生代码后伴随项目的进展对其自动生成的代码可以进行二次维护。用户可在生成的代码文件的标记区域里进行代码的增删改,当代码生成器产生新一轮的代码时,将只修改其原先自动生成的代码。在二次生成的过程中如果发现与手工代码相冲突的代码段,系统自动生成警告消息,并指导用户进行操作。
2、具有双向推导的代码生成机制
系统支持双向代码生成框架,能够根据已经生成代码对框架模板做反向推导,并且能够以插件的方式重构现有代码,支持模型检查,在生成可执行代码前进行相应的模型一致性检查,支持JUNIT测试验证。
3、具有插件式的代码生成架构
系统以自主开发的eclipse插件形式完成交付,能够与目前主流开发IDE完美集成,并提供完整的接口文档,方便与其他第三方系统进行集成。
4、高效率、高质量。
代码生成的工作主要是建立和维护输入模型,而这些输入模型基本上或全部都能从设计模型转化过来,工作量很少,因而软件生成率得到成倍提高。同时,代码生成技术使用代码模板来生成代码,模板越完善,生成的代码就越好。模板改善后,所有生成的代码质量都能提高,并且代码的命名和风格都能保持一致。因而采用代码生成技术能获得更高质量的代码。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为编码阶段流程示意图;
图2为系统架构图;
图3为代码生成器执行流程图;
图4为系统工作流程图。
具体实施方式
为了加深对本发明的理解,下面结合附图和实施例对本发明作进一步详细的说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明的实现原理:
基于数据库模型
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏马上游科技股份有限公司,未经江苏马上游科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510556852.3/2.html,转载请声明来源钻瓜专利网。