Tổng quan luận án
Luận án tiến sĩ kỹ thuật phần mềm của nghiên cứu sinh Trần Đình Diễn với đề 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", được thực hiện tại Trường Đại học Bách khoa Hà Nội dưới sự hướng dẫn khoa học của PGS. Huỳnh Quyết Thắng và PGS. Cao Tuấn Dũng (bảo vệ năm 2022, chuyên ngành Kỹ thuật phần mềm, mã số 9480103).
Tính cấp thiết và khoảng trống nghiên cứu
Trong quy trình phát triển phần mềm truyền thống, các nhà phát triển phải đối mặt với sự thay đổi liên tục của các nền tảng công nghệ mới, đòi hỏi nhiều thời gian và công sức để điều chỉnh ứng dụng thủ công qua việc sửa đổi trực tiếp mã nguồn. Phát triển phần mềm hướng mô hình (Model-Driven Software Development - MDSD / Model-Driven Engineering - MDE) và Kiến trúc hướng mô hình (Model-Driven Architecture - MDA) của Tổ chức Quản lý Đối tượng (OMG) đã ra đời nhằm giải quyết sự phức tạp này bằng cách đặt các mô hình làm tác nhân chính xuyên suốt vòng đời phát triển.
Trong các phương pháp phát triển ứng dụng web hướng mô hình, phương pháp UWE (UML-based Web Engineering) do nhóm nghiên cứu tại Đại học LMU (Đức) đề xuất đã cung cấp quy trình và bộ công cụ mô hình hóa dựa trên chuẩn UML 2.0. Tuy nhiên, tác giả chỉ ra hai khoảng trống kỹ thuật lớn trong các nghiên cứu UWE trước đó:
- Việc chuyển đổi từ mô hình yêu cầu sang các mô hình thiết kế (nội dung, điều hướng, xử lý, trình bày) vẫn còn phải điều chỉnh thủ công, dẫn đến tốn kém thời gian, chi phí và khó đảm bảo tính nhất quán, đồng bộ khi có thay đổi.
- Các nghiên cứu chủ yếu tập trung vào khâu mô hình hóa; khâu sinh mã tự động còn hạn chế, đa số chỉ dừng lại ở việc tạo khung mã (code skeleton) và đòi hỏi lập trình viên phải viết mã cài đặt chi tiết bằng tay.
Mục tiêu nghiên cứu
- Mục tiêu chung: Nghiên cứu kỹ thuật phát triển phần mềm hướng mô hình cho ứng dụng web nhằm phát triển bộ quy tắc chuyển đổi mô hình sang mô hình (Model-to-Model - M2M) và mô hình sang mã nguồn (Model-to-Code - M2C) theo phương pháp UWE; 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 (Model-View-Controller).
- Mục tiêu cụ thể:
- Phát triển bộ quy tắc chuyển đổi từ mô hình mức CIM (Computation Independent Model) sang PIM (Platform-Independent Model), từ PIM sang PSM (Platform-Specific Model) và từ PSM sang mã nguồn theo phương pháp UWE nhằ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í phát triển.
- Xây dựng công cụ sinh mã tự động theo kiến trúc MVC dựa trên các quy tắc đã phát triển và thực nghiệm 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ăn bản luận án xác định 5 nhiệm vụ nghiên cứu cụ thể:
- 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 và các phương pháp kỹ nghệ web hướng mô hình (UWE, WebML, WebSA, OOWS).
- Phát triển các quy tắc chuyển đổi mô hình (CIM sang PIM).
- Phát triển các quy tắc sinh mã với ngôn ngữ chuyển đổi mô hình ATL (ATLAS Transformation Language) theo phương pháp UWE.
- Xây dựng công cụ sinh mã tự động CODEGER-UWE cho ứng dụng web theo kiến trúc MVC.
- Thực nghiệm và đánh giá: Kiểm chứng tính khả thi của giải pháp bằng việc áp dụng vào các ca nghiên cứu mẫu và hệ thống chẩn đoán bệnh thủy sản thực tế.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Vấn đề chuyển đổi mô hình và sinh mã tự động trong phát triển ứng dụng web theo phương pháp UWE; các mô hình yêu cầu, nội dung, điều hướng, xử lý, trình bày và cơ chế chuyển dịch giữa các mức trừu tượng MDA.
- Phạm vi nghiên cứu:
- Không gian công nghệ: Ứng dụng web hướng mô hình theo kiến trúc 3 lớp MVC; các mô hình đích ở mức PSM bao gồm mô hình Java (xử lý logic nghiệp vụ và dữ liệu) và mô hình JSP (JavaServer Pages cho giao diện); ngôn ngữ chuyển đổi mô hình ATL và ngôn ngữ ràng buộc OCL (Object Constraint Language).
- Phạm vi thực nghiệm: Các bài toán chuẩn trong tài liệu UWE (MusicPortal, AddressBook) và hệ thống ứng dụng web chẩn đoán bệnh thủy sản tại Việt Nam.
Tổng quan tài liệu và vị trí của luận án
Luận án đã tổng hợp và phân tích hệ thống tài liệu nghiên cứu quốc tế về phát triển phần mềm hướng mô hình (MDSD/MDE/MDA) và các phương pháp kỹ nghệ web hướng mô hình (MDWE).
Các hướng nghiên cứu trước được điểm luận
- Kiến trúc hướng mô hình MDA và các chuẩn của OMG: Tác giả điểm lại tài liệu chuẩn MDA Guide Version 1.0.1 (OMG, Miller & Mukerji, 2003), chuẩn siêu mô hình MOF (Meta Object Facility), ngôn ngữ UML 2.0 và ngôn ngữ ràng buộc OCL 2.0. Luận án phân tích tiến trình biến đổi mô hình từ CIM $\rightarrow$ PIM $\rightarrow$ PSM $\rightarrow$ Code qua các kỹ thuật ánh xạ siêu mô hình, đánh dấu mô hình (model marking), và áp dụng mẫu (pattern application).
- Các phương pháp kỹ nghệ web hướng mô hình (MDWE):
- UWE (UML-based Web Engineering): Nhóm nghiên cứu của Nora Koch, Andreas Kraus (2006, 2007, 2011) tại Đại học LMU Munich; công cụ MagicUWE (Koch et al., 2009); kỹ thuật ActionUWE (Dios, 2012). UWE cung cấp các siêu mô hình mở rộng trực tiếp từ UML Profile cho các khía cạnh yêu cầu, nội dung, điều hướng, xử lý và trình bày.
- WebSA (Web Software Architecture): Nghiên cứu của Santiago M. (2006) kết hợp MDE với kiến trúc ứng dụng web.
- WebML (Web Modeling Language): Đề xuất bởi Ceri, Fraternali, Bongio (2000), tập trung vào thiết kế cấu trúc dữ liệu và siêu văn bản dựa trên XML.
- OOWS (Object-Oriented Web Solution): Phương pháp tiếp cận hướng đối tượng cho phát triển ứng dụng web của Đại học Bách khoa Valencia.
- MIDAS-HM3: Phương pháp mô hình hóa siêu văn bản trên hệ thống thông tin web.
- Kỹ thuật chuyển đổi mô hình và sinh mã nguồn:
- Ngôn ngữ chuyển đổi mô hình: ATL do nhóm ATLAS (INRIA, Jouault, Bézivin, Kurtev, 2005, 2006) phát triển trên nền tảng Eclipse Modeling Framework (EMF); chuẩn QVT (Query/View/Transformation) của OMG.
- Các công trình về sinh mã từ UML/MDA: Nghiên cứu của Jörges (2013), Rhazali et al. (2020), Ramdani (2019), Felice (2017), và các công cụ thương mại như Sparx Systems Enterprise Architect.
Khoảng trống luận án lựa chọn giải quyết
Mặc dù UWE và các phương pháp MDWE đã đạt được nhiều thành tựu về mặt biểu diễn mô hình, việc tích hợp đầy đủ tính tự động từ khâu đặc tả yêu cầu (CIM) đến mã nguồn hoàn chỉnh (Code) vẫn chưa liền mạch. Đa phần các công cụ chuyển đổi chỉ hỗ trợ từng chặng rời rạc hoặc dừng lại ở sinh mã khung. Luận án tập trung giải quyết trọn vẹn chuỗi chuyển đổi: Xây dựng quy tắc M2M chuyển đổi tự động từ biểu đồ Use Case và Activity (CIM) sang 4 mô hình PIM của UWE kết hợp tích hợp biểu thức OCL, sau đó chuyển đổi từ PIM sang PSM (Java/JSP theo mô hình MVC) và sinh mã thực thi hoàn chỉnh thông qua việc xây dựng công cụ CODEGER-UWE.
Cơ sở lý thuyết và phương pháp nghiên cứu
Cơ sở lý thuyết, khái niệm và khung phân tích
Luận án vận dụng các khung lý thuyết và tiêu chuẩn quốc tế:
- Kiến trúc MDA của OMG: Phân cấp 3 mức độ trừu tượng:
- CIM (Computation Independent Model): Biểu đồ Use Case và Activity Diagram đặc tả yêu cầu nghiệp vụ.
- PIM (Platform-Independent Model): 4 mô hình độc lập nền tảng của UWE (Content, Navigation, Process, Presentation Model).
- PSM (Platform-Specific Model): Mô hình cấu trúc Java (Model, Service, Controller) và mô hình JSP (View).
- Ngôn ngữ ràng buộc đối tượng (OCL): Sử dụng OCL 2.0 để biểu diễn các bất biến (invariant), tiền điều kiện (precondition), hậu điều kiện (postcondition) và các ràng buộc logic nhằm làm giàu ngữ nghĩa cho mô hình xử lý và mô hình trình bày.
- Ngôn ngữ chuyển đổi mô hình ATL: Sử dụng cơ chế ánh xạ khai báo (declarative rules) và các hàm trợ giúp (helpers), truy vấn (queries) thực thi trên máy ảo ATL (ATL Virtual Machine) tương thích với chuẩn Ecore/EMF.
- Mô hình kiến trúc MVC (Model-View-Controller): Định hướng việc sinh mã nguồn tách bạch 3 thành phần: Model (lớp thực thể và truy cập dữ liệu), Controller (điều khiển luồng và điều hướng), View (giao diện người dùng JSP).
Phương pháp nghiên cứu thực tế
Luận án kết hợp phương pháp nghiên cứu lý thuyết hình thức và phương pháp thực nghiệm phát triển công cụ phần mềm:
- Phương pháp lý thuyết: Phân tích siêu mô hình (metamodel analysis), xây dựng các tập luật chuyển đổi cấu trúc đồ thị mô hình sang mô hình (M2M) và từ mô hình sang văn bản mã nguồn (M2T/M2C).
- Phương pháp kỹ thuật - thực nghiệm:
- Thiết kế và cài đặt công cụ phần mềm CODEGER-UWE tích hợp vào môi trường mô hình hóa MagicDraw CASE tool.
- Xây dựng các ca kiểm chứng trên 2 bài toán chuẩn: Cổng thông tin âm nhạc (MusicPortal) và Sổ địa chỉ (AddressBook).
- Áp dụng phát triển hệ thống thực tế: Ứng dụng web Chẩn đoán bệnh thủy sản (
benhthuysan.vn).
- Đánh giá thực nghiệm: Khảo sát mức độ hài lòng của người dùng thực tế với 5 mức thang đo (Rất hài lòng, Hài lòng, Bình thường, Không hài lòng, Rất không hài lòng) trên 3 nhóm đối tượng: Chuyên gia thủy sản, Người nuôi trồng thủy sản và Sinh viên ngành thủy sản.
Nguồn tư liệu và dữ liệu
- Siêu mô hình UWE Profile phiên bản 1.9 của Nhóm PST (Đại học LMU Munich).
- Tập đặc tả Ecore của UML, Java Metamodel và JSP Metamodel.
- Dữ liệu tri thức chẩn đoán bệnh thủy sản thu thập từ các chuyên gia và giáo trình chuyên ngành thủy sản.
Nội dung chính theo từng chương
CHƯƠNG 1: PHÁT TRIỂN PHẦN MỀM HƯỚNG MÔ HÌNH
Chương 1 thiết lập nền tảng lý thuyết tổng quan về kỹ nghệ phần mềm hướng mô hình và phân tích hiện trạng các kỹ thuật web hướng mô hình.
+-------------------------------------------------------------------------+
| Tiến trình MDA trong Luận án |
| |
| [ CIM ] --> Biểu đồ Use Case & Biểu đồ Activity |
| [ PIM ] --> Mô hình UWE (Content, Navigation, Process, Presentation) |
| [ PSM ] --> Mô hình Java (Model/Controller) & Mô hình JSP (View) |
| [ CODE] --> Mã nguồn ứng dụng Web hoàn chỉnh (.java, .jsp) |
+-------------------------------------------------------------------------+
Nội dung trọng tâm của chương gồm:
- Kiến trúc MDA: Phân tích chi tiết khái niệm, vai trò và tiến trình chuyển đổi giữa CIM, PIM, PSM; phân loại chuyển đổi M2M và M2C; các kỹ thuật ánh xạ siêu mô hình, đánh dấu mô hình và kết hợp mẫu thiết kế.
- Ngôn ngữ chuyển đổi mô hình: Trình bày cấu trúc hoạt động của ngôn ngữ ATL (module, rule, helper, query) trên nền EMF, so sánh với ngôn ngữ QVT của OMG.
- Các chuẩn OMG liên quan: Đặc tả MOF, UML Profile và OCL.
- Phân tích so sánh các phương pháp MDWE: Khảo sát các phương pháp WebSA, OOWS, MIDAS-HM3, WebML và UWE; chỉ ra UWE có ưu thế vượt trội do kế thừa hoàn toàn UML Profile tiêu chuẩn, thuận lợi cho việc tích hợp công cụ CASE và mở rộng quy tắc chuyển đổi.
- Nhiệm vụ rút ra cho luận án: Khẳng định sự cần thiết phải tự động hóa chặng CIM $\rightarrow$ PIM và nâng cao năng lực sinh mã hoàn chỉnh từ PIM $\rightarrow$ PSM $\rightarrow$ Code theo kiến trúc MVC.
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
Chương 2 tập trung giải quyết bài toán chuyển đổi mô hình mức CIM sang PIM trong phương pháp UWE bằng ngôn ngữ ATL và tích hợp ràng buộc OCL.
| Mô hình nguồn (CIM) |
Mô hình đích (PIM - UWE) |
Cơ chế chuyển đổi & Ràng buộc bổ sung |
| Use Case Diagram |
Content Model (Mô hình nội dung) |
Ánh xạ Use Case và Actor thành các thực thể dữ liệu (Entities/Classes), thuộc tính và quan hệ. |
| Use Case + Content |
Navigation Model (Mô hình điều hướng) |
Sinh các lớp điều hướng (Navigation Classes), nút điều hướng (Navigation Nodes), chỉ mục (Index), menu. |
| Activity Diagram |
Process Model (Mô hình xử lý) |
Chuyển đổi Action Nodes, Decision Nodes thành Process Classes và Process Operations; tích hợp OCL Pre/Post-conditions. |
| Navigation + Process |
Presentation Model (Mô hình trình bày) |
Sinh các phần tử giao diện (Presentation Elements): Button, Form, Text, DisplayAction; tích hợp OCL Invariants. |
Nội dung chi tiết:
- Tích hợp ràng buộc OCL: Bổ sung các biểu thức OCL vào mô hình xử lý (biểu diễn điều kiện chuyển hướng, hợp lệ hóa dữ liệu giao tác) và mô hình trình bày (ràng buộc hiển thị, trạng thái các nút giao diện).
- Phát triển siêu mô hình và bộ quy tắc ATL: Xây dựng siêu mô hình cho Use Case, Activity Diagram và 4 siêu mô hình thành phần UWE; định nghĩa hoàn chỉnh 31 quy tắc chuyển đổi ATL từ CIM sang PIM.
- Thực nghiệm kiểm chứng: Áp dụng bộ quy tắc chuyển đổi trên hai ứng dụng mẫu:
- MusicPortal: Chuyển đổi thành công biểu đồ Use Case và biểu đồ Activity của quy trình
BuyAlbum sang mô hình Content, Navigation, Process và Presentation.
- AddressBook: Xác nhận tính ổn định và tính tự động của các quy tắc đối với hệ thống quản lý danh bạ.
CHƯƠNG 3: SINH MÃ TỰ ĐỘNG CHO ỨNG DỤNG WEB HƯỚNG MÔ HÌNH
Chương 3 đề xuất giải pháp sinh mã nguồn tự động từ các mô hình PIM của UWE sang các mô hình PSM và xuất ra mã nguồn hoàn chỉnh theo kiến trúc MVC.
+--------------------------------+
| PIM (Mô hình UWE) |
+--------------------------------+
[Content Model] [Nav & Process Model] [Presentation Model]
+--------------+ +---------------+ +--------------+
| PSM: Model | | PSM: Control | | PSM: View |
| (Java Class) | | (Java Servlet)| | (JSP Page) |
+--------------+ +---------------+ +--------------+
+--------------------------------+
| MÃ NGUỒN THỰC THI HOÀN CHỈNH |
| (Java, JSP, Database) |
+--------------------------------+
Nội dung chi tiết của chương:
- Xây dựng giải thuật sinh mã MVC:
- Giải thuật CM2M (Content Model to Model): Chuyển đổi mô hình nội dung thành các lớp Java Model (Entity, POJO, Hibernate/JPA Mapping).
- Giải thuật NM2C / PROM2C (Navigation & Process Model to Controller): Chuyển đổi cấu trúc điều hướng và tiến trình xử lý thành các lớp Java Controller / Java Servlet quản lý luồng dữ liệu.
- Giải thuật PRES2V (Presentation Model to View): Chuyển đổi các phần tử giao diện trong mô hình trình bày thành các tệp giao diện JSP hoàn chỉnh.
- Đặc tả quy tắc chuyển đổi PIM sang PSM và Truy vấn ATL:
- Xây dựng 23 quy tắc chuyển đổi sang mô hình Java: 12 quy tắc tạo Model từ Content Model, 08 quy tắc tạo View từ Presentation Model, và 03 quy tắc tạo Controller từ Navigation Model.
- Phát triển 06 truy vấn ATL để sinh mã từ mô hình Java.
- Phát triển 04 truy vấn ATL để sinh mã từ mô hình JSP.
- Xây dựng công cụ CODEGER-UWE: Phát triển công cụ dưới dạng plugin tích hợp trên phần mềm MagicDraw, hỗ trợ nạp mô hình UWE, áp dụng bộ chuyển đổi ATL và tự động tạo cấu trúc dự án mã nguồn.
- Thực nghiệm ứng dụng Chẩn đoán bệnh thủy sản (
benhthuysan.vn):
- Áp dụng trọn vẹn quy trình: Từ biểu đồ Use Case và Activity của hệ thống chẩn đoán bệnh thủy sản, công cụ CODEGER-UWE tự động chuyển đổi mô hình và sinh ra mã nguồn web hoàn chỉnh.
- Kết quả khảo sát thử nghiệm hệ thống thực tế trên 3 nhóm đối tượng cho thấy tỷ lệ đánh giá ở mức Hài lòng và Rất hài lòng chiếm đa số ở cả nhóm chuyên gia, người nuôi trồng và sinh viên thủy sản.
Kết quả và những đóng góp mới
Những đóng góp mới về lý luận và khoa học
- Hoàn thiện chuỗi chuyển đổi CIM sang PIM cho phương pháp UWE: Tổng hợp lý luận và đề xuất bổ sung bộ quy tắc chuyển đổi hình thức từ biểu đồ yêu cầu mức CIM (Use Case, Activity) sang 4 mô hình PIM (Content, Navigation, Process, Presentation) của UWE. Đề xuất phương pháp tích hợp ngôn ngữ ràng buộc OCL vào mô hình xử lý và trình bày nhằm làm giàu ngữ nghĩa, bảo đảm tính nhất quán và toàn vẹn dữ liệu.
- Xây dựng phương pháp sinh mã tự động theo kiến trúc MVC: Thiết lập 3 giải thuật cốt lõi (CM2M, PRES2V, NPROM2C), 23 quy tắc chuyển đổi PIM sang PSM và 10 truy vấn ATL (6 Java, 4 JSP). Phương pháp này khắc phục hạn chế sinh "mã khung" của các nghiên cứu trước, tạo ra mã nguồn ứng dụng web 3 lớp hoàn chỉnh có khả năng thực thi trực tiếp.
Những đóng góp mới về mặt thực tiễn
- Phát triển công cụ phần mềm CODEGER-UWE: Tích hợp thành công bộ quy tắc chuyển đổi và sinh mã vào công cụ CASE MagicDraw, cung cấp cho các nhà phát triển một giải pháp tự động hóa quy trình sản xuất phần mềm web hướng mô hình.
- Ứng dụng thành công trong hệ thống thực tế: Xây dựng và triển khai ứng dụng web Chẩn đoán bệnh thủy sản (
benhthuysan.vn), minh chứng tính đúng đắn, khả thi và hiệu quả của phương pháp tiếp cận trong việc giảm thiểu công sức lập trình thủ công và nâng cao tốc độ phát triển dự án.
Danh mục các công trình khoa học đã công bố của tác giả
Các kết quả của luận án đã được công bố trong 06 công trình khoa học (gồm các bài báo tạp chí chuyên ngành trong nước, quốc tế thuộc danh mục Scopus/WoS và kỷ yếu hội thảo quốc gia/quốc tế):
- CT1 (2015): 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.
- CT2 (2015): AUN/SEED-Net Regional Conference for Computer and Information Engineering, trang 78-83.
- CT3 (2018): Proceedings of the 7th International Conference on Frontiers of Intelligent Computing: Theory and Applications (FICTA 2018), Springer, Scopus.
- CT4 (2019): New Trends in Intelligent Software Methodologies, Tools and Techniques, Volume 318, WoS/Scopus.
- CT5 (2021): Journal of Science and Technology (JST), Vol 1, Issue 1.
- CT6 (2021): Tạp chí Nghiên cứu Khoa học và Công nghệ quân sự (JMST), số 72.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của luận án
- Khung sinh mã hiện tại tập trung chủ yếu vào kiến trúc 3 lớp MVC với công nghệ nền Java/JSP; chưa mở rộng sang các kiến trúc hiện đại khác như Single Page Applications (SPA), Microservices hoặc các framework giao diện phía client (React, Angular, Vue).
- Mức độ bao phủ của các quy tắc ràng buộc OCL phức tạp trong một số trường hợp giao dịch phân tán chưa được tối ưu hóa toàn diện.
Hướng nghiên cứu tiếp
- Mở rộng năng lực của công cụ CODEGER-UWE: Tiếp tục nghiên cứu sâu hơn về kỹ thuật chuyển đổi mô hình và sinh mã, nâng cao khả năng xử lý các ràng buộc OCL phức tạp và hỗ trợ thêm nhiều nền tảng công nghệ web hiện đại.
- Tích hợp kiểm thử hướng mô hình (Model-Based Testing - MBT): Luận án dẫn chứng các nghiên cứu (Varshosaz, 2017) cho thấy hoạt động kiểm thử thường chiếm khoảng 50% chi phí dự án và 35% tổng thời gian phát triển phần mềm. Do đó, hướng nghiên cứu tiếp theo là tích hợp khả năng sinh tự động các ca kiểm thử (test cases) trực tiếp từ các mô hình UWE nhằm tối ưu hóa chi phí và đảm bảo chất lượng toàn diện của sản phẩm phần mềm web.
Giá trị tham khảo
Luận án là tài liệu tham khảo có giá trị cao cho nhiều nhóm đối tượng trong lĩnh vực công nghệ thông tin và kỹ thuật phần mềm:
- Đối với nghiên cứu sinh, học viên cao học và nhà nghiên cứu:
- Cung cấp cơ sở lý thuyết có hệ thống về MDE, MDA, UWE, ATL và OCL.
- Phần đáng tham khảo nhất là kỹ thuật ánh xạ siêu mô hình (Metamodel Transformation) và phương pháp tích hợp biểu thức OCL để làm giàu ngữ nghĩa mô hình trong Chương 2.
- Đối với giảng viên và sinh viên chuyên ngành Kỹ thuật phần mềm:
- Có thể sử dụng làm tài liệu giảng dạy chuyên đề về Phát triển phần mềm hướng mô hình, thiết kế kiến trúc phần mềm nâng cao, và kỹ thuật tự động hóa sinh mã nguồn.
- Đối với các kỹ sư phần mềm, kiến trúc sư hệ thống và doanh nghiệp công nghệ:
- Tham khảo kiến trúc công cụ CODEGER-UWE và các giải thuật chuyển đổi M2M/M2C (Chương 3) để ứng dụng vào việc xây dựng các công cụ sinh mã nội bộ (in-house code generators), giúp chuẩn hóa quy trình thiết kế, giảm chi phí lập trình thủ công và rút ngắn thời gian đưa sản phẩm ra thị trường.
Câu hỏi thường gặp
1. Phương pháp UWE trong luận án sử dụng những loại mô hình PIM nào để đặc tả một ứng dụng Web?
Theo phương pháp UWE, hệ thống ứng dụng web được phân tách thành 4 mô hình PIM độc lập nền tảng:
- Mô hình nội dung (Content Model): Đặc tả các lớp thực thể, thuộc tính và quan hệ dữ liệu của ứng dụng.
- Mô hình điều hướng (Navigation Model): Đặc tả không gian siêu văn bản, các liên kết, menu, chỉ mục và luồng di chuyển giữa các trang web.
- Mô hình xử lý (Process Model): Đặc tả logic của các tác vụ nghiệp vụ và giao tác người dùng.
- Mô hình trình bày (Presentation Model): Đặc tả cấu trúc bố cục giao diện đồ họa người dùng (nút bấm, biểu mẫu, văn bản hiển thị).
2. Ngôn ngữ OCL đóng vai trò gì trong kỹ thuật chuyển đổi mô hình của tác giả?
OCL (Object Constraint Language) được tích hợp vào mô hình xử lý và mô hình trình bày để đặc tả các ràng buộc logic mà biểu đồ UML thông thường không thể hiện tường minh được:
- Trong mô hình xử lý: OCL biểu diễn các điều kiện tiền đề (pre-conditions), điều kiện kết thúc (post-conditions) và các điều kiện rẽ nhánh nghiệp vụ.
- Trong mô hình trình bày: OCL biểu diễn các bất biến (invariants) nhằm kiểm soát trạng thái hiển thị của các thành phần giao diện (ví dụ: ẩn/hiện nút bấm, kiểm tra tính hợp lệ của dữ liệu nhập trước khi submit form).
3. Bộ quy tắc sinh mã trong luận án được tổ chức như thế nào để tạo ra ứng dụng theo kiến trúc MVC?
Bộ quy tắc sinh mã gồm:
- 3 giải thuật chính:
CM2M (chuyển đổi Content Model sang thành phần Model), PRES2V (chuyển đổi Presentation Model sang thành phần View/JSP), và NM2C / PROM2C (chuyển đổi Navigation và Process Model sang thành phần Controller/Servlet).
- Hệ thống 23 quy tắc chuyển đổi mô hình PIM sang PSM Java (12 quy tắc Model, 8 quy tắc View, 3 quy tắc Controller).
- 10 truy vấn ATL (6 truy vấn cho Java và 4 truy vấn cho JSP) để trích xuất cấu trúc PSM thành các tệp mã nguồn hoàn chỉnh.
4. Công cụ CODEGER-UWE được xây dựng trên nền tảng nào và giải quyết vấn đề gì?
CODEGER-UWE là công cụ được tác giả phát triển dưới dạng plugin tích hợp trên môi trường CASE tool MagicDraw. Công cụ này tích hợp sẵn bộ chuyển đổi ATL và các giải thuật sinh mã MVC, cho phép người phát triển sau khi vẽ các biểu đồ Use Case và Activity có thể tự động sinh ra các mô hình UWE và tạo ra cây mã nguồn dự án (Java, JSP, cấu hình web) mà không cần lập trình khung mã thủ công.
5. Hệ thống thực tế "benhthuysan.vn" được thử nghiệm và đánh giá như thế nào?
Ứng dụng web Chẩn đoán bệnh thủy sản (benhthuysan.vn) được phát triển hoàn chỉnh từ mô hình UWE thông qua công cụ CODEGER-UWE. Sau khi cài đặt, hệ thống được đưa vào thử nghiệm thực tế và khảo sát trên 3 nhóm đối tượng: Chuyên gia thủy sản, Người nuôi trồng thủy sản và Sinh viên thủy sản. Kết quả đánh giá trên thang 5 mức độ ghi nhận phản hồi tích cực, chứng minh ứng dụng hoạt động ổn định và hỗ trợ hiệu quả công tác chẩn đoán bệnh thủy sản.
Kết luận
Luận án của TS. Trần Đình Diễn đã giải quyết trọn vẹn bài toán tự động hóa trong phát triển ứng dụng web hướng mô hình theo phương pháp UWE. Bằng việc đề xuất 31 quy tắc chuyển đổi CIM sang PIM tích hợp OCL, 23 quy tắc PIM sang PSM và 10 truy vấn ATL sinh mã MVC, nghiên cứu đã khắc phục khoảng trống phải chỉnh sửa mô hình thủ công và sinh mã khung của các công trình trước đây. Việc hiện thực hóa thành công công cụ CODEGER-UWE và áp dụng hiệu quả vào hệ thống chẩn đoán bệnh thủy sản thực tế khẳng định giá trị khoa học và tính ứng dụng thực tiễn cao của luận án trong kỹ nghệ phần mềm.