目录

  • 一、什么是模型驱动工程(MDE)?
  • 二、MBE,MDE,MDD和MDA
  • 三、总结

一、什么是模型驱动工程(MDE)?

(参自百科)模型驱动工程(model driven engineering, MDE),模型驱动的软件开发(model driven software development, MDS)是软件工程(software engineering, SE)发展的一个重要方向,是一种以建模(modeling)和模型转换(model transformation)为主要途径的软件开发方法。

与其他软件开发方法相比,模型驱动开发方法的特点主要表现在,该方法更加关注为不同的领域知识构造其抽象描述,即领域模型(domain models),基于这些代表领域概念的模型刻画软件系统,并通过自动(半自动)的层层转换完成从设计向实现的过渡,从而最终完成整个系统的开发。

模型驱动工程的优势在于,使用更接近于人的理解和认识的模型,尤其是可视化模型,有利于设计人员将注意力集中在和业务逻辑相关的信息上,而不用过早地考虑与平台相关的实现细节。尤其是在面对不同应用领域时,模型驱动方法强调使用方便灵活的领域相关建模语言(domain-specific modeling language,DSML)构造系统的模型,基于领域知识实现领域专家、设计人员、系统工程师以及架构师等不同人员之间的良好沟通。

围绕模型在软件开发中的作用,除了广泛使用的“模型驱动”(model-driven)概念,还有“基于模型”(model-based)、面向模型(model-oriented)、以模型为中心(model-centric)等等,但“模型驱动”似乎已经得到了更多的认同。“模型驱动工程”(Model-Driven Engineering, MDE)大致就是在这样的背景上出现并逐渐活跃的。它并不是新出现的一种特定的技术,而是软件开发领域各种围绕模型与建模的技术的一种自然的聚集或综合,它的立场和层次,更接近于基本的软件工程。

另:2005年,模型驱动软件开发领域最重要的年会UML series(International Conference on theUnified Modeling Language)正式更名为MoDELS(International Conference on Model DrivenEngineering Languages and Systems)

二、MBE,MDE,MDD和MDA

MBE(基于模型的工程),MBE流程是一个过程,在该过程中,软件模型虽然不一定是开发的关键工件(但并不像MDD那样“驱动”该过程),但在其中扮演着重要的角色。一个示例就是一个开发过程,在该过程中,设计人员在分析阶段指定了系统的平台无关模型,但随后将这些模型直接交给程序员手动编写代码(不涉及自动代码生成,也没有明确的代码。任何特定于平台的模型的定义)。在此过程中,模型仍然起着重要作用,但不是开发过程的基础。因此,我认为MBE是MDE的超集。所有模型驱动的过程都是基于模型的,但并非相反。
MDE(模型驱动的工程),以模型和模型转换为主要途径的软件开发方法。
MDD(模型驱动的开发),一种使用模型作为开发过程的主要工件的开发范例,在MDD中,实现是从模型自动(半)生成的。
MDA(模型驱动的体系结构),MDA是OMG的MDD愿景,因此依赖于OMG标准的使用。因此,MDA可以视为MDD的子集。

综合上述,四者具有如下的集合关系。

三、总结

模型驱动工程是一种以模型(modeling)为中心,以建模(modeling)和模型转换(model transformation)为主要途径的软件开发方法。

参考:
https://baike.baidu.com/item/%E6%A8%A1%E5%9E%8B%E9%A9%B1%E5%8A%A8%E5%B7%A5%E7%A8%8B/6533344?fr=aladdin
https://modeling-languages.com/clarifying-concepts-mbe-vs-mde-vs-mdd-vs-mda/

