Tổng quan nghiên cứu

Trong kỹ nghệ phần mềm hiện đại, phương pháp phát triển phần mềm dựa trên thành phần đóng vai trò nền tảng giúp tái sử dụng mã nguồn, rút ngắn thời gian phát triển và nâng cao chất lượng sản phẩm. Tuy nhiên, thách thức lớn nhất của mô hình này là đảm bảo tính đúng đắn khi ghép nối các thành phần độc lập từ nhiều nhà cung cấp khác nhau mà không phát sinh lỗi tương tranh. Kỹ thuật kiểm chứng mô hình truyền thống thường gặp phải hiện tượng bùng nổ không gian trạng thái khi quy mô hệ thống tăng lên, khiến việc kiểm tra toàn bộ trở nên bất khả thi.

Để giải quyết triệt để vấn đề này, luận văn thạc sĩ chuyên ngành Khoa học máy tính (mã số 60480101) của tác giả Đào Anh Hiển, thực hiện dưới sự hướng dẫn khoa học của Phó Giáo sư Tiến sĩ Nguyễn Việt Hà và Tiến sĩ Phạm Ngọc Hùng tại Trường Đại học Công nghệ thuộc Đại học Quốc gia Hà Nội vào năm 2014, với sự hỗ trợ của đề tài nghiên cứu mã số QGTD.01, đã tập trung nghiên cứu giải pháp tối ưu việc sinh giả thiết cho kiểm chứng từng phần.

Mục tiêu cốt lõi của nghiên cứu là đề xuất một thuật toán cải tiến nhằm sinh ra giả thiết có kích thước cực tiểu với chi phí tính toán thấp nhất trong khuôn khổ kiểm chứng đảm bảo giả thiết. Thay vì kiểm tra đồng thời 2 thành phần ghép nối song song, phương pháp chia bài toán thành 2 bước kiểm chứng độc lập. Kết quả nghiên cứu đã tạo ra bước đột phá khi giảm đến 50% số trạng thái của giả thiết so với phương pháp kinh điển của nhóm nghiên cứu NASA, đồng thời rút ngắn thời gian thực thi từ hơn 3.600.000 mili-giây xuống chỉ còn 28 mili-giây trên các ca kiểm thử phức tạp, mang lại giải pháp khả thi để ứng dụng kiểm chứng hình thức vào các hệ thống phần mềm công nghiệp.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên sự kết hợp chặt chẽ giữa 3 trụ cột lý thuyết hình thức trong khoa học máy tính:

Thứ nhất là mô hình Hệ thống chuyển trạng thái có gán nhãn (Labeled Transition Systems - LTS). LTS được biểu diễn dưới dạng bộ 4 thành phần gồm tập trạng thái, bảng chữ cái hành động quan sát được, hàm chuyển trạng thái và trạng thái khởi tạo. Đặc tính an toàn của hệ thống được đặc tả thông qua LTS an toàn, trong đó việc phát hiện lỗi tương đương với việc tìm thấy dẫn xuất đi tới trạng thái lỗi đặc biệt.

Thứ hai là nguyên lý Đảm bảo giả thiết (Assume-Guarantee Reasoning - AGR). Để kiểm chứng hệ thống gồm 2 thành phần ghép nối song song có thỏa mãn thuộc tính an toàn hay không, phương pháp AGR phân rã bài toán thành 2 công thức kiểm chứng riêng biệt: kiểm chứng thành phần thứ nhất thỏa mãn thuộc tính dưới ràng buộc của giả thiết môi trường, và kiểm chứng thành phần thứ hai thỏa mãn giả thiết đó.

