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

Nghiên cứu cải tiến kỹ thuật sinh mã nguồn trong phát triển ứng dụng web hướng mô hình theo kỹ thuật UWE

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 (2.82 MB, 84 trang )

..

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

Nguyễn Thanh Giang

NGHIÊN CỨU CẢI TIẾN KỸ THUẬT SINH MÃ NGUỒN
TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MƠ HÌNH
THEO KỸ THUẬT UWE

Chuyên ngành: Kỹ thuật phần mềm

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS Huỳnh Quyết Thắng

HÀ NỘI – 2018

1


LỜI CAM ĐOAN
Tôi – Nguyễn Thanh Giang – cam kết luận văn là cơng trình nghiên cứu của bản
thân tơi dưới sự hướng dẫn của PGS.TS Huỳnh Quyết Thắng.
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép tồn văn của
bất kỳ cơng trình nào khác.
Hà Nội, ngày


tháng 10 năm 2018
Học viên

Nguyễn Thanh Giang

2


LỜI CAM ĐOAN ..........................................................................................................2
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ ................................................5
DANH MỤC HÌNH .......................................................................................................7
DANH MỤC BẢNG ......................................................................................................9
MỞ ĐẦU ......................................................................................................................11
1. Mục đích nghiên cứu của luận văn ........................................................................11
2. Nội dung của luận văn ...........................................................................................11
3. Các đóng góp khoa học của luận văn ....................................................................12
Chương 1: Tổng quan về kiến trúc hướng mơ hình và kỹ thuật Web hướng mơ hình
UWE .............................................................................................................................13
1.1. Kiến trúc hướng mơ hình ....................................................................................13
1.2. Các kỹ thuật Web hướng mơ hình ......................................................................13
1.3. Kỹ thuật UWE.....................................................................................................16
1.3.1. Mơ hình u cầu ....................................................................................................... 18
1.3.2. Mơ hình nội dung ..................................................................................................... 19
1.3.3. Mơ hình điều hướng ................................................................................................. 19
1.3.4. Mơ hình xử lý........................................................................................................... 20
1.3.5. Mơ hình trình bày..................................................................................................... 20

1.4. Tổng hợp các nghiên cứu về kỹ thuật sinh mã nguồn trong phát triển ứng dụng
Web hướng mơ hình...................................................................................................22
1.4.1. Các phương pháp sinh mã hướng mơ hình .............................................................. 22

1.4.2. OptimalJ ................................................................................................................... 24
1.4.3. UWE4JSF................................................................................................................. 24

1.5. Tiểu kết chương ..................................................................................................25
Chương 2: Phát triển các giải thuật sinh mã nguồn .....................................................27
2.1. Đặt vấn đề ...........................................................................................................27
2.2. Quy trình chuyển đổi MDA cho kỹ thuật UWE. ................................................28
2.2.1. Lựa chọn nền tảng cơng nghệ .................................................................................. 28
2.2.2. Lựa chọn mơ hình Web ............................................................................................ 29
2.2.3. Lựa chọn phương pháp sinh mã ............................................................................... 30
2.2.4. Quy trình chuyển đổi MDA cho kỹ thuật UWE ...................................................... 31

2.3. Xây dựng giải thuật CM2M sinh mã thành phần Model từ mơ hình nội dung
(Content Model to Model Code Genenation) ............................................................32

3


2.4. Xây dụng giải thuật PRES2V sinh mã thành phần View từ mơ hình trình bày
(Presenation Model to View Code Generation) .........................................................38
2.5. Xây dụng giải thuật NPROM2C sinh mã thành phần Controller từ mơ hình điều
hướng và xử lý (Navigation and Processing Model to Controller Code Generation)43
2.5.1. Xây dựng giải thuật NM2C ...................................................................................... 43
2.5.2 Xây dựng giải thuật PROM2C .................................................................................. 48

2.6. Tiểu kết chương ..................................................................................................52
Chương 3: Cài đặt công cụ CODEGER-UWE tích hợp các giải thuật và áp dụng, đánh
giá
...................53
3.1. Xây dựng công cụ CODEGER-UWE .................................................................53

