Kiến trúc định hướng mô hình

Model-Driven Architecture (MDA) hay còn gọi là kiến trúc định hướng mô hình, là một phương thức trong việc thiết kế và phát triển phần mềm, được Object Management Group (OMG) giới thiệu lần đầu vào năm 2001 <ref>[http://www.omg.org/mda/faq_mda.htm#new%20directions Can you tell me something about the history of the MDA?]</ref>.

MDA hỗ trợ trong kỹ nghệ hướng mô hình (Model - Driven Engineering) của các hệ thống phần mềm. MDA cung cấp các hướng dẫn để cấu trúc các đặc tả lại thành các mô hình. MDA gần như là định nghĩa các chức năng của hệ thống dựa trên mô hình độc lập nền tảng (platform-independent model - PIM), sử dụng các ngôn ngữ đặc tả chuyên biệt (domain-specific language). Và sau đó là chuyển thành các mô hình định nghĩa trên nền tảng (platform definition Model - PDM) như là CORBA,.NET, Web... PIM sau đó được chuyển thành một hoặc một vài mô hình dựa trên nền tảng chuyên biệt (platform-specific model'' - PSM) mà các máy tính có thể chạy được. PSM có thể sử dụng các ngôn ngữ đặc tả chuyên biệt hoặc các ngôn ngữ phổ biến như: Java, C#, C++,... Các công cụ tự động sẽ thực hiện toàn bộ các công việc chuyển đổi này.

OMG thực chất cung cấp các đặc tả chung chung chứ không hẳn là các cài đặt cụ thể. Các cài đặt cụ thể cho các giải pháp này thường được các công ty phần mềm hoặc cộng đồng mã nguồn mở thực hiện.

MDA 
OMG phát triển MDA theo mô hình của kỹ nghệ tiến, sản sinh mã nguồn từ các đặc tả trừu tượng và gần gũi với con người (như UML chẳng hạn).

Một trong các mục đích chính của MDA là tách biệt giữa thiết kế và kiến trúc. Thiết kế tập trung vào các yêu cầu chức năng (use case) còn các kiến trúc thì tập trung vào thượng tầng kiến trúc để đáp ứng các yêu cầu phi chức năng như độ ổn định, độ tin cậy và hiệu năng.

Chú thích 

Phần mềm
Kỹ thuật hệ thống
Ngôn ngữ mô hình hóa thống nhất