CN116755669A - 一种基于dsl语言操作模型的低代码开发方法和工具 - Google Patents

一种基于dsl语言操作模型的低代码开发方法和工具 Download PDF

Info

Publication number
CN116755669A
CN116755669A CN202310719113.6A CN202310719113A CN116755669A CN 116755669 A CN116755669 A CN 116755669A CN 202310719113 A CN202310719113 A CN 202310719113A CN 116755669 A CN116755669 A CN 116755669A
Authority
CN
China
Prior art keywords
dsl
model
task
dsl language
code
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
Application number
CN202310719113.6A
Other languages
English (en)
Inventor
郑风
宋杨
王轩
秦钢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Diji Intelligent Technology Co ltd
Original Assignee
Hangzhou Diji Intelligent Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Diji Intelligent Technology Co ltd filed Critical Hangzhou Diji Intelligent Technology Co ltd
Priority to CN202310719113.6A priority Critical patent/CN116755669A/zh
Publication of CN116755669A publication Critical patent/CN116755669A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明属于计算机技术领域,特别涉及一种基于DSL语言操作模型的低代码开发方法和工具,其中,方法包括以下步骤:获取任务需求;根据任务需求进行领域建模,得到业务逻辑;基于业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;根据预设的可视化编辑器创建任务模型;根据任务模型的操作生成DSL代码;执行DSL代码。本发明提供的基于DSL语言操作模型的低代码开发方法将传统的业务抽象化为任务模型,通过定义任务模型的属性、行为、事件,自动生成一整套横跨前后端的关于该业务的增删改查等操作,通过定义DSL语言,描述了对任务模型的各种动作,用户开发时只需要调整DSL的内容,就可以达到操作业务的目的,大大地加快了业务开发的效率。

Description

