图片27
自从低代码成为一个新的流行术语以来,我想知道低代码运动是否真的不同于我们过去所说的模型驱动工程/开发。
低代码应用程序平台通过大大降低所需的手动代码来加速应用程序的交付。这显然不是软件工程行业第一次试图通过结合可视化开发技术(我们称之为模型)和代码来减少手动代码。事实上,软件工程的整个历史都是关于提高抽象水平的。
低代码在当今商业世界的影响也很明显,包括一些大胆的预测,但也包括最近投资于低代码工具的相关实际数据。一些工具的业务成功可能只是因为所有最大的软件公司都在确保他们在该领域提供一些产品。
我们没有对所有MD*概念的一般定义。我自己的(非正式)定义如下:
模型驱动工程(Model-driven enginering,MDE):任何软件工程过程,模型都起着基本作用,驱动着工程任务。
模型驱动开发(Model-driven development,MDD):MDE应用于正向工程,即软件开发的模型驱动。
MDA是OMG对MDD的具体想法,因此依赖于OMG标准的使用。
基于模型的项目/开发:前面概念的软版本。软件模型在MBE过程中起着重要作用,尽管它们不一定是项目/开发的关键工件(即它们不驱动过程)。
MBE和MDE的一个例子是开发过程。在分析阶段,设计师指定了独立于平台的系统模型,但这些模型将直接交给程序员手动编写代码(不涉及自生成代码,也不明确定义平台上的任何模型)。在这个过程中,模型仍然起着重要的作用,但它不是开发过程的基础。
基于上述定义,我认为低代码是模型驱动开发的同义词。如果有任何区别,我们可以将低代码视为MDD中更严格的视图,其中我们只针对特定类型的软件应用:数据密集型Web/移动应用。
请注意,术语无代码有时被用作低代码的微妙变化。事实上,我们经常看到工具将自己定义为无代码/低代码工具。然而,对我来说,无代码方法的关键特点是应用程序设计师应该编写零代码来创建和部署应用程序。这在很大程度上限制了使用无代码工具的实际效果。我们基本上是在研究基于模板的框架或创建工作流。这些工作流将预定义的连接器与外部应用程序混合在一起。在这些应用程序中,设计师最多决定何时以及如何触发某些操作。
比较这些不同例子的另一种方法是检查你需要编写多少手动代码。在MBE中,您可能需要编写所有代码。相反,在MDD和低代码中,大多数代码应该自动生成,但您可能仍然需要定制和完成生成的代码(大多数MDD工具包含一些黑盒建模原文,您可以在生成过程中编写任何应添加的自定义代码)。在没有代码的情况下,您应该编写零代码。
显然,有必要对市场上的低代码工具进行更多的研究,并更好地将其描述为比这里介绍的工具更细的类别。事实上,基本上没有关于低代码运动的研究(快速搜索只会发现一些论文将自己归类为低代码工具,而不是低代码本身作为研究对象),我相信研讨会会会开始改变这一点。