C ƢƠNG 1 KỸ T UẬ TP ÁT TRIỂN ỨNG DỤNG WEB ƢỚNG MÔ ÌN
2.4.8. Tính khả truy vết
Hình 2.11: Các đặc tính của tính khả truy vết
Các lớp Trace và các thực thể của chúng được sinh ra không tường minh trong ngôn ngữ Các quan hệ và các phép Ánh xạ Hoạt động để duy trì khả năng truy vết giữa các phần tử mô hình trong một lượt thực thi phép chuyển đổi. Tuy nhiên, chúng phải được tạo ra tường minh trong ngôn ngữ Lõi. Vị trí của các thực thể này không được mô tả rõ ràng trong tài liệu; tuy nhiên có thể suy ra rằng các thực thể này được lưu giữ tách biệt với các mô hình nguồn và đích và được duy trì bởi cơ cấu chuyển đổi.
ỹ thuật GVHD: PGS.TS Huỳnh Quyết Thắng
2.4.9. ƣớng tính
Hình 2.12: Các đặc tính của hƣớng tính
Tính đa hướng được hỗ trợ trong các ngôn ngữ khai báo Các quan hệ và Lõi. Nhiều mô hình ứng viên có thể được đặc tả trong một quy tắc chuyển đổi đa hướng và bất kỳ mô hình nào trong số chúng cũng đều có thể được đề cử làm mô hình đích trong một lượt thi hành phép chuyển đổi. Tuy nhiên, ngôn ngữ các phép Ánh xạ Hoạt động đòi hỏi một quy tắc riêng biệt cho mỗi hướng của phép chuyển đổi (các cặp bổ khuyết).
2.5. QUY TRÌNH UWE VÀ CÁC MÔ HÌNH
Cách tiếp cận UWE bao gồm một Lược tả UML dùng để mô hình hóa các hệ thống Web, một quy trình và sự hỗ trợ công cụ dùng cho việc phát triển các hệ thống Web. Đối với việc mô hình hóa bằng UWE và công cụ Magic UWE, độc giả có thể tham khảo [30], [31], [32], [33], [34], [36] và [38].
Quy trình UWE là một quy trình phát triển hướng mô hình tuân thủ các nguyên tắc MDA và sử dụng các tiêu chuẩn OMG ([42], [43], [45], [46]). Nó bao gồm một tập các mô hình và các phép biến đổi mô hình, có đặc tả được hỗ trợ bởi các siêu mô hình và các quy tắc biến đổi. Các siêu mô hình này là siêu mô hình UWE [39], siêu mô hình Công nghệ các Yêu cầu Web (WebRE) [20] và siêu mô hình của cách tiếp cận Kiến trúc Phần mềm Web (WebSA) [41].
ỹ thuật GVHD: PGS.TS Huỳnh Quyết Thắng
2.5.1. Tổng quan Quy trình
Đặc điểm chính của quy trình UWE là sự hỗ trợ có hệ thống, bán tự động, hướng mô hình và dựa trên phép biến đổi trong việc phát triển các hệ thống Web. Quy trình UWE được minh họa trong Hình 2.13 như là một biểu đồ hoạt động UML được tạo khuôn mẫu ([41]). Các mô hình được biểu diễn bằng các trạng thái luồng đối tượng và các phép biến đổi được biểu diễn như là các hoạt động được tạo khuôn mẫu (biểu tượng hình tròn chuyên dụng) Lúc đó một chuỗi các phép biến đổi định nghĩa luồng điều khiển.
Hình 2.13:Tổng quan Quy trình UWE
Quy trình bắt đầu bằng mức mô hình nghiệp vụ (CIM) định nghĩa một mô hình yêu cầu. Các mô hình thiết kế độc lập nền hệ thống (các PIM) được dẫn xuất từ các
ỹ thuật GVHD: PGS.TS Huỳnh Quyết Thắng
yêu cầu này. Tập các mô hình thiết kế này biểu diễn các mối quan tâm khác nhau của các ứng dụng Web. Nó bao gồm nội dung (content), việc điều hướng (navigation), logic nghiệp vụ, việc biểu diễn (presentation) và việc điều chỉnh thích ứng hệ thống Web. Các mô hình thiết kế khác nhau đã không được minh họa trong sơ đồ tổng quan của Hình 2.13.
Sau đó các mô hình thiết kế được tích hợp chủ yếu nhằm mục đích, chẳng hạn như xác minh, trong một mô hình “bức tranh tổng thể”[36]. Một phép hợp nhất với các tính năng mô hình hóa về mặt kiến trúc dẫn đến một mô hình PIM tích hợp, bao hàm các khía cạnh chức năng và kiến trúc. Sau cùng, các mô hình đặc trưng nền hệ thống (các PSM) được dẫn xuất từ mô hình tích hợp, và từ đó mã lập trình có thể được sinh ra. Mục tiêu của một quy trình MDD như vậy là tự động hóa phép biến đổi mô hình trong mỗi bước dựa trên các quy tắc biến đổi.
2.5.2. Các mô hình trong UWE (Phụ lục B.1)
Một tập các mô hình của một hệ thống Web được xây dựng trong quy trình phát triển UWE. Các mô hình UWE được biểu diễn bằng các giản đồ UML. Bất cứ lúc nào thích hợp, UWE đều sử dụng ký pháp UML “thuần khiết”. Đối với các tính năng đặc trưng mô hình hóa của lĩnh vực Web, chẳng hạn như các nút điều hướng và các phần tử trang Web, UWE đều cung cấp một lược tả UML vốn được định nghĩa bằng cách sử dụng các cơ chế mở rộng do UML cung cấp: các khuôn mẫu và các ràng buộc OCL. Để biết thêm chi tiết về lược tả UWE, mời tham khảo [46], [34], [36], [38] và [40].
Ví dụ minh họa các mô hình và các phép biến đổi mô hình thông qua một ví dụ cổng thông tin Web âm nhạc, lấy cảm hứng từ www.mp3.com, một trang cung cấp các album để tải xuống. Các thông tin về ca sĩ, soạn giả và nhà xuất bản được cung cấp miễn phí. Ngược lại, chỉ những người dùng có đăng ký mới có thể dò tìm các album và tải chúng về nếu họ có đủ tiền trong tài khoản trả trước của họ.
ỹ thuật GVHD: PGS.TS Huỳnh Quyết Thắng
2.6. CÁC PHÉP BIẾN ĐỔI MÔ HÌNH TRONG UWE
Các phép biến đổi mô hình được dựa trên việc định nghĩa các quy tắc biến đổi, và được định nghĩa bất cứ lúc nào có thể cho cấp độ siêu mô hình, và được viết như các phát biểu của các ngôn ngữ biến đổi. Do vậy, cần đặc tả các siêu mô hình của cả nguồn lẫn đích của phép biến đổi. Ngoài ra, đối với siêu mô hình UWE, sử dụng siêu mô hình WebRE [31] và siêu mô hình WebSA [41] vốn là các siêu mô hình phù hợp MOF.
Các phép biến đổi được phân ra thành ba nhóm: các phép được sử dụng để xây dựng các mô hình thiết kế, các phép cần thiết cho việc tạo ra bức tranh tổng thể và mô hình tích hợp, và sau cùng là các phép dùng cho việc tạo ra các mô hình cài đặt và mã. Tổng kết các đặc trưng của mỗi phép biến đổi trong Bảng 2.1 dựa trên các tiêu chí được định nghĩa.
2.6.1. Xây dựng các Mô hình Thiết kế
Bước biến đổi mô hình đầu tiên trong quy trình UWE bao gồm việc ánh xạ các mô hình yêu cầu Web sang các mô hình thiết kế UWE [40]. Các mô hình thiết kế này gồm mô hình nội dung, điều hướng, quy trình, biểu diễn và thích ứng. Có một tập các quan hệ phụ thuộc tồn tại giữa bản thân các mô hình thiết kế, và điều này cho phép việc tạo ra các mô hình khác hay việc tinh biến các mô hình.
Các quy tắc biến đổi được định nghĩa như là các phép ánh xạ từ siêu mô hình WebRE sang siêu mô hình UWE và giữa các siêu mô hình UWE. Hình 2.10 cho thấy một ví dụ về cách thức áp dụng khuôn thức biến đổi mô hình vào quy trình UWE bằng cách sử dụng Ngôn ngữ Biến đổi Khung nhìn Truy vấn tiêu chuẩn (QVT, [44]).
ỹ thuật GVHD: PGS.TS Huỳnh Quyết Thắng
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]
Phép biến đổi Req2 Conte nt Req2 Archi tectur e Content2 Navigation Navigation Refinement Req2 Navig ation Navig ation2 Presen tation Style Adjust ment Design2 BigPictur e Integrati ng Architect ure Integr ation2 J2EE Kiểu CIM thành PIM CIM thành PIM
PIM thành PIM PIM thành PIM CIM thành PIM PIM thành PIM PIM thành PIM PIM thành PIM PIM thành PIM PIM thành PSM Độ phức tạp đơn giản đơn
giản đơn giản đơn giản
hợp nhất đơn giản hợp nhất hợp nhất hợp nhất hợp nhất Cấp độ trừu tƣợng hóa siêu mô hình
- mô hình siêu mô hình
siêu mô hình siêu mô hình
mô hình siêu mô hình siêu mô hình siêu mô hình các Dấu Lược tả WebR E - có sự liên quan đến điều hướng & lược tả UWE Lược tả và các khuôn thức UWE Lược tả WebR E Lược tả UWE dẫn hướng phong cách các khuôn thức và các dấu lược tả UWE & WebSA các khuôn thức Thi hành tự động thủ công bán tự động tự động tự động tự động tự động tự động tự động tự động Các kỹ
thuật QVT - Java (OCL) ATL Java (OCL) QVT
Java (OCL) ATL Java các phép biến đổi biểu đồ QVT QVT, ATL
Nghiên cứu kỹ thuật biế đổi mô hình sử dụng trong xây dựng phần mềm dựa web theo MDA
Hình 2.14: Khuôn thức chuyển đổi mô hình dành cho các siêu mô hình WebRE và UWE
Trong quy trình UWE, việc biến đổi các yêu cầu thành nội dung cho phép việc xây dựng mô hình nội dung; các phép biến đổi nội dung thành cơ chế điều hướng, các yêu cầu thành cơ chế điều hướng và việc tinh biến cơ chế điều hướng được sử dụng để xây dựng mô hình điều hướng. Mô hình biểu diễn được xây dựng bằng ít nhất hai phép lặp: nó được tạo ra bằng việc biến đổi trước đó của cơ chế điều hướng thành sự biểu diễn và được tinh biến bằng các tác vụ điều chỉnh phong cách. Điều cuối nhưng không kém phần quan trọng là mô hình thích ứng cũng có thể được rút ra từ các mô hình các yêu cầu chức năng, và các mô hình kiến trúc có thể được rút ra từ các yêu cầu không liên quan đến chức năng.
2.6.1.1. Biến đổi các Yêu cầu thành Nội dung
Các hoạt động Web, chẳng hạn như duyệt, dò tìm hay các giao dịch đều có liên quan đến các đối tượng được cần đến như là đầu vào hay được sinh ra như là các kết quả. Các đối tượng này có thể được gộp vào trong các biểu đồ hoạt động thông qua các luồng đối tượng. Trong trường hợp cụ thể là mô hình hóa các yêu cầu các hệ thống Web, các đối tượng được sử dụng để chỉ ra nhu cầu cần gộp các thông tin nào đó vào trong ứng dụng Web (Hình 2.21).
Nghiên cứu kỹ thuật biế đổi mô hình sử dụng trong xây dựng phần mềm dựa web theo MDA
Hình 2.15: Từ mô hình các yêu cầu thành mô hình nội dung
Tôi sử dụng ngôn ngữ QVT để đặc tả phép biến đổi từ các phần tử của mô hình yêu cầu thành các phần tử của mô hình nội dung (Req2Content). Quy tắc biến đổi này xác định việc ánh xạ siêu lớp Content của siêu mô hình WebRE thành các lớp của mô hình nội dung UWE; đặc tả QVT của phép biến đổi này tham khảo [40] để biết thêm chi tiết. Các đặc điểm của phép biến đổi Reg2Content được tổng kết trong Bảng 2.1.
2.6.1.2. Biến đổi các Yêu cầu thành Kiến trúc
Một phép ánh xạ các yêu cầu không liên quan đến chức năng thành các phần tử mô hình kiến trúc là đề tài nghiên cứu trong tương lai. Hiện tại, người thiết kế gộp các phần tử kiến trúc vào một cách thủ công. Vẫn còn thiếu một siêu mô hình của các yêu cầu không liên quan đến chức năng dành cho các ứng dụng Web.
2.6.1.3. Biến đổi Nội dung thành Cơ chế Điều hướng
Trong UWE, một mô hình điều hướng (xem Hình 2.22) trước hết được tạo ra dựa trên các lớp của mô hình nội dung vốn được đánh dấu là có liên quan đến điều hướng, nghĩa là phép biến đổi Content2Navigation được định nghĩa cho các phần tử mô hình nào đó. Từ một mô hình nội dung có thể thu được các khung nhìn điều hướng khác nhau, chẳng hạn như cho các bên liên quan khác nhau như người dùng ẩn danh, người dùng có đăng ký và quản trị viên [38].
Việc sinh ra mỗi khung nhìn điều hướng đòi hỏi một tập các dấu trên các phần tử của mô hình nội dung, và chúng hợp thành một thứ gọi là mô hình đánh dấu (marking model), được lưu giữ tách biệt với mô hình nội dung. Do vậy, quy trình phát triển không thể được hoàn tất theo cách thức tự động, vì người thiết kế phải quyết định về các dấu “có liên quan đến điều hướng”. Một khi các dấu đã được xác
Nghiên cứu kỹ thuật biế đổi mô hình sử dụng trong xây dựng phần mềm dựa web theo MDA
lập, phép biến đổi được áp dụng. Nó được định nghĩa như là một ràng buộc OCL và được cài đặt trong Java.
Hình 2.16: Các phép biến đổi để xây dựng mô hình điều hƣớng
2.6.1.4. Bổ sung các Yêu cầu vào Cơ chế Điều hướng
Mô hình yêu cầu chứa đựng các thông tin hữu ích cho việc làm giàu thông tin cho mô hình điều hướng. Ví dụ, trong mô hình yêu cầu UWE phân biệt giữa các kiểu khác nhau của các chức năng điều hướng: duyệt, dò tìm và các hoạt động giao dịch. Một mặt, các hành động Browse có thể được sử dụng để xác nhận sự tồn tại của một tuyến điều hướng giữa các nút nguồn và đích. Mặt khác, chẳng hạn như một hành động thuộc kiểu Search chỉ ra nhu cầu cần một Query trong mô hình điều hướng nhằm cho phép người dùng nhập vào một từ và hệ thống đáp trả bằng một tập kết quả trùng khớp với từ đó. Hình 2.23 cho thấy phép biến đổi Search2Query được đặc tả bằng ký pháp đồ họa QVT [40].
Phép biến đổi Req2Navigation là một phép hợp nhất và được dựa trên lược tả WebRE (xem Bảng 2.1). Hình 2.22 cho thấy rằng quy tắc biến đổi Req2Navigation có thể được áp dụng sau quy tắc biến đổi Content2Navigation, nhưng không có sự hạn chế liên quan đến trật tự áp dụng quy tắc Req2Navigation và tác vụ
Nghiên cứu kỹ thuật biế đổi mô hình sử dụng trong xây dựng phần mềm dựa web theo MDA
2.6.1.5. Tinh biến Mô hình Điều hướng
Bản thân mô hình điều hướng, được sinh ra dựa trên mô hình nội dung, chứa các thông tin hữu ích cho phép suy luận và nâng cao mô hình điều hướng [12]. Các ràng buộc sau (được mô tả không chính thức) định nghĩa chẳng hạn như các quy tắc biến đổi như vậy:
1. Một chỉ số được thêm vào cho tất cả các liên hệ của mô hình điều hướng vốn có bội tính lớn hơn 1 ở đầu được chỉ tới của liên hệ. 2. Tất cả các lớp điều hướng có ít nhất một liên hệ hướng ra đều đòi
hỏi một lớp menu có các mục menu được định nghĩa trên cơ sở các đầu liên hệ của các mối liên hệ.
Các phép biến đổi này được định nghĩa là các ràng buộc OCL trong UWE và được cài đặt trong Java. Trong Bảng 2.1 cho thấy các đặc điểm của các quy tắc biến đổi này.
Nghiên cứu kỹ thuật biế đổi mô hình sử dụng trong xây dựng phần mềm dựa web theo MDA
2.6.1.6. Việc biến đổi Điều hướng thành Biểu diễn và việc Điều chỉnh cho Phong cách Biểu diễn.
Các phần tử biểu diễn được sinh ra dựa trên các phần tử điều hướng của mô hình điều hướng và sau đó được hợp nhất bằng các thông tin dẫn hướng phong cách (Hình 2.24). Ví dụ, đối với mỗi liên kết trong mô hình điều hướng đều cần một mốc neo thỏa đáng trong mô hình biểu diễn. Vấn đề khó khăn chủ yếu là việc đưa khía cạnh mang tính cảm nhận vào.
Hình 2.18: Các phép biến đổi để xây dựng mô hình biểu diễn 2.6.2. Tạo một Mô hình đƣợc Tích hợp
Mục tiêu của giai đoạn này trong quy trình UWE là tạo ra một mô hình cho phép cả việc tạo ra một cách trơn tru các mô hình đặc trưng nền hệ thống (các PSM) lẫn việc xác nhận tính đúng đắn của các mô hình qua việc kiểm nghiệm mô hình. Quy trình UWE bao gồm hai bước tích hợp chính: tích hợp tất cả các mô hình chức năng và tích hợp các khía cạnh chức năng lẫn phi chức năng. Bước thứ hai liên quan đến các quyết định thiết kế kiến trúc.
2.6.2.1. Xây dựng “Bức tranh Tổng thể”
Tuy từ các khung nhìn khác nhau, nhưng các mô hình thiết kế khác nhau biểu diễn ứng dụng Web như là một tổng thể. Chúng được tích hợp vào một mô hình độc lập nền hệ thống khác gọi là “bức tranh tổng thể” (Hình 2.25). Mô hình này được sử dụng để xác nhận sự tương tác của các mô hình tách rời bằng cách sử dụng cơ chế kiểm nghiệm mô hình và để sinh ra ứng dụng Web một cách tự động.
Nghiên cứu kỹ thuật biế đổi mô hình sử dụng trong xây dựng phần mềm dựa web theo MDA
Mô hình đích là một máy trạng thái UML, biểu diễn cấu trúc điều hướng và các