最近,很多人关注Eclipse Web Tools Platform (WTP) Project,但是在此我想重点介绍另一个项目,我认为该项目正逐步接近实现模型驱动架构的目标。
我先简要地介绍一下模型驱动架构(Model Driven Architecture,MDA)。根据对象管理组织(Object Management Group)的说法,MDA提供了一种“应对互操作性挑战的开放的、供应商中立的方法,它构建于OMG的既有建模标准之上,并充分利用了这些既有标准的价值”。这是官方说法,人们通常将其归结为:能够使用UML或XMI对代码进行建模,并反过来将其写回代码。
实现UML类图之间的同步现在已经不是什么新东西了,许多供应商都针对常见的IDE(如:Eclipse)提供了许多插件,进一步的发展出现在Eclipse Tools Project的子项目上,比如UML2和EMF。这两个子项目正在构建实现真正的MDA架构的元模型。目前这两个项目只限于XMI模型,而该模型并非UML类图之类的可视表示,但是我敢肯定,在不久的将来就会内置这种支持。
那么这些对于系统的设计有何重要性呢?我认为,范例将从类图之类的面向对象设计转向基于用例图的设计。如果了解一下Andromda Project之类项目的强大功能,您就会知道,距离这种转变不会太远了。Andromda项目是一个“遵循模型驱动架构范例的开源代码生成框架,它采用CASE(计算机辅助软件工程)工具的模型,生成完全可部署的应用程序和其他组件”。基本上Andromda项目的意义是使您能够获得导出的UML图,并从中生成一个可运行的应用程序。假如您的Eclipse平台支持EMF/UML2,您就可以可视化地建模应用程序,然后单击一个按钮,就会出现一个向导,让您选择要生成的应用程序类型(WAR、EAR)和/或框架(Spring、EJB、Hibernate等等)。单击ok,就完成了。之后如果需要更改什么东西,调整一下模型,然后就可以不管了。这种美妙的前景不会太远了。缺少的只是项目之间的胶合。
本文并未涵盖MDA的所有方面,而是重点介绍了EMF和UML2这两个重要项目。我敢肯定,它们会使我们的编码方式发生巨大的改变。