BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
Trần Quốc Khánh
NGHIÊN CỨU XÂY DỰNG PHƢƠNG PHÁP CHUYỂN ĐỔI MƠ HÌNH TÍCH
HỢP RÀNG BUỘC TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƢỚNG MƠ
HÌNH THEO KỸ THUẬT UWE
Chun 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 – Trần Quốc Khánh – 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 4 năm 2018
Học viên
Trần Quốc Khánh
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 .......................................................................................................6
DANH MỤC BẢNG ......................................................................................................8
MỞ ĐẦU ......................................................................................................................10
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ề kỹ thuật UWE và ngôn ngữ ràng buộc OCL.......................13
1.1. Kiến trúc hướng mơ hình ....................................................................................13
1.1.2. Giới thiệu ................................................................................................................. 13
1.1.2. Các kỹ thuật Web hướng mơ hình .......................................................................... 13
1.2. Kỹ thuật UWE .....................................................................................................15
1.2.1. Mơ hình u cầu u cầu ......................................................................................... 18
1.2.2. Mơ hình nội dung ..................................................................................................... 18
1.2.3. Mơ hình điều hướng ................................................................................................. 19
1.2.4. Mơ hình xử lý........................................................................................................... 19
1.2.5. Mơ hình trình bày..................................................................................................... 20
1.2.6. Mơ hình MVC và các thành phần tương ứng trong UWE ....................................... 20
1.3. Ngôn ngữ ràng buộc OCL...................................................................................23
1.3.1. Khái niệm OCL ........................................................................................................ 23
1.3.2. Cú pháp OCL ........................................................................................................... 24
1.4. Vấn đề về xây dựng các bộ quy tắc chuyển đổi mô hình và ràng buộc OCL và
nhiệm vụ trong luận văn ............................................................................................25
1.5. Tiểu kết chương ..................................................................................................31
Chương 2: Xây dựng bộ quy tắc chuyển đổi mơ hình trong UWE ..............................32
2.1. Giới thiệu phương pháp chuyển đổi mơ hình trong UWE ..................................32
2.1.1. Quy tắc đã có của chuyển đổi mơ hình xử lý ........................................................... 32
2.1.2. Quy tắc đã có của chuyển đổi mơ hình trình bày .................................................... 32
2.2. Hồn thiện các quy tắc chuyển đổi từ mơ hình u cầu sang mơ hình xử lý .....33
2.2.1. Quy tắc chuyển đổi U2P .......................................................................................... 34
2.2.3. Quy tắc chuyển đổi S2P ........................................................................................... 36
2.2.3. Quy tắc chuyển đổi U2U.......................................................................................... 38
2.2.4. Quy tắc chuyển đổi S2S ........................................................................................... 39
2.3. Hồn thiện quy tắc chuyển đổi mơ hình u cầu sang mơ hình trình bày ..........41
3
2.3.1. Quy tắc chuyển đổi D2G.......................................................................................... 42
2.3.2. Quy tắc chuyển đổi P2E ........................................................................................... 43
2.4. Tiểu kết chương ..................................................................................................44
Chương 3: Tích hợp OCL ............................................................................................46
3.1. Giới thiệu phương pháp ......................................................................................46
3.1.1. Tích hợp OCL .......................................................................................................... 46
3.1.2. Chuyển đổi OCL ...................................................................................................... 47
3.2. Tích hợp và chuyển đổi OCL từ mơ hình u cầu sang mơ hình xử lý .............47
3.2.1. Chuyển đổi các ràng buộc bất biến .......................................................................... 48
3.2.2. Chuyển đồi các ràng buộc tiền điều kiện- hậu điều kiện ........................................ 50
3.3. Tích hợp và chuyển đổi ràng buộc bất biến từ mơ hình u cầu sang mơ hình
trình bày .....................................................................................................................52
3.4. Tiểu kết chương ..................................................................................................53
Chương 4: Xây dựng công cụ MTO-Plugin và thử nghiệm ........................................54
4.1. Xây dựng MTO-Plugin .......................................................................................54
4.2. Thử nghiệm và đánh giá .....................................................................................57
4.2.1. Chuyển đổi sang mơ hình trình bày ......................................................................... 61
4.2.2. Chuyển đổi sang mơ hình xử lý ............................................................................... 66
4.3. Tiểu kết chương ..................................................................................................74
KẾT LUẬN ..................................................................................................................75
DANH MỤC THAM KHẢO .......................................................................................77
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 đủ
MDSD
Model Driven Software Development
MDWE
Model Driven Web Enginnering
UWE
Uml-based Web Engineering
WebSA
Web Software Architecture
MDA
Model Driven Architecture
CIM
Computation Independent Model
PIM
Platform Independent Model
PSM
Platform Specific Model
UML
Unified Modeling Language
MOF
Query View Transformation
MVC
Model View Controller
CSS
Cascading Style Sheets
XML
eXtensible Markup Language
XSLT
eXtensible Stylesheet Language Transformation
DTD
Document Type Definition
OCL
Object Constraints Language
HTML
Hypertext Markup Language
OMG
Object Management Group
CWM
Common Warehouse Metamodel
MDE
Model Driven Engineering
ISM
Impl Specific Model
MDD
Model Driven Development
ALT
Atlas Transformation Language
QVT
Query/Views/Transformation
OOHDM
OOHDMA
W2000 (HDM)
Object Oriented Hypermedia Design Method
Object Oriented Hypermedia Design Method Approach
Hypertext Design Model
5
DANH MỤC HÌNH
Hình 1.1. Cấu trúc MDA cho kỹ thuật Web [2,13] ......................................................14
Hình 1.2. UWE metamodel [6] ....................................................................................16
Hình 1.3. UWE profile cho mơ hình u cầu [6,16] ....................................................18
Hình 1.4. UWE profile cho mơ hình nội dung [6,16] ..................................................19
Hình 1.5. UWE profile cho mơ hình điều hướng [6, 16] .............................................20
Hình 1.6. UWE profile cho mơ hình xử lý [6, 16] .......................................................21
Hình 1.7. UWE profile cho mơ hình trình bày [6,16] ..................................................22
Hình 1.8. Mơ hình MVC trong Web [12] ....................................................................22
Hình 1.9. Mối liên hệ giữa các mơ hình trong UWE với mơ hình MVC [3]. ..............23
Hình 1.10. Tổng quan về chuyển đổi mơ hình của ActionUWE .................................27
Hình 1.11. Chuyển đổi từ CIM tới PIM và từ PIM sang PIM trong UWE [5]. ...........28
Hình 1.12. Phương pháp chuyển đổi mơ hình .............................................................28
Hình 1.13. Các quy tắc chuyển đổi mơ hình u cầu sang mơ hình nội dung [3]. ......29
Hình 1.14. Các quy tắc chuyển đổi mơ hình u cầu sang mơ hình điều hướng [3]. ..29
Hình 1.15. Các quy tắc chuyển đổi đã có sang mơ hình xử lý [3]. ..............................30
Hình 1.16. Các quy tắc chuyển đổi đã có sang mơ hình trình bày [3] .........................30
Hình 2.1. Biểu đồ diễn tiến chuyển đổi quy tắc U2P ...................................................35
Hình 2.2. Biểu đồ diễn tiến chuyển đổi quy tắc U2P ...................................................36
Hình 2.3. Biểu đồ diễn tiến chuyển đổi quy tắc S2P ...................................................37
Hình 2.4. Biểu đồ diễn tiến chuyển đổi quy tắc S2P ...................................................38
Hình 2.5. Biểu đồ diễn tiến chuyển đổi quy tắc U2U ..................................................39
Hình 2.6. Biễu đồ diễn tiến của quy tắc S2S................................................................40
Hình 2.7. Biểu đồ diễn tiến chuyển đổi quy tắc D2G ..................................................43
Hình 2.8. Biểu đồ diễn tiến xử lý cho quy tắc P2E ......................................................45
Hình 3.1. Giao diện HTML chuyển đổi từ mơ hình tích hợp OCL .............................46
Hình 3.2. Chuyển đổi mơ hình và chuyển đổi OCL ....................................................47
Hình 3.3. Chuyển đổi mơ hình và mã nguồn tích hợp ràng buộc OCL .......................48
Hình 3.4. Biểu đồ diễn tiến chuyển đổi bất biến trong mơ hình xử lý .........................49
Hình 3.5. Biểu đồ chuyển đổi tiền điều kiện – hậu điều kiện mơ hình xử lý ..............51
Hình 3.6. Biểu đồ diễn tiến chuyển đổi ràng buộc bất biên mơ hình trình bày ...........53
Hình 4.1. Kiến trúc MagicDraw và MTO-Plugin ........................................................55
Hình 4.2. Cài đặt MTO-Plugin .....................................................................................55
6
Hình 4.3. Cơ chế khởi tạo và chạy plugin của Magic Draw ........................................56
Hình 4.4. Giao diện cơng cụ MTO-Plugin ...................................................................57
Hình 4.5. Sơ đồ Usecase của AddressBook .................................................................57
Hình 4.6. Activity diagram cho Create Contact ...........................................................59
Hình 4.7. Activity diagram cho Update Contact ..........................................................60
Hình 4.8. Activity diagram Search Contact .................................................................61
Hình 4.9. Activity diagram Delete Contact ..................................................................61
Hình 4.10. Kết quả chuyển đổi Quy tắc D2G .............................................................62
Hình 4.11. Kết quả chuyển đổi quy tắc P2E ................................................................62
Hình 4.12. Kết quả chuyển đổi ràng buộc bất biến mơ hình trình bày ........................63
Hình 4.13. Kết quả chuyển đổi mơ hình trình bày ban đầu .........................................63
Hình 4.14. Kết quả chuyển đổi mơ hình trình bày sau khi bổ sung các quy tắc ..........64
Hình 4.15. Trang Home khi mơ hình hóa bằng tay......................................................65
Hình 4.16. CreateContact, SearchContact khi mơ hình hóa bằng tay..........................66
Hình 4.18. Kết quả chuyển đổi Quy tắc S2P ...............................................................67
Hình 4.19. Kết quả chuyển đổi Quy tắc U2U ..............................................................68
Hình 4.20. Kết quả chuyển đổi Quy tắc S2S ...............................................................68
Hình 4.21. Kết quả chuyển đổi các ràng buộc bất biến và tiền điều kiện- hậu điều kiện
mơ hình xử lý ...............................................................................................................69
Hình 4.22. Mơ hình lớp xử lý ban đầu .........................................................................69
Hình 4.23. Mơ hình lớp xử lý được chuyển đổi với quy tắc bổ sung ..........................70
Hình 4.24. Chuyển đổi sang mơ hình luồng xử lý ban đầu..........................................70
Hình 4.25. Mơ hình luồng xử lý sau khi bổ sung các quy tắc......................................71
Hình 4.26. Mơ hình lớp xử lý mơ hình hóa bằng tay ...................................................72
Hình 4.27. Mơ hình luồng xử lý mơ hình hóa bằng tay ...............................................73
7
DANH MỤC BẢNG
Bảng 1. So sánh các kỹ thuật Web hướng mơ hình [2,13]...........................................15
Bảng 2. Các thành phần UWE stereo type [6,16] ........................................................17
Bảng 3. Các thành phần tương ứng DisplayAction type và Prentation element..........42
Bảng 4. Các thành phần tương ứng với Pin type và giao diện .....................................44
Bảng 5. Các pin trong create và update contact diagram .............................................58
Bảng 6. Các ràng buộc OCL được tích hợp trong activity diagram. ...........................58
8
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!
9
MỞ ĐẦU
Phương pháp phát triển phần mềm hướng mơ hình là q trình phát triển tập trung
vào mơ hình hóa hệ thống UML và chuyển đổi các mơ hình ngữ nghĩa mức cao xuống
các mơ hình cụ thể và từ đó xuống mã nguồn. Nó giúp cho việc phát triển các ứng dụng
nhanh chóng và hiệu quả hơn. Ứng dụng Web là một trong những ứng dụng phổ biến,
nó cũng có những đặc trưng riêng. Chính vì thế để áp dụng được phương pháp phát
triển phần mềm hướng mơ hình vào xây dựng ứng dụng Web đòi hỏi những thành phần
mới được bổ sung vào UML.
Kỹ thuật Web hướng mô hình UWE đã được phát triển để đáp ứng yêu cầu trên.
Không chỉ đáp ứng những quy định của kiến trúc MDA, UWE còn đưa ra những thành
phần đặc thù của ứng dụng Web.
Tuy nhiên phương pháp phát triển ứng dụng Web hướng mơ hình theo kỹ thuật
UWE bằng việc mơ hình hóa tất cả các mơ hình trong UWE tồn tại một số nhược điểm
sau:
Thứ nhất: Việc mơ hình hóa cả 5 mơ hình sẽ làm cho việc phát triển ứng dụng Web
tốn thời gian và chi phí;
Thứ hai: Với các ứng dụng Web thường bao gồm nhiều thành phần và các thành
phần có thể sẽ phụ thuộc vào các nền tảng cơng nghệ khác nhau, do đó 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.
Bằng việc xây dựng bộ quy tắc chuyển đổi mơ hình, từ mơ hình u cầu sẽ chuyển
đổi sang các mơ hình khác như mơ hình nội dung, mơ hình điều hướng, mơ hình xử lý,
mơ hình trình bày một cách tự động. Dựa trên các mơ hình được chuyển đổi, có thể
sinh mã nguồn tự động cho ứng dụng Web. Do đó nó giúp tiết kiệm thời gian, chi phí
và đảm bảo tính thống nhất giữa các mơ hình trong UWE.
10
Ngồi ra, đặc tính tương tác cao với người sử dụng của ứng dụng Web đòi hỏi các
dữ liệu được đưa vào hệ thống phải được ràng buộc và kiểm tra hợp lệ trước khi xử lý
nghiệp vụ.
Do vậy, em chọn đề tài “Nghiên cứu xây dựng phương pháp chuyển đổi mơ hình tích
hợp ràng buộc trong phát triển ứng dụng Web hướng mơ hình theo kỹ thuật UWE” để
giải quyết vấn đề nêu trê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 xây dựng phương pháp chuyển đổi mơ hình
tích hợp ràng buộc trong phát triển ứng dụng Web hướng mơ hình theo kỹ thuật UWE
nhằm chuyển đổi tự động từ mơ hình u cầu sang các mơ hình mơ hình nội dung, mơ
hình điều hướng, mơ hình xử lý, mơ hình trình bày giúp đảm bảo tính thống nhất giữa
các mơ hình, đồng thời 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.
2. Nội dung của luận văn
Nội dung luận văn bao gồm 4 chương:
Chương 1: Tổng quan về kỹ thuật UWE và ngôn ngữ ràng buộc OCL. Chương này
trình bày về kiến trúc hướng mơ hình, các kỹ thuật Web hướng mơ hình phổ biến, lý do
chọn UWE, các mơ hình của UWE và mối tương quan giữa các mơ hình UWE với mơ
hình MVC, lý thuyết về ràng buộc OCL. Đồng thời chương 1 cũng làm rõ các nghiên
cứu hiện có của chuyển đổi mơ hình UWE, các quy tắc đã có và vấn đề hồn thiện bộ
quy tắc chuyển đổi mơ hình và tích hợp chuyển đổi ràng buộc OCL cho mơ hình trình
bày và mơ hình xử lý.
Chương 2: Xây dựng bộ quy tắc chuyển đổi mơ hình trong UWE. Chương này trình
bày các quy tắc đã có của chuyển đổi sang mơ hình trình bày và mơ hình xử lý. Cơ sở
để đề xuất bổ sung một số quy tắc mới. Trình bày các bước xử lý để thực hiện cho mỗi
quy tắc và biễu đồ diễn tiến cài đặt mã nguồn tương ứng.
11
Chương 3: Tích hợp và chuyển đổi OCL. Chương này giới thiệu về phương pháp
tích hợp và chuyển đổi ràng buộc OCL, sau đó mơ tả chi tiết về các bước thực hiện và
cài đặt mã nguồn tương ứng cho ràng buộc trong mơ hình xử lý và trình bày.
Chương 4: Xây dựng cơng cụ MTO-Plugin. Chương này trình bày về kiến trúc và cơ
chế hoạt động của một plugin trong cơng MagicDraw. Sau đó áp dụng cơng cụ MTOPlugin vào bài tốn điển hình, so sánh và đánh giá với kết quả ban đầu và mơ hình hóa
bằng tay.
3. Các đóng góp khoa học của luận văn
Luận văn có những đóng góp mới như sau:
Thứ nhất: Xây dựng thêm được một số quy tắc mới, để hoàn thiện bộ quy tắc
chuyển đổi mơ hình, nhằm cải thiện kết quả chuyển đổi
Thứ hai: Đưa ra phương pháp tích hợp ràng buộc OCL vào mơ hình UWE, sau đó
chuyển đổi nhằm đồng bộ giữa các mơ hình, làm giàu thơng tin cho các mơ hình, cải
thiện kết quả trong q trình sinh mã.
Thứ ba: Xây dựng công cụ MTO-Plugin minh họa các kỹ thuật trên để thử nghiệm
và đánh giá.
12
Chƣơng 1: Tổng quan về kỹ thuật UWE và ngôn ngữ ràng buộc OCL
1.1. Kiến trúc hƣớng mơ hình
1.1.2. Giới thiệu
MDA là một hướng tiếp cận vấn đề MDE 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 [1,9,13]. MDA cung cấp một cách tiếp cận và cơng cụ nhằm mục đích [1]:
Xác định một hệ thống độc lập so với nền tảng.
Xác định các nền tảng của hệ thống.
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: UML, MOF, XML và
CWM [1,2,18]. 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. 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í. MDA 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, 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 dựa trên nền tảng chun biệt - PSM 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++ [1, 13].
1.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ỹ thuật MDWE đượ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ỹ thuật hướng mơ hình bao gồm 4 mức [1,2,14]:
Mơ hình CIM thể hiện mơ hình hóa các chức năng của hệ thống.
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ó.
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.
Mơ hình ISM cung cấp thông tin cần thiết để xây dựng hệ thống.
13
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 (xem Hình 1.1).
Hình 1.1. Cấu trúc MDA cho kỹ thuật Web [2,13]
Một số kỹ thuật Web hướng mơ hình điển hình:
OOHDMDA: OOHDM đượ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 3 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 [1,2]. OOHDMDA được phát triển dựa trên
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 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 [2]. W2000 bắt đầu bằng bước phân
tích yêu cầu dựa trên UseCase. 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
14
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ể [2,10, 13]. 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 (notation) riêng và không sử dụng meta-model tuân thủ MOF, mà sử dụng DTD
để 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 XSLT đượ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 [13].
UWE: UWE 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 [1, 2, 13]. 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 đã 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 [2,13]
1.2. 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 (domainspecific model) để mơ hình hóa. Những phần tử này và mối quan hệ được xác định bởi
15
một meta-model. Metamodel UWE được tách theo cấu trúc gói như trong hình 3.
Trong đó, gói Adaptivity có mục đích cho phép ngơn ngữ có thể mở rộng [6, 16]. 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 [6]
16
Bảng 2. Các thành phần UWE stereo type [6,16]
UWE metamodel đượ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. UWE metamodel định nghĩa một số
stereotype mở rộng cho UML dựa trên những đặc trưng riêng của các ứng dụng Web.
Mơ hình u cầu sẽ bao gồm 2 thành phần cơ bản đó là các Usecase và các biểu đồ
activity diagram tương ứng. Usecase 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 đồ Usercase mô tả các
yêu cầu đối với hệ thống, có nghĩa là những gì hệ thống phải làm chứ không phải mô tả
hệ thống làm như thế nào. Tập hợp tất cả Usecase 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.
Activity diagram 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ụ
17
trong hệ thống đã được mô tả sơ lược trong biểu đồ Usecase. 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 Usecase và
activity diagram được mơ tả trong Hình 1.3.
1.2.1. Mơ hình u cầu u cầu
Hình 1.3. UWE profile cho mơ hình u cầu [6,16]
1.2.2. Mơ hình nội dung
Mơ hình nội dung như 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ố nội dung để làm cho
mơ hình hố nội dung tương tự như mơ hình hóa các ứng dụng khơng phải là Web.
18
Hình 1.4. UWE profile cho mơ hình nội dung [6,16]
1.2.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 (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, menu và các index. Mơ
hình điều hướng của một ứng dụng Web như trong Hình 1.5, thể hiện cấu trúc thơng tin
tĩnh của 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.
1.2.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. Mơ hình xử lý 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ụ [6]: (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.
19
Hình 1.5. UWE profile cho mơ hình điều hướng [6, 16]
1.2.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 [13].
1.2.6. Mơ hình MVC và các thành phần tương ứng trong UWE
Mơ hình MVC là một kiến trúc phần mềm hay mơ hình thiết kế được sử dụng trong
kỹ thuật phần mềm. Nó giúp cho người phát triển tách ứng dụng của 3 thành phần khác
nhau Model, View và Controller. Mỗi thành phần có một nhiệm vụ riêng biệt và độc
lập với các thành phần khác. Giúp phát triển các ứng dụng nói chung và ứng dụng Web
nói riêng nhanh chóng, hiệu quả, dễ dàng nâng cấp hay bảo trì. Q trình xử lý dữ liệu
trong mơ hình MVC được mơ tả trong Hình 1.8 [13].
20
Hình 1.6. UWE profile cho mơ hình xử lý [6, 16]
21
Hình 1.7. UWE profile cho mơ hình trình bày [6,16]
Hình 1.8. Mơ hình MVC trong Web [12]
Nhiệm vụ của các thành phần như sau [12]:
Model: Có nhiệm vụ thao tác với cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các hàm,
các phương thức truy vấn trực tiếp với dữ liệu. Controller sẽ thông qua các hàm,
phương thức đó để lấy dữ liệu rồi gửi qua view.
View: Có nhiệm vụ tiếp nhận dữ liệu từ controller và hiển thị nội dung sang các
đoạn mã HTM, còn gọi là thành phần giao diện.
22
Controller: Đóng vài trị trung gian giữa model và view. Nó có nhiệm vụ tiếp nhận
yêu cầu từ client sau đó xử lý các yêu cầu đó, gọi các model tương ứng và gửi dữ liệu
qua view tương ứng rồi trả kết quả về cho client.
Các mơ hình trong UWE cũng tương ứng với các thành phần trong mơ hình MVC.
Mơ hình nội dung tương ứng với thành phần model. Mơ hình trình bày tương ứng với
thành phần view. Mơ hình điều hướng và mơ hình xử lý tương ứng với thành phần
controller [3,6].
Hình 1.9. Mối liên hệ giữa các mơ hình trong UWE với mơ hình MVC [3].
1.3. Ngơn ngữ ràng buộc OCL
1.3.1. Khái niệm OCL
Trong quá trình phát triển phần mềm người ta nhận ra rằng, chỉ với hệ thống ký hiệu
trực quan trong UML không thể hiện được hết các khía cạnh của hệ thống phần mềm.
Chính vì thế, OCL được xây dựng và phát triển với mục đích bổ sung cho các đặc tả
23
UML trở nên rõ ràng và chính xác hơn. Và OCL trở thành chuẩn ngôn ngữ đặc tả cho
các biểu đồ trong UML trong thực tế [8,10,11]
Khi một biểu thức OCL được đánh giá, nó chỉ đơn giản là trả về một giá trị. Nó
khơng thể thay đổi bất cứ điều gì trong mơ hình. Điều này có nghĩa là trạng thái của hệ
thống sẽ không bao giờ thay đổi vì sự đánh giá của một biểu thức OCL, mặc dù một
biểu OCL có thể được sử dụng để xác định một sự thay đổi trạng thái. OCL có thể
được sử dụng vào nhiều mục đích khác nhau: Như ngơn ngữ truy vấn; Để chỉ định bất
biến cho lớp và kiểu trong mơ hình lớp; Để xác định loại bất biến cho khuôn mẫu; Để
mô tả trước và sau điều kiện về hoạt động và phương pháp; Để mô tả Guards; Để xác
định mục tiêu (tập hợp) cho các thông điệp và hành động; Để xác định những ràng
buộc về hoạt động; Để xác định quy định dẫn xuất cho các thuộc tính cho bất kỳ biểu
hiện qua một mơ hình UML
1.3.2. Cú pháp OCL
Khai báo ngữ cảnh: OCL là một ngơn ngữ hình thức, chúng được biểu diễn dưới
dạng biểu thức. Biểu thức OCL dùng để đặc tả cho UML luôn luôn phải gắn liền với
một đối tượng trong mơ hình UML. Do vậy trước khi tiến hành biểu diễn biểu thức
OCL chúng ta phải khai báo ngữ cảnh mà biểu thức OCL tham gia. Cú pháp khai báo
một ngữ cảnh: Khai báo một ngữ cảnh bắt đầu bằng từ khóa context và tiếp đến là tên
ngữ cảnh. Ví dụ khai báo ngữ cảnh có tên là Person: context Person từ khóa seft biểu
thức OCL ln được đặt trong một ngữ cảnh cụ thể, và để chỉ ra thể hiện của đối tượng
trong ngữ cảnh đó chúng ta sử dụng từ khóa seft.
Khai báo một bất biến – invariant: Một ràng buộc bất biến là một ràng buộc được
liên kết tới một lớp cụ thể trong một ngữ cảnh cụ thể. Mục đích của một ràng buộc bất
biến là chỉ rõ sự bất biến tại một khía cạnh nào đó của lớp. Một ràng buộc bất biến
chứa một biểu thức OCL. Biểu thức này phải đúng cho mọi thể hiện của phân loại lớp
tại mọi thời điểm. Chỉ khi một thể hiện thực thi một phép tốn thì khơng cần đánh giá
biểu thức này là đúng. Cú pháp khai báo một bất biến: Khai báo một bất biến bắt đầu
với từ khóa inv, tiếp đến là tên của bất biến.
Ví dụ: context Company --khai báo ngữ cảnh có tên là Company
inv: seft. numberOfEmployees > 50 --Khai báo một bất biến.
Ý nghĩa: Mọi thể hiện của đối tượng Company phải thỏa mãn ràng buộc
numberOfEmployees > 50 tại mọi thời điểm. Từ khóa seft tham chiếu tới thể hiện của
24
đối tượng Company, sử dụng toán tử “.” để chỉ tới thuộc tính numberOfEmployees của
đối tượng Company.
Tiền điều kiện và hậu điều kiện: Tiền điều kiện và hậu điều kiện là các ràng buộc
liên kết tới phương thức của một phân loại lớp. Mục đích của tiền điều kiện là chỉ rõ
điều kiện phải có trước khi phương thức thực thi. Tiền điều kiện chứa một biểu thức
OCL (trả về kết quả Boolean). Biểu thức OCL này phải được đánh giá là đúng bất cứ
khi nào phương thức bắt đầu thực thi, nhưng việc đánh giá này chỉ áp dụng cho thể
hiện thực thi phương thức. Mục đích của hậu điều kiện là chỉ rõ điều kiện phải có sau
khi thực thi phương thức. Hậu điều kiện cũng được biểu diễn bằng một biểu thức OCL
(trả về kết quả Boolean). Việc đánh giá biểu thức OCL tại thời điểm kết thúc thực thi
phương thức. Bên trong ràng buộc tiền điều kiện khơng sử dụng tốn tử @pre nhưng
bên trong ràng buộc hậu điều kiện có thể sử dụng @pre để tham chiếu tới giá trị của
tiền điều kiện.
Cú pháp: context Typename::operationName(para1 : Type1, para2 : Type2,...)
Trong đó pre: --Khai báo các tiền điều kiện
post: --Khai báo các hậu điều kiện
hoặc: context Typename :: operationName(para1 : Type1, para2 : Type2,...)
pre preconditionName: --Khai báo tiền điều kiện
Ví dụ: post postconditionName: --Khai báo hậu điều kiện
context Job::increase( perCent : Integer )
pre: percent>0 và <=100
post: salary=salary@pre*(1+perCent/100) – hậu điều kiện giá trị salary
1.4. Vấn đề về xây dựng các bộ quy tắc chuyển đổi mơ hình và ràng buộc OCL và
nhiệm vụ trong luận văn
Kỹ thuật UWE mang lại những ưu điểm cho phát triển ứng dụng Web. Các mơ hình
u cầu, điều hướng, trình bày, xử lý giúp mơ hình 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ý. Người phát triển sẽ phân tích yêu cầu, sau đó
mơ hình hóa các mơ hình trong UWE một cách đầy đủ và chi tiết, 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 [7].
Với cách tiếp cận này sẽ mang lại hiệu quả khắc phục được sự phụ thuộc vào nền
tảng công nghệ của các ứng dụng Web, tuy nhiên việc phải mô tả đầy đủ và chi tiết tất
25