Lazy loaded image
軟體開發
【系統分析】用做蛋糕比喻學習MDA:從UML到自動產生程式碼
00 min
2025-2-10
2025-2-10
type
status
date
slug
summary
tags
category
icon
password
😀
這篇文章以淺顯易懂的「做蛋糕」比喻,解釋MDA(模型驅動架構)的概念,並深入淺出地說明CIM、PIM、PSM三層模型以及自動產生程式碼的過程,幫助讀者理解MDA如何提升軟體開發效率與跨平臺兼容性。
 
學習UML學到MDA這一塊
一直覺得書本上寫的很抽象
再講到CIM、PIM、PSM時就開始有點問號
因為沒有實際例子
讓我們重新用「做蛋糕」的比喻來解釋MDA吧
 
 

什麼是 MDA?

2001年OMG組織提出了MDA的架構
希望設計階段的模型與實作階段程式碼脫鉤。
想像你要做一個蛋糕,但你不直接動手做,而是先寫一份「蛋糕設計圖」。
這份設計圖會詳細描述:
  • 蛋糕有幾層
  • 要用哪些材料
  • 裝飾的步驟
MDA 的核心概念就是:用「設計圖」(模型)來驅動整個軟體開發過程
而不是直接寫程式碼。
你就可以想像成你經營蛋糕工廠
當你畫好設計圖(UML)後
利用工廠的機器(MDA相關工具)產生出程式碼(蛋糕)
 
 

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

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

總結

  • 當你使用MDA時,你就可以有跨平台優勢
    • 你可以使用同一份設計圖,轉換成不同平台使用的語言
  • 當你使用MDA時,你一修改設計圖
    • 你的程式碼也可以跟著一起變動
  • MDA 就像用「設計圖自動做蛋糕」
    • 先畫通用設計圖(PIM)
      轉換成具體操作手冊(PSM)
      工具自動生成程式碼
 
 
 
 
 
 
上一篇
【其他文章】大家好,我是Zaxc
下一篇
【系統分析】UML圖表完整簡介:從使用案例到部署圖,一次知道所有UML圖表