`
touchmm
  • 浏览: 1037921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

转自http://www.umlchina.com/News/Content/190.htm

剑桥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袁峰 摘译,不得转载用于商业用途)

欢迎大家发表评论。

分享到:
评论

相关推荐

    模型驱动MDA学习论文精华

    在"模型驱动MDA学习论文精华"中,我们可以期待探讨以下关键知识点: 1. **MDA概念**:MDA的核心思想是将业务逻辑与技术实现分离,通过统一建模语言(UML)创建独立于具体技术的平台无关模型(PIM),然后通过转换规则...

    OMG Model Driven Architecture (MDA) MDA Guide rev. 2.0 (ormsc-14-06-01)

    MDA的一系列标准包括了在多种建模语言中模型的表示与交换、模型转换、利益相关者文档的产生和模型的执行。MDA模型能够以任何抽象层次或从不同视角来表示系统,范围从企业架构到技术实现。MDA“连接了不同的视角和...

    MDA.rar_mda

    在"MDA概述.doc"文件中,你可能会找到关于MDA更深入的介绍,包括它的历史背景、核心原则、优势与限制,以及如何在实际项目中应用MDA的案例分析。这些内容对于理解MDA的概念及其在软件工程中的角色至关重要。

    模型驱动开发体系MDA(Borland2003大会演讲)

    在Borland大会上,演讲者王寒松分享了MDA的概念以及Borland的MDA实现——ECO(Enterprise Class Objects)。ECO是Borland公司推出的一款用于支持MDA的工具,它为开发人员提供了一种高效、灵活的方式来构建企业级应用...

    北大mda课件

    随着计算模式从“以机器为中心”、“以应用为中心”逐步演进到“以企业为中心”,MDA在这一过程中扮演了重要角色。特别是在企业计算中,面对日益复杂的商业需求和快速变化的技术环境,MDA通过提高抽象层次来应对挑战...

    MDA模型驱动架构教程

    MDA的核心思想是将软件开发过程中的关注点分离,通过不同级别的模型来表达软件的不同方面,从而降低复杂性,并允许在不同平台之间进行有效的转换。 MDA的主要组件包括平台独立模型(PIM,Platform Independent ...

    MDA Specifications

    6. **挑战与限制**:尽管MDA有许多优点,但在实际应用中也面临一些挑战,比如学习曲线较陡峭,需要掌握UML和模型转换技术;对于小型项目,MDA可能过于复杂;此外,MDA的自动化程度取决于工具支持,目前并非所有平台...

    sybase ASE mda关系

    在Sybase Adaptive Server Enterprise (ASE)数据库管理系统中,MDA(Metadata Data Access)是一种强大的工具,用于监控和分析数据库的性能问题。MDA提供了一种方法来深入了解ASE的内部工作原理,通过收集和分析关于...

    MDA Explained: The Practice and Promise of the Model Driven Architecture

    这些案例不仅展示了MDA在提高开发效率方面的潜力,也证明了它在处理复杂系统时的有效性。 #### 结论 总的来说,《MDA Explained: The Practice and Promise of the Model Driven Architecture》为希望深入了解MDA...

    mda-模型驱动体系结构_PPT

    ### MDA - 模型驱动体系结构 #### MDA简介 模型驱动架构(Model Driven Architecture,简称MDA)是一种由对象...此外,随着技术的发展,MDA框架也在不断地完善和扩展,以适应更多样化的应用场景和更高的抽象层次。

    INCA标定软件中的MDA

    据描述,MDA组件可能不兼容较早的INCA 7.1版本,但可以成功激活并运行在INCA 8.2版本上。这反映了软件升级带来的功能增强和改进。通常,新版本的INCA会引入更多的特性、提升性能、增加对新车型的支持,以及改进与...

    Model-Driven_Architecture.zip_mda_uml

    MDA广泛应用于大型企业级应用开发、分布式系统、嵌入式系统以及云计算等领域,尤其是在需要跨平台移植或者快速适应新技术的场景下,MDA的优势尤为突出。 总之,MDA通过模型驱动的方式,提供了一种标准化、高抽象...

    外接程序(MDA)实例.rar

    在“外接程序(MDA)实例”这个压缩包中,我们有两个文件: 1. "一般外接程序(MDA)实例讲解.doc":这可能是一个详细文档,涵盖了MDA的基本概念、开发步骤、使用的技术以及如何创建和测试一个简单的MDA实例。文档...

    中国移动手机桌面助理(MDA) 3.1.0.132

    中国移动手机桌面助理(MDA)是一款专为中国移动用户设计的智能管理软件,旨在提升手机用户的使用体验和效率。MDA 3.1.0.132是该应用的一个特定版本,提供了丰富的功能和服务,包括但不限于: 1. **联系人管理**:...

    MDA Dms转换方法

    随着模型驱动架构(MDA)在软件设计与实施领域的日益普及,一种新的技术范式正在形成,它旨在整合不同的建模语言、工件和工具,以创建一个统一的技术空间。然而,这同时也对基于领域特定语言(DSL)的现有开发方法论...

    MDA.rar_mda_模型驱动

    在实际应用中,MDA可以应用于大型企业级系统的开发,特别是在有多个开发团队、多种技术平台和频繁技术升级的情况下。MDA提供的标准化流程和模型的可扩展性,使得系统设计更加灵活,降低了跨团队沟通的复杂性。 总结...

Global site tag (gtag.js) - Google Analytics