Tải bản đầy đủ (.pdf) (145 trang)

(Luận án tiến sĩ) Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.92 MB, 145 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trần Đình Diễn

CÁC KỸ THUẬT CHUYỂN ĐỔI MƠ HÌNH VÀ SINH MÃ
TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MÔ HÌNH

LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM

Hà Nội - 2021


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Trần Đình Diễn

CÁC KỸ THUẬT CHUYỂN ĐỔI MƠ HÌNH VÀ SINH MÃ
TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MÔ HÌNH
Ngành: Kỹ thuật phần mềm
Mã số: 9480103
LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM

NGƯỜI HƯỚNG DẪN KHOA HỌC
1. PGS.TS. Huỳnh Quyết Thắng
2. PGS.TS. Cao Tuấn Dũng

Hà Nội - 2021



LỜI CAM ĐOAN
Tôi cam đoan đề tài: “Các kỹ thuật chuyển đổi mơ hình và sinh mã trong phát
triển ứng dụng web hướng mơ hình” là cơng trình nghiên cứu của bản thân tôi, các kết
quả nghiên cứu trong luận án là trung thực và chưa từng được tác giả khác công bố.
TM. Tập thể giáo viên hướng dẫn

Hà Nội, ngày 01 tháng 12 năm 2021
Tác giả

PGS.TS. Huỳnh Quyết Thắng

Trần Đình Diễn

i


LỜI CẢM ƠN
Tơi xin bày tỏ lịng biết ơn sâu sắc nhất tới PGS.TS. Huỳnh Quyết Thắng, PGS.
TS. Cao Tuấn Dũng là người định hướng và hướng dẫn khoa học, đã tận tình giúp đỡ
tơi trưởng thành trong cơng tác nghiên cứu và hồn thành luận án.
Trong suốt q trình học tập và nghiên cứu tại trường, tôi đã nhận được sự hướng
dẫn và giúp đỡ tận tình của tập thể các thầy, cô giáo tại Viện Công nghệ thông tin và
Truyền thơng, Phịng đào tạo Trường Đại học Bách khoa Hà Nội. Tôi xin ghi nhận
và biết ơn sự đóng góp q báu của các thầy, cơ.
Tơi xin trân trọng cảm ơn Ban giám hiệu Trường Cao đẳng Kinh tế, Kỹ thuật và
Thủy sản cùng các thầy cô tại trường đã tạo điều kiện về thời gian, chuyên môn và
nhiều hỗ trợ khác giúp đỡ tôi thực hiện luận án.

ii



MỤC LỤC
LỜI CAM ĐOAN ...................................................................................................................... i
LỜI CẢM ƠN ........................................................................................................................... ii
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT .......................................................... v
DANH MỤC CÁC BẢNG .................................................................................................... vii
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ............................................................................. viii
MỞ ĐẦU .............................................................................................................................. 1
Mục đích nghiên cứu .............................................................................................. 3
Nhiệm vụ nghiên cứu ............................................................................................. 3
Đối tượng và phạm vi nghiên cứu .......................................................................... 3
Phương pháp nghiên cứu ........................................................................................ 4
Ý nghĩa khoa học và thực tiễn của đề tài................................................................ 4
Các kết quả mới đạt được ....................................................................................... 5
CHƯƠNG 1: PHÁT TRIỂN PHẦN MỀM HƯỚNG MƠ HÌNH ...................................... 6
1.1. Kiến trúc MDA ................................................................................................ 6
1.1.1. Chuyển đổi mơ hình trong MDA .............................................................. 8
1.1.1.1. Chuyển đổi từ CIM sang PIM ........................................................... 9
1.1.1.2. Chuyển đổi từ PIM sang PSM ........................................................... 9
1.1.1.3. Chuyển đổi từ PSM sang code ........................................................ 13
1.1.2. Ngơn ngữ chuyển đổi mơ hình ................................................................ 13
1.1.2.1. Ngôn ngữ ATL ................................................................................ 13
1.1.2.2. Ngôn ngữ QVT ................................................................................ 21
1.2. Các chuẩn của OMG cho MDA .................................................................... 23
1.2.1. MOF – Meta Object Facility ................................................................ 23
1.2.2. UML – Unified modeling Language ..................................................... 23
1.2.3. OCL (Object Constraint Language) ..................................................... 23
1.2.4. UML Profile.......................................................................................... 24
1.2.5. CWM (Common Warehouse Metamodel)............................................. 24
1.3. Kỹ thuật web hướng mơ hình ........................................................................ 25

1.3.1. UWE (UML-Based Web Engineering) ................................................... 26
1.3.2. Web Software Architecture (WebSA) ..................................................... 26
1.3.3. WebML (Web Modeling Language) ....................................................... 27
1.3.4. OOWS - Object-Oriented Web Solution ................................................. 28
1.3.5. Hypertext Modeling Method of MIDAS (MIDAS-HM3) ........................ 28
1.4. Các nghiên cứu liên quan và nhiệm vụ trong luận án ................................... 29
1.5. Tiểu kết chương ............................................................................................. 33
CHƯƠNG 2: KỸ THUẬT CHUYỂN ĐỔI MƠ HÌNH (CIM TO PIM) THEO
PHƯƠNG PHÁP UWE CHO PHÁT TRIỂN ỨNG DỤNG WEB .................................. 34
2.1. Các mơ hình trong UWE ............................................................................... 34
2.2. Chuyển đổi mơ hình trong UWE ................................................................... 36

iii


2.2.1. Chuyển đổi từ mơ hình u cầu sang mơ hình nội dung ........................ 37
2.2.2. Chuyển đổi từ mơ hình u cầu, nội dung sang mơ hình điều hướng .... 39
2.2.3. Chuyển đổi sang mơ hình xử lý .............................................................. 41
2.2.4. Chuyển đổi từ mơ hình điều hướng, xử lý sang mơ hình trình bày ........ 43
2.3. Phát triển quy tắc chuyển đổi mơ hình tích hợp ràng buộc OCL .................. 46
2.3.1. Giới thiệu phương pháp.......................................................................... 48
2.3.2. Tích hợp OCL trong mơ hình xử lý ........................................................ 49
2.3.3. Tích hợp OCL trong mơ hình trình bày .................................................. 53
2.3.4. Kết quả và thảo luận............................................................................... 56
2.4. Phát triển quy tắc chuyển đổi mơ hình với ATL ........................................... 56
2.4.1. Giải pháp ................................................................................................ 57
2.4.1.1. Siêu mô hình u cầu ...................................................................... 57
2.4.1.2 Siêu mơ hình: content, navigation, process, presentation ................ 59
2.4.2. Các quy tắc ATL ..................................................................................... 62
2.4.3. Kết quả và thảo luận............................................................................... 70

