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. 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ó: o UML (Unified Modeling Language): ngôn ngữ mô hình thống nhất.
o MOF (Meta Object Facility): ngôn ngữ dùng để định nghĩa ngôn ngữ mô hình. o XML (eXtensible Markup Language): ngôn ngữ đánh dấu mở rộng. o 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]. 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 toá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.
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. 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 yê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 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 hoàn toà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 Cấp độ kiến trúc mô hình hướng mô hình CIM PIM PSM UWE X X X WebML X X W2000 (HDM) X X OOHDMDA X X Bảng 1.
So sánh các kỹ thuật Web hướng mô hình [6] 1. 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ả chuyên 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. UWE metamodel [15] 16 Metamodel UWE được định nghĩa như một phần mở rộng cho UML 2. 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.
Các thành phần khuôn mẫu trong UWE [15] 17 1. Mô hình yêu cầu Mô hình yê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. UWE profile cho mô hình yê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 ngoà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 yê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. 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 hoá 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 hoá 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. UWE profile cho mô hình nội dung [15] 1. 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. 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. UWE profile cho mô hình điều hướng [15] 1. 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. 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. 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 khuôn 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].
UWE profile cho mô hình xử lý [15] 21 Hình 1. UWE profile cho mô hình trình bày [15] 1. 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.