论文部分内容阅读
随着高科技的飞速发展,计算机成为人们生活中必不可少的日常生活工具,人和计算机的交互也越来越频繁。在这个高科技时代中,大量的项目接踵而至。人们都不善于执行重复工作,都会逐渐厌烦,并开始省略步骤或错过表明出错的指示器。当尽力完成同一件事情几十次以上时,人类的思维就会更糟糕,这就影响了项目的效率。如何让管理人员和业务专家在没有技术背景的情况下执行任务和管理,让企业能够随着业务变化自主配置和更新功能模块,即实现自动化任务执行和管理,这成为众多管理人员和企业亟待需求的工具。针对这种需求,本文研究并设计实现了基于DSL的自动化任务执行和管理工具——DSLMAKE。DSL(Domain Specific Language,邻域特定语言)指软件开发中出于某特定考虑而设计的小的、目标明确的语言。它们的作用是,使用某特定领域里惯用的符号或者表示法对该领域的实体或者流程进行建模。这就是它们区别于那些提供统一符号表示的通用建模语言(如UML)的地方。另外一个区别是UML经常被用作于(定义如此,非只能用于)文档分析或者设计交付,而领域特定语言既可以用作建模工具,还可以用作代码生成器。DSL是面向问题域的,即DSL是用来解决特定问题。它更多的是表述特定问题域的,这是和常见编程语言的最大区别。DSL的终极目的是通过抽象来自底层的通用编程语句的方法,提高软件开发生产力水平。对于开发者在如何处理语言的设计和实现方面,有着非常重要的指导意义。本文通过DSL思想和其优势设计并实现了一个适用于自动化任务执行和管理的工具——DSLMAKE,该管理工具使用动态编程语言Python的元编程技术实现了DSL的一些操作,把DSL封装成独立的工具,该管理工具根据敏捷价值观制定迭代式的开发过程和版本计划,并采用版本仓库管理相关文档和全部代码,实现了自动化任务的执行和管理。DSLMAKE的模块和功能具体有:(1) task模块,核心模块,负责task的建立,运行,以及task列表的输出。(2) shell模块,辅助模块,负责控制运行shell语句。(3) path模块,辅助模块,负责控制文件系统目录的功能,具有跨平台的特性。(4) flag模块,辅助模块,负责实现标记的功能集。(5) bootstrap模块,外部工具模块,负责实现脱离工具环境的自运行makefile功能集。设计实现的DSLMAKE的优势和特性有:(1)使用DSL语法定义任务,简洁、清晰地表达任务含义;(2)以任务的方式创建和运行脚本。对于大型的应用,几乎总需要为数据库迁移、清空缓存或者代码维护等编写脚本,对于每一项任务可能需要些若干脚本,这会让管理变得复杂。用任务的方式整理到一起,让管理变得轻松很多;(3)简单易用的标记功能,可按需要标记不同的任务阶段,并在命令行条件下使用;(4)追踪和管理任务之间的依赖。DSLMAKE提供了轻松管理任务之间依赖的方式,任务之间的先后执行很优化;(6)完整的工具包,便于安装和使用;(7)跨平台和文件系统。