一种基于DSL语言操作模型的低代码开发方法和工具
技术领域
本发明涉及计算机领域,尤其涉及一种基于DSL语言操作模型的低代码开发方法和工具。
背景技术
传统的业务开发需要从头开发页面、逻辑、数据层,然后上线部署运行。具体的开发流程包括系统设计与规划:基于需求分析,设计系统架构、数据库结构、界面设计等,制定详细的开发计划和项目规划;编码与开发:根据系统设计,开发人员进行编码和开发工作,实现系统功能和业务逻辑;测试与调试:进行单元测试、集成测试和系统测试,确保系统的正确性、稳定性和性能。但传统的业务开发方式成本高、耗时长、缺乏灵活性和快速响应且难以满足快速变化的需求
发明内容
有鉴于此,本发明实施例提供了一种基于DSL语言操作模型的低代码开发方法和工具,用以解决传统的业务开发流程在效率、灵活性和用户参与方面存在的一些缺点,且难以满足快速变化的需求和快速交付的要求的技术问题。
第一方面,本发明实施例提供一种基于DSL语言操作模型的低代码开发方法,包括以下步骤:
获取任务需求;
根据所述任务需求进行领域建模,得到业务逻辑;
基于所述业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;
根据预设的可视化编辑器创建任务模型;
根据所述任务模型的操作生成DSL代码;
执行所述DSL代码。
优选地,根据所述任务需求进行领域建模包括以下步骤:创建类或结构体来表示领域中的实体,定义它们的属性和方法;确定目标领域的核心概念和操作。
优选地,基于所述业务逻辑设计DSL语言的语法和语义的设计方式包括使用现有的DSL语言工具和框架或自定义DSL语言的语法规则和解析器。
优选地,定义DSL语言中的模型包括定义模型中的实体、属性、关系和行为。
优选地,根据所述任务模型的操作生成DSL代码的生成方式包括使用模板引擎、代码转换器或解释器。
优选地,执行所述DSL代码包括以下步骤:使用预设的运行时引擎,解析并执行所述DSL代码,并提供必要的运行时环境和支持,所述运行时引擎可与底层系统和服务进行交互。
第二方面,本发明实施例提供一种基于DSL语言操作模型的低代码开发工具,包括:
接收模块:用于获取任务需求;
领域建模模块:用于根据业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;
可视化编辑模块:用于创建任务模型;
代码生成模块:用于根据所述任务模型的操作生成DSL代码。
优选地,所述可视化编辑模块可自定义开发,或使用现有的低代码平台提供的可视化编辑器。
第三方面,本发明实施例提供一种可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被执行时实现如上述方法的步骤。
第四方面,本发明实施例提供一种程序产品,其上包括计算机程序指令,所述计算机程序指令被执行时实现如上述方法的步骤。
与现有技术相比,本发明所提供的一种基于DSL语言操作模型的低代码开发方法,具有如下的有益效果:
1、本发明实施例提供基于DSL语言操作模型的低代码开发方法包括以下步骤:获取任务需求;根据任务需求进行领域建模,得到业务逻辑;基于业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;根据预设的可视化编辑器创建任务模型;根据任务模型的操作生成DSL代码;执行DSL代码。可以理解地,传统业务开发方式每次接收到项目方的需求都要从头分析、开发、上线,整体效率很低,复用性差。而本方案提供的基于DSL语言操作模型的低代码开发方法将传统的业务抽象化为任务模型,通过定义任务模型的属性、行为、事件,自动生成一整套横跨前后端的关于该业务的增删改查等操作,通过定义DSL语言,描述了对任务模型的各种动作,用户开发时只需要调整DSL的内容,就可以达到操作业务的目的,大大地加快了业务开发的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。
图1为本发明第一实施例提供的基于DSL语言操作模型的低代码开发方法的流程示意图。
图2-7为本发明第一实施例提供的基于DSL语言操作模型的低代码开发方法中的部分代码示意图。
图8为本发明第二实施例提供的基于DSL语言操作模型的低代码开发工具的结构示意图。
图9为本发明第二实施例提供的基于DSL语言操作模型的低代码开发工具的代码生成模块生成的代码的示意图。
图10为本发明第四实施例提供的程序产品的结构示意图。
图11为本发明第五实施例提供的电子设备的而结构示意图。
附图标号说明:
1、基于DSL语言操作模型的低代码开发方法;2、基于DSL语言操作模型的低代码开发工具;3、程序产品;4、电子设备;
20、接收模块;21、领域建模模块;22、可视化编辑模块;23、代码生成模块;30、计算机程序指令;40、处理器;41、存储器;42、总线;43、通信接口。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图及实施实例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参见图1,本发明第一实施例提供了一种基于DSL语言操作模型的低代码开发方法1,包括以下步骤:
获取任务需求;
根据任务需求进行领域建模,得到业务逻辑;
基于业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;
根据预设的可视化编辑器创建任务模型;
根据任务模型的操作生成DSL代码;
执行DSL代码。
可以理解地,传统业务开发方式每次接收到项目方的需求都要从头分析、开发、上线,整体效率很低,复用性差。而本方案提供的基于DSL语言操作模型的低代码开发方法将传统的业务抽象化为任务模型,通过定义任务模型的属性、行为、事件,自动生成一整套横跨前后端的关于该业务的增删改查等操作,通过定义DSL语言,描述了对任务模型的各种动作,用户开发时只需要调整DSL的内容,就可以达到操作业务的目的,大大地加快了业务开发的效率。
在一些实施例中,根据任务需求进行领域建模包括以下步骤:
创建类或结构体来表示领域中的实体,定义它们的属性和方法;
确定目标领域的核心概念和操作。
示例性地,开发一个电子商务平台,需要建模商品和订单的领域。首先,我们确定了核心概念,即商品和订单。商品表示在平台上可购买的物品,订单表示用户下单购买商品的记录。
接下来,我们创建类或结构体来表示这些领域实体。以商品为例,可以创建一个名为"Product"的类,该类包含属性如图2所示。在如图2所示的示例中,定义了商品的属性,例如商品的唯一标识符(id)、名称(name)、价格(price)、描述(description)等。通过定义类的属性,我们可以对商品进行描述和操作。
类似地,我们可以创建表示订单的类,例如名为"Order"的类,该类包含订单的相关属性和方法。
应理解,通过领域建模,我们可以清晰地定义了领域中的核心概念和属性,为后续的开发工作奠定了基础。在实际开发中,我们可以基于这些类进行业务逻辑的实现,并与其他领域对象进行交互,从而构建出完整的电子商务平台。
在一些实施例中,基于业务逻辑设计DSL语言的语法和语义的设计方式包括使用现有的DSL语言工具和框架或自定义DSL语言的语法规则和解析器。
示例性地,开发一个任务管理系统,需要设计一种DSL语言来描述和操作任务。
首先,我们需要确定DSL语言的关键概念和操作。在任务管理系统中,常见的概念包括任务、状态、优先级等,而操作包括创建任务、更新任务状态、设置任务优先级等。
接下来,我们可以选择使用现有的DSL语言工具和框架,如Xtext、ANTLR或JetBrains MPS,或者自定义DSL语言的语法规则和解析器。
如图3所示的一个简单的DSL语言设计示例,使用自定义语法规则和解析器来描述任务管理系统中的任务:
在如图3所示的示例中,定义了一个任务管理系统的DSL语言,通过关键字"task"来创建任务,并使用花括号{}来定义任务的属性。每个任务可以包含属性如优先级(priority)和状态(status)等。
可以理解地,通过DSL语言设计,我们可以为任务管理系统提供一种更简洁、直观的方式来描述和操作任务。用户只需按照DSL语言的规则编写任务描述,系统可以根据DSL语言解析器将其转换为内部数据结构或执行相应的操作。
需要注意的是,DSL语言设计的具体实施方式可能因使用的工具和框架而有所不同。上述示例仅用于演示DSL语言设计的思路和示例,实际开发中可能需要更加复杂的语法规则和解析器来满足系统的需求。
在一些实施例中,定义DSL语言中的模型包括定义模型中的实体、属性、关系和行为。
示例性地,继续以任务管理系统为例,我们可以使用DSL语言来定义任务模型,包括实体、属性、关系和行为等。
如图4所示的DSL语言模型的定义,用于定义任务模型。在图4的实例中,定义了一个名为"Task"的实体,该实体具有属性如id、name、priority和status。id和name属性是字符串类型,而priority和status属性是枚举类型,分别表示任务的优先级和状态。
此外,我们还定义了两个枚举类型:Priority(优先级)和Status(状态),用于限定属性的取值范围。
通过DSL语言的语法规则和解析器,我们可以解析上述模型定义,并创建相应的模型实体。例如,通过DSL代码可以创建一个名为"Buy groceries"的任务,设置其属性值如id、name、priority和status。
可以理解地,模型定义的实施例可以根据具体的DSL语言工具和框架进行设计和实现。这里的示例仅用于展示模型定义的思路和示例,实际开发中可能需要根据需求进行更复杂的模型定义和解析器的设计。
在一些实施例中,根据任务模型的操作生成DSL代码的生成方式包括使用模板引擎、代码转换器或解释器。
示例性地,继续以任务管理系统为例,假设我们已经设计了一个可视化编辑器,允许用户通过拖拽、连接和配置的方式创建和定制任务模型。以下是一个示例的代码生成实施例,用于将可视化编辑器中的模型转化为DSL语言的代码:
1.定义模板:首先,我们需要定义代码生成的模板,模板是一种包含占位符的文本,用于表示最终生成的代码结构。例如,我们可以定义一个模板来生成任务的DSL代码,其中包含占位符用于插入任务的属性值。具体地,示例模板如图5所示。
2.解析可视化编辑器的任务模型:当用户在可视化编辑器中完成任务模型的创建和定制后,我们需要解析模型的结构和属性值。这可以通过访问可视化编辑器的内部数据结构或API来实现。
3.填充模板:根据解析得到的模型信息,我们将模型中的属性值填充到模板的占位符中。这可以通过字符串替换等方式实现。示例的模型数据与填充后的模板如图6和图7所示。
4.生成代码:最后,使用模板引擎、代码转换器或解释器等技术将填充后的模板转化为最终的DSL语言代码。这些工具和技术可以根据具体的实施需求选择和使用。
通过上述实施例,用户在可视化编辑器中创建和定制任务模型后,可以通过代码生成步骤将模型转化为DSL语言的代码,从而实现定制的任务管理逻辑。
需要注意的是,实际的代码生成过程可能涉及更复杂的逻辑和技术细节,如处理嵌套结构、循环生成代码等。在实施时,根据具体的DSL语言和代码生成工具选择适合的技术和实现方式。
在一些实施例中,执行DSL代码包括以下步骤:
使用预设的运行时引擎,解析并执行DSL代码,并提供必要的运行时环境和支持,运行时引擎可与底层系统和服务进行交互。
示例性地,继续结合任务管理系统的示例场景进行展开说明:
1.创建运行时环境:首先,我们需要创建一个运行时环境,该环境提供执行DSL代码所需的基础设施和支持。这可以包括运行时库、依赖管理、错误处理机制等。
2.解析DSL代码:运行时引擎需要具备解析DSL代码的能力,将DSL代码转化为可执行的内部表示形式,例如抽象语法树(AST)。这可以通过编写解析器来实现,解析器根据DSL语言的语法规则将代码解析为内部数据结构。
3.构建执行上下文:在执行DSL代码之前,我们需要构建一个执行上下文,其中包含运行时所需的环境信息和上下文数据。例如,对于任务管理系统,执行上下文可以包括任务列表、用户信息、系统配置等。
4.执行DSL代码:将解析得到的DSL代码表示形式(如AST)与执行上下文结合起来,通过遍历AST并执行相应的操作,实现DSL代码的功能。根据DSL语言的语义,可以执行诸如创建任务、更新任务状态、查询任务列表等操作。示例性的DSL代码如图7所示。示例执行操作:创建一个名为"Buy groceries"的任务,并将其属性设置为高优先级、打开状态。
5.与底层系统和服务进行交互:运行时引擎可能需要与底层系统和服务进行交互,例如与数据库进行数据存取、与外部API进行通信等。通过适配器、接口或服务调用等方式,运行时引擎可以实现与这些外部资源的交互。
通过上述实施例,我们可以开发一个运行时引擎,能够解析和执行生成的DSL代码,并提供必要的运行时环境和支持。在任务管理系统的例子中,运行时引擎能够根据DSL代码创建任务、更新任务状态等,并与底层数据库进行交互,实现任务管理系统的功能。
需要注意的是,实际的运行时引擎开发可能会涉及更复杂的处理逻辑,例如错误处理、事务管理、并发控制等。具体的实施方式可以根据DSL语言和应用需求来确定。
请参阅图8,本发明的第二实施例还提供一种基于DSL语言操作模型的低代码开发工具2,用于实现上述的基于DSL语言操作模型的低代码开发方法,基于DSL语言操作模型的低代码开发工具2包括:
接收模块20:用于获取任务需求;
领域建模模块21:用于根据业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;
可视化编辑模块22:用于创建任务模型;
代码生成模块23:用于根据任务模型的操作生成DSL代码。
优选地,可视化编辑模块可自定义开发,或使用现有的低代码平台提供的可视化编辑器。
示例性地,继续结合任务管理系统的示例场景对自定义开发一个可视化编辑器做具体说明:
1.用户界面设计:首先,我们需要设计一个用户友好的可视化界面,该界面允许用户通过拖拽、连接和配置的方式创建和定制模型。界面可以包括工具栏、画布区域和属性面板等组件。
2.模型元素库:在可视化编辑器中,我们需要提供一个模型元素库,其中包含可用的模型元素和操作符。在任务管理系统的例子中,模型元素库可以包括任务、用户、状态等元素,并提供相关的操作符,如创建任务、分配任务给用户等。
3.拖拽和连接:用户可以从模型元素库中选择一个模型元素,并将其拖拽到画布区域。用户可以在画布上创建多个模型元素,并使用连接线将它们连接起来,表示模型元素之间的关系。
4.配置属性:通过属性面板,用户可以配置模型元素的属性和行为。例如,在创建任务的过程中,用户可以指定任务的标题、描述、优先级等属性,并设置相应的行为选项。
5.生成DSL代码:当用户在可视化编辑器中进行操作时,这些操作应该被转化为相应的DSL代码。通过解析用户的操作,可视化编辑器可以生成DSL代码,表示用户所定义的模型和操作。
用户从模型元素库中拖拽一个"任务"模型元素到画布上。
用户在属性面板中配置任务的属性,如标题、描述和优先级。
用户创建一个"用户"模型元素,并将其与任务模型元素连接起来,表示任务分配给该用户。
示例生成DSL代码如图9所示。
通过上述实施例,我们可以开发一个可视化编辑器,允许用户通过拖拽、连接和配置的方式创建和定制模型,并将用户的操作转化为相应的DSL代码。在任务管理系统的例子中,用户可以通过可视化编辑器创建任务、配置任务属性,并生成相应的DSL代码表示任务的定义和属性。
需要注意的是,实际的可视化编辑器开发可能需要考虑更多的交互细节和用户体验设计,例如撤销/重做操作、自动布局、实时预览等。具体的实施方式可以根据DSL语言和应用需求来确定。
应当注意,尽管在上文详细描述中提及了用于执行流程的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端,或者网络设备等)执行根据本公开实施方式的方法。
本发明第三实施例还提供一种可读存储介质,其上存储有计算机程序指令,计算机程序指令被执行时实现如上述方法的步骤。
在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“基于DSL语言操作模型的低代码开发方法”部分中描述的根据本公开各种示例性实施方式的步骤。
请参阅图10,本发明第四实施例还提供一种程序产品3,其上包括计算机程序指令30,计算机程序指令被执行时实现如上述方法的步骤。
请参阅图11,本发明第五实施例还提供了一种电子设备4,具体的,该电子设备4包括处理器40和存储器41;存储器41上存储有计算机程序,计算机程序在被处理器运行时执行如上实施方式的任一项的方法。
进一步地,处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
其中,存储器41可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线42可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器41用于存储程序,处理器40在接收到执行指令后,执行程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上各实施例仅用以说明本(发明或发明)的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (10)

