Các nghiên cứu liên quan và nhiệm vụ trong luận án

Một phần của tài liệu (Luận án tiến sĩ) 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 (Trang 41 - 45)

Phát triển theo hướng mô hình là một giải pháp thay thế cho phát triển phần mềm thông thường. Chuyển đổi mô hình và sinh mã tự động từ các mô hình là một lĩnh vực nghiên cứu tiềm năng. Theo [69], nhóm tác giả đã xác định được 50 nghiên cứu chính trong số 2.145 bài viết liên quan đến MDA trong giai đoạn 2008–2018. Nghiên cứu chỉ ra rằng, có 5 lĩnh vực được quan tâm chính là: “Phát triển ứng dụng di động, mô phỏng và xác minh, bảo mật, kỹ thuật web và phát triển GUI”. Nghiên cứu cho biết rằng, hầu hết các phương pháp tiếp cận được nghiên cứu chỉ sử dụng mô hình PIM và PSM, không sử dụng CIM vào kiến trúc mô hình. Tuy nhiên, quy trình phát triển ứng dụng web của luận án được bắt đầu từ mô hình CIM.

Năm 2019, Kahani cùng các cộng sự [70] đã xác định được 60 công cụ được sử dụng để chuyển đổi mô hình. Trong số 60 công cụ đã xác định, có 31 công cụ thực hiện chuyển đổi mô hình thành mã nguồn. Nghiên cứu đưa ra một bức tranh tổng thể về các công cụ và kỹ thuật chuyển đổi mô hình. Tạo mã nguồn 100% là mục đích cuối cùng của lĩnh vực hướng mô hình. Thật không may, mục tiêu thay thế lập trình bằng mô hình hóa vẫn chưa đạt được. Cho đến nay, đã có nhiều nghiên cứu thực nghiệm cho thấy rằng việc áp dụng hướng mô hình mang lại một phần tạo mã. Sau đây, luận án đề cập đến một vài nghiên cứu trong số đó:

Một số nghiên cứu [1, 61, 71, 72] đã phát triển kỹ thuật chuyển đổi mô hình từ CIM sang PIM theo phương pháp UWE. Kết quả chuyển đổi cho ra bốn mô hình: Nội dung, điều hướng, xử lý và trình bày. Marianne Busch và Nora Koch [71, 72] đã xây dựng công cụ MagicUWE là một plugin cho MagicDraw, được phát triển để hỗ trợ thiết kế các ứng dụng web bằng phương pháp UWE. MagicUWE được phát triển để hỗ trợ cho nhà thiết kế các hoạt động tạo lập mô hình, bằng cách sử dụng cấu hình UWE và chuyển đổi mô hình bán tự động. Trong thực tế, vẫn còn nhiều thành phần của mô hình nhà thiết kế phải vẽ lại thủ công và MagicUWE chủ yếu tập trung vào các yếu tố mô hình hóa cho các ứng dụng. Công cụ mới chỉ dừng lại ở việc tạo và chuyển đổi model to model, chưa thực hiện việc chuyển đổi model to code. Tài liệu [1] cũng trình bày các quy tắc chuyển đổi mô hình PIM sang PSM, chuyển đổi PSM

sang mã. Tuy nhiên các quy tắc được đưa ra chưa được đầy đủ, chưa có sơ đồ chuyển đổi một cách tổng quan và cũng không phát triển công cụ riêng để tạo ứng dụng web. Nhóm tác giả Miguel Ángel, García de Dios [73], đã tạo ra công cụ chuyển đổi có tên là ActionUWE từ các mô hình UWE. ActionUWE thực hiện chuyển đổi các mô hình theo phương pháp UWE như sau: i) Ánh xạ cấu trúc dữ liệu và tạo một cửa sổ chính cho ứng dụng Web và chuyển đổi các menu được mô phỏng trong UWE; ii) Chuyển đổi phần còn lại của mô hình trình bày UWE sang ActionGUI; iii) Chuyển đổi thông tin trong mô hình điều hướng từ mô hình trạng thái điều hướng UWE sang mô hình ActionGUI; iv) Ánh xạ tính năng bảo mật. Việc chuyển đổi các mô hình UWE thành các mô hình ActionGUI. Nhóm tác giả chuyển đổi từ UWE thành ActionGUI, vì các mô hình ActionGUI có thể được chuyển đổi thành mã. Tuy nhiên, ActionUWE cũng chỉ tiếp cận để tạo mã bán tự động, sinh ra các khung để kỹ thuật viên lập trình tạo câu lệnh.

Hình 1.22. Tổng quan về chuyển đổi mô hình của ActionUWE [73]

Nghiên cứu của Imane Essebaa, Chantit Salima, Mohammed Ramdani [74] là một minh chứng cho việc ứng dụng MDE cho phát triển ứng dụng Web. Nghiên cứu đề xuất công cụ MoDAr-WA nhằm mục đích tự động hóa các chuyển đổi từ CIM sang mã. Các tác giả sử dụng các quy tắc QVT để chuyển đổi giữa các mô hình (CIM sang PIM và PIM sang PSM) và Acceleo để tạo mã tuân theo kiến trúc MVC từ các mô hình PSM. Các tác giả so sánh đề xuất của họ với một số lượng lớn các công trình liên quan và đã kết luận, giải pháp của họ là giải pháp duy nhất cung cấp các mô đun chuyển đổi tự động giữa CIM và PIM. Hạn chế của nghiên cứu là không sử dụng công cụ riêng để sinh mã, mà sử dụng Acceleo là công cụ có sẵn để sinh mã.

