模型驅動工程

模型驅動工程

模型驅動工程(model driven engineering, MDE),模型驅動的軟體開發(model driven software development, MDS)是軟體工程(software engineering, SE)發展的一個重要方向,是一種以建模(modeling)和模型轉換(model transformation)為主要途徑的軟體開發方法。

基本介紹

  • 中文名:模型驅動工程
  • 外文名:model driven engineering
  • 別名:模型驅動的軟體開發
  • 簡稱:MDE
  • 主要途徑:建模和模型轉換
  • 關鍵字:模型驅動、MDD
背景,簡介,技術,

背景

在計算機套用領域,“模型驅動”(model-driven)概念在國際上的廣泛關注,主要是在對象管理組(OMG)2002年提出的“模型驅動架構”(MDA)及相關的“模型驅動開發”(MDD)等概念之後。更廣闊的背景,可追溯到20世紀1980-90年代,各種建模技術的蓬勃發展。其中,面向對象建模最為活躍,“統一建模言”(UML)是其中最具代表性的成果。在這一時期,尤其1997年OMG正式採納UML 1.1作為建模語言標準以來,軟體領域無論是業界/技術開發領域還是理論/學術研究領域,大多數與軟體建模有關的研究,都圍繞著UML或與之相關。MDA正是在這樣的背景下提出的。而UML則是MDA方案中的核心要件。
這種技術與實踐領域的發展,同時也推動了它背後的原理與學術研究。在近十多年,除了OMG的MDA,人們對於模型在軟體開發中的套用,有著更廣闊的研究,對於模型與建模的重視一直在增強。在這個背景之下,關於軟體及相關領域的建模與模型方面的各種思想、方法也愈加活躍起來。從近年的情況看,MDA對軟體領域的建模與模型的重視與研究起了很大的促進作用,但它並非這些理念或技術(例如模型驅動)的源頭,這也是毫無疑問的。其實,早在1980年代,曾經受到廣泛重視的“計算機輔助軟體工程”(CASE)就在基於建模與模型的軟體開發技術方面做了大量的探索。以“信息系統”為主題的數據與信息建模、概念建模等,則始終是有關建模的研究方面一個重要的傳統領域。
圍繞模型在軟體開發中的作用,除了廣泛使用的“模型驅動”(model-driven)概念,還有“基於模型”(model-based)、面向模型(model-oriented)、以模型為中心(model-centric)等等,但“模型驅動”似乎已經得到了更多的認同。“模型驅動工程”(Model-Driven Engineering, MDE)大致就是在這樣的背景上出現並逐漸活躍的。它並不是新出現的一種特定的技術,而是軟體開發領域各種圍繞模型與建模的技術的一種自然的聚集或綜合,它的立場和層次,更接近於基本的軟體工程。

簡介

在軟體開發領域,“模型驅動工程”(Model-Driven Engineering, MDE)是近年在MDA的背景上活躍起來的一個概念。雖然如此,MDE具有更中性的立場和更廣闊、全面的範圍,MDA被看作MDE的一個具體和部分的實現途徑。MDE並不是新出現的一種特定技術,而是軟體開發領域各種圍繞模型與建模的技術的一種自然的聚集或綜合。一些倡導者認為,它的目標不僅是為軟體開發者帶來短期效率,還應當降低軟體產品對變化的敏感度,提升軟體壽命,從而帶來長期效率的提升。與面向對象領域對比,MDE研究者提出了“一切皆為模型”的基本原則。除了MDA,1980年代的計算機輔助軟體工程(CASE),也是MDE的一個重要前驅。模型驅動工程這一概念的興起,可能體現出軟體工程正在向一個新的階段演進。
與其他軟體開發方法相比,模型驅動開發方法的特點主要表現在,該方法更加關注為不同的領域知識構造其抽象描述,即領域模型(domain models),基於這些代表領域概念的模型刻畫軟體系統,並通過自動(半自動)的層層轉換完成從設計向實現的過渡,從而最終完成整個系統的開發。
模型驅動工程的優勢在於,使用更接近於人的理解和認識的模型,尤其是可視化模型,有利於設計人員將注意力集中在和業務邏輯相關的信息上,而不用過早地考慮與平台相關的實現細節。尤其是在面對不同套用領域時,模型驅動方法強調使用方便靈活的領域相關建模語言(domain-specific modeling language,DSML)構造系統的模型,基於領域知識實現領域專家、設計人員、系統工程師以及架構師等不同人員之間的良好溝通。

技術

有了這樣的技術積累,人們開始嘗試在更高的抽象層次上開發軟體。而正在此時,對象管理組(Object Management Group, OMG)提出了以模型為中心的軟體開發框架性標準—模型驅動體系結構[2](Model Driven Architecture, MDA),受到了來自學術界和工業界的普遍關注。儘管MDA提出的直接動因是為了解決異構中間件(middleware)平台的互操作障礙問題,但是由它所倡導的以模型為中心進行軟體開發的思想很快得到了廣泛支持,迅速成為研究熱點。MDA整合了OMG在建模語言、模型存儲以及模型交換等方面的一系列標準,形成了一套基於模型技術的軟體系統開發方法和標準體系。
隨著MDA研究熱潮的迅速興起,模型驅動的軟體開發這個詞語逐漸被越來越多的學者使用。此間,和模型相關的不同字眼也不斷出現在不同的學術機構和社區中,如model-driven、model-based、model-related、model-engineering等等。2005年,模型驅動軟體開發領域最重要的年會UML series(International Conference on theUnified Modeling Language)正式更名為MoDELS(International Conference on Model DrivenEngineering Languages and Systems),這開始引起了人們對模型驅動軟體開發領域自身術語使用上的關注。目前,模型驅動軟體開發領域較為普遍使用的術語主要是模型驅動工程(model-driven engineering, MDE)。

相關詞條

熱門詞條

聯絡我們