模型驅動開發,傳統程式設計方式的終結?

2021-05-21 11:51:52 字數 1896 閱讀 8426

前言

「模型驅動開發」——體會一下這幾個詞。它們說出了這個不斷變化的工業中乙個新的改變。這裡不是說一種革命,而是一種緩慢的變化,但是肯定會滲透到我們開發系統的方式中。這種推動將降低**的重要性,並且專注於一些開發中的真正事情:最終的應用程式被期望怎樣工作,並確保你能夠根據客戶的需求可靠地建立起它來。

模型驅動開發是更偉大視景mda 中的一部分。mda 是模型驅動體系架構(model-driven architecture)的簡稱,由物件管理組織omg(object management group)所驅動。mda 表示了一種模型驅動開發方法的概念框架。然而,儘管完整的mda 還沒有成為現實,模型驅動開發現在已成為可能。實際上,它已以較低階的形式存在了較長一段時間,所以我們並不是在做某種新的東西(當然,除非你在聽某些市場人員的宣傳)。

沒有魔法

如果模型驅動開發這麼好的話,為什麼不是每個人立刻加入到這個潮流中來呢?

首先,模型驅動開發不是乙個銀子彈,能神奇地解決你所有的問題。總有某人需要去實現系統的功能,並且還找不到任何工具來完成這一點。所有你能發現的工具只是使這項工作更容易和直接一些。

第二,採用模型驅動開發,並不只是在開發專案的過程中更換一種工具。它還必須和已根深蒂固的開發過程結合起來(如果沒有的話,你就可以開始使用模型驅動開發了;否則你就只能改善當前的情況),但實際上更重要的是,你還會擔心它對現有應用程式的影響。決定改用基於模型的方法前確實需要有一些仔細的考慮,並且,一般說來,為了不影響當前的工作,你只會在新專案中改變開發方法。

第三,你還需要獲得那些使用工具的人們的支援(你需要一些工具來應用模型驅動開發)。開發人員常會認為「模型驅動開發不是程式設計」而迴避它,並且當心他們的工作難於被接受。他們還可能擔心模型驅動開發將會使他們以前辛苦學來的一些技巧過時。他們的擔心也不是完全沒有理由。採用模型驅動開發後,市場確實很有可能會減少對那些精通好幾種程式語言的開發人員的需求。但是另一方面,所有好的開發人員,首先和最主要的是,他們是問題的解決者。他們感興趣的是盡可能地為手邊的主要問題找到新的更好的解決方案。模型驅動開發激動人心的一點就是它允許開發人員集中精力於解決主要的設計問題,增加新的、酷的功能;而不是花費他們的主要時間於改正語法錯誤,防止記憶體洩露,或無休止的低階bug 上。

還有第四點,它也是第三點的乙個結果,工具必須足夠的好。不幸的是,有時使用者對工具期待太多,或工具提供廠商承諾過多,實際上卻不能交付。這兩種情況都很容易使使用者放棄模型驅動開發的想法。你確實需要保證工具能夠滿足你的需求。

視覺化軟體工程的作用工具的考慮

工具實現模型驅動開發的方式各不相同,給予使用者或多或少的靈活性。雙向工程是乙個可憐人的選擇,他不能在模型中捕獲到系統行為,並且他還把自己與某種特定的程式語言繫結在一起,這還是一種以**為中心的方法,所有這些都將使你感到難受。在一些緊急的場合,你甚至會忘記模型,比如乙個專案就要到達最後期限(看起來在某處總有乙個最後期限)了。在專案的最後,你得到了乙個可工作的應用程式,還有乙個沒有實際用處的模型。這時,你甚至懷疑建模的重要性了。

對雙向工程問題的乙個讓步就是在模型中直接插入程式設計**,因此強迫你更新模型以確保最終得到乙個可執行的應用程式。這同樣使你感到難受,又被繫結到某種特定程式語言,你還不得不在模型的很多地方插入**片斷。這很像在c 程式中插入彙編**,儘管有時這是必要的,但是將來維護會是問題並可能傷害你。

考慮直接在模型中提供指定系統行為的能力,上述兩種方法都變得過時。在模型驅動開發中,你只需按乙個鍵,在你選擇的平台上,就能獲得自動生成的任何語言的**,這樣在模型這一級上就能實現應用程式的可移植性。你不需要修改**,改變你的系統就能直接反應到模型的實現上。當然,目前還有一些路需要走,大部分的工具廠商目前都有他們自己的語言對映,但要實現mda 的目標,就需要有對不同語言和平台的標準對映和指令碼。好訊息就是這種前景正在展現。模型驅動開發確實正在起作用,並必將改變我們開發系統的方式。

模型驅動開發 基本模型 外掛程式模型的開發方法

任何乙個複雜的系統都應該存在簡單的規則,可以使用一些基本元素組合構建而成。這樣的系統在數學上被認為是簡潔和優美的。這一點在軟體中最容易歸納出來。人們也一直試圖找出一種簡潔方便方法和系統來構建軟體。軟體的乙個特性是相似性。我們寫過大量 後會發現 很多 都有相當程度的相似性。我們每個人每天只是重複寫其他...

模型驅動開發 基本模型 外掛程式模型的開發方法

任何乙個複雜的系統都應該存在簡單的規則,可以使用一些基本元素組合構建而成。這樣的系統在數學上被認為是簡潔和優美的。這一點在軟體中最容易歸納出來。人們也一直試圖找出一種簡潔方便方法和系統來構建軟體。軟體的乙個特性是相似性。我們寫過大量 後會發現 很多 都有相當程度的相似性。我們每個人每天只是重複寫其他...

Windows的驅動開發模型

windows的驅動開發模型 在windows的不同版本上開發的驅動程式 模型 模型這個詞語應該 於單詞 mode 在windows nt上,驅動程式被稱為kernel driver mode驅動程式。筆者認為這個mode是指一種驅動程式的結構和運作的規範 有過不同的名稱。比如在windows 9x...