3.2. Áp dụng công cụ CODEGER-UWE vào một bài toán cụ thể. ...........................55
3.3. Đánh giá ..............................................................................................................61
3.4. Tiểu kết chương ..................................................................................................62
KẾT LUẬN ..................................................................................................................63
DANH MỤC THAM KHẢO .......................................................................................65
PHỤ LỤC .....................................................................................................................67

4


DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết tắt, thuật ngữ Từ viết đầy đủ
ATL

Atlas Transformation Language

CIM

Computation Independent Model

CSS

Cascading Style Sheets

CWM

Common Warehouse Metamodel

DTD


Document Type Definition

EMF

Eclipse Modeling Framework

HTML

Hypertext Markup Language

ISM

Implementation Specific Model

J2EE

Java 2 Platform, Enterprise Edition

JET

Java Emitter Templates

JSF

Java Server Faces

JSP

Java Server Pages


JSTL

JSP Standard Tag Library

MDA

Model Driven Architecture

MDD

Model Driven Development

MDE

Model Driven Engineering

MDSD

Model Driven Software Development

MDWE

Model Driven Web Engineering

MOF

Meta Object Facility

MVC


Model View Controller

OCL

Object Constraints Language

OMG

Object Management Group

OOHDM
OOHDMDA

Object Oriented Hypermedia Design Method
Object Oriented Hypermedia Design Method Driven Approach

PIM

Platform Independent Model

PSM

Platform Specific Model

QVT

Query Views Transformation

UML


Unified Modeling Language

5


UWE
W2000 (HDM)
WebSA

Uml-based Web Engineering
Hypertext Design Model
Web Software Architecture

WTP

Web Tools Platform

XMI

XML Metadata Interchange

XML

eXtensible Markup Language

XSLT

eXtensible Stylesheet Language Transformation

6



DANH MỤC HÌNH
Hình 1.1. Cấu trúc MDA cho kỹ thuật Web [6] ...........................................................14
Hình 1.2. UWE metamodel [15] ..................................................................................16
Hình 1.3. UWE profile cho mơ hình u cầu [15] .......................................................18
Hình 1.4. UWE profile cho mơ hình nội dung [15] .....................................................19
Hình 1.5. UWE profile cho mơ hình điều hướng [15] .................................................20
Hình 1.6. UWE profile cho mơ hình xử lý [15] ...........................................................21
Hình 1.7. UWE profile cho mơ hình trình bày [15] .....................................................22
Hình 1.8. Phương pháp sinh mã dựa trên khuôn mẫu và bộ lọc [8] ............................22
Hình 1.9. Phương pháp sinh mã dựa trên khn mẫu và metamodel [8] ....................23
Hình 1.10. Phương pháp sinh mã dựa trên API [8]......................................................23
Hình 1.11. Phương pháp sinh mã dựa trên khn mẫu [3] ..........................................24
Hình 1.12. Quy trình sinh mã UWE4JSF [4] ...............................................................25
Hình 2.1. Cấu trúc MDA cho ứng dụng web theo kỹ thuật UWE ...............................27
Hình 2.2. Mơ hình MVC trong Web [17] ....................................................................29
Hình 2.3. Java metamodel ............................................................................................30
Hình 2.4. JSP metamodel .............................................................................................31
Hình 2.5. Chuyển đổi mơ hình PIM sang PSM, mã nguồn theo mơ hình MVC .........31
Hình 2.6. Các thành phần trong mơ hình nội dung ......................................................32
Hình 2.7. Các quy tắc cấu thành giải thuật CM2M......................................................33
Hình 2.8. Quy trình chuyển đổi sinh mã nguồn từ mơ hình nội dung .........................36
Hình 2.9. Các thành phần trong mơ hình trình bày ......................................................38
Hình 2.10. Các quy tắc cấu thành giải thuật PRES2V .................................................38
Hình 2.11. Quy trình chuyển đổi sinh mã JSP từ mơ hình trình bày. ..........................42
Hình 2.12. Các thành phần trong mơ hình điều hướng. ...............................................44
Hình 2.13. Các quy tắc cấu thành giải thuật NM2C ....................................................44
Hình 2.14. Quy trình chuyển đổi sinh mã nguồn từ mơ hình điều hướng ...................47
Hình 2.15. Các thành phần trong mơ hình xử lý ..........................................................49