2.5. Tiểu kết chương ............................................................................................. 76
CHƯƠNG 3: SINH MÃ TỰ ĐỘNG CHO ỨNG DỤNG WEB HƯỚNG MƠ HÌNH . 77
3.1. Kỹ thuật sinh mã trong phát triển ứng dụng web hướng mơ hình ................ 77
3.2. Sinh mã dựa trên thuật toán theo kiến trúc MVC.......................................... 78
3.2.1. Xây dựng quy tắc sinh mã ...................................................................... 79
3.2.2. Xây dựng giải thuật sinh code tự động ................................................... 86
3.2.3. Thử nghiệm và đánh giá ......................................................................... 90
3.3. Sinh mã sử dụng ngơn ngữ ATL ................................................................... 96
3.3.1. Chuyển đổi mơ hình PIM sang PSM theo kiến trúc MVC ...................... 96
3.3.1.1. Tạo phần Model ............................................................................... 96
3.3.1.2. Tạo thành phần Controller ............................................................. 101
3.3.1.3. Tạo thành phần View..................................................................... 103
3.3.2. Cấu trúc mơ hình PSM theo kiến trúc MVC ......................................... 105
3.3.2.1. Thành phần model ......................................................................... 105
3.3.2.3. Thành phần Controler .................................................................... 108
3.3.2.3. Thành phần View ......................................................................... 109
3.3.3. Xây dựng quy tắc chuyển đổi từ PSM sang mã nguồn ......................... 110
3.3.3.1. Sinh code từ mơ hình java ............................................................. 110
3.3.3.2. Sinh code từ mơ hình JSP .............................................................. 111
3.4. Thử nghiệm sinh mã cho ứng dụng web benhthuysan.vn ........................... 111
3.4.1. Công cụ sinh mã CODEGER-UWE ..................................................... 111
3.4.2. Phát triển ứng dụng benhthuysan.vn .................................................... 115
3.4.3. Kết quả và thảo luận............................................................................. 120
3.5. Tiểu kết chương ........................................................................................... 121
KẾT LUẬN .......................................................................................................................... 123
DANH MỤC CÁC CƠNG TRÌNH ĐÃ CƠNG BỐ CỦA LUẬN ÁN ...................... 125
TÀI LIỆU THAM KHẢO ................................................................................................... 126
iv



DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Chữ viết tắt

Chú giải

ATL

ATLAS Transformation Language

CM

Code Model

CWM

Common Warehouse Metamodel

DSL

Domain-Specific Language

DTD

Document Type Definition

EJB

Enterprise Java Bean

EMF


Eclipse Modeling Framework

JET

Java Emitter Templates

JMI

Java Metadata Interface

JSF

Java Server Faces

JSP

Java Server Pages

MDA

Model-Driven Architecture

MDD

Model-Driven Development

MDE

Model-Driven Engineering


MDR

Metadata Repository

MDSD

Model-Driven Software Development

MDSE

Model-Driven Software Engineering

MDWD

Model-Driven Web Development

MDWE

Model-Driven Web Engineering

MOF

Meta-Object Facility

NAD

Navigation Access Program

OCL


Object Constraint Language

OGNL

Object Graph Navigation Language

OMG

Object Management Group

OO-H

Object-Oriented Hypermedia

v


Chữ viết tắt

Chú giải

OOWS

Object-Oriented Web Solution

PIM

Platform-Independent Model


PSM

Platform-Specific Model

QVT

Query/View/Tranfomation

RMI

Remote Method Invocation

TTCN-3

Testing and Test Control Notation Version 3

UI

User Interface

UTP

UML Testing Profile

UWE

UML-based Web Engineering

ƯML


Unified Modeling Language

WebML

Web Markup Language

WebSA

Web Software Arichitecture

XMI

XML Metadata Interchange

XML

extensible Markup Language

vi


DANH MỤC CÁC BẢNG
Bảng 2.1.
Bảng 2.2.
Bảng 2.3.
Bảng 2.4.
Bảng 2.5.
Bảng 2.6.
Bảng 2.7.
Bảng 2.8.

Bảng 2.9.
Bảng 2.10.
Bảng 2.11.
Bảng 2.12.
Bảng 2.13.
Bảng 3.1.
Bảng 3.2.
Bảng 3.3.
Bảng 3.4.
Bảng 3.5.
Bảng 3.6.
Bảng 3.7.
Bảng 3.8.
Bảng 3.9.
Bảng 3.10.
Bảng 3.11.
Bảng 3.12.
Bảng 3.13.
Bảng 3.14.
Bảng 3.15.

Thành phần DisplayAction type và Prentation element ............................... 55
Các thành phần tương ứng với Pin type và giao diện ................................... 55
Các khuôn mẫu được sử dụng trong biều đồ hoạt động ............................... 62
Quy tắc chuyển đổi từ mơ hình u cầu sang mơ hình nội dung ................. 63
Quy tắc chuyển đổi từ mơ hình u cầu sang mơ hình điều hướng............. 65
Thành phần DisplayAction type và Prentation element ............................... 69
Các thành phần tương ứng với Pin type và giao diện ................................... 70
Kết quả chuyển đổi mơ hình Content, Process - ví dụ MusicPortal .......... 74
Kết quả chuyển đổi mơ hình Navigation - ví dụ MusicPortal .................... 74

Kết quả chuyển đổi mơ hình Presentation - ví dụ MusicPortal .................. 75
Kết quả chuyển đổi mơ hình Content, Process - ví dụ AddressBook ....... 75
Kết quả chuyển đổi mơ hình Navigation - ví dụ AddressBook................... 75
Kết quả chuyển đổi mơ hình Presentation - ví dụ AddressBook ................. 75
Danh sách các quy tắc sinh code xây dựng .................................................... 81
Bảng đánh giá mã nguồn.................................................................................. 95
Các quy tắc chuyển đổi từ mơ hình nội dung sang mơ hình java ................ 97
Quy tắc và các thành phần của mơ hình xử lý và Java ............................... 100
Các quy tắc chuyển đổi mơ hình điều hướng sang mơ hình Java .............. 103
Các quy tắc chuyển đổi mơ hình trình bày sang JSP: ................................. 105
Cấu trúc thành phần model ............................................................................ 106
Cấu trúc thành phần service ........................................................................... 107
Cấu trúc thành phần Controller ..................................................................... 108
Cấu trúc mơ hình JSP ..................................................................................... 109
Các truy vấn sinh mã từ mơ hình java .......................................................... 110
Truy vấn ATL sinh mã mơ hình JSP ............................................................ 111
Bảng so sách kết quả chuyển đổi mơ hình nội dung và xử lý .................... 120
Bảng so sách kết quả chuyển đổi mơ hình điều hướng ............................... 120
Bảng so sách kết quả chuyển đổi mơ hình trình bày ................................... 120

