写点什么

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

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

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

关注

评论

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

GitLab 解析:为什么市场正在转向一体化 DevSecOps 平台?(附Forrester完整报告下载)

极狐GitLab

DevOps DevSecOps 安全测试 极狐GitLab 安全合规

虚拟主机和云服务器的区别

天翼云开发者社区

「中华田园敏捷开发」,是老板无能还是程序员无力?

引迈信息

前端 敏捷开发 后端 低代码

企业内部即时通讯软件,提供安全的组织管理和办公协作方式

BeeWorks

彻底搞懂贝叶斯的本质

侠之大者

机器学习 贝叶斯公式 概率论

共铸国云智领未来| “码”上呼唤,马上办!

天翼云开发者社区

模块八作业

张贺

架构训练营

适配PyTorch FX,OneFlow让量化感知训练更简单

OneFlow

人工智能 深度学习

电商平台的商品价格管理的产品设计

产品海豚湾

产品设计 SaaS 商品管理 电商 产品分析

Swift 里 的 Struct 和 Class

刿刀

前端开发框架React技术如何与小程序结合,进行页面构建

兴科Sinco

小程序 taro 前端开发 前端框架 React Native

周六直播|StarRocks 参与数据湖架构峰会,揭秘最新湖仓分析新范式!

StarRocks

数据库 大数据

从新手小白到运维大咖,SysOM 多场景宕机实例解析 | 龙蜥技术

OpenAnolis小助手

运维 操作系统 服务器 龙蜥技术 SysOM

让AI上车,车企如何借势2023上海国际车展硬核出圈

极客天地

CleanMyMac X4.20免费版Mac系统垃圾清理工具

茶色酒

CleanMyMac X

【深度挖掘RocketMQ底层源码】「底层问题分析系列」深度挖掘RocketMQ底层那些导致消息丢失的汇总盘点透析([REJECTREQUEST]system busy, start flow control for a while)

码界西柚

RocketMQ OOM 消息队列 3月日更

一文搞懂面试官常问的:SpringBoot自动配置原理

做梦都在改BUG

Java Spring Boot 自动装配

【附下载】艾瑞《全球互联网通信云研究报告》,融云 IM 连续 8 年展现统治力

融云 RongCloud

互联网 IM 社交 融云 元宇宙

一图读懂《2023 年全球互联网通信云行业研究报告》

融云 RongCloud

互联网 通讯 图片资源

终于说有人清楚了BI仪表板和大屏的区别

搞大屏的小北

数据分析 数据可视化 数据大屏 仪表板 可视化展示

AI for Good | 从女性力量,到AI公平

澳鹏Appen

人工智能

全国首个算力互联互通验证平台发布,天翼云推动算力智能调度再提速

天翼云开发者社区

WorkPlus|可定制、可扩展的私有化即时通讯办公平台

BeeWorks

电商 SaaS 全渠道实时数据中台最佳实践

Apache Flink

大数据 flink 实时计算

OpenAI竞争对手Anthropic融资:1融资易估值难2背后谷歌云3侧重安全

B Impact

ListView Item多布局的实现

芯动大师

ListView item QQ界面

如何利用分布式算法理解分布式存储

Dinfan

数据库 分布式 分布式存储 分布式算法

云计算之-弹性伸缩

天翼云开发者社区

数据资产与勒索病毒之间,华为立起一张安全盾牌

脑极体

安全

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