MDA đã cung cấp hƣớng tiếp cận mới cho công nghệ phần mềm với hƣớng tiếp cận sử dụng mô hình nhƣ đối tƣợng trung tâm của quá trình phát triển. MDA cho phép [14]:
Xác định phần độc lập giữa hệ thống và platform
Xác định phần phụ thuộc platform
Chọn một platform chuyên biệt mà hệ thống phụ thuộc
Chuyển đổi hệ thống từ đặc tả platform này sang đặc tả ở platform khác.
Quá trình phát triển phần mềm bao gồm một loạt các phép biến đổi mô hình từ mức trừu tƣợng cao đến mức trừu tƣợng thấp hơn, sau cùng là
chuyển đổi tự động từ mô hình sang mã nguồn hiện thực. Các mô hình trong MDA đƣợc định hƣớng tuân theo kiến trúc MOF [Hình I-1].
Trong [Hình I-1], M0 là hệ thống cần xây dựng. Hệ thống này đƣợc mô tả bởi các mô hình ở mức M1. Mức cao hơn là M2 chứa metamodel định nghĩa ngôn ngữ mô tả các model ở mức M1. Mức trên cùng M3 là meta- metamodel định nghĩa ngôn ngữ mô tả các metamodel ở mức M2. Meta- metamodel đƣợc xây dựng thông qua các khái niệm mà nó định nghĩa. Để hỗ trợ việc định nghĩa ngôn ngữ mô hình hóa dễ dàng hơn, OMG đề xuất một meta-metamodel chung nhất với tên gọi là MOF – Meta Object Facility [8].
Quy trình MDA bao gồm việc xác định một mô hình PIM (Platform Independence Model) và chuyển đổi tự động mô hình này sang một hay nhiều mô hình phụ thuộc nền tảng PSM (Platform Specific Model).
Hình II-14 Minh họa chuyển đổi giữa các mô hình trong kiến trúc MDA
Tăng tính khả chuyển của các sản phẩm trong quá trình phát triển do trì hoãn các tính chất phụ thuộc nền tảng ra khỏi các mô hình ở giai đoạn đầu
Tăng hiệu suất phát triển vì việc chuyển đổi có thể thực hiện tự động và có thể sử dụng lại cho các dự án khác
Tăng cƣờng chất lƣợng phần mềm vì sử dụng lại các mẫu hoặc các best-practice trong chuyển đổi và có thể tăng cƣờng khả năng bảo trì vì có thể truy vết dễ dàng giữa mô hình và mã nguồn [15].
Thông thƣờng, chuyển đổi mô hình đƣợc phân chia thành hai loại: chuyển đổi mô hình sang mô hình và chuyển đổi từ mô hình sang mã nguồn. Chuyển đổi mô hình sang mã nguồn có thể xem là trƣờng hợp đặc biệt của chuyển đổi mô hình sang mô hình khi chúng ta đã xây dựng đƣợc metamodel của ngôn ngữ lập trình đích.
MDA đã đề nghị một giải pháp chuyển đổi mô hình tổng quát [14]. Trong giải pháp này, MDA đề xuất một mô hình trung gian là Tranformation Model [Hình II-15] dùng để chuyển đổi.
Phân tích các công cụ chuyển đổi mô hình hiện có, [15] đã phân loại các công cụ chuyển đổi mô hình nhƣ sau: mô hình sang mã nguồn có hai hƣớng tiếp cận là visitor-based và template-based; mô hình sang mô hình có bốn hƣớng tiếp cận gồm hƣớng tiếp cận định dạng trực tiếp (direct manipulation approaches), hƣớng tiếp cận hƣớng quan hệ (relational approaches), hƣớng tiếp cận dựa vào chuyển đổi hình (graph transformation based approaches), hƣớng tiếp cận hƣớng cấu trúc (structure driven approaches) và hƣớng tiếp cận lai (hybrid approaches).