Hình 2.16. Các quy tắc cấu thành giải thuật PROM2C ...............................................49
Hình 2.17. Quy trình chuyển đổi sinh mã nguồn từ mơ hình xử lý .............................51
Hình 3.1. Kiến trúc MagicDraw và CODEGER-UWE ...............................................54
Hình 3.2. Cài đặt CODEGER-UWE ............................................................................54
Hình 3.3. Giao diện cơng cụ CODEGER-UWE ..........................................................55

7


Hình 3.4. Bốn mơ hình của AddressBook ...................................................................57
Hình 3.5. Mã nguồn sinh ra từ bốn mơ hình UWE ......................................................58
Hình 3.6. Khung ứng dụng Web ..................................................................................59
Hình 3.7. Giao diện trang web .....................................................................................59
Hình 3.8. Hiện thị các kết quả tìm kiếm Contact .........................................................60
Hình 3.9. Giao diện tạo mới Contact ...........................................................................60
Hình 3.10. Giao diện cập nhật một Contact đã có .......................................................60
Hình 3.11. Hiện thị lại danh sách sau khi đã xóa một Contact ....................................61

8


DANH MỤC BẢNG
Bảng 1. So sánh các kỹ thuật Web hướng mơ hình [6]................................................16
Bảng 2. Các thành phần khn mẫu trong UWE [15] .................................................17
Bảng 3. Bảng đánh giá mã nguồn ................................................................................61

9


LỜI CẢM ƠN

Để có thể hồn thành luận văn tốt nghiệp này, em xin chân thành cảm ơn thầy
hướng dẫn luận văn tốt nghiệp, PGS.TS Huỳnh Quyết Thắng, bộ môn Công nghệ phần
mềm, trường đại học Bách Khoa Hà Nội. Thầy đã nhiệt tình hướng dẫn, truyền đạt
những kiến thức cần thiết và định hướng cho em trong quá trình thực hiện đề tài.
Em xin chân thành cảm ơn sự giúp đỡ quý báu của anh Trần Đình Diễn, nghiên cứu
sinh tại bộ môn Công nghệ phần mềm, trường đại học Bách Khoa Hà Nội.
Em xin chân thành cảm ơn các thầy cô giáo ở bộ môn Công nghệ phần mềm, trường
Đại học Bách Khoa Hà Nội.
Dù đã cố gắng nhưng luận văn chắc chắn khơng tránh khỏi thiếu sót, em rất mong
nhận được ý kiến đóng góp của các thầy cô.
Em xin chân thành cảm ơn!

10


MỞ ĐẦU
Phương pháp phát triển phần mềm hướng mơ hình ra đời với ý tưởng chính là tập
trung vào việc mơ hình hóa phần mềm, rồi từ đó chuyển đổi tự động sang các mơ đun,
mã nguồn, hay chương trình có thể thực thi bằng các cơng cụ chuyển đổi. Phương pháp
này đang được áp dụng bởi vì nó giải quyết được nhiều vấn đề ở cả khía cạnh người
dùng và người phát triển.
Các cơng cụ chuyển đổi mơ hình, sinh mã nguồn hiện có đã đáp ứng được một phần
nhu cầu cho phương pháp phát triển ứng dụng Web hướng mơ hình. Đề tài tập trung
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, giảm bớt
thời gian cho người phát triển.
1. Mục đích nghiên cứu của luận văn
Mục đích của luận văn là nghiên cứu 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.
Việc cải tiến này được thể hiện thông qua xây dựng bộ quy tắc chuyển đổi cấp mơ

hình và xây dựng cơng cụ sinh mã nguồn dựa trên bộ quy tắc này.
Luận văn có 3 nhiệm vụ cụ thể:
1) Trình bày bộ quy tắc chuyển đổi cấp mơ hình: từ mơ hình độc lập với nền tảng
cơng nghệ (PIM) sang mơ hình theo nền tảng cơng nghệ cụ thể (PSM) với nền tảng
công nghệ được áp dụng là J2EE (Java 2 Platform, Enterprise Edition).
2) Xây dựng công cụ sinh mã nguồn CODEGER-UWE dựa trên bộ quy tắc chuyển
đổi cấp mơ hình.
3) Áp dụng cơng cụ CODEGER-UWE đã xây dựng vào bài toán cụ thể và đánh giá
kết quả.
2. Nội dung của luận văn
Nội dung luận văn bao gồm 3 chương:
Chương 1: Tổng quan về kiến trúc hướng mơ hình và kỹ thuật Web hướng mơ hình
UWE. Chương này giới thiệu kiến trúc hướng mơ hình, các kỹ thuật Web hướng mô

