intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận án Tiến sĩ Kỹ thuật phần mềm: 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

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:145

43
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

Nội dung Text: Luận án Tiến sĩ Kỹ thuật phần mềm: 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 MDA lập nền công nghệ 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2