AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

  • 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:383503
用户头像

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

关注

评论

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

犀牛Rhinoceros 7与其他建模软件相比有什么优势?

Rose

Last Call丨精彩嘉宾阵容,完整日程揭秘!2025 Altair 区域技术交流会华北站

Altair RapidMiner

人工智能 AI 汽车 数字孪生 CAE

打印高质量日志的10条军规

电子尖叫食人鱼

git

K8s进阶之外部访问Pod的几种方式

电子尖叫食人鱼

容器 云原生

小度AI助手携手博西家电达,共筑智能家居新场景

科技大数据

同样的数据,更强的效果:如何让模型学会‘互补思维’?

量贩潮汐·WholesaleTide

人工智能 机器学习

Mac桌面宠物鹅Desktop Goose 如何使用?

Rose

产品迭代为什么越来越慢?

Feedalyze

效率工具 产品经理 产品运营 产品迭代 用户需求

Illustrator 2022(ai2022)和其他版本有什么不同?

Rose

AI 代码生成陷阱解析,如何识别与规避错误代码

飞算JavaAI开发助手

AI 代码质量

Mac 剪辑利器 Final Cut Pro,智能升级,重塑视频创作新格局

Rose

Lightroom Classic中文基础教程分享--LR图片管理和分类

Rose

圆明园十二生肖兽首铜像终于“回国”?百度百科推出数字文物守护计划,让流失文物回家

科技大数据

从“无效提问”到精准指令:测试工程师的AI高效沟通指南

测试人

人工智能

卡片导航组件|纯血鸿蒙组件库AUI

华哥的全栈次元舱

鸿蒙 鸿蒙开发 鸿蒙操作系统 纯血鸿蒙 鸿蒙组件库AUI

SpringBoot3 使用 SolonMCP 开发 MCP

不在线第一只蜗牛

Spring Boot

Cornerstone for Mac:代码管理神器,让协作开发更稳更快!

Rose

确保高质量的音视频通话,如何最大化利用视频带宽

腾讯云音视频

实时音视频

告别无效对话:优化 AI 交互的必备策略

飞算JavaAI开发助手

Java AI 交互 技巧分享

需求频繁变更?AI 驱动的自动化解决方案实践

飞算JavaAI开发助手

如何快速上手使用AutoCAD 2024?附cad2024安装包

Rose

Studio One 6 Pro永久许可证-Mac/win

Rose

2025深圳高交会·第二十七届中国国际高新技术成果交易会

AIOTE智博会

高交会 人工智能展 深圳高交会

After Effects 2022(AE 2022)中文直装版-Mac/win

Rose

依赖错误终结者:AI 项目管理中的故障排查指南

飞算JavaAI开发助手

项目管理 AI 依赖

践行“科学智能”!和鲸打造 AI for Science 专属应用

ModelWhale

Transforms预处理

测试人

人工智能

新时代的可观测性:拥抱 GuanceDB 3.0

观测云

数据库

AI 指令编写全攻略:从基础到高级的实用技巧

飞算JavaAI开发助手

AI 技巧分享

「哔哩哔哩」正式加入 Karmada 用户组!携手社区共建多集群生态

华为云原生团队

云计算 容器 云原生

IDEA+AI 深度融合:重构高效开发的未来模式

飞算JavaAI开发助手

IDEA #java 技巧分享

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