Hình 1.23. Tổng quan về cách tiếp cận trong [74]

Mostapha Melouka, Yassine Rhazalib, Hadi Youssef [30] đề giải pháp chuyển đổi bán tự động từ CIM sang PIM cho đến PSM. Các quy tắc chuyển đổi được xác định rõ ràng để có được các mô hình CIM tập trung, giúp đơn giản hóa việc chuyển đổi sang cấp PIM. Các quy tắc chuyển đổi được thực hiện bởi ATL (ngôn ngữ chuyển đổi ATL) được sử dụng để tự động chuyển đổi từ cấp CIM sang cấp PIM và từ PIM sang PSM, bằng cách tinh chỉnh các mô hình PIM với giao diện người dùng theo định hướng web. Mô hình CIM được thể hiện bằng các mô hình quy trình nghiệp vụ. Mô hình PIM được phân chia phù hợp với ba chế độ: Xem mô hình cổ điển UML bao gồm chế độ xem chức năng, tĩnh và động. Mô hình biểu đồ tình huống sử dụng là mô hình đầu tiên của PIM xác định chức năng của hệ thống thông tin (chế độ xem chức năng), mô hình biểu đồ trạng thái trình bày trạng thái hệ thống (chế độ xem động), mô hình biểu đồ lớp cho biết các lớp hệ thống và mối quan hệ của chúng (chế độ xem tĩnh) và tất cả các lớp được cấu trúc thành các gói trong mô hình sơ đồ gói (dạng xem tĩnh). Tiếp theo, tác giả sử dụng IFML [16], tiêu chuẩn OMG của mô hình hóa giao diện người dùng để điều chỉnh các mô hình PIM với giao diện người dùng hướng web. Để tự động hóa chuyển đổi CIM sang PIM, PIM sang PIM và PIM sang PSM, tác giả tiếp cận dựa trên các quy tắc chuyển đổi được thực hiện bởi ATL (ngôn ngữ chuyển đổi ATL).

Nghiên cứu [28] đề xuất cải tiến quy trình chuyển đổi mô hình CIM sang PIM theo hướng tiếp cận MDA. Mô hình CIM được trình bày bởi mô hình quy trình nghiệp vụ BPMN là quy trình "quản lý bệnh nhân COVID-19". Quá trình chuyển đổi của [28] bắt đầu với việc phát triển siêu mô hình nguồn và đích. Việc chuyển đổi giữa hai mô hình này được thực hiện theo phương thức bán tự động. Đầu tiên, tiến hành chuyển đổi thủ công thông qua xây dựng một tập các quy tắc chuyển đổi từ mô hình BPMN thành biểu đồ lớp. Sau đó, tiến hành chuyển đổi tự động bằng cách sử dụng ngôn ngữ chuyển đổi ATL, mô tả các quy tắc được mô tả thủ công trước đó. Đóng góp của nghiên cứu là sự lai tạo cả hai loại chuyển đổi thủ công và tự động, đồng thời chuyển đổi mô hình bằng cách sử dụng một nghiên cứu điển hình cụ thể được trình bày bằng quy trình "Quản lý bệnh nhân COVID-19".

Hình 1.24 thể hiện quy trình mà nghiên cứu sẽ tuân theo để đảm bảo việc chuyển đổi mô hình CIM thành mô hình PIM, bằng cách chuyển đổi mô hình BPMN thành một sơ đồ lớp. Mô hình nguồn BPMN được chuyển thành CLASS. Việc chuyển đổi được chỉ dẫn theo một chương trình chuyển đổi MM1ToME2.atl được viết bằng ATL. Mô hình nguồn và mô hình đích cũng như chương trình chuyển đổi, tuân thủ theo các mô hình meta tương ứng của chúng: MM1, MM2 và ATL. Các mô hình meta này tuân theo siêu mô hình meta-Ecore.

[75, 76], các tác giả áp dụng MDA để phát triển ứng dụng web theo cấu trúc MVC. Nghiên cứu đều sử dụng ngôn ngữ chuyển đổi mô hình chuyên nghiệp như ATL và QVT làm ngôn ngữ chuyển đổi mô hình và thực hiện các phép biến đổi đến mã nguồn Java. Nhưng cả hai nghiên cứu đều không sử dụng phương pháp UWE, mà sử dụng các biểu đồ UML để phát triển ứng dụng web theo kiến trúc MVC.

Trong nước, những năm gần đây, một số tổ chức nghiên cứu và phát triển phần mềm đã bắt đầu có nhiều quan tâm đến các kỹ thuật, công nghệ mới để phát triển phần mềm, giúp cho việc phát triển các hệ thống phần mềm ngày càng đơn giản hơn, đảm bảo chất lượng hơn. Tuy nhiên, vấn đề phát triển phần mềm hướng mô hình cho ứng dụng web còn khá mới mẻ, hầu như chưa được quan tâm nghiên cứu ở trong nước. Thời điểm hiện tại, bản thân chỉ mới tìm thấy các nghiên cứu là khóa luận sinh viên Đại học, thạc sĩ được tổng hợp và dịch bài từ các nghiên cứu nước ngoài.

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ã.

- 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 UWE.

- 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).

Một phần của tài liệu (Luận án tiến sĩ) 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 (Trang 41 - 45)