vii


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1.
Hình 1.2.
Hình 1.3.
Hình 1.4.
Hình 1.5.
Hình 1.6.

Hình 1.7.
Hình 1.8.
Hình 1.9.
Hình 1.10.
Hình 1.11.
Hình 1.12.
Hình 1.13.
Hình 1.14.
Hình 1.15.
Hình 1.16.
Hình 1.17.
Hình 1.18.
Hình 1.19.
Hình 1.20.
Hình 1.21.
Hình 1.22.
Hình 1.23.
Hình 1.24.

Tổng quan về MDA............................................................................................ 6
Tiến trình MDA .................................................................................................. 7
Sự phân loại các mơ hình chính trong MDA ................................................... 8
Chuyển đổi mơ hình trong MDA ...................................................................... 8
Mơ hình chuyển từ CIM sang PIM ................................................................... 9
Đánh dấu mơ hình .............................................................................................. 9
Q trình biến đổi Metalmodel ...................................................................... 10
Q trình biến đổi mơ hình .............................................................................. 10
Ứng dụng mẫu .................................................................................................. 11
Một cách khác để sử dụng các mẫu ............................................................... 11
Mơ hình kết hợp ................................................................................................ 12

Bổ sung thông tin để chuyển sang PSM ......................................................... 12
Sử dụng thông tin bổ sung trong kỹ thuật biến đổi cụ thể ............................ 12
Tổng quan chuyển đổi mơ hình trong ATL ................................................... 14
Phần lõi ATL ..................................................................................................... 19
Lược đồ hoạt động máy ảo ATL ..................................................................... 20
Lược đồ ACG.................................................................................................... 21
Kiến trúc QVT .................................................................................................. 22
Cấu trúc MDA cho kỹ thuật web .................................................................... 25
Quy trình chung của UWE ............................................................................. 26
Quy trình phát triển WebSA ............................................................................ 27
Tổng quan về chuyển đổi mơ hình của ActionUWE .................................... 30
Tổng quan về cách tiếp cận trong.................................................................... 31
Tổng quan về quy trình chuyển đổi mơ hình trong ...................................... 31
Siêu mơ hình điều hướng (Navigation Metamodel) .................................... 34
Siêu mơ hình xử lý (Process Metamodel) ...................................................... 35
Siêu mơ hình trình bày (Presentation Metamodel) ........................................ 36
Chuyển đổi từ CIM tới PIM trong UWE ....................................................... 36
Chuyển đổi mơ hình từ PIM san PSM trong UWE ...................................... 37
Chuyển đổi Requirements to Content ............................................................. 37
Mô tả các quy tắc để thêm các hoạt động....................................................... 38
Chuyển đổi RequirementsAndContent2Navigation ..................................... 39
Chuyển đổi sang mơ hình xử lý ...................................................................... 42
Chuyển đổi AvigationAndProcess to Presentation ....................................... 43
Chuyển đổi mơ hình và mã nguồn tích hợp ràng buộc OCL ....................... 49
Biểu đồ diễn tiến chuyển đổi bất biến trong mơ hình xử lý.......................... 50

viii


Hình 3.1.

Hình 3.2.
Hình 3.3.
Hình 3.4.
Hình 3.5.
Hình 3.6.
Hình 3.7.
Hình 3.8.
Hình 3.9.
Hình 3.10.
Hình 3.11.
Hình 3.12.
Hình 3.13.
Hình 3.14.
Hình 3.15.
Hình 3.16.
Hình 3.17.
Hình 3.18.
Hình 3.19.
Hình 3.20.
Hình 3.21.
Hình 3.22.
Hình 3.23.
Hình 3.24.

Biểu đồ chuyển đổi tiền điều kiện – hậu điều kiện mơ hình xử lý............... 51
Biểu đồ chuyển đổi ràng buộc bất biên mơ hình trình bày ........................... 54
Use Case meta-model ....................................................................................... 57
Activity Diagram Metamodel .......................................................................... 58
Content Metamodel .......................................................................................... 60
Navigation Metamodel ..................................................................................... 60

Process Metamodel........................................................................................... 61
Presentation Metamodel................................................................................... 61
Tổng quan phương pháp đề xuất ..................................................................... 62
Biểu đồ Use Cases của MusicPortal .............................................................. 70
Biểu đồ Activity cho quy trình BuyAlbum .................................................... 71
Mơ hình nội dung của MusicPortal................................................................. 72
Mơ hình điều hướng của MusicPortal ............................................................ 72
Mơ hình xử lý của MusicPortal ....................................................................... 73
Mơ hình trình bày của MusicPortal................................................................. 74
Chuyển đổi mơ hình sang mã nguồn theo MDA........................................... 77
Sinh code trong UWE ...................................................................................... 79
Chuyển đổi sang mã nguồn theo mơ hình MVC ........................................... 80
Các quy tắc cấu thành giải thuật CM2M ........................................................ 82
Các quy tắc cấu thành giải thuật PRES2V ..................................................... 83
Các quy tắc cấu thành giải thuật NM2C......................................................... 85
Các quy tắc cấu thành giải thuật PROM2C ................................................... 86
Kiến trúc MagicDraw và CODEGER –UWE ............................................... 91
Giao diện công cụ CODEGER –UWE .......................................................... 91
Mơ hình nội dung.............................................................................................. 92
Mơ hình điều hướng ......................................................................................... 92
Mơ hình xử lý .................................................................................................... 92
Mơ hình trình bày ............................................................................................. 93
Mã nguồn sinh ra từ bốn mơ hình UWE ........................................................ 93
Khung ứng dụng Web ...................................................................................... 94
Giao diện trang web.......................................................................................... 94
Giao diện tạo mới Contact ............................................................................... 95
Sơ đồ chuyển đổi mô hình và sinh code ......................................................... 97
Kiến trúc CODEGER –UWE........................................................................ 112
Quy trình sinh mã nguồn từ mơ hình nội dung ............................................ 113
Quy trình sinh mã nguồn từ mơ hình điều hướng ....................................... 114

Quy trình chuyển đổi sinh mã nguồn từ mơ hình xử lý .............................. 114
Quy trình sinh mã JSP từ mơ hình trình bày ................................................ 115
Biểu đồ use case, mơ hình đầu vào của ứng dụng ....................................... 116
ix


