簡介
與其他軟體開發方法相比,模型驅動開發方法的特點主要表現在,該方法更加關注為不同的領域知識構造其抽象描述,即領域模型(domain models),基於這些代表領域概念的模型刻畫軟體系統,並通過自動(半自動)的層層轉換完成從設計向實現的過渡,從而最終完成整個系統的開發。模型驅動工程的優勢在於,使用更接近於人的理解和認識的模型,尤其是可視化模型,有利於設計人員將注意力集中在和業務邏輯相關的信息上,而不用過早地考慮與平台相關的實現細節。尤其是在面對不同套用領域時,模型驅動方法強調使用方便靈活的領域相關建模語言(domain-specific modeling language,DSML)構造系統的模型,基於領域知識實現領域專家、設計人員、系統工程師以及架構師等不同人員之間的良好溝通。
歷史
儘管模型驅動開發方法的研究是在2000年左右開始普遍受到關注的,但其中蘊含的思想是軟體開發學一直都在研究的。在軟體開發的長期摸索過程中,人們逐漸認識到“提高解決問題的抽象層次”是有效利用抽象手段解決軟體開發問題的一個非常具體而實用的途徑。Stephen J. Mellor在21世紀初曾指出[1],過去的50多年裡,人們利用“提高解決問題的抽象層次”處理軟體開發的問題已經取得了兩個較為顯著的進展:1)開發出了具有較高抽象層次的程式設計語言;2)能夠在更高抽象層次上實現軟體復用。
技術
有了這樣的技術積累,人們開始嘗試在更高的抽象層次上開發軟體。而正在此時,對象管理組(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)。