软件工程——模型驱动工程(MDE)相关推荐

  1. 供应链安全 | 北京大学软件工程国家工程研究中心 张世琨:软件供应链安全的风险和成因分析

    ■ 北京大学软件工程国家工程研究中心 张世琨 马森 高庆 孙永杰 由于软件应用范围不断扩大,软件安全已经不限于虚拟空间,直接威胁到物理空间的安全,而且,供应链中的任何问题都会导致严重的危害.降低软件安 ...

  2. 【软件工程】工程经济学期末复习资料

    文章目录 第一章 绪论 第二章 基础知识 第三章 现金流量与资金的时间价值 第四章 投资方案的评价指标 第五章 投资方案的比较和选择 第六章 工程项目的融资分析 第七章 工程项目的财务分析 第八章 工 ...

  3. 软件工程网络工程第二次训练(AC代码和详细解释)(C语言描述)

    作者:软件工程 E21514035 蒋渝涵 第一题 代码 #include <stdio.h> #include <math.h> int main() {double n;w ...

  4. 软件工程之工程网络例题详解

    假设有一项工程任务被分解成了a, b,-, i 9个任务,下表给出了完成每个子任务所需要的时间以及子任务之间的依赖关系.按要求回答下面的问题: (1)用工程网络描述下表中给出的信息,计算每个事件的最早 ...

  5. 北航计算机技术硕士含金量,中科院软件工程的工程硕士含金量怎么样?对比清华,北大,北邮和北航?...

    满意答案 qqqq7611672 2014.01.21 采纳率:52%    等级:12 已帮助:19603人 不管是从对人的培养,还是工作,中科院各个专业都没有办法和985相比. 首先说对人的培养, ...

  6. A002-181-2154

    文章目录 一. 关于需求分析与建模的读书心得 1) 我对需求分析与建模的认识与建议 1. 需求问题是当前软件开发面临的主要问题 2. 需求问题具体原因分析 3. 需求工程的重要性 4. 需求工程的复杂 ...

  7. A002-181-2162

    文章目录 摘要: 一.需求分析认识 1.1需求分析到底做什么? 1.3需求分析的内容 1.4需求分析阶段的工作 1.5软件需求的分析与设计方法 1.6需求分析的特点及难点 二.图类关键字 2.1实体关 ...

  8. MBSE和相关名字术语的定义

    本文来源:Value and benefits of model-based systems engineering (MBSE): Evidence from the literature [本文并 ...

  9. start uml怎么自动生成代码_基于UML-RT和Papyrus-RT的系统建模与代码生成

    摘要 本文使用 UML-RT 和 Papyrus-RT 对具有软实时约束的实时嵌入式系统(RTE)的模型驱动工程(MDE)进行了研究.UML-RT 是专门为 RTE 系统设计的 UML 概要文件.它通 ...

最新文章

  1. 三关节机械臂上的传感器 、执行器与控制板STM32F103连接
  2. 汇编语言ac和c何时为1,汇编语言课堂练习一(参考答案)
  3. T-SQL常用字符串函数
  4. scala整型的类型及取值范围
  5. C语言程序设计 | 操作符介绍与使用方法
  6. 6工程文件夹作用_MCUXpresso IDE下SDK工程导入与workspace管理机制
  7. SpringBoot 热部署
  8. 消息队列,我只选RabbitMQ!
  9. PHP仿金蝶云ERP进销存V8网络多仓版源码
  10. 年前辞职-WCF入门学习(5)
  11. 数据结构与算法之-----栈的应用(三)
  12. golang 学习心得一(开发环境搭建过程中一些坑)
  13. linux mint 蓝牙驱动,Mint 使用蓝牙鼠标问题
  14. win7如何显示文件后缀名【系统天地】
  15. 止步89岁!宣布证明黎曼猜想后,数学大师阿蒂亚爵士突然逝世
  16. mpvue项目--书架读书
  17. 如何防止游戏检测出模拟器_【游戏教程】如何在模拟器运行完美世界
  18. Cadence allegro移动、旋转、镜像器件
  19. 清华大学计算机每年考研录取多少人,清华大学 外语 考研 录取多少人
  20. 九星连珠用c语言编程,如果发生九星连珠,人类和地球会灭亡吗?

热门文章

  1. 机器人操作系统ROS(1)
  2. MikuMikuDance中对于Local和Global旋转方式的特殊处理
  3. Android 唯一识别码
  4. 用户行为序列的特征设计和挖掘思路分享
  5. 图形学论文:《A subdivision algorithm for computer display of curved surfaces》细分曲面的计算方法
  6. AXURE9原型教程:做跑马灯广告、弹幕
  7. UGUI无限滚动列表
  8. CentOS-VIM显示行号
  9. 【D1N910】一线大厂React实践宝典(二) React组件
  10. CA/CB波段多普勒天气雷达解析——python