Hình 3.25.
Hình 3.26.
Hình 3.27.
Hình 3.28.
Hình 3.29.
Hình 3.30.
Hình 3.31.
Hình 3.32.

Biểu đồ Activity, mơ hình đầu vào của ứng dụng ....................................... 117
Mơ hình nội dung............................................................................................ 117
Mơ hình điều hướng ....................................................................................... 118
Mơ hình xử lý .................................................................................................. 118
Mơ hình trình bày ........................................................................................... 118
Cấu trúc mã nguồn được sinh tự động.......................................................... 119
Giao diện web benhthuysan.vn ..................................................................... 119
Kết quả đánh giá thử nghiệm benhthuysan.vn ............................................. 121

x


MỞ ĐẦU
Ngày nay, cơng nghiệp phần mềm đóng vai trị quan trọng, tác động đến sự phát
triển kinh tế xã hội và được xem là một trong những trụ cột chính của tăng trưởng

kinh tế ở nhiều nước. Tuy nhiên, việc phát triển phần mềm theo cách truyền thống
ngày càng phải đối mặt với nhiều khó khăn như vấn đề phát triển, vấn đề tính khả
chuyển, khả năng tương tác hay với sự phát triển nhanh chóng của các nền tảng cơng
nghệ mới. Do đó, những nhà phát triển phần mềm phải dành nhiều công sức và thời
gian để điều chỉnh ứng dụng (thường theo cách thủ công là sửa mã nguồn) sao cho
có thể hoạt động được trên các nền tảng cơng nghệ mới. Chính vì vậy, một xu hướng
phát triển phần mềm mới nhằm khắc phục những khó khăn trên đã được nghiên cứu
và phát triển, đó là phát triển phần mềm hướng mơ hình (MDSD: Model driven
software development).
Kỹ thuật hướng mơ hình (MDE) là kỹ thuật mới cho sự phát triển sản phẩm phần
mềm. Kỹ thuật này giải quyết được sự phức tạp của nền tảng công nghệ khác nhau
bằng việc sử dụng các mơ hình (models) như là tác nhân chính trong tồn bộ vịng
đời phát triển ứng dụng, giảm sự phụ thuộc vào nền tảng công nghệ [1-3]. MDE phát
triển dựa trên ý tưởng xây dựng các mơ hình độc lập với nền tảng và hỗ trợ việc
chuyển đổi mơ hình thành mã nguồn của chương trình. Do đó, q trình phát triển
phần mềm hướng mơ hình được xem như là một chuỗi các chuyển đổi mơ hình và
chuyển đổi mơ hình đóng một vai trị quan trọng trong kỹ thuật hướng mơ hình [4].
Phát triển phần mềm hướng mơ hình đang trở thành một phương pháp tiếp cận,
được chấp nhận rộng rãi để phát triển các ứng dụng phức tạp và ngày càng giành được
nhiều sự quan tâm của cộng đồng nghiên cứu, cũng như giới công nghiệp phần mềm
[1]. Sinh mã tự động là nền tảng thiết yếu của các phương pháp tiếp cận theo hướng
mơ hình để phát triển phần mềm. Việc sinh mã tự động giúp cho việc phát triển ứng
dụng trở nên hiệu quả hơn, hứa hẹn sẽ là một bước tiến mới trong phát triển phần
mềm, giúp lập trình viên nâng cao được hiệu xuất làm việc và ngày càng được sử
dụng nhiều trong tiến trình phát triển phần mềm [5].
Các nghiên cứu đã minh chứng, phương pháp sinh mã hướng mơ hình cho tiến trình
phần mềm đã tăng tốc độ tổng thể từ 3 đến 10 lần [5-7], làm giảm yếu tố con người [8,
9], giảm thời gian phát triển ứng dụng web [9-12]. Việc sử dụng các mơ hình để tạo
mã chương trình, có thể tạo ra các sản phẩm phần mềm có khả năng tương thích và sử
dụng trên các nền tảng khác nhau [13], trong [14] đã chứng minh việc sử dụng phương

pháp này cho phép tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng), vì
chúng làm giảm sự cần thiết phải thay đổi sau khi đưa ứng dụng vào sử dụng.
Các ứng dụng Web bao gồm nhiều thành phần khác nhau, có thể được cung cấp
bởi những nhà phát triển khác nhau, nên việc sử dụng các kỹ thuật phát triển phần
mềm hướng mơ hình cho các ứng dụng web đặc biệt hữu ích [1, 15, 16].
1


Trong những phương pháp phát triển ứng dụng web hướng mơ hình hiện nay. UWE
(UML-based Web Engineering) là một hướng tiếp cận cho phép phát triển ứng dụng
web hướng mô hình dựa trên kiến trúc MDA. UWE cung cấp một quy trình và cơng
cụ, giúp mơ hình hố và xây dựng các ứng dụng web, do nhóm nghiên cứu trường
đại học LMU, Đức thực hiện với mục đích tự động hố quy trình phát triển ứng dụng
web và giảm thiểu tối đa việc lập trình cài đặt mã nguồn cho ứng dụng.
UWE cung cấp một tập các mơ hình tương ứng với từng khía cạnh của ứng dụng
web bao gồm: Mơ hình u cầu (requirements models), mơ hình nội dung (content
models), mơ hình điều hướng (navigation models), mơ hình xử lý (process models),
mơ hình trình bày (presentation models) và sử dụng biểu đồ UML 2.0 cho việc mơ
hình hố. Một trong những ưu điểm quan trọng của UWE là tất cả các mơ hình của
nó đều là phần mở rộng của UML. UWE sử dụng ký pháp đồ họa hoàn tồn dựa trên
UML. Nó cho phép sử dụng các cơng cụ dựa trên UML và giảm thiểu thời gian nghiên
cứu của các nhà phát triển Web, những người đã quen thuộc với UML[17].
Tuy nhiên, các nghiên cứu phát triển ứng dụng web hướng mơ hình theo phương
pháp UWE, cịn tồn tại một số vấn đề cần tiếp tục đi sâu nghiên cứu:
Thứ nhất: Việc chuyển đổi từ mơ hình u cầu sang các mơ hình: Nội dung, điều
hướng, xử lý và trình bày vẫn phải được điều chỉnh thủ cơng, làm cho việc phát triển
ứng dụng Web tốn thời gian và chi phí; việc đảm bảo tính thống nhất giữa các mơ
hình cũng như cần cập nhật đồng bộ giữa các mơ hình khi có thay đổi là rất khó khăn.
Thứ hai: Các nghiên cứu chủ yếu mới chỉ tập trung cho việc mơ hình hóa, việc
sinh code tự động còn nhiều hạn chế, chủ yếu mới chỉ dừng ở việc tạo ra khung để

