ểCác công cụ chuyển đổi mô hình, sinh mã ngu n hiồ ện có đã đáp ứng được một ph n ầnhu cầu cho phương pháp phát triển ứng dụng Web hướng mô hình.. Chương 2: Phát triển các giải thuật sin
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - Nguyễn Thanh Giang NGHIÊN CỨU CẢI TIẾN KỸ THUẬT SINH MÃ NGUỒN TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MƠ HÌNH THEO KỸ THUẬT UWE 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 Tai ngay!!! Ban co the xoa dong chu nay!!! 17057205210481000000 LỜI CAM ĐOAN Tôi – Nguyễn Thanh Giang – cam kết luận văn cơng trình nghiên cứu thân hướng dẫn PGS.TS Huỳnh Quyết Thắng Các kết nêu luận văn trung thực, chép tồn văn cơng trình khác Hà Nội, ngày tháng 10 năm 2018 Học viên Nguyễn Thanh Giang LỜI CAM ĐOAN DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ DANH MỤC HÌNH .7 DANH MỤC BẢNG MỞ ĐẦU 11 Mục đích nghiên cứu luận văn 11 Nội dung luận văn 11 Các đóng góp khoa học luận văn 12 Chương 1: Tổng quan kiến trúc hướng mơ hình kỹ thuật Web hướng mơ hình UWE .13 1.1 Kiến trúc hướng mơ hình 13 1.2 Các kỹ thuật Web hướng mơ hình 13 1.3 Kỹ thuật UWE .16 1.3.1 Mơ hình u cầu 18 1.3.2 Mơ hình nội dung 19 1.3.3 Mơ hình điều hướng 19 1.3.4 Mơ hình xử lý 20 1.3.5 Mơ hình trình bày 20 1.4 Tổng hợp nghiên cứu kỹ thuật sinh mã nguồn phát triển ứng dụng Web hướng mơ hình 22 1.4.1 Các phương pháp sinh mã hướng mơ hình 22 1.4.2 OptimalJ 24 1.4.3 UWE4JSF 24 1.5 Tiểu kết chương 25 Chương 2: Phát triển giải thuật sinh mã nguồn .27 2.1 Đặt vấn đề 27 2.2 Quy trình chuyển đổi MDA cho kỹ thuật UWE 28 2.2.1 Lựa chọn tảng công nghệ 28 2.2.2 Lựa chọn mơ hình Web 29 2.2.3 Lựa chọn phương pháp sinh mã 30 2.2.4 Quy trình chuyển đổi MDA cho kỹ thuật UWE 31 2.3 Xây dựng giải thuật CM2M sinh mã thành phần Model từ mô hình nội dung (Content Model to Model Code Genenation) 32 2.4 Xây dụng giải thuật PRES2V sinh mã thành phần View từ mơ hình trình bày (Presenation Model to View Code Generation) .38 2.5 Xây dụng giải thuật NPROM2C sinh mã thành phần Controller từ mô hình điều hướng xử lý (Navigation and Processing Model to Controller Code Generation)43 2.5.1 Xây dựng giải thuật NM2C 43 2.5.2 Xây dựng giải thuật PROM2C 48 2.6 Tiểu kết chương 52 Chương 3: Cài đặt công cụ CODEGER-UWE tích hợp giải thuật áp dụng, đánh giá 53 3.1 Xây dựng công cụ CODEGER-UWE 53 3.2 Áp dụng cơng cụ CODEGER-UWE vào tốn cụ thể .55 3.3 Đánh giá 61 3.4 Tiểu kết chương 62 KẾT LUẬN 63 DANH MỤC THAM KHẢO .65 PHỤ LỤC .67 DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Từ viết tắt, thuật ngữ Từ viết đầy đủ ATL Atlas Transformation Language CIM Computation Independent Model CSS Cascading Style Sheets CWM Common Warehouse Metamodel DTD Document Type Definition EMF Eclipse Modeling Framework HTML Hypertext Markup Language ISM Implementation Specific Model J2EE Java Platform, Enterprise Edition JET Java Emitter Templates JSF Java Server Faces JSP Java Server Pages JSTL JSP Standard Tag Library MDA Model Driven Architecture MDD Model Driven Development MDE Model Driven Engineering MDSD Model Driven Software Development MDWE Model Driven Web Engineering MOF Meta Object Facility MVC Model View Controller OCL Object Constraints Language OMG Object Management Group OOHDM OOHDMDA Object Oriented Hypermedia Design Method Object Oriented Hypermedia Design Method Driven Approach PIM PSM Pl tf I d dModel tM d l Platform Specific QVT UML Query Views Transformation Unified Modeling Language UWE W2000 (HDM) WebSA Uml-based Web Engineering Hypertext Design Model Web Software Architecture WTP Web Tools Platform XMI XML Metadata Interchange XML eXtensible Markup Language XSLT eXtensible Stylesheet Language Transformation DANH MỤC HÌNH Hình 1.1 Cấu trúc MDA cho kỹ thuật Web [6] 14 Hình 1.2 UWE metamodel [15] 16 Hình 1.3 UWE profile cho mơ hình yêu cầu [15] .18 Hình 1.4 UWE profile cho mơ hình nội dung [15] .19 Hình 1.5 UWE profile cho mơ hình điều hướng [15] 20 Hình 1.6 UWE profile cho mơ hình xử lý [15] 21 Hình 1.7 UWE profile cho mơ hình trình bày [15] .22 Hình 1.8 Phương pháp sinh mã dựa khn mẫu lọc [8] 22 Hình 1.9 Phương pháp sinh mã dựa khuôn mẫu metamodel [8] 23 Hình 1.10 Phương pháp sinh mã dựa API [8] 23 Hình 1.11 Phương pháp sinh mã dựa khn mẫu [3] 24 Hình 1.12 Quy trình sinh mã UWE4JSF [4] .25 Hình 2.1 Cấu trúc MDA cho ứng dụng web theo kỹ thuật UWE .27 Hình 2.2 Mơ hình MVC Web [17] 29 Hình 2.3 Java metamodel 30 Hình 2.4 JSP metamodel .31 Hình 2.5 Chuyển đổi mơ hình PIM sang PSM, mã nguồn theo mơ hình MVC 31 Hình 2.6 Các thành phần mơ hình nội dung 32 Hình 2.7 Các quy tắc cấu thành giải thuật CM2M 33 Hình 2.8 Quy trình chuyển đổi sinh mã nguồn từ mơ hình nội dung 36 Hình 2.9 Các thành phần mơ hình trình bày 38 Hình 2.10 Các quy tắc cấu thành giải thuật PRES2V 38 Hình 2.11 Quy trình chuyển đổi sinh mã JSP từ mơ hình trình bày 42 Hình 2.12 Các thành phần mơ hình điều hướng 44 Hình 2.13 Các quy tắc cấu thành giải thuật NM2C 44 Hình 2.14 Quy trình chuyển đổi sinh mã nguồn từ mơ hình điều hướng 47 Hình 2.15 Các thành phần mơ hình xử lý 49 Hình 2.16 Các quy tắc cấu thành giải thuật PROM2C .49 Hình 2.17 Quy trình chuyển đổi sinh mã nguồn từ mơ hình xử lý .51 Hình 3.1 Kiến trúc MagicDraw CODEGER-UWE .54 Hình 3.2 Cài đặt CODEGER-UWE 54 Hình 3.3 Giao diện cơng cụ CODEGER-UWE 55 Hình 3.4 Bốn mơ hình AddressBook 57 Hình 3.5 Mã nguồn sinh từ bốn mơ hình UWE 58 Hình 3.6 Khung ứng dụng Web 59 Hình 3.7 Giao diện trang web .59 Hình 3.8 Hiện thị kết tìm kiếm Contact 60 Hình 3.9 Giao diện tạo Contact 60 Hình 3.10 Giao diện cập nhật Contact có .60 Hình 3.11 Hiện thị lại danh sách sau xóa Contact 61 DANH MỤC BẢNG Bảng So sánh kỹ thuật Web hướng mô hình [6] 16 Bảng Các thành phần khuôn mẫu UWE [15] 17 Bảng Bảng đánh giá mã nguồn 61 LỜI CẢM ƠN Để hoà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, 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 kiến thức cần thiết định hướng cho em trình thực đề tài Em xin chân thành cảm ơn giúp đỡ quý báu anh Trần Đình Diễn, nghiên cứu sinh 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 thầy cô giáo môn Công nghệ phần mềm, trường Đại học Bách Khoa Hà Nội Dù cố gắng luận văn chắn không tránh khỏi thiếu sót, em mong nhận ý kiến đóng góp thầy Em xin chân thành cảm ơn! 10