Luận văn này được thực hiện nhằm mục đích nghiên cứu về kiến trúc hướng mô hình, phương pháp chuyển đổi mô hình, phương pháp tiếp cận theo kiến trúc hướng mô hình đặc biệt là phương pháp
Trang 1MỤC LỤC
LỜI CAM ĐOAN 5
LỜI CẢM ƠN 6
DAN MỤC CÁC TỪ VIẾT TẮT 7
DAN MỤC ÌN VẼ 9
DAN MỤC CÁC BẢNG 12
MỞ ĐẦU 13
C ƢƠNG 1 KỸ T UẬT P ÁT TRIỂN ỨNG DỤNG WEB ƢỚNG MÔ ÌN 15
1.1 GIỚI THIỆU 15 1.2 MÔ HÌNH HÓA ỨNG DỤNG WEB[2] 15 1.2.1 Các cấp độ 15
1.2.2 Các giai đoạn 17
1.2.3 Các khía cạnh(Aspects): 18
1.2.4 Tùy biến(Customization): 18
1.3 NGÔN NGỮ MÔ HÌNH HÓA THỐNG NHẤT (UML) 19 1.3.1 Lịch sử UML 19
1.3.2 Ưu điểm của UML 20
1.4 CÁC KỸ THUẬT WEB ƢỚNG MÔ HÌNH 20 1.4.1 Kỹ thuật Web dựa trên (UWE) 20
1.4.2 WebML (Ngôn ngữ mô hình hóa Web) 23
1.4.3 Một số phương pháp kỹ thuật web khác 25
1.4.4 So sánh và phân tích các kỹ thuật web hướng mô hình[49] 28
Trang 2C ƢƠNG 2 KỸ T UẬT BIẾN ĐỔI MÔ ÌN TRONG XÂY DỰNG P ẦN
MỀM ƢỚNG MÔ ÌN 33
2.1 CÁC MỨC MDA 33 2.1.1 Mô hình Độc lập Tính toán (CIM-Computation Independent Mode) 34
2.1.2 Mô hình Độc lập Nền tảng (PIM-Platform Independent Model) 35
2.1.3 Mô hình Phụ thuộc Nền tảng (PSM-Platform Specific Model) 35
2.2 TỔNG QUÁT VỀ CHUYỂN ĐỔI MÔ HÌNH TRONG MDA 36 2.3 TRUY VẤN, CÁC KHUNG NHÌN VÀ CÁC PHÉP CHUYỂN ĐỔI (QUERY, VIEWS, TRANSFORMATIONS) 37 2.4 PHÂN LOẠI NGÔN NGỮ QVT 40 2.4.1 Các Đặc tính của các Phép chuyển đổi Mô hình 40
2.4.2 Các Quy tắc Chuyển đổi 41
2.4.3 Phạm vi áp dụng quy tắc 42
2.4.4 Mối quan hệ giữa các mô hình nguồn và đích 43
2.2.5 Chiến lược áp dụng quy tắc 44
2.4.6 Điều phối Quy tắc 45
2.4.7 Tổ chức Quy tắc 46
2.4.8 Tính khả truy vết 47
2.4.9 Hướng tính 48
2.5 QUY TRÌNH UWE VÀ CÁC MÔ HÌNH 48 2.5.1 Tổng quan Quy trình 49
2.5.2 Các mô hình trong UWE (Phụ lục B.1) 50
2.6 CÁC PHÉP BIẾN ĐỔI MÔ HÌNH TRONG UWE 51 2.6.1 Xây dựng các Mô hình Thiết kế 51
2.6.2 Tạo một Mô hình được Tích hợp 57
2.7 UWE TRONG VIỆC THIẾT KẾ WEB ƢỚNG MÔ HÌNH (PHỤ LỤC
Trang 32.7.1 Lõi xử lý UWE (UWE core process) 60
2.7.2 UWE Metamodel – Mô hình của mô hình UWE 62
2.7.3 Mô hình sang siêu mô hình trong UWE 63
2.8 KẾT LUẬN 65 C ƢƠNG 3 ÁP DỤNG XÂY DỰNG ỨNG DỤNG WEB 67
3.1 GIỚI THIỆU VỀ ỨNG DỤNG NICE-LINK 67 3.1.1 Các chức năng chung của ứng dụng 67
3.1.2 Các tính năng 68
3.2 PHÂN TÍCH YÊU CẦU 68 3.2.1 Biểu đồ Use Case của ứng dụng Nice-Link (Use Case Diagram) 69
3.2.2 Biểu đồ hoạt động (Activity Diagram) 72
3.2.2 Mô hình nội dung (Content) 73
3.2.3 Mô hình điều hướng (Navigation) 75
3.2.4 Mô hình xử lý (Process) 76
3.2.5 Mô hình biểu diễn (Presentation) 78
KẾT LUẬN 82
TÀI LIỆU T AM K ẢO 84
PHỤ LỤC A 89
A.1 CÁC MÔ HÌNH CỦA CẢ HỆ THỐNG 89 A.1.1 Biểu đồ Use Case 89
A.1.2 Biểu đồ Activity 92
A.2 GIAO DIỆN ỨNG DỤNG 100 A.2.1 Giao diện trang chủ 100
A2.2 Đăng nhập 101
A.2.3 Đăng ký 102
A.2.4 Trang cá nhân 103
Trang 4A.2.5 Trang search cho người dùng đã LOG-IN 103
A.2.6 Gửi tin nhắn cho người dùng khác 104
A.2.7 Nhận tin nhắn 104
P Ụ LỤC B 105
B.1 CÁC MÔ HÌNH TRONG UWE 105 B1.1 Mô hình các Yêu cầu 105
B.1.2 Các Mô hình Thiết kế 106
B.1.3 Các Mô hình Kiến trúc và Mô hình Cài đặt 110
B.2 Cách sử dụng UWE để thiết kế ứng dụng web 110 B.2.1 Môi trường thực thi (Runtime Environment) 113
B.2.2 Content và Navigation 114
B.2.3 Process 116
B.2.4 Presentation 119
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi, được thực hiện
dưới sự hướng dẫn khoa học của PGS.TS Huỳnh Quyết Thắng
Nội dung nghiên cứu và kết quả nêu trong luận văn là hoàn toàn trung thực, được tôi tổng hợp, bổ sung và biên soạn theo sự hiểu biết của mình sau khi nghiên cứu được từ các tài liệu tham khảo như sách, bài báo khoa học, luận văn, và dữ liệu từ các trang Web uy tín
Tác giả luận văn xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Tác giả luận văn xin chịu trách nhiệm về nghiên cứu của mình
Hà Nội, tháng , năm 2015
H c viên
(ký và ghi rõ họ tên)
Trang 6Em xin chân thành cảm ơn PGS.TS Huỳnh Quyết Thắng – người đã tận tâm
hướng dẫn cho em thực hiện luận văn Nếu không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ luận văn này của em rất khó có thể hoàn thiện được Một lần nữa,
em xin chân thành cảm ơn thầy
Cuối cùng em xin gửi lời biết ơn sâu sắc đến gia đình và bạn bè – những người
đã luôn bên cạnh giúp đỡ và tạo điều kiện tốt nhất cho tôi trong suốt quá trình học tập cũng như thực hiện luận văn
Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Quý Thầy/Cô và các bạn học viên
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT
OOES Object Oriented Software Engineering
OOHDM Object-Oriented Hypermedia Design Method
BPMN Business Process Model and Notation
Trang 8IS Information System
Trang 9DANH MỤC HÌNH VẼ
Hình 1.1 Mô hình ứng dụng web[2] 16
Hình 1.2: Phân tích và thiết kế của mô hình ứng dụng web 17
Hình 1.3 : Các mô hình xây dựng trong Quy trình Tổng quát của quá trình tiếp cận Kỹ thuật web dựa trên UML 22
Hình 2.1: Các mức trừu tượng cơ bản trong MDA [3] 34
Hình 2.2: Quy trình chuyển đổi MDA tổng quát 36
Hình 2.3: Sử dụng các siêu mô hình trong một định nghĩa chuyển đổi 38
Hình 2.4: Các đặc tính mức cao nhất của các phép chuyển đổi mô hình 40
Hình 2.5: Các đặc tính của các quy tắc chuyển đổi 41
Hình 2.6: Các đặc tính của việc định phạm vi áp dụng quy tắc 42
Hình 2.7: Các đặc tính của mối quan hệ giữa các mô hình nguồn và đích 43
Hình 2.8: Các đặc tính của chiến lược áp dụng quy tắc 44
Hình 2.9: Đặc điểm của điều phối quy tắc 45
Hình 2.10: Các đặc tính của việc tổ chức quy tắc 46
Hình 2.11: Các đặc tính của tính khả truy vết 47
Hình 2.12: Các đặc tính của hướng tính 48
Hình 2.13:Tổng quan Quy trình UWE 49
Hình 2.14: Biểu đồ Use Case dành cho cổng thông tin âm nhạc (CIM) 105
Hình 2.15: Biểu đồ hoạt động cho mô hình Use Case tải album trên cổng thông tin âm nhạc (giản lược) (CIM) 106
Hình 2.16: Mô hình nội dung và người dùng (PIM) 107
Hình 2.17: Mô hình điều hướng (PIM) 108
Hình 2.18: Quy trình nghiệp vụ Login (PIM) 108
Hình 2.19: Các trạng thái Home và Song của “bức tranh tổng thể” 109
Hình 2.20: Khuôn thức chuyển đổi mô hình dành cho các siêu mô hình WebRE và UWE 53
Trang 10Hình 2.21: Từ mô hình các yêu cầu thành mô hình nội dung 54
Hình 2.22: Các phép biến đổi để xây dựng mô hình điều hướng 55
Hình 2.23: Phép biến đổi Search2Query (ký pháp đồ họa QVT) 56
Hình 2.24: Các phép biến đổi để xây dựng mô hình biểu diễn 57
Hình 2.25: Các phép biến đổi để xây dựng mô hình “bức tranh tổng thể” 58
Hình 2.26: Ánh xạ nút điều hướng thành trạng thái trong “bức tranh tổng thể” (phép biến đổi biểu đồ) 59
Hình 2.27: Tích hợp các đặc điểm kiến trúc 60
Hình 2.28: Sinh ra các mô hình đặc trưng nền hệ thống 60
Hình 2.29: Lõi xử lý UWE để chuyển đổi CIM->PIM và PIM->PIM 61
Hình 2.30: biểu diễn metamodel UWE 62
Hình 2.31: Mô hình Content của hệ thống Quản lý dự án (đã được đơn giản hóa) 64
Hình 2.32: Một phần mô hình Navigation của hệ thống Quản lý dự án 64
Hình 2.33: Luồng xử lý cho RemoveProject 65
Hình 2.34: Mô hình giao diện của ProjectManager 65
Hình 2.35: Tổng quan về nền tảng kế thừa 112
Hình 2.36: Môi trường thời gian thực 114
Hình 2.37: Môi trường xử lý activity 118
Hình 2.38: JSP metamodel 120
Hình 3.1: Biểu đồ Use Case tổng quát 69
Hình 3.2: Biểu đồ Use Case của hệ thống 70
Hình 3.3: Biểu đồ Use Case của người dùng đã đăng ký và người dùng khách 71
Hình 3.4: Biểu đồ mô tả hoạt động chức năng người dùng mở chi tiết link 73
Hình 3.5: Biểu đồ lớp thể hiện mô hình nội dung 75
Hình 3.6:Biểu đồ lớp thể hiện mô hình điều hướng 76
Hình 3.7: Mô hình xử lý tổng quát 77
Hình 3.8: Biểu đồ hoạt động AddComment 78
Trang 11Hình 3.9: Mô hình giao diện tổng thể của một trang Web được thể hiện qua mô hình biểu diễn 80 Hình 3.10: Giao diện trang chủ của ứng dụng Nice-Link 81
Trang 12DANH MỤC CÁC BẢNG
Bảng 1.1: So sánh đặc điểm của các ngôn ngữ mô hình hóa trang web hiện tại 28 Bảng 1.2: Tóm tắt các yêu cầu phân tích phối cảnh kỹ thuật 29 Bảng 1.3: Tóm tắt các phân tích phối cảnh MDD 30 Bảng 2.1: Các đặc tính của các phép biến đổi mô hình trong quy trình phát triển hướng
mô hình UWE [51] 52 Bảng 3.1: Các khuôn mẫu và ký hiệu 72 Bảng 3.2: Khuôn mẫu và ký hiệu 79
Trang 13MỞ ĐẦU
Từ khi có sự bùng nổ về mạng thông tin Internet, ngành công nghiệp Công Nghệ Thông Tin phát triển ngày càng hiện đại và cho ra đời nhiều nền tảng mới Chi phí sẽ thấp hơn nếu ta có thể tiếp tục sử dụng lại những nền tảng đó, nhưng thực tế luôn đòi hỏi những công nghệ mới tốt hơn Có một điều rất dễ nhận thấy đó là mức độ trừu tượng, tính kế thừa của các ngôn ngữ, của các phương pháp đều phát triển theo hướng tăng dần Tại sao lại như vậy? Nguyên nhân chính, đơn giản đến từ những điều rất tự nhiên trong cuộc sống Đó là nhu cầu của con người
Để xây dựng những cơ sở hạ tầng phức tạp cho các doanh nghiệp, có hai vấn đề thực sự nhức nhối Thứ nhất, việc xây dựng ứng dụng phân tán là rất khó khăn Tốn rất nhiều nguồn nhân lực giàu kinh nghiệm Ngoài ra mất rất nhiều thời gian để xây dựng
và bảo trì ứng dụng Thứ hai, việc tích hợp nhiều ứng dụng với nhau để xử lí cùng một vấn đề thậm chí còn khó khăn hơn nhiều Trong môi trường Công Nghệ Thông Tin ngày nay luôn tích hợp ít nhất từ 2 chương trình được xây dựng trên các middleware khác nhau là rất phổ biến, yêu cầu một chuẩn giao tiêp chung giữa các đội xây dựng ứng dụng
Phương pháp phát triển phần mềm hướng mô hình (MDA: Model-Driven Architecture) do tổ chức OMG (Object Management Group) phát triển là một cách tiếp cận dùng các mô hình để phát triển phần mềm ứng dụng Ba mục tiêu cơ bản của MDA
là khả năng di động, tính xuyên chức năng và sự sử dụng lại thông qua việc tách rời các mối liên quan, ví dụ: mô hình độc lập với thao tác tính toán, (CIM - Computation Independent Model), mô hình độc lập với nền công nghệ (PIM - Platform Independent Model), mô hình cụ thể của nền công nghệ (PSM -Platform Specific Model), sự chuyển đổi mô hình và các mẫu của MDA v.v…
Trang 14Luận văn này được thực hiện nhằm mục đích nghiên cứu về kiến trúc hướng mô hình, phương pháp chuyển đổi mô hình, phương pháp tiếp cận theo kiến trúc hướng mô hình đặc biệt là phương pháp UWE trong công nghiệp phát triển phần mềm và minh họa việc áp dụng lý thuyết nghiên cứu nhằm mục đích thiết kế chi tiết một ứng dụng web chia sẻ link
Luận văn bao gồm 3 chương chính như sau
Chương 1: Kỹ thuật phát triển ứng dụng web hướng mô hình
Chương 2: Kỹ thuật biến đổi mô hình trong xây dựng phần mềm hướng mô hình
Chương 3: Áp dụng xây dựng ứng dụng Web
Trang 15C ƢƠNG 1 KỸ T UẬT P ÁT TRIỂN ỨNG DỤNG WEB
ƢỚNG MÔ ÌN 1.1 GIỚI THIỆU
Mô hình hóa web (phát triển web định hướng mô hình - MDWD) là một nhánh của xây dựng web, giúp giải quyết các vấn đề cụ thể liên quan tới thiết kế và phát triển các ứng dụng web trên quy mô lớn[1] Mô hình hóa web tập trung vào các hệ thống ký hiệu thiết kế và các ngôn ngữ thị giác mà có thể được sử dụng để xây dựng các ứng dụng web mạnh mẽ, có kết cấu rõ ràng, khả dụng và có khả năng duy trì được Việc thiết kế một trang web dữ liệu chuyên sâu cũng là để xác định các đặc điểm của web dưới dạng các khái niệm trừu tượng trực giao khác nhau
1.2 MÔ HÌNH HÓA ỨNG DỤNG WEB[2]
1.2.1 Các cấp độ
Bao gồm Thông tin, Cấu trúc nút/ liên kết, UI (giao diện người dùng) và sự phân
chia cách sắp đặt trang
Sự biểu diễn
- Cấu trúc: các yếu tố giao diện người dùng và thành phần của các yếu tố này
- Hành vi: phản ứng với các sự kiện đầu vào, tương tác và sự đồng bộ hóa giữa các yếu tố giao diện người dùng
Siêu văn bản
- Cấu trúc: các thành phần của trang và các mối quan hệ định hướng
- Hành vi: hành vi thời gian chạy (run-time) của siêu văn bản
Nội dung
- Cấu trúc: dữ liệu phụ thuộc vào domain
- Hành vi: logic ứng dụng phụ thuộc vào domain
Trang 16Hình 1.1 Mô hình ứng dụng web[2]
Levels: các cấp độ
Presentation: sự biểu diễn
Hypertext: siêu văn bản
Content: nội dung
Trang 171.2.2 Các giai đoạn
Phương pháp tiếp cận phụ thuộc vào loại ứng dụng
Dựa trên thông tin: các trang web lấy văn bản làm trung tâm, đây là các tập hợp
có phân thứ bậc của các văn bản HTML tĩnh (về cơ bản là các văn bản và hình ảnh thô)
mà đưa ra các thông tin chỉ được phép đọc (read-only) dựa trên một tập hợp các nội dung cụ thể, các mô hình điều hướng và các đặc điểm biểu diễn được thiết kế và lưu trữ một tiên nghiệm
Dựa trên sự biểu diễn: ứng dụng này đề cập đến các yếu tố trực quan bao gồm
cả các trang trong web
Dựa trên logic:
o Logic nghiệp vụ: Là những thay đổi trong các nền tảng cơ bản mà không ảnh hưởng tới các ứng dụng hiện có
o Logic ứng dụng: là logic nghiệp vụ có thể phát triển độc lập với công nghệ cơ bản
Phân tích và thiết kế của các dụng web [3]
Hình 1.2: Phân tích và thiết kế của mô hình ứng dụng web
Trang 18- Giai đoạn phân tích: đòi hỏi đặc điểm kỹ thuật của ứng dụng web
- Giai đoạn thiết kế: gồm sự biểu diễn phần mềm được thiết kế hoặc phụ thuộc
hoặc độc lập với công nghệ
- Giai đoạn thực hiện: gồm các mô hình khả thi và các mã khả thi được thiết kế ở
đây
1.2.3 Các khía cạnh(Aspects):
Theo các nguyên tắc hướng đối tượng, cấu trúc và hành vi được mô hình hóa ở mỗi một trong ba cấp độ, tức là ở nội dung, siêu văn bản và trình bày (content, hypertext and presentation) Sự liên quan của các mô hình cấu trúc và hành vi phụ thuộc vào loại ứng dụng Web được thực hiện Các ứng dụng Web có chứa thông tin tĩnh đòi hỏi ít mô hình hành vi hơn so với các ứng dụng web tương tác cao, chẳng hạn như ứng dụng thương mại điện tử cung cấp công cụ tìm kiếm, chức năng giỏ hàng online, vv Đối với vấn đề lập bản đồ các cấp độ khác nhau, nó được khuyến khích để
sử dụng một mô hình hình thức thống nhất cho các cấu trúc và hành vi, mà có thể cho phép dựa vào một công cụ CASE đơn Đương nhiên, mô hình này có hình thức để đối
phó với những đặc điểm cụ thể của mỗi một trong ba cấp độ
1.2.4 Tùy biến(Customization):
Các phương thức thông tin ngữ cảnh đã được thông qua hay các web không phải là mới, chúng bắt nguồn từ SW truyền thống Nhưng câu hỏi đặt ra là tại sao lại là các siêu liên kết? Tại sao lại thêm một layer mới? Tương ứng với tình trạng của các ứng dụng web và cải thiện việc tái sử dụng nội dung, có thể nói rằng nội dung được hiển thị trong ứng dụng web tương đương với cấu trúc thông tin Trong ứng dụng web, một vài trang truy cập cùng một nội dung Nếu bạn mô hình hóa ứng dụng web thì bạn có thể tái sử dụng nó
Trang 19Nói tóm lại, mô hình hóa là một kỹ thuật được sử dụng trong phân tích và thiết kế
Kỹ thuật này sử dụng ký hiệu (cú pháp) (biểu diễn và ngôn ngữ đồ họa), quá trình để xây dựng các mô hình (các quy tắc và hướng dẫn) và sử dụng các phần mềm chỉnh sửa
đồ họa Phân tích và thiết kế trong mô hình hóa được định hướng theo đối tượng
Phân tích: Tìm và phát hiện các lớp của các đối tượng/các khái niệm trong 1 domain
Thiết kế: Xác định các đối tượng phần mềm và cách thức chúng tương tác để thực hiện các yêu cầu
1.3 NGÔN NGỮ MÔ HÌNH HÓA THỐNG NHẤT (UML)
Ngôn ngữ mô hình hóa thống nhất (UML) là ngôn ngữ mô hình hóa trực quan chung được sử dụng để xác định, hình dung, sửa đổi, xây dựng và cung cấp các kỹ thuật (phát triển phần mềm) của một hệ thống phần mềm [4] UML được chấp nhận rộng rãi bởi ngành cũng như các học viện để phát triển hệ thống phần mềm [5]
1.3.1 Lịch sử UML
UML được phát triển để đơn giản hóa số lượng lớn các phương pháp phát triển hướng đối tượng Trước UML, có rất nhiều mô hình hóa hướng đối tượng, nhưng nhiều người sử dụng các phương pháp này gặp trở ngại trong việc tìm một ngôn ngữ mô hình hóa có thể đáp ứng hoàn toàn nhu cầu của họ [6] Trong những năm 1990, đã có OOES (Kỹ Thuật Phần Mềm Hướng Đối Tượng) của Jacobson, Booch, và OMT (Kỹ thuật Mô hình hóa Đối tượng ) của Rambaugh Mỗi loại đều có những điểm mạnh và điểm yếu riêng Năm 1994, Rambaugh đã liên kết với Booch tại công ty Rational Software Họ kết hợp các khái niệm từ các phương pháp OMT và những phương pháp của Booch và lần đầu tiên đưa ra đề xuất UML vào năm 1995 Jacobson cũng gia nhập Rational và bắt đầu hợp tác với Booch và Rumbagh Tác phẩm chung của họ chính là Ngôn Ngữ
Mô Hình Hóa Thống Nhất (UML) Vào năm 1996 họ gia nhập Tập đoàn Object
Trang 20Management (OMG) và làm việc cho họ UML đã được nhất trí thông qua của các thành viên của OMG và được coi là ngôn ngữ mô hình hóa tiêu chuẩn vào tháng 11 năm 1997 OMG đã yêu cầu đề xuất nâng cấp UML để khắc phục những vấn đề UML gặp khó khăn Năm 2003, phiên bản lớn của UML, phiên bản 2.0 đã được đề xuất và cuối cùng chấp nhận bởi OMG trong năm 2005 [7]
1.3.2 Ƣu điểm của UML
UML có một số lợi thế [8]:
1 UML có một cấu trúc tốt và những quy định rõ ràng
2 Với UML có thể điều chỉnh phù hợp với hầu như bất kỳ loại hệ thống
3 Đó là một ngôn ngữ chính thức [9]
4 Súc tích
5 Toàn diện
6 Khả năng mở rộng
7 Là một Ngôn ngữ tiêu chuẩn
1.4 CÁC KỸ THUẬT WEB ƢỚNG MÔ HÌNH
1.4.1 Kỹ thuật Web dựa trên (UWE)
1.4.1.1 Giới thiệu về UWE
UWE xác định một quá trình phát triển có hệ thống mà có thể được thực hiện bán
tự động Các công cụ hỗ trợ được đảm bảo bởi các môi trường phát triển mô hình UWE mở Nó bao gồm việc thực hiện tại hai công cụ CASE: ArgoUWE để hỗ trợ cho việc thiết kế và UWE XML để tạo ra các ứng dụng web [10]
Trang 21UWE sử dụng các tiêu chuẩn bao gồm các Phát triển phần mềm hướng mô hình (MDD) MDD dựa trên những mô hình giống như các phương pháp phát triển phần mềm khác, nhưng đưa ra một mức trừu tượng cao hơn bởi xác dịnh metamodels và quy tắc chuyển đổi mô hình Việc thực hiện MDD nổi tiếng nhất là các Kiến Trúc Hướng
Mô Hình (MDA) của công ty Object (OMG) Quá trình phát triển của UWE được dựa trên MDA cũng như các tiêu chuẩn OMG khác, ví dụ như ngôn ngữ mô hình thống nhất (UML), XML Siêu dữ liệu trao đổi (XMI) Meta Object Facility (MOF), Object Constraint Language (OCL) và các tiêu chuẩn ngôn ngữ chuyển đổi sắp tới QVT [11]
1.4.1.2 Phương pháp tiếp cận UWE
Cách tiếp cận UWE bao gồm một UML profile cho các hệ thống mô hình web, một quá trình và công cụ hỗ trợ cho các hệ thống phát triển web Quá trình UWE là một quá trình phát triển hướng mô hình sau nguyên tắc MDA (Kiến Trúc Hướng Mô Hình) sử dụng các tiêu chuẩn OMG Nó bao gồm tập hợp các mô hình và chuyển đổi
mô hình, đặc biệt được hỗ trợ bởi metamodels và ngôn ngữ chuyển đổi mô hình Mô hình UWE được đại diện bằng các biểu đồ UML Để mô hình hóa các tính năng cụ thể của miền Web, chẳng hạn như các nút điều hướng và các trang Web, UWE cung cấp một UML profile chuyên biệt miền, được định nghĩa bằng cách sử dụng cơ chế mở rộng cung cấp bởi UML: khuôn mẫu và các hạn chế OCL [11]
Quá trình mô hình hóa được đề xuất bởi UWE bao gồm bởi bốn bước [12]:
• Phân tích Yêu cầu với các trường hợp sử dụng
• Thiết kế Khái Niệm
• Thiết kế Điều Hướng
• Thiết kế Trình bày
Trang 22Yêu cầu phân tích với các trường hợp Sử dụng - Nó tạo ra mẫu trường hợp sử
dụng mô hình mà không trình bày bởi bất kỳ phần mở rộng nào cho các phần tử mô hình trong UML thông thường
Thiết kế Khái niệm – Nó cung cấp mô hình khái niệm của miền ứng dụng bằng
cách sử dụng UML mà không có bất kỳ khuôn mẫu mới nào
Thiết kế Điều ướng – Nó cung cấp mô hình chuyển hướng không gian và mô
hình cấu trúc chuyển hướng
Thiết kế Trình bày - Nó cung cấp các mô hình hiển thị tĩnh và mô hình hiển thị
động
Hình 1.3 : Các mô hình xây dựng trong Quy trình Tổng quát của quá trình tiếp
cận Kỹ thuật web dựa trên UML Những Đặc điểm của Quy trình UWE [13]
1 Đặc điểm chính của quá trình UWE là có hệ thống, bán tự động, dựa theo mô hình và chuyển đổi dựa trên hỗ trợ của sự phát triển của các hệ thống web
Mô hình Trường hợp sử dụng
Mô hình khái
niệm
Mô hình điều hướng
Mô hình trình bày
<<Dấu
hiệu>>
<<Dấu hiệu>>
<<Dấu hiệu>>
Trang 232 UWE cung cấp công cụ hỗ trợ cho việc thiết kế các mô hình, kiểm tra sự nhất quán của mô hình, và thế hệ bán tự động của các hệ thống Web ArgoUWE (ArgoUML) và MagicUWE (MagicDraw) là những công cụ hỗ trợ các ký hiệu của UWE profile và những chuyển đổi để hỗ trợ công việc của người thiết kế
1.4.2 WebML (Ngôn ngữ mô hình hóa Web)
Để đáp ứng các vấn đề bảo dưỡng trong phát triển ứng dụng web, dự án W313 (tài trợ bởi Cộng đồng châu Âu theo Chương trình Khung lần thứ tư) đã đưa ra một ngôn ngữ mô hình hóa Web mới, được gọi là WebML [14] WebML là một ký hiệu có tính trực quan cho việc thiết kế các ứng dụng Web dữ liệu chuyên sâu phức tạp Nó cung cấp đồ họa, thông số kỹ thuật, thể hiện trong một quá trình thiết kế hoàn chỉnh, có thể được hỗ trợ bởi các công cụ thiết kế trực quan, như WebRatio
Phương pháp này có năm mô hình: cấu trúc, nguồn gốc, thành phần, điều hướng và trình bày Những mô hình này được phát triển trong một quá trình lặp đi lặp lại
Các đặc điểm kỹ thuật của một trang web trong WebML bao gồm bốn hệ thống trực giao [15]:
1.4.2.1 Mô hình cấu trúc:
Thể hiện nội dung dữ liệu của trang web, về những thực thể và mối quan hệ có liên quan WebML vẫn chưa đề xuất ngôn ngữ khác cho mô hình hóa dữ liệu, tuy nhiên lại tương thích với những ký hiệu cổ như mô hình E/R, Mô hình hướng đối tượng ODMG
và các biểu đồ lớp UML
1.4.2.2 Mô hình Hypertext:
Nó mô tả một hoặc nhiều siêu văn bản mà có thể được công bố trong trang web Mỗi siêu văn bản dẫn tới một trang web Mô tả trang web bao gồm 2 mô hình nhỏ
Trang 24 Mô hình tổng hợp bao gồm một tập hợp các trang; mỗi trang có một hoặc một
tập hợp các đơn vị nội dung tạo nên trang Có sáu loại của các đơn vị dữ liệu [16]:
Mô hình điều hướng: Nó thể hiện các trang và các đơn vị nội dung được liên
kết để hình thành các siêu văn bản như thế nào Các liên kết là phi ngữ cảnh, khi chúng kết nối các trang ngữ nghĩa độc lập (ví dụ, các trang của một nghệ sĩ đến trang chủ của trang web), hoặc theo ngữ cảnh, khi nội dung của các đơn vị điểm đến của các liên kết phụ thuộc vào nội dung của nguồn đơn vị
1.4.2.3 Mô hình trình bày:
Nó thể hiện cách bố trí và giao diện đồ họa của các trang, một cách độc lập Nó cũng trình bày chi tiết kỹ thuật hiển thị Thông số kỹ thuật hiển thị là trang cụ thể hoặc chung chung
1.4.2.4 Mô hình Cá nhân hóa:
Người dùng và nhóm người dùng được mô hình hóa một cách rõ ràng trong lược
đồ cấu trúc trong các hình thức của các thực thể được xác định trước gọi là Người dùng (User) và Nhóm (Group) Các tính năng của những thực thể này có thể được sử dụng
Trang 25để lưu trữ nội dung các nhóm cụ thể hoặc cá nhân, như lời đề nghị mua sắm, danh sách yêu thích, và các nguồn để tùy biến đồ họa
1.4.2.5 Ưu điểm của WebML [16]
- Nó dễ hiểu và dễ thực hiện
- Nó cung cấp mô hình siêu văn bản trong đó mô tả cách thức ứng dụng web được cấu trúc và thiết kế tốt hơn so với bất kỳ mô hình nào mà UML cung cấp
- Nó bao gồm bốn mô hình, còn UML có một số lượng lớn các mô hình
- Nó được phát triển đặc biệt là cho các ứng dụng mô hình hóa web; còn UML được áp dụng trong phạm vi ứng dụng rộng hơn
- Nó có hỗ trợ cho cả hai mô hình hóa thiết kế ứng dụng web và các hình thức html
1.4.3 Một số phương pháp kỹ thuật web khác
1.4.3.1 Phương pháp thiết kế cho các dạng ứng dụng siêu truyền thống (OOHDM)
Các Mô hình thiết kế cho các dạng ứng dụng siêu truyền thống (Hypermedia) hướng đối tượng (OOHDM) [17-20] là một cách tiếp cận nhấn mạnh sự tách biệt thiết
kế điều hướng và thiết kế giao diện trừu tượng Như tất cả các đề xuất mô hình hóa hướng đối tượng, nó thúc đẩy phát triển các ứng dụng mới nhờ tái sử dụng các thành phần hiện có OOHDM là một quy trình bốn bước Bước đầu tiên là phân tích miền, trong đó, xây dựng một mô hình khái niệm ứng dụng Bước thứ hai bao gồm một thiết
kế điều hướng mô tả cấu trúc chuyển hướng của một ứng dụng hypermedia về những bối cảnh điều hướng Những bối cảnh được suy ra từ các lớp định hướng như các nút, các đường dẫn, và hướng dẫn di chuyển Các nút đại diện cho cái nhìn logic của các lớp khái niệm, và các đường dẫn được bắt nguồn từ các mối quan hệ khái niệm Thiết
kế giao diện ở mức trừu tượng là bước thứ ba và đề xuất việc xây dựng các đối tượng cảm nhận được, chẳng hạn như một hình ảnh hoặc một bản đồ, xét về mặt các lớp giao
Trang 26diện Những đối tượng cảm nhận được sắp xếp tới các đối tượng điều hướng để cung cấp cho những đối tượng cuối cùng xuất hiện cảm quan Trong bước thứ tư, các đối tượng giao diện được dẫn tới tới các đối tượng thực hiện liên quan đến thông số kỹ thuật kiến trúc
1.4.3.2 Phương pháp thiết kế trang web (WSDM)
Phương pháp thiết kế trang web (WSDM) là cách tiếp cận người dùng làm trung tâm nơi mà điểm bắt đầu trong phân tích là tập hợp các tiềm năng sử dụng ứng dụng Web Nó bao gồm bốn giai đoạn: (1) Mô hình hóa người sử dụng, (2) thiết kế khái niệm, (3) thiết kế hiện thực hóa, và (4) hiện thực hóa thực tế Giai đoạn (1) phân loại người dùng trong chức năng của các đối tượng Web bằng cách nhìn vào tổ chức hoặc các quá trình mà trang web được xây dựng Các lớp người sử dụng được xác định căn
cứ trên một phần nhỏ của tất cả các người dùng tiềm năng tương tự về các yêu cầu thông tin của họ Tiếp theo, các lớp người dùng được phân tích tập trung vào những yêu cầu thông tin (cái gì trình bày) và các đặc điểm của đối tượng hướng tới Nếu những người sử dụng có những đặc điểm khác nhau trong cùng một lớp người sử dụng, thì nó sẽ được chia thành các quan điểm thể hiện những yêu cầu khả năng sử dụng khác nhau Giai đoạn (2) dự kiến sẽ chính thức mô hình hóa những yêu cầu thông tin được thể hiện trong mô tả lớp người sử dụng bằng cách xây dựng những mô hình khái niệm cho các lớp người sử dụng khác nhau Trong một giai đoạn được gọi là thiết kế định hướng, một mô hình khái niệm chuyển hướng – một số đường chuyển hướng - được xây dựng Đường chuyển hướng được mô tả xét về mặt thành phần và các liên kết thể hiện phương thức quan điểm cụ thể của những người sử dụng có thể điều hướng thông qua thông tin có sẵn Ba loại thành phần được mô tả: Thành phần thông tin với các thông tin tương ứng với một quan điểm cụ thể; thành phần điều hướng bao gồm một nhóm các liên kết; và một thành phần bên ngoài là một tham chiếu đến một thành phần trong một trang web khác Trong giai đoạn (3) cái nhìn và cảm nhận trang Web
Trang 27được thiết kế với mục tiêu tạo ra cái nhìn và cảm nhận nhất quán, hài hòa, và hiệu quả cho thiết kế khái niệm được thực hiện trong các giai đoạn trước Để đạt được mô hình hiện thực hóa, WSDM đề xuất một số hướng dẫn nổi tiếng như được mô tả trong [21] Giai đoạn cuối cùng là thực hiện thực tế các trang Web theo thiết kế được thực hiện trong các giai đoạn trước Để lưu trữ thông tin liên quan đến trang web, các tác giả đã
đề xuất sử dụng những kỹ thuật cho cơ sở dữ liệu sao lưu trong trang web theo như mô
tả trong [22]
1.4.3.3 Kỹ thuật siêu phương tiện hướng đối tượng (OO-H)
Phương pháp Hypermedia hướng đối tượng (OO-H) [23,24] là một mô hình chung, được tích hợp vào Phương pháp OO-Method [25,26], cho các cấu trúc ngữ nghĩa của các giao diện web Nó xác định mô hình tương tác trừu tượng của giao diện người dùng, thông tin mà mỗi loại người dùng đều có thể truy cập, và những đường dẫn điều hướng từ một cái nhìn thông tin này sang cái nhìn thông tin khác
Bời Phương thức OO có được tính chất tĩnh học của hệ thống, OO-H xử lý được đặc thù liên quan đến việc thiết kế giao diện web bằng cách thêm một số cấu trúc cho thiết kế định hướng và thiết kế giao diện cho các mô hình khái niệm Phương pháp OO-
H cung cấp một mô hình thực hiện giao diện để xác định cách thức thực hiện các mô hình khái niệm trong một môi trường phát triển nhất định
Trong OO-H, mô hình định hướng được biểu diễn bằng một Biểu Đồ Định Hướng Truy Cập (NAD) NAD đang được xây dựng bắt đầu từ việc lọc và làm giàu thông tin được cung cấp bởi sơ đồ lớp được giữ trong giai đoạn mô hình hóa khái niệm của phương pháp OO Bởi mỗi kiểu người dùng có một cái nhìn hệ thống khác nhau và
có thể kích hoạt các dịch vụ khác nhau, mỗi dịch vụ cần NAD tương ứng
Các thành phần chính của NAD là các lớp định hướng, các mục tiêu định hướng, các đường dẫn định hướng, và các bộ sưu tập
Trang 28Các lớp định hướng, mà dựa trên các lớp được xác định trong trong giai đoạn
mô hình khái niệm, bao gồm các thuộc tính liên quan đến người sử dụng và lượt xem
đã xem xét, và các dịch vụ có khả năng được gọi bởi người sử dụng thực tế của NAD Một mục tiêu chuyển hướng là một tập hợp các lớp định hướng cung cấp cho người dùng một cái nhìn thống nhất của hệ thống OO-H căn cứ mục tiêu chuyển hướng theo yêu cầu của người sử dụng, thay cho những hiển thị vật lý của thông tin Liên kết điều hướng được xác định bởi một cái tên, một lớp nguồn chuyển hướng, một lớp chuyển hướng mục tiêu, mô hình chuyển hướng liên kết, và các bộ lọc chuyển hướng liên kết
Mô hình Chuyển hướng [27] là một cơ chế cho một giao diện người dùng web chia sẻ kiến thức của mình về cách hiển thị các thông tin đối tượng cho người dùng Bộ lọc Định hướng hạn chế các lệnh, số lượng, chất lượng của các đối tượng mục tiêu Bộ sưu tập là các cấu trúc, với một tập hợp các bộ lọc và một tập các mô hình chuyển hướng liên kết, trong đó tóm lược một số khái niệm liên quan đến các định hướng cả bên ngoài và bên trong, và hạn chế tốt các tùy chọn tương tác giữa người sử dụng và các ứng dụng
Về mô hình thực thi cho một môi trường phát triển mục tiêu, OO-H tập trung vào việc xác định phương thức để thực hiện các thông tin giao diện liên quan đến môi trường web, bởi Phương thức OO đã có một chiến lược thực thi xác định
1.4.4 So sánh và phân tích các kỹ thuật web hướng mô hình[49]
1.4.4.1 So sánh các ngôn ngữ mô hình hóa trang web hiện nay
Bảng 1.1 So sánh đặc điểm của các ngôn ngữ mô hình hóa trang web hiện tại
Kiểm soát trình duyệt Kém - -
Trang 29Vòng đời Kém Tốt -
Sự độc lập của nền tảng Rất tốt Rất tốt Tốt
Siêu mô hình Kém Rất tốt -
Xác nhận mô hình Được Được -
1.4.4.2 Tóm tắt các yêu cầu phân tích phối cảnh kỹ thuật
Bảng 1.2: Tóm tắt các yêu cầu phân tích phối cảnh kỹ thuật
Phương thức Yêu cầu chức năng Yêu cầu dữ liệu Yêu cầu điều
Trang 30tự nhiên ngữ tự nhiên
UWE Quá trình web use
case, hình minh họa hoạt động rập khuôn, use case
case, hình minh họa hoạt động rập khuôn
dùng, hình minh họa hoạt động, use case
Từ điển dữ liệu Các mẫu kỹ thuật
của trang web
yêu cầu web RMExt)
(WE-1.4.4.3 Tóm tắt các phân tích phối cảnh MDD
Bảng 1.3: Tóm tắt các phân tích phối cảnh MDD Phương thức Đồng bộ hóa trực
quan và siêu mô hình
Yêu cầu công cụ
kỹ thuật
Nguồn gốc của các
mô hình khái niệm
xác định bằng: các hướng dẫn văn bản: được áp dụng bằng tay (không dùng công cụ)
Trang 31UWE Được AgroUWWE,
Magic UWE
Sự biến đổi được xác định bằng: QVT: được áp dụng bằng tay (không dùng công cụ)
xác định bằng: các hướng dẫn văn bản: được áp dụng bằng tay (không dùng công cụ)
1.5 KẾT LUẬN
Mục tiêu chính của luận văn này là tìm hiểu Mô hình Kiến trúc Ứng dụng web hướng mô hình Mục đích của nghiên cứu này để làm cho các nhà phát triển web nhận thức được về ngôn ngữ mô hình hóa theo hướng mô hình Nó cũng sẽ giúp các nhà phát triển web có một cái nhìn sâu sắc về việc viết tài liệu và thiết kế một hệ thống trước khi xây dựng giải pháp
Dưới đây là các mục tiêu sẽ đạt được:
Hiểu toàn diện về Kiến Trúc Web và một số kỹ thuật mô hình của nó
Nâng cao kiến thức về phương pháp tiếp cận hướng mô hình của Kiến Trúc Web
Luận văn sẽ giúp các nhà thiết kế web có thể mô hình một cách hiệu quả các Ứng dụng web phức tạp
Trang 32 So sánh các kỹ thuật và cho thấy các kết quả dựa trên ứng dụng của chúng
Thiết kế một ứng dụng dựa trên lý thuyết đã nghiên cứu
Tiến hành phân tích, đánh giá các kết quả đạt được
Trang 33C ƢƠNG 2 KỸ T UẬT BIẾN ĐỔI MÔ ÌN TRONG XÂY DỰNG P ẦN
MỀM ƢỚNG MÔ ÌN
Các mô hình về mức trừu tượng cao hơn của hệ thống thông tin (IS) đã và đang trở thành một chương trình con hàng ngày trong nhiều công ty phần mềm Khái niệm Kiến trúc định hướng mô hình (MDA) do Cơ quan tiêu chuẩn hóa thuộc Nhóm Quản lý Đối tượng (OMG) công bố từ năm 2001 và đã trở thành một khái niệm tạo ra các ứng dụng phần mềm và các hệ thống thông tin MDA quy định bốn mức trừu tượng: 3 mức cao nhất đều là các mô hình đồ họa và mức cuối cùng là mô hình mã thực thi Nhiều công trình nghiên cứu về MDA đang tập trung vào các mức thấp hơn và sự chuyển đổi giữa các mức Mức trừu tượng cao nhất là Mô hình Độc lập Tính toán (CIM) và chuyển đổi sang mức thấp hơn là Mô hình Độc lập Nền tảng (PIM) Xét tầm quan trọng và tính ứng dụng rất lơn của mức này khi thực hành phát triển IS, công việc nghiên cứu tập trung vào mức trừu tượng cao nhất – CIM và khả năng chuyển đổi sang mức PIM thấp hơn
Các mức trừu tượng cơ bản gồm có Mô hình Độc lập Tính toán (CIM), Mô hình Độc lập Nền tảng (PIM), Mô hình Phụ thuộc Nền tảng (PSM) và Mô hình thực thi (IM)
Trang 34– Viết mã Trong quá trình phát triển IS, các mô hình MDA được tạo ra theo minh họa trong Hình 2.1
Hình 2.1: Các mức trừu tƣợng cơ bản trong MDA [3]
2.1.1 Mô hình Độc lập Tính toán (CIM-Computation Independent Mode)
CIM là mức không hiển thị các chi tiết về cấu tạo IS nhưng quy định các hoạt động đang được xử lý trong IS Hay nói cách khác, mức này biểu diễn các quy trình kinh doanh của tổ chức mà IS sẽ được phát triển CIM được hiểu là chuyên viên phân tích ở mức cao nhất có thể là chuyên viên phân tích hệ thống kinh doanh, chuyên gia nghiệp vụ hay người dùng nghiệp vụ của hệ thống Đôi khi CIM được gọi là mô hình nghiệp vụ CIM không chứa thông tin về các mô hình hay đồ tạo tác sẽ được sử dụng
để thực thi IS Nó mô tả môi trường mà IS hoạt động và hỗ trợ việc công nhận những
gì mà tôi kỳ vọng từ IS Nó không chỉ hữu ích như một phương tiện hỗ trợ để hiểu các vấn đề của thiết kế IS mà còn là “kho từ vựng” để sử dụng hệ thống này trong các hệ thống khác CIM đóng vai trò quan trọng trong việc lấp đầy khoảng trống giữa các
Trang 35chuyên gia về nghiệp vụ (chuyên viên phân tích hệ thống kinh doanh và chuyên gia nghiệp vụ) cũng như các chuyên viên thiết kế và phát triển IS (nhà phân tích phần mềm) Trong tiêu chuẩn MDA, các yêu cầu về CIM cần có mối quan hệ với cấu trúc PIM và PSM và ngược lại
2.1.2 Mô hình Độc lập Nền tảng (PIM-Platform Independent Model)
Mức PIM cho biết mức độc lập nhất định theo cách mà các mô hình được biểu diễn tại đó (chủ yếu là các mô hình UML), được chọn để sử dụng trong các nền tảng khác nhau PIM mô tả IS nhưng che dấu các chi tiết về cách sử dụng công nghệ cụ thể PIM tạo thông số kỹ thuật cho các dịch vụ được yêu cầu của hệ thống thông tin mà không cần đến các chi tiết phụ thuộc vào nền tảng kỹ thuật Chuyên viên phân tích phần mềm tham gia vào quá trình tạo ra mức MDA này Khi xét đến các mô hình PIM, thường thì câu hỏi được đặt ra là liệu mô hình có độc lập vào nền tảng hay không Câu hỏi này có một câu trả lời đơn giản: “phụ thuộc vào quan điểm” Như đã đề cập trong [29], mô hình giống nhau có thể phụ thuộc vào nền tảng cụ thể như phần mềm trung gian CORBA nhưng độc lập về nền tảng theo cách có thể được sử dụng với các hệ điều hành khác nhau
2.1.3 Mô hình Phụ thuộc Nền tảng (PSM-Platform Specific Model)
PSM là mô hình có mối quan hệ mật thiết với IS xét về một nền tảng nhất định PSM kết nối thông số kỹ thuật từ PIM bằng các chi tiết quy định kiểu nền tảng sẽ được
sử dụng bởi IS PSM có thể cung cấp thông số kỹ thuật chi tiết tùy vào mục đích của
nó PSM sẽ được hiện thực hóa bằng cách chuyển đổi sang một mô hình thực thi – viết
mã, trong đó xác định tất cả các thông tin để tạo IS và khởi chạy Một PSM có thể xuất hiện với tư cách là PIM đối với các mức PSM khác có thể được chuyển đổi thêm thành
mã lệnh [28, 29] Mức này do các nhà phát triển phần mềm tạo ra Ý tưởng cơ bản về PSM là hiện thực hóa việc chuyển đổi từ mô hình PIM sang mô hình PSM [28]
Trang 362.2 TỔNG QUÁT VỀ CHUYỂN ĐỔI MÔ HÌNH TRONG MDA
Nền tảng của cấu trúc MDA là tạo ra các mô hình Tuy nhiên, có một vấn đề quan trọng ở đây, đó là việc chuyển đổi giữa các mô hình này Khái niệm OMG cho biết, trong quy trình MDA, ý tưởng chủ đạo là chuyển từ các mức cao hơn (CIM, PIM) xuống các mức thấp hơn (PSM) được dùng để tạo mã thực thi Chuyển đổi một mô hình là quá trình mà trong đó một mô hình là một nguồn được chuyển thành một mô hình khác - điểm đến, bằng cách sử dụng các quy tắc chuyển đổi nhất định Có các phương pháp khác nhau được sử dụng làm quy tắc chuyển đổi Quá trình này được minh họa trong Hình 2.2
Hình 2.2: Quy trình chuyển đổi MDA tổng quát
Các quy tắc chuyển đổi mô tả làm thế nào mà các phần tử mô hình nguồn cần phải được chuyển đổi sang phần tử mô hình đích Quy tắc chuyển đổi gồm có bên trái và bên phải Bên trái đánh giá mô hình nguồn và bổ sung thông tin để tạo ra nó và bên phải mở rộng nó đến mô hình đích Cả hai bên đều có thể được mô tả bằng các biến số, khuôn mẫu, quy tắc logic
Kể từ lúc đó đến nay, hầu hết các thiết kế IS đều dựa trên mức PIM của MDA, điểm nhấn lớn nhất là chuyển đổi từ PIM sang PSM bằng cả 2 cách Có các công cụ CASE khác nhau được coi là công cụ MDA tự động hóa quá trình chuyển đổi một cách tuyệt vời Chuyển đổi từ CIM sang PIM thường không được OMG nhắc đến và điều
Các quy tắc chuyển đổi
Mô hình đích
Mô hình nguồn
Trang 37này có thể là sự giúp đỡ lớn dành cho giới chuyên viên phân tích hệ thống kinh doanh
và chuyên gia nghiệp vụ Vì thế, tôi quyết định tập trung vào mức MDA cao hơn
2.3 TRUY VẤN, CÁC KHUNG NHÌN VÀ CÁC PHÉP CHUYỂN ĐỔI (QUERY, VIEWS, TRANSFORMATIONS)
MDA của OMG là một cách tiếp cận phát triển phần mềm sử dụng các mô hình làm các cấu phần (artifact) chính Các mô hình trừu tượng thường được chuyển đổi thành các mô hình cụ thể hơn và sau cùng thành các mô hình đặc trưng nền hệ thống
mà từ đó các cấu phần thi hành được được tạo ra (mã và các tập tin cấu hình)
Nói chung, các phép chuyển đổi mô hình là các tác vụ được viết bằng một ngôn ngữ chuyển đổi, cho phép biến đổi một mô hình nguồn thành một mô hình đích Phép chuyển đổi có thể sử dụng các siêu mô hình để định nghĩa việc tạo thực thể cho các phần tử trong mô hình đích bằng các phần tử trong mô hình nguồn Khuôn thức chuyển đổi MDA có thể được mở rộng bằng việc sử dụng các siêu mô hình như ta thấy trong Hình 2.3 dưới đây
Có rất nhiều ích lợi rõ rệt từ các phép chuyển đổi mô hình Một trong số đó là khả năng dùng lại được Trong quá trình phát triển một sản phẩm phần mềm sử dụng cách tiếp cận MDA, phần mềm được mô hình hóa như là các mô hình ở các cấp độ trừu tượng hóa khác nhau Nếu có các thay đổi đối với một mô hình, các thay đổi này sẽ được lan truyền đến các mô hình khác Quá trình này thường được lặp lại bằng một thuật toán cụ thể, và thuật toán có thể được cài đặt bằng một ngôn ngữ chuyển đổi như
là các quy tắc chuyển đổi để được sử dụng lại trong việc phát triển sản phẩm phần mềm đó cũng như các sản phẩm phần mềm khác
Các phép chuyển đổi mô hình cũng cho phép tự động hóa nhiều hoạt động thủ công Điều này giúp tăng năng suất và giảm khả năng xảy ra các lỗi trong phát triển phần mềm Chẳng hạn, mô hình PIM lúc đầu có thể đơn giản và được trừu tượng hóa
Trang 38bằng cách lược bỏ bớt các chi tiết không cần thiết Những người thiết kế sau đó có thể
áp dụng các khuôn thức thiết kế để tạo ra mô hình PSM phức tạp hơn cho một nền hệ thống cụ thể Các quy tắc chuyển đổi do đó có thể được cài đặt lại và được gắn liền với các khuôn thức thiết kế riêng biệt để các mô hình đặc trưng nền hệ thống này được tạo
ra một cách tự động
Hình 2.3: Sử dụng các siêu mô hình trong một định nghĩa chuyển đổi
Do các ích lợi vừa nêu, các phép chuyển đổi tự động trong MDA đóng một vai trò then chốt Điều quan trọng là các phép chuyển đổi có thể được phát triển đến mức hiệu quả nhất có thể được Vào năm 2002, OMG đã đưa ra một Yêu cầu Đề xuất (RFP) dành cho MOF 2.0 Truy vấn, các Khung nhìn và các Phép chuyển đổi (QVT) để xử lý khía cạnh công nghệ của MOF 2.0 OMG trong việc tác động các mô hình MOF
Trong RFP này, ba thành phần công nghệ cơ bản được đề cập đến, đó là các truy vấn, các khung nhìn và các phép chuyển đổi Các thuật ngữ này được định nghĩa như sau:
- Truy vấn: truy vấn là một biểu thức được lượng giá thông qua một mô hình Kết quả của một truy vấn là một hoặc nhiều thực thể thuộc các kiểu được định nghĩa trong mô hình nguồn, hay được định nghĩa bởi ngôn ngữ truy vấn
Trang 39- Khung nhìn: một khung nhìn là một mô hình hoàn toàn được dẫn xuất từ một
mô hình khác Một khung nhìn không thể được sửa đổi tách biệt với mô hình mà
từ đó nó được dẫn xuất Siêu mô hình của khung nhìn không nhất thiết cũng là siêu mô hình của mô hình nguồn Một truy vấn là một dạng khung nhìn giới hạn Các khung nhìn được sinh ra nhờ các phép chuyển đổi
- Phép chuyển đổi: một phép chuyển đổi sinh ra một mô hình đích từ mô hình nguồn Các phép chuyển đổi có thể dẫn tới các mô hình phụ thuộc hay độc lập Một phép chuyển đổi có thể thuộc kiểu từ trên xuống, trong trường hợp đó mô hình đích không được sửa đổi sau khi được sinh ra Các phép chuyển đổi có thể một chiều (đơn hướng) hay hai chiều (song hướng)
Để hưởng ứng RFP, đã có 8 đề xuất được gửi đến OMG trong tháng Mười 2002 Garder và các cộng sự [15] đã đánh giá các đề xuất này và nhận thấy rằng nhiều ý kiến trong số đó chưa hoàn chỉnh và được lập công thức không rõ ràng Trong những năm
2003 và 2004, các ý kiến này đã được điều chỉnh và thống nhất Tính đến tháng Giêng
2005, hai ý kiến đề xuất vẫn còn được xem xét Sau cùng, vào tháng Ba 2005, hai ý kiến này đã được Nhóm Hợp nhất QVT hợp nhất một lần nữa để tạo nên ý kiến kết hợp sửa đổi lần 3
Đề xuất của Nhóm Hợp nhất QVT là ý kiến duy nhất còn lại, trong đó có sự tinh chế sâu hơn, sẽ được xem xét để trở thành đặc tả dành cho ngôn ngữ QVT Với nhiệm
vụ như vậy, đề xuất này sẽ được sử dụng làm ngôn ngữ QVT dành cho vấn đề đang xét Các phần còn lại của tài liệu này đề cập đến việc ngôn ngữ QVT đáp ứng ra sao các yêu cầu được quy định trong RFP và nhiều khái niệm khác nhau được ngôn ngữ này sử dụng
Trang 402.4 PHÂN LOẠI NGÔN NGỮ QVT
Czarnecki và các cộng sự đề nghị một mô hình đặc tính cho phép so sánh các cách tiếp cận chuyển đổi mô hình khác nhau, đồng thời đưa ra một bản khảo sát và phép phân loại một số cách tiếp cận hiện có đã được công bố trong các bài viết nghiên cứu và được nộp để hưởng ứng QVT RFP của OMG Các biểu đồ đặc tính được trình bày trong các đoạn tiếp theo sau đây[50]
2.4.1 Các Đặc tính của các Phép chuyển đổi Mô hình
Biểu đồ đặc tính chính của các phép chuyển đổi mô hình được minh họa trong Hình 2.4 Các phép chuyển đổi mô hình có các tính chất tùy định (được đánh dấu bằng các nút tròn trắng) và bắt buộc (được đánh dấu bằng các nút tròn đen), mỗi tính chất trong số này sẽ được mô tả chi tiết trong các đoạn tiếp theo sau đây
Hình 2.4: Các đặc tính mức cao nhất của các phép chuyển đổi mô hình