QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

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

关注

评论

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

王者荣耀商城异地多活架构设计

AragornYang

架构训练营 架构实战营

一文简述:云原生架构的四个特征六个原则

穿过生命散发芬芳

4月月更

王者荣耀商城异地多活架构设计

李大虾

#架构实战营 「架构实战营」

声网的混沌工程实践

声网

测试 混沌工程 质量保障 Dev for Dev

那些年我们一起优化的SQL

Java工程师

Java sql 程序员 索引 MySQL 数据库

云原生小课堂|高性能、高可用、可扩展的MySQL集群如何组建?

York

云原生 MySQL 高可用 MySQL 数据库

浅谈加密算法 aes

奋飞安全

android 安全

关于数据仓库架构及各组件方案选型

五分钟学大数据

数据仓库 4月月更

现代间谍技术的演变:从“王牌特工”到“行走的50w”

脑极体

架构实战营:模块七作业

刘璐

音视频开发必懂知识—低延迟相关知识整理

Linux服务器开发

WebRTC ffmpeg 音视频开发 低延迟 流媒体服务器开发

不想被开巨额罚单?银行需筑起数据安全“护城河”

BeeWorks

一文让你深度了解Linux内核架构和工作原理

简说Linux内核

内存管理 Linux内核 进程管理 驱动开发 嵌入式开发

为什么客户体验为王

小炮

客户服务

皮皮APP联动社会各界,关注孤独症儿童,照亮人生成长的道路

联营汇聚

数据库原理知识及SQL语言知识拓展

王小王-123

MySQL 数据库 MySQL 数据库 4月月更

SpringBoot接入轻量级分布式日志框架(GrayLog)

Java工程师

Java spring 分布式 springboot 组件

架构训练营 模块七

Geek_16d2b8

架构训练营 模块七

恒源云(Gpushare)_如何获取实例SSH端口号?技巧大放送7!

恒源云

服务器 终端登录

洞见科技深度参编的央行金科联盟「多方安全计算」及「联邦学习」金融应用研究报告正式发布

洞见科技

金融科技 隐私计算 金融创新

Tapdata PDK 生态共建计划启动!Doris、OceanBase、PolarDB、SequoiaDB 等十余家厂商首批加入

tapdata

数据库 实时数据

老项目改造返回值规范化

Rubble

4月日更

模块七作业

blazar

「架构实战营」

每个互联网人才都应该知道的SQL注入!

喀拉峻

网络安全 安全 渗透测试 SQL注入

面向对象编程,你真正懂吗?

CRMEB

王者荣耀商城异地多活架构设计

五月雨

架构实战营 「架构实战营」

Redis+Caffeine两级缓存,让访问速度纵享丝滑

Java工程师

Java 数据库 redis 架构 高性能

如何编写一个Linux内核模块,这次手把手教你

简说Linux内核

内存管理 Linux内核 进程管理 嵌入式开发 设备驱动

恒源云(Gpushare)_如何加速从 GitHub 上克隆代码或下载文件?技巧大放送8!

恒源云

GitHub

众安保险 x StarRocks | 全新实时分析能力开启数字化经营新局面

StarRocks

数据库 StarRocks

区块链溯源!“有机”食品也要“有迹可循”

旺链科技

区块链 产业区块链 食品追溯

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