Nhƣ minh hoạ trên Hình 4.2, nguyên lý hoạt động của Acceleo M2T [15] là từ mô hình nguồn kết hợp với các module sinh mã (tập hợp các khuôn mẫu), Acceleo Engine sẽ sinh ra mã nguồn theo nhu cầu của ngƣời phát triển.
33
4.1.3.1 Các mô hình được hỗ trợ bởi Acceleo
Các mô hình đƣợc sinh ra từ các công cụ mô hình hoá phần lớn đều tƣơng thích với Acceleo bởi chúng sử dụng các chuẩn và các định dạng mở.
Khởi nguồn Acceleo làm việc với các mô hình đƣợc sinh ra dựa trên EMF, do vậy tất cả các mô hình đƣợc sản sinh từ công cụ mô hình hoá xuất phát từ EMF đều tƣơng thích với Accleo, nhƣ: RSM, Together, và Omondo.
Ngoài ra những công cụ không tƣơng thích với Acceleo thì có thể sử dụng XMI làm trung gian, bởi Acceleo hỗ trợ rất tốt XMI.
Hiện nay Accleo làm việc phần lớn trên các model: EMF, UML13, UML14, UML2, các mô hình định nghĩa trên DSL
4.1.3.2 Các nền tảng đích Acceleo có thể sinh mã
Acceleo M2T sử dụng chuẩn ngôn ngữ MOFM2T của OMG để xây dựng các khung mẫu phục vụ sinh mã nguồn. Tuỳ theo nền tảng chúng ta mong muốn là gì, chúng ta sẽ định hƣớng xây dựng các khung mẫu để ánh xạ mô hình với các nền tảng ta mong muốn nhƣ Java, C/C++, C#, PHP, Pythor…
4.1.3.3 Hướng tiếp cận sinh mã trong Acceleo
Hƣớng tiếp cận xây dựng các khung mẫu theo phƣơng pháp “bottom-up”. Cụ thể, chúng ta đặt ra mục tiêu những mã nguồn nào sẽ đƣợc sinh ra từ các metamodel, dựa trên yêu cầu đó chúng ta sẽ xây dựng các template để sinh mã từ mô hình.
Việc đặt ra mục tiêu cho việc sinh mã nguồn có nghĩa là chúng ta cần xây dựng prototype cho ứng dụng đích, quy định những thành phần nào cấu thành nên một ứng dụng đích đƣợc sinh tự động, chẳng hạn nhƣ với ứng dụng trên mô hình kiến trúc MVC sẽ có cấu trúc gồm: các file cấu hình, các file thuộc lớp trình diễn (view), các file thuộc lớp model, các file thuộc lớp controller…từ đó sẽ căn cứ xây dựng các template để sinh ra các file đích đó từ các mô hình.