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
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].
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”.
Tóm tắt nội dung 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
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 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 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ố. TM. Tập thể giáo viên hướng dẫn PGS.TS. Huỳnh Quyết Thắng Hà Nội, ngày 01 tháng 12 năm 2021 Tác giả Trần Đình Diễn 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. MỤC LỤC 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 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 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 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 Hình 2.1. Siêu mô hình điều hướng (Navigation Metamodel) 34 Hình 2.2. Siêu mô hình xử lý (Process Metamodel) 35 Hình 2.3. Siêu mô hình trình bày (Presentation Metamodel) 36 Hình 2.4. Chuyển đổi từ CIM tới PIM trong UWE 36 Hình 2.5. Chuyển đổi mô hình từ PIM san PSM trong UWE 37 Hình 2.6. Chuyển đổi Requirements to Content 37 Hình 2.7. Mô tả các quy tắc để thêm các hoạt động 38 Hình 2.8. Chuyển đổi RequirementsAndContent2Navigation 39 Hình 2.9. Chuyển đổi sang mô hình xử lý 42 Hình 2.10. Chuyển đổi AvigationAndProcess to Presentation 43 Hình 2.11. Chuyển đổi mô hình và mã nguồn tích hợp ràng buộc OCL 49 Hình 2.12. Biểu đồ diễn tiến chuyển đổi bất biến trong mô hình xử lý 50 Hình 2.13. Biểu đồ chuyển đổi tiền điều kiện – hậu điều kiện mô hình xử lý 51 Hình 2.14. Biểu đồ chuyển đổi ràng buộc bất biên mô hình trình bày 54 Hình 2.15. Use Case meta-model 57 Hình 2.16. Activity Diagram Metamodel 58 Hình 2.17. Content Metamodel 60 Hình 2.18. Navigation Metamodel 60 Hình 2.19. Process Metamodel 61 Hình 2.20. Presentation Metamodel 61 Hình 2.21. Tổng quan phương pháp đề xuất 62 Hình 2.22. Biểu đồ Use Cases của MusicPortal 70 Hình 2.23. Biểu đồ Activity cho quy trình BuyAlbum 71 Hình 2.24. Mô hình nội dung của MusicPortal 72 Hình 2.25. Mô hình điều hướng của MusicPortal 72 Hình 2.26. Mô hình xử lý của MusicPortal 73 Hình 2.27. 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 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 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 ... and J. Rubin, eds., Sweden: Springer, Berlin, Heidelberg, 2017. [Online]. Available. [36] J. Troya, A. Bergmayr, L. Burgueño, and M. Wimmer, "Towards systematic mutations for and with ATL model transformations," presented at the 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), Graz, Austria 2015. [37] C. A. Bader Alkhazia, Marouane Kessentinia, Manuel Wimmer, "On the Value of Quality Attributes for Refactoring ATL Model Transformations: A Multi-Objective Approach," Information and Software Technology, vol. Volume 120, 2019. [38] F. A. a. Frédéric Jouaulta, Jean Bézivina, Ivan Kurtev, "ATL: A model transformation tool," Science of Computer Programming, vol. 72, no. Issues 1–2, p. 9, 2008. [39] F. Erata, M. Challenger, and G. Kardas, "Review of Model-to-Model Transformation Approaches and Technologies," ITEA, 2015. [40] K. M. A. Aziz, "Evaluating Model Transformation Technologies," Student essay, Department of Computer Science and Engineering, University of Gothenburg, G¨oteborg, Sweden, 2011. [41] A. G.-L. Amine Benelallam, Massimo Tisi, Jordi Cabot, "Distributed Model-to-Model Transformation with ATL on MapReduce," presented at the Proceedings of the 2015 ACM SIGPLAN International Conference on Software Language Engineering, USA, October 25-27, 2015. [42] G. M. K. Selim, J. R. Cordy, and J. Dingel, "How is ATL Really Used? Language Feature Use in the ATL Zoo," presented at the 20th International Conference on Model Driven Engineering Languages and Systems (MODELS), Austin, TX, USA 2017. [43] J. Troya, M. Fleck, M. Kessentini, M. Wimmer, and B. Alkhaze, "Rules and Helpers Dependencies in ATL– Technical Report " 2016. [44] H. Bruneliere. (2014). ATL/Developer Guide: https://wiki.eclipse.org/ATL/User_Guide_-_Overview_of_the_ATL_Language#Structure_of_an_ATL_module. [45] F. Jouault and I. Kurtev, "On the Architectural Alignment of ATL and QVT," in 21st Annual ACM Symposium on Applied Computing, SAC 2006, Dijon, France, 2006, pp. 1188-1195: ACM Press. [46] L. A. Schubert, "An Evaluation of Model Transformation Languages for UML Quality Engineering," (in e), 2010. [47] A. F. Subahi, "A Business User Model-Driven Engineering Method for Developing Information Systems," Department of Computer Science, University of Sheffie, England, UK, 2015. [48] G. Hinkel, "An approach to maintainable model transformations with an internal DSL," (in e), 2013. [49] L. Dan, "Enabling Component-BasedModel Transformations with QVT," (in e), 2013. [50] A. B. Batoure and Kolyang, "Using Model-Driven Engineering for Decision Support Systems Modelling, Implementation and Powering," International Journal of Data Engineering (IJDE), vol. Volume 8, no. Issue (1) : 2020 2020. [51] L. Zhihong, "A Meta-Modelling Language Definition for Specific Domain," Software Technology Research Laboratory, De Montfort University, 2008. [52] A. Suchenia, P. Łopata, P. Wiśniewski, and B. Stachura-Terlecka, "Towards UML representation for BPMN and DMN models," presented at the International Conference of Computational Methods in Engineering Science (CMES’18), Krakow, Poland, 2019. [53] MohammedMisbhauddin and M. Alshayeb, "Extending the UML use case metamodel with behavioral information to facilitate model analysis and interchange," 2013. [54] S. Thomas and V. Markus, Model-Driven Software Development. England: John Wiley & Sons Ltd, 2006, p. 436. [55] U. M. Language, 2010. [Online]. Available. [56] E.V.Sunitha and P. Samuel, "Object Constraint Language for Code Generation from Activity Models," Information and Software Technology, vol. Volume 103, pp. Pages 92-111, 2018. [57] J. Poole, "The Common Warehouse Metamodel as a Foundation for Active Object Models in the Data Warehousing Environment," in ECOOP 2000, France, 2000. [58] O. M. Group, Common Warehouse Metamodel (CWM) Specification, 2003. [Online]. Available. [59] A. Vallecillo, N. Koch, and C. Cachero, "MDWEnet: A Practical Approach to Achieving Interoperability of Model-Driven Web Engineering Methods," in International Conference on Web Engineering (ICWE 2007), Italy, 2007. [60] J. M. R´ıos and N. P. Souto, "Comparison of development methodologies in Web applications," Information and Software Technology, vol. Volume 119, 2020. [61] K. Andreas, K. Alexander, and K. Nora, "Model-Driven Generation of Web Applications in UWE," in 3rd International Workshop on Model-Driven Web Engineering, Italy, 2007, vol. 261, pp. 23-38. [62] N. Koch and S. Kozuruba, "Requirements Models as First Class Entities in Model-DrivenWeb Engineering," in Proceedings of the 12th international conference on Current Trends in Web Engineering Germany, 2012. [63] M. Santiago, "The webSA approach: applying model driven engineering to web applications," University of Alicante, Spain, 2006. [64] J. M. H. Carbonell, "Model-Driven Development of Rich Internet Applications on the Sematic web," 2013. [65] R. Gustavo, P. Oscar, S. Daniel, and O. Luis, Web Engineering: Modelling and Implementing Web Applications. New York: Springer, 2008. [66] P. Patel, A. Hande, and Meshram, "Survey of Existing Web Models Techniques to Design Web Application," (in e), Int.J. Computer Technology & Applications (IJCTA), 2013. [67] S. Ceri, P. Fraternali, and A. Bongio, "Web Modeling Language (WebML): a modeling language for designing Web sites," (in e), 2000. [68] P. Cáceres, V. Castro, J. Vara, and E. Marcos., "Model transformations for hypertext modeling on web information systems. ," in Proceedings of the 2006 ACM symposium on Applied computing., 2006. [69] G. S. Rivera, J. A. Gallud, and R. Tesoriero, "Code Generation Using Model Driven Architecture: A Systematic Mapping Study," Journal of Computer Languages 2019. [70] N. Kahani, M. Bagherzadeh, J. R. Cordy, and J. Dingel, "Survey and classification of model transformation tools," in Software & SystemsModelingVerlag GmbH Germany: Springer, 2019. [71] M. Busch and N. Koch, "MagicUWE – A CASE Tool Plugin for Modeling Web Applications," in 9th International Conference, ICWE 2009, Spain, 2009, vol. 5648, pp. 505-508: Springer Berlin Heidelberg. [72] (2016). UWE – UML-based Web Engineering. [73] M. Busch and M. Á. G. d. Dios, "ActionUWE: Transformation of UWE to ActionGUI Models," Institute for Informatics, Germany2012. [74] I. Essebaa, C. Salima, and M. Ramdani, "MoDAr-WA: Tool Support to Automate anMDA Approach for MVCWeb Application," Computers 2019, no. , p. 23, 2019. [75] M. h. RAHMOUNI and S. MBARKI, "Model-Driven Generation of MVC2 Web Applications: From Models to Code," International Journal of Engineering and Applied Computer Science (IJEACS), vol. Volume: 02, no. 07, 2017. [76] G. Paolone, M. Marinelli, R. Paesani, and P. D. Felice, "Automatic Code Generation of MVC Web Applications," computers, vol. Vol. 9, no. Issue 3, p. 29, 2020. [77] C. Kroiß and N. Koch, "UWE Metamodel and Profile. User Guide and Reference. Version 1.9," in "Programming and Software Engineering Unit (PST)," Ludwig-Maximilians-Universität München, Germany2011. [78] Y. H. Yassine Rhazalia, Abdelaziz Mouloudia, "Model Transformation with ATL into MDA from CIM to PIM Structured through MVC," Procedia Computer Science, vol. 83, pp. 1096-1101, 2016. [79] Y. Rhazali, A. E. Hachimi, I. Chana, and M. Lahmer, Automate Model Transformation From CIM to PIM up to PSM in Model- Driven Architecture, USA: IGI-GLOBAL, 2020, p. 22. [Online]. Available. [80] T. Górski, "Model-to-model transformations of architecture descriptions of an integration platform," Journal of Theoretical and Applied Computer Science, 2014. [81] J. S. Cuadrado, E. Guerra, and J. d. Lara, "AnATLyzer: An Advanced IDE for ATL Model Transformations," presented at the 40th International Conference on Software Engineering: Companion (ICSE-Companion), Gothenburg, Sweden 2018. [82] O. V. Chebanyuk and U. KYIV, "Designing of Software Model to Model Transformation Language," International Journal of Computers, vol. Volume 3, pp. Pages 120-129, 2018. [83] N. Kahani, M. Bagherzadeh, J. R. Cordy, J. Dingel, and D. Varró, "Survey and classification of model transformation tools," Software and Systems Modeling (SoSyM), vol. 18, p. 37, 2018. Springer [84] V. T. Bosch, "A Web Engineering Approach for the Development of Business-Process Driven Web Applications," Department of Information Systems and Computation Technical University of Valencia, 2008. [85] N. Koch, "Classification of Model Transformation Techniques used in UML-based Web Engineering," (in e), the 2nd Workshop on Model-Driven Web Engineering (MDWE`06), 2006. [86] I. No Magic, "https://www.nomagic.com/products/magicdraw " 2020. [87] N. Kharmoum, S. Retal, S. Ziti, and F. Omary, "A Novel Automatic Transformation Method from the Business Value Model to the UML Use Case Diagram," presented at the Advanced Intelligent Systems for Sustainable Development (AI2SD’2019), Marrakech, Morocco, 2019. [88] Examples - Simple Music Portal https://uwe.pst.ifi.lmu.de/exampleMusicPortal.html. [89] J. Küster, " Model-Driven Software Engineering Code Generation," in "IBM," IBM Research – Zurich, Switzerland2011. [90] A. Bajovs, O. Nikiforova, and J. Sejans, "Code Generation from UML Model: State of the Art and Practical Implications," Applied Computer Systems, vol. 14, no. 1, p. 10, 08 Jun 2013 2013. [91] M. Voelter, "A Catalog of Patterns for Program Generation," presented at the 8th European Conference on Pattern Languages of Programms (EuroPLoP '2003), Germany, 2003. [92] K. Czarnecki and S. Helsen, "Feature-Based Survey of Model Transformation Approaches," IBM Systems Journal, vol. 45, no. 3, pp. 621 - 645, March 15, 2006 2006. [93] K. C. a. S. Helsen, "Classification Classification of Model Transformation Approaches," presented at the OOPSLA’03 Workshop on Generative Techniques in the Context of MDA, USA, 2005. [94] A. A. H. Alzahrani, "4GL Code Generation: A Systematic Review," (IJACSA) International Journal of Advanced Computer Science and Applications, vol. Vol. 11, no. Issue 6, 2020. , p. 8, 2020. [95] Q. X. Kevin Lano and S. Kolahdouz-Rahimi, "Agile Specification of Code Generators for Model-Driven Engineering," in The Fifteenth International Conference on Software Engineering Advances, Porto, Portugal, 2020: IARIA. [96] S. Systems, "Model Transformation - Sparx Systems Enterprise Architect," (Sparx Systems Enterprise Architect supports Model Driven Architecture (MDA) transformations of a single element or a whole Platform Independent Model (PIM) to one or more output Platform Specific Models (PSM) in, for example, Oracle, MySQL or SQLite. Sparx Systems - Australia: Sparx Systems, 2020, p.^pp. Pages. [97] E. Syriani, L. Luhunu, and H. Sahraoui, "Systematic Mapping Study of Template-based Code Generation," Computer Languages, Systems & Structures, pp. 43-62, June 19, 2018 2018. [98] M. Varshosaz, "Test Models and Algorithms for Model-Based Testing of Software Product Lines," 2017.
File đính kèm:
- luan_an_cac_ky_thuat_chuyen_doi_mo_hinh_va_sinh_ma_trong_pha.docx
- 1. Luan An.pdf
- 2_Luan an tom tat.docx
- 2_Luan an tom tat.pdf
- 3. Trich yeu luan an.docx
- 3. Trich yeu luan an.pdf
- 4. Thong tin dua len web_VNI.docx
- 4. Thong tin dua len web_VNI.pdf
- 5. Thong tin dua len web_ENG.docx
- 5. Thong tin dua len web_ENG.pdf