模型驅動軟體開發
2008 年 7 月 14 日
模型驅動軟體開發 (MDSD) 是一種軟體開發風格,視自己為傳統程式設計風格的替代方案。此方法專注於建立軟體系統的模型。這些模型通常透過圖解設計符號來呈現,UML 是一種選擇。其理念是使用這些圖表向建模工具指定系統,然後以傳統程式設計語言產生程式碼。
MDSD 的願景源自於圖形設計符號和 CASE 工具的發展。這些技術的支持者將圖形設計符號視為一種將抽象層次提升至程式設計語言之上的方法,進而提升開發生產力。儘管這些技術和工具從未廣泛流行,但其基本核心概念仍持續存在,且仍有持續發展這些概念的社群。
儘管我在職業生涯的大部分時間都參與了 MDSD,但我對其未來持懷疑態度。大多數 MDSD 愛好者都基於模型比程式設計語言更具備當然更高層次抽象的基礎來表達他們的熱情。我不同意這種說法,有時圖形符號可以提供更好的抽象,但並非總是如此,這取決於具體情況。此外,要使用 MDSD,您需要支援ProjectionalEditing的工具,而這些工具目前在工具方面引入了許多務實問題,其中原始碼控制就是一個典型的例子。
MDSD 被術語混亂包圍。MDSD 的一個特定願景是 ModelDrivenArchitecture (MDA),這是一項基於 UML 的 OMG 計畫。然而,MDSD 社群中的許多人並不認為 MDA 或 UML 是 MDSD 的正確願景。很長一段時間以來,我都會聽到人們談論模型驅動開發 (MDD) 作為一般概念,而 MDA 作為 OMG 的具體願景。然而,OMG 在幾個「模型驅動 *」和「基於模型 *」的詞組上擁有商標權,包括 MDD。因此,人們必須小心使用哪個模型驅動詞組。我使用 MDSD,因為這是關於此主題的 一本實用的書 的標題。