11


hình, tổng hợp các nghiên cứu về kỹ thuật sinh mã nguồn trong phát triển ứng dụng
hướng mơ hình.
Chương 2: Phát triển các giải thuật sinh mã nguồn. Chương này giới thiệu bài tốn,
lựa chọn nền tảng cơng nghệ, mơ hình Web, phương pháp sinh mã, đưa ra quy trình
chuyển đổi; trình bày mối tương quan giữa các mơ hình UWE với mơ hình MVC, thể
hiện các quy tắc chuyển đổi mơ hình và xây dựng cơng cụ sinh mã.
Chương 3: Cài đặt cơng cụ CODEGER-UWE tích hợp các giải thuật, áp dụng cho
một bài toán cụ thể và đánh giá.
3. Các đóng góp khoa học của luận văn
Luận văn có hai đóng góp như sau:
Thứ nhất: Xây dựng các giải thuật sinh mã nguồn: giải thuật CM2M sinh mã thành
phần Model từ mơ hình nội dung, giải thuật NPROM2C sinh mã thành phần Controller
từ mơ hình điều hướng và xử lý, giải thuật PRES2V sinh mã thành phần View từ mơ

hình trình bày.
Thứ hai: Xây dựng cơng cụ CODEGER-UWE tích hợp các giải thuật trên, áp dụng
cho một bài toán cụ thể, đánh giá.

12


Chương 1: Tổng quan về kiến trúc hướng mơ hình
và kỹ thuật Web hướng mơ hình UWE
1.1. Kiến trúc hướng mơ hình
Kiến trúc hướng mơ hình MDA (Model Driven Architecture) là một hướng tiếp cận
vấn đề theo kỹ nghệ hướng mơ hình MDE (Model Driven Engineering) do tổ chức
OMG đề xuất. MDA bắt đầu với ý tưởng tách đặc điểm kỹ thuật của hệ thống ra khỏi
nền tảng hoạt động của hệ thống [6, 7, 14]. MDA cung cấp một cách tiếp cận và cơng
cụ nhằm mục đích:
o Xác định một hệ thống độc lập so với nền tảng.
o Xác định các nền tảng của hệ thống.
o Lựa chọn nền tảng cụ thể cho hệ thống và từ đó chuyển đổi đặc tả hệ thống vào một
trong những nền tảng đã xác định.
Cốt lõi của MDA là một số chuẩn quan trọng của OMG[1, 9, 13]. Các chuẩn này
xác định hạ tầng cơ sở của MDA và góp phần vào việc mơ hình hóa hệ thống, gồm có:
UML (Unified Modeling Language): ngơn ngữ mơ hình thống nhất.
MOF (Meta Object Facility): ngơn ngữ dùng để định nghĩa ngơn ngữ mơ hình.
XML (eXtensible Markup Language): ngôn ngữ đánh dấu mở rộng.
CWM (Common Warehouse Metamodel): siêu mơ hình ứng dụng kho lưu dữ liệu.
MDA mô tả khuôn mẫu cho việc phát triển phần mềm nhanh chóng hiệu quả và tối
ưu về chi phí, đồng thời cung cấp các hướng dẫn để cấu trúc các đặc tả lại thành các
mơ hình, định nghĩa các chức năng của hệ thống dựa trên mơ hình độc lập nền tảng
PIM (Platform Independent Model), sử dụng các ngôn ngữ đặc tả chuyên biệt. PIM sau
đó được chuyển thành một hoặc một vài mơ hình phụ thuộc nền tảng xác định PSM

(Platform Specific Model) mà các máy tính có thể chạy được. PSM có thể sử dụng các
ngơn ngữ đặc tả chuyên biệt hoặc các ngôn ngữ phổ biến như: Java, C#, C++ [6, 14].
o
o
o
o

