领域专用语言DSL的图形化处理方法和设备与流程

文档序号:20092228发布日期:2020-03-13 07:06阅读:1031来源:国知局
领域专用语言DSL的图形化处理方法和设备与流程

本发明涉及计算机网络领域,更为具体而言,涉及一种领域专用语言dsl的图形化处理方法和设备。



背景技术:

dsl(领域专用语言,domainspecificlanguage)是一种专门用于特定的业务领域的抽象语法,与sql或者javascript类似。但是,dsl语言更多地是针对特定领域,解决该特定领域的问题。

目前,领域专用语言dsl的设计和实现需要复杂的代码程序,由专门的技术人员编写,也没有其他辅助dsl编写的工具。



技术实现要素:

本发明提供一种领域专用语言dsl的数据处理方法,通过创建java类,将dsl脚本的语句片段映射到java类的方法,还将dsl的语句片段转换为图形化的block,并将block转译为dsl片段,从而能够通过组合图形化的块来实现dsl脚本的编写,辅助dsl程序设计,提高了dsl应用的友好性。

本发明一些实施方式提供一种通用的领域专用语言(dsl)的设计、实现和图形化编写方式。具体而言,提供一种领域专用语言dsl的图形化处理方法,包括:创建java类,所述类包括方法;将dsl脚本的语句片段映射到所述java类的方法;根据所述dsl脚本的语句片段的语义实现所述java类的方法;根据blockly规范将所述语句片段转换为图形化的块,以便组合所述图形化的块,实现所述图形化的块转译为dsl语句片段。

本发明的一些实施方式还提供一种计算机设备,包括处理器;和存储器,用于存储计算机指令,所述计算机指令适于被所述处理器加载以执行上述的领域专用语言dsl的图形化处理方法。

本发明的一些实施方式还提供一种计算机可读介质,其存储有计算机可读指令,所述指令适于被处理器加载以执行上述的领域专用语言dsl的图形化处理方法。

附图说明

图1示出了根据本发明实施例的一种领域专用语言dsl的数据处理方法的流程示意图。

图2示出了根据本发明实施例的图形化的块的调用示意图。

图3示出了根据本发明实施例的计算机设备的结构示意图。

具体实施方式

现参考示例性的实施方式详细描述本发明,一些实施例图示在附图中。以下描述参考附图进行,除非另有表示,否则在不同附图中的相同数字代表相同或类似的元件。以下示例性实施方式中描述的方案不代表本发明的所有方案。相反,这些方案仅是所附权利要求中涉及的本发明的各个方面的系统和方法的例子。

参见图1,图1示出了根据本发明实施例的一种领域专用语言dsl的数据处理方法的流程示意图,该方法100可包括:步骤110、步骤120、步骤130和步骤140,下面结合具体的实施例对上述的步骤进行说明。

步骤110,创建java类,所述类包括方法。

java是面向对象的计算机程序设计语言,其支持多种数据结构,例如,类、实例、对象和方法等。其中,类是具有共同属性和行为的对象的集合,其定义对象的属性和方法。其中,类的属性是对象数据的描述,方法是对象的行为。

本发明实施例中,dsl脚本可以是文本格式的文件,其是基于行为驱动开发(behaviordrivendevelopment,bdd)开发的程序。一个dsl脚本可以是一个文本文件,一个dsl脚本包含一个feature行,用于阐述本脚本的基本职责。一个bdd脚本包含多个scenario行,一个scenario代表一种场景,一个scenario包含多个action行,每个action行代表一个动作,以动作引导词开头。其中,动作引导词可包括given、when、and或者then,在一个dsl脚本中,这些动作引导词可以交叉使用,完成预计的功能。given描述给予特定的条件或者状态或者设定,when描述特定的条件得到满足,and描述进一步强化条件或者状态或者设置,then描述根据上述条件或者状态或者设置,执行特定的过程。

步骤110中创建的java类可包括对象和方法,作为dsl语句片段的宿主。在一些实施例中,dsl语句片段可以是一个动作action行,该action行以given、when、and或者then中的一个引导词开头,实现一个对应的动作action。

步骤120,将所述dsl脚本的语句片段映射到所述java类的方法。

在一些实施例中,步骤120可以包括:采用java注解的方式将dsl脚本的语句片段映射到java类的方法。在一些实施例中,dsl语句片段可以是一个动作action行,其可以对应到java类的方法。

java类的方法需要具有与该action行对应的动作注解,其中,该动作注解具有进行动作action行匹配的值value部分。在一些实施例中,动作注解的value部分可以是正则表达式形式。根据动作注解的值部分可以对dsl脚本的动作行执行action行匹配,并将匹配出来的数据作为该java类的方法的参数。在一些实施例中,匹配出来的数据是文本形式的数据。

