写点什么

MDE 为何错失良机?

  • 2011-11-06
  • 本文字数:1985 字

    阅读完需:约 7 分钟

每个月都会有更多关于编程语言的活动,也会有更多人对编程语言感兴趣。不管是 JavaScript 和 Python 的兴起、 Dart 的发布,还是 Objective-C 的重生,以及“可执行UML ”说明书的发布,看起来业界已经为新编程语言的到来做好了准备。甚至还有人在为创建新语言 Grace 而努力,它会让人们更易于讲授如何编程。InfoQ 上周参加了 COOMP 研讨会,那是 SPLASH 2011 大会的一部分。

研讨会的目的是要了解为什么“针对建模和编程的语言正分道扬镳”。研讨会的组织者在介绍中提到:

  • 一方面,有些开发者想要应用面向对象的设计来获得合适的模型,最终需要面临同时维护模型和程序的挑战。并且,由于很多建模语言和编程语言抽象的层次都是相同的,所以使用单独的建模语言不会带来太多好处。
  • 另一方面,我们看到很多面向对象的代码都是由不称职的开发者编写的,他们对面向对象的设计和开发规则都不是很理解,这导致编写出来的代码非常复杂,而且难以理解和维护,因为在代码中并没有很好地反映出应用程序领域的概念和现象。

研讨会上,Jean Bezivin 在演讲“为什么 MDE 错失良机”中表达了自己的观点。他认为,如果我们根据业界采用的程度以及开始进行大型的建模项目多少来评估 MDE(Model Driven Engineering,模型驱动工程)是否成功,那么就会发现 MDE 已经停滞不前了。他并不认为 MDE 已经到了穷途末路:他向我们展示出,尽管面向对象可以追溯到在上世纪六十年代末就发明出来的SIMULA,但是直到1986 年,第一届OOPSLA 会议的召开,面向对象才成为主流并被广泛采用,三年后Tom Love 才创建出第一个面向对象的杀手级应用程序,当时他用220 行面向对象的代码取代了原来的10,000 行代码。

Jean 提到了 MDE 错失良机的几个原因:

  • 一直没有一个杀手级的应用程序,能够产生可度量和可再现的证据,来证明 MDE 相比以前的解决方案,至少提供了一种显著的提升。
  • 有太多的定义和阵营(MDD、MDSD、MDA、MDE、MDSE、MBD……)
  • 对于 MDE 到底是什么大家始终还有疑惑,例如,大家不了解模拟(Simulation)和 MDE 这两种软件工程截然不同的分支之间的区别。
  • 我们常会使用 UML 作为建模的基础,它是一种松散定义的语言,基于业界的共识创建,不具备很好的模块化原则,而且太大、太复杂、变化过于频繁……
  • 我们对下面这个问题缺少关注:如果 MDE 是解决方案,那么问题是什么呢?
  • 执行 vs 精确度:精确度并不一定需要通过执行才能够获得,而 MDE 的目标不总是要创建可执行的模型。
  • 在编程和建模之间有混淆,二者在 90 年代可视化编程语言出现的时候开始被混为一谈。
  • 人们经常会认为 MDE 增加了复杂度:元模型经常会太大,而且有太多元模型,它们之间的关系和组合都很难于理解。
  • MDE 缺少模块性,即便在 UML 中引入了包和属性(profile)也没有解决这个问题
  • MDE 缺少可移植性:关于模型在时间和空间上的可移植性没有正式的定论(十年前创建的模型,可能在今天已经不可用了)
  • XMI 是失败的产品,最终会消亡,它只是导致了 UML 的维护问题
  • 人们始终没有把平台模型的想法当回事儿,而 CIM/PIM/PSM 都只在表面上是好主意,实质并非如此
  • MDE 过多关注于代码的模型,而对数据的模型关注不够
  • MDE 过多关注于解决方案模型,而对问题模型关注不够
  • MDE 过多关注于信息系统模型,而对业务模型关注不够
  • MDE 过多关注于小型系统的建模,而对大型系统关注不够

Jean 总结说:

MDE 暂时的失败主要是因为:

  • UML,这是主要问题
  • 混淆了建模和编程语言
  • 没有对可执行建模的定义和评估
  • 太多阵营

Jean 还认为,我们在过去的 20 年间学到了很多:

  • 我们从“统一方法”转到了“统一语言”。
  • MDA 清晰地表述了概念,以及模型的重要性。
  • 在模型图的帮助下,MDE 成为了分离和整合各种信息系统概念的最佳解决方案。
  • DLS 已经普遍存在
  • MDE 除了应用在软件工程中之外,还应用在很多其它 IT 领域:数据工程、系统工程、业务工程等。

