Luận án: Kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình
Luận án tiến sĩ: Kỹ thuật chuyển đổi mô hình, sinh mã phát triển ứng dụng web hướng mô hình. Tối ưu hóa quy trình.
Luan An
Luận án tiến sĩ
Năm xuất bản
Số trang
153
Thời gian đọc
23 phút
Lượt xem
0
Lượt tải
0
Phí lưu trữ
50 Point
Tổng quan nhanh
- Chủ đề:
- 1. Tổng quan phát triển ứng dụng web hướng mô hình MDWE
- Số trang:
- 153 trang
- Trường:
- Đại học Bách khoa Hà Nội
- Chuyên ngành:
- Kỹ thuật phần mềm
- Tác giả:
- Trần Đình Diễn
- Năm:
- 2022
Tóm tắt nội dung luận án
I. Tổng quan phát triển ứng dụng web hướng mô hình MDWE
Phương pháp phát triển web truyền thống thường gặp nhiều thách thức về bảo trì và nâng cấp. Công nghệ thay đổi liên tục tạo áp lực lớn lên lập trình viên. Phát triển web hướng mô hình (MDWE) xuất hiện như một giải pháp đột phá. Kỹ thuật này đưa mô hình thành trung tâm của toàn bộ vòng đời phần mềm. Mô hình không chỉ đóng vai trò tài liệu thiết kế đơn thuần. Mô hình trở thành thành phần cốt lõi trực tiếp tạo ra sản phẩm. Quá trình phát triển web được trừu tượng hóa ở mức cao. Các chi tiết công nghệ cụ thể được tách biệt khỏi logic nghiệp vụ. Sự phân tách này giúp hệ thống web thích ứng linh hoạt với các thay đổi công nghệ. Năng suất lập trình tăng cao nhờ giảm thiểu thao tác thủ công. Tính nhất quán của hệ thống được duy trì xuyên suốt.
1.1. Bản chất phương pháp phát triển hướng mô hình MDD
Phát triển hướng mô hình (MDD) là mô hình phát triển phần mềm hiện đại. Phương pháp này tập trung xây dựng các mô hình trừu tượng trước khi viết mã nguồn. Các mô hình biểu diễn chính xác cấu trúc, hành vi và quy tắc nghiệp vụ của hệ thống. Nhà phát triển làm việc trên các tầng trừu tượng thay vì can thiệp trực tiếp vào mã lệnh phức tạp. Quá trình phát triển hướng mô hình (MDD) chuẩn hóa các bước từ phân tích yêu cầu đến triển khai. Việc bảo trì hệ thống diễn ra ngay trên các mô hình mức cao. Khi yêu cầu nghiệp vụ thay đổi, lập trình viên chỉ cần cập nhật mô hình tương ứng. Hệ thống tự động đồng bộ các thay đổi xuống tầng mã nguồn thực thi. Phương pháp này giảm thiểu lỗi phát sinh do con người trong quá trình lập trình.
1.2. Vai trò của phát triển web hướng mô hình MDWE
Ứng dụng web hiện đại có độ phức tạp ngày càng cao. Giao diện người dùng, luồng điều hướng và logic nghiệp vụ đan xen chặt chẽ. Phát triển web hướng mô hình (MDWE) mở rộng các nguyên lý MDD cho miền web. Phương pháp cung cấp các kỹ thuật mô hình hóa chuyên biệt cho ứng dụng web. Các khía cạnh như nội dung, điều hướng, quy trình xử lý và trình bày giao diện được tách biệt rõ ràng. Phát triển web hướng mô hình (MDWE) giúp các nhóm phát triển kiểm soát cấu trúc web phức tạp. Thời gian đưa sản phẩm ra thị trường được rút ngắn đáng kể. Khả năng tái sử dụng các thành phần thiết kế được nâng cao. Toàn bộ kiến trúc web duy trì tính mở và dễ mở rộng khi công nghệ nền tảng phát triển.
1.3. Nền tảng ngôn ngữ đặc thù miền DSL trong phát triển web
Ngôn ngữ đặc thù miền (DSL) đóng vai trò then chốt trong phát triển web hiện đại. Khác với các ngôn ngữ lập trình đa năng, DSL tập trung giải quyết bài toán trong một phạm vi cụ thể. Ngôn ngữ đặc thù miền (DSL) cung cấp các khái niệm và ký hiệu trực quan, sát với ngôn ngữ của chuyên gia nghiệp vụ. Trong kỹ thuật web hướng mô hình, DSL cho phép định nghĩa nhanh các trang, liên kết điều hướng và biểu mẫu nhập liệu. Cú pháp của DSL đơn giản và dễ hiểu. Việc sử dụng DSL giúp thu hẹp khoảng cách giao tiếp giữa khách hàng và kỹ sư phần mềm. Các mô hình xây dựng từ DSL có độ chính xác cao, tạo tiền đề vững chắc cho các bước chuyển đổi tự động tiếp theo.
II. Chuyển đổi mô hình sang mô hình trong kiến trúc MDA
Kiến trúc hướng mô hình (MDA) do tổ chức OMG khởi xướng là khung làm việc tiêu chuẩn hàng đầu. MDA định nghĩa các tầng trừu tượng độc lập để quản lý sự phức tạp của phần mềm. Chuyển đổi mô hình sang mô hình (M2M transformation) là trái tim của kiến trúc MDA. Quá trình này biến đổi tự động mô hình nguồn thành mô hình đích thông qua các quy tắc định sẵn. Chuyển đổi mô hình sang mô hình (M2M transformation) đảm bảo tính toàn vẹn thông tin qua từng cấp độ trừu tượng. Sự kết hợp giữa MDA và kỹ thuật chuyển đổi mô hình loại bỏ các thao tác chuyển dịch thủ công dễ sai sót. Các chuẩn mở của OMG tạo nền tảng vững chắc cho việc liên thông giữa các công cụ phát triển phần mềm.
2.1. Cấu trúc các tầng trong kiến trúc hướng mô hình MDA
Kiến trúc hướng mô hình (MDA) phân chia hệ thống thành ba tầng mô hình chính. Tầng đầu tiên là mô hình độc lập tính toán biểu diễn yêu cầu nghiệp vụ thuần túy. Tầng thứ hai là mô hình độc lập nền tảng (PIM). Mô hình PIM mô tả cấu trúc và hành vi hệ thống mà không phụ thuộc vào bất kỳ công nghệ cụ thể nào. Tầng thứ ba là mô hình phụ thuộc nền tảng (PSM). Mô hình PSM bổ sung các chi tiết kỹ thuật cho một nền tảng thực thi cụ thể như Java EE hay .NET. Sự phân tầng rõ ràng của kiến trúc hướng mô hình (MDA) cho phép tái sử dụng tối đa logic nghiệp vụ. Khi chuyển đổi nền tảng công nghệ, mô hình độc lập nền tảng (PIM) vẫn giữ nguyên giá trị thiết kế cốt lõi.
2.2. Cơ chế chuyển đổi mô hình sang mô hình M2M transformation
Cơ chế chuyển đổi mô hình sang mô hình (M2M transformation) vận hành dựa trên các động cơ chuyển đổi chuyên dụng. Động cơ nhận mô hình nguồn và tập luật chuyển đổi để tự động sinh ra mô hình đích. Các ngôn ngữ chuyển đổi chuẩn như ATL và QVT đóng vai trò định nghĩa các quan hệ ánh xạ này. Chuyển đổi mô hình sang mô hình (M2M transformation) hỗ trợ chuyển đổi từ tầng trừu tượng cao xuống tầng trừu tượng thấp hơn. Quá trình chuyển đổi từ PIM sang PSM là một minh chứng tiêu biểu. Toàn bộ quy trình diễn ra tự động và có thể lặp lại nhiều lần. Tính chính xác của mô hình đích phụ thuộc trực tiếp vào tính chặt chẽ của tập luật chuyển đổi đã thiết lập.
2.3. Vai trò của siêu mô hình metamodel và chuẩn MOF
Mỗi mô hình trong MDA đều phải tuân thủ một định nghĩa cấu trúc ngữ nghĩa chặt chẽ. Định nghĩa này được gọi là siêu mô hình (metamodel). Siêu mô hình (metamodel) quy định tập hợp các phần tử, thuộc tính và mối quan hệ hợp lệ trong mô hình. Chuẩn Meta Object Facility (MOF) của OMG là nền tảng siêu mô hình hóa chung. MOF cung cấp cơ sở để xây dựng các ngôn ngữ mô hình hóa như UML hoặc các DSL chuyên biệt. Nhờ có siêu mô hình (metamodel), các công cụ phần mềm có thể hiểu và xử lý mô hình một cách tự động. Mọi quy tắc chuyển đổi mô hình đều được xây dựng dựa trên việc so khớp các phần tử giữa siêu mô hình nguồn và siêu mô hình đích.
III. Kỹ thuật chuyển đổi mô hình CIM sang PIM bằng ATL
Chuyển đổi từ mô hình yêu cầu sang mô hình phân tích thiết kế là bước khởi đầu quan trọng. Phương pháp UML-based Web Engineering (UWE) cung cấp quy trình mô hình hóa web chuyên sâu. Phương pháp này phân rã ứng dụng web thành các khung nhìn nội dung, điều hướng, xử lý và trình bày. Kỹ thuật chuyển đổi tự động sử dụng ngôn ngữ ATL giúp hiện thực hóa quá trình chuyển dịch này. Toàn bộ yêu cầu ban đầu được chuyển hóa mạch lạc thành mô hình độc lập nền tảng (PIM). Việc áp dụng các kỹ thuật chuyển đổi mô hình tiên tiến đảm bảo tính chuẩn xác và tiết kiệm đáng kể công sức cho kỹ sư phần mềm.
3.1. Thiết lập siêu mô hình yêu cầu và nội dung theo UWE
Xây dựng siêu mô hình là tiền đề quan trọng trong phương pháp UWE. Siêu mô hình (metamodel) yêu cầu ghi nhận các ca sử dụng và luồng thao tác của người dùng. Dựa trên siêu mô hình này, hệ thống trích xuất thông tin thực thể để tạo lập siêu mô hình nội dung. Mô hình nội dung biểu diễn các lớp đối tượng, thuộc tính và mối liên kết dữ liệu nghiệp vụ. Quá trình ánh xạ từ yêu cầu sang nội dung được tự động hóa bằng các quy tắc logic rõ ràng. Các phần tử nghiệp vụ được chuẩn hóa cấu trúc ngay từ giai đoạn khởi đầu. Việc thiết lập siêu mô hình (metamodel) chính xác giúp loại bỏ sự mơ hồ trong các đặc tả yêu cầu ban đầu của ứng dụng web.
3.2. Tích hợp ràng buộc OCL vào mô hình điều hướng và xử lý
Ngôn ngữ ràng buộc đối tượng OCL đóng vai trò quan trọng trong việc hoàn thiện ngữ nghĩa mô hình. OCL cho phép định nghĩa các điều kiện tiên quyết, hậu điều kiện và bất biến nghiệp vụ. Trong mô hình điều hướng UWE, OCL kiểm soát quyền truy cập và luồng chuyển trang của người dùng. Đối với mô hình xử lý, OCL đặc tả các quy tắc chuyển đổi trạng thái và logic tính toán chi tiết. Việc tích hợp OCL nâng cao độ biểu đạt cho mô hình độc lập nền tảng (PIM). Các ràng buộc logic không bị bỏ sót khi chuyển sang các tầng kỹ thuật phía sau. Điều này đảm bảo hệ thống web được sinh ra hoạt động đúng đắn theo yêu cầu nghiệp vụ phức tạp.
3.3. Thực thi tập luật chuyển đổi với ngôn ngữ ATL
Ngôn ngữ ATLAS Transformation Language (ATL) là công cụ mạnh mẽ hỗ trợ chuyển đổi mô hình sang mô hình (M2M transformation). ATL kết hợp hài hòa giữa phong cách lập trình khai báo và mệnh lệnh. Tập luật ATL định nghĩa cơ chế ánh xạ giữa các phần tử trong siêu mô hình yêu cầu và siêu mô hình PIM. Động cơ ATL đọc cây mô hình đầu vào, duyệt qua các phần tử và áp dụng quy tắc tương ứng. Kết quả đầu ra là các mô hình điều hướng, xử lý và trình bày hoàn chỉnh. Cơ chế thực thi của ATL đảm bảo hiệu năng xử lý cao và tính tái sử dụng quy tắc chuyển đổi. Toàn bộ quy trình diễn ra nhanh chóng, loại bỏ hoàn toàn các sai sót do nhập liệu thủ công.
IV. Quy trình sinh mã tự động theo kiến trúc web MVC
Sinh mã tự động (automated code generation) là đích đến quan trọng nhất trong phát triển phần mềm hướng mô hình. Kỹ thuật này xóa bỏ khoảng cách giữa thiết kế trừu tượng và sản phẩm thực tế. Kiến trúc Model-View-Controller (MVC) được lựa chọn làm mẫu kiến trúc chuẩn cho ứng dụng web. Quy trình sinh mã kết hợp chuyển đổi mô hình sang mô hình và chuyển đổi mô hình sang mã nguồn (M2T transformation). Mô hình độc lập nền tảng được tinh chỉnh thành mô hình phụ thuộc nền tảng (PSM) trước khi xuất mã. Giải pháp này đảm bảo mã nguồn sinh ra có cấu trúc rõ ràng, tối ưu và tuân thủ chặt chẽ các quy chuẩn lập trình hiện đại.
4.1. Chuyển đổi mô hình PIM sang mô hình PSM kiến trúc MVC
Chuyển đổi từ mô hình độc lập nền tảng (PIM) sang mô hình phụ thuộc nền tảng (PSM) là bước gắn kết công nghệ cụ thể. Các quy tắc ATL phân rã mô hình PIM thành ba thành phần MVC tương ứng. Tầng dữ liệu được chuyển đổi thành các lớp Model. Tầng quy trình xử lý được ánh xạ thành các Controller điều phối luồng. Tầng giao diện và điều hướng được chuyển thành các thành phần View. Mô hình phụ thuộc nền tảng (PSM) chứa đầy đủ thông tin về kiểu dữ liệu và thư viện của nền tảng đích. Quá trình này giúp mã nguồn cuối cùng tận dụng tối đa sức mạnh của framework web mục tiêu mà không làm mất đi tính tổng quát của thiết kế gốc.
4.2. Cơ chế chuyển đổi mô hình sang mã nguồn M2T transformation
Chuyển đổi mô hình sang mã nguồn (M2T transformation) là giai đoạn cuối cùng trong chuỗi sinh mã. Kỹ thuật này chuyển các phần tử trong mô hình phụ thuộc nền tảng (PSM) thành các tệp văn bản mã nguồn hoàn chỉnh. Các công cụ sử dụng phương pháp duyệt cây cú pháp hoặc kỹ thuật mẫu khuôn để sinh mã. Quá trình chuyển đổi mô hình sang mã nguồn (M2T transformation) tạo ra mã nguồn sạch và chuẩn hóa. Cấu trúc thư mục dự án được thiết lập tự động theo đúng tiêu chuẩn framework. Kỹ thuật này giúp giải phóng lập trình viên khỏi công việc viết mã lặp lại đơn điệu. Đội ngũ phát triển có thể tập trung vào tối ưu hóa trải nghiệm người dùng và mở rộng tính năng cao cấp.
4.3. Kỹ thuật sinh mã tự động cho tầng Controller và View
Việc sinh mã cho tầng Controller và View đòi hỏi sự kết hợp phức tạp giữa logic và giao diện. Sinh mã tự động (automated code generation) tạo ra các lớp Servlet, Action Controller và các trang giao diện JSP hoàn chỉnh. Các đường dẫn điều hướng, tham số biểu mẫu và thông điệp phản hồi được đồng bộ chính xác từ mô hình thiết kế. Mã nguồn giao diện đảm bảo tính tương thích và khả năng hiển thị linh hoạt trên trình duyệt. Mã nguồn xử lý nghiệp vụ đáp ứng đầy đủ các ràng buộc logic đã khai báo. Giải thuật sinh mã tự động kiểm tra tính toàn vẹn cú pháp trước khi xuất tệp tin, giúp hạn chế tối đa lỗi biên dịch và lỗi thời gian chạy.
V. Ứng dụng công cụ sinh mã tự động CODEGER UWE thực tế
Việc nghiên cứu lý thuyết được kiểm chứng thông qua xây dựng công cụ phần mềm thực nghiệm. Công cụ CODEGER-UWE được phát triển nhằm tự động hóa hoàn toàn chuỗi phát triển web hướng mô hình (MDWE). Công cụ tích hợp các động cơ chuyển đổi mô hình và sinh mã hiện đại nhất. Hệ thống cho phép người dùng nhập mô hình UWE và xuất ra toàn bộ dự án web hoàn chỉnh chỉ sau vài thao tác. Kết quả kiểm nghiệm trên các ứng dụng thực tế chứng minh tính khả thi vượt trội của giải pháp. Đây là bước tiến quan trọng trong việc ứng dụng kỹ thuật hướng mô hình vào thực tiễn sản xuất phần mềm công nghiệp.
5.1. Cấu trúc kiến trúc và chức năng của công cụ CODEGER UWE
Công cụ CODEGER-UWE được thiết kế theo kiến trúc module hóa linh hoạt trên nền tảng Eclipse Modeling Framework (EMF). Hệ thống bao gồm module tiếp nhận mô hình, module động cơ chuyển đổi ATL và module sinh mã tự động (automated code generation). Người dùng có thể trực quan hóa các mô hình UWE và cấu hình thông số nền tảng đích một cách dễ dàng. Giao diện thân thiện của công cụ giúp lập trình viên quản lý toàn bộ vòng đời sinh mã. CODEGER-UWE hỗ trợ kiểm tra tính hợp lệ của mô hình nguồn trước khi thực thi chuyển đổi. Nhờ đó, công cụ ngăn chặn sớm các sai sót logic và đảm bảo quy trình sinh mã luôn vận hành ổn định, chính xác.
5.2. Kết quả thực nghiệm trên ứng dụng web benhthuysan
Ứng dụng web quản lý bệnh thủy sản (benhthuysan) được lựa chọn làm ca nghiên cứu điển hình để đánh giá công cụ. Toàn bộ quy trình từ mô hình hóa yêu cầu, nội dung, điều hướng đến xử lý đều được thực hiện theo chuẩn UWE. Công cụ CODEGER-UWE đã sinh tự động toàn bộ mã nguồn Java, JSP và tệp cấu hình cho hệ thống. Ứng dụng web được triển khai thử nghiệm trên máy chủ Apache Tomcat và hoạt động ổn định. Các chức năng tra cứu bệnh, quản lý triệu chứng và phân quyền người dùng vận hành trơn tru. Kết quả thực nghiệm khẳng định khả năng đáp ứng tốt của phương pháp phát triển hướng mô hình đối với các ứng dụng web thực tế.
5.3. Đánh giá hiệu năng và tính đúng đắn của mã nguồn sinh ra
Mã nguồn do CODEGER-UWE tạo ra được phân tích kỹ lưỡng về chất lượng và hiệu năng thực thi. Tỷ lệ sinh mã tự động đạt mức rất cao trên toàn bộ dự án. So với phương pháp lập trình thủ công truyền thống, thời gian phát triển giảm hơn sáu mươi phần trăm. Tỷ lệ lỗi cú pháp và lỗi logic giảm thiểu đáng kể. Mã nguồn Java và JSP sinh ra có tính module hóa cao, dễ đọc và thuận tiện cho việc mở rộng tùy biến. Kết quả này chứng minh phát triển web hướng mô hình (MDWE) là giải pháp hiệu quả cho công nghệ phần mềm hiện đại. Phương pháp mở ra triển vọng ứng dụng rộng rãi trong các dự án quy mô lớn.
Mục lục chi tiết luận án
Tải xuống file đầy đủ để xem toàn bộ nội dung
Tải đầy đủ (153 trang)Nội dung chính
Tổng quan về luận án
Luận án này tiến hành nghiên cứu sâu rộng về 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 (MDWE), giải quyết những thách thức hiện hữu trong việc phát triển phần mềm truyền thống, đặc biệt là sự phức tạp của việc điều chỉnh ứng dụng thủ công trên các nền tảng công nghệ mới [1]. Bối cảnh khoa học của nghiên cứu đặt trong kỷ nguyên công nghiệp phần mềm đang đối mặt với nhu cầu cấp thiết về tăng năng suất và giảm chi phí, trong khi vẫn phải đảm bảo tính khả chuyển và khả năng tương tác của các ứng dụng phức tạp [1-3]. Phát triển phần mềm hướng mô hình (MDSD) nổi lên như một phương pháp tiên phong, sử dụng các mô hình làm tác nhân chính trong toàn bộ vòng đời phát triển ứng dụng, giảm đáng kể sự phụ thuộc vào nền tảng công nghệ [20].
Research gap cụ thể mà luận án này giải quyết được xác định rõ ràng từ các nghiên cứu trước đây trong lĩnh vực MDWE, đặc biệt là phương pháp UML-based Web Engineering (UWE). Mặc dù UWE cung cấp một quy trình và công cụ mạnh mẽ để mô hình hóa ứng dụng web, các nghiên cứu hiện tại còn tồn tại hai vấn đề chính:
- Chuyển đổi mô hình thủ công và không nhất quán: "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" [Trích từ Mở đầu]. Các công cụ như MagicUWE của Marianne Busch và Nora Koch [71, 72] chỉ dừng lại ở việc tạo và chuyển đổi model-to-model bán tự động, yêu cầu nhà thiết kế phải vẽ lại nhiều thành phần thủ công.
- Hạn chế trong sinh mã tự động: "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ã" [Trích từ Mở đầu]. Ngay cả ActionUWE [73] cũng chỉ tạo mã bán tự động, sinh ra khung để lập trình viên hoàn thiện. Nghiên cứu của Imane Essebaa, Chantit Salima, Mohammed Ramdani [74] sử dụng Acceleo có sẵn thay vì công cụ sinh mã riêng.
Để khắc phục những hạn chế trên, luận án đặt ra các research questions và hypotheses sau:
- RQ1: Làm thế nào để phát triển một bộ quy tắc chuyển đổi mô hình tự động từ cấp Computation Independent Model (CIM) sang Platform-Independent Model (PIM) và Platform-Specific Model (PSM) theo phương pháp UWE, đảm bảo tính nhất quán giữa các mô hình và giảm thiểu can thiệp thủ công?
- H1: Việc xây dựng các quy tắc chuyển đổi tích hợp ràng buộc Object Constraint Language (OCL) và sử dụng ATLAS Transformation Language (ATL) có thể tự động hóa hoàn toàn quá trình chuyển đổi từ CIM sang PIM trong UWE, giải quyết vấn đề điều chỉnh thủ công và đảm bảo tính thống nhất.
- RQ2: Làm thế nào để cải tiến kỹ thuật sinh mã tự động từ các mô hình PSM sang mã nguồn ứng dụng web theo kiến trúc Model-View-Controller (MVC) với chất lượng cao, tăng năng suất và giảm yếu tố con người?
- H2: Phát triển các quy tắc sinh mã chi tiết và xây dựng một công cụ sinh mã chuyên biệt (CODEGER-UWE) dựa trên ATL có thể tạo ra mã nguồn ứng dụng web MVC hoàn chỉnh, vượt qua giới hạn của việc chỉ tạo ra khung mã.
- RQ3: Tính khả thi và hiệu quả của phương pháp đề xuất có thể được kiểm chứng như thế nào trong thực tế?
- H3: Áp dụng phương pháp và công cụ CODEGER-UWE vào phát triển một ứng dụng web thực tế (ví dụ: Chẩn đoán bệnh thủy sản "benhthuysan") sẽ chứng minh được tính khả thi, hiệu quả trong việc nâng cao năng suất, tiết kiệm thời gian và chi phí.
Khung lý thuyết của luận án được xây dựng dựa trên nền tảng của Kiến trúc hướng mô hình (MDA) [18, 19] và Kỹ thuật phần mềm hướng mô hình (MDE), với các lý thuyết cốt lõi về chuyển đổi mô hình (Model Transformation) và sinh mã tự động (Automated Code Generation). Luận án cũng tận dụng UML-based Web Engineering (UWE) như một phương pháp cụ thể để phát triển ứng dụng web, đồng thời mở rộng các khái niệm về các mô hình CIM, PIM, PSM của OMG. Các ngôn ngữ và chuẩn như ATLAS Transformation Language (ATL), Object Constraint Language (OCL), Meta Object Facility (MOF) và Unified Modeling Language (UML) của Object Management Group (OMG) đóng vai trò trung tâm trong việc định nghĩa và thực thi các chuyển đổi.
Đóng góp đột phá của luận án mang lại tác động định lượng đáng kể. Nghiên cứu này không chỉ bổ sung và phát triển các quy tắc chuyển đổi mô hình từ CIM sang PIM cho UWE, mà còn xây dựng một phương pháp sinh mã toàn diện và tích hợp công cụ CODEGER-UWE [CT4, CT5]. Điều này cho phép "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] trong tiến trình phần mềm so với phương pháp truyền thống, "làm giảm yếu tố con người" [8, 9] và "giảm thời gian phát triển ứng dụng web" [9-12]. Luận án chứng minh khả năng "tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng)" [14] nhờ tạo ra mã nguồn hoàn chỉnh, đồng thời đảm bảo tính nhất quán giữa các mô hình, một thách thức lớn trong phát triển phần mềm hiện đại. Việc áp dụng thành công vào ứng dụng web "Chẩn đoán bệnh thủy sản" (benhthuysan) [CT6] cung cấp bằng chứng thực nghiệm về tính hiệu quả của giải pháp.
Phạm vi nghiên cứu (Scope) của luận án tập trung vào việc xây dựng bộ quy tắc chuyển đổi model-to-model (từ CIM sang PIM, PIM sang PSM) và model-to-code (từ PSM sang mã nguồn) theo phương pháp UWE, áp dụng ngôn ngữ ATL. Luận án cụ thể hóa việc sinh mã cho ứng dụng web theo kiến trúc MVC, và thực nghiệm trên các bài toán điển hình như MusicPortal, AddressBook và đặc biệt là ứng dụng web thực tế "benhthuysan". Mặc dù không nêu rõ kích thước mẫu (sample size) hay khung thời gian cụ thể (timeframe) cho việc phát triển và thử nghiệm ứng dụng thực tế trong văn bản gốc, mục tiêu là giải quyết vấn đề chuyển đổi thủ công và sinh mã hạn chế, áp dụng cho các dự án phát triển ứng dụng web.
Ý nghĩa (Significance) của nghiên cứu nằm ở việc cung cấp một giải pháp toàn diện và tự động hóa cao cho phát triển ứng dụng web hướng mô hình, từ mô hình yêu cầu trừu tượng đến mã nguồn thực thi. Điều này không chỉ nâng cao chất lượng mã nguồn, tăng năng suất và giảm chi phí, mà còn thúc đẩy sự phát triển của lĩnh vực ứng dụng web tại Việt Nam, nơi "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." [Trích từ Chương 1, Mục 1.4].
Literature Review và Positioning
Luận án thực hiện tổng hợp chuyên sâu các luồng nghiên cứu chính trong kỹ thuật phần mềm hướng mô hình và phát triển ứng dụng web hướng mô hình, đặc biệt tập trung vào các phương pháp đã được công nhận rộng rãi. Các phương pháp chính được phân tích bao gồm UML-based Web Engineering (UWE), Web Software Architecture (WebSA), Object-Oriented Web Solution (OOWS), WebML và Hypertext Modeling Method of MIDAS (MIDAS-HM3) [Chương 1, Mục 1.3].
UWE, được phát triển bởi nhóm nghiên cứu tại LMU, Đức, được đánh giá là một trong những phương pháp hoàn thiện nhất, cung cấp một tập các mô hình (yêu cầu, nội dung, điều hướng, xử lý, trình bày) và sử dụng biểu đồ UML 2.0. Ưu điểm nổi bật của UWE là việc sử dụng ký pháp đồ họa hoàn toàn dựa trên UML, cho phép tận dụng các công cụ UML hiện có và giảm thời gian học hỏi cho các nhà phát triển đã quen thuộc với UML [17].
WebSA của M.A. Perales, J. Torres, M.J. Rodriguez [16, 63] là một cách tiếp cận hướng mô hình dựa trên MDA, phân chia quá trình phát triển thành bốn giai đoạn: phân tích, thiết kế độc lập nền tảng (PIM), thiết kế nền tảng cụ thể (PSM) và mã chương trình. WebSA nhóm các mô hình ứng dụng web thành hai khung nhìn: chức năng và kiến trúc.
WebML, được hỗ trợ bởi công cụ thương mại WebRatio [65, 66], sử dụng ký hiệu riêng và định nghĩa cấu trúc tài liệu bằng Document Type Definition (DTD) thay vì siêu mô hình MOF. Mặc dù hiệu quả trong việc tạo các trang Web hỗ trợ đa thiết bị [67], WebML sử dụng XSLT cho chuyển đổi model-to-code, vốn "không phù hợp với những chuyển đổi phức tạp, khó phát triển chương trình và dễ bị lỗi" [1].
OOWS, mở rộng từ phương pháp OO-H [65], đề xuất ba mô hình mới (người dùng, điều hướng, trình bày) để mô tả đầy đủ các ứng dụng web ở mức PIM, với quá trình tạo mã được thực hiện bởi công cụ OlivaNova.
MIDAS-HM3 [16, 68] tập trung vào 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, sử dụng UML và các hồ sơ UML để tạo ra các mô hình. Tuy nhiên, phương pháp này "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" [Trích từ Chương 1, Mục 1.3.5].
Các mâu thuẫn và tranh luận trong literature bao gồm sự lựa chọn giữa các ngôn ngữ chuyển đổi mô hình như ATL và QVT [4, 61, 45]. Trong khi ATL được đánh giá cao về khả năng khai báo và tích hợp cấu trúc bắt buộc [36, 42-44], QVT của OMG lại cung cấp ba ngôn ngữ phụ (Relations, Core, Operational Mappings) cho phép chuyển đổi hỗn hợp, nhưng "đôi khi, rất khó để mang đến một giải khai báo hoàn chỉnh cho một vấn đề chuyển đổi được đưa ra" [Trích từ Chương 1, Mục 1.1.6.2]. Một tranh luận khác là mức độ tự động hóa trong sinh mã. Nhiều nghiên cứu như ActionUWE của Miguel Ángel, García de Dios [73] chỉ tạo ra "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", trái ngược với mục tiêu "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" [Trích từ Chương 1, Mục 1.4].
Về định vị trong literature, luận án này xác định một khoảng trống cụ thể trong việc tự động hóa toàn diện quy trình phát triển ứng dụng web theo phương pháp UWE, từ CIM đến mã nguồn hoàn chỉnh. Các nghiên cứu trước đây như của Marianne Busch và Nora Koch [71, 72] với MagicUWE chủ yếu tập trung vào mô hình hóa và chuyển đổi model-to-model bán tự động, bỏ qua giai đoạn sinh mã hoàn chỉnh. Ngay cả nghiên cứu của Imane Essebaa, Chantit Salima, Mohammed Ramdani [74] với công cụ MoDAr-WA, dù tự động hóa chuyển đổi từ CIM sang mã, nhưng "không sử dụng công cụ riêng để sinh mã, mà sử dụng Acceleo là công cụ có sẵn" [Trích từ Chương 1, Mục 1.4]. Luận án này tiến bộ hơn bằng cách phát triển bộ quy tắc chuyển đổi model-to-model và model-to-code hoàn chỉnh, cùng với việc xây dựng công cụ chuyên biệt CODEGER-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, chi phí" [Trích từ Mở đầu].
So sánh với ít nhất hai nghiên cứu quốc tế:
- So sánh với MagicUWE của Marianne Busch và Nora Koch [71, 72]: MagicUWE là một plugin cho MagicDraw, hỗ trợ thiết kế ứng dụng web bằng phương pháp UWE. Tuy nhiên, 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" và "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" [Trích từ Chương 1, Mục 1.4]. Luận án này vượt trội bằng cách cung cấp một giải pháp tích hợp cho cả chuyển đổi model-to-model (CIM sang PIM, PIM sang PSM) và model-to-code (PSM sang mã nguồn hoàn chỉnh), giải quyết triệt để nhu cầu tự động hóa quy trình phát triển.
- So sánh với MoDAr-WA của Imane Essebaa, Chantit Salima, Mohammed Ramdani [74]: MoDAr-WA đề xuất tự động hóa các chuyển đổi từ CIM sang mã, sử dụng QVT cho chuyển đổi model-to-model và Acceleo để tạo mã từ PSM theo kiến trúc MVC. Mặc dù MoDAr-WA được các tác giả kết luận 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" [Trích từ Chương 1, Mục 1.4], hạn chế của nó 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" [Trích từ Chương 1, Mục 1.4]. Luận án này tiến xa hơn bằng việc xây dựng công cụ CODEGER-UWE chuyên biệt và các quy tắc sinh mã tùy chỉnh, tối ưu hóa cho phương pháp UWE và kiến trúc MVC, qua đó có thể cung cấp mức độ kiểm soát và chất lượng mã nguồn cao hơn.
Đóng góp lý thuyết và khung phân tích
Đóng góp cho lý thuyết
Luận án này đóng góp đáng kể vào việc mở rộng và thách thức các lý thuyết hiện có trong lĩnh vực phát triển phần mềm hướng mô hình. Cụ thể, nghiên cứu mở rộng các nguyên lý của Kiến trúc hướng mô hình (MDA) được định nghĩa bởi Object Management Group (OMG) [18, 19] và phương pháp UML-based Web Engineering (UWE) của Koch et al.. MDA phân loại các mô hình thành CIM, PIM và PSM, với các chuyển đổi giữa chúng là trung tâm [22]. Luận án này không chỉ kế thừa mà còn cụ thể hóa và tự động hóa các chuyển đổi này một cách chi tiết hơn, đặc biệt là giai đoạn chuyển đổi từ CIM sang PIM, vốn thường yêu cầu can thiệp thủ công trong các nghiên cứu trước [Trích từ Mở đầu, "Thứ nhất"]. Bằng cách phát triển bộ quy tắc chuyển đổi mô hình tự động và tích hợp ràng buộc Object Constraint Language (OCL) vào các mô hình xử lý và trình bày (Chương 2, Mục 2.3.2-2.3.3), luận án thách thức quan điểm về giới hạn của tự động hóa hoàn toàn trong việc duy trì tính nhất quán và bảo toàn ngữ nghĩa trong quá trình chuyển đổi mô hình phức tạp.
Khung phân tích khái niệm được xây dựng bao gồm các thành phần cốt lõi và mối quan hệ giữa chúng, đi từ cấp độ trừu tượng hóa cao đến mã nguồn cụ thể:
- Mô hình Yêu cầu (Requirements Model - CIM): Đặc tả nghiệp vụ không hiển thị chi tiết kiến trúc hệ thống [26], tập trung vào thuật ngữ gần gũi với người dùng nghiệp vụ [22].
- Mô hình Nội dung (Content Model - PIM): Biểu diễn cấu trúc dữ liệu của ứng dụng web.
- Mô hình Điều hướng (Navigation Model - PIM): Mô tả luồng tương tác và chuyển động giữa các trang.
- Mô hình Xử lý (Process Model - PIM): Đặc tả các hoạt động logic nghiệp vụ.
- Mô hình Trình bày (Presentation Model - PIM): Định nghĩa giao diện người dùng, độc lập với công nghệ cụ thể.
- Mô hình Nền tảng Cụ thể (Platform-Specific Model - PSM): Các mô hình PIM được tinh chỉnh cho một nền tảng công nghệ cụ thể, ví dụ như kiến trúc MVC cho Java/JSP.
- Mã nguồn (Code Model - CM): Mã nguồn thực thi ứng dụng.
Mối quan hệ giữa các thành phần được thể hiện qua một chuỗi các chuyển đổi mô hình: CIM (Requirements) → PIM (Content, Navigation, Process, Presentation) → PSM (MVC-specific Models) → CM (Java/JSP Code).
Mô hình lý thuyết được đề xuất bao gồm các mệnh đề/giả thuyết được đánh số, phản ánh quá trình chuyển đổi và sinh mã tự động:
- P1: Việc phát triển các quy tắc chuyển đổi ATL tích hợp OCL cho phép chuyển đổi tự động và bảo toàn ngữ nghĩa 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 trong UWE, giải quyết vấn đề điều chỉnh thủ công và đảm bảo tính nhất quán (Chương 2).
- P2: Các quy tắc chuyển đổi từ PIM sang PSM theo kiến trúc MVC có thể được định nghĩa chi tiết bằng ATL để tạo ra các mô hình PSM sẵn sàng cho sinh mã tự động, như các thành phần Model, Controller, View (Chương 3, Mục 3.2).
- P3: Xây dựng công cụ CODEGER-UWE dựa trên các quy tắc sinh mã ATL có thể tự động tạo ra mã nguồn ứng dụng web hoàn chỉnh từ các mô hình PSM, vượt qua giới hạn của việc chỉ tạo khung mã (Chương 3, Mục 3.1.2-3.1.3, 3.3).
- P4: Áp dụng phương pháp đề xuất vào phát triển ứng dụng thực tế (benhthuysan) sẽ chứng minh hiệu quả về năng suất, giảm thời gian và chi phí phát triển (Chương 3, Mục 3.4).
Luận án đề xuất một sự tiến bộ trong paradigm từ việc phát triển phần mềm thủ công hoặc bán tự động sang một mô hình phát triển hoàn toàn hướng mô hình, với bằng chứng từ việc giảm thiểu "yếu tố con người" [8, 9] và "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] trong quá trình phát triển. Điều này được thể hiện rõ ràng qua khả năng của công cụ CODEGER-UWE trong việc tạo ra mã nguồn hoàn chỉnh, không chỉ là khung sườn.
Khung phân tích độc đáo
Khung phân tích của luận án tích hợp sâu rộng các lý thuyết và phương pháp tiếp cận từ nhiều lĩnh vực. Nghiên cứu tích hợp các nguyên lý của MDA (OMG), phương pháp UWE (Koch et al.) và các khái niệm về Kiến trúc MVC. Sự tích hợp này tạo nên một cách tiếp cận mới, tập trung vào việc tự động hóa toàn bộ vòng đời phát triển ứng dụng web từ CIM đến mã nguồn thực thi.
Cách tiếp cận phân tích mới lạ nằm ở việc:
- Tự động hóa chuyển đổi CIM sang PIM với OCL: Luận án đề xuất một phương pháp mới để tự động hóa chuyển đổi từ mô hình yêu cầu (CIM) sang các mô hình PIM (nội dung, điều hướng, xử lý, trình bày) trong UWE, thông qua việc phát triển quy tắc chuyển đổi ATL tích hợp ràng buộc OCL (Object Constraint Language). Các ràng buộc OCL được sử dụng để "tích hợp OCL trong mô hình xử lý" (Chương 2, Mục 2.3.2) và "tích hợp OCL trong mô hình trình bày" (Chương 2, Mục 2.3.3), đảm bảo ngữ nghĩa và tính toàn vẹn của mô hình được bảo toàn tự động trong quá trình chuyển đổi, một khía cạnh mà các nghiên cứu trước thường bỏ ngỏ hoặc thực hiện thủ công [Trích từ Mở đầu].
- Sinh mã tự động hoàn chỉnh theo kiến trúc MVC: Nghiên cứu xây dựng một bộ quy tắc sinh mã chi tiết bằng ATL để chuyển đổi từ PSM sang mã nguồn ứng dụng web theo kiến trúc MVC. Các quy tắc này không chỉ tạo ra khung mã mà còn "tạo phần Model", "tạo thành phần Controller", và "tạo thành phần View" hoàn chỉnh [Chương 3, Mục 3.2.2-3.2.4], một sự tiến bộ đáng kể so với các nghiên cứu "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ã" [Trích từ Mở đầu].
- Công cụ tích hợp CODEGER-UWE: Phát triển công cụ CODEGER-UWE để tự động hóa quy trình chuyển đổi và sinh mã, từ mô hình yêu cầu UWE đến mã nguồn Java/JSP theo MVC (Chương 3, Mục 3.3). Công cụ này đóng vai trò cầu nối giữa các giai đoạn mô hình hóa và triển khai, giảm thiểu sự phức tạp và tối đa hóa năng suất.
Các đóng góp khái niệm bao gồm:
- "Bộ quy tắc chuyển đổi model-to-model tích hợp OCL": Định nghĩa một tập hợp các quy tắc ATL cho phép chuyển đổi tự động các mô hình yêu cầu (CIM) sang các mô hình nội dung, điều hướng, xử lý, trình bày (PIM) trong UWE, đồng thời bảo đảm tính nhất quán ngữ nghĩa thông qua OCL.
- "Quy tắc sinh mã theo kiến trúc MVC cho UWE": Một tập hợp các quy tắc ATL được định nghĩa rõ ràng để chuyển đổi các mô hình PSM (được tinh chỉnh từ PIM theo UWE) thành mã nguồn Java/JSP theo cấu trúc Model-View-Controller.
- "Công cụ CODEGER-UWE": Một công cụ tích hợp hỗ trợ toàn bộ quy trình từ mô hình hóa đến sinh mã tự động cho ứng dụng web theo phương pháp UWE và kiến trúc MVC.
Các điều kiện biên (boundary conditions) được nêu rõ. Phương pháp này đặc biệt hiệu quả trong bối cảnh phát triển ứng dụng web, nơi cần sự linh hoạt và khả năng thích ứng cao với các nền tảng công nghệ khác nhau [1, 15, 16]. Nó phù hợp nhất cho các dự án ứng dụng web có cấu trúc rõ ràng, sử dụng phương pháp UWE và kiến trúc MVC. Hiệu quả của phương pháp có thể giảm nếu áp dụng cho các hệ thống phần mềm không phải web hoặc các kiến trúc phần mềm rất khác biệt.
Phương pháp nghiên cứu tiên tiến
Thiết kế nghiên cứu
Luận án áp dụng một triết lý nghiên cứu mang tính thực chứng (positivism), nhấn mạnh việc xây dựng các quy tắc có thể kiểm chứng, công cụ có thể đo lường hiệu suất và các kết quả có thể được đánh giá khách quan. Mục tiêu là phát triển một phương pháp luận có thể lặp lại và mang lại kết quả định lượng, 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, chi phí" [Trích từ Mở đầu].
Thiết kế nghiên cứu sử dụng phương pháp kết hợp (mixed methods) mặc dù không được mô tả rõ ràng bằng thuật ngữ này trong văn bản gốc. Phương pháp này kết hợp chặt chẽ giữa:
- Phương pháp lý thuyết: Thu thập, nghiên cứu, và hệ thống hóa lý thuyết về phát triển phần mềm hướng mô hình (MDSD/MDE), kiến trúc MDA, các kỹ thuật phát triển ứng dụng web hướng mô hình (UWE, OOWS, WebML, WebSA) [Trích từ Mở đầu, "Phương pháp lý thuyết"]. Điều này giúp xây dựng cơ sở lý luận vững chắc và hình thành các vấn đề lý luận cho việc phát triển quy tắc chuyển đổi mô hình và sinh mã.
- Phương pháp thực nghiệm: Triển khai các quy tắc đã phát triển vào việc xây dựng công cụ CODEGER-UWE và áp dụng vào các bài toán điển hình, đặc biệt là ứng dụng web "Chẩn đoán bệnh thủy sản" (benhthuysan) [Trích từ Mở đầu, "Phương pháp thực nghiệm"]. Sự kết hợp này cho phép nghiên cứu vừa có nền tảng lý thuyết sâu rộng, vừa có bằng chứng thực nghiệm cụ thể về tính khả thi và hiệu quả của giải pháp đề xuất.
Thiết kế đa cấp (multi-level design) được thể hiện qua các cấp độ trừu tượng hóa trong MDA:
- Cấp độ 1: Mô hình độc lập tính toán (CIM): Biểu diễn yêu cầu nghiệp vụ, ví dụ "mô hình quy trình nghiệp vụ" [26] hoặc Use Case meta-model (Hình 2.2).
- Cấp độ 2: Mô hình độc lập nền tảng (PIM): Bao gồm các mô hình nội dung, điều hướng, xử lý, trình bày theo UWE, thể hiện các khía cạnh của ứng dụng web mà không phụ thuộc vào công nghệ cụ thể [1, 20].
- Cấp độ 3: Mô hình nền tảng cụ thể (PSM): Tinh chỉnh các mô hình PIM để phù hợp với một nền tảng công nghệ cụ thể, ví dụ như cấu trúc MVC cho Java/JSP [27].
- Cấp độ 4: Mã nguồn (Code): Mã nguồn thực thi được sinh ra từ PSM.
Kích thước mẫu (Sample size) trong phần thực nghiệm bao gồm "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" như MusicPortal, AddressBook, và "bài toán trong thực tế về lĩnh vực chẩn đoán bệnh thủy sản" [Trích từ Mở đầu, "Phương pháp thực nghiệm"]. Tiêu chí lựa chọn mẫu là các ứng dụng web có cấu trúc phức tạp vừa đủ để thể hiện tính ưu việt của phương pháp hướng mô hình, đồng thời đủ đơn giản để kiểm chứng các quy tắc chuyển đổi và sinh mã một cách hiệu quả. Ứng dụng benhthuysan là một ví dụ điển hình cho bài toán thực tế.
Quy trình nghiên cứu rigorous
Chiến lược lấy mẫu (sampling strategy) dựa trên việc lựa chọn các trường hợp nghiên cứu (case studies) mang tính đại diện và thực tiễn để kiểm chứng các đóng góp của luận án. Cụ thể, các ứng dụng MusicPortal và AddressBook được sử dụng làm các trường hợp điển hình đã được cộng đồng nghiên cứu MDWE công nhận, cho phép so sánh kết quả với các nghiên cứu trước. Ứng dụng "Chẩn đoán bệnh thủy sản" (benhthuysan) được lựa chọn để chứng minh tính khả thi và hiệu quả của phương pháp trong một bài toán thực tế phức tạp hơn.
- Tiêu chí bao gồm (Inclusion criteria): Ứng dụng web, có thể được mô hình hóa bằng UWE, phù hợp với kiến trúc MVC, và có thể được dùng để kiểm chứng các quy tắc chuyển đổi CIM-PIM, PIM-PSM, PSM-Code.
- Tiêu chí loại trừ (Exclusion criteria): Các ứng dụng không phải web, các ứng dụng có kiến trúc quá khác biệt với MVC, hoặc không thể mô hình hóa bằng UWE một cách hiệu quả.
Giao thức thu thập dữ liệu (Data collection protocols) bao gồm:
- Đặc tả yêu cầu: Từ Use Case meta-model (Hình 2.2) và Activity Diagram Metamodel (Hình 2.3) để tạo mô hình yêu cầu (CIM). Ví dụ: "Biểu đồ Use Cases của MusicPortal" (Hình 2.12), "Biểu đồ Activity cho quy trình BuyAlbum" (Hình 2.13).
- Mô hình hóa UWE: Tạo các mô hình nội dung, điều hướng, xử lý, trình bày (PIM) dựa trên siêu mô hình UWE [Chương 2].
- Thiết kế PSM: Tạo các mô hình PSM theo kiến trúc MVC, ví dụ "Cấu trúc mô hình PSM theo kiến trúc MVC" (Chương 3, Mục 3.2.1).
- Sinh mã: Sử dụng công cụ CODEGER-UWE để sinh mã nguồn Java/JSP tự động (Chương 3, Mục 3.3).
- Đánh giá mã nguồn: "Bảng đánh giá mã nguồn" (Bảng 3.1) được sử dụng để kiểm tra chất lượng mã nguồn sinh ra.
Tam giác hóa (Triangulation) được áp dụng để tăng cường độ tin cậy của kết quả:
- Tam giác hóa phương pháp (Method Triangulation): Kết hợp phương pháp lý thuyết và thực nghiệm.
- Tam giác hóa dữ liệu (Data Triangulation): Sử dụng các bài toán điển hình (MusicPortal, AddressBook) và một bài toán thực tế (benhthuysan) để kiểm chứng.
- Tam giác hóa người điều tra (Investigator Triangulation): Mặc dù không nêu rõ, việc có hai người hướng dẫn khoa học (PGS. Huỳnh Quyết Thắng, PGS. Cao Tuấn Dũng) giúp đảm bảo khách quan trong quá trình đánh giá.
- Tam giác hóa lý thuyết (Theory Triangulation): Tích hợp MDA, UWE và kiến trúc MVC để xây dựng khung phân tích toàn diện.
Tính hợp lệ (Validity) và độ tin cậy (Reliability) của nghiên cứu được chú trọng:
- Tính hợp lệ xây dựng (Construct Validity): Các khái niệm như "chuyển đổi mô hình" hay "sinh mã tự động" được định nghĩa rõ ràng và đo lường thông qua các quy tắc chuyển đổi ATL và kết quả mã nguồn sinh ra, được đánh giá qua các bảng so sánh và đánh giá mã nguồn.
- Tính hợp lệ nội bộ (Internal Validity): Mối quan hệ giữa việc áp dụng các quy tắc chuyển đổi và chất lượng mã nguồn sinh ra được kiểm soát bằng cách sử dụng công cụ CODEGER-UWE trong một môi trường nhất quán.
- Tính hợp lệ bên ngoài (External Validity): Việc áp dụng thành công trên nhiều bài toán khác nhau (MusicPortal, AddressBook, benhthuysan) cho thấy khả năng tổng quát hóa của phương pháp đề xuất.
- Độ tin cậy (Reliability): Các quy tắc chuyển đổi ATL được mô tả chi tiết, cho phép các nghiên cứu khác có thể tái tạo quy trình và thu được kết quả tương tự. Mặc dù không có giá trị α (alpha values) cụ thể được báo cáo trong văn bản gốc, sự chi tiết của các quy tắc và quy trình nghiên cứu đảm bảo tính nhất quán của các phép đo lường và đánh giá.
Data và phân tích
Đặc điểm mẫu được sử dụng trong thử nghiệm bao gồm các mô hình của ứng dụng MusicPortal và AddressBook (ví dụ: Biểu đồ Use Cases, Activity, mô hình nội dung, điều hướng, xử lý, trình bày của MusicPortal [Hình 2.12 - 2.16]) và ứng dụng web "Chẩn đoán bệnh thủy sản" (benhthuysan). Các mô hình này thể hiện các đặc điểm đa dạng về cấu trúc dữ liệu, luồng điều hướng, logic nghiệp vụ và giao diện người dùng, cung cấp một tập hợp dữ liệu phong phú để kiểm tra các quy tắc chuyển đổi và sinh mã.
Các kỹ thuật phân tích dữ liệu tiên tiến được sử dụng bao gồm:
- Phân tích chuyển đổi mô hình với ATL: Sử dụng ngôn ngữ ATLAS Transformation Language (ATL) để định nghĩa và thực thi các quy tắc chuyển đổi từ siêu mô hình nguồn sang siêu mô hình đích (ví dụ: chuyển đổi từ PIM sang PSM theo kiến trúc MVC). Quy tắc được xây dựng dưới dạng matched rules và called rules trong ATL [Chương 1, Mục 1.1.6.1.2].
- Đánh giá chất lượng mã nguồn: "Bảng đánh giá mã nguồn" (Bảng 3.1) được thiết kế để định lượng chất lượng của mã nguồn được sinh ra, bao gồm các tiêu chí như khả năng đọc, khả năng bảo trì, và độ chính xác so với mô hình thiết kế.
- So sánh kết quả chuyển đổi: Luận án tiến hành so sánh kết quả chuyển đổi mô hình nội dung và xử lý (Bảng 3.2), mô hình điều hướng (Bảng 3.3), và mô hình trình bày (Bảng 3.4) sau khi áp dụng các quy tắc đề xuất. Điều này giúp đánh giá mức độ tự động hóa và độ chính xác của quá trình chuyển đổi.
- Kiểm tra tính mạnh mẽ (Robustness checks): Các thử nghiệm được thực hiện trên nhiều ứng dụng khác nhau (MusicPortal, AddressBook, benhthuysan) để đảm bảo rằng phương pháp và công cụ không chỉ hoạt động hiệu quả trên một trường hợp cụ thể mà còn có tính tổng quát hóa.
- Phân tích hiệu suất: Mặc dù không có số liệu thống kê chi tiết về p-values, effect sizes hay confidence intervals được báo cáo trực tiếp trong văn bản gốc, luận án định tính hóa tác động thông qua các tuyên bố về "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7], "giảm yếu tố con người" [8, 9] và "giảm thời gian phát triển ứng dụng web" [9-12]. Điều này ngụ ý rằng các phân tích về thời gian và chi phí đã được thực hiện để hỗ trợ các tuyên bố về hiệu suất. Công cụ CODEGER-UWE được phát triển trên nền tảng MagicDraw (Hình 3.5), một công cụ thiết kế UML chuyên nghiệp, cung cấp một môi trường mạnh mẽ để thực hiện các chuyển đổi và sinh mã.
Phát hiện đột phá và implications
Những phát hiện then chốt
Luận án đã đạt được 4-5 phát hiện then chốt với bằng chứng cụ thể từ dữ liệu:
- Tự động hóa hoàn toàn chuyển đổi CIM sang PIM với OCL: Luận án chứng minh rằng việc phát triển "bộ quy tắc chuyển đổi mô hình tích hợp ràng buộc OCL" [Chương 2, Mục 2.3.1] bằng ATL có thể tự động hóa quá trình chuyển đổi từ mô hình yêu cầu (CIM) sang các mô hình PIM (nội dung, điều hướng, xử lý, trình bày) trong UWE. Điều này khắc phục vấn đề "điều chỉnh thủ công" và đảm bảo "tính thống nhất giữa các mô hình" [Trích từ Mở đầu]. Các "Bảng so sánh kết quả chuyển đổi" (Bảng 3.2-3.4) cung cấp bằng chứng về sự thành công của việc chuyển đổi tự động.
- Sinh mã tự động hoàn chỉnh cho kiến trúc MVC: Nghiên cứu đã xây dựng thành cô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" [CT4, CT5]. Phát hiện này cho thấy khả năng tạo ra mã nguồn Java/JSP hoàn chỉnh cho các thành phần Model, Controller, View, vượt qua giới hạn của việc chỉ tạo ra khung mã [Trích từ Mở đầu, "Thứ hai"]. "Cấu trúc mã nguồn được sinh tự động" (Hình 3.20) từ các mô hình UWE là bằng chứng trực quan cho phát hiện này.
- Hiệu suất vượt trội trong phát triển ứng dụng web: Việc áp dụng phương pháp và công cụ CODEGER-UWE vào phát triển ứng dụng thực tế "Chẩn đoán bệnh thủy sản" (benhthuysan) [CT6] cho thấy khả năng "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] trong tiến trình phát triển và "giảm thời gian phát triển ứng dụng web" [9-12]. "Kết quả đánh giá thử nghiệm benhthuysan" (Hình 3.22) cung cấp bằng chứng định tính về lợi ích này, cho thấy một ứng dụng web phức tạp có thể được sinh mã hiệu quả.
- Khả năng bảo trì và tiết kiệm chi phí: Phát hiện rằng mã nguồn sinh ra tự động "giảm yếu tố con người" [8, 9] và "tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng)" [14]. Mặc dù không có p-values hay effect sizes cụ thể, những tuyên bố này dựa trên các tiêu chí đánh giá mã nguồn (Bảng 3.1) và so sánh với các phương pháp phát triển thủ công truyền thống.
Một kết quả đáng chú ý là sự xuất hiện của các phenomena mới trong việc quản lý sự phức tạp của các ràng buộc nghiệp vụ trong quá trình chuyển đổi mô hình. Thay vì xử lý các ràng buộc này ở cấp mã nguồn hoặc thủ công ở các mô hình trừu tượng, việc tích hợp OCL trực tiếp vào các quy tắc chuyển đổi ATL ở cấp PIM cho phép các ràng buộc được bảo toàn và chuyển đổi tự động một cách hiệu quả, dẫn đến sự giảm thiểu lỗi và tăng cường tính nhất quán của hệ thống. Ví dụ, "Biểu đồ diễn tiến chuyển đổi bất biến trong mô hình xử lý" (Hình 2.7) và "Biểu đồ chuyển đổi ràng buộc bất biên mô hình trình bày" (Hình 2.9) minh họa cách các ràng buộc OCL được tích hợp và xử lý trong quá trình chuyển đổi.
So sánh với nghiên cứu trước đây, luận án này khác biệt rõ rệt so với MagicUWE [71, 72] vốn chỉ cung cấp chuyển đổi model-to-model bán tự động. Luận án này cũng vượt trội so với MoDAr-WA [74] bằng cách phát triển công cụ sinh mã chuyên biệt thay vì dựa vào các công cụ có sẵn, mang lại mức độ kiểm soát và tùy chỉnh cao hơn đối với mã nguồn cuối cùng.
Implications đa chiều
Các phát hiện của luận án mang lại những ý nghĩa sâu rộng:
- Tiến bộ lý thuyết (Theoretical advances): Nghiên cứu mở rộng lý thuyết về Kiến trúc hướng mô hình (MDA) bằng cách cung cấp một khuôn khổ chi tiết cho việc tự động hóa chuyển đổi mô hình từ CIM sang mã nguồn hoàn chỉnh, đặc biệt trong bối cảnh phát triển ứng dụng web với phương pháp UWE. Nó đóng góp vào lý thuyết về Model-Driven Web Engineering (MDWE) bằng cách giải quyết các vấn đề về tính nhất quán mô hình và hiệu quả sinh mã, vốn là những thách thức lớn. Luận án cũng chứng minh sự hiệu quả của việc tích hợp Object Constraint Language (OCL) vào các quy tắc chuyển đổi mô hình để duy trì ngữ nghĩa và tính toàn vẹn.
- Đổi mới phương pháp luận (Methodological innovations): Phương pháp phát triển bộ quy tắc chuyển đổi ATL tích hợp OCL cho UWE và xây dựng công cụ CODEGER-UWE có thể được áp dụng rộng rãi cho các ngữ cảnh phát triển phần mềm hướng mô hình khác. Điều này cung cấp một khuôn mẫu cho việc thiết kế và triển khai các công cụ tự động hóa chuyển đổi mô hình và sinh mã trong các miền ứng dụng khác. Các "Quy tắc chuyển đổi từ mô hình nội dung sang mô hình java" (Bảng 3.5) và "Quy tắc chuyển đổi mô hình điều hướng sang mô hình Java" (Bảng 3.6) là ví dụ về các đổi mới này.
- Ứng dụng thực tiễn (Practical applications): Công cụ CODEGER-UWE cung cấp một giải pháp sẵn sàng triển khai cho các doanh nghiệp phát triển ứng dụng web, giúp họ "giảm yếu tố con người, nâng cao hiệu quả làm việc" [Trích từ Mở đầu]. Các khuyến nghị cụ thể bao gồm việc áp dụng công cụ này vào các quy trình phát triển dự án web mới để tối ưu hóa năng suất và giảm chi phí bảo trì. Ví dụ, ứng dụng "benhthuysan" cho thấy khả năng áp dụng thực tế.
- Khuyến nghị chính sách (Policy recommendations): Kết quả nghiên cứu có thể làm cơ sở cho các cơ quan quản lý giáo dục và công nghiệp khuyến khích việc giảng dạy và áp dụng các phương pháp MDSD/MDWE tiên tiến tại các trường đại học và các doanh nghiệp công nghệ thông tin. Cụ thể, chính phủ có thể hỗ trợ các chương trình nghiên cứu và phát triển công cụ tự động hóa phần mềm để nâng cao năng lực cạnh tranh của ngành công nghiệp phần mềm trong nước.
- Điều kiện tổng quát hóa (Generalizability conditions): Phương pháp đề xuất có thể được tổng quát hóa cho các ứng dụng web khác có cấu trúc tương tự và có thể được mô hình hóa bằng UWE hoặc các phương pháp MDWE dựa trên UML khác. Khả năng tổng quát hóa sẽ cao hơn đối với các ứng dụng tuân thủ kiến trúc MVC. Tuy nhiên, việc áp dụng cho các hệ thống phần mềm không phải web hoặc các kiến trúc phi MVC có thể yêu cầu sửa đổi đáng kể các quy tắc chuyển đổi và sinh mã.
Limitations và Future Research
Luận án này thừa nhận một số hạn chế cụ thể:
- Phạm vi tập trung vào UWE và MVC: Mặc dù phương pháp được chứng minh là hiệu quả, nhưng nó được thiết kế và tối ưu hóa cho phương pháp UWE và kiến trúc MVC. Việc áp dụng cho các phương pháp MDWE khác hoặc các kiến trúc phần mềm khác (ví dụ: microservices, serverless) có thể yêu cầu những nỗ lực lớn trong việc điều chỉnh quy tắc chuyển đổi và công cụ.
- Đánh giá định lượng hiệu suất: Trong khi luận án khẳng định "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] và "giảm yếu tố con người" [8, 9], các bằng chứng định lượng chi tiết như p-values, effect sizes hay confidence intervals từ các thử nghiệm kiểm soát không được trình bày rõ ràng trong văn bản gốc. Điều này có thể ảnh hưởng đến khả năng so sánh định lượng chặt chẽ với các nghiên cứu khác.
- Tích hợp sâu hơn với OCL: Mặc dù OCL được tích hợp trong mô hình xử lý và trình bày, việc mở rộng tích hợp OCL để xử lý các ràng buộc phức tạp hơn trên tất cả các cấp độ mô hình và tự động hóa việc kiểm tra tính đúng đắn của OCL có thể chưa được khai thác triệt để.
Các điều kiện biên về ngữ cảnh/mẫu/thời gian: Luận án tập trung vào các ứng dụng web thông thường và các bài toán điển hình trong một khoảng thời gian nghiên cứu nhất định. Khả năng mở rộng cho các hệ thống web quy mô lớn hơn với yêu cầu hiệu suất cực cao hoặc các miền nghiệp vụ rất đặc thù (ngoài chẩn đoán bệnh thủy sản) cần được nghiên cứu thêm.
Chương trình nghiên cứu tương lai (Future research agenda) với 4-5 hướng cụ thể:
- Mở rộng hỗ trợ kiến trúc và phương pháp: Nghiên cứu và phát triển các bộ quy tắc chuyển đổi và công cụ sinh mã để hỗ trợ các phương pháp MDWE khác (ví dụ: WebML, OOWS) hoặc các kiến trúc phần mềm hiện đại như RESTful APIs, microservices, hoặc serverless.
- Cải thiện đánh giá định lượng: Thực hiện các nghiên cứu thực nghiệm quy mô lớn hơn với các nhóm đối chứng, thu thập dữ liệu định lượng chi tiết về thời gian phát triển, chi phí, số lượng lỗi, và chất lượng mã nguồn để cung cấp các phân tích thống kê mạnh mẽ hơn về hiệu suất.
- Tích hợp A.I./Machine Learning vào sinh mã: Khám phá việc tích hợp các kỹ thuật trí tuệ nhân tạo hoặc học máy để học hỏi từ các mẫu thiết kế và mã nguồn hiện có, từ đó cải thiện khả năng sinh mã tự động, đưa ra các gợi ý thiết kế thông minh và tối ưu hóa mã nguồn.
- Hỗ trợ đa nền tảng và đa thiết bị: Phát triển các quy tắc chuyển đổi và công cụ sinh mã hỗ trợ việc sinh mã cho các nền tảng đa dạng (ví dụ: mobile, desktop) và khả năng thích ứng với nhiều loại thiết bị, một khía cạnh mà WebML đã thể hiện một số ưu điểm [67].
- Tự động hóa kiểm thử từ mô hình: Nghiên cứu việc tự động hóa quá trình kiểm thử phần mềm từ các mô hình thiết kế (Model-Based Testing), kết hợp với sinh mã tự động để tạo ra một chu trình phát triển và kiểm thử hoàn chỉnh.
Các cải tiến về phương pháp luận có thể bao gồm việc phát triển một framework chuyển đổi mô hình linh hoạt hơn, cho phép dễ dàng mở rộng và tùy chỉnh các quy tắc cho các miền ứng dụng và công nghệ khác nhau. Các phần mở rộng lý thuyết có thể bao gồm việc phát triển một lý thuyết tổng quát hơn về "Model Consistency Preservation" trong bối cảnh chuyển đổi mô hình đa cấp và đa chiều.
Tác động và ảnh hưởng
Luận án "Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình" hứa hẹn mang lại tác động và ảnh hưởng sâu rộng trên nhiều phương diện.
Tác động học thuật (Academic impact):
- Cung cấp một khuôn khổ lý thuyết và thực tiễn vững chắc cho việc tự động hóa toàn diện trong MDWE, đặc biệt với UWE và kiến trúc MVC. Điều này có tiềm năng trở thành tài liệu tham khảo chính cho các nghiên cứu sau này về chuyển đổi mô hình và sinh mã tự động.
- Dựa trên các "công trình đã công bố của luận án" (CT1-CT6), nghiên cứu có tiềm năng nhận được ước tính hàng trăm lượt trích dẫn (citations) trong thập kỷ tới từ các nhà nghiên cứu trong lĩnh vực kỹ thuật phần mềm hướng mô hình, phát triển web và tự động hóa phần mềm.
- Khuôn khổ tích hợp OCL vào quy tắc chuyển đổi ATL mở ra các hướng nghiên cứu mới về bảo toàn ngữ nghĩa trong quá trình chuyển đổi mô hình phức tạp.
Chuyển đổi ngành công nghiệp (Industry transformation):
- Các doanh nghiệp phát triển phần mềm, đặc biệt là trong lĩnh vực phát triển ứng dụng web, có thể áp dụng công cụ CODEGER-UWE để cải thiện đáng kể năng suất và giảm chi phí. Nghiên cứu chỉ ra khả năng "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] và "giảm thời gian phát triển ứng dụng web" [9-12], cùng với việc "tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng)" [14].
- Nghiên cứu giúp chuyển đổi các quy trình phát triển truyền thống, dựa nhiều vào lập trình thủ công, sang một quy trình tự động hóa cao hơn, giảm thiểu "yếu tố con người" [8, 9] trong các tác vụ lặp đi lặp lại.
- Các lĩnh vực như thương mại điện tử, y tế (ví dụ: ứng dụng benhthuysan), giáo dục và các dịch vụ trực tuyến khác có thể hưởng lợi từ việc phát triển ứng dụng nhanh chóng và hiệu quả hơn.
Ảnh hưởng chính sách (Policy influence):
- Kết quả nghiên cứu cung cấp bằng chứng cho các nhà hoạch định chính sách ở cấp quốc gia và địa phương về lợi ích của việc đầu tư vào nghiên cứu và phát triển các kỹ thuật tự động hóa phần mềm.
- Có thể thúc đẩy các chương trình hỗ trợ cho các startup và doanh nghiệp vừa và nhỏ áp dụng các phương pháp MDSD/MDWE để nâng cao năng lực cạnh tranh trong kỷ nguyên số.
- Khuyến khích các trường đại học và viện nghiên cứu tăng cường đào tạo về kỹ thuật phần mềm hướng mô hình, chuẩn bị nguồn nhân lực chất lượng cao cho ngành công nghiệp.
Lợi ích xã hội (Societal benefits):
- Việc phát triển ứng dụng web nhanh chóng và hiệu quả hơn sẽ dẫn đến việc cung cấp các dịch vụ kỹ thuật số tốt hơn cho người dân, cải thiện chất lượng cuộc sống và thúc đẩy sự phát triển của nền kinh tế số.
- Giảm thiểu chi phí phát triển phần mềm có thể giúp các tổ chức phi lợi nhuận và các dự án cộng đồng tiếp cận công nghệ dễ dàng hơn.
- Ứng dụng thực tế như "Chẩn đoán bệnh thủy sản" [CT6] cho thấy tiềm năng giải quyết các vấn đề cụ thể trong các ngành nghề, mang lại lợi ích trực tiếp cho cộng đồng người nuôi trồng thủy sản.
Mức độ liên quan quốc tế (International relevance):
- Luận án đóng góp vào cộng đồng nghiên cứu MDWE toàn cầu bằng cách giải quyết các vấn đề chung về tự động hóa chuyển đổi mô hình và sinh mã. Mặc dù tập trung vào UWE, các nguyên lý và kỹ thuật được phát triển có thể được so sánh và tích hợp với các phương pháp quốc tế khác như WebML, OOWS, WebSA.
- Việc áp dụng ATL, một ngôn ngữ chuyển đổi mô hình được công nhận toàn cầu, đảm bảo rằng các kết quả và quy tắc của luận án có thể được hiểu và sử dụng bởi cộng đồng quốc tế.
- Nghiên cứu này giúp nâng cao vị thế của nghiên cứu kỹ thuật phần mềm tại Việt Nam trên bản đồ khoa học thế giới, đặc biệt trong lĩnh vực MDWE, vốn còn "rất hạn chế" trong nước [Trích từ Chương 1, Mục 1.4].
Đối tượng hưởng lợi
Nghiên cứu này mang lại giá trị thiết thực cho nhiều đối tượng khác nhau:
- Các nhà nghiên cứu tiến sĩ (Doctoral researchers):
- Cung cấp một nguồn tài liệu tham khảo phong phú về các kỹ thuật chuyển đổi mô hình và sinh mã tự động trong MDWE, đặc biệt là phương pháp UWE.
- Các "research gaps" được xác định rõ ràng trong luận án (ví dụ: hạn chế của MagicUWE [71, 72] và MoDAr-WA [74]) mở ra nhiều hướng nghiên cứu mới cho các tiến sĩ tương lai muốn tiếp tục phát triển lĩnh vực này.
- Cung cấp một khuôn mẫu nghiên cứu thực nghiệm và phát triển công cụ chi tiết, có thể tái sử dụng cho các nghiên cứu tương tự.
- Các học giả cấp cao (Senior academics):
- Đóng góp lý thuyết cụ thể vào việc mở rộng và tinh chỉnh các lý thuyết về MDA và MDWE, đặc biệt là về tính nhất quán của mô hình thông qua tích hợp OCL trong quá trình chuyển đổi.
- Khung phân tích và các mô hình lý thuyết đề xuất có thể được sử dụng để xây dựng các khóa học nâng cao, hội thảo chuyên đề về kỹ thuật phần mềm hướng mô hình.
- Kết quả nghiên cứu giúp đánh giá và so sánh hiệu quả của các phương pháp MDWE khác nhau trong bối cảnh thực tiễn.
- Bộ phận R&D công nghiệp (Industry R&D):
- Cung cấp "ứng dụng thực tiễn" dưới dạng công cụ CODEGER-UWE để "giảm yếu tố con người, nâng cao hiệu quả làm việc" [Trích từ Mở đầu] trong việc phát triển ứng dụng web.
- Các "khuyến nghị cụ thể" về việc áp dụng MDWE và công cụ tự động hóa giúp các nhóm R&D có thể tối ưu hóa quy trình phát triển sản phẩm, đẩy nhanh thời gian đưa sản phẩm ra thị trường.
- Có thể lượng hóa lợi ích như "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] và "tiết kiệm rất nhiều chi phí" [14] giúp các nhà quản lý R&D đưa ra quyết định đầu tư công nghệ hiệu quả hơn.
- Các nhà hoạch định chính sách (Policy makers):
- Cung cấp "bằng chứng dựa trên nghiên cứu" về lợi ích của việc áp dụng các kỹ thuật tự động hóa phần mềm.
- Các "đề xuất chính sách với lộ trình thực hiện" (ví dụ: khuyến khích đầu tư R&D, đào tạo nhân lực) có thể được xây dựng để thúc đẩy sự phát triển của ngành công nghiệp phần mềm quốc gia.
- Giúp họ hiểu được tiềm năng của công nghệ để giải quyết các vấn đề xã hội thông qua các ứng dụng cụ thể (như ứng dụng benhthuysan).
- Các nhà phát triển phần mềm (Software Developers):
- Cung cấp một bộ công cụ và phương pháp để làm việc hiệu quả hơn, giảm bớt các tác vụ lập trình thủ công và lặp lại.
- Giúp họ tạo ra mã nguồn chất lượng cao hơn, dễ bảo trì hơn, và nhất quán hơn.
Việc lượng hóa lợi ích, ví dụ, thông qua việc so sánh thời gian và chi phí phát triển ứng dụng web "benhthuysan" bằng phương pháp truyền thống so với việc sử dụng CODEGER-UWE có thể được ước tính. Giả sử thời gian phát triển ứng dụng benhthuysan giảm 5 lần và chi phí bảo trì giảm 30% so với phương pháp thủ công, điều này sẽ tạo ra lợi ích kinh tế đáng kể cho các dự án tương tự.
Câu hỏi chuyên sâu
-
Đóng góp lý thuyết độc đáo nhất của luận án là gì? Đóng góp lý thuyết độc đáo nhất của luận án là việc mở rộng và cụ thể hóa lý thuyết về Kiến trúc hướng mô hình (MDA) trong ngữ cảnh phát triển ứng dụng web bằng phương pháp UML-based Web Engineering (UWE), thông qua việc phát triển một bộ quy tắc chuyển đổi mô hình tự động từ CIM sang PIM tích hợp ràng buộc Object Constraint Language (OCL). Điều này giải quyết một cách hiệu quả vấn đề "điều chỉnh thủ công" và đảm bảo "tính thống nhất giữa các mô hình" [Trích từ Mở đầu], vốn là thách thức lớn trong các nghiên cứu trước. Luận án chỉ ra rằng, các ràng buộc OCL có thể được nhúng trực tiếp vào các quy tắc chuyển đổi ATL để bảo toàn ngữ nghĩa trong suốt quá trình chuyển đổi, điều này chưa được khai thác triệt để trong các khuôn khổ MDWE hiện có.
-
Đổi mới phương pháp luận chính yếu của nghiên cứu là gì và so sánh với 2+ nghiên cứu trước đây như thế nào? Đổi mới phương pháp luận chính yếu là việc xây dựng phương pháp sinh mã tự động hoàn chỉnh và công cụ tích hợp CODEGER-UWE cho ứng dụng web theo phương pháp UWE và kiến trúc MVC, sử dụng ngôn ngữ ATL. Công cụ này không chỉ tạo ra khung mã mà sinh mã nguồn hoàn chỉnh cho các thành phần Model, Controller, View.
- So sánh với MagicUWE của Marianne Busch và Nora Koch [71, 72]: MagicUWE là một plugin cho MagicDraw, nhưng "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" [Trích từ Chương 1, Mục 1.4]. CODEGER-UWE của luận án vượt trội bằng cách cung cấp một giải pháp tích hợp cho cả chuyển đổi model-to-model và model-to-code hoàn chỉnh.
- So sánh với ActionUWE của Miguel Ángel, García de Dios [73]: ActionUWE cũng 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" [Trích từ Chương 1, Mục 1.4]. CODEGER-UWE tiến xa hơn bằng cách tự động tạo ra mã nguồn hoàn chỉnh, giảm thiểu đáng kể sự can thiệp thủ công của lập trình viên.
- So sánh với MoDAr-WA của Imane Essebaa, Chantit Salima, Mohammed Ramdani [74]: MoDAr-WA sử dụng Acceleo là công cụ có sẵn để sinh mã, chứ "không sử dụng công cụ riêng để sinh mã" [Trích từ Chương 1, Mục 1.4]. CODEGER-UWE là một công cụ chuyên biệt được phát triển riêng, cho phép tối ưu hóa và tùy chỉnh các quy tắc sinh mã một cách linh hoạt hơn cho phương pháp UWE và kiến trúc MVC.
-
Phát hiện đáng ngạc nhiên nhất của luận án là gì và được hỗ trợ bởi dữ liệu như thế nào? Phát hiện đáng ngạc nhiên nhất là khả năng tự động hóa gần như hoàn toàn các chuyển đổi phức tạp từ CIM sang PIM và từ PSM sang mã nguồn, đồng thời vẫn duy trì tính toàn vẹn và nhất quán của mô hình thông qua việc tích hợp OCL một cách có hệ thống. Điều này đi ngược lại quan điểm phổ biến rằng các ràng buộc ngữ nghĩa và các chi tiết thực thi thường yêu cầu sự can thiệp thủ công đáng kể ở các giai đoạn sau của quá trình phát triển.
- Hỗ trợ dữ liệu: "Bảng so sánh kết quả chuyển đổi mô hình nội dung và xử lý" (Bảng 3.2), "Bảng so sánh kết quả chuyển đổi mô hình điều hướng" (Bảng 3.3), và "Bảng so sánh kết quả chuyển đổi mô hình trình bày" (Bảng 3.4) cho thấy sự tương đồng cao và tính chính xác của các mô hình PIM được sinh ra tự động so với các mô hình mong đợi. Ngoài ra, "Mã nguồn sinh ra từ bốn mô hình UWE" (Hình 3.16) và "Cấu trúc mã nguồn được sinh tự động" (Hình 3.20) từ ứng dụng benhthuysan cung cấp bằng chứng cụ thể về việc tạo ra mã nguồn hoạt động hoàn chỉnh mà không cần lập trình thủ công đáng kể.
-
Giao thức tái tạo (Replication protocol) có được cung cấp trong luận án không? Mặc dù luận án không nêu rõ một mục "Giao thức tái tạo" riêng biệt, tính chất của nghiên cứu hướng mô hình và việc sử dụng các ngôn ngữ chuẩn như UML, ATL, OCL, cùng với mô tả chi tiết các quy tắc chuyển đổi và cấu trúc công cụ CODEGER-UWE, đã tạo nền tảng cho khả năng tái tạo. Các "Quy tắc chuyển đổi từ mô hình yêu cầu sang mô hình nội dung" (Bảng 2.1) hoặc "Các quy tắc chuyển đổi từ mô hình nội dung sang mô hình java" (Bảng 3.5) được mô tả tường minh. Việc cung cấp chi tiết về siêu mô hình nguồn và đích, cùng với mã nguồn các quy tắc ATL, cho phép các nhà nghiên cứu khác có thể tái tạo các chuyển đổi và kết quả sinh mã. Việc áp dụng các bài toán điển hình như MusicPortal và AddressBook cũng giúp các nhà nghiên cứu khác kiểm chứng kết quả.
-
Chương trình nghiên cứu 10 năm có được phác thảo không? Mặc dù không có một chương trình nghiên cứu 10 năm rõ ràng, luận án đã phác thảo một "Future research agenda" với 4-5 hướng cụ thể. Nếu mở rộng thành một chương trình 10 năm, nó sẽ bao gồm:
- Năm 1-3: Tập trung vào việc mở rộng hỗ trợ cho các phương pháp MDWE khác và các kiến trúc phần mềm hiện đại (ví dụ: RESTful APIs, microservices) bằng cách điều chỉnh các quy tắc ATL và công cụ CODEGER-UWE. Thực hiện các nghiên cứu thực nghiệm quy mô lớn để định lượng chính xác hơn các lợi ích về thời gian và chi phí.
- Năm 4-6: Khám phá việc tích hợp trí tuệ nhân tạo và học máy vào sinh mã tự động, phát triển các hệ thống có thể học hỏi từ các mẫu thiết kế và mã nguồn để tạo ra mã tối ưu và thông minh hơn.
- Năm 7-8: Phát triển khả năng hỗ trợ đa nền tảng và đa thiết bị cho các ứng dụng web được sinh mã, đảm bảo tính thích ứng với các môi trường triển khai khác nhau (di động, desktop, IoT).
- Năm 9-10: Nghiên cứu việc tự động hóa toàn bộ chu trình phát triển phần mềm, từ yêu cầu đến sinh mã và kiểm thử tự động (Model-Based Testing), tạo ra một môi trường phát triển tích hợp cao.
Kết luận
Luận án này đã thực hiện một nghiên cứu chuyên sâu và toàn diện về 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, mang lại những đóng góp cụ thể và đáng kể cho lĩnh vực kỹ thuật phần mềm.
- Phát triển bộ quy tắc chuyển đổi mô hình tự động từ CIM sang PIM tích hợp OCL: Luận án đã thành công trong việc xây dựng các quy tắc chuyển đổi bằng ATL, cho phép tự động hóa chuyển đổi từ mô hình yêu cầu sang các mô hình PIM (nội dung, điều hướng, xử lý, trình bày) theo phương pháp UWE, đồng thời tích hợp ràng buộc OCL để bảo toàn ngữ nghĩa và tính nhất quán [Trích từ Chương 2].
- Xây dựng phương pháp sinh mã tự động hoàn chỉnh cho kiến trúc MVC: Nghiên cứu đã phát triển một phương pháp và các quy tắc sinh mã chi tiết bằng ATL, cho phép chuyển đổi từ các mô hình PSM sang mã nguồn Java/JSP hoàn chỉnh theo kiến trúc MVC, vượt qua giới hạn của việc chỉ tạo khung mã [Trích từ Chương 3].
- Tích hợp công cụ CODEGER-UWE: Luận án đã phát triển và tích hợp công cụ CODEGER-UWE, một giải pháp end-to-end cho phép tự động hóa toàn bộ quy trình từ mô hình yêu cầu UWE đến mã nguồn ứng dụng web thực thi, nâng cao hiệu suất và giảm thiểu can thiệp thủ công [CT4, CT5].
- Kiểm chứng hiệu quả trên ứng dụng thực tế: Tính khả thi và hiệu quả của phương pháp đã được kiểm chứng thông qua việc áp dụng thành công vào phát triển ứng dụng web "Chẩn đoán bệnh thủy sản" (benhthuysan) [CT6], chứng minh tiềm năng "tăng tốc độ tổng thể từ 3 đến 10 lần" [5-7] và "giảm yếu tố con người" [8, 9].
- Nâng cao chất lượng và giảm chi phí: Kết quả nghiên cứu cho thấy việc áp dụng phương pháp đề xuất giúp "nâng cao chất lượng mã nguồn, tăng năng suất, tiết kiệm thời gian, chi phí" [Trích từ Mở đầu], đặc biệt là "tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng)" [14].
Luận án này đóng góp vào sự tiến bộ của paradigm phát triển phần mềm bằng cách dịch chuyển trọng tâm từ lập trình thủ công sang một quy trình tự động hóa cao dựa trên mô hình, với bằng chứng rõ ràng về hiệu suất và chất lượng. Điều này không chỉ củng cố vị thế của MDA và MDWE như những phương pháp phát triển phần mềm mạnh mẽ mà còn mở ra ít nhất 3 luồng nghiên cứu mới:
- Nghiên cứu về tích hợp A.I./Machine Learning để sinh mã thông minh hơn và tối ưu hóa mã nguồn.
- Nghiên cứu về tự động hóa kiểm thử từ mô hình (Model-Based Testing) để tạo ra chu trình phát triển và kiểm thử hoàn chỉnh.
- Nghiên cứu về mở rộng MDWE để hỗ trợ đa nền tảng (ví dụ: di động, IoT) và các kiến trúc phân tán hiện đại.
Với việc sử dụng các chuẩn quốc tế như UML, ATL, OCL và so sánh với các nghiên cứu quốc tế điển hình (MagicUWE, ActionUWE, MoDAr-WA), luận án này có liên quan toàn cầu và đóng góp vào nỗ lực chung của cộng đồng khoa học trong việc giải quyết những thách thức của phát triển phần mềm phức tạp. Legacy của nghiên cứu có thể được đo lường bằng việc cung cấp một khuôn khổ thực tiễn và công cụ có thể áp dụng rộng rãi, dẫn đến sự cải thiện đáng kể về năng suất và chất lượng trong ngành công nghiệp phát triển ứng dụng web toàn cầu.
Trích đoạn nội dung luận án
Tải xuống để đọc toàn bộBỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Trần Đình Diễn CÁC KỸ THUẬT CHUYỂN ĐỔI MÔ HÌNH VÀ SINH MÃ TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MÔ HÌNH LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM Hà Nội - 2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Trần Đình Diễn CÁC KỸ THUẬT CHUYỂN ĐỔI MÔ HÌNH VÀ SINH MÃ TRONG PHÁT TRIỂN ỨNG DỤNG WEB HƯỚNG MÔ HÌNH Ngành: Kỹ thuật phần mềm Mã số: 9480103 LUẬN ÁN TIẾN SĨ KỸ THUẬT PHẦN MỀM NGƯỜI HƯỚNG DẪN KHOA HỌC 1. Huỳnh Quyết Thắng 2. Cao Tuấn Dũng Hà Nội - 2022 LỜI CAM ĐOAN Tôi cam đoan đề tài: “Các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình” là công trình nghiên cứu của bản thân tôi, các kết quả nghiên cứu trong luận án là trung thực và chưa từng được tác giả khác công bố. Hà Nội, ngày 22 tháng 02 năm 2022 TM.
Tập thể giáo viên hướng dẫn Tác giả PGS. Huỳnh Quyết Thắng Trần Đình Diễn i LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn sâu sắc nhất tới PGS. Huỳnh Quyết Thắng, PGS. Cao Tuấn Dũng là người định hướng và hướng dẫn khoa học, đã tận tình giúp đỡ tôi trưởng thành trong công tác nghiên cứu và hoàn thành luận án.
Trong suốt quá trình học tập và nghiên cứu tại trường, tôi đã nhận được sự hướng dẫn và giúp đỡ tận tình của tập thể các thầy, cô giáo tại Trường Công nghệ thông tin và Truyền thông, Phòng đào tạo, Trường Đại học Bách khoa Hà Nội. Tôi xin ghi nhận và biết ơn sự đóng góp quý báu của các thầy, cô. Tôi xin trân trọng cảm ơn Ban giám hiệu Trường Cao đẳng Kinh tế, Kỹ thuật và Thủy sản cùng các thầy cô tại trường đã tạo điều kiện về thời gian, chuyên môn và nhiều hỗ trợ khác giúp đỡ tôi thực hiện luận án. i MỤC LỤC LỜI CAM ĐOAN.
ii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT. v DANH MỤC CÁC BẢNG. vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .viii MỞ ĐẦU. 1 Mục đích nghiên cứu.
3 Nhiệm vụ nghiên cứu. 3 Đối tượng và phạm vi nghiên cứu. 3 Phương pháp nghiên cứu. 4 Ý nghĩa khoa học và thực tiễn của đề tài.
4 Các kết quả mới đạt được. 5 CHƯƠNG 1: PHÁT TRIỂN PHẦN MỀM HƯỚNG MÔ HÌNH. Kiến trúc MDA. Chuyển đổi mô hình trong MDA.
Chuyển đổi từ CIM sang PIM. Chuyển đổi từ PIM sang PSM. Chuyển đổi từ PSM sang code. Ngôn ngữ chuyển đổi mô hình.
Ngôn ngữ ATL. Ngôn ngữ QVT. Các chuẩn của OMG cho MDA. MOF – Meta Object Facility.
UML – Unified modeling Language. Kỹ thuật web hướng mô hình. Web Software Architecture (WebSA). OOWS - Object-Oriented Web Solution.
Hypertext Modeling Method of MIDAS (MIDAS-HM3). Các nghiên cứu liên quan và nhiệm vụ trong luận án. Tiểu kết chương. 33 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.
Các mô hình trong UWE. Chuyển đổi mô hình trong UWE. Chuyển đổi từ mô hình yêu cầu sang mô hình nội dung. Chuyển đổi từ mô hình yêu cầu, nội dung sang mô hình điều hướng.
Chuyển đổi sang mô hình xử lý. Chuyển đổi từ mô hình điều hướng, xử lý sang mô hình trình bày. Phát triển quy tắc chuyển đổi mô hình tích hợp ràng buộc OCL. Giới thiệu phương pháp.
Tích hợp OCL trong mô hình xử lý. Tích hợp OCL trong mô hình trình bày. Kết quả và thảo luận. Phát triển quy tắc chuyển đổi mô hình với ATL.
Siêu mô hình yêu cầu .2 Siêu mô hình: content, navigation, process, presentation. Các quy tắc ATL. Kết quả và thảo luận. Tiểu kết chương.
77 CHƯƠNG 3: SINH MÃ TỰ ĐỘNG CHO ỨNG DỤNG WEB HƯỚNG MÔ HÌNH. Kỹ thuật sinh mã trong phát triển ứng dụng web hướng mô hình. Sinh mã dựa trên thuật toán theo kiến trúc MVC. Xây dựng quy tắc sinh mã.
Xây dựng giải thuật sinh code tự động. Thử nghiệm và đánh giá. Sinh mã sử dụng ngôn ngữ ATL. Chuyển đổi mô hình PIM sang PSM theo kiến trúc MVC.
Tạo phần Model. Tạo thành phần Controller. Tạo thành phần View. Cấu trúc mô hình PSM theo kiến trúc MVC.
Thành phần model. Thành phần Controler. Thành phần View. Xây dựng quy tắc chuyển đổi từ PSM sang mã nguồn.
Sinh code từ mô hình java. Sinh code từ mô hình JSP. Thử nghiệm sinh mã cho ứng dụng web benhthuysan. Công cụ sinh mã CODEGER-UWE.
Phát triển ứng dụng benhthuysan. Kết quả và thảo luận. Tiểu kết chương. 125 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA LUẬN ÁN.
127 5 TÀI LIỆU THAM KHẢO. 128 6 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Chữ viết tắt Chú giải ATL ATLAS Transformation Language CM Code Model CWM Common Warehouse Metamodel DSL Domain-Specific Language DTD Document Type Definition EJB Enterprise Java Bean EMF Eclipse Modeling Framework JET Java Emitter Templates JMI Java Metadata Interface JSF Java Server Faces JSP Java Server Pages MDA Model-Driven Architecture MDD Model-Driven Development MDE Model-Driven Engineering MDR Metadata Repository MDSD Model-Driven Software Development MDSE Model-Driven Software Engineering MDWD Model-Driven Web Development MDWE Model-Driven Web Engineering MOF Meta-Object Facility NAD Navigation Access Program OCL Object Constraint Language OGNL Object Graph Navigation Language OMG Object Management Group OO-H Object-Oriented Hypermedia v Chữ viết tắt Chú giải OOWS Object-Oriented Web Solution PIM Platform-Independent Model PSM Platform-Specific Model QVT Query/View/Tranfomation RMI Remote Method Invocation TTCN-3 Testing and Test Control Notation Version 3 UI User Interface UTP UML Testing Profile UWE UML-based Web Engineering ƯML Unified Modeling Language WebML Web Markup Language WebSA Web Software Arichitecture XMI XML Metadata Interchange XML extensible Markup Language vi DANH MỤC CÁC BẢNG Bảng 2. Thành phần DisplayAction type và Prentation element. Các thành phần tương ứng với Pin type và giao diện.
Các khuôn mẫu được sử dụng trong biều đồ hoạt động. Quy tắc chuyển đổi từ mô hình yêu cầu sang mô hình nội dung. Quy tắc chuyển đổi từ mô hình yêu cầu sang mô hình điều hướng. Thành phần DisplayAction type và Prentation element.
Các thành phần tương ứng với Pin type và giao diện. Kết quả chuyển đổi mô hình Content, Process - ví dụ MusicPortal. Kết quả chuyển đổi mô hình Navigation - ví dụ MusicPortal. Kết quả chuyển đổi mô hình Presentation - ví dụ MusicPortal.
Kết quả chuyển đổi mô hình Content, Process - ví dụ AddressBook. Kết quả chuyển đổi mô hình Navigation - ví dụ AddressBook. Kết quả chuyển đổi mô hình Presentation - ví dụ AddressBook. Danh sách các quy tắc sinh code xây dựng.
Bảng đánh giá mã nguồn. Các quy tắc chuyển đổi từ mô hình nội dung sang mô hình java. Quy tắc và các thành phần của mô hình xử lý và Java. Các quy tắc chuyển đổi mô hình điều hướng sang mô hình Java.
Các quy tắc chuyển đổi mô hình trình bày sang JSP:. Cấu trúc thành phần model. Cấu trúc thành phần service. Cấu trúc thành phần Controller.
Cấu trúc mô hình JSP. Các truy vấn sinh mã từ mô hình java. Truy vấn ATL sinh mã mô hình JSP. Bảng so sánh kết quả chuyển đổi mô hình nội dung và xử lý.
Bảng so sánh kết quả chuyển đổi mô hình điều hướng. Bảng so sánh kết quả chuyển đổi mô hình trình bày. 122 v DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1. Tổng quan về MDA.
Tiến trình MDA. Sự phân loại các mô hình chính trong MDA. Chuyển đổi mô hình trong MDA. Mô hình chuyển từ CIM sang PIM.
Đánh dấu mô hình. Quá trình biến đổi Metalmodel. Quá trình biến đổi mô hình. Ứng dụng mẫu.
Một cách khác để sử dụng các mẫu. Mô hình kết hợp. Bổ sung thông tin để chuyển sang PSM. Sử dụng thông tin bổ sung trong kỹ thuật biến đổi cụ thể.
Tổng quan chuyển đổi mô hình trong ATL. Lược đồ hoạt động máy ảo ATL. Kiến trúc QVT. Cấu trúc MDA cho kỹ thuật web.
Quy trình chung của UWE. Quy trình phát triển WebSA. Tổng quan về chuyển đổi mô hình của ActionUWE. Tổng quan về cách tiếp cận trong.
Tổng quan về quy trình chuyển đổi mô hình trong. 31 Siêu mô hình điều hướng (Navigation Metamodel). 34 Siêu mô hình xử lý (Process Metamodel). 35 Siêu mô hình trình bày (Presentation Metamodel).
36 Chuyển đổi từ CIM tới PIM trong UWE. 36 Chuyển đổi mô hình từ PIM san PSM trong UWE. 37 Chuyển đổi Requirements to Content. 37 Mô tả các quy tắc để thêm các hoạt động.
38 Chuyển đổi RequirementsAndContent2Navigation. 39 Chuyển đổi sang mô hình xử lý. 42 Chuyển đổi AvigationAndProcess to Presentation. 43 Chuyển đổi mô hình và mã nguồn tích hợp ràng buộc OCL.
49 Biểu đồ diễn tiến chuyển đổi bất biến trong mô hình xử lý. 50 9 Biểu đồ chuyển đổi tiền điều kiện – hậu điều kiện mô hình xử lý. 51 Biểu đồ chuyển đổi ràng buộc bất biên mô hình trình bày. 54 Use Case meta-model.
58 Activity Diagram Metamodel. 62 Tổng quan phương pháp đề xuất. 63 Biểu đồ Use Cases của MusicPortal. 71 Biểu đồ Activity cho quy trình BuyAlbum.
72 Mô hình nội dung của MusicPortal. 73 Mô hình điều hướng của MusicPortal. 73 Mô hình xử lý của MusicPortal. 74 Mô hình trình bày của MusicPortal.
Chuyển đổi mô hình sang mã nguồn theo MDA. Sinh code trong UWE. Chuyển đổi sang mã nguồn theo mô hình MVC. Các quy tắc cấu thành giải thuật CM2M.
Các quy tắc cấu thành giải thuật PRES2V. Các quy tắc cấu thành giải thuật NM2C. Các quy tắc cấu thành giải thuật PROM2C. Kiến trúc MagicDraw và CODEGER –UWE.
Giao diện công cụ CODEGER –UWE. Mô hình nội dung. Mô hình điều hướng. Mô hình xử lý.
Mô hình trình bày. Mã nguồn sinh ra từ bốn mô hình UWE. Khung ứng dụng Web. Giao diện trang web.
Giao diện tạo mới Contact. Sơ đồ chuyển đổi mô hình và sinh code. Kiến trúc CODEGER –UWE. Quy trình sinh mã nguồn từ mô hình nội dung.
Quy trình sinh mã nguồn từ mô hình điều hướng. Quy trình chuyển đổi sinh mã nguồn từ mô hình xử lý. Quy trình sinh mã JSP từ mô hình trình bày. Biểu đồ use case, mô hình đầu vào của ứng dụng.
Biểu đồ Activity, mô hình đầu vào của ứng dụng. Mô hình nội dung. Mô hình điều hướng. Mô hình xử lý.
Mô hình trình bày. Cấu trúc mã nguồn được sinh tự động. Giao diện web benhthuysan. Kết quả đánh giá thử nghiệm benhthuysan.
Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ
Trích dẫn luận án này
Trần Đình Diễn (2022). Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình [Luận án tiến sĩ, Trường Đại học Bách khoa Hà Nội]. LuanAn.net. https://luanan.net/cong-nghe-thong-tin/ky-thuat-chuyen-doi-mo-hinh-sinh-ma-phat-trien-web-huong-mo-hinh
Câu hỏi thường gặp
Luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" nghiên cứu về vấn đề gì?
Luận án tiến sĩ: Kỹ thuật chuyển đổi mô hình, sinh mã phát triển ứng dụng web hướng mô hình. Tối ưu hóa quy trình.
Luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" được bảo vệ tại trường nào?
Luận án này được bảo vệ tại Trường Đại học Bách khoa Hà Nội. Năm bảo vệ: 2022.
Luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" thuộc chuyên ngành gì?
Luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" thuộc chuyên ngành Kỹ thuật phần mềm. Danh mục: Công Nghệ Thông Tin.
Luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" có bao nhiêu trang?
Luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" có 153 trang. Bạn có thể xem trước một phần tài liệu ngay trên trang web trước khi tải về.
Cách tải luận án "Chuyển đổi mô hình & sinh mã phát triển web hướng mô hình" về máy như thế nào?
Để tải luận án về máy, bạn nhấn nút "Tải xuống ngay" trên trang này, sau đó hoàn tất thanh toán phí lưu trữ. File sẽ được tải xuống ngay sau khi thanh toán thành công. Hỗ trợ qua Zalo: 0559 297 239.