學習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)
工具自動生成程式碼