1.一种基于DSL语言操作模型的低代码开发方法,其特征在于:包括以下步骤:
获取任务需求;
根据所述任务需求进行领域建模,得到业务逻辑;
基于所述业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;
根据预设的可视化编辑器创建任务模型;
根据所述任务模型的操作生成DSL代码;
执行所述DSL代码。
2.如权利要求1所述的基于DSL语言操作模型的低代码开发方法,其特征在于:根据所述任务需求进行领域建模包括以下步骤:
创建类或结构体来表示领域中的实体,定义它们的属性和方法;
确定目标领域的核心概念和操作。
3.如权利要求1所述的基于DSL语言操作模型的低代码开发方法,其特征在于:基于所述业务逻辑设计DSL语言的语法和语义的设计方式包括使用现有的DSL语言工具和框架或自定义DSL语言的语法规则和解析器。
4.如权利要求1所述的基于DSL语言操作模型的低代码开发方法,其特征在于:定义DSL语言中的模型包括定义模型中的实体、属性、关系和行为。
5.如权利要求1所述的基于DSL语言操作模型的低代码开发方法,其特征在于:根据所述任务模型的操作生成DSL代码的生成方式包括使用模板引擎、代码转换器或解释器。
6.如权利要求1所述的基于DSL语言操作模型的低代码开发方法,其特征在于:执行所述DSL代码包括以下步骤:
使用预设的运行时引擎,解析并执行所述DSL代码,并提供必要的运行时环境和支持,所述运行时引擎可与底层系统和服务进行交互。
7.一种基于DSL语言操作模型的低代码开发工具,用于实现如权利要求1-6任一项所述的基于DSL语言操作模型的低代码开发方法,其特征在于:包括:
接收模块:用于获取任务需求;
领域建模模块:用于根据业务逻辑设计DSL语言的语法和语义,并定义DSL语言中的模型;
可视化编辑模块:用于创建任务模型;
代码生成模块:用于根据所述任务模型的操作生成DSL代码。
8.如权利要求7所述的反编译工具,其特征在于:所述可视化编辑模块可自定义开发,或使用现有的低代码平台提供的可视化编辑器。
9.一种可读存储介质,其上存储有计算机程序指令,其特征在于:所述计算机程序指令被执行时实现如权利要求1-6所述方法的步骤。
10.一种程序产品,包括计算机程序指令,其特征在于:所述计算机程序指令被执行时实现如权利要求1-6所述方法的步骤。
CN202310719113.6A 2023-06-16 2023-06-16 一种基于dsl语言操作模型的低代码开发方法和工具 Pending CN116755669A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310719113.6A CN116755669A (zh) 2023-06-16 2023-06-16 一种基于dsl语言操作模型的低代码开发方法和工具

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310719113.6A CN116755669A (zh) 2023-06-16 2023-06-16 一种基于dsl语言操作模型的低代码开发方法和工具

