所在位置:UML新闻 - 内容 论坛精华    
Forrester发布MDA和基于模式开发报告

[2005/1/18]

Forrester研究中心上周发布了两份应用发展报告,报告结果对模型驱动架构MDA并不正面,而看好基于模式的开发(pattern-based development)。

两份报告基于Forrester联合Application Development Trends杂志对389家IT组织的调查结果。名为:“‘模型驱动’比MDA更有用”和“基于模式开发的吸引”。

“‘模型驱动’比MDA更有用”报告中指出:众多IT组织都对OMG的MDA很感兴趣,但在实践中他们往往选择更实际可行的方法,例如模型驱动的开发(model-driven development)。

MDA是OMG指定的平台无关的模型应用方式,但是,调查报告显示,目前采用这一方式的人还太少。

根据OMG的定义,MDA中会创建平台无关的模型来文档化业务功能和应用的行为,并和具体实现的技术平台代码相分离。

相反,模型驱动的开发MDD(model-driven development)中降低了MDA那种严格的要求,并为模型驱动的转换提供更多的实用价值;报告中指出,用户需要的是较低层次但更加实用的开发支持。

这两份报告的作者,Forrester应用开发和底层架构研究组的分析员Carl Zetie指出,软件企业在一听到MDA的时候都非常感兴趣,但是当听到实施MDA必须满足的条件时,他们退缩了。他们觉得MDA是正确的,但同时也是缓慢并且难于实施的。

报告指出,尽管MDA的工具厂商们吹得天花乱坠,MDA产品除了转换或简单的代码生成之外,其它的开发支持了了无几。

Zetie指出,部分原因源于一些开发商把“MDA”的招牌强贴到他们的产品上,尽管他们并不是。

报告显示,很多组织都认为MDA将会“重要”或“非常重要”,但报告也指出,这也许是MDA开发商们市场行为的结果。

Zetie指出,用户真正的需求是不要手工去写每一行代码。一旦他们实用了MDA,他们会发现这并不是最好的解决方法。

同时,Forrester的报告“基于模式开发的吸引”从生产力的角度关注了自动化代码生成的限制和好处以及带来的灵活性。

报告指出,模式封装了“最佳实践”的支持,基于模式的开发使用模式来解决一些公共的设计问题、技术实施并解决垂直领域的一些特定问题。

调查显示,被调查人员几乎都用过代码生成,但大多数人用得很少。由于代码生成的种种约束,开发人员缺乏经验并且和模型紧密绑定。

Zetie指出,基于生成的解决途径几乎没有弹性,并且生成过程非常繁复。对于100%采用代码生成的公司来说,改动的空间几乎没有,尤其是当开发人员需要对模型进行改动时。

通过围绕特定的设计模式设计和编码、开发人员可以按照觉得合适的方式对生成的代码更加灵活地修改或者变动。不再约束于基于一个抽象模型简单地生成代码。

Zetie指出,应用开发正在朝向一个更加注重实效的方向发展。没有人完全依赖于MDA或代码生成,而是在不同的程度上应用它们。

敏捷建模是实用主义的一个代表。和传统的建模方法相比,敏捷建模是轻量级为软件建模的法则和实践的集合,它正得到更多的关注。
Zetie指出,人们使用部分的代码生成、大量的最佳实践的模式,以及大量的敏捷性(agility)来保证他们沿着正确的轨道前进。

(译者注:请注意,这两份报告是对现状的调查。MDA仍在路上,目前的很多垢病是现状的不如人意,也许,这是成长的烦恼?……)

(自SearchWebServices,UMLChina袁峰 摘译,不得转载用于商业用途)