kỹ thuật viên lập trình viết mã.
Khắc phục những hạn chế, tồn tại nêu trên, việc nghiên cứu xây dựng phương pháp
chuyển đổi mơ hình tự động, cải tiến kỹ thuật sinh mã để nâng cao chất lượng mã
nguồn, tăng năng suất, tiết kiệm thời gian và chi phí cho ứng dụng web, giúp phát
triển ứng dụng web đơn giản, linh hoạt, nhanh chóng và hiệu quả hơn là vấn đề cần
thiết, góp phần thúc đẩy sự phát triển của lĩnh vực ứng dụng web, một lĩnh vực giàu
tiềm năng nhưng mới chỉ là bước đầu phát triển tại Việt Nam. Chính vì vậy, NCS
chọn đề tài: “Các kỹ thuật chuyển đổi mơ hình và sinh mã trong phát triển ứng
dụng web hướng mơ hình”.
Hướng tiếp cận của đề tài là phát triển bộ quy tắc chuyển đổi model to model và
mode to code theo phương pháp UWE, xây dựng công cụ CODEGER-UWE để hỗ
trợ phát triển các ứng dựng Web theo kiến trúc MVC. Phương pháp dựa trên việc tạo
mơ hình u cầu ở mức mơ hình độc lập tính tốn (Computation Independent Model
– CIM), sau đó xây dựng các quy tắc chuyển đổi, để chuyển đổi sang mức mơ hình
độc lập nền tảng (platform-independent model – PIM) và mơ hình nền cụ thể
(Platform Specific Model - PSM), từ đó sinh code tự động cho ứng dụng web theo

2


kiến trúc MVC. Các quy tắc chuyển đổi của nghiên cứu được xây dựng với ngơn ngữ
chuyển đổi mơ hình (ATLAS Transformation Language – ATL). Áp dụng phát triển
ứng dụng web Chẩn đoán bệnh thủy sản “benhthuysan.vn”. Phương pháp tiếp cận
giúp đảm bảo tính thống nhất giữa các mơ hình sau khi chuyển đổi, góp phần đảm
bảo hiệu quả chuyển đổi mơ hình và sinh code tự động cho phát triển ứng dụng Web
hướng mơ hình theo kiến trúc MVC.

Mục đích nghiên cứu
Mục tiêu chung của đề tài là nghiên cứu kỹ thuật phát triển phần mềm hướng mơ
hình cho các ứng dụng web, nhằm phát triển bộ quy tắc chuyển đổi model to model

và model to code, theo phương pháp UWE và cụ thể hóa các quy tắc chuyển đổi, bằng
việc xây dựng công cụ hỗ trợ phát triển ứng dụng Web theo kiến trúc MVC. Đề tài
có các mục tiêu cụ thể sau:
- Tiếp cận kỹ thuật MDE, luận án phát triển bộ quy tắc chuyển đổi từ mơ hình
mức CIM sang PIM, sang PSM, sang mã nguồn cho phát triển ứng dụng web
hướng mơ hình theo phương pháp UWE.
- Trên cơ sở các quy tắc đã phát triển, xây dựng công cụ sinh mã tự động cho ứng
dụng web. Thực nghiệm vào phát triển ứng dụng web Chẩn đoán bệnh thủy sản
(benhthuysan.vn).

Nhiệm vụ nghiên cứu
-

Với mục tiêu đặt ra ở trên, nhiệm vụ nghiên cứu của đề tài bao gồm:
Tổng hợp, phân tích các kỹ thuật phát triển phần mềm hướng mơ hình, kỹ thuật
phát triển ứng dụng web hướng mơ hình như UWE, WebML, WebSA...
Phát triển các quy tắc chuyển đổi mơ hình.
Phát triển các quy tắc sinh code với ngôn ngữ ATL cho phát triển ứng dụng web
hướng mơ hình theo phương pháp UWE.
Xây dựng công cụ sinh code tự động cho ứng dụng web theo kiến trúc MVC.
Thực nghiệm và đánh giá: Tiến hành kiểm chứng tính khả thi của nghiên cứu
đề xuất trong luận án, bằng việc áp dụng vào phát triển ứng dụng web Chẩn
đoán bệnh thủy sản (benhthuysan.vn).

Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài là vấn đề chuyển đổi mơ hình và sinh mã tự động
cho phát triển ứng dụng web theo phương pháp UWE. Trên cơ sở đó, đề tài nghiên
cứu các kiến thức thuộc về lý thuyết liên quan đến chuyển đổi mô hình và sinh code
từ các mơ hình u cầu, nội dung, điều hướng, xử lý và mơ hình trình bày nhằm áp
dụng trong việc phát triển các bài toán thực tế.

Đề tài nghiên cứu các đặc điểm chung của phát triển ứng dụng web hướng mơ
hình, để xây dựng các quy tắc chuyển đổi mơ hình và sinh code tự động với ngôn ngữ
3


ATL cho phát triển ứng dụng Web theo kiến trúc MVC. Tiếp theo, đề tài sẽ phân tích
kết quả áp dụng phát triển ứng dụng web Chẩn đoán bệnh thủy sản “benhthuysan.vn”.

Phương pháp nghiên cứu
Phương pháp lý thuyết
Phương pháp luận án sử dụng để nghiên cứu gồm:
- Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến luận án.
- Nghiên cứu lý luận, hệ thống hóa lý thuyết có liên quan đến xây dựng cơ sở lý
luận của đề tài: Thực trạng của kỹ thuật phát triển phần mềm hướng mơ hình;
Kỹ thuật phát triển ứng dụng web hướng mơ hình: UWE, OOWS, WebML,
WebSA.
- Tổng hợp, phân tích kỹ thuật chuyển đổi mơ hình theo phương pháp UWE, từng
bước hình thành những vấn đề lý luận của việc phát triển các quy tắc chuyển
đổi mơ hình, sinh code.
Phương pháp thực nghiệm
Tiến hành kiểm chứng tính khả thi của nghiên cứu đề xuất trong luận án, bằng việc
áp dụng vào các bài tốn điển hình đã được rất nhiều nghiên cứu trong lĩnh vực này
sử dụng để thực nghiệm, đặc biệt luận án đã thực nghiệm trên bài toán trong thực tế
về lĩnh vực chẩn đoán bệnh thủy sản. Sử dụng nhiều công cụ khác nhau để kiểm
chứng, đánh giá và so sánh tính hiệu quả giữa chúng.

