分享

软件工程...

 一剑倚天寒 2022-09-25 发布于湖北

一、什么是模型驱动工程(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:///clarifying-concepts-mbe-vs-mde-vs-mdd-vs-mda/

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多