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 (12.61 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












×