Thứ ba là Giải thuật học máy hình thức L* do Angluin khởi xướng và được cải tiến bởi Rivest cùng Schapire, hoạt động dựa trên định lý Myhill-Nerode. Thuật toán này sử dụng bảng quan sát gồm tập tiền tố và tập hậu tố để học ngôn ngữ chính quy thông qua việc tương tác với Người huấn luyện (Teacher) bằng 2 loại câu hỏi: câu hỏi thành viên và câu hỏi tương đương. Luận văn mở rộng miền giá trị của bảng quan sát từ 2 giá trị nhị phân truyền thống sang 3 trạng thái logic gồm đúng, sai và chưa xác định để phục vụ mục đích tìm kiếm giả thiết tối thiểu.

+-------------------------------------------------------------+
|                      TIẾN TRÌNH HỌC L*                     |
+-------------------------------------------------------------+
                              |
                              v
             +----------------------------------+
             | Khởi tạo bảng quan sát ban đầu   |
             +----------------------------------+
                              |
                              v
             +----------------------------------+
             | Gửi câu hỏi kiểm tra thành viên  |
             +----------------------------------+
                              |
                              v
             +----------------------------------+
             | Đóng bảng quan sát (Make Closed) |
             +----------------------------------+
                              |
                              v
             +----------------------------------+
             | Xây dựng ôtomat DFA ứng viên     |
             +----------------------------------+
                              |
                              v
             +----------------------------------+
             | Kiểm tra tương đương & AGR       |
             +----------------------------------+
                   /                      \
             (Thỏa mãn)               (Vi phạm)
                 /                          \
                v                            v
    +-----------------------+    +-----------------------+
    | Xuất giả thiết tối ưu |    | Phân tích phản ví dụ  |
    | & Kết luận kiểm chứng |    | & Cập nhật hậu tố E   |
    +-----------------------+    +-----------------------+

Phương pháp nghiên cứu

Nghiên cứu áp dụng phương pháp tiếp cận kết hợp giữa chứng minh toán học hình thức và phân tích thực nghiệm định lượng trên môi trường máy tính:

Về nguồn dữ liệu và cỡ mẫu thực nghiệm, nghiên cứu đã lựa chọn 9 mô hình hệ thống phần mềm tương tranh tiêu chuẩn với kích thước không gian trạng thái từ 20 đến hơn 100 trạng thái. Tập mẫu bao gồm 5 phiên bản của Hệ thống điều khiển bếp ga (Gas Burner Control System - GOCS), 1 Hệ thống điều khiển hành trình tự động của ô tô, và 3 phiên bản của Hệ thống vào ra tương tác dữ liệu. Phương pháp chọn mẫu là chọn mẫu có chủ đích theo các bộ chuẩn kiểm chứng phần mềm quốc tế nhằm đánh giá toàn diện độ phức tạp từ thấp đến cao.

Lý do lựa chọn phương pháp phân tích: Tác giả xây dựng giải thuật Tìm kiếm theo chiều sâu lặp (Iterative Deepening Depth-First Search - IDDFS) kết hợp tìm kiếm theo chiều sâu giới hạn (DLS) với cấu trúc dữ liệu ngăn xếp. Phương pháp này được chọn vì nó giải quyết triệt để bài toán bùng nổ bộ nhớ của thuật toán tìm kiếm theo chiều rộng (BFS) trước đó, đồng thời tận dụng điều kiện chặn trên là kích thước giả thiết tối ưu không được vượt quá kích thước của thành phần thứ hai.

Toàn bộ thuật toán được cài đặt bằng ngôn ngữ lập trình hàm Objective Caml (OCaml) tích hợp vào bộ công cụ IMAG. Tính đúng đắn của giả thiết sinh ra được kiểm chứng chéo độc lập 100% bằng công cụ phân tích tương tranh LTSA. Timeline nghiên cứu được thực hiện hoàn chỉnh trong vòng 12 tháng từ giai đoạn thiết kế mô hình đến thực nghiệm đo lường chi tiết.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình thực nghiệm đối sánh giữa 3 phương pháp gồm phương pháp cổ điển AG, phương pháp tối thiểu tìm kiếm theo chiều rộng MAG và phương pháp tối ưu cải tiến IMAG đã ghi nhận 3 phát hiện khoa học mang tính quyết định:

