【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

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

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

关注

评论

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

IPQ8074 Industrial Router with QCN9074/QCN9024 WiFi Network Card - Excellent performance and comprehensive coverage

wifi6-yiyi

QCN9074 IPQ8074

七个 LLM 的狼人杀之夜;马斯克的星链残骸会“砸死人”?OpenAI 安全漏洞曝光丨RTE开发者日报 Vol.66

声网

mac软件推荐:CAD迷你看图中文版

胖墩儿不胖y

Mac软件 cad软件 CAD看图工具

可完全替代FTP的文件传输工具大集合

镭速

文件传输工具 替代FTP FTP传输文件

Postman 调试 WebSocket 接口完整指南

Liam

Postman websocket 接口调试 测试工具 API 测试

基于知识图谱建模、全文检索的智能知识管理库(源码)

金陵老街

java

下载安装Ipa Guard

雪奈椰子

枚举探秘:Java中的神奇力量!

互联网工科生

枚举 java

深度学习应用开发示例之像素分割

矩视智能

深度学习 像素分割

OpenHarmony社区运营报告(2023年9月)

OpenHarmony开发者

Java基础面试题【七】线程池

派大星

Java 面试题

英特尔宣布Intel 4已大规模量产,“四年五个制程节点”计划又进一步

E科讯

如何借助CDC快速实现实时数据传输?

RestCloud

数据同步 ETL CDC

测试过程效率的提升和演变

老张

软件测试 研发效能 质量保障

MySQL5.5安装教程

小齐写代码

如何更优雅的编程?面向接口编程四大法宝!

这我可不懂

函数式编程

如何开发区块链应用程序:分步指南

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

软件测试/测试开发丨Postman实战练习 学习笔记

测试人

Python 软件测试 测试开发

NSDT孪生编辑器助力智慧城市

3D建模设计

智慧城市 数字孪生

业财融合潮流下,构建国有企业全面预算管理体系

智达方通

业财融合 全面预算管理

沐浴阳光,贴心陪伴,全屋智能大模型应用论坛即将发布小度全屋智能新产品

新消费日报

Java和Python对比,看完这篇你就知道有什么不同了

树上有只程序猿

Python java

智慧公厕厂家为城市智慧化建设提供城市卫生升级的力量

光明源智慧厕所

智慧厕所 智慧公厕 厕所改造 公厕改造

企业如何选择安全又稳定的文件传输协议

镭速

大文件传输 文件传输协议

什么是 Merge Queue,为什么要使用它?

高端章鱼哥

merge 合并队列

一图看懂CodeArts Governance 三大特性,带你玩转开源治理服务

华为云PaaS服务小智

云计算 软件开发 华为云

广交会场外蹭热度 第六届广州五金交易会如期召开!

Geek_2d6073

Spring Cloud Gateway:打造可扩展的微服务网关

程序员万金游

#java #微服务 #Spring #SpringCloud

TiDB 7.4 发版:正式兼容 MySQL 8.0

TiDB 社区干货传送门

浅析斐波那契数列在代码中的应用

emanjusaka

Java 后端

打造次世代分析型数据库(六):如何从零实现向量化引擎

腾讯云大数据

数据库

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