Phân loại kỹ thuật chuyển đổi trong MDA
c)
Trên đây đã giới thiệu một vài loại chuyển đổi mô hình, cần chú ý rằng trong thực tế có một vài cách áp dụng chuyển đổi mô hình. Trong cách tiếp cận MDA, có bốn loại kỹ thuật áp dụng chuyển đổi mô hình là:
Thủ công:Để chuyển đổi từ mô hình PIM sang PSM, các quyết định thiết kế phải được đưa ra. Những quyết định này được đưa ra trong quá trình phát triển thiết kế để làm phù hợp với các yêu cầu khi triển khai. Đây là cách tiếp cận có ích lợi vì những quyết định được xem xét và đưa ra trong ngữ cảnh triển khai cụ thể. Quá trình chuyển đổi thủ công này không khác nhiều so với các công việc thiết kế phần mềm trước đây. Nhưng cách tiếp cận MDA mang lại giá trị sau:
o Phân biệt rõ ràng giữa mô hình PIM và mô hình PSM được
chuyển đổi
o Lưu vết quá trình chuyển đổi
Sử dụng các hồ sơ Profile: Một mô hình PIM có thể được tạo bằng cách
sử dụng UML profile. Mô hình này được chuyển đổi sang mô hình PSM
bằng cách sử dụng một UML profile hướng nền tảng thứ hai. Kỹ thuật
UML profile bao gồm các đặc tả của hành vi và các luật chuyển đổi có
thể được sử dụng bởi các hành vi và cho phép đặc tả chuyển đổi bởi UML profile.
Các mẫu: Một mẫu là một một sự sắp đặt đặc biệt của các phần tử mô
hình. Các mẫu có thể được áp dụng cho một mô hình và dùng để tạo ra
các phần tử của mô hình mới thông qua sự chuyển đổi mô hình.
Tựđộng: Chuyển đổi tự động được áp dụng để chuyển đổi một hay nhiều mô hình hay các mô hình thuộc một kiểu nào đó dựa trên các luật chuyển
đổi đã được định nghĩa trước. Các luật chuyển đổi này có thể được cài
đặt trong các công cụ hoặc có thểđược định nghĩa rõ ràng dựa trên sự am hiểu về một lĩnh vực đặc trưng. Loại chuyển đổi này yêu cầu mô hình đầu vào phải được xây dựng đầy đủ cả về cú pháp lẫn ngữ nghĩa, và có thể
còn yêu cầu các mô hình phải được gán nhãn với những thông tin cụ thể để các chuyển đổi có thể được áp dụng.
Với kỹ thuật tạo profile và các mẫu, các yêu cầu về đầu vào của người phát triển trong thời gian chuyển đổi hay yêu cầu các mô hình đầu vào cần được gán nhãn. Một mô hình được “gán nhãn” có thể chứa những thông tin liên quan không cần thiết với sự trừu tượng hiện tại của mô hình. Những thông tin này chỉ
liên quan tới các công cụ hay các xử lý trong quá trình chuyển đổi mô hình. Ví
dụ, một mô hình phân tích UML bao gồm các thực thể với các kiểu chuỗi có thể
được gán nhãn là có độ dài cốđịnh hay thay đổi, hoặc nó có thể được gán nhãn
để chỉ ra độ dài tối đa. Từ góc nhìn phân tích, chỉ cần chỉ ra kiểu dữ liệu chuỗi là
đủ. Tuy nhiên, khi chuyển đổi một thuộc tính kiểu chuỗi sang một kiểu của một cột trong cơ sở dữ liệu thì những thông tin thêm vào là cần thiết để hoàn thành việc chuyển đổi.
1.5 Tổng kết chương
Kỹ nghệ phần mềm hướng mô hình ngày càng nhận được nhiều sự quan tâm
của giới công nghệ thông tin. Chính vì chuyển đổi mô hình là một trong hai vấn
đề trọng tâm nhất của kỹ nghệ phần mềm (mô hình hóa và chuyển đổi mô hình)
nên nó có được một sự quan tâm đặc biệt. Qua chương này, chúng tôi đã giúp
người đọc hiểu sâu hơn về phát triển phần mềm hướng mô hình, giúp cho người
đọc dễ dàng nắm bắt những kỹ thuật phức tạp hơn khi nghiên cứu về vấn đề này. Hiện nay, nhiều hướng nghiên cứu mới đang được đưa ra tại nhiều viện nghiên cứu, nhiều hội thảo khoa học, và đã đạt được những thành công nhất định. Chúng tôi tin rằng những thành công đó sẽ góp phần vào việc hiện thực hóa kỹ
CHƯƠNG 2- TIẾP CẬN SINH MÃ NGUỒN JAVA
Để hiện thực hóa quy trình phát triển phần mềm hướng mô hình, các công cụ
phát triển phải hỗ trợ tự động hóa sự chuyển đổi mô hình cụ thể hơn là hỗ trợ
việc chuyển đổi từ mô hình xuống mã nguồn cụ thể. Nội dung chương 2 tập
trung tìm hiểu các vấn đề: (1) phương pháp sinh mã nguồn Java, (2) biểu diễn
mô hình cho ngôn ngữ Java với JaMoPP và (3) công nghệ thao tác chuyển đổi
mô hình ATL. Qua đó, từ mô hình nguồn biểu diễn bằng ngôn ngữ mô hình hóa
như UML, thông qua đặc tả chuyển đổi ATL sẽ thu được mô hình đích biểu diễn bằng JaMoPP tương ứng với mã nguồn Java.
2.1 Tổng quan phương pháp sinh mã nguồn Java
Mục tiêu của phát triển phần mềm hướng mô hình là quá trình tự động tạo ra mã nguồn từ các mô hình. Hiện này có ba cách tiếp cận phổ biến sinh mã nguồn Java bao gồm: sinh mã dựa trên truy xuất (visitor-based), sinh mã dựa trên
template (template-based) và sinh mã từ mô hình biểu diễn Java.
2.1.1 Sinh mã dựa trên truy xuất
Cách tiếp cận dựa trên truy xuất (Visitor-based) [19] là cách tiếp cận đơn giản nhất để sinh mã nguồn, bao gồm việc cung cấp một số kỹ thuật truy xuất để
duyệt cấu trúc biểu diễn của mô hình và ghi mã nguồn vào chuỗi văn bản. Một
ví dụ của phương pháp là Jamda, đây là một framework hướng đối tượng cung
cấp một tập các lớp đại diện cho mô hình UML, tập các API để thao tác trên mô hình và một kỹ thuật truy xuất (gọi là CodeWriters) để sinh mã. Mặc dù Jamda không hỗ trợ chuẩn MOF để định nghĩa các metamodel mới, nhưng các loại phần tử mô hình mới có thểđược đưa ra bằng các phân chia các lớp Java hiện có cho các loại phần tử mô hình được định nghĩa trước.
Hình 2.1- Sinh mã nguồn Java trong JAMDA 2.1.2 Sinh mã dựa trên Template