Phát hiện thứ nhất: Phương pháp cải tiến IMAG đảm bảo luôn sinh ra giả thiết có kích thước tối thiểu tương đương với phương pháp MAG nhưng vượt trội hoàn toàn so với phương pháp cổ điển AG. Cụ thể, trong mô hình hệ thống Vào - Ra, phương pháp AG sinh ra giả thiết có kích thước 4 trạng thái và 8 hàm chuyển, trong khi IMAG sinh ra giả thiết tối ưu chỉ gồm 2 trạng thái và 4 hàm chuyển, giúp tinh gọn 50% số trạng thái của mô hình giả thiết.

Phát hiện thứ hai: Giải quyết thành công hiện tượng quá tải bộ nhớ và tràn thời gian xử lý. Trong trường hợp kiểm chứng hệ thống bếp ga GOCS phiên bản 3 có không gian trạng thái tích hợp là 100 trạng thái, phương pháp MAG hoàn toàn thất bại do bị tràn bộ nhớ hoặc vượt quá giới hạn thời gian cho phép 3.600.000 mili-giây (tương đương 1 giờ). Ngược lại, công cụ IMAG đã tìm ra giả thiết tối thiểu gồm 5 trạng thái và 7 hàm chuyển chỉ trong vòng 28 mili-giây.

Phát hiện thứ ba: Giảm thiểu độ phức tạp không gian lưu trữ từ cấp số mũ sang tuyến tính. Việc chuyển đổi từ cấu trúc hàng đợi trong BFS sang cấu trúc ngăn xếp trong IDDFS giúp bộ nhớ tiêu thụ chỉ tỷ lệ thuận với độ sâu tối đa của cây tìm kiếm thay vì phải lưu trữ hàng triệu bảng quan sát trung gian.

BẢNG SO SÁNH HIỆU NĂNG THỰC NGHIỆM GIỮA CÁC PHƯƠNG PHÁP
+----------------------+----------+---------------+----------------+-----------------+
| Hệ thống kiểm chứng  | Quy mô   | Thuật toán AG | Thuật toán MAG | Thuật toán IMAG |
|                      | hệ thống | (Cổ điển)     | (Tìm kiếm BFS) | (Đề xuất IDDFS) |
+----------------------+----------+---------------+----------------+-----------------+
| Hệ thống Vào - Ra    | 12 states| |A|=4, 15 ms  | |A|=2, 18 ms   | |A|=2, 10 ms    |
| Hệ thống Ô tô Cruise | 48 states| |A|=3, 22 ms  | |A|=2, 45 ms   | |A|=2, 16 ms    |
| Bếp ga GOCS phiên bản 1| 64 states| |A|=4, 18 ms  | |A|=3, 35 ms   | |A|=3, 14 ms    |
| Bếp ga GOCS phiên bản 3| 100 states| |A|=6, 25 ms  | Không thể chạy | |A|=5, 28 ms    |
+----------------------+----------+---------------+----------------+-----------------+
Ghi chú: |A| đại diện cho số trạng thái của giả thiết sinh ra; ms là thời gian tính bằng mili-giây.

Thảo luận kết quả

Nguyên nhân cốt lõi giúp phương pháp cải tiến đạt hiệu năng vượt trội nằm ở kỹ thuật phân tích phản ví dụ kết hợp với giá trị chưa xác định trong bảng quan sát. Khi thay thế giá trị này bằng hai khả năng đúng hoặc sai, thuật toán tạo ra một cây tìm kiếm các giả thiết tiềm năng. Thuật toán tìm kiếm theo chiều sâu lặp cho phép duyệt không gian trạng thái theo từng mức độ sâu tăng dần từ 0 đến ngưỡng tối đa bằng kích thước của thành phần thứ hai.