1.2. Các kỹ thuật Web hướng mơ hình
Với những ưu điểm của MDA và những đặc điểm về tính đa dạng về cơng nghệ
cũng như ngơn ngữ của phát triển các ứng dụng Web thì kỹ nghệ Web hướng mơ hình
MDWE (Model Driven Web Engineering) được áp dụng vào phát triển các ứng dụng
Web nhằm tạo ra các ứng dụng Web nhanh chóng, linh hoạt và chất lượng. Trong kỹ
nghệ Web hướng mơ hình bao gồm bốn mức [1, 2, 14, 16]:

13


o Mơ hình độc lập tính tốn CIM (Computation Independent Model) thể hiện mơ hình
hóa các chức năng của hệ thống.
o Mơ hình PIM là một khung nhìn của hệ thống từ điểm nhìn độc lập nền tảng. Đó là
một mơ hình của hệ thống khơng chứa thơng tin cụ thể về nền tảng, hay công nghệ
được dùng để thực hiện nó.
o Mơ hình PSM là một khung nhìn của một hệ thống từ điểm nhìn nền tảng cụ thể.
Đó là một mơ hình của hệ thống bao gồm thơng tin về công nghệ cụ thể được dùng
để thực hiện nó trong một nền tảng cụ thể ví dụ Java hoặc .NET.
o Mơ hình triển khai cụ thể ISM (Implementation Specific Model) cung cấp thông tin
cần thiết để xây dựng hệ thống.
Trong MDA, sự chuyển đổi giữa các mức được định nghĩa: chuyển đổi CIM sang
PIM, PIM sang PSM và từ PSM sang mã nguồn.


Hình 1.1. Cấu trúc MDA cho kỹ thuật Web [6]

14


Một số kỹ thuật Web hướng mơ hình điển hình:
OOHDMDA: Phương pháp thiết kế đa phương tiện hướng đối tượng OOHDM
(Object Oriented Hypermedia Design Method) được đề xuất năm 1995. Ý tưởng của
phương pháp này là chia việc thiết kế một hệ thống Web thành ba mơ hình: mơ hình
khái niệm, mơ hình điều hướng và mơ hình giao diện trừu tượng [14]. OOHDMDA là
kiến trúc hướng mơ hình cho OOHDM, bắt đầu bằng mơ hình PIM được thiết kế trong
OOHDM, để tạo ra các PSM. OOHDMDA cung cấp phương pháp thiết kế ứng dụng
Web bằng cách kết hợp UML và các mơ hình được định nghĩa trong OOHDM.
W2000 (HDM): W2000 (Hypertext Design Model) dựa trên nguyên lý hướng đối
tượng. Phương pháp này đưa ra một vòng đời cho phát triển một ứng dụng Web [14].
W2000 bắt đầu bằng bước phân tích yêu cầu dựa trên biểu đồ ca sử dụng. Dựa trên
những thơng tin có được ở bước phân tích u cầu để phát triển mơ hình khái niệm và
mơ hình điều hướng. Tiếp theo W2000 thay đổi và mở rộng một số mơ hình UML như
là biểu đồ lớp và biểu đồ trạng thái. Cuối cùng sử dụng các biểu đồ tuần tự để mô tả
chức năng của hệ thống.
WebML: WebML là một phương pháp thiết kế Web thế hệ thứ ba dựa trên MDA,
dựa trên mơ hình quan hệ thực thể [6, 14]. Trong WebML bổ sung, xây dựng tập ký
pháp để thiết kế khái niệm của các trang Web phức tạp. Phương pháp này sử dụng ký
hiệu riêng và không sử dụng metamodel tuân thủ MOF, mà sử dụng định nghĩa kiểu tài
liệu DTD (Document Type Definition) để lưu các mơ hình nội dung và điều hướng, ví
dụ định nghĩa dạng ngữ pháp cho cấu trúc của tài liệu XML. DTD khơng có tính trừu
tượng như MOF và thiếu ký hiệu dễ hiểu. Ngôn ngữ chuyển đổi định kiểu mở rộng
XSLT (eXtensible Stylesheet Language Transformation) được sử dụng cho việc
chuyển đổi mơ hình sang mã nguồn (hỗ trợ Java và JSP). XSLT không phù hợp với
những chuyển đổi phức tạp, khó phát triển chương trình và dễ bị lỗi [6].