Ý nghĩa khoa học và thực tiễn của đề tài
Ý nghĩa khoa học
Đề tài tổng hợp và phân tích kỹ thuật phát triển ứng dụng web hướng mơ hình. Kết
quả nghiên cứu có thể làm tài liệu tham khảo cho các đơn vị phát triển phần mềm,

cần tiến hành phát triển các ứng dụng Web hướng mơ hình, cung cấp các tài liệu tham
khảo về các vấn đề liên quan.
Hướng nghiên cứu của đề tài có ý nghĩa trong việc cung cấp giải pháp phát triển
các ứng dụng web hướng mơ hình, giúp cho việc xây dựng ứng dụng web đạt hiệu
quả cao hơn.
Ý nghĩa thực tiễn
Kết quả nghiên cứu là tài liệu có giá trị tham khảo trong hoạt động nghiên cứu và
phát triển ứng dụng web hướng mô hình. Kết quả nghiên cứu đã đề xuất bộ quy tắc
chuyển đổi mơ hình và sinh code cho ứng dụng web, đồng thời cung cấp công cụ hỗ
trợ cho phát triển ứng dụng web, giúp cho việc phát triển ứng dụng web hướng mơ
hình được thuận lợi, các doanh nghiệp phát triển ứng dụng web giảm yếu tố con
người, nâng cao hiệu quả làm việc.

4


Các kết quả mới đạt được
Tất cả các kết quả của luận án đã được đánh giá thông qua các cơng trình, được
đăng tải trong kỷ yếu của các hội thảo và các tạp chí. Những đóng góp của nghiên
cứu bao gồm:
(1) Tổng hợp lý thuyết, từ đó bổ sung phát triển các quy tắc chuyển đổi mơ hình từ
CIM to PIM cho phát triển ứng dụng web hướng mô hình, theo phương pháp
UWE. Tổng hợp, phân tích các kỹ thuật phát triển ứng dụng web hướng mơ hình
như UWE, WebML, WebSA. Nội dung này được trình bày trong chương 1 và
chương 2 của luận án, có 4 cơng trình công bố liên quan: CT1, CT2, CT3, CT7.
(2) Xây dựng phương pháp sinh mã và tích hợp phát triển cơng cụ CODEGER-UWE
sinh code cho ứng dụng web, theo phương pháp UWE, với ngơn ngữ chuyển đổi
mơ hình ATL. Nội dung này được trình bày trong chương 3 và có 2 cơng trình
cơng bố liên quan: CT4, CT5.
(3) Áp dụng xây dựng chuẩn đoán bệnh thủy sản trên nền tảng benhthuysan.vn. Nội

dung này được trình bày trong chương 3 (mục 3.4) và có 2 cơng trình cơng bố
liên quan: CT6, CT8.

5


CHƯƠNG 1: PHÁT TRIỂN PHẦN MỀM HƯỚNG MƠ HÌNH
Chương 1, tác giả giới thiệu về kiến trúc MDA, tổng hợp, phân tích các thành phần
trong MDA như các mơ hình CIM, PIM, PSM. Phân tích, so sách một số kỹ thuật
Web hướng mơ hình điển hình như OOWS, UWE, WebML, WebSA làm cơ sở để lựa
chọn, xây dựng mơ hình và các quy tắc chuyển đổi trong chương 2. Trong chương 1,
tác giả cũng trình bày tình hình các nghiên cứu liên quan, phân tích cụ thể điểm mạnh
và điểm cần cải tiến của các nghiên cứu và dẫn tới lý do của đề tài luận án.

1.1. Kiến trúc MDA
MDA (Model Driven Architecture) được định nghĩa bởi OMG [18, 19]: “MDA
là một cách tiếp cận đặc tả hệ thống công nghệ thơng tin, nó phân tách các đặc tả chức
năng và các đặc tả thực thi”. Một mơ hình trong MDA, là một đặc tả hình thức của
chức năng và cấu trúc, cũng như hành vi ứng xử của một ứng dụng hay một hệ thống
phần mềm.

Hình 1.1. Tổng quan về MDA [18]

Kiến trúc hướng mơ hình (MDA) là kỹ thuật mới cho sự phát triển sản phẩm phần
mềm. Kỹ thuật này giải quyết được sự phức tạp của nền tảng công nghệ khác nhau,
bằng việc sử dụng các mô hình (models) như là tác nhân chính trong tồn bộ vòng
đời phát triển ứng dụng, giảm sự phụ thuộc vào nền tảng cơng nghệ [20]. Khi có nền
tảng mới ra đời, thì ứng dụng mới sẽ được chuyển đổi tự động từ các mơ hình để
tương thích với nền tảng mới. Do đó, MDA đang trở thành một phương pháp tiếp cận
được chấp nhận rộng rãi, để phát triển các ứng dụng phức tạp và ngày càng dành được

nhiều sự quan tâm của cộng đồng nghiên cứu, cũng như giới công nghiệp phần mềm.
Các ứng dụng Web, bao gồm nhiều thành phần khác nhau, có thể được cung cấp
bởi những nhà phát triển khác nhau với nền tảng công nghệ khác nhau, nên việc sử
dụng các kỹ thuật phát triển hướng mơ hình cho các ứng dụng Web đặc biệt hữu ích
[1, 15, 16]. Các kỹ thuật này đã khắc phục được nhiều hạn chế mà các quá trình phát

6


triển phần mềm trước đó chưa giải quyết được, giảm chi phí thực hiện dự án phần
mềm, tăng năng suất thực hiện dự án một cách trực tiếp hoặc thông qua giảm khối
lượng công việc làm lại [21].
MDA là một cách tiếp cận mơ hình hố trực quan, trong suốt quy trình tìm hiểu,
phân tích, thiết kế, thực thi một hệ thống phần mềm. MDA phân chia các mơ hình
đặc tả hệ thống từ mức độ trừu tượng hóa cao, cho đến mức chi tiết và cung cấp các
quy tắc chuyển đổi, cho phép chuyển đổi giữa các mơ hình. Hình 1.2 thể hiện tiến
trình phát triển phần mềm theo MDA [19, 22-25].

Hình 1.2. Tiến trình MDA [22]