Khi so sánh với các nghiên cứu của Cobleigh và các cộng sự tại NASA (năm 2003) hay các nghiên cứu tối ưu hóa của Chaki (năm 2005), phương pháp truyền thống chỉ tập trung học giả thiết môi trường yếu nhất mà không quan tâm đến tính cực tiểu của số trạng thái. Điều này khiến cho giả thiết sinh ra thường chứa các hành vi thừa, làm tăng chi phí cho các phép ghép nối song song ở các bước kiểm chứng tiếp theo.

Dữ liệu thực nghiệm khi được biểu diễn trên biểu đồ phân tán thời gian thực thi cho thấy đường cong hiệu năng của IMAG duy trì ở mức gần như tuyến tính khi quy mô hệ thống tăng từ 12 lên 100 trạng thái. Trong khi đó, đường cong của phương pháp MAG dốc đứng theo quy luật hàm mũ và nhanh chóng chạm ngưỡng giới hạn tài nguyên hệ thống. Điều này chứng minh rằng việc áp dụng chiến lược tìm kiếm IDDFS có giới hạn chặn trên là một hướng đi hoàn toàn đúng đắn và có ý nghĩa ứng dụng thực tiễn to lớn trong ngành kỹ nghệ phần mềm.

Đề xuất và khuyến nghị

Dựa trên các kết quả đạt được, luận văn đưa ra 4 khuyến nghị và giải pháp hành động cụ thể nhằm thúc đẩy việc ứng dụng kiểm chứng mô hình vào thực tế công nghiệp phần mềm:

Thứ nhất, tích hợp công cụ IMAG vào các quy trình tích hợp liên tục và triển khai liên tục (CI/CD) dành cho các doanh nghiệp phát triển phần mềm hướng thành phần. Đơn vị thực hiện là các kỹ sư trưởng và đội ngũ DevOps, mục tiêu hướng tới giảm ít nhất 40% thời gian thực hiện kiểm thử hồi quy đối với các module phần mềm tương tranh phức tạp, với lộ trình triển khai hoàn thiện trong vòng 6 tháng đầu năm.

Thứ hai, mở rộng mô hình kiểm chứng từ bài toán 2 thành phần sang hệ thống đa thành phần với cấu trúc kiểm chứng phân tầng. Nhóm nghiên cứu tại các trường đại học và viện nghiên cứu cần phát triển thuật toán phân rã tự động cây thành phần để xử lý các hệ thống có từ 10 thành phần trở lên, hoàn thành trong khung thời gian 12 tháng.

Thứ ba, cải tiến kỹ thuật phân tích phản ví dụ bằng cách tích hợp các bộ giải thỏa mãn điều kiện tự động (SAT/SMT Solvers). Việc kết hợp này do các chuyên gia khoa học máy tính đảm nhiệm nhằm mục tiêu cắt giảm thêm 25% số lượng câu hỏi thành viên gửi tới Teacher, rút ngắn hơn nữa thời gian sinh giả thiết trong vòng 3 đến 6 tháng.

Thứ tư, chuẩn hóa và công khai bộ cơ sở dữ liệu mẫu gồm 50 ca kiểm thử phần mềm tương tranh chuẩn cho cộng đồng kỹ nghệ phần mềm Việt Nam. Đơn vị chủ trì là các phòng thí nghiệm trọng điểm thuộc Đại học Quốc gia Hà Nội, thực hiện trong vòng 18 tháng nhằm tạo môi trường đối chuẩn khoa học cho các nghiên cứu tiếp theo.

+-------------------------------------------------------------------------+
|                  LỘ TRÌNH TRIỂN KHAI CÁC ĐỀ XUẤT HÀNH ĐỘNG              |
+-------------------------------------------------------------------------+
| [Giai đoạn 1: 0 - 6 tháng]                                              |
| - Tích hợp công cụ IMAG vào đường ống CI/CD của doanh nghiệp            |
| - Tích hợp SAT/SMT Solvers giảm 25% câu hỏi thành viên                  |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
| [Giai đoạn 2: 6 - 12 tháng]                                             |
| - Mở rộng kiểm chứng phân tầng cho hệ thống trên 10 thành phần          |
| - Đạt mốc tối ưu 40% thời gian kiểm thử hồi quy hệ thống tương tranh    |
+-------------------------------------------------------------------------+
                                    |
                                    v
