Cơng nghệ thơng tin & Cơ sở tốn học cho tin học 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 Trần Đình Diễn*, Huỳnh Quyết Thắng, Nguyễn Thành Đạt Tóm tắt: Bài báo nghiên cứu phát triển quy tắc giải thuật sinh mã nguồn tự động từ mô hình theo kỹ thuật web UWE (UML-based Web Engineering) để tạo ứng dụng web chẩn đoán bệnh thủy sản (benhthuysan.vn) Các quy tắc thực nghiệm ngôn ngữ chuyển đổi ATL, đảm bảo hiệu chuyển đổi mơ hình cho phát triển ứng dụng Web hướng mơ hình theo kiến trúc MVC Trong báo này, chúng tơi trình bày phương pháp tiếp cận MDE để tạo ứng dụng Web từ mơ hình theo kỹ thuật web UWE Chúng cải tiến xây dựng số quy tắc, giải thuật sinh code tự động nhằm cải tiến, nâng cao hiệu chuyển đổi từ mô hình UWE sang mã nguồn xây dựng cơng cụ CODEGER-UWE để xây dựng ứng dựng Web Đây phương pháp với quy trình phát triển rõ ràng tiện dụng Từ khóa: Sinh mã tự động; Chuyển đổi mơ hình; ATL; Phát triển ứng dụng web ĐẶT VẤN ĐỀ Sinh mã tự động mục tiêu lâu dài kỹ thuật phần mềm bước thiết yếu kỹ thuật hướng mơ hình (MDE) [1-5] để phát triển phần mềm, cho phép nhà thiết kế tự động tạo ứng dụng từ mơ hình thiết kế Kỹ thuật UWE hồn tồn tn thủ theo MDE mục tiêu tiếp cận UWE xây dựng mơ hình CIM, PIM, PSM sinh code tự động cho ứng dụng web (hình 1) Hình Sinh code UWE Các kỹ thuật sinh mã tự động bao gồm: Templates and metamodel, Templates and filtering, API-based generators, Inline code generation, Visitor-Based Approaches [6-9] Kỹ thuật Template Metamodel, mã tạo cách áp dụng khn mẫu cho đặc tả mơ hình thành văn (thường XML/XMI) [10] Một cách trực quan cho yêu cầu cách tiếp cận dựa template nơi mà văn sinh từ mô hình quy định tập template dạng văn mà tham số hóa với phần tử mơ hình, Template xác định template văn với điểm mốc (placeholders) cho liệu trích xuất từ mơ hình Những điểm mốc chất biểu thức quy định thành phần metamodel với truy vấn chế cho việc lựa chọn trích xuất giá trị từ mơ hình Giá trị chuyển đổi qua văn cách sử dụng ngôn ngữ biểu thức dựa thư viện xử lý chuỗi Template sử dụng để giải yêu cầu chuyển đổi phức tạp chủ yếu sử dụng để tạo mã nguồn áp dụng nhiều lĩnh vực khác [10] Trong nghiên cứu này, sử dụng phương pháp Template Metamodel với tảng cơng nghệ J2EE, mơ hình Web MVC cho kỹ thuật UWE, kết hợp với tương đồng mặt định nghĩa bốn mơ hình UWE mơ hình nội dung, điều hướng, xử lý, trình bày với ba thành phần mơ hình MVC, nhóm nghiên cứu phát triển quy tắc giải thuật sinh mã cho ứng dụng web benhthuysan.vn theo kỹ thuật UWE Hiện nay, có nhiều nghiên cứu việc sinh mã theo kỹ thuật UWE Nghiên cứu [11] đề 102 T Đ Diễn, H Q Thắng, N T Đạt, “Phát triển thuật toán … bệnh thủy sản với ATL.” Nghiên cứu khoa học công nghệ xuất sử dụng ATL để chuyển đổi mơ hình nhằm hỗ trợ cho nhà thiết kế hoạt động tạo lập mô hình cách sử dụng cấu hình UWE chuyển đổi mơ hình bán tự động Do vậy, cịn nhiều thành phần mơ hình phải xây dựng lại thủ công; việc sinh code dừng lại việc tạo khung, để lập trình viên viết code Hình Sử dụng ngơn ngữ ATL để tạo phần tử JSP [11] Marianne Busch and Nora Koch [12] phát triên công cụ MagicUWE plugin cho MagicDraw, phát triển để hỗ trợ thiết kế ứng dụng web phương pháp UWE MagicUWE pháp triển để hỗ trợ cho nhà thiết kế cho hoạt động tạo lập mơ hình cách sử dụng cấu hình UWE chuyển đổi mơ hình bán tự động Nghiên cứu Imane Essebaa, Chantit Salima, Mohammed Ramdani [13] minh chứng gần việc ứng dụng MDE cho ứng dụng Web Công việc họ mô tả công cụ (MoDAr-WA) nhằm mục đích tự động hóa chuyển đổi từ CIM sang mã Các tác giả sử dụng quy tắc QVT để chuyển đổi mơ hình (CIM sang PIM PIM sang PSM) Acceleo để tạo mã tn theo kiến trúc MVC từ mơ hình PSM Hình Tổng quan cách tiếp cận [13] Trong tài liệu [14, 15], 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 sử dụng ATL (Atlas Transformation Language) làm ngôn ngữ chuyển đổi thực phép biến đổi đến mã nguồn Java Trong nghiên cứu [11, 16-18] tác giả đề xuất quy tắc chuyển đổi mơ hình từ CIM sang PIM sang PSM [19] bổ sung quy tắc chuyển đổi từ mô hình u cầu sang mơ hình xử lý mơ hình trình bày, nhằm cải thiện trình chuyển đổi tự động cho ứng dụng web sử dụng UWE Trong báo [20], công bố năm 2018, đề xuất bổ sung số quy tắc chuyển đổi sang mơ hình xử lý mơ hình trình bày, nhằm cải tiến, nâng cao hiệu chuyển đổi mơ hình UWE từ cơng cụ MagicUWE Nghiên cứu [20], phát triển 03 quy tắc sinh mã từ mơ hình PSM: Quy tắc CM2M sinh mã thành phần Model từ mơ hình nội dung; Quy tắc PRES2V Tạp chí Nghiên cứu KH&CN quân sự, Số 72, 04 - 2021 103 Cơng nghệ thơng tin & Cơ sở tốn học cho tin học 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 xử lý Tương ứng với 03 quy tắc này, xây dựng 03 giải thuật sinh mã: CM2M, NPROM2C, PRES2V Từ quy tắc, giải thuật xây dựng, nhóm nghiên cứu xây dựng công cụ CODEGER-UWE để hỗ trợ sinh mã nguồn cho ví dụ “Address Book” Plugin ODEGER-UWE cho phép sinh mã nguồn từ bốn mơ hình UWE tương ứng với thành phần mơ hình Web MVC, kết cho thấy, sinh mã tự động tốt hơn, vấn đề thiết thực, nhằm tăng suất, tiết kiệm thời gian, chi phí cho nhà phát triển Trong nghiên cứu này, kế thừa kết [20], chúng tơi tập trung hồn thiện quy tắc giải thuật sinh code từ mô hình UWE ATL Như thế, có tập quy tắc sinh code đầy đủ Cụ thể, mơ hình mức PIM UWE chuyển đổi sang thành phần tương ứng kiến trúc MVC Phương pháp đề suất thể hình - Mơ hình nội dung mơ hình xử lý chuyển đổi sang thành phần Model, đó, mơ hình nội dung dùng để định nghĩa cấu trúc sở liệu, mơ hình xử lý định nghĩa hàm, phương thức mà Model cần cung cấp cho Controller (các Service Spring) - Mô hình điều hướng chuyển đổi sang thành phần Controller - Mơ hình trình bày chuyển đổi sang thành phần View Hình Tổng quan phương pháp đề xuất Module sinh code gồm có thành phần, phần model-to-model cho phép chuyển đổi từ mơ hình mức PIM sang mơ hình mức PSM (mơ hình Java mơ hình JSP), phần model-to-code cho phép sinh code từ mơ hình mức PSM thu thành file mã nguồn java jsp Các đóng góp khoa học báo bao gồm: Thứ nhất, xây dựng 23 quy tắc chuyển đổi từ mơ hình PIM sang PSM (mơ hình Java) Trong đó, 12 quy tắc chuyển thành thành phần Model từ mơ hình nội dung; 08 quy tắc tạo thành phần View từ mơ hình trình bày 03 quy tắc tạo thành phần Controller từ mơ hình điều hướng Thứ hai, phát triển 06 truy vấn ATL để sinh mã nguồn từ mơ hình Java; 04 truy vấn ATL để sinh mã nguồn từ mơ hình JSP Thứ ba, từ quy tắc, truy vấn ATL phương pháp đề xuất, nhóm nghiên cứu xây dựng công cụ CODEGER-UWE để hỗ trợ sinh mã nguồn cho ứng dụng web benhthuysan.vn Nội dung báo cấu trúc sau: Mục trình bày kỹ thuật Tự động sinh mã nguồn phát triển ứng dụng web hướng mơ hình theo kiến trúc MVC, mục trình bày thử nghiệm đánh giá phần trình bày kết luận XÂY DỰNG QUY TẮC CHUYÊN ĐỔI MODEL TO TEXT THEO KIẾN TRÚC MVC 2.1 Tạo thành phần Model 2.1.1 Chuyển đổi mơ hình nội dung Mơ hình nội dung chứa biểu đồ lớp ứng dụng web mơ hình hố phần tử mô 104 T Đ Diễn, H Q Thắng, N T Đạt, “Phát triển thuật toán … bệnh thủy sản với ATL.” Nghiên cứu khoa học cơng nghệ hình UML 2.0 tiêu chuẩn Mỗi class mơ hình nội dung ánh xạ với class phần model, thuộc tính để private truy cập thơng qua phương thức getter, setter Quy trình thực gồm bước sau: Bước 1: Đọc mô hình nội dung, tìm gói Content; Bước 2: Với class gói Content, tạo class Java với tên tương ứng, sau lấy danh sách thuộc tính class; Bước 3: Với thuộc tính class, tạo thuộc tính tương ứng phương thức getter, setter class Trong kiến trúc MVC thành phần Model chứa lớp dùng để định nghĩa cấu trúc sở liệu (mỗi lớp tương ứng với bảng, trường tương ứng với cột bảng sở liệu) Việc chuyển đổi từ mô hình nội dung sang mơ hình Java thực dựa 08 luật thể chi tiết bảng Bảng Các luật chuyển đổi từ mô hình nội dung sang mơ hình Java Tên luật Phần tử mơ hình nội dung Phần tử Java tương ứng Package2Package Package Package Class2Class Class Class Property2Field Property Field Property2GetterMethod Property Method (get) Property2SetterMethod Property Method (set) CollectionProperty2Field Property (số nhiều) Field (Set List) CollectionProperty2 GetterMethod Property (số nhiều) Method (get) CollectionProperty2 SetterMethod Property (số nhiều) Method (set) 2.1.2 Chuyển đổi mơ hình xử lý Mơ hình xử lý thể hành vi ứng dụng web mà controller thực Model cần cung cấp phương thức tương ứng để controller gọi muốn thực hành vi Phần tử ProcessClass mơ hình xử lý chứa thuộc tính contentClass tham chiếu đến class mơ hình nội dung cho biết hành vi ứng với model nào, hành vi ứng với phương thức service kiến trúc MVC Quy trình thực gồm bước sau: Bước 1: Đọc mô hình, tìm gói Content; Bước 2: Với class gói Content, tạo class Service tương ứng Java, tìm phần tử ProcessClass có thuộc tính contentClass tham chiếu đến; Bước 3: Với hành vi ứng với ProcessClass, tạo phương thức tương ứng class Service Gói service thuộc thành phần Model, chứa phương thức liên quan đến liệu mà ứng dụng cần gọi đến (truy xuất sở liệu, chuyển đổi, kiểm tra liệu hợp lệ,…) Do đó, hành vi mơ hình xử lý dùng để định nghĩa phương thức cho service Chúng phát triển 04 luật để thực việc chuyển đổi từ mơ hình xử lý sang mơ hình Java (bảng 2) Bảng Các luật chuyển đổi thành phần tương ứng từ mô hình xử lý sang mơ hình Java Tên luật Phần tử mơ hình xử lý Phần tử Java tương ứng Package2Package Package Package Class2Class Class (Content class Class (Service class) ProcessClass tham chiếu) Operation2Method Operation (của ProcessClass) Method (của Service class) Parameter2MethodParameter Parameter (của Operation) MethodParameter 2.2 Tạo thành phần Controller Tạp chí Nghiên cứu KH&CN quân sự, Số 72, 04 - 2021 105 Công nghệ thông tin & Cơ sở tốn học cho tin học Mơ hình điều hướng thể luồng chuyển hướng trang web, phần tử NavigationClass mơ hình điều hướng ứng với nút luồng điều hướng từ ứng với u cầu từ phía client mà controller cần xử lý Thuộc tính contentClass tham chiếu đến class mơ hình nội dung cho biết u cầu tương ứng xử lý lớp Controller Quy trình thực gồm bước sau: Bước 1: Đọc mơ hình, tìm gói Content; Bước 2: Với class gói Content, tạo class Controller tương ứng Java, tìm phần tử NavigationClass có thuộc tính contentClass tham chiếu đến; Bước 3: Với NavigationClass, tạo phương thức class Controller với annotation @RequestMapping ứng với yêu cầu từ client Trong kiến trúc MVC thành phần Controller, nhận yêu cầu từ phía client gọi phương thức cần thiết (thường service thành phần Model cung cấp) để thực yêu cầu sử dụng thích @RequestMapping để xác định nhận yêu cầu, phương thức controller thực thi Trong mơ hình điều hướng, NavigationClass thể nút luồng điều hướng trang web tương ứng với yêu cầu từ phía client nên dùng để định nghĩa phương thức cho controller Danh sách luật chuyển đổi từ mơ hình điều hướng sang mơ hình Java thể bảng Bảng Các luật chuyển đổi mơ hình điều hướng sang mơ hình Java Tên luật Phần tử mơ hình điều hướng Phần tử Java tương ứng Package2Package Package Package Class2Class Class (Content class Class (Controller class) NavigationClass tham chiếu) Class2Method NavigationClass Method (của Controller class) 2.3 Tạo thành phần View Mơ hình trình bày cung cấp tập phần tử giao diện dùng để mơ hình hoá giao diện người dùng hiển thị ứng dụng web Phần tử PresentationPage đại diện cho trang web, đó, chứa phần tử giao diện khác: Text, Image, Button, Anchor, TextInput, FileUpload,… Quy trình thực gồm bước sau: Bước 1: Tìm phần tử PresentationPage, tạo phần tử Root tương ứng JSP; Bước 2: Với phần tử PresentationPage, tìm phần tử giao diện chứa chuyển thành phần tử giao diện tương ứng JSP Các luật chuyển mơ hình trình bày thành mơ hình JSP, cụ thể sau: Có 08 luật xây xây dựng để chuyển đổi mơ hình trình bày sang mơ hình JSP thể bảng Bảng Các luật chuyển đổi mơ hình trình bày sang JSP Tên luật Phần tử mơ hình trình bày Thẻ JSP tương ứng PresentationPage2JSP PresentationPage html head PresentationGroup2JSP PresentationGroup div Text2JSP Text span Image2JSP Image img Button2JSP Button button Anchor2JSP Anchor a TextInput2JSP TextInput input (type=”text”) FileUpload2JSP FileUpload input (type=”file”) 106 T Đ Diễn, H Q Thắng, N T Đạt, “Phát triển thuật toán … bệnh thủy sản với ATL.” Nghiên cứu khoa học công nghệ 2.4 Sinh code từ mơ hình PSM Để thực việc sinh mã nguồn, ta cần thêm bước chuyển đổi từ mô hình mức PSM thu sang code Java JSP Việc hỗ trợ truy vấn ATL Truy vấn ATL chức ATL cung cấp để thực hành động xử lý, tính tốn mơ hình nguồn mà khơng sinh mơ hình đích, đó, có việc sinh chuỗi kí tự ghi file Các truy vấn ATL nhận đầu mơ hình Java, JSP thu phần cho đầu file mã nguồn java jsp tương ứng Sinh code từ mơ hình Lava Để thực sinh mã nguồn từ mơ hình java nhóm nghiên cứu phát triển 06 truy vấn ATL, thể bảng Bảng Các truy vấn sinh mã từ mơ hình java Tên truy vấn Mục đích Java2Code Duyệt tất class, gọi toString() để sinh mã ghi file toString Sinh mã cho phần tử (package, class, field, method, parameter) visibility Sinh mã phần access modifier (private, default, protected, public) scope Sinh mã từ khoá static fullName Sinh mã cho tên package, kiểu liệu kèm theo đường dẫn package đầy đủ modifierAbstract Sinh mã từ khoá abstract Chi tiết truy vấn ATL Java2Code: query Java2Code = JAVA!Type.allInstances() -> select(e | e.oclIsTypeOf(JAVA!JavaClass)) -> collect(x | x.toString() writeTo('/UWE2JAVA/Output/java/' + thisModule.getPackageName() replaceAll('.', '/') + '/' + x.name + '.java')); Sinh code từ mơ hình JSP Để thực sinh mã nguồn từ mơ hình JSP nhóm nghiên cứu phát triển 04 truy vấn ATL, thể bảng Bảng Truy vấn ATL sinh mã mơ hình JSP Tên truy vấn Ý nghĩa JSP2Code Duyệt tất nút Root, với nút Root, gọi getChildren duyệt tất thẻ (mỗi thẻ gọi getAttributes duyệt tất thuộc tính) gọi toCode để sinh mã, ghi vào file tương ứng getChildren Duyệt tất thẻ getAttributes Duyệt tất thuộc tính toCode Sinh mã cho phần tử (thẻ thuộc tính) Chi tiết truy vấn JSP2Code: query JSP2Code = JSP!Root.allInstances() -> collect(n | n.getChildren() -> iterate(n; acc: String = '' | acc + n.toCode()) writeTo('/UWE2JAVA/Output/resources/jsp/' + n.documentName)); THỬ NGHIỆM SINH CODE VỚI ỨNG DỤNG WEB BENHTHUYSAN.NET Dựa quy tắc giải thuật sinh mã phát triển phần 2, xây dựng Tạp chí Nghiên cứu KH&CN quân sự, Số 72, 04 - 2021 107 Cơng nghệ thơng tin & Cơ sở tốn học cho tin học công cụ CODEGER –UWE, cung cấp cho người phát triển web hướng mơ hình cơng cụ để sinh mã tự động tạo ứng dụng web Để đánh giá luật xây dựng được, áp dụng cơng cụ CODEGER –UWE vào tốn xây dựng website chẩn đoán bệnh thủy sản (benhthuysan.vn) website chẩn đoán phòng trị bệnh động vật thủy sản giúp người ni chẩn đốn đưa phác đồ điều trị cho bệnh thủy sản lúc, nơi, góp phần bước đại hóa phát triển NTTS bền vững Việt Nam Ứng dụng web có bốn chức năng: (i) Chức gợi ý chọn loại triệu chứng chuẩn đốn bệnh, lưu lại thơng tin chuẩn đốn: dựa thơng tin người dùng lựa chọn để tinh toán kết bệnh, người dùng lưu lại kết sau thực chuẩn đốn (ii) Chức tìm kiếm thơng tin phác đồ điều trị, thông tin bệnh theo tên bệnh tên loài thuỷ sản (iii) Chức người dùng đánh giá xác thơng tin bệnh (triệu chứng, phác đồ điều trị, kết chuẩn đoán, ) 3.1 Tạo thành phần Model, Controler, View 3.1.1 Thành phần model Mơ hình nội dung (hình 5) biểu diễn lớp ứng dụng bệnh thủy sản, sau áp dụng luật chuyển đổi trình bày mục 2, mơ hình Java sinh tự động Trong kiến trúc MVC, gói model thuộc thành phần Model, chứa lớp dùng để định nghĩa cấu trúc sở liệu (mỗi lớp tương ứng với bảng, trường tương ứng với cột bảng sở liệu) Hình Mơ hình nội dung Hình Mơ hình xử lý Trong kiến trúc MVC, gói service thuộc thành phần Model, chứa phương thức liên quan đến liệu mà ứng dụng cần gọi đến (truy xuất sở liệu, chuyển đổi, kiểm tra liệu hợp lệ,…) Do đó, mơ hình xử lý (hình 6) các hành vi dùng để định nghĩa phương thức cho service, nội dung phương thức để trống cần viết code để phương thức thức chức mong muốn 3.1.2 Thành phần Controler Thành phần controller nhận yêu cầu từ phía client gọi phương thức cần thiết (thường service thành phần Model cung cấp) để thực yêu cầu Spring sử dụng thích @RequestMapping để xác định nhận yêu cầu, phương thức controller thực thi Trong mơ hình điều hướng (hình 7), NavigationClass thể nút luồng điều hướng trang web tương ứng với yêu cầu từ phía client nên dùng để định nghĩa phương thức cho controller Áp dụng luật chuyển vào mơ hình điều hướng ứng dụng bệnh thủy sản, mơ hình Java thành phần Controler sinh để đáp ứng cho việc sinh code tự động 3.1.3 Thành phần View Áp dụng luật chuyển đổi, mô hình trình bày (hình 8) ứng dụng benhthuysan.vn thu mơ hình JSP hồn tồn tương thích với JSP Metamodel 108 T Đ Diễn, H Q Thắng, N T Đạt, “Phát triển thuật toán … bệnh thủy sản với ATL.” Nghiên cứu khoa học cơng nghệ Hình Mơ hình điều hướng Hình Mơ hình trình bày 3.2 Thực sinh mã Áp dụng luật chuyển đổi truy vấn ATL để sinh mã tự động cho ứng dụng web Mã nguồn Java JSP tương ứng với ứng dụng web có gói: model, controller service (hình 9) Trong đó, Gói model gồm lớp thể mơ hình nội dung ví dụ: tên cá, bệnh cá, triệu trứng bệnh,…; Gói service gồm class Service chứa phương thức liên quan đến liệu (truy xuất, chuyển đổi, kiểm tra hợp lệ,…) hệ thống gọi đến cần; Gói controller chứa class xử lý luồng điều hướng ứng dụng bao gồm lớp: DiseaseController, DiagnosisController Sau bổ sung mã nguồn cịn thiếu, ứng dụng thu có giao diện sử dụng hình 10 Hình Cấu trúc mã nguồn sinh tự động Hình Giao diện web benhthuysan.vn Ưu điểm nghiên cứu chuyển đổi mơ hình tạo mã tự động mơ hình hiệu Kết cho thấy, việc chuyển đổi tự động mơ hình UWE tốt nghiên cứu [12], bao gồm việc mơ tả chi tiết thành phần mơ hình sau chuyển đổi thể chi tiết hơn, tiết kiệm thời gian phải can thiệp thủ cơng Cụ thể, với mơ hình nội dung, xử lý cơng cụ CODEGER-UWE nhóm nghiên cứu đề xuất có số lượng class sinh class sinh có nhiều attributes operations (bảng 7) Vì vậy, việc sinh class có ý nghĩa thay class rỗng Bảng Bảng so sách kết chuyển đổi mơ hình nội dung mơ hình xử lý CODEGER-UWE MagicUWE Mơ hình Classes Attributes Operations Classes Attributes Operations Nội dung 10 18 operations Xử lý 10 0 (2 parameters) Tạp chí Nghiên cứu KH&CN quân sự, Số 72, 04 - 2021 109 Công nghệ thơng tin & Cơ sở tốn học cho tin học Bảng Bảng so sánh kết chuyển đổi mơ hình điều hướng CODEGER-UWE MagicUWE Mơ hình Navigation Navigation ProcessClass Links ProcessClass Links Classes Classes Điều hướng 10 17 10 18 Bảng Bảng so sách kết chuyển đổi mơ hình trình bày CODEGER-UWE MagicUWE Mơ hình Classes Properties Classes Properties Trình bày 9 Như vậy, phương pháp tiếp cận nhóm nghiên cứu giúp đảm bào tính thống mơ hình sau chuyển đổi, góp phần cải thiện chất lượng chuyển đổi mơ hình sang mơ hình, mơ hình sang text, đảm bảo hiệu chuyển đổi mơ hình cho phát triển ứng dụng Web hướng mơ hình KẾT LUẬN Bài báo trình bày kết nghiên cứu phát triển quy tắc chuyền đổi mơ hình gồm hai phần Thứ nhất, chuyển đổi model-to-model cho phép chuyển đổi từ mơ hình mức PIM sang mơ hình mức PSM (mơ hình Java mơ hình JSP) Thứ hai, chuyển đổi model-to-code cho phép sinh mã từ mơ hình mức PSM thu thành file mã nguồn java jsp Cách tiếp cận cung cấp giải pháp hiệu cho vấn đề sinh mã tự động theo phương pháp phát triển ứng dụng Web hướng mơ hình UWE Chúng tơi thực nghiên cứu sau: Đề xuất giải pháp xây dựng 23 quy tắc chuyển đổi sang mơ hình Java (chuyển đổi từ mức PIM sang PSM): 12 quy tắc chuyển thành, thành phần Model từ mơ hình nội dung; 08 quy tắc tạo thành phần View từ mơ hình trình bày 03 quy tắc tạo thành phần Controller từ mơ hình điều hướng Phát triển 06 truy vấn ATL để sinh mã mơ hình Java; 04 truy vấn ATL để sinh mã từ mơ hình JSP Từ quy tắc, truy vấn ATL phát triển, nhóm nghiên cứu xây dựng công cụ CODEGER-UWE để hỗ trợ sinh mã nguồn java jsp để tạo ứng dụng web benhthuysan.vn Trong thời gian tới chúng tơi tiếp tục phát triển, hồn thiện quy tắc chuyển đổi thành mơ hình PSM giải thuật sinh mã nguồn tự động áp dụng vào tốn khác hướng tới đưa cơng cụ vào sử dụng rộng rãi để tạo ứng dụng web tự động TÀI LIỆU THAM KHẢO [1] Q X Kevin Lano (2016) "Agile model-based development using UML-RSDS" [2] Q X Kevin Lano and S Kolahdouz-Rahimi, "Agile Specification of Code Generators for ModelDriven Engineering," in The Fifteenth International Conference on Software Engineering Advances, Porto, Portugal, 2020 [3] 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 [4] A A H Alzahrani, "4GL Code Generation: A Systematic Review," (IJACSA) International Journal of Advanced Computer Science and Applications, vol Vol 11, p 8, 2020 [5] Y Rhazali, A E Hachimi, I Chana, and M Lahmer (2020) "Automate Model Transformation From CIM to PIM up to PSM in Model- Driven Architecture" [6] A Bajovs, O Nikiforova, and J Sejans, "Code Generation from UML Model: State of the Art and Practical Implications," Applied Computer Systems, vol 14, p 10, 08 Jun 2013 2013 [7] J Küster, "Model-Driven Software Engineering Code Generation," IBM Research – Zurich, Switzerland2011 [8] K Czarnecki and S Helsen, "Feature-Based Survey of Model Transformation Approaches," IBM Systems Journal, vol 45, pp 621 - 645, March 15, 2006 2006 110 T Đ Diễn, H Q Thắng, N T Đạt, “Phát triển thuật toán … bệnh thủy sản với ATL.” Nghiên cứu khoa học công nghệ [9] 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 [10] 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 [11] K Nora, "Transformation Techniques in the Model-Driven Development Process of UWE," in sixth international conference on Web engineering California, USA, 2007, p 10 [12] M Busch and N Koch, "MagicUWE – A CASE Tool Plugin for Modeling Web Applications," in 9th International Conference, ICWE 2009, Spain, 2009, pp 505-508 [13] I Essebaa, C Salima, and M Ramdani, "MoDAr-WA: Tool Support to Automate anMDA Approach for MVCWeb Application," Computers 2019, p 23, 2019 [14] 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, 2017 [15] G Paolone, M Marinelli, R Paesani, and P D Felice, "Automatic Code Generation of MVC Web Applications," computers, vol Vol 9, p 29, 2020 [16] M Busch and M Á G d Dios, "ActionUWE: Transformation of UWE to ActionGUI Models," Institute for Informatics, Germany2012 [17] L Abdellatif, M Chhiba, A Tabyaoui, and O Mjihil, "Model driven architecture approach for application security integration," Journal of Theoretical and Applied Information Technology, vol 8, p 13, 30th April 2017 [18] A F Subahi, "A Business User Model-Driven Engineering Method for Developing Information Systems," Department of Computer Science, University of Sheffie, England, UK, 2015 [19] T D Dien, H Q Thang, and T Q Khanh, "Development of The Rules for Model Transformation with OCL Integration in UWE," in The 7th International Conference On Frontiers Of Intelligent Computing: Theory And Application (FICTA 2018), Da Nang, Viet Nam, 2018 [20] Q.-T HUYNH, D.-D TRAN, T.-M.-A BUI, and P.-L NGUYEN, "Development of Rules and Algorithms for Model-Driven Code Generator with UWE Approach," presented at the Advancing Technology Industrialization Through Intelligent Software Methodologies, Tools and Techniques Proceedings of the 18th International Conference on New Trends in Intelligent Software Methodologies, Tools and Techniques (SoMeT_19), Kuching, Malaysia, 2019 ABSTRACT DEVELOPMENT OF CODE GENERATOR ALGORITHMS FOR WEB APPLICATION AQUATIC DISEASES DIAGNOSE WITH ATL The research paper develops rules and algorithm code generation from models follow by UWE technical (UML-based Web Engineering) to create a web application for aquatic disease diagnosis (benhthuysan.vn) According to MVC architecture, the rules are implemented in ATL transformation language, ensuring the efficiency of model transformation for model-oriented Web application development In this paper, we present the MDE approach to creating Web applications from UWE web models We have improved the construction of a number of rules, an automatic code generation algorithm to improve, improve the efficiency of the conversion from model to code from UWE models and built the CODEGER-UWE tool to build Web application This is a method with a clear, handy development process Keywords: Automatic code generation; Model transformation; ATL; Web applications Nhận ngày 13 tháng năm 2021 Hoàn thiện ngày 06 tháng năm 2021 Chấp nhận đăng ngày 12 tháng năm 2021 Địa chỉ: Viện Công nghệ Thông tin Truyền thông, Trường Đại học Bách Khoa Hà Nội *Email: trandinhdien@gmail.com Tạp chí Nghiên cứu KH&CN quân sự, Số 72, 04 - 2021 111 ... CODEGER –UWE vào toán xây dựng website chẩn đốn bệnh thủy sản (benhthuysan.vn) website chẩn đốn phịng trị bệnh động vật thủy sản giúp người ni chẩn đoán đưa phác đồ điều trị cho bệnh thủy sản lúc, nơi,... biểu đồ lớp ứng dụng web mơ hình hố phần tử mô 104 T Đ Diễn, H Q Thắng, N T Đạt, ? ?Phát triển thuật toán … bệnh thủy sản với ATL. ” Nghiên cứu khoa học cơng nghệ hình UML 2.0 tiêu chuẩn Mỗi class... xây dựng công cụ CODEGER-UWE để hỗ trợ sinh mã nguồn cho ứng dụng web benhthuysan.vn Nội dung báo cấu trúc sau: Mục trình bày kỹ thuật Tự động sinh mã nguồn phát triển ứng dụng web hướng mơ hình