当前位置: 首页 > 工具软件 > Acceleo > 使用案例 >

AndroMDA与Acceleo设计思想的不同

印子平
2023-12-01

AndroMDA与Acceleo都是比较流行也是比较著名的开源MDA工具,这两个工具的基本运行原理如下:

AndroMDA:

第一步:设计模型,通过Stereotype标识AndroMDA可理解的模型类型(标识采用哪种Cartridge);

第二步:使用andromda提供的命令生成平台相关模型(代码、配置文件等)。

Acceleo:

第一步:设计模型,对模型无特列要求,但是可以通过Stereotype来控制生成元素的展示效果等等;

第二步:选择生成器(Generator,生成器可能有N多个);

第三步:执行生成命令。

可以看到,Acceleo比AndroMDA多了一个步骤,而这个步骤是两者在设计思想上的一个重要的区别。Acceleo所生成平台相关模型所需要的一部分决策权放到模型设计完成之后、生成代码之前来,这样采用相同的模型可以选择不同的生成器来生成不同的平台相关模型。而AndroMDA把所有这个决策放到设计模型时来决定,这样在生成代码时做的工作就简单的多。但是AndroMDA的这种作法,导致的一个最严重的问题是,我们设计的模型,严格来说不再是平台无关模型,而是只能被AndroMDA所解释的相关模型。虽然AndroMDA是以符合规范的形式扩展UML2,所以各建模工具可以展示这个模型文件,但是这些Stereotype对于其它工具来说可能都是无用的信息,总感觉我们的模型不是很干净。也可以说是平台相关模型侵入了平台无关模型的设计,使得它不再平台无关。因此,个人倾向于更赞同Acceleo的解决方案。

Acceleo虽然一定程度上解决了模型设计的平台无关性的问题,但带来的新问题是,生成代码的过程真的是比较繁琐。大部分情况下我们的决策都是相同的,而这些决策需要重复的做。所以,如果能从开发工具上做一些文章,使得这个过程操作更加简单,我想是比较好的解决办法。

 类似资料: