写点什么

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

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

关注

评论

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

LED面板显示屏驱动芯片

梦笔生花

“云”端赛马 “算”出未来丨华为云轻量应用服务器助力企业换道超车

平平无奇爱好科技

2. 商品那些模型

Joy

阿里云太“氪金”?试试华为云超高性价比轻量应用服务器

平平无奇爱好科技

让小程序开发稳步快跑,这款轻量应用服务器凭实力说话

轶天下事

WorkPlus即时通讯软件,以自主安全为底座,连接工作的一切

WorkPlus

独家丨小程序开发支出明细,快Get华为云低成本高效率开发秘诀!

平平无奇爱好科技

SQL 中的运算符与别名:使用示例和语法详解

小万哥

MySQL 数据库 程序员 sql 后端开发

企业建站服务器选“懵逼”了?照着华为云的思路买准没错!

平平无奇爱好科技

3. 跨境卖全球框架

Joy

4. 爬虫系统

Joy

爬虫实战

真香定律再现!中小企业数字化逃不过华为云轻量应用服务器

平平无奇爱好科技

大量索引场景下 Easysearch 和 Elasticsearch 的吞吐量差异

极限实验室

数据库 搜索引擎 elasticsearch 吞吐量 easysearch

钱少事少效率高,华为云这款轻量应用服务器真乃职场神器

轶天下事

快速从入门到精通,华为云耀云服务器L实例让小程序开发更简单

平平无奇爱好科技

商场如战场!华为云助力企业打赢云服务器之战

平平无奇爱好科技

6. 账号系统

Joy

跨境电商独立站太烧钱?中小企业老板快收藏华为云这份省钱秘笈

轶天下事

超强新品叠加价格特惠,华为云助力小程序开发红海“掘金”

轶天下事

流量为王时代,华为云耀云服务器L实例让网站建设不焦虑

轶天下事

5. IM系统

Joy

向场景而生,移动数字化底座WorkPlus支持场景化定制

WorkPlus

老板抱怨网站投入没效果?掌握这份运营秘诀效果直接起飞

轶天下事

拒绝成为“时代的眼泪”,华为云这款服务器赋能企业高效转型

轶天下事

小程序创业是伪命题?华为云耀云服务器L实例铺开初创企业发展新蓝图

平平无奇爱好科技

智能管理、极致性能:华为云耀云服务器L实例引领小程序开发新潮流

平平无奇爱好科技

1. 商品CPV模型

Joy

7. 电商全球化架构

Joy

无脑推荐的轻量应用服务器有没有?华为云是最佳选择

平平无奇爱好科技

开启数字化转型之选,探寻华为云耀云服务器L实例的独特魅力

YG科技

新手站长网站开发常犯错?有了华为云这款轻量应用服务器不再踩坑

YG科技

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