【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

模型驱动开发:成功在何方?

  • 2010-09-24
  • 本文字数:1220 字

    阅读完需:约 4 分钟

Ulrik Eklund 发表了关于 Jon Whittle 在 SPLC 2010 大会上的主题演讲摘要。在演讲中,他讲述了在 EA-MDE 项目中所得到的使用基于模型开发的实战经验。 项目的目的在于了解模型驱动工程(MDE)导致成功或失败的因素,从而有助于设计下一代的 MDE 工具。这并不是个新问题,两年前,Sven Efftinge、Peter Friese 和 Jan Köhnlein 就曾经发表了一篇名为《MDD 最佳实践》的文章,而Mendix 公司的CTO,Johan Den Haan 也发表了一篇关于 MDD 在初始阶段为何会失败的文章。采用 MDE 方法可能会让人气馁。 这样,Johan 根据他的文章做出以下结论:

我们的目的不是要让你在模型驱动软件开发过程的开始阶段就丧失信心。我只是想要向你展示它的复杂性,并且想要分享一些想法,它会指引你工作的方向,从而有助于让你克服 MDE 的复杂性问题。

两周前,他还在博客上发表了一篇文章,详细说明了在创建模型驱动的软件工厂方法的过程中所得到的教训,并且重申了相同的怀疑态度:

我认为模型驱动软件开发是未来软件开发的重要组成部分。然而,我也看到很多人在实际使用模型驱动技术,并将它应用在日常的工作中时遇到了很多困难。 因此,创建成功的模型驱动的软件工厂方法(MDSF)是很重要的。

这个问题实际上非常流行。上周,Marco Bramballi 和 Stefano Butti 也做了一次同样主题的演讲,其中讲述的是在大规模的银行项目中应用 BPM 和 MDD,其中包括 BPMN、WebML 和 WebRation

在他的演讲中,Jon 提供了成功的 MDE 方法的一些关键成功因素,这也是他所从事的研究的一部分:

  1. 保持领域(我想是建模的领域)紧而窄。
  2. 将目标定位为众所周知的领域。
  3. 在关键的项目中实行 MDD(他的意思是,试验性的项目永远都不会得到充分的关注和资源)。
  4. MDD 在设计时最容易发挥作用。
  5. 仔细确认成果,其中到处都会有偏差。
  6. 不要沉迷于自动生成代码。
  7. 并非所有人都能够抽象地思考。
  8. 大多数项目在规模膨胀时都会失败。
  9. 让费用和过程与人们思考的方式一致,而不是与其它方式一致。

在他们的文章中,Swen、Peter 和 Jan 还警告说:

我们为读者提出的最重要的建议是: 要有成效。当恰当地使用 DSL 和代码生成器的时候,它们会是相当有用的工具。 但我们始终应该专注于所要解决的问题。 在很多情况下,比较合理的做法是使用 DSL 来描述特定的问题,而不是所有方面。

尽管 MDE 还在快速地发展,但 Jon 关于 EA-MDE 调查的报告指出,响应者“认为MDE 是个好东西”。

模型驱动架构、开发和工程学以及丰富的模型驱动开发环境——像 NeXTStep ——都是在 80 年代末出现的,在十多年之后,模型已经无处不在,然而,开发工具的数量还是很少,我们的业界还在寻找让模型驱动开发成为主流的方法。只有这么少的成功案例,我们真的可以定义“得到的教训”或者“最佳实践”吗? 是什么阻碍了我们的发展呢? 是模型的关注点和准确度吗?是缺少工具?还是标准?或者是抽象的级别让大多数人难于创建可用的软件工厂方法?你的意见如何?

查看英文原文: Model-Driven Development: Where are the Successes?

2010-09-24 04:382923
用户头像

发布了 340 篇内容, 共 126.1 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

你不必读完一本书

池建强

学习 读书

三点思考,判断一家公司是否值得加入

邓瑞恒Ryan

高效工作 个人成长 职业

聊聊:Java

谢烟客

Java 编程 开发者 随笔杂谈 「Java 25周年」

像黑客一样思考

Fooying

黑客思维 黑客 安全攻防

Idea工程启动时报错:Command line is too long

玏佾

intellij-idea

一文搞定 equals 和 hashCode

shengjk1

Java equals vs hashcode

关于Iterator和Iterable

shengjk1

Java Iterator和Iterable

Arduino 蓝牙遥控+超声避障小车

黄耗子皮

树莓派 极客

阿里面试,一面就倒在了Java内存模型上?赶紧来看看

Seven七哥

面试 Java并发 内存模型

程序员陪娃看绘本之启示

孙苏勇

程序员 生活 读书 成长 陪伴

2020,这个世界会好吗?

IT民工大叔

读书笔记

回“疫”录:开篇

小天同学

疫情 回忆录 现实纪录 纪实

当我们在说5G网络安全的时候,究竟在说什么?

石君

5G 5G网络安全 5G安全 网络安全

媒体的经营 01 | 媒体/内容行业投资分析的维度

邓瑞恒Ryan

创业 内容 重新理解创业 媒体 投资

一个值得推荐的人才测量标准

Selina

Flink获取kafka中每条消息对应的topic

shengjk1

flink kafka flink 消费 kafka 获取 topic等信息

给业务线的总经理多交代了几句

霍太稳@极客邦科技

创业 效率 团队管理

死磕Java并发编程(1):探究Java并发机制的底层原理

Seven七哥

Java Java并发 并发编程

Fire Fast 再深一层的是什么?

树上

管理 考核 Fire Hire 用人

复用到何种程度

孙苏勇

Java 程序设计 复用 面向对象 抽象

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

破解 Java Agent 探针黑科技!

谭建

Java JVMTI APM Profile

我从来不在朋友圈晒投资人合影,却融了很多钱

邓瑞恒Ryan

高效工作 人脉 职业规划

极客父母送给孩子的 ABC Book 就是这么 GEEK

魏彬(rockybean)

GEEK BOOK

Scrum vs Kanban,如何选择

TerryLee

Scrum Kanban 敏捷开发 Worktile 研发管理

国内10大前端团队网站

bigezhang

技术 大前端

公司大了,人多事杂,如何落地项目制?

树上

项目制 落地 公司管理 业务线 考核

机房运维需要了解东西

Spider man

Java中的Stream用还是不用

孙苏勇

Java 流计算 程序设计 性能

如果明天没有恐惧——两小时看完余欢水后想到的……

伯薇

个人成长 心理学 小说 恐惧

Windows环境MySql8.0忘记root密码重置

玏佾

MySQL

模型驱动开发:成功在何方?_架构_Jean-Jacques Dubray_InfoQ精选文章