UWE: UWE (Uml –based Web Engineering) là phương pháp hướng đối tượng dựa
trên ngơn ngữ mơ hình hóa UML, là một trong những kỹ thuật đầu tiên phát triển theo
kỹ thuật hướng mơ hình và được sử dụng nhiều nhất trong kỹ thuật Web hướng mơ
hình [6, 14]. UWE là một kỹ thuật phát triển ứng dụng Web hoàn chỉnh nhưng chủ yếu
tập trung vào giai đoạn phân tích và thiết kế. 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 hồ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 đã

15


quen thuộc với UML. Kỹ thuật Web hướng mơ hình UWE đáp ứng đầy đủ các yêu cầu
của MDA cho việc phát triển ứng dụng Web bao gồm mơ hình CIM, PIM, PSM và kỹ
thuật chuyển đổi từ mơ hình CIM sang PIM, từ mơ hình PIM sang PSM.
Kỹ thuật Web
hướng mơ hình
UWE
WebML
W2000 (HDM)

CIM
X
X

Cấp độ kiến trúc mơ hình
PIM
X
X
X


OOHDMDA

X

PSM
X
X
X

Bảng 1. So sánh các kỹ thuật Web hướng mơ hình [6]

1.3. Kỹ thuật UWE
Kỹ thuật UWE cung cấp một tập các phần tử mơ hình đặc tả chun biệt để mơ hình
hóa. Những phần tử này và mối quan hệ được xác định bởi một metamodel.
Metamodel UWE được tách theo cấu trúc gói như trong hình 1.2, trong đó, gói
Adaptivity có mục đích cho phép ngơn ngữ có thể mở rộng [15]. Gói Core được chia
thành các gói nhỏ hơn (cịn được gọi là các mơ hình trong UWE), bao gồm: (1)
Requirements (Yêu cầu); (2) Content (Nội dung); (3) Navigation (Điều hướng); (4)
Process (Xử lý); (5) Presentation (Trình bày)

Hình 1.2. UWE metamodel [15]

16


Metamodel UWE được định nghĩa như một phần mở rộng cho UML 2.0. UML
profile tương thích với hầu hết cơng cụ UML. Metamodel UWE định nghĩa một số
khuôn mẫu mở rộng cho UML dựa trên những đặc trưng riêng của các ứng dụng Web.


Bảng 2. Các thành phần khuôn mẫu trong UWE [15]

17


1.3.1. Mơ hình u cầu
Mơ hình u cầu sẽ bao gồm hai thành phần cơ bản đó là các biểu đồ ca sử dụng và
các biểu đồ hoạt động tương ứng.

Hình 1.3. UWE profile cho mơ hình u cầu [15]

Biểu đồ ca sử dụng mô tả sự tương tác đặc trưng giữa người dùng bên ngồi và hệ
thống. Nó thể hiện nghiệp vụ của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất
định, xét từ quan điểm của người sử dụng. Biểu đồ ca sử dụng mô tả các u cầu đối
với hệ thống, mơ tả những gì hệ thống phải làm. Tập hợp tất cả biểu đồ ca sử dụng của
hệ thống sẽ mô tả tất cả các trường hợp mà hệ thống có thể được sử dụng.

18


Biểu đồ hoạt động là bản vẽ tập trung vào mô tả các hoạt động, luồng xử lý bên
trong hệ thống. Nó có thể được sử dụng để mơ tả chi tiết cho các yêu cầu quy trình
nghiệp vụ trong hệ thống đã được mô tả sơ lược trong biểu đồ ca sử dụng. Các luồng
của một chức năng hoặc các hoạt động của một đối tượng. Các thành phần tạo nên biểu
đồ ca sử dụng và biểu đồ hoạt động được mơ tả trong hình 1.3.
1.3.2. Mơ hình nội dung
Mơ hình nội dung thể hiện trong hình 1.4, mơ tả cấu trúc và quan hệ giữa các thành
phần tạo nên phần mềm. Mơ hình hố nội dung khơng địi hỏi bất kỳ cấu trúc bổ sung.
Các lớp UML thông thường được sử dụng cho mơ hình hố mơ hình nội dung tương tự
như mơ hình hóa các ứng dụng khơng phải là Web.


