MDD:运行时MDD的动态性如何?

时间:2010-12-17 14:04:54

标签: modeling mdd

多年来,我研究了许多使用代码生成器和MDD的方法。我一直觉得缺少某些东西:在运行时修补和更改模型。

补丁:如果你有一个代码生成器,你的所有类应该看起来一样。现在你有一个例外。到目前为止,所有代码生成器都需要我修改模板或模板引擎才能使其工作。

如果我可以在代码生成步骤的结果中应用补丁来修复异常,那会不会更好?

2 个答案:

答案 0 :(得分:1)

嗯,这取决于你如何构建你的模型。事实上,它取决于您使用的代码生成器,方法以及它允许​​您执行的操作。

创建规则(模型)的异常或多或少地违背了MDD的性质,除非应用的建模方法允许您将异常添加为建模实体。

我认为ABSE是唯一接受“自定义代码”作为第一类实体的建模方法,就像文本或整数一样。如果创建包含“CustomCode”参数的模板,则可以稍后在必要时添加例外代码,而不会破坏模型规则。这可用于添加或替换代码。您只需在模板中指定它即可。

AtomWeaver是ABSE建模方法的免费实现。

答案 1 :(得分:0)

MDD不起作用,因为它基于域的视图而不是整个域。我的意思是通常MDD从UML图中获取XMI。问题是这个图只是一个域的视图,因此你有很多选择,现实世界是一个特别在部署阶段更复杂的。

唯一一家在我的项目中为我提供真正价值的公司是Omondo和EclipseUML。 EclipseUML不会尝试执行MDD,而是在图级别创建与代码实时同步的UML。使用构造型进行部署,这些构造型在代码中的java注释中添加。因此我可以建模并且如果我添加部署构造型,那么我的应用程序可以立即部署/如果我手动更改我的代码,那么我的模型将被重构并且我的所有视图都会更新。如果我想添加文档,那么我只需在元模型中添加注释。当我点击每个元素时,这些笔记是可用的。不需要更多印刷文档,因为实时导航,动态视图创作等......

我的EclipseUML模型总是最新的,我可以立即部署它,因为Java注释在模型,元模型,图表和代码之间保持同步。真的很酷:-): - )