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

Tóm tắt 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:27

20
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 "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à 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: Tóm tắt 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 Ngành: Kỹ thuật phần mềm Mã số: 9480103 TÓM TẮT LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM Hà Nội - 2021
  2. Công trình được hoàn thành tại Trường Đại học Bách khoa Hà Nội 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 Phản biện 1: Phản biện 2: Phản biện 3: Luận án được bảo vệ trước Hội đồng đánh giá luận án tiến sĩ cấp Trường họp tại Trường Đại học Bách khoa Hà Nội Vào hồi …….. giờ, ngày ….. tháng ….. năm ……… Có thể tìm hiểu luận án tại thư viện: 1. Thư viện Tạ Quang Bửu - Trường ĐHBK Hà Nội 2. Thư viện Quốc gia Việt Nam
  3. DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN 1. Trần Đình Diễn, Huỳnh Quyết Thắng (2015), Phát triển ứng dụng Web hướng mô hình dựa trên kỹ thuật WEB UWE, Kỷ yếu Hội nghị Quốc gia lần thứ VIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR) - Hà Nội, ngày 9-10/7/2015, trang 564-574 ISBN: 978-604-913- 397-8. 2. Nguyen Thi Thuy Linh, Tran Dinh Dien, Bui Quang Thang, Huynh Quyet Thang (2015), Integration MDA Techniques in Solving A Class of Web Application with Similar Structure, AUN/SEED-Net Regional Conference for Computer and Information Engineering 2015, ngày 01-02/10/2015, trang 78-83 ISBN: 978-604-938-689-3. 3. Dien Tran Dinh, Thang Huynh Quyet, Khanh Tran Quoc (2018), Model Transformation with OCL Integration in UWE. In FICTA2018: International Conference on Frontiers of Intelligent Computing: Theory and Applications, November 29-30, 2018. Frontiers in Intelligent Computing: Theory and Applications - Proceedings of the 7th International Conference on FICTA (2018), Volume 1, pp. 199-211, ISBN: 978-981-32- 9186-7, SCOPUS Indexed. 4. Quyet-Thang Huynh, Dinh-Dien Tran, Thi-Mai-Anh Bui, Phi-Le Nguyen (2019), Development of Rules and Algorithms for Model-Driven Code Generator with UWE Approach. New Trends in Intelligent Software Methodologies, Tools and Techniques, Volume 318, 2019, pp. 531 - 544 (SOMET 2019), ISBN: 978-1-64368-012-5, DOI 10.3233/FAIA190078, WoS, SCOPUS Indexed. 5. Trần Đình Diễn, Huỳnh Quyết Thắng, Bùi Thị Mai Anh, Hoàng Thành Đạt, Nguyễn Phi Lê (2021), Xây dựng và thử nghiệm công cụ CODEGER-UWE phát triển ứng dụng Web hướng mô hình, Journal of Science and Technology (JST), Vol 1, Issue 2, April 2021, trang 035-039, ISSN: 2734 - 9381. 6. Trần Đình Diễn, Huỳnh Quyết Thắng, Hoàng Thành Đạt (2021), Phát triển thuật toán sinh code cho ứng dụng web chuẩn đoán bệnh thủy sản với ATL, Tạp chí Nghiên cứu Khoa học và Công nghệ quân sự (JMST), số 72, 4 – 2021, trang 102-111, ISSN: 1859-1043.
  4. MỞ ĐẦU Lý do chọn đề tài 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 bảo trì hệ thống. Đặc biệt sự phát triển nhanh chóng và ngày càng phức tạp của các nền tảng công nghệ mới. 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ệ. 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. Các nghiên cứu đã minh chứng, việc cung cấp 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, làm giảm yếu tố con người, giảm thời gian phát triển ứng dụng web. 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à phương pháp hướng đối tượng dựa trên ngôn ngữ mô hình hóa UML, là một trong những phương pháp tiếp cận MDE cho phát triển ứng dụng web. 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ã. 1
  5. 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. 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ô 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. 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 ATL. 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. 2
  6. - 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ữ 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 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 như UWE, OOWS, WebML, WebSA đã được sử dụng rộng rãi cho việc thiết kế và phát triển của các ứng dụng Web. - 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 3
  7. 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 đã đề 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. Các kết quả mới đạt được Luận án có 8 công trình khoa học được công bố. Trong đó, 6 công trình đã được công bố và 2 công trình trình sẽ được công bố trong thời gian tới. 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 kết quả của nghiên cứu bao gồm: (1) Tổng hợp lý thuyết và 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ó 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 4
  8. 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. 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 Kiến trúc hướng mô hình (Model Driven Architecture - 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ệ. Các mô hình chính trong MDA gồm: Hình 1.2. Tiến trình MDA - Mô hình độc lập tính toán - Computation Independent Model (CIM): CIM không hiển thị chi tiết về kiến trúc của hệ thống, 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 độc lập nền - Platform Independent Model (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ệ. 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. - Mô hình nền cụ thể - Platform Specific Model (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, 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... 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. 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 chuyển thành mã chương trình. 5
  9. 1.1.2. Ngôn ngữ chuyển đổi mô hình ATL (ATLAS Transformation Language) là ngôn ngữ chuyển đổi mô hình. ATL cung cấp cho các nhà phát triển cách thức để tạo ra một tập các mô hình đích từ một tập các mô hình nguồn. 1.2. Các chuẩn của OMG cho MDA 1.2.1. MOF – Meta Object Facility MOF là ngôn ngữ dùng để định nghĩa ngôn ngữ mô hình và cũng cung cấp các khái niệm và công cụ cho ngôn ngữ mô hình hóa. MOF là công nghệ cốt lõi của MDA. 1.2.2. UML – Unified modeling Language UML là ngôn ngữ mô hình hoá, ngôn ngữ đặc tả và ngôn ngữ xây dựng mô hình trong quá trình phát triển phần mềm, đặc biệt là trong phân tích và thiết kế hệ thống hướng đối tượng. 1.2.3. OCL (Object Constraint Language) OCL là ngôn ngữ khai báo cho các định nghĩa của các ràng buộc (giới hạn) như, quy tắc định nghĩa mô hình cho các ngôn ngữ mô hình dựa trên MOF. OCL được xây dựng và phát triển với mục đích bổ sung cho các đặc tả UML trở nên rõ ràng và chính xác hơn. 1.2.4. UML Profile Một UML Profile là sự mở rộng của UML, được định nghĩa bởi một tập các khuôn mẫu (stereotype), một tập các ràng buộc liên quan và một tập các giá trị được gán nhãn (tag value). Một định nghĩa khuôn mẫu được đặt tên và được đính kèm vào các thành phần trong meta-model. 1.3. Kỹ thuật web hướng mô hình 1.3.1. UWE (UML-Based Web Engineering) UWE là phương pháp hướng đối tượng dựa trên ngôn ngữ mô hình hóa UML, là một trong những kỹ thuật đầu tiên phát triển theo kỹ thuật hướng mô hình và được sử dụng nhiều nhất, phù hợp nhất cho kỹ thuật Web hướng mô hình. 1.3.2. Web Software Architecture (WebSA) WebSA là một cách tiếp cận hướng mô hình cho phát triển ứng dụng web. Quá trình phát triển dựa trên MDA thiết lập 4 giai đoạn của vòng đời phát triển: Phân tích; thiết kế độc lập nền tảng, nơi xây dựng mô hình nền tảng độc lập (PIM); thiết kế nền tảng cụ thể, nơi xây dựng mô hình nền tảng độc lập (PSM); và mã nguồn. Phương pháp này nhóm các mô hình ứng dụng web thành 2 khung nhìn: Chức năng và kiến trúc. 1.3.3. WebML (Web Modeling Language) WebML là một ngôn ngữ mô hình Web. Phát triển ứng dụng với 6
  10. WebML được hỗ trợ bởi WebRatio, một công cụ thương mại cho việc thiết kế và thực hiện các ứng dụng Web. WebML có 4 mô hình được đưa ra: (1) Mô hình cấu trúc. (2) Mô hình siêu văn bản mô tả một hoặc nhiều hypertexts, (3) Mô hình thể hiện, (4) Mô hình cá nhân hóa. 1.3.4. OOWS - Object-Oriented Web Solution OOWS là phương pháp kỹ thuật Web, nó cung cấp kỹ thuật để hỗ trợ cho việc phát triển ứng dụng Web. OOWS là sự mở rộng của phương pháp OO-H. OO-H gồm 3 mô hình: Mô hình cấu trúc, mô hình động, mô hình chức năng. Để phù hợp cho việc phát triển ứng dụng web, OOWS đề xuất mới 3 mô hình: Mô hình người dùng, mô hình điều hướng và mô hình trình bày. Ba mô hình mới cho phép mô tả đầy đủ các ứng dụng Web tại mức PIM. Quá trình tạo mã thực hiện bởi công cụ OlivaNova. 1.3.5. Hypertext Modeling Method of MIDAS (MIDAS-HM3) MIDAS (HM3) là một phương pháp luận cho sự phát triển nhanh hệ thống Web dựa trên MDA. Nó đề xuất mô hình hóa hệ thống bằng cách quy định mô hình độc lập với tính toán (CIMs), PIMs, PSMs. Đề xuất mô hình hóa hệ thống theo ba khía cạnh: Siêu văn bản, nội dung và hành vi. Tuy nhiên, MIDSMH3 không đề xuất bất cứ mô hình hóa nào liên quan đến các vấn đề về kiến trúc. 1.4. Các nghiên cứu liên quan và nhiệm vụ trong luận án Từ việc tìm hiểu các công bố trong và ngoài nước cho thấy, 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: (i) Kết quả chuyển đổi mô hình 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í; (ii) 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ã. Để giải quyết những tồn tại trên. Luận án cần tập trung nghiên cứu: - Phát triển các quy tắc chuyển đổi mô hình và 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, giúp cho việc phát triển ứng dụng web hướng mô hình được thuận lợi. - 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). 7
  11. 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 Trong chương này, tác giả trình bày tổng hợp lý thuyết về các kỹ thuật chuyển đổi mô hình CIM to PIM theo phương pháp UWE. Trình bày chi tiết kết quả nghiên cứu phát triển các quy tắc chuyển đổi từ CIM to PIM. Liên quan đến các kết quả trình bày trong chương này, tác giả có 4 công trình nghiên cứu liên quan: CT1, CT2, CT3, CT7. 2.1. Các mô hình trong UWE Mô hình yêu cầu (Requirements Model): Tập trung vào việc sử dụng biểu đồ ca sử dụng của ngôn ngữ UML, để xác định các xử lý và hoạt động mà ứng dụng Web cần thực hiện. Mô hình nội dung (Content Model): Mô tả nội dung cho các ứng dụng web. Mô hình điều hướng (Navigation Model): Được sử dụng để xác định luồng chuyển hướng mà người sử dụng có thể làm theo. Mô hình xử lý (Process Model): Đặc tả hành vi của ứng dụng Web, những hành động của người dùng và phản hồi của ứng dụng tương ứng. Mô hình trình bày (Presentation Model): Mô tả một cái nhìn trừu tượng về giao diện người dùng. 2.2. Chuyển đổi mô hình trong UWE Chuyển đổi mô hình là quá trình, trong đó một mô hình là nguồn được chuyển thành một mô hình khác – mô hình đích, bằng cách sử dụng các quy tắc chuyển đổi nhất định. Hình 2.4. Chuyển đổi từ CIM tới PIM trong UWE Áp dụng các nguyên tắc của MDA, phương pháp tiếp cận UWE đề xuất để xây dựng một tập hợp các CIMS, PIM và chuyển đổi từ CIM sang PIM (Hình 2.4), từ PIM sang PSM, và từ PSM có thể chuyển thành mã chương. 8
  12. 2.3. Phát triển quy tắc chuyển đổi mô hình tích hợp ràng buộc OCL 2.3.1. Giới thiệu phương pháp 2.3.2. Tích hợp OCL trong mô hình xử lý Luận án tập trung vào 2 ràng buộc OCL là ràng buộc bất biến và tiền điều kiện - hậu điều kiện: - Chuyển đổi rằng buộc bất biến Quy trình chuyển đổi bất biến mô hình yêu cầu sang mô hình xử lý B1: Đọc mô hình lấy danh sách các activity diagram. B2: Với mỗi activity diagram, đọc lấy danh sách các node. B3: Với mỗi node có sterrotype là user action. Lấy danh sách các output pin, loại bỏ các pin trùng lặp. B4: Với mỗi pin, đọc tất các ràng buộc bất biến của pin đó. Thêm vào danh sách ràng buộc nếu chưa tồn tại. B5: Tạo ràng buộc tương ứng và thêm vào cho các thuộc tính tương ứng trong process class tương ứng tạo ra trong U2C. - Chuyển đổi tiền điều kiện – hậu điều kiện Quy trình chuyển đổi tiền điều kiện - hậu điều kiện sang mô hình xử lý B1: Đọc mô hình lấy danh sách các activity diagram. B2: Với mỗi activity diagram, đọc lấy danh sách các node. B3: Với mỗi node có stereotype là user action và có thẻ là “validated”. Lấy danh sách các output pin. Loại bỏ các pin trùng lặp. B4: Với mỗi pin, nếu pin đó có ràng buộc OCL thì thêm pin đó cùng với các ràng buộc vào danh sách. B5: Thêm các ràng buộc tương ứng với các pin trong bước 4 vào tiền điều kiện của phương thức validateData() trong process class tương ứng theo quy tắc U2C. Hậu điều kiện là kết quả trả về dữ liệu hợp lệ hoặc không. Bổ sung các quy tắc chuyển đổi mô hình Quy tắc chuyển đổi U2C: Quy tắc này sẽ chuyển đổi user action trong các mô hình activity sẽ được chuyển đổi thành process class trong mô hình xử lý. Quy trình thực hiện quy tắc U2C B1: Đọc mô hình, lấy ra các biểu đồ ca activity diagram. B2: Với mỗi activity, đọc tất cả các node. B3: Duyệt các node. Kiểm tra node stereotype là user action. Thêm vào danh sách. B4: Với mỗi phần tử trong danh sách node lấy được sau bước 3. Tạo một process class tương ứng. 9
  13. B5: Với mỗi process class và user action tương ứng. Đọc các output pin của user action đó thêm vào danh sách pin. B6: Duyệt các pin trong danh sách thu được ở B5. Tạo thuộc tính tương ứng cho process class. Nếu process class đó tương ứng với một user action có gắn thẻ là “validated”. Thì tạo phương thức validateData (param1, param2, ...) cùng danh sách tham số cần kiểm tra cho process class đó. Quy tắc S2C: Chuyển đổi system action thành process class trong mô hình xử lý. Quy trình thực hiện quy tắc S2C B1: Đọc mô hình, lấy ra các biểu đồ ca activity diagram. B2: Với mỗi activity, đọc tất cả các node. B3: Duyệt các node, với mỗi node có stereotype là system action. Thêm vào danh sách. B4. Với system action node đang duyệt ở B3. Kiểm tra thẻ của node đó. Nếu thẻ là “confirmed” thì tạo confirmation node tương ứng và thêm vào danh sách. B5: Với mỗi phần tử trong danh sách node lấy được sau B3 và B4. Tạo một process class tương ứng. B6: Lấy tất cả các input pin của system action. Thêm vào danh sách tham số nếu chưa tồn tại trong danh sách tham số. B7: Nếu system action có thẻ là “confirmed” thì tạo phương thức tương ứng và danh sách tham số tương ứng cho “confirmation class” tương ứng với confirmation node trong B4. Ngược lại, tạo phương thức và danh sách tham số tương ứng cho process class của node trong B3. Quy tắc chuyển đổi U2U: Quy tắc này sẽ chuyển đổi user action trong activity diagram thành user action trong mô hình luồng xử lý.. Quy trình thực hiện quy tắc U2U B1: Đọc mô hình, lấy danh sách các activity diagram. B2: Với mỗi activity diagram đọc tất cả các node. Nếu node đó có stereotype là user action. Tạo user action tương ứng trong mô hình luồng xử lý. B3: Đọc tất cả các pin của node và tạo ra pin tương ứng cho user action được tạo ra ở B2. B4: Nếu user action có thẻ “validated”. Tạo phần tử validate với stereotype là system action để thực hiện việc kiểm tra dữ liệu và một “decision node” để rẽ nhánh true/false tương ứng với hai trường hợp dữ liệu thỏa mãn các ràng buộc hoặc ngược lại. 10
  14. Quy tắc chuyển đổi S2S: Phần tử system action trong biểu đồ ca sử dụng được chuyển đổi tương ứng sang một system action trong mô hình luồng xử lý. Quy trình thực hiện quy tắc S2S B1: Đọc mô hình, lấy danh sách các activity diagram. B2: Với mỗi activity diagram đọc tất cả các node. Nếu node đó có stereotype là system action thì tạo system action tương ứng trong mô hình luồng xử lý. B3: Nếu user action có thẻ “confirmed”. Tạo confirmation user action để thực hiện việc yêu cầu xác nhận từ người sử dụng và “decision node” để rẽ nhánh true/false tương ứng với trường hợp người dùng đồng ý hoặc hủy bỏ. 2.3.3. Tích hợp OCL trong mô hình trình bày Quy trình chuyển đổi bất biến mô hình yêu cầu sang mô hình trình bày B1: Duyệt danh sách các presentation group được tạo ra theo quy tắc D2G B2: Với mỗi presentation group, đọc lấy danh sách các interation pin của display action tương ứng. B3: Với mỗi pin, đọc tất các ràng buộc OCL của pin đó. Thêm vào danh sách ràng buộc nếu chưa tồn tại. B4: Với mỗi ràng buộc trong danh sách lấy ở B3. Tạo ràng buộc tương ứng và thêm vào cho các thành phần tương ứng với pin đó trong mô hình trình bày Bổ sung các quy tắc chuyển đổi sang mô hình trình bày Quy tắc D2G: Display action đại diện cho thành phần hiện thị được chuyển đổi thành một group element. Quy trình thực hiện quy tắc D2G B1: Đọc mô hình lấy activity diagram tương ứng với process class. B2: Đọc tất cả các node của activity diagram. Nếu stereotype là display action. Kiểm tra type của node đó và tạo thành phần ánh xạ tương ứng với node đó. B3: Nếu type của node “validated” tạo button confirm và button cancel thêm vào thành phần giao diện được tạo ra ở B2. Quy tắc P2E: Các pin sẽ được chuyển đổi tương ứng sang các UIElement trong mô hình giao diện. Quy trình thực hiện quy tắc P2E B1: Đọc mô hình lấy activity diagram tương ứng với display action trong quy tắc D2G. B2: Với activity diagram ở B1, đọc tất các input pin, thêm vào danh sách B3: Với mỗi pin trong B3. Tạo thành phần tương ứng trong mô hình giao diện tương ứng. 11
  15. 2.4. Phát triển quy tắc chuyển đổi mô hình với ATL 2.4.1. Giải pháp 2.4.1.1. Siêu mô hình yêu cầu 2.4.1.2. Siêu mô hình: content, navigation, process, 2.4.2. Các quy tắc ATL Hình 2.21. Tổng quan phương pháp đề xuất Hình 2.21 xác định phương pháp chuyển đổi thành các mô hình đích tuân thủ metamodel PIM, từ mô hình nguồn là mô hình yêu cầu phù hợp với metamodel CIM. Việc chuyển đổi được mô tả bằng các quy tắc phù hợp với metamodel ATL. Các mô hình đích thu được dựa trên metamodel CIM và PIM. Tuy nhiên, các metamodel CIM, PIM và ATL tuân thủ MOF (đặc tả ngôn ngữ metamodel). a) Quy tắc chuyển sang mô hình nội dung Chuyển đổi từ mô hình yêu cầu sang mô hình nội dung được thực hiện dựa trên 06 quy tắc, gồm: Model2Package; UseCase2Operation; Actor2Class; Pin2Property; EntralBufferNode2Class; Generalization- Transform. b) Quy tắc chuyển sang mô hình điều hướng Mô hình điều hướng mô tả luồng chuyển hướng tương ứng với hành động người sử dụng trong ứng dụng Web. Quá trình điều hướng được thể hiện bằng biểu đồ lớp, ngoài ra còn có các nút, các liên kết, menu. Tác giả xây dựng 9 quy tắc thực hiện việc chuyển đổi từ mô hình yêu cầu sang mô hình điều hướng, gồm: Model2Package; BrowsingUse- Case2NavigationClass; ProcessingUseCase2ProcessClass; NonEx- tendUseCase2Assocication; Extend2Assocication; Include2Associa- tion; CreateSubMenu; NavigationAction2AssociationWithMenu; Na- vigationAction2AssociationWithoutMenu. 12
  16. c) Quy tắc chuyển sang mô hình xử lý và trình bày Tác giả đặc tả lại bằng ngôn ngữ ATL: 04 quy tắc được trình bày trong mục 2.3.1 tương ứng với 05 quy tắc gồm: Lazy rule OutputPin2Property; lazy rule InputPin2Parameter; lazy rule UserAction2ProcessClass; lazy rule SystemAction2ProcessClass; rule Requirement2Process; 02 quy tắc (D2G, P2E) được trình bày tại mục 2.3.2 của luận án được chia thành 2 nhóm. - Nhóm 1: gồm 05 quy tắc để chuyển đổi thành phần display action trong mô hình yêu cầu thành các thành phần tương ứng trong mô hình trình bày: Display2Form; Display2IteratedGroup; Display2Page; Display2PresentationAlternatives; Display2PresentationGroup - Nhóm 2: gồm 06 quy tắc: DisplayPin2Image; DisplayPin2Media; DisplayPin2Text; InteractionPin2FileUpload; InteractionPin2- TextInput; InteractionPin2Selection Như vậy, tác giả đã trình bày 31 quy tắc chuyển đổi mô hình, tác giả hoàn thiện đầy đủ việc xây dựng chuyển đổi từ mô hình yêu cầu sang mô hình nội dung, điều hướng, xử lý và trình bày với ngôn ngữ chuyển đổi mô hình ATL. Các quy tắc được tích hợp để xây dựng công cụ UWE-ATL. 2.4.3. Kết quả và thảo luận Công cụ UWE-ATL cho kết quả tốt hơn khi chuyển đổi cho mô hình điều hướng, xử lý và trình bày. Với mô hình nội dung, số lượng class sinh ra ít hơn nhưng trong mỗi class sinh ra có nhiều attributes và operations hơn. - Với ví dụ MusicPortal Bảng 2.8. Kết quả chuyển đổi mô hình Content, Process - ví dụ MusicPortal Thành Classes Attributes Operations phần /công cụ UWE- Magic- UWE- Magic UWE- Magic Tiêu chí ATL UWE ATL UWE ATL UWE Content 4 6 3 2 3 0 Process 1 2 0 0 0 0 Bảng 2.9. Kết quả chuyển đổi mô hình Navigation - ví dụ MusicPortal Thành phần/công NavigationClasses ProcessClass Links cụ Tiêu chí UWE- Magic UWE- Magic UWE- Magic ATL UWE ATL UWE ATL UWE Navigation 3 2 2 2 4 2 13
  17. Bảng 2.10. Kết quả chuyển đổi mô hình Presentation - ví dụ MusicPortal Thành Classes Properties phần/công cụ UWE-ATL MagicUWE UWE-ATL MagicUWE Tiêu chí Presentation 2 2 6 5 - Với ví dụ AddressBook Bảng 2.11. Kết quả chuyển đổi mô hình Content, Process - ví dụ AddressBook Thành Classes Attributes Operations phần/công cụ UWE- Magic UWE- Magic UWE-ATL Magic Tiêu chí ATL UWE ATL UWE UWE Content 2 5 7 7 4 0 Process 1 operations 2 3 7 0 0 (7 parameters) Bảng 2.12. Kết quả chuyển đổi mô hình Navigation - ví dụ AddressBook Thành NavigationClasses ProcessClass Links phần/công cụ UWE- Magic UWE- Magic UWE- Magic Tiêu chí ATL UWE ATL UWE ATL UWE Navigation 3 3 3 3 5 5 Bảng 2.13. Kết quả chuyển đổi mô hình Presentation- ví dụ AddressBook Thành Classes Properties phần/công cụ UWE-ATL MagicUWE UWE-ATL MagicUWE Tiêu chí Presentation 2 2 15 16 Tác giả nhận thấy rằng, cách tiếp cận của UWE-ATL sẽ tiết kiệm nhiều thời gian cho các nhà phát triển. Vì sau khi chuyển đổi, các mô hình được tạo ra chi tiết cụ thể hơn MagicUWE, không phải tinh chỉnh thủ công. Đây là cơ sở tốt cho việc sinh code tự động từ đặc tả yêu cầu cho ứng dụng web. 14
  18. CHƯƠNG 3: SINH MÃ TỰ ĐỘNG CHO ỨNG DỤNG WEB HƯỚNG MÔ HÌNH Trong chương này, tác giả trình bày các kỹ thuật 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, có 2 công trình công bố liên quan: CT4, CT5. Tác giả cũng trình bày chi tiết á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, sử dụng các kết quả và công cụ đã trình bày trong chương 2 và chương 3. Liên quan đến nội dung này, có 02 công trình công bố liên quan: CT6, CT8. 3.1. Kỹ thuật sinh mã trong phát triển ứng dụng web hướng mô hình 3.2. Sinh mã dựa trên thuật toán theo kiến trúc MVC 3.2.1. Xây dựng quy tắc sinh mã Tác giả đề xuất xây dựng các giải thuật để chuyển đổi từ mô hình PSM sang code theo phương pháp UWE. Sử dụng phương pháp khuôn mẫu và metamodel với nền tảng công nghệ J2EE và mô hình Web MVC. Tác giả xây dựng 03 quy tắc sinh code: Quy tắc CM2M sinh mã thành phần Hình 3.3. Chuyển đổi sang mã nguồn Model từ mô hình nội dung; theo mô hình MVC Quy tắc PRES2V sinh mã thành phần View từ mô hình trình bày; Quy tắc NPROM2C sinh mã thành phần Controller từ mô hình điều hướng, mô hình xử lý (Chi tiết trong bảng 3.1) và tích hợp công cụ CODEGER –UWE. Bảng 3.1. Danh sách các quy tác sinh code TT Tên quy tắc Ý nghĩa Thành phần trong lớp của mô hình nội 1 Quy tắc CM2M dung được chuyển đổi sang JavaModel. Tạo lớp JavaBean tương ứng với một lớp 1.1 UWEClass2JavaClass trong mô hình nội dung. 15
  19. TT Tên quy tắc Ý nghĩa Mỗi một thuộc tính của lớp được chuyển UWEProperty2JavaClass 1.2 đổi tương ứng thành một trường (field) Member trong JavaBean. UWEOperation2Java Mỗi một thủ tục (operation) được chuyển đổi 1.3 Method tương ứng thành một phương thức (method). 1.4 JavaModel2SourceCode Sinh mã nguồn Java từ JavaModel Các lớp của mô hình trình bày được 2 Quy tắc PRES2V chuyển đổi sang JSPModel. Lớp có khuôn mẫu là văn bản (text), nút 2.1 PreElement2JSP bấm (button),…, được chuyển đổi thành các thành phần tương ứng trong JSP. Lớp có khuôn mẫu là trang (presentation 2.2 PreClass2JSP Page), biểu mẫu (inputform),… chuyển đổi thành các thành phần tương ứng trong JSP. 2.3 JSPModel2SourceCode Sinh mã nguồn Java từ JSPModel. Quy tắc sinh mã thành phần Controller từ 3 Quy tắc NPROM2C mô hình điều hướng và sinh mã từ mô hình xử lý. Tạo lớp Controller từ lớp điều hướng 3.1 Navi2JavaClass được đánh dấu "isHome" Các lớp xử lý, truy vấn được chuyển đổi 3.2 NaviNode2JavaClass thành một phương thức trong lớp Controller. Tạo lớp Java tương ứng với một lớp trong 3.3 UWEClass2JavaClass mô hình xử lý, giữ nguyên sự kế thừa giữa các lớp. 3.2.2. Xây dựng giải thuật sinh code tự động Tác giả đã xây dựng 03 giải thuật sinh code, trên cơ sở phân tích mô hình UWE và các quy tắc chuyển đổi tương ứng với kiến trúc MVC: - Giải thuật CM2M: Từ mô hình nội dung (mức PIM) được chuyển đổi sang JavaModel (mức PSM), là một thể hiện của Java metamodel, sau đó chuyển đổi sang mã nguồn Java. - Giải thuật NPROM2C: Từ mô hình điều hướng và xử lý được chuyển đổi sang JavaModel, sau đó được chuyển đổi sang mã nguồn Java, tương ứng thành phần Controller. - Giải thuật PRES2V: Từ mô hình trình bày được chuyển đổi sang JSPModel, là một thể hiện của JSP metamodel, sau đó chuyển đổi sang mã JSP, tương ứng thành phần View. 16
  20. 3.2.3. Thử nghiệm và đánh giá Từ các quy tắc, giải thuật xây dựng, tác giả đã xây dựng công cụ CODEGER-UWE để hỗ trợ sinh mã nguồn cho ví dụ “Address Book”. Công cụ sinh mã CODEGER –UWE cho kết quả tốt khi sinh mã nguồn, thể hiện tại bảng 3.2. Bảng 3.2. Bảng đánh giá mã nguồn Thành phần Tiêu chí Model View Controller Số lượng mã nguồn 160/190 150/270 200/230 (tự động/sau khi chỉnh sửa) Độ hoàn thiện 84% 55% 87% Theo quy Theo quy Theo quy Định dạng mã nguồn chuẩn chuẩn chuẩn Tốc độ sinh mã ~2s Thông tin bổ sung bị ghi đè Bị ghi đè Bị ghi đè Bị ghi đè sau khi tái sinh mã 3.3. Sinh mã sử dụng ngôn ngữ ATL 3.3.1. Chuyển đổi mô hình PIM sang PSM theo kiến trúc MVC 3.3.1.1. Tạo phần Model Trong nội dung này, tác giả phát triển các quy tắc và giải thuật sinh mã nguồn tự động từ các mô hình UWE, để tạo ứng dụng web chẩn đoán bệnh thủy sản (benhthuysan.vn) theo kiến trúc MVC. Hình 3.18. Sơ đồ chuyển đổi mô hình và sinh code Module sinh code gồm có 2 thành phần. Phần model-to-model cho phép chuyển đổi từ các mô hình mức PIM sang các mô hình mức PSM (mô hình Java và mô hình JSP). Phần model-to-code cho phép sinh code từ các mô hình mức PSM thu được thành các file mã nguồn .java và .jsp. 17
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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