模型驱动软件开发

2008年7月14日

模型驱动软件开发 (MDSD) 是一种软件开发风格,它将自己视为传统编程风格的替代方案。该方法的核心是构建软件系统的模型。这些模型通常通过图表设计符号来体现 - UML 就是一种选择。其理念是使用这些图表来向建模工具指定您的系统,然后在传统的编程语言中生成代码。

MDSD 的愿景源于图形设计符号和 CASE 工具的开发。这些技术的倡导者将图形设计符号视为一种将抽象级别提升到编程语言之上的方法 - 从而提高开发效率。虽然这些技术和工具从未真正流行起来,但其基本核心思想仍然存在,并且有一个不断发展的社区仍在开发它们。

虽然我在职业生涯的大部分时间里都或多或少地参与了 MDSD,但我对它的未来持怀疑态度。大多数 MDSD 的支持者都基于模型本身是比编程语言更高层次的抽象这一基础而感到兴奋。我不同意这种观点 - 有时图形符号可以是更好的抽象,但并非总是如此 - 这取决于具体情况。此外,要使用 MDSD,您需要支持 投影编辑 的工具,而这些工具目前在工具方面引入了许多务实的难题 - 其中源代码管理是典型的例子。

MDSD 周围充斥着术语混乱。MDSD 的一个特定愿景是 模型驱动架构 (MDA),它是 OMG 基于 UML 的一项倡议。然而,MDSD 社区中的许多人并不认为 MDA 或 UML 是 MDSD 的正确愿景。很长一段时间里,我都会听到人们谈论模型驱动开发 (MDD) 作为一般概念,而 MDA 作为 OMG 的特定愿景。然而,OMG 对几个“模型驱动 *”和“模型基于 *”短语拥有商标 - 包括 MDD。因此,人们在使用模型驱动短语时必须小心。我使用 MDSD,因为这是该主题的一本 有用书籍 的标题。