基于SEF框架的代码生成工具的设计与实现

来源 :山东大学 | 被引量 : 0次 | 上传用户:xiaojing795130
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机技术的发展,应用软件的规模越来越大,软件开发环境变得愈发复杂。企业对软件的生产效率要求提升,对系统快速交付的要求也逐渐提高。为此公司内部自主研发了智能企业级框架SEF,以加快系统开发、解决企业应用开发的复杂性;但开发人员仍以手工编码为主,存在代码风格不统一、代码调试困难、开发效率较低等问题。因此,为了提高代码的规范性、准确性以及开发人员的开发效率,需要设计代码生成工具实现代码的自动生成。目前,常用的模型驱动、模板驱动的代码生成器使用起来较复杂、需要用户预先构建数据模型或者大量的模板,无法直接生成符合SEF框架规范的代码,且很难实现界面组件属性的自动化配置,代码调试困难。基于以上背景与现状,详细分析了基于SEF框架开发的业务系统的特点,在充分考虑开发人员编码习惯、风格以及主要工作量的基础上,设计与实现基于SEF框架的专用代码生成工具,该工具面向的群体是公司内部使用SEF框架的开发人员。实现SQL到Java代码及界面代码的自动生成,自动化配置界面组件属性,帮助开发人员从编码的机械性劳动中解脱出来,把更多的时间和精力投入到业务逻辑的分析与开发上。本文主要从研究背景、需求分析、概要设计、详细设计、实现与测试等方面构建了基于SEF框架的代码生成工具。系统主要包括五个部分,分别为知识库管理、调试SQL、代码生成、代码转换和基本配置。知识库管理模块负责列组件知识的构建、检索、查询等,融合基于SEF框架的项目代码和数据库数据字典的数据,构造以列为中心的界面组件关系网络,采用Oracle和Neo4j相结合的模式存储以列为主的属性、关系等;根据SQL检索知识为界面组件推荐属性值,解决界面组件属性繁多导致的配置繁琐问题。调试SQL模块负责SQL的在线可视化调试,解析SQL、分析执行结果,连接不同的数据库检测SQL的准确性。代码生成模块负责业务逻辑层Java代码和表现层Grid、Form代码的生成,以SQL为输入,依据基于模板的代码自动生成技术生成符合SEF框架规范的代码,解决代码样式不统一等问题。代码转换模块负责Java、Grid、Form代码与SQL之间的相互转换,采用文件解析的方式从代码串中获取SQL、组件属性等数据,组织数据进行代码转换。基本配置模块负责配置数据库连接等系统所需的基本信息,为代码生成等功能提供支持。目前系统已在公司内部上线,供500多名开发人员正常使用。经过一年的使用,开发人员使用该工具生成的代码多达上百万行。不仅规范了业务系统的程序代码,还提高了开发人员的开发效率,降低了维护成本,达到了预期效果。
其他文献
随着信息技术的快速发展,各行各业都产生了大量的高维数据,如何挖掘隐藏在高维数据中的宝贵信息是现代机器学习研究的一个热点。然而高维数据存储量巨大,计算代价十分高昂,使
伴随着无线通信技术的迅速发展,人们对宽频带、高速率、大容量通信系统的需求也日益增大。为应对大容量固定宽带无线接入和下一代移动通信系统基站高速数据回传等方面的迫切
目的:观察糖尿病大鼠肾脏间质纤维化改变,探讨耐力和抗阻运动对糖尿病大鼠肾脏间质纤维化的影响及可能机制。方法:健康雄性SD大鼠随机分为对照组和造模组,分别饲以普通和高糖
随着移动互联网行业的发展,用户由主动获取资讯慢慢转向被动去接收,第三方资讯类产品也应运而生,例如网易新闻,今日头条,手机百度等等。各产品为提高自己的品牌感知度,会开发
目的:在体育运动中,过度疲劳是因为运动训练量负荷过大,超出机体的承受能力,致使多器官功能紊乱的病理状态。因此,在过度疲劳状态下要及时调整运动方式和及时休息,从而防止由
语音增强作为语音数字信号处理的一个重要分支,旨在提高被各种各样噪声干扰的语音质量和可懂度,它主要应用于语音通信、语音识别和语音压缩编码等数字处理系统的前期预处理中
平权行动是指上世纪60年代初以来,美国为了落实《民权法案》,消除仍然存在的“事实上的”种族不平等的状态,而实行的一套主要在政府项目承包、就业和高等教育领域偏向少数族
在波兰尼提出“隐性知识”的概念之后,人们的知识论发生了重大的转向。人们认识到隐性知识的重要教育价值,也开始认识到知识教学的有效性应该设法通过多元的学习活动引导学生
乒乓球运动中,“常胜将军”中国乒乓球队在以绝对优势领跑其他各队的同时,还肩负着把自身先进技、战术推广到世界乒坛的使命。中国乒乓球队的强大不仅体现在技术上,更体现在
日语报刊短评是新闻中常见的一种评论,具有言简意赅的特点。通过短评,可以及时了解日本的最新动态。因此,在翻译实践中选取了2016年1月至12月份的《日本经济新闻》的“春秋”