是否可以使用 UML 对计算机系统进行独立编程,而无需支持实现语言,例如图表直接生成机器代码(可能通过 C 或 C++ 等),无需人工编码干预。
最佳答案
我将逆势而行,分享一次经验,展示 UML 今天可以做什么,以及 UML 的 future 版本(或其他建模方法)可以做什么。
首先介绍一下历史。
很久以前,人们就用汇编语言对计算机进行编程(并不是一直回到这里)。随后出现了 C 和 Basic 等高级语言。擅长汇编的程序员认为,您无法用高级语言完全表达处理器能够执行的所有操作(以优化的方式)。事实上,他们是对的。从高级语言的内存和性能角度来看,有些事情不太理想,因为您无法完全控制发送给处理器的指令。
事实是,高级语言提供了更加抽象的表达形式。因此,他们流行起来,过了一段时间,人们并不真正关心你无法完全控制处理器的各个方面,因为开发人员的工作效率大大提高( Moore's Law 也有所帮助)。
面向对象的语言也发生了类似的情况,托管语言也发生了类似的情况。每一次,都会出现更高级别的抽象,并最终胜出,因为开发人员使用它的效率更高。事实上,随着编译器变得更好和优化技术的改进,较高级别表达式中的低效率通常会消失。
模型驱动开发是更高层次的表达。您无法完全表示您可以用 C# 或 Java 等语言编写的任何代码。特别是不是开箱即用。然而,可以直接从 UML 模型生成应用程序的很大一部分。
我领导了几个相当大的项目的基于 UML 的代码生成工作。在许多情况下,我们可以生成(现实生活中的企业级)应用程序的整个源代码的 30% 到 60%。这只是一个小团队为特定领域编写生成器的情况。最终,整个行业将支持从模型生成越来越多的现实应用程序的工具。
自从第一个汇编代码抽象操作码以来,这是我们在行业中一次又一次看到的自然演变的下一步(可能在那之前有一些东西,但那是在我的时代之前)。
关于uml - UML 是一种编程语言吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2485746/