Publications (1)

Publication Number Publication Date
CN116755669A true CN116755669A (zh) 2023-09-15

Family

ID=87952784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310719113.6A Pending CN116755669A (zh) 2023-06-16 2023-06-16 一种基于dsl语言操作模型的低代码开发方法和工具

Country Status (1)

Country Link
CN (1) CN116755669A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117313188A (zh) * 2023-10-09 2023-12-29 深圳赛瀚德技术有限公司 一种基于m语言的生产系统离散事件仿真优化方法及系统
CN118312156A (zh) * 2024-06-07 2024-07-09 中国人民解放军国防科技大学 一种新型领域特定行为建模的模型开发方法、装置及设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117313188A (zh) * 2023-10-09 2023-12-29 深圳赛瀚德技术有限公司 一种基于m语言的生产系统离散事件仿真优化方法及系统
CN117313188B (zh) * 2023-10-09 2024-05-10 深圳赛瀚德技术有限公司 一种基于m语言的生产系统离散事件仿真优化方法及系统
CN118312156A (zh) * 2024-06-07 2024-07-09 中国人民解放军国防科技大学 一种新型领域特定行为建模的模型开发方法、装置及设备

Similar Documents

Publication Publication Date Title
US9268539B2 (en) User interface component
CN107273117B (zh) 一种编程友好型的敏捷代码自动生成系统
CN111722839B (zh) 一种代码生成方法、装置、电子设备及存储介质
CN114625353A (zh) 模型框架代码生成系统及方法
CN111241454A (zh) 一种生成网页代码的方法、系统和装置
CN116755669A (zh) 一种基于dsl语言操作模型的低代码开发方法和工具
CN108037913B (zh) xUML4MC模型到MSVL语言程序的转换方法、计算机可读存储介质
US10474435B2 (en) Configuration model parsing for constraint-based systems
US10534592B2 (en) Template expressions for constraint-based systems
CN111324833A (zh) 页面展示方法、装置、电子设计及计算机可读介质
CN115639980A (zh) 一种低代码平台可拖拽的前端逻辑编排方法及装置
CN110737431B (zh) 软件开发方法、开发平台、终端设备及存储介质
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
JPH10254689A (ja) クライアント・サーバシステムのアプリケーション構成設計支援方式
Lourenço et al. OSTRICH: a rich template language for low-code development (extended version)
Roldán React Design Patterns and Best Practices: Design, build and deploy production-ready web applications using standard industry practices
Savic et al. Use case specification at different levels of abstraction
CN110928535B (zh) 衍生变量部署方法、装置、设备及可读存储介质
CN112860584A (zh) 基于工作流模型的测试方法及装置
US20100088671A1 (en) Project scopes for configuration based computer application projects
Goldschmidt et al. Evaluating domain-specific languages for the development of OPC UA based applications
US12067377B2 (en) System and a method for automatic generation of smart contracts across blockchain platforms
US20060005174A1 (en) Defining hierarchical structures with markup languages and reflection
CN117234466B (zh) 企业管理软件开发方法、系统、设备及存储介质
EP4336348A1 (en) Iterative and interactive method for code conversion

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination