即時精選

【系統分析】用做蛋糕比喻學習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)
    工具自動生成程式碼







分享軟體科技與商業時事新知 👏歡迎一起每週變得更強👏
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
這篇文章提供了關於UML各種圖表(使用案例圖、類別圖、物件圖、循序圖、溝通圖、狀態圖、活動圖、元件圖、部署圖、套件圖、時序圖、互動概念圖、複合結構圖、輪廓圖)的說明與用途,並以淺顯易懂的方式解釋其差異和應用時機。
本文旨在介紹量子力學、量子電腦的原理、發展現況及未來應用 並探討其對資安、區塊鏈和各產業的影響。
這篇文章提供了關於UML各種圖表(使用案例圖、類別圖、物件圖、循序圖、溝通圖、狀態圖、活動圖、元件圖、部署圖、套件圖、時序圖、互動概念圖、複合結構圖、輪廓圖)的說明與用途,並以淺顯易懂的方式解釋其差異和應用時機。
本文旨在介紹量子力學、量子電腦的原理、發展現況及未來應用 並探討其對資安、區塊鏈和各產業的影響。
本篇參與的主題活動
比較2017年與2024年日本東北旅遊照片,對比藏王樹冰、銀山溫泉、山寺等景點在不同時間的景觀差異,即使地點相同,不同時間的體驗與感受截然不同,珍惜每個當下的珍貴回憶。2024年因暖冬導致雪景不如預期,反觀2017年的雪景壯觀美麗。新聞報導2025年日本東北暴雪,衷心祈願一切平安。
記錄一場前往屏東縣三地門鄉德文山(觀望山)的登山之旅,分享路線規劃、登山心得、沿途風景與美食體驗,並提醒登山客注意入山證申請及避免錯過三角點。
薪水的高低,從來不是努力的問題,而是思維的選擇。年薪百萬的人,不是單靠埋頭苦幹,而是透過「創造價值」決定自己的價格。他們懂得提升不可取代性、創造多重收入、主動尋找機會、投資自己,讓財富加速成長。與其等加薪,不如掌握「決定薪資的能力」。這篇文章,讓你看清真正的收入差距,從現在開始,為自己創造更高價值!
《Hunter x Hunter》基路亞擺脫哥哥控制 你也可以 別再諉過原生家庭  重奪你人生的話事權 現在網上有許多討論原生家庭影響的說法,雖然確實存在影響,但過度歸咎於家庭,可能會讓我們失去對人生的掌控權。 能在家人陪伴下成長是一件幸福的事。而且沒有父母是完美的,無論是學歷、貧富、性格
我不是不渴望愛,而是害怕愛會讓我失去自己。單身,對我來說,比戀愛更安全,因為這樣我能掌控自己的情緒與生活,而不必承擔愛帶來的責任與不安。如果你愛上一個像我這樣的人,請別急著改變我,讓我知道,愛不是束縛,而是自由與陪伴。
比較2017年與2024年日本東北旅遊照片,對比藏王樹冰、銀山溫泉、山寺等景點在不同時間的景觀差異,即使地點相同,不同時間的體驗與感受截然不同,珍惜每個當下的珍貴回憶。2024年因暖冬導致雪景不如預期,反觀2017年的雪景壯觀美麗。新聞報導2025年日本東北暴雪,衷心祈願一切平安。
記錄一場前往屏東縣三地門鄉德文山(觀望山)的登山之旅,分享路線規劃、登山心得、沿途風景與美食體驗,並提醒登山客注意入山證申請及避免錯過三角點。
薪水的高低,從來不是努力的問題,而是思維的選擇。年薪百萬的人,不是單靠埋頭苦幹,而是透過「創造價值」決定自己的價格。他們懂得提升不可取代性、創造多重收入、主動尋找機會、投資自己,讓財富加速成長。與其等加薪,不如掌握「決定薪資的能力」。這篇文章,讓你看清真正的收入差距,從現在開始,為自己創造更高價值!
《Hunter x Hunter》基路亞擺脫哥哥控制 你也可以 別再諉過原生家庭  重奪你人生的話事權 現在網上有許多討論原生家庭影響的說法,雖然確實存在影響,但過度歸咎於家庭,可能會讓我們失去對人生的掌控權。 能在家人陪伴下成長是一件幸福的事。而且沒有父母是完美的,無論是學歷、貧富、性格
我不是不渴望愛,而是害怕愛會讓我失去自己。單身,對我來說,比戀愛更安全,因為這樣我能掌控自己的情緒與生活,而不必承擔愛帶來的責任與不安。如果你愛上一個像我這樣的人,請別急著改變我,讓我知道,愛不是束縛,而是自由與陪伴。
你可能也想看
Google News 追蹤
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
本書介紹了戰略設計、管理領域複雜度、實際應用領域驅動設計等主題。透過對核心子領域、支持子領域、限界上下文等概念的探討,提供了領域驅動設計的相關知識。這篇文章中還涉及了微服務、事件驅動架構和資料網格等相關主題,提供了設計系統和應用領域驅動設計的指導。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
Thumbnail
這篇內容,將會講解什麼是表達式(Expression),什麼是陳述式(Statement)。有了這些概念,各位會更容易理解,要如何設計程式碼。
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
Thumbnail
本書介紹了戰略設計、管理領域複雜度、實際應用領域驅動設計等主題。透過對核心子領域、支持子領域、限界上下文等概念的探討,提供了領域驅動設計的相關知識。這篇文章中還涉及了微服務、事件驅動架構和資料網格等相關主題,提供了設計系統和應用領域驅動設計的指導。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
列出一套完整的程式 程式設計有許多種方法,不過通常會先列出清單的再逐一執行,這樣會加快程式設計的速度。設計通常會採取順推的辦法。所以順推的程式設計方式就是經歷觀念溝通、系統分析、資料統合、權限管理、頻率與時間、後台管理、畫面設計等等階段後,將框架設計完了以後,先列出一套完整的程式,將所有使用者都確
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
有趣的是,Model 其實沒什麼嚴格的定義,所以每個人對 Model 的解讀也不盡相同,有人覺得資料怎麼儲存屬於 Model 的一部份 (受 ORM 工具的影響),有人覺得工作流程 (workflow) 是 Model 的一部份,我個人也有自己的想法,而且隨專案的規模和特性,也不是總是一樣的。
Thumbnail
系統的分析與規劃 在談到程式設計時,首要的是進行系統的分析與規劃。程式設計的起點通常是系統分析與規劃,這涉及到如何分析和設計系統的大原則和方向。為了達到預期效果,重要的是擁有對產業的清晰邏輯認識和深入了解。 進行深入了解 若要進行系統分析,必須對企業的設計和程式設計的對象進行深入了解,以充分理
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流