【系統分析】用做蛋糕比喻學習MDA:從UML到自動產生程式碼

更新於 發佈於 閱讀時間約 3 分鐘


raw-image



學習UML學到MDA這一塊

一直覺得書本上寫的很抽象

再講到CIM、PIM、PSM時就開始有點問號

因為沒有實際例子


讓我們重新用「做蛋糕」的比喻來解釋MDA吧


什麼是 MDA?

2001年OMG組織提出了MDA的架構
希望設計階段的模型與實作階段程式碼脫鉤。

想像你要做一個蛋糕,但你不直接動手做,而是先寫一份「蛋糕設計圖」。

這份設計圖會詳細描述:

  • 蛋糕有幾層
  • 要用哪些材料
  • 裝飾的步驟


MDA 的核心概念就是:用「設計圖」(模型)來驅動整個軟體開發過程

而不是直接寫程式碼。

你就可以想像成你經營蛋糕工廠

當你畫好設計圖(UML)後

利用工廠的機器(MDA相關工具)產生出程式碼(蛋糕)



MDA 的三大步驟(分層設計)


  1. CIM(Computation Independent Model)→ 需求藍圖
    ➤ 就像你和客戶討論:「蛋糕要多大?什麼口味?預算多少?」
    ➤ 這階段只關心「要做什麼」,不談技術細節。
  2. PIM(Platform Independent Model)→ 通用設計圖
    ➤ 設計一個「通用蛋糕食譜」,例如:「三層巧克力蛋糕,用鮮奶油裝飾」。
    ➤ 此時不考慮「用哪個牌子的烤箱」或「用哪種攪拌器」。
  3. PSM(Platform Specific Model)→ 具體操作手冊
    ➤ 根據你家廚房的設備(例如:某品牌烤箱),把通用食譜轉換成具體步驟。
    ➤ 例如:「烤箱預熱到 180°C,烤 25 分鐘」


自動生成程式碼
➤ 最後,工具會把「具體操作手冊」轉換成真正的程式碼(例如 Java、Python)。



總結

  • 當你使用MDA時,你就可以有跨平台優勢
    你可以使用同一份設計圖,轉換成不同平台使用的語言
  • 當你使用MDA時,你一修改設計圖
    你的程式碼也可以跟著一起變動
  • MDA 就像用「設計圖自動做蛋糕」
    先畫通用設計圖(PIM)
    轉換成具體操作手冊(PSM)
    工具自動生成程式碼