− Computation Independent Model (CIM) – Mơ hình độc lập tính tốn
CIM khơng hiển thị chi tiết về kiến trúc của hệ thống [26], CIM đại diện cho
tiến trình nghiệp vụ của tổ chức sẽ được xây dựng. Mơ hình CIM tập trung vào sự
đặc tả hệ thống bằng các thuật ngữ gần gũi với người làm nghiệp vụ, được xác định
bởi sự kết hợp làm việc giữa người phân tích nghiệp vụ và những người làm nghiệp
vụ sẽ sử dụng hệ thống. Chính vì vậy, mơ hình CIM cịn được gọi là mơ hình phạm
vi hay mơ hình nghiệp vụ. CIM chỉ miêu tả môi trường mà hệ thống thực thi và nó
hỗ trợ chúng ta hình dung ra được hệ thống đích, mà chúng ta muốn từ các yêu cầu
ban đầu [22]. CIM cũng đóng vai trị quan trọng trong việc thu hẹp khoảng cách giữa
người sử dụng và các chuyên gia trong lĩnh vực thiết kế, phát triển hệ thống [1]. Trong

phát triển phần mềm sử dụng hướng tiếp cận MDA, thì các u cầu cụ thể trong CIM
có mối liên hệ chặt chẽ với cấu trúc PIM và PSM [22].
− Platform Independent Model (PIM) – Mơ hình độc lập nền
PIM là một khung nhìn của hệ thống từ một điểm nhìn độc lập với nền cơng nghệ
[1, 20]. Mơ hình độc lập nền chỉ chú trọng vào các thao tác của hệ thống, ẩn đi chi
tiết cụ thể về nền công nghệ. Tức là ta không quan tâm đến công nghệ nào sẽ được
sử dụng để phát triển hệ thống. Một PIM cần thể hiện được sự không phụ thuộc nền
cơng nghệ và nó thích hợp cho việc sử dụng, với nhiều nền công nghệ khác nhau hoặc
tương tự nhau.
− Platform Specific Model (PSM) – Mơ hình nền cụ thể
PSM là một khung nhìn của hệ thống từ góc độ của một nền cơng nghệ cụ thể
nào đó. PSM chứa những gì được thể hiện trong PIM [27], với các chi tiết cụ thể của
một nền công nghệ sẽ được sử dụng để phát triển phần mềm như Java, .Net.... Hình

7


1.3 trình bày một cách tổng quan về sự phân loại các mơ hình chính của MDA theo
trật tự từ mức độ trừu tượng hóa đến cụ thể hố.
Trừu tượng
hóa
CIM: Mơ hình độc lập
với thao tác tính tốn

MDA

PIM: Mơ hình độc
lập nền cơng nghệ
PSM: Mơ hình theo
nền cơng nghệ cụ thể


Cụ thể
hóa
Hình 1.3. Sự phân loại các mơ hình chính trong MDA

1.1.1. Chuyển đổi mơ hình trong MDA
Chuyển đổi mơ hình là trung tâm của kỹ thuật phần mềm hướng mơ hình [28, 29].
Sự chuyển đổi mơ hình trong MDA là việc sử dụng một cơ chế nào đó, để biến đổi
các mơ hình ở mức trừu tượng hố cao, thành các mơ hình ở mức cụ thể và chi tiết
hơn dựa trên sự định nghĩa các quy tắc chuyển đổi. Đó là sự chuyển từ CIM sang
PIM, từ PIM sang PSM, và từ PSM có thể chuyển thành mã chương trình cụ thể thực
thi hệ thống [30]. Hình 1.4 mơ phỏng sự chuyển đổi giữa các mơ hình trong MDA.

Hình 1.4. Chuyển đổi mơ hình trong MDA[31]

Theo [32] chuyển đổi mơ hình là trung tâm của MDA, có 2 loại chuyển đổi mơ
hình thường gặp trong MDA: Chuyển đổi mơ hình tới mơ hình, và chuyển đổi mơ
hình tới mã nguồn.
Chuyển đổi mơ hình tới mơ hình: Chuyển đổi thơng tin từ một mơ hình hay nhiều
mơ hình tới một mơ hình khác, hay một tập các mơ hình. Một ví dụ về chuyển đổi mơ
hình tới mơ hình là chuyển đổi một tập các lớp thực thể, thành một lược đồ cơ sở dữ
liệu tương ứng.
Chuyển đổi mô hình tới mã nguồn là một chuyển đổi thơng dụng đối với những
người đã dùng các cơng cụ mơ hình hóa UML có khả năng sinh mã. Các chuyển đổi
này, chuyển đổi một thành phần của mơ hình sang một đoạn mã nguồn. Chuyển đổi

8


mơ hình tới mã nguồn có thể được phát triển cho gần như bất kỳ dạng ngơn ngữ lập

trình nào.
1.1.1.1. Chuyển đổi từ CIM sang PIM
Mơ hình Độc lập tính tốn (CIM), có nghĩa là mơ hình này khơng chứa bất kỳ
thông tin nào về hệ thống phần mềm. Mô hình CIM được trình bày bởi các mơ hình
quy trình nghiệp vụ, được cho là đại diện cho thế giới thực. Chuyển đổi từ CIM sang
PIM, là chuyển đổi đầu tiên trong MDA và nó rất quan trọng trong việc thiết kế phần
mềm chất lượng cao. Đầu tiên, sử dụng sơ đồ hoạt động UML để xử lý các tác vụ của
người sử dụng. Sơ đồ hoạt động này được chỉ rõ trong các yêu cầu hệ thống. Các
thành phần hệ thống được suy luận từ mơ hình u cầu và một bộ các nguyên mẫu,
giúp các thành phần hệ thống tạo ra PIM.

Hình 1.5. Mơ hình chuyển từ CIM sang PIM [20]

1.1.1.2. Chuyển đổi từ PIM sang PSM
Theo vết mơ hình

Hình 1.6. Đánh dấu mơ hình [31]

Hình 1.6 miêu tả chi tiết một trong những cách mà một chuyển đổi có thể được
thực hiện. Một nền cơng nghệ cụ thể được lựa chọn. Ánh xạ cho nền công nghệ này
sẵn có và được chuẩn bị. Ánh xạ này bao gồm một bộ thiết bị đánh dấu. Các dấu được

9


sử dụng nhằm đánh dấu các yếu tố mơ hình để hướng dẫn cho q trình biến đổi mơ
hình. Việc sử dụng ánh xạ sẽ làm cho PIM đánh dấu được biến đổi xa hơn nhằm tạo
ra PSM.
Quá trình biến đổi siêu mơ hình – Metamodel


Hình 1.7. Q trình biến đổi Metalmodel [31]

Mơ hình được chuẩn bị bằng cách sử dụng một ngôn ngữ độc lập với nền công
nghệ được xác định bởi một metamodel. Một nền công nghệ cụ thể được lựa chọn.
Đặc tả mơ hình chuyển đổi nền tảng này hiện có sẵn hoặc được chuẩn bị. Sự chuyển
đổi đặc tả này dưới dạng ánh xạ giữa các metamodel. Ánh xạ chỉ dẫn sự chuyển đổi
của PIM tạo ra PSM.
Q trình biến đổi mơ hình