下面以一个具体的例子说明java注解。

dsl脚本中的每一行是一个动作(action)行,代表需要达成的目标,例如:

givenvariableapibasewithdefaulthttp://172.25.12.166:7101

第一个单词given是动作引导词,是关键字,这个action要对应的后端的一段代码逻辑,这样cucumber框架需要知道当出现类似这样的dsl脚本行时,应该执行什么样的动作。cucumber是一个支持行为驱动开发的的工具库,提供多种语言实现,支持java,net等主流开发语言。

例如,下面的例子,就是要执行java方法requireattribute:

@given注解对应于动作引导词given,其他的动作引导词存在相应的动作注解。

每个动作注解都有一个正则表达式作为其值,例如:

这个正则表达式的含义是,匹配以variable开头,中间含有withdefault,并以其他任意字符结尾的的动作action行。

在运行脚本时,匹配的部分,将被依次传递到一个所对应的java方法的参数,这里,apibase将被设置为java方法参数attributename的值,而http://172.25.12.166:7101将被设置为参数defaultvalue的值。

步骤130,根据所述dsl脚本的语句片段的语义实现所述java类的方法。

在本发明的实施例中,作为dsl的语句片段(例如,动作action行)的宿主的java类的方法还需要实现,如果不实现该java类的方法,即便cucumber框架匹配到这行dsl脚本,但是不知道要具体执行何种操作。作为dsl的语句片段的宿主的类,除了需要实现之外,还需要如上所述的注解,如果不进行注解,那么cucumber框架没法获知dsl的动作action行的含义。

步骤140,根据blockly规范将所述语句片段转换为图形化的块,以便组合所述图形化的块,实现所述图形化的块转译为dsl语句片段。

图形化的块block可以是在预定编辑器中进行拖拽的图形化的块,该图形化的块可以设置在编辑器的工具栏中,并且能够被用户拖拽到画布区域。该图形化的块可配置有可输入部分和可见文本部分以及上下左右衔接的设置。根据块的上下左右衔接的设置,可以将拖拽的多个图形化的块进行组合。在图形化的块被拖拽到画布界面之后,块的可输入部分可以呈现在该图形化的块的预定区域,接收用户的输入。一种图形化的块可以如图2所示,图2的左侧为工具栏,呈现可供拖拽的块,右侧为画布区域,用户可以将工具栏一侧选定的块拖拽到画布区域,并且可以拖拽多个块,进行组合。

在一些实施例中,图形化的块可对应画布区域中的一个block实例。在另外一些实施例中,图形化的块可以对应画布区域的两个或多个block实例。

每个块对应于dsl脚本的每一行,例如,

givenvariableapibasewithdefaulthttp://172.25.12.166:7101

givenvariableprofilewithdefaultshawn-test-001

上述两个动作action行对应于同一个block的定义,但是在拖拽的画布界面上,属于两个block的实例。除开动作引导词given之外,变化的部分是可输入部分,如图2中的scenanonameis后面的部分,属于可输入部分,这些可以由用户自行填写。对于上述两个动作action行,用户可以在图形化的块的可输入部分填写apibase与http://172.25.12.166:7101,也可以在图形化的块的可输入部分填写profile和shawn-test-001。其他的部分,是可见文本部分,例如,图2中的scenanonameis属于可见文本部分,其可以呈现在图形化的块的预定区域,供用户查看。可见文本部分是固定不变的,这部分是用户没法改变的,主要作用是让用户了解该block的语义。可见文本部分并不需要和dsl行的文本对应,可见文本仅仅用来辅助用户了解块的含义。

当处理任意图形化的块block时,将调用该块的翻译函数来翻译成特定的dsl语句片段。其中,翻译函数的结果应该是一个正确的,符合要求的dsl行。所有的block块都正确翻译了dsl行,那么就最终得到了完整的dsl脚本。

本发明还提供一种计算机设备。如图3所示,该计算机设备300可包括处理器321、输入/输出(i/o)设备322、存储器323、数据库324和显示器325。

处理器321可为一个或多个已知的处理装置,其可以加载存储器323中存储的用于实现上述方法的计算机指令以使计算机设备执行上述的方法。

i/o设备322可被配置以允许数据被接收和/或传输。i/o设备322可包括一个或多个数字和/或模拟通信设备,其允许计算机设备300与其他机器和设备通信。计算机设备300还可包括一个或多个数据库324,或通过网络与一个或多个数据库324通信连接。例如,数据库324可以是适于进行上述所描述的方法的关联数据处理的任意合适的数据库。

显示器325可包括显示屏,其可用于显示输入/输出设备322的输出结果以及数据处理过程中的中间结果。

本发明还提供一种计算机可读的存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上面所描述的用于应用程序接口api测试的方法。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1