MDA建模框架 AndroMDA
本文导语: AndroMDA 是一个遵循模型驱动结构(MDA)范例的代码生成框架。它从CASE工具中获得的一个UML模型并生成一个完全可部署的应用程序和其它组件。 AndroMDA的功能非常强大,主要用途在于从UML模型生成Hibernate,EJB,Spring,WebServices,和 Struts...
AndroMDA 是一个遵循模型驱动结构(MDA)范例的代码生成框架。它从CASE工具中获得的一个UML模型并生成一个完全可部署的应用程序和其它组件。
AndroMDA的功能非常强大,主要用途在于从UML模型生成Hibernate,EJB,Spring,WebServices,和 Struts等框架标准对应的代码, 在开发过程的建模阶段可以快速生成可运行原型,就此而言它是非常实用有效的工具,但是它的代价就是增加了很多对应各种框架类的 stereotype,这样的模型事实上已不能再算作PIM了,这样既不利于平台的迁移和模型的复用。而openMDX则仅仅使用了两个用于 语义描述的stereotype,这样的模型显得更加中立,更面向业务建模的视角。
在Struts和Spring已经成为事实上的J2EE框架标准的情况下,AndroMDA能够满足很多J2EE项目的框架要求,并且节约了很多重复性的编码工时,特别是,相对于采用手工编写此种代码,避免了可能出现的"手误"。
AndroMDA的长处也正是它的短处,因为完全面向J2EE平台开发,对于通用、中立的类型没有定义,也缺少对于属性的特性支持,比如持久性属性和导出属性的区分。在模型的表达上,仍然是更倾向于从技术框架的角度进行建模和描述系统行为。
另外还有一个通常的"代码生成器"都有的问题,就是对于模型的修改生成会覆盖掉手工修改的代码, 这仅仅是因为没有哪个流行的架构会完全采用JMI或者接口编程的方式,这样就很难避免在第一次生成代码之后,需要小心再次生成模型可能会影响到的手工编写的代码。