Jean 提到,移动设备出现之后,应用程序最终用户的数量正在快速增长,而在未来的几年间开发者的数量可能无法满足构建应用程序的需要。

他在结论中认为,在语义网络(Semantic Web)和更新的编译技术之间,已经不存在 MDE。而只是保留了轨迹:用于记录设计图和文档的 DSL(基于能够识别语法和 XML 的技术)和 UML。

他在演讲的过程中提出了很重要的问题:有了 JavaScript、Dart 和 GWT 之类的工具,我们是否已经开始在构建这样的编程语言,你不需要使用它编程,而是要用来生成一种语言?

你是否同意 Jean 的观点? 你认为软件工程的前景如何?让新人们继续深陷在编程语言中呢?还是即将出现新一代的模型驱动的工程,从而改变我们现在所认知的软件工程?

译者注:MDE 即 Model Driven Engineering 的缩写,模型驱动工程,它是一种软件开发的方法学,专注于创建领域模型(domain model)。这种方法的目的是,通过最大化系统之间的兼容性、简化设计过程、改善开发系统的个人和团队之间的沟通来提高生产力。

查看英文原文: Why did MDE Miss the Boat?

2011-11-06 03:131961
用户头像

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

关注

评论

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

平头哥剑池CDK 更新重磅来袭!三大亮点速看!

Roy夹馍

物联网 risc-v 嵌入式开发 软件模拟

RVB2601开发板用户指南

Roy夹馍

IoT risc-v 嵌入式开发

极光笔记丨Locust性能测试工具的使用

极光JIGUANG

软件测试 测试工具

RVB2601开发板快速上手教程

Roy夹馍

MCU risc-v 嵌入式开发

辅导班用什么管理系统?染书CRMA,课时班级信息自动罗列

亿欧之

如何创建网上试卷?快考题|企考云,专项练习降低人工阅卷失误率

亿欧之

如何建立微信考试?快考题|企考云,轻松拥有HR在线测评系统

亿欧之

从芯片到云全链路高效设计 一文了解YoC基础软件平台

Roy夹馍

物联网 risc-v 嵌入式开发

数字人民币与智能合约

CECBC

低代码和无代码的区别

低代码小观

低代码 开发工具 无代码 低代码与无代码区别

ipfs挖矿是什么意思?ipfs挖矿靠谱吗?

ipfs挖矿靠谱吗 ipfs挖矿是什么意思

springboot elementui vue商城微信小程序源码(毕设)

清风

小程序 Vue 毕业设计 毕设

Paxos理论介绍(3): Master选举

OpenIM

在线考试系统有哪些?快考题|企考云,高频互动的培训功能免费用

亿欧之

人工智能是下一个“新生代农民工”吗?

澳鹏Appen

人工智能 大数据 AI 数据标注 训练数据

Vector向量计算技术与SIMD技术的对比

Roy夹馍

cpu IoT 芯片 risc-v

EMQ X VS RabbitMQ:两大消息服务器 MQTT 性能对比全解(上)

EMQ映云科技

RabbitMQ 物联网 IoT mqtt emq

ipfs最新官网通知?ipfs是一场技术革命?

区块链 分布式存储 IPFS Filecoin ipfs挖矿

图像之场景分类 实验研究

毛显新

人工智能 神经网络 深度学习 图像识别 PyTorch

托管班用什么管理系统?染书CRMA,自带营销工具提升续班率

亿欧之

解析金融服务如何在区块链中建立信任?

CECBC

财经大课:看懂价格信号

石云升

财经思维 9月日更

补课班用什么管理系统?染书CRMA,赋能教培机构信息化

亿欧之

ipfs矿机工作原理是什么?ipfs矿机多少钱一台?

IPFS矿机多少钱一台 ipfs矿机工作原理是什么

平头哥玄铁CPU调试系统介绍

Roy夹馍

cpu risc-v 嵌入式开发 调试系统

filecoin全网有效算力突破10EiB?Filecoin挖矿现在还有机会入场吗?

区块链 分布式存储 IPFS filecoin挖矿 filecoin矿机

天津赛誉食品有限公司与小王庄黄金梨携手 助推文旅产业化联盟销售

InfoQ 天津

玄铁VirtualZone:基于RISC-V架构的安全扩展

Roy夹馍

cpu 物联网 嵌入式开发

澳鹏Appen收购Quadrant:移动定位数据业务进一步增强

澳鹏Appen

人工智能 大数据 企业 收购

有道词典 Flutter 架构与应用

有道技术团队

大前端 客户端 网易有道

fil矿机8T多少钱?fil矿机多少钱一台?

FIL矿机多少钱一台 fil矿机多少钱

MDE为何错失良机?_架构_Jean-Jacques Dubray_InfoQ精选文章