留言
avatar-img
留言分享你的想法!
avatar-img
ZAXC科技商業週週報
3會員
11內容數
分享軟體科技與商業時事新知 👏歡迎一起每週變得更強👏
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
Mplus是一種用於統計分析和結構方程模型(SEM)的軟體,通常用於處理複雜的數據分析和模型建立。以下是一些Mplus的基本語法示例,用於不同類型的分析。
Thumbnail
Mplus是一種用於統計分析和結構方程模型(SEM)的軟體,通常用於處理複雜的數據分析和模型建立。以下是一些Mplus的基本語法示例,用於不同類型的分析。
Thumbnail
IC產業常用術語,什麼是SDC? DRC? EC? 打開小白筆記~
Thumbnail
IC產業常用術語,什麼是SDC? DRC? EC? 打開小白筆記~
Thumbnail
本文摘要出我覺得IC開發流程中最基本的相關知識,幫自己的成長做紀錄,也分享給剛加入半導體/IC產業的小白們,希望這篇文章可以提供幫助。
Thumbnail
本文摘要出我覺得IC開發流程中最基本的相關知識,幫自己的成長做紀錄,也分享給剛加入半導體/IC產業的小白們,希望這篇文章可以提供幫助。
Thumbnail
關於塑膠件的設計流程中,除了模具設計部門(或廠商) 對於機構設計部件所做的 tooling DFM之外,做重要的就是 "模流分析" 了。 IG:https://instagram.com/tomdaddydesign/
Thumbnail
關於塑膠件的設計流程中,除了模具設計部門(或廠商) 對於機構設計部件所做的 tooling DFM之外,做重要的就是 "模流分析" 了。 IG:https://instagram.com/tomdaddydesign/
Thumbnail
分類原則請參照這篇 狹義來說,我們把建模視為幾何建模的簡寫,但是廣義來說他應該是會包含發熱體行為,風扇行為,所有會影響到各方程式架設的因子。也就是說如果我們今天以最基本熱流模型,那就會有流的建模和熱的建模。 雖然說是流體建模,但是實際上卻是畫固體邊界,然後不屬於固體的部分通通是流體。一般概
Thumbnail
分類原則請參照這篇 狹義來說,我們把建模視為幾何建模的簡寫,但是廣義來說他應該是會包含發熱體行為,風扇行為,所有會影響到各方程式架設的因子。也就是說如果我們今天以最基本熱流模型,那就會有流的建模和熱的建模。 雖然說是流體建模,但是實際上卻是畫固體邊界,然後不屬於固體的部分通通是流體。一般概
Thumbnail
建模 (Modeling) 畫細不難,難在用最經濟的方式達成 "雖不中亦不遠矣"。 網格 (Meshing) 任憑你列式再怎麼漂亮,解不出來就是白搭。 求解 (iterating) 能收斂都好說,不能收斂就是痛苦的開始
Thumbnail
建模 (Modeling) 畫細不難,難在用最經濟的方式達成 "雖不中亦不遠矣"。 網格 (Meshing) 任憑你列式再怎麼漂亮,解不出來就是白搭。 求解 (iterating) 能收斂都好說,不能收斂就是痛苦的開始
Thumbnail
程式語言只是工具,更重要的是程式邏輯 【運算思維】 1.拆解: 將一個任務或問題拆解成數個步驟或部分。 2.找出規律: 預測問題的規律,並找出模式做測試。 3.歸納與抽象化: 找出最主要導致此模式的原則或因素。 4.設計演算法: 設計出能夠解決類似問題並且能夠被重複執行的指令流程。
Thumbnail
程式語言只是工具,更重要的是程式邏輯 【運算思維】 1.拆解: 將一個任務或問題拆解成數個步驟或部分。 2.找出規律: 預測問題的規律,並找出模式做測試。 3.歸納與抽象化: 找出最主要導致此模式的原則或因素。 4.設計演算法: 設計出能夠解決類似問題並且能夠被重複執行的指令流程。
Thumbnail
「圖解」是一項很有魅力的技能,夠將複雜的資訊濃縮在一張圖上說清楚。這篇文章寫給需要處理複雜問題的人,內容摘要於一位工程師分享「為自己的程式碼做圖解的經驗」,看完後你可以學習圖解的 3 個大概念 — 區分、連結、描述關係,將腦中複雜的問題與邏輯架構,透過圖解表達出來。
Thumbnail
「圖解」是一項很有魅力的技能,夠將複雜的資訊濃縮在一張圖上說清楚。這篇文章寫給需要處理複雜問題的人,內容摘要於一位工程師分享「為自己的程式碼做圖解的經驗」,看完後你可以學習圖解的 3 個大概念 — 區分、連結、描述關係,將腦中複雜的問題與邏輯架構,透過圖解表達出來。
Thumbnail
這是微積分科普系列:「從生活認識微積分」中的第一篇,在本文中將列舉數個生活例子,帶你逐一了解函數的概念,透過「長相」與「稱呼」,「商品」與「價格」、「原料」與「產品」帶你了解函數、定義域、值域的定義,並了解函數的數學標示方法,即使沒有學過函數概念的人也能讀懂。
Thumbnail
這是微積分科普系列:「從生活認識微積分」中的第一篇,在本文中將列舉數個生活例子,帶你逐一了解函數的概念,透過「長相」與「稱呼」,「商品」與「價格」、「原料」與「產品」帶你了解函數、定義域、值域的定義,並了解函數的數學標示方法,即使沒有學過函數概念的人也能讀懂。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News