+-------------------------------------------------------------------------+
| [Giai đoạn 3: 12 - 18 tháng]                                            |
| - Xây dựng và công bố kho 50 ca kiểm thử chuẩn cấp quốc gia             |
| - Hoàn thiện tài liệu hướng dẫn chuyển giao công nghệ cho doanh nghiệp  |
+-------------------------------------------------------------------------+

Đối tượng nên tham khảo luận văn

Nội dung và kết quả nghiên cứu của luận văn mang lại giá trị học thuật và ứng dụng thực tiễn cao cho 4 nhóm đối tượng chính:

Nhóm thứ nhất: Các kỹ sư đảm bảo chất lượng phần mềm và chuyên gia kiểm thử tự động (QA/QC Engineers). Nghiên cứu cung cấp phương pháp luận chặt chẽ để tự động hóa việc phát hiện các lỗi tương tranh, deadlock và vi phạm thuộc tính an toàn mà các phương pháp kiểm thử hộp đen thông thường bỏ sót, giúp tiết kiệm từ 30% đến 50% chi phí kiểm thử hệ thống.

Nhóm thứ hai: Các kiến trúc sư hệ thống phần mềm nhúng, phần mềm điều khiển thời gian thực và IoT. Tài liệu này cung cấp công cụ toán học chính xác để kiểm chứng tính an toàn của các module điều khiển độc lập trước khi tích hợp vào hệ thống tổng thể, đảm bảo độ tin cậy 100% cho các thiết bị quan trọng như ô tô tự hành, thiết bị y tế hay hệ thống điều khiển tự động.

Nhóm thứ ba: Giảng viên, học viên cao học và nghiên cứu sinh chuyên ngành Khoa học máy tính và Kỹ nghệ phần mềm. Luận văn là tài liệu tham khảo mẫu mực về kỹ thuật kiểm chứng mô hình, giải thuật học máy lý thuyết L*, và phương pháp biểu diễn hệ thống chuyển trạng thái có gán nhãn LTS.

Nhóm thứ tư: Các nhà phát triển công cụ hỗ trợ phát triển phần mềm (CASE Tools Developers). Các thuật toán được trình bày chi tiết dưới dạng mã giả và kiến trúc công cụ IMAG viết trên OCaml là nền tảng trực tiếp để xây dựng các plugin kiểm chứng tự động cho các môi trường phát triển tích hợp (IDE) hiện đại.

Câu hỏi thường gặp

Tại sao giải thuật L* nguyên bản của Angluin không thể sinh ra giả thiết có kích thước tối thiểu cho kiểm chứng từng phần?

Giải thuật L* nguyên bản được thiết kế để học ngôn ngữ chính quy của giả thiết yếu nhất thông qua bảng quan sát nhị phân. Khi một chuỗi hành động thuộc ngôn ngữ yếu nhất nhưng không nhất thiết phải có trong giả thiết tối thiểu, phương pháp cổ điển vẫn gán giá trị đúng. Do đó, giả thiết sinh ra chứa nhiều trạng thái dư thừa, dẫn đến việc kích thước giả thiết lớn hơn khoảng 50% so với mức tối ưu cần thiết.

Sự khác biệt cốt lõi giữa phương pháp IMAG trong luận văn và phương pháp MAG trước đó là gì?

Phương pháp MAG sử dụng thuật toán tìm kiếm theo chiều rộng duyệt toàn bộ không gian các bảng quan sát con, đòi hỏi hàng đợi lưu trữ bùng nổ theo hàm mũ. Trong khi đó, IMAG sử dụng chiến lược tìm kiếm theo chiều sâu lặp với ngăn xếp, chỉ lưu vết đường đi hiện tại nên tiết kiệm hơn 90% bộ nhớ và giảm độ phức tạp không gian về mức tuyến tính theo độ sâu tìm kiếm.

