Luận án Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình

pdf 145 trang vuhoa 23/08/2022 8040
Bạn đang xem 20 trang mẫu của tài liệu "Luận án Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfluan_an_cac_ky_thuat_chuyen_doi_mo_hinh_va_sinh_ma_trong_pha.pdf

Nội dung text: Luận án Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Trần Đình Diễn CÁC KỸ THUẬT CHUYỂN ĐỔI MÔ HÌNH VÀ SINH MÃ TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MÔ HÌNH LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM Hà Nội - 2021
  2. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Trần Đình Diễn CÁC KỸ THUẬT CHUYỂN ĐỔI MÔ HÌNH VÀ SINH MÃ TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MÔ HÌNH Ngành: Kỹ thuật phần mềm Mã số: 9480103 LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM NGƯỜI HƯỚNG DẪN KHOA HỌC 1. PGS.TS. Huỳnh Quyết Thắng 2. PGS.TS. Cao Tuấn Dũng Hà Nội - 2021
  3. LỜI CAM ĐOAN Tôi cam đoan đề tài: “Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình” là công trình nghiên cứu của bản thân tôi, các kết quả nghiên cứu trong luận án là trung thực và chưa từng được tác giả khác công bố. Hà Nội, ngày 01 tháng 12 năm 2021 TM. Tập thể giáo viên hướng dẫn Tác giả PGS.TS. Huỳnh Quyết Thắng Trần Đình Diễn i
  4. LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn sâu sắc nhất tới PGS.TS. Huỳnh Quyết Thắng, PGS. TS. Cao Tuấn Dũng là người định hướng và hướng dẫn khoa học, đã tận tình giúp đỡ tôi trưởng thành trong công tác nghiên cứu và hoàn thành luận án. Trong suốt quá trình học tập và nghiên cứu tại trường, tôi đã nhận được sự hướng dẫn và giúp đỡ tận tình của tập thể các thầy, cô giáo tại Viện Công nghệ thông tin và Truyền thông, Phòng đào tạo Trường Đại học Bách khoa Hà Nội. Tôi xin ghi nhận và biết ơn sự đóng góp quý báu của các thầy, cô. Tôi xin trân trọng cảm ơn Ban giám hiệu Trường Cao đẳng Kinh tế, Kỹ thuật và Thủy sản cùng các thầy cô tại trường đã tạo điều kiện về thời gian, chuyên môn và nhiều hỗ trợ khác giúp đỡ tôi thực hiện luận án. ii
  5. MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ viii MỞ ĐẦU 1 Mục đích nghiên cứu 3 Nhiệm vụ nghiên cứu 3 Đối tượng và phạm vi nghiên cứu 3 Phương pháp nghiên cứu 4 Ý nghĩa khoa học và thực tiễn của đề tài 4 Các kết quả mới đạt được 5 CHƯƠNG 1: PHÁT TRIỂN PHẦN MỀM HƯỚNG MÔ HÌNH 6 1.1. Kiến trúc MDA 6 1.1.1. Chuyển đổi mô hình trong MDA 8 1.1.1.1. Chuyển đổi từ CIM sang PIM 9 1.1.1.2. Chuyển đổi từ PIM sang PSM 9 1.1.1.3. Chuyển đổi từ PSM sang code 13 1.1.2. Ngôn ngữ chuyển đổi mô hình 13 1.1.2.1. Ngôn ngữ ATL 13 1.1.2.2. Ngôn ngữ QVT 21 1.2. Các chuẩn của OMG cho MDA 23 1.2.1. MOF – Meta Object Facility 23 1.2.2. UML – Unified modeling Language 23 1.2.3. OCL (Object Constraint Language) 23 1.2.4. UML Profile 24 1.2.5. CWM (Common Warehouse Metamodel) 24 1.3. Kỹ thuật web hướng mô hình 25 1.3.1. UWE (UML-Based Web Engineering) 26 1.3.2. Web Software Architecture (WebSA) 26 1.3.3. WebML (Web Modeling Language) 27 1.3.4. OOWS - Object-Oriented Web Solution 28 1.3.5. Hypertext Modeling Method of MIDAS (MIDAS-HM3) 28 1.4. Các nghiên cứu liên quan và nhiệm vụ trong luận án 29 1.5. Tiểu kết chương 33 CHƯƠNG 2: KỸ THUẬT CHUYỂN ĐỔI MÔ HÌNH (CIM TO PIM) THEO PHƯƠNG PHÁP UWE CHO PHÁT TRIỂN ỨNG DỤNG WEB 34 2.1. Các mô hình trong UWE 34 2.2. Chuyển đổi mô hình trong UWE 36 iii
  6. 2.2.1. Chuyển đổi từ mô hình yêu cầu sang mô hình nội dung 37 2.2.2. Chuyển đổi từ mô hình yêu cầu, nội dung sang mô hình điều hướng 39 2.2.3. Chuyển đổi sang mô hình xử lý 41 2.2.4. Chuyển đổi từ mô hình điều hướng, xử lý sang mô hình trình bày 43 2.3. Phát triển quy tắc chuyển đổi mô hình tích hợp ràng buộc OCL 46 2.3.1. Giới thiệu phương pháp 48 2.3.2. Tích hợp OCL trong mô hình xử lý 49 2.3.3. Tích hợp OCL trong mô hình trình bày 53 2.3.4. Kết quả và thảo luận 56 2.4. Phát triển quy tắc chuyển đổi mô hình với ATL 56 2.4.1. Giải pháp 57 2.4.1.1. Siêu mô hình yêu cầu 57 2.4.1.2 Siêu mô hình: content, navigation, process, presentation 59 2.4.2. Các quy tắc ATL 62 2.4.3. Kết quả và thảo luận 70 2.5. Tiểu kết chương 76 CHƯƠNG 3: SINH MÃ TỰ ĐỘNG CHO ỨNG DỤNG WEB HƯỚNG MÔ HÌNH . 77 3.1. Kỹ thuật sinh mã trong phát triển ứng dụng web hướng mô hình 77 3.2. Sinh mã dựa trên thuật toán theo kiến trúc MVC 78 3.2.1. Xây dựng quy tắc sinh mã 79 3.2.2. Xây dựng giải thuật sinh code tự động 86 3.2.3. Thử nghiệm và đánh giá 90 3.3. Sinh mã sử dụng ngôn ngữ ATL 96 3.3.1. Chuyển đổi mô hình PIM sang PSM theo kiến trúc MVC 96 3.3.1.1. Tạo phần Model 96 3.3.1.2. Tạo thành phần Controller 101 3.3.1.3. Tạo thành phần View 103 3.3.2. Cấu trúc mô hình PSM theo kiến trúc MVC 105 3.3.2.1. Thành phần model 105 3.3.2.3. Thành phần Controler 108 3.3.2.3. Thành phần View 109 3.3.3. Xây dựng quy tắc chuyển đổi từ PSM sang mã nguồn 110 3.3.3.1. Sinh code từ mô hình java 110 3.3.3.2. Sinh code từ mô hình JSP 111 3.4. Thử nghiệm sinh mã cho ứng dụng web benhthuysan.vn 111 3.4.1. Công cụ sinh mã CODEGER-UWE 111 3.4.2. Phát triển ứng dụng benhthuysan.vn 115 3.4.3. Kết quả và thảo luận 120 3.5. Tiểu kết chương 121 KẾT LUẬN 123 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN 125 TÀI LIỆU THAM KHẢO 126 iv
  7. DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Chữ viết tắt Chú giải ATL ATLAS Transformation Language CM Code Model CWM Common Warehouse Metamodel DSL Domain-Specific Language DTD Document Type Definition EJB Enterprise Java Bean EMF Eclipse Modeling Framework JET Java Emitter Templates JMI Java Metadata Interface JSF Java Server Faces JSP Java Server Pages MDA Model-Driven Architecture MDD Model-Driven Development MDE Model-Driven Engineering MDR Metadata Repository MDSD Model-Driven Software Development MDSE Model-Driven Software Engineering MDWD Model-Driven Web Development MDWE Model-Driven Web Engineering MOF Meta-Object Facility NAD Navigation Access Program OCL Object Constraint Language OGNL Object Graph Navigation Language OMG Object Management Group OO-H Object-Oriented Hypermedia v
  8. Chữ viết tắt Chú giải OOWS Object-Oriented Web Solution PIM Platform-Independent Model PSM Platform-Specific Model QVT Query/View/Tranfomation RMI Remote Method Invocation TTCN-3 Testing and Test Control Notation Version 3 UI User Interface UTP UML Testing Profile UWE UML-based Web Engineering ƯML Unified Modeling Language WebML Web Markup Language WebSA Web Software Arichitecture XMI XML Metadata Interchange XML extensible Markup Language vi
  9. DANH MỤC CÁC BẢNG Bảng 2.1. Thành phần DisplayAction type và Prentation element 55 Bảng 2.2. Các thành phần tương ứng với Pin type và giao diện 55 Bảng 2.3. Các khuôn mẫu được sử dụng trong biều đồ hoạt động 62 Bảng 2.4. Quy tắc chuyển đổi từ mô hình yêu cầu sang mô hình nội dung 63 Bảng 2.5. Quy tắc chuyển đổi từ mô hình yêu cầu sang mô hình điều hướng 65 Bảng 2.6. Thành phần DisplayAction type và Prentation element 69 Bảng 2.7. Các thành phần tương ứng với Pin type và giao diện 70 Bảng 2.8. Kết quả chuyển đổi mô hình Content, Process - ví dụ MusicPortal 74 Bảng 2.9. Kết quả chuyển đổi mô hình Navigation - ví dụ MusicPortal 74 Bảng 2.10. Kết quả chuyển đổi mô hình Presentation - ví dụ MusicPortal 75 Bảng 2.11. Kết quả chuyển đổi mô hình Content, Process - ví dụ AddressBook 75 Bảng 2.12. Kết quả chuyển đổi mô hình Navigation - ví dụ AddressBook 75 Bảng 2.13. Kết quả chuyển đổi mô hình Presentation - ví dụ AddressBook 75 Bảng 3.1. Danh sách các quy tắc sinh code xây dựng 81 Bảng 3.2. Bảng đánh giá mã nguồn 95 Bảng 3.3. Các quy tắc chuyển đổi từ mô hình nội dung sang mô hình java 97 Bảng 3.4. Quy tắc và các thành phần của mô hình xử lý và Java 100 Bảng 3.5. Các quy tắc chuyển đổi mô hình điều hướng sang mô hình Java 103 Bảng 3.6. Các quy tắc chuyển đổi mô hình trình bày sang JSP: 105 Bảng 3.7. Cấu trúc thành phần model 106 Bảng 3.8. Cấu trúc thành phần service 107 Bảng 3.9. Cấu trúc thành phần Controller 108 Bảng 3.10. Cấu trúc mô hình JSP 109 Bảng 3.11. Các truy vấn sinh mã từ mô hình java 110 Bảng 3.12. Truy vấn ATL sinh mã mô hình JSP 111 Bảng 3.13. Bảng so sách kết quả chuyển đổi mô hình nội dung và xử lý 120 Bảng 3.14. Bảng so sách kết quả chuyển đổi mô hình điều hướng 120 Bảng 3.15. Bảng so sách kết quả chuyển đổi mô hình trình bày 120 vii
  10. DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1. Tổng quan về MDA 6 Hình 1.2. Tiến trình MDA 7 Hình 1.3. Sự phân loại các mô hình chính trong MDA 8 Hình 1.4. Chuyển đổi mô hình trong MDA 8 Hình 1.5. Mô hình chuyển từ CIM sang PIM 9 Hình 1.6. Đánh dấu mô hình 9 Hình 1.7. Quá trình biến đổi Metalmodel 10 Hình 1.8. Quá trình biến đổi mô hình 10 Hình 1.9. Ứng dụng mẫu 11 Hình 1.10. Một cách khác để sử dụng các mẫu 11 Hình 1.11. Mô hình kết hợp 12 Hình 1.12. Bổ sung thông tin để chuyển sang PSM 12 Hình 1.13. Sử dụng thông tin bổ sung trong kỹ thuật biến đổi cụ thể 12 Hình 1.14. Tổng quan chuyển đổi mô hình trong ATL 14 Hình 1.15. Phần lõi ATL 19 Hình 1.16. Lược đồ hoạt động máy ảo ATL 20 Hình 1.17. Lược đồ ACG 21 Hình 1.18. Kiến trúc QVT 22 Hình 1.19. Cấu trúc MDA cho kỹ thuật web 25 Hình 1.20. Quy trình chung của UWE 26 Hình 1.21. Quy trình phát triển WebSA 27 Hình 1.22. Tổng quan về chuyển đổi mô hình của ActionUWE 30 Hình 1.23. Tổng quan về cách tiếp cận trong 31 Hình 1.24. Tổng quan về quy trình chuyển đổi mô hình trong 31 Siêu mô hình điều hướng (Navigation Metamodel) 34 Siêu mô hình xử lý (Process Metamodel) 35 Siêu mô hình trình bày (Presentation Metamodel) 36 Chuyển đổi từ CIM tới PIM trong UWE 36 Chuyển đổi mô hình từ PIM san PSM trong UWE 37 Chuyển đổi Requirements to Content 37 Mô tả các quy tắc để thêm các hoạt động 38 Chuyển đổi RequirementsAndContent2Navigation 39 Chuyển đổi sang mô hình xử lý 42 Chuyển đổi AvigationAndProcess to Presentation 43 Chuyển đổi mô hình và mã nguồn tích hợp ràng buộc OCL 49 Biểu đồ diễn tiến chuyển đổi bất biến trong mô hình xử lý 50 viii
  11. Biểu đồ chuyển đổi tiền điều kiện – hậu điều kiện mô hình xử lý 51 Biểu đồ chuyển đổi ràng buộc bất biên mô hình trình bày 54 Use Case meta-model 57 Activity Diagram Metamodel 58 Content Metamodel 60 Navigation Metamodel 60 Process Metamodel 61 Presentation Metamodel 61 Tổng quan phương pháp đề xuất 62 Biểu đồ Use Cases của MusicPortal 70 Biểu đồ Activity cho quy trình BuyAlbum 71 Mô hình nội dung của MusicPortal 72 Mô hình điều hướng của MusicPortal 72 Mô hình xử lý của MusicPortal 73 Mô hình trình bày của MusicPortal 74 Hình 3.1. Chuyển đổi mô hình sang mã nguồn theo MDA 77 Hình 3.2. Sinh code trong UWE 79 Hình 3.3. Chuyển đổi sang mã nguồn theo mô hình MVC 80 Hình 3.4. Các quy tắc cấu thành giải thuật CM2M 82 Hình 3.5. Các quy tắc cấu thành giải thuật PRES2V 83 Hình 3.6. Các quy tắc cấu thành giải thuật NM2C 85 Hình 3.7. Các quy tắc cấu thành giải thuật PROM2C 86 Hình 3.8. Kiến trúc MagicDraw và CODEGER –UWE 91 Hình 3.9. Giao diện công cụ CODEGER –UWE 91 Hình 3.10. Mô hình nội dung 92 Hình 3.11. Mô hình điều hướng 92 Hình 3.12. Mô hình xử lý 92 Hình 3.13. Mô hình trình bày 93 Hình 3.14. Mã nguồn sinh ra từ bốn mô hình UWE 93 Hình 3.15. Khung ứng dụng Web 94 Hình 3.16. Giao diện trang web 94 Hình 3.17. Giao diện tạo mới Contact 95 Hình 3.18. Sơ đồ chuyển đổi mô hình và sinh code 97 Hình 3.19. Kiến trúc CODEGER –UWE 112 Hình 3.20. Quy trình sinh mã nguồn từ mô hình nội dung 113 Hình 3.21. Quy trình sinh mã nguồn từ mô hình điều hướng 114 Hình 3.22. Quy trình chuyển đổi sinh mã nguồn từ mô hình xử lý 114 Hình 3.23. Quy trình sinh mã JSP từ mô hình trình bày 115 Hình 3.24. Biểu đồ use case, mô hình đầu vào của ứng dụng 116 ix
  12. Hình 3.25. Biểu đồ Activity, mô hình đầu vào của ứng dụng 117 Hình 3.26. Mô hình nội dung 117 Hình 3.27. Mô hình điều hướng 118 Hình 3.28. Mô hình xử lý 118 Hình 3.29. Mô hình trình bày 118 Hình 3.30. Cấu trúc mã nguồn được sinh tự động 119 Hình 3.31. Giao diện web benhthuysan.vn 119 Hình 3.32. Kết quả đánh giá thử nghiệm benhthuysan.vn 121 x
  13. MỞ ĐẦU Ngày nay, công nghiệp phần mềm đóng vai trò quan trọng, tác động đến sự phát triển kinh tế xã hội và được xem là một trong những trụ cột chính của tăng trưởng kinh tế ở nhiều nước. Tuy nhiên, việc phát triển phần mềm theo cách truyền thống ngày càng phải đối mặt với nhiều khó khăn như vấn đề phát triển, vấn đề tính khả chuyển, khả năng tương tác hay với sự phát triển nhanh chóng của các nền tảng công nghệ mới. Do đó, những nhà phát triển phần mềm phải dành nhiều công sức và thời gian để điều chỉnh ứng dụng (thường theo cách thủ công là sửa mã nguồn) sao cho có thể hoạt động được trên các nền tảng công nghệ mới. Chính vì vậy, một xu hướng phát triển phần mềm mới nhằm khắc phục những khó khăn trên đã được nghiên cứu và phát triển, đó là phát triển phần mềm hướng mô hình (MDSD: Model driven software development). Kỹ thuật hướng mô hình (MDE) là kỹ thuật mới cho sự phát triển sản phẩm phần mềm. Kỹ thuật này giải quyết được sự phức tạp của nền tảng công nghệ khác nhau bằng việc sử dụng các mô hình (models) như là tác nhân chính trong toàn bộ vòng đời phát triển ứng dụng, giảm sự phụ thuộc vào nền tảng công nghệ [1-3]. MDE phát triển dựa trên ý tưởng xây dựng các mô hình độc lập với nền tảng và hỗ trợ việc chuyển đổi mô hình thành mã nguồn của chương trình. Do đó, quá trình phát triển phần mềm hướng mô hình được xem như là một chuỗi các chuyển đổi mô hình và chuyển đổi mô hình đóng một vai trò quan trọng trong kỹ thuật hướng mô hình [4]. Phát triển phần mềm hướng mô hình đang trở thành một phương pháp tiếp cận, được chấp nhận rộng rãi để phát triển các ứng dụng phức tạp và ngày càng giành được nhiều sự quan tâm của cộng đồng nghiên cứu, cũng như giới công nghiệp phần mềm [1]. Sinh mã tự động là nền tảng thiết yếu của các phương pháp tiếp cận theo hướng mô hình để phát triển phần mềm. Việc sinh mã tự động giúp cho việc phát triển ứng dụng trở nên hiệu quả hơn, hứa hẹn sẽ là một bước tiến mới trong phát triển phần mềm, giúp lập trình viên nâng cao được hiệu xuất làm việc và ngày càng được sử dụng nhiều trong tiến trình phát triển phần mềm [5]. Các nghiên cứu đã minh chứng, phương pháp sinh mã hướng mô hình cho tiến trình phần mềm đã tăng tốc độ tổng thể từ 3 đến 10 lần [5-7], làm giảm yếu tố con người [8, 9], giảm thời gian phát triển ứng dụng web [9-12]. Việc sử dụng các mô hình để tạo mã chương trình, có thể tạo ra các sản phẩm phần mềm có khả năng tương thích và sử dụng trên các nền tảng khác nhau [13], trong [14] đã chứng minh việc sử dụng phương pháp này cho phép tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng), vì chúng làm giảm sự cần thiết phải thay đổi sau khi đưa ứng dụng vào sử dụng. Các ứng dụng Web bao gồm nhiều thành phần khác nhau, có thể được cung cấp bởi những nhà phát triển khác nhau, nên việc sử dụng các kỹ thuật phát triển phần mềm hướng mô hình cho các ứng dụng web đặc biệt hữu ích [1, 15, 16]. 1
  14. Trong những phương pháp phát triển ứng dụng web hướng mô hình hiện nay. UWE (UML-based Web Engineering) là một hướng tiếp cận cho phép phát triển ứng dụng web hướng mô hình dựa trên kiến trúc MDA. UWE cung cấp một quy trình và công cụ, giúp mô hình hoá và xây dựng các ứng dụng web, do nhóm nghiên cứu trường đại học LMU, Đức thực hiện với mục đích tự động hoá quy trình phát triển ứng dụng web và giảm thiểu tối đa việc lập trình cài đặt mã nguồn cho ứng dụng. UWE cung cấp một tập các mô hình tương ứng với từng khía cạnh của ứng dụng web bao gồm: Mô hình yêu cầu (requirements models), mô hình nội dung (content models), mô hình điều hướng (navigation models), mô hình xử lý (process models), mô hình trình bày (presentation models) và sử dụng biểu đồ UML 2.0 cho việc mô hình hoá. 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 đã quen thuộc với UML[17]. Tuy nhiên, các nghiên cứu phát triển ứng dụng web hướng mô hình theo phương pháp UWE, còn tồn tại một số vấn đề cần tiếp tục đi sâu nghiên cứu: Thứ nhất: Việc chuyển đổi từ mô hình yêu cầu sang các mô hình: Nội dung, điều hướng, xử lý và trình bày vẫn phải được điều chỉnh thủ công, làm cho việc phát triển ứng dụng Web tốn thời gian và chi phí; 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. Thứ hai: Các nghiên cứu chủ yếu mới chỉ tập trung cho việc mô hình hóa, việc sinh code tự động còn nhiều hạn chế, chủ yếu mới chỉ dừng ở việc tạo ra khung để kỹ thuật viên lập trình viết mã. Khắc phục những hạn chế, tồn tại nêu trên, việc nghiên cứu xây dựng phương pháp chuyển đổi mô hình tự động, cải tiến kỹ thuật sinh mã để nâng cao chất lượng mã nguồn, tăng năng suất, 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 là vấn đề cần thiết, góp phần thúc đẩy sự phát triển của lĩnh vực ứng dụng web, một lĩnh vực giàu tiềm năng nhưng mới chỉ là bước đầu phát triển tại Việt Nam. Chính vì vậy, NCS chọn đề tài: “Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình”. Hướng tiếp cận của đề tài là phát triển bộ quy tắc chuyển đổi model to model và mode to code theo phương pháp UWE, xây dựng công cụ CODEGER-UWE để hỗ trợ phát triển các ứng dựng Web theo kiến trúc MVC. Phương pháp dựa trên việc tạo mô hình yêu cầu ở mức mô hình độc lập tính toán (Computation Independent Model – CIM), sau đó xây dựng các quy tắc chuyển đổi, để chuyển đổi sang mức mô hình độc lập nền tảng (platform-independent model – PIM) và mô hình nền cụ thể (Platform Specific Model - PSM), từ đó sinh code tự động cho ứng dụng web theo 2
  15. kiến trúc MVC. Các quy tắc chuyển đổi của nghiên cứu được xây dựng với ngôn ngữ chuyển đổi mô hình (ATLAS Transformation Language – ATL). Áp dụng phát triển ứng dụng web Chẩn đoán bệnh thủy sản “benhthuysan.vn”. Phương pháp tiếp cận giúp đảm bảo tính thống nhất giữa các mô hình sau khi chuyển đổi, góp phần đảm bảo hiệu quả chuyển đổi mô hình và sinh code tự động cho phát triển ứng dụng Web hướng mô hình theo kiến trúc MVC. Mục đích nghiên cứu Mục tiêu chung của đề tài là nghiên cứu kỹ thuật phát triển phần mềm hướng mô hình cho các ứng dụng web, nhằm phát triển bộ quy tắc chuyển đổi model to model và model to code, theo phương pháp UWE và cụ thể hóa các quy tắc chuyển đổi, bằng việc xây dựng công cụ hỗ trợ phát triển ứng dụng Web theo kiến trúc MVC. Đề tài có các mục tiêu cụ thể sau: - Tiếp cận kỹ thuật MDE, luận án phát triển bộ quy tắc chuyển đổi từ mô hình mức CIM sang PIM, sang PSM, sang mã nguồn cho phát triển ứng dụng web hướng mô hình theo phương pháp UWE. - Trên cơ sở các quy tắc đã phát triển, xây dựng công cụ sinh mã tự động cho ứng dụng web. Thực nghiệm vào phát triển ứng dụng web Chẩn đoán bệnh thủy sản (benhthuysan.vn). Nhiệm vụ nghiên cứu Với mục tiêu đặt ra ở trên, nhiệm vụ nghiên cứu của đề tài bao gồm: - Tổng hợp, phân tích các kỹ thuật phát triển phần mềm hướng mô hình, kỹ thuật phát triển ứng dụng web hướng mô hình như UWE, WebML, WebSA - Phát triển các quy tắc chuyển đổi mô hình. - Phát triển các quy tắc sinh code với ngôn ngữ ATL cho phát triển ứng dụng web hướng mô hình theo phương pháp UWE. - Xây dựng công cụ sinh code tự động cho ứng dụng web theo kiến trúc MVC. - Thực nghiệm và đánh giá: Tiến hành kiểm chứng tính khả thi của nghiên cứu đề xuất trong luận án, bằng việc áp dụng vào phát triển ứng dụng web Chẩn đoán bệnh thủy sản (benhthuysan.vn). Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu của đề tài là vấn đề chuyển đổi mô hình và sinh mã tự động cho phát triển ứng dụng web theo phương pháp UWE. Trên cơ sở đó, đề tài nghiên cứu các kiến thức thuộc về lý thuyết liên quan đến chuyển đổi mô hình và sinh code từ các mô hình yêu cầu, nội dung, điều hướng, xử lý và mô hình trình bày nhằm áp dụng trong việc phát triển các bài toán thực tế. Đề tài nghiên cứu các đặc điểm chung của phát triển ứng dụng web hướng mô hình, để xây dựng các quy tắc chuyển đổi mô hình và sinh code tự động với ngôn ngữ 3
  16. ATL cho phát triển ứng dụng Web theo kiến trúc MVC. Tiếp theo, đề tài sẽ phân tích kết quả áp dụng phát triển ứng dụng web Chẩn đoán bệnh thủy sản “benhthuysan.vn”. Phương pháp nghiên cứu Phương pháp lý thuyết Phương pháp luận án sử dụng để nghiên cứu gồm: - Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến luận án. - Nghiên cứu lý luận, hệ thống hóa lý thuyết có liên quan đến xây dựng cơ sở lý luận của đề tài: Thực trạng của kỹ thuật phát triển phần mềm hướng mô hình; Kỹ thuật phát triển ứng dụng web hướng mô hình: UWE, OOWS, WebML, WebSA. - Tổng hợp, phân tích kỹ thuật chuyển đổi mô hình theo phương pháp UWE, từng bước hình thành những vấn đề lý luận của việc phát triển các quy tắc chuyển đổi mô hình, sinh code. Phương pháp thực nghiệm Tiến hành kiểm chứng tính khả thi của nghiên cứu đề xuất trong luận án, bằng việc áp dụng vào các bài toán điển hình đã được rất nhiều nghiên cứu trong lĩnh vực này sử dụng để thực nghiệm, đặc biệt luận án đã thực nghiệm trên bài toán trong thực tế về lĩnh vực chẩn đoán bệnh thủy sản. Sử dụng nhiều công cụ khác nhau để kiểm chứng, đánh giá và so sánh tính hiệu quả giữa chúng. Ý nghĩa khoa học và thực tiễn của đề tài Ý nghĩa khoa học Đề tài tổng hợp và phân tích kỹ thuật phát triển ứng dụng web hướng mô hình. Kết quả nghiên cứu có thể làm tài liệu tham khảo cho các đơn vị phát triển phần mềm, cần tiến hành phát triển các ứng dụng Web hướng mô hình, cung cấp các tài liệu tham khảo về các vấn đề liên quan. Hướng nghiên cứu của đề tài có ý nghĩa trong việc cung cấp giải pháp phát triển các ứng dụng web hướng mô hình, giúp cho việc xây dựng ứng dụng web đạt hiệu quả cao hơn. Ý nghĩa thực tiễn Kết quả nghiên cứu là tài liệu có giá trị tham khảo trong hoạt động nghiên cứu và phát triển ứng dụng web hướng mô hình. Kết quả nghiên cứu đã đề xuất bộ quy tắc chuyển đổi mô hình và sinh code cho ứng dụng web, đồng thời cung cấp công cụ hỗ trợ cho phát triển ứng dụng web, giúp cho việc phát triển ứng dụng web hướng mô hình được thuận lợi, các doanh nghiệp phát triển ứng dụng web giảm yếu tố con người, nâng cao hiệu quả làm việc. 4
  17. Các kết quả mới đạt được Tất cả các kết quả của luận án đã được đánh giá thông qua các công trình, được đăng tải trong kỷ yếu của các hội thảo và các tạp chí. Những đóng góp của nghiên cứu bao gồm: (1) Tổng hợp lý thuyết, từ đó bổ sung phát triển các quy tắc chuyển đổi mô hình từ CIM to PIM cho phát triển ứng dụng web hướng mô hình, theo phương pháp UWE. Tổng hợp, phân tích các kỹ thuật phát triển ứng dụng web hướng mô hình như UWE, WebML, WebSA. Nội dung này được trình bày trong chương 1 và chương 2 của luận án, có 4 công trình công bố liên quan: CT1, CT2, CT3, CT7. (2) Xây dựng phương pháp sinh mã và tích hợp phát triển công cụ CODEGER-UWE sinh code cho ứng dụng web, theo phương pháp UWE, với ngôn ngữ chuyển đổi mô hình ATL. Nội dung này được trình bày trong chương 3 và có 2 công trình công bố liên quan: CT4, CT5. (3) Áp dụng xây dựng chuẩn đoán bệnh thủy sản trên nền tảng benhthuysan.vn. Nội dung này được trình bày trong chương 3 (mục 3.4) và có 2 công trình công bố liên quan: CT6, CT8. 5
  18. CHƯƠNG 1: PHÁT TRIỂN PHẦN MỀM HƯỚNG MÔ HÌNH Chương 1, tác giả giới thiệu về kiến trúc MDA, tổng hợp, phân tích các thành phần trong MDA như các mô hình CIM, PIM, PSM. Phân tích, so sách một số kỹ thuật Web hướng mô hình điển hình như OOWS, UWE, WebML, WebSA làm cơ sở để lựa chọn, xây dựng mô hình và các quy tắc chuyển đổi trong chương 2. Trong chương 1, tác giả cũng trình bày tình hình các nghiên cứu liên quan, phân tích cụ thể điểm mạnh và điểm cần cải tiến của các nghiên cứu và dẫn tới lý do của đề tài luận án. 1.1. Kiến trúc MDA MDA (Model Driven Architecture) được định nghĩa bởi OMG [18, 19]: “MDA là một cách tiếp cận đặc tả hệ thống công nghệ thông tin, nó phân tách các đặc tả chức năng và các đặc tả thực thi”. Một mô hình trong MDA, là một đặc tả hình thức của chức năng và cấu trúc, cũng như hành vi ứng xử của một ứng dụng hay một hệ thống phần mềm. Hình 1.1. Tổng quan về MDA [18] Kiến trúc hướng mô hình (MDA) là kỹ thuật mới cho sự phát triển sản phẩm phần mềm. Kỹ thuật này giải quyết được sự phức tạp của nền tảng công nghệ khác nhau, bằng việc sử dụng các mô hình (models) như là tác nhân chính trong toàn bộ vòng đời phát triển ứng dụng, giảm sự phụ thuộc vào nền tảng công nghệ [20]. Khi có nền tảng mới ra đời, thì ứng dụng mới sẽ được chuyển đổi tự động từ các mô hình để tương thích với nền tảng mới. Do đó, MDA đang trở thành một phương pháp tiếp cận được chấp nhận rộng rãi, để phát triển các ứng dụng phức tạp và ngày càng dành được nhiều sự quan tâm của cộng đồng nghiên cứu, cũng như giới công nghiệp phần mềm. Các ứng dụng Web, bao gồm nhiều thành phần khác nhau, có thể được cung cấp bởi những nhà phát triển khác nhau với nền tảng công nghệ khác nhau, nên việc sử dụng các kỹ thuật phát triển hướng mô hình cho các ứng dụng Web đặc biệt hữu ích [1, 15, 16]. Các kỹ thuật này đã khắc phục được nhiều hạn chế mà các quá trình phát 6
  19. triển phần mềm trước đó chưa giải quyết được, giảm chi phí thực hiện dự án phần mềm, tăng năng suất thực hiện dự án một cách trực tiếp hoặc thông qua giảm khối lượng công việc làm lại [21]. MDA là một cách tiếp cận mô hình hoá trực quan, trong suốt quy trình tìm hiểu, phân tích, thiết kế, thực thi một hệ thống phần mềm. MDA phân chia các mô hình đặc tả hệ thống từ mức độ trừu tượng hóa cao, cho đến mức chi tiết và cung cấp các quy tắc chuyển đổi, cho phép chuyển đổi giữa các mô hình. Hình 1.2 thể hiện tiến trình phát triển phần mềm theo MDA [19, 22-25]. Hình 1.2. Tiến trình MDA [22] − Computation Independent Model (CIM) – Mô hình độc lập tính toán CIM không hiển thị chi tiết về kiến trúc của hệ thống [26], CIM đại diện cho tiến trình nghiệp vụ của tổ chức sẽ được xây dựng. Mô hình CIM tập trung vào sự đặc tả hệ thống bằng các thuật ngữ gần gũi với người làm nghiệp vụ, được xác định bởi sự kết hợp làm việc giữa người phân tích nghiệp vụ và những người làm nghiệp vụ sẽ sử dụng hệ thống. Chính vì vậy, mô hình CIM còn được gọi là mô hình phạm vi hay mô hình nghiệp vụ. CIM chỉ miêu tả môi trường mà hệ thống thực thi và nó hỗ trợ chúng ta hình dung ra được hệ thống đích, mà chúng ta muốn từ các yêu cầu ban đầu [22]. CIM cũng đóng vai trò quan trọng trong việc thu hẹp khoảng cách giữa người sử dụng và các chuyên gia trong lĩnh vực thiết kế, phát triển hệ thống [1]. Trong phát triển phần mềm sử dụng hướng tiếp cận MDA, thì các yêu cầu cụ thể trong CIM có mối liên hệ chặt chẽ với cấu trúc PIM và PSM [22]. − Platform Independent Model (PIM) – Mô hình độc lập nền PIM là một khung nhìn của hệ thống từ một điểm nhìn độc lập với nền công nghệ [1, 20]. Mô hình độc lập nền chỉ chú trọng vào các thao tác của hệ thống, ẩn đi chi tiết cụ thể về nền công nghệ. Tức là ta không quan tâm đến công nghệ nào sẽ được sử dụng để phát triển hệ thống. Một PIM cần thể hiện được sự không phụ thuộc nền công nghệ và nó thích hợp cho việc sử dụng, với nhiều nền công nghệ khác nhau hoặc tương tự nhau. − Platform Specific Model (PSM) – Mô hình nền cụ thể PSM là một khung nhìn của hệ thống từ góc độ của một nền công nghệ cụ thể nào đó. PSM chứa những gì được thể hiện trong PIM [27], với các chi tiết cụ thể của một nền công nghệ sẽ được sử dụng để phát triển phần mềm như Java, .Net Hình 7
  20. 1.3 trình bày một cách tổng quan về sự phân loại các mô hình chính của MDA theo trật tự từ mức độ trừu tượng hóa đến cụ thể hoá. Trừu tượng hóa CIM: Mô hình độc lập với thao tác tính toán PIM: Mô hình độc lập nền công nghệ MDA PSM: Mô hình theo nền công nghệ cụ thể Cụ thể hóa Hình 1.3. Sự phân loại các mô hình chính trong MDA 1.1.1. Chuyển đổi mô hình trong MDA Chuyển đổi mô hình là trung tâm của kỹ thuật phần mềm hướng mô hình [28, 29]. Sự chuyển đổi mô hình trong MDA là việc sử dụng một cơ chế nào đó, để biến đổi các mô hình ở mức trừu tượng hoá cao, thành các mô hình ở mức cụ thể và chi tiết hơn dựa trên sự định nghĩa các quy tắc chuyển đổi. Đó là sự chuyển từ CIM sang PIM, từ PIM sang PSM, và từ PSM có thể chuyển thành mã chương trình cụ thể thực thi hệ thống [30]. Hình 1.4 mô phỏng sự chuyển đổi giữa các mô hình trong MDA. Hình 1.4. Chuyển đổi mô hình trong MDA[31] Theo [32] chuyển đổi mô hình là trung tâm của MDA, có 2 loại chuyển đổi mô hình thường gặp trong MDA: Chuyển đổi mô hình tới mô hình, và chuyển đổi mô hình tới mã nguồn. Chuyển đổi mô hình tới mô hình: Chuyển đổi thông tin từ một mô hình hay nhiều mô hình tới một mô hình khác, hay một tập các mô hình. Một ví dụ về chuyển đổi mô hình tới mô hình là chuyển đổi một tập các lớp thực thể, thành một lược đồ cơ sở dữ liệu tương ứng. Chuyển đổi mô hình tới mã nguồn là một chuyển đổi thông dụng đối với những người đã dùng các công cụ mô hình hóa UML có khả năng sinh mã. Các chuyển đổi này, chuyển đổi một thành phần của mô hình sang một đoạn mã nguồn. Chuyển đổi 8
  21. mô hình tới mã nguồn có thể được phát triển cho gần như bất kỳ dạng ngôn ngữ lập trình nào. 1.1.1.1. Chuyển đổi từ CIM sang PIM Mô hình Độc lập tính toán (CIM), có nghĩa là mô hình này không chứa bất kỳ thông tin nào về hệ thống phần mềm. Mô hình CIM được trình bày bởi các mô hình quy trình nghiệp vụ, được cho là đại diện cho thế giới thực. Chuyển đổi từ CIM sang PIM, là chuyển đổi đầu tiên trong MDA và nó rất quan trọng trong việc thiết kế phần mềm chất lượng cao. Đầu tiên, sử dụng sơ đồ hoạt động UML để xử lý các tác vụ của người sử dụng. Sơ đồ hoạt động này được chỉ rõ trong các yêu cầu hệ thống. Các thành phần hệ thống được suy luận từ mô hình yêu cầu và một bộ các nguyên mẫu, giúp các thành phần hệ thống tạo ra PIM. Hình 1.5. Mô hình chuyển từ CIM sang PIM [20] 1.1.1.2. Chuyển đổi từ PIM sang PSM Theo vết mô hình Hình 1.6. Đánh dấu mô hình [31] Hình 1.6 miêu tả chi tiết một trong những cách mà một chuyển đổi có thể được thực hiện. Một nền công nghệ cụ thể được lựa chọn. Ánh xạ cho nền công nghệ này sẵn có và được chuẩn bị. Ánh xạ này bao gồm một bộ thiết bị đánh dấu. Các dấu được 9
  22. sử dụng nhằm đánh dấu các yếu tố mô hình để hướng dẫn cho quá trình biến đổi mô hình. Việc sử dụng ánh xạ sẽ làm cho PIM đánh dấu được biến đổi xa hơn nhằm tạo ra PSM. Quá trình biến đổi siêu mô hình – Metamodel Hình 1.7. Quá trình biến đổi Metalmodel [31] Mô hình được chuẩn bị bằng cách sử dụng một ngôn ngữ độc lập với nền công nghệ được xác định bởi một metamodel. Một nền công nghệ cụ thể được lựa chọn. Đặc tả mô hình chuyển đổi nền tảng này hiện có sẵn hoặc được chuẩn bị. Sự chuyển đổi đặc tả này dưới dạng ánh xạ giữa các metamodel. Ánh xạ chỉ dẫn sự chuyển đổi của PIM tạo ra PSM. Quá trình biến đổi mô hình Hình 1.8. Quá trình biến đổi mô hình [31] Mô hình được chuẩn bị bằng cách sử dụng các kiểu độc lập nền công nghệ trong mô hình. Các kiểu có thể là phần của một khung phần mềm. Các yếu tố trong PIM là các kiểu phụ của dạng độc lập nền công nghệ. Một nền công nghệ cụ thể được lựa chọn. Dạng biến đổi đặc tả nền công nghệ này sẵn có hoặc được chuẩn bị sẵn. Sự 10