Hình 1.4. UWE profile cho mơ hình nội dung [15]

1.3.3. Mơ hình điều hướng
Mơ hình điều hướng mô tả luồng chuyển hướng tương ứng với hành động người sử
dụng trong ứng dụng Web, thể hiện trong hình 1.5. Nó được thể hiện bằng biểu đồ lớp
và bổ sung các khuôn mẫu của UWE đại diện cho các nút, các liên kết, thực đơn và chỉ
mục. Mơ hình điều hướng của một ứng dụng Web thể hiện cấu trúc thông tin tĩnh của

19


hệ thống mà người dùng có thể tương tác để chuyển đổi giữa các trang, các danh mục
nội dung của trang Web.

Hình 1.5. UWE profile cho mơ hình điều hướng [15]

1.3.4. Mơ hình xử lý
Mơ hình xử lý sẽ thể hiện chi tiết quá trình xử lý được thực hiện như thế nào, thể
hiện trong hình 1.6. Mơ hình xử lý đại diện cho các khía cạnh động của ứng dụng Web,
cung cấp các phần tử mơ hình cho việc tích hợp quy trình vào một mơ hình ứng dụng
Web. Gói xử lý có thể được chia thành ba nhiệm vụ [15]: (1) Tích hợp các quy trình
nghiệp vụ vào mơ hình điều hướng; (2) Định nghĩa một giao diện người dùng để hỗ trợ
các xử lý. (3) Định nghĩa hành vi.
1.3.5. Mơ hình trình bày

Mơ hình trình bày như thể hiện trong hình 1.7, mơ tả một cái nhìn trừu tượng về
giao diện người dùng của ứng dụng Web. Mơ hình trình bày định nghĩa nhiều khn
mẫu cho các loại thành phần khác nhau, ví dụ như khung nhập văn bản, các nút bấm,
… nhưng không cung cấp chi tiết cụ thể như kiểu CSS hoặc các yếu tố HTML [6].


20


Hình 1.6. UWE profile cho mơ hình xử lý [15]

21


Hình 1.7. UWE profile cho mơ hình trình bày [15]

1.4. Tổng hợp các nghiên cứu về kỹ thuật sinh mã nguồn trong phát triển ứng
dụng Web hướng mơ hình
1.4.1. Các phương pháp sinh mã hướng mơ hình
o Khn mẫu và bộ lọc (Template and Filtering)
Phương pháp [8] này là phương pháp đơn giản nhất để sinh mã nguồn. Mã nguồn
được sinh ra bằng cách áp dụng khuôn mẫu cho đặc tả mơ hình văn bản (thường là
XML/XMI), và sau khi lọc một vài phần của đặc tả. Một phần của mã nguồn cũng
được nhúng trong khn mẫu.

Hình 1.8. Phương pháp sinh mã dựa trên khuôn mẫu và bộ lọc [8]

22


o Khuôn mẫu và metamodel (Template and metamodel)
Phương pháp [8] này là một sự mở rộng của phương pháp Khuôn mẫu và bộ lọc. Từ
đặc tả mơ hình văn bản, ta xây dựng metamodel rồi áp dụng khuôn mẫu. Khuôn mẫu
được mơ tả trong phạm vi của metamodel.


Hình 1.9. Phương pháp sinh mã dựa trên khuôn mẫu và metamodel [8]

o Sinh mã dựa trên API (API –based Generator)
Phương pháp [8] này mơ tả kỹ thuật mà ở đó, trình khách sẽ gọi API để sinh mã,
API này được xây dựng dựa trên metamodel hay cú pháp của ngơn ngữ đích. Phương
pháp này phù hợp sử dụng cho việc sinh một lượng nhỏ mã nguồn do API nhanh chóng
trở lên phức tạp, rườm rà với mơ hình lớn.

Hình 1.10. Phương pháp sinh mã dựa trên API [8]

