(參自百科)模型驅動工程(model driven engineering, MDE),模型驅動的軟件開發(fā)(model driven software development, MDS)是軟件工程(software engineering, SE)發(fā)展的一個重要方向,是一種以建模(modeling)和模型轉換(model transformation)為主要途徑的軟件開發(fā)方法。
與其他軟件開發(fā)方法相比,模型驅動開發(fā)方法的特點主要表現(xiàn)在,該方法更加關注為不同的領域知識構造其抽象描述,即領域模型(domain models),基于這些代表領域概念的模型刻畫軟件系統(tǒng),并通過自動(半自動)的層層轉換完成從設計向實現(xiàn)的過渡,從而最終完成整個系統(tǒng)的開發(fā)。
模型驅動工程的優(yōu)勢在于,使用更接近于人的理解和認識的模型,尤其是可視化模型,有利于設計人員將注意力集中在和業(yè)務邏輯相關的信息上,而不用過早地考慮與平臺相關的實現(xiàn)細節(jié)。尤其是在面對不同應用領域時,模型驅動方法強調使用方便靈活的領域相關建模語言(domain-specific modeling language,DSML)構造系統(tǒng)的模型,基于領域知識實現(xiàn)領域專家、設計人員、系統(tǒng)工程師以及架構師等不同人員之間的良好溝通。
圍繞模型在軟件開發(fā)中的作用,除了廣泛使用的“模型驅動”(model-driven)概念,還有“基于模型”(model-based)、面向模型(model-oriented)、以模型為中心(model-centric)等等,但“模型驅動”似乎已經得到了更多的認同?!澳P万寗庸こ獭保∕odel-Driven Engineering, MDE)大致就是在這樣的背景上出現(xiàn)并逐漸活躍的。它并不是新出現(xiàn)的一種特定的技術,而是軟件開發(fā)領域各種圍繞模型與建模的技術的一種自然的聚集或綜合,它的立場和層次,更接近于基本的軟件工程。
另:2005年,模型驅動軟件開發(fā)領域最重要的年會UML series(International Conference on theUnified Modeling Language)正式更名為MoDELS(International Conference on Model DrivenEngineering Languages and Systems)
MBE(基于模型的工程),MBE流程是一個過程,在該過程中,軟件模型雖然不一定是開發(fā)的關鍵工件(但并不像MDD那樣“驅動”該過程),但在其中扮演著重要的角色。一個示例就是一個開發(fā)過程,在該過程中,設計人員在分析階段指定了系統(tǒng)的平臺無關模型,但隨后將這些模型直接交給程序員手動編寫代碼(不涉及自動代碼生成,也沒有明確的代碼。任何特定于平臺的模型的定義)。在此過程中,模型仍然起著重要作用,但不是開發(fā)過程的基礎。因此,我認為MBE是MDE的超集。所有模型驅動的過程都是基于模型的,但并非相反。
MDE(模型驅動的工程),以模型和模型轉換為主要途徑的軟件開發(fā)方法。
MDD(模型驅動的開發(fā)),一種使用模型作為開發(fā)過程的主要工件的開發(fā)范例,在MDD中,實現(xiàn)是從模型自動(半)生成的。
MDA(模型驅動的體系結構),MDA是OMG的MDD愿景,因此依賴于OMG標準的使用。因此,MDA可以視為MDD的子集。
綜合上述,四者具有如下的集合關系。
模型驅動工程是一種以模型(modeling)為中心,以建模(modeling)和模型轉換(model transformation)為主要途徑的軟件開發(fā)方法。
參考:
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/