Hình 1.8. Q trình biến đổi mơ hình [31]

Mơ hình được chuẩn bị bằng cách sử dụng các kiểu độc lập nền công nghệ trong
mơ hình. Các kiểu có thể là phần của một khung phần mềm. Các yếu tố trong PIM là
các kiểu phụ của dạng độc lập nền công nghệ. Một nền công nghệ cụ thể được lựa
chọn. Dạng biến đổi đặc tả nền cơng nghệ này sẵn có hoặc được chuẩn bị sẵn. Sự

10


biến đổi này là ánh xạ giữa các kiểu độc lập nền tảng và các kiểu phụ thuộc nền tảng.
Các yếu tố trong PSM là kiểu phụ của các kiểu đặc tả nền tảng.
Cách tiếp cận này khác hẳn với ánh xạ metamodel, chủ yếu bằng các kiểu đặc tả
trong một mơ hình mà được sử dụng cho ánh xạ, thay thế cho các khái niệm đặc tả
bởi mơ hình metamodel.
Ứng dụng mẫu
Mở rộng các phương pháp tiếp cận ánh xạ siêu mơ hình và mơ hình bao gồm các
mẫu cùng với các kiểu hay các khái niệm ngôn ngữ mơ hình.

Hình 1.9. Ứng dụng mẫu [31]


Hình 1.10. Một cách khác để sử dụng các mẫu [31]

Hình 1.10 chỉ ra một cách khác để sử dụng các mẫu: Khi các tên của nền tảng cụ
thể đánh dấu, có nghĩa là, tên của các mẫu thiết kế quy định cho một nền tảng.
Mơ hình kết hợp
Có một số cách tiếp cận MDA dựa vào các mơ hình kết hợp.
11


Hình 1.11. Mơ hình kết hợp [31]

Ngồi các kiểu độc lập nền tảng, mơ hình chung có thể cung cấp các mẫu. Cả hai
kiểu và mẫu này có thể được ánh xạ tới các mẫu và các kiểu đặc tả nền tảng.
Phương pháp tiếp cận ánh xạ mơ hình metamodel có thể sử dụng các mẫu cùng
một cách.
Hình 1.11 mở rộng mơ hình MDA theo một cách khác, nhằm miêu tả chi tiết một
trong những cách chuyển đổi khác có thể được thực hiện.
Thơng tin bổ sung
Ngồi những PIM và các nền tảng cụ thể đánh dấu, thông tin bổ sung có thể được
cung cấp để hướng dẫn việc chuyển đổi.
Thông tin bổ sung sẽ thường xuyên dựa trên các kiến thức thực tế của nhà thiết kế.

Hình 1.12. Bổ sung thơng tin để chuyển sang PSM [31]

Hình vẽ mở rộng mẫu MDA đơn giản nhằm chỉ ra cách sử dụng của thơng tin bổ sung

Hình 1.13. Sử dụng thơng tin bổ sung trong kỹ thuật biến đổi cụ thể [31]

12



Hình 1.13 mở rộng thêm mẫu MDA nhằm chỉ ra cách sử dụng thông tin bổ sung
trong kỹ thuật biến đổi cụ thể.
Trong q trình chuẩn bị mơ hình PIM, ngồi việc sử dụng các tên mẫu có sẵn thì
các thơng tin khác có thể được thêm vào để tạo ra PIM đánh dấu. Ngồi các mẫu ra,
các thơng tin thêm cũng có thể được sử dụng khi PIM đánh dấu được biến đổi thêm
nhằm tạo ra PSM.
1.1.1.3. Chuyển đổi từ PSM sang code
Chuyển đổi từ mơ hình PSM sang code, được sử dụng khi tất cả các chi tiết cụ thể
của nền tảng được xác định và mơ hình đã sẵn sàng để triển khai thực tế. Từ mô hình
PSM chuyển đổi thành các tệp lệnh, được định nghĩa bằng MOF M2T.
MOF M2T là ngơn ngữ được chuẩn hố bởi OMG tuân thủ theo kiến trúc MDA.
Ngôn ngữ này mơ tả cách chuyển đổi từ một mơ hình sang mã nguồn. Phương pháp
tiếp cận dựa trên khuôn mẫu, trong đó mã nguồn được sinh ra từ mơ hình, được chỉ
ra như một tập hợp các khuôn mẫu mà được tham chiếu với các thành phần của mơ
hình. Cụ thể hơn, một khuôn mẫu đặc tả một khuôn mẫu dạng mã nguồn, với các vị
trí (placeholder) cho dữ liệu được lấy từ các mơ hình. Các vị trí này cơ bản là các
biểu thức biểu diễn cụ thể qua các thực thể siêu mơ hình, với các truy vấn là các cơ
chế chủ yếu cho việc lựa chọn và khai thác giá trị từ các mơ hình. Các giá trị này sau
đó chuyển đổi sang các đoạn mã nguồn sử dụng ngôn ngữ diễn tả (expression
language).
1.1.2. Ngôn ngữ chuyển đổi mơ hình
1.1.2.1. Ngơn ngữ ATL

ATL (ATLAS Transformation Language) là ngơn ngữ chuyển đổi mơ hình
[33-40]. ATL cung cấp cho các nhà phát triển cách thức để tạo ra một tập các
mơ hình đích từ một tập các mơ hình nguồn. Thơng thường, khi xây dựng các
quy tắc chuyển đổi thì ATL sử dụng kiểu khai báo (Declarative) [41], nó cho
phép đơn giản hóa việc thể hiện ánh xạ giữa mơ hình nguồn và mơ hình đích.
Tuy nhiên, ATL cũng cung cấp cấu trúc bắt buộc (imperative constructs) để dễ

dàng đặc tả ánh xạ khó thể hiện khi dùng kiểu khai báo [36, 42-44]. Bên cạnh
các chuyển đổi mơ hình cơ bản, ATL định nghĩa thêm một phương tiện truy
vấn mô hình (ATL query) cho phép chuyển đổi các phần tử của mơ hình sang
các kiểu dữ liệu ngun thủy, từ đó các nhà phát triển có thể dễ dàng phát triển
các biến đổi ATL hơn trong việc xây dựng các ứng dụng web.
Ngôn ngữ chuyển đổi ATL cho phép các nhà phát triển xác định các yếu tố của mơ
hình nguồn phù hợp và điều hướng để khởi tạo các thành phần mơ hình đích [30, 33]

13


×