Nhìn chung, giải pháp cho nhu cầu sinh mã tự động là sử dụng bộ tạo mã dựa trên
khn mẫu hướng mơ hình (Model –driven Template –based Code Generators). Bộ tạo
mã lấy thông tin từ mơ hình và khn mẫu làm đầu vào, sau đó chuyển đổi sang mã
nguồn/chương trình. Kiến trúc bậc cao điển hình của hệ thống tạo mã hướng mơ hình
là dựa trên khuôn mẫu được mô tả cụ thể như sau:

23


Hình 1.11. Phương pháp sinh mã dựa trên khn mẫu [3]

1.4.2. OptimalJ
OptimalJ [12] là một trong những môi trường phát triển đầu tiên triển khai MDA,
được phát hành lần đầu vào năm 2001 bởi Compuware tại Amsterdam, dựa trên
NetBeans IDE của Sun Microsystem. Từ năm 2006, OptimalJ phát triển dựa trên
Eclipse IDE. Các mơ hình trong OptimalJ có các mức trừu tượng khác nhau:
o Mơ hình miền (OptimalJ Domain Model) tương ứng với PIM trong MDA. Nó định
nghĩa miền nghiệp vụ (Business Domain) mà khơng có bất cứ thơng tin chi tiết nền
tảng cụ thể nào. Nó được định nghĩa bằng cách mơ hình hóa các tính năng và hành
vi của ứng dụng, thông tin phụ thuộc miền được xây dựng dựa trên MOF bằng

UML.
o Mơ hình miền được chuyển đổi tự động sang mơ hình ứng dụng (OptimalJ
Application Model), tương ứng với PSM trong MDA. Miền ứng dụng định nghĩa
ứng dụng, dựa trên nền tảng công nghệ được lựa chọn J2EE. Nó mơ tả những gì sẽ
được tạo ra để thực hiện ứng dụng, bằng cách cung cấp một logic tổng quan về các
thành phần chứa trong mỗi tầng tạo nên ứng dụng.
o Miền ứng dụng được chuyển đổi tự động sang mơ hình mã (OptimalJ Code Model)
tương ứng với Code/Text trong MDA. Mơ hình mã tạo ra mã ứng dụng.
OptimalJ khơng cịn được tiếp tục phát triển từ năm 2008.
1.4.3. UWE4JSF
UWE4JSF [4] là công cụ tự động sinh mã ứng dụng Web nền tảng JSF từ mơ hình
UWE, bao gồm một chuỗi các plugin được tích hợp trong mơi trường mơ hình hóa
Eclipse EMF (Eclipse Modeling Framework), được xây dựng và đóng gói thành các
thư viện Java (.jar).

24


UWE4JSF sử dụng ngơn ngữ chuyển đổi mơ hình ATL (Atlas Transformation
Language) và công cụ mã nguồn mở JET (Java Emitter Template). ATL xây dựng các
quy tắc xác định các phần tử mơ hình nguồn được kết hợp và điều hướng như thế nào
để tạo và khởi tạo các phần tử của mơ hình đích. JET cung cấp một framework và tiện
ích cho việc sinh mã, khn mẫu JSP với đầu vào mặc định là file .xml.
UWE4JSF tương thích trên Eclipse Galileo (version 3.5), Eclipse Helios (version
3.6), yêu cầu cài đặt nền tảng công cụ Web WTP (Web Tools Platform), EMF, JET,
ATL và 2 sub –project: uwe4jsf –persistence –hibernate & uwejsf –framework.
Phiên bản mới nhất của UWE4JSF năm 2007

Hình 1.12. Quy trình sinh mã UWE4JSF [4]


1.5. Tiểu kết chương
Chương 1 đã giới thiệu kỹ thuật UWE với những ưu điểm cho phát triển ứng dụng
Web. Các mơ hình u cầu, nội dung, điều hướng, trình bày, xử lý giúp mơ hình hóa tất
cả các khía cạnh của một ứng dụng Web: giao diện, điều hướng, xử lý, sau đó các mơ
hình này có thể được sử dụng cho q trình sinh mã nguồn cho ứng dụng.
Các kỹ thuật sinh mã nguồn từ mơ hình cũng đã được giới thiệu một cách tổng quát.
Công cụ UWE4JSF là minh chứng cho khả năng sinh mã nguồn cho ứng dụng Web

25


×