Tại sao nghiên cứu lại đặt ra giới hạn chặn trên cho kích thước giả thiết bằng kích thước của thành phần thứ hai?

Trong phương pháp kiểm chứng đảm bảo giả thiết, mục đích chính là giảm chi phí kiểm chứng so với việc ghép nối trực tiếp. Nếu kích thước giả thiết sinh ra lớn hơn kích thước của thành phần thứ hai, việc kiểm chứng riêng rẽ không còn mang lại lợi thế về mặt hiệu năng. Do đó, chặn trên này giúp thuật toán cắt tỉa sớm 100% các nhánh tìm kiếm không hiệu quả.

Làm thế nào để chứng minh tính đúng đắn của giả thiết được sinh ra bởi công cụ IMAG?

Tính đúng đắn được chứng minh toán học qua định lý dừng và định lý thỏa mãn 2 bước của luật đảm bảo giả thiết. Trong thực nghiệm, tác giả sử dụng công cụ kiểm chứng chuẩn quốc tế LTSA để kiểm tra độc lập: nếu phép ghép nối song song giữa giả thiết với thành phần thứ nhất và với thành phần thứ hai đều không dẫn tới trạng thái lỗi, tính chính xác được khẳng định tuyệt đối.

Thuật toán cải tiến này có khả năng ứng dụng cho các hệ thống phần mềm lớn trong thực tế hay không?

Hoàn toàn có tính khả thi cao. Kết quả thực nghiệm trên hệ thống điều khiển bếp ga với không gian 100 trạng thái cho thấy IMAG chỉ mất 28 mili-giây để xử lý thành công một ca kiểm thử mà phương pháp cũ bị tắc nghẽn hoàn toàn. Nhờ việc kiểm soát tiêu thụ bộ nhớ tối ưu, thuật toán có khả năng mở rộng tốt cho các module phần mềm quy mô công nghiệp.

Kết luận

Luận văn thạc sĩ của tác giả Đào Anh Hiển đã giải quyết xuất sắc bài toán tối ưu hóa quy trình kiểm chứng mô hình từng phần cho phần mềm hướng thành phần thông qua 5 đóng góp nổi bật:

  • Đề xuất kỹ thuật mở rộng bảng quan sát với 3 giá trị logic, cho phép định nghĩa chính xác không gian tìm kiếm giả thiết tối thiểu.
  • Thiết kế thuật toán tìm kiếm theo chiều sâu lặp IDDFS kết hợp điều kiện chặn trên kích thước, loại bỏ triệt để hiện tượng bùng nổ bộ nhớ.
  • Xây dựng thành công công cụ phần mềm IMAG bằng ngôn ngữ OCaml tích hợp trong bộ công cụ AGTool.
  • Thực nghiệm kiểm chứng trên 9 mô hình hệ thống phức tạp, chứng minh khả năng giảm 50% số trạng thái và tiết kiệm hơn 99% thời gian xử lý so với các phương pháp trước đó.
  • Xác thực tính đúng đắn và độ tin cậy tuyệt đối của phương pháp thông qua công cụ kiểm chứng độc lập LTSA.

Về kế hoạch phát triển tiếp theo trong vòng 12 đến 24 tháng tới, hướng nghiên cứu sẽ tập trung mở rộng giải thuật cho các hệ thống phần mềm hướng dịch vụ phân tán và tự động hóa toàn diện khâu trích xuất mô hình LTS từ mã nguồn Java hoặc C++. Các nhà nghiên cứu, kỹ sư phần mềm và doanh nghiệp công nghệ quan tâm đến giải pháp kiểm chứng mô hình tự động có thể liên hệ và tham khảo chi tiết toàn văn luận văn tại thư viện Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội để ứng dụng trực tiếp vào các dự án phần mềm trọng điểm.