Một số cải tiến phương pháp kiểm chứng giả định đảm bảo cho phần mềm dựa trên thành phần

Luận án tiến sĩ Đại học Yale về cải tiến phương pháp kiểm chứng giả định đảm bảo cho phần mềm dựa trên thành phần. Tối ưu hóa quy trình, nâng cao độ tin cậy.

Trường đại học

Đại học Yale

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Án Tiến Sĩ

2024

157
1
0

Phí lưu trữ

45 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

TÓM TẮT

1. CHƯƠNG 1: CÁC ĐÓNG GÓP CHÍNH CỦA LUẬN ÁN

1.1. BỐ CỤC CỦA LUẬN ÁN

1.2. KIẾN THỨC NỀN TẢNG

1.2.1. Đặc tả và kiểm chứng giả định - đảm bảo cho các hệ thống đặc tả bằng LTS

1.2.2. Hệ thống chuyển trạng thái được gán nhãn

1.2.3. Kiểm chứng giả định - đảm bảo cho các hệ thống đặc tả bằng LTS

1.2.4. Đặc tả và kiểm chứng giả định - đảm bảo cho các hệ thống đặc tả bằng lôgic mệnh đề

1.2.5. Đặc tả hệ thống chuyển trạng thái bằng lôgic mệnh đề

1.2.6. Kiểm chứng giả định - đảm bảo cho các hệ thống đặc tả bằng lôgic mệnh đề

1.2.7. Đặc tả và kiểm chứng giả định - đảm bảo cho các hệ thống có ràng buộc thời gian

1.2.8. Hệ thống chuyển trạng thái có ràng buộc thời gian

1.2.9. Kiểm chứng giả định - đảm bảo cho các hệ thống có ràng buộc thời gian

1.2.10. Mô hình kiểm chứng giả định - đảm bảo

1.3. PHƯƠNG PHÁP SINH GIẢ ĐỊNH NHỎ NHẤT VÀ MẠNH NHẤT CỤC BỘ CHO VIỆC KIỂM CHỨNG PHẦN MỀM DỰA TRÊN THÀNH PHẦN

1.3.1. Các nghiên cứu liên quan

1.3.2. Phương pháp sinh giả định dựa trên thuật toán học L∗

1.3.3. Thuật toán học L∗

1.3.4. Thuật toán sinh giả định sử dụng thuật toán học L∗

1.3.5. Phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ

1.3.6. Phương pháp sinh giả định mạnh nhất cục bộ

1.3.7. Phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ

1.3.8. Thực nghiệm và thảo luận

1.4. PHƯƠNG PHÁP KIỂM CHỨNG HỒI QUY GIẢ ĐỊNH - ĐẢM BẢO CHO PHẦN MỀM TIẾN HÓA

1.4.1. Các nghiên cứu liên quan

1.4.2. Phương pháp sinh giả định dựa trên thuật toán CDNF

1.4.3. Thuật toán CDNF

1.4.4. Thuật toán sinh giả định dựa trên CDNF

1.4.5. Phương pháp sinh giả định yếu nhất cục bộ

1.4.6. Biến thể của thuật toán trả lời các truy vấn thành viên

1.4.7. Thuật toán quay lui sinh giả định yếu nhất cục bộ

1.4.8. Tính đúng đắn

1.4.9. Phương pháp kiểm chứng từng phần cho phần mềm dựa trên thành phần trong ngữ cảnh tiến hóa

1.4.10. Phương pháp kiểm chứng giả định - đảm bảo cho phần mềm trong ngữ cảnh tiến hóa

1.4.11. Ví dụ minh họa

1.4.12. So sánh các thuật toán sinh giả định

1.4.13. Tính hiệu quả của các giả định được sinh ra trong ngữ cảnh tiến hóa

1.5. THỬ NGHIỆM CÀI ĐẶT PHIÊN BẢN MỘT PHA CHO VIỆC KIỂM CHỨNG GIẢ ĐỊNH - ĐẢM BẢO CHO PHẦN MỀM CÓ RÀNG BUỘC THỜI GIAN

1.5.1. Các nghiên cứu liên quan

1.5.2. Phương pháp sinh giả định hai pha

1.5.3. Pha thứ nhất – pha sinh giả định không có ràng buộc thời gian

1.5.4. Pha thứ hai – pha sinh giả định có ràng buộc thời gian

1.5.5. Phiên bản một pha của phương pháp sinh giả định hai pha

1.5.6. Phiên bản một pha của thuật toán sinh giả định

1.5.7. Phiên bản cài đặt các thuật toán thực thi Teacher

1.5.8. Một số vấn đề trong thực tế cài đặt

1.5.9. Ví dụ cho quá trình sinh giả định vô hạn

1.5.10. Tính đúng đắn

1.5.11. Các kết quả đạt được

1.5.12. Hướng phát triển tiếp theo

Tóm tắt

I. Tổng Quan Về Kiểm Chứng Giả Định Cho Phần Mềm CBS

Trong kỷ nguyên công nghệ phần mềm hiện đại, phương pháp phần mềm dựa trên thành phần (CBS) nổi lên như một yếu tố then chốt. CBS giúp tăng hiệu quả, giảm chi phí, và rút ngắn thời gian đưa sản phẩm ra thị trường. Do đó, đảm bảo chất lượng phần mềm thành phần trở nên vô cùng quan trọng. Đối với các phần mềm quan trọng như điều khiển ô tô, tàu hỏa, máy bay, việc kiểm chứng là bắt buộc để đảm bảo các thuộc tính an toàn không bị vi phạm. Có hai hướng tiếp cận chính: chứng minh định lý (bán tự động, tốn kém) và kiểm chứng mô hình (hoàn toàn tự động). Kiểm chứng mô hình duyệt toàn bộ không gian trạng thái. Luận án này tập trung vào việc cải tiến phương pháp kiểm chứng giả định để giải quyết vấn đề bùng nổ không gian trạng thái, như đã nêu trong phần giới thiệu của luận án tiến sĩ từ Đại học Yale.

1.1. Lợi Ích của Phần Mềm Dựa Trên Thành Phần CBS

Phương pháp phần mềm dựa trên thành phần mang lại nhiều lợi ích quan trọng. Tăng hiệu quả phát triển phần mềm, giảm chi phí sản xuất. Rút ngắn thời gian đưa sản phẩm ra thị trường, tăng khả năng bảo trì và nâng cấp hệ thống. CBS đã trở thành một xu hướng chủ đạo trong ngành công nghiệp phần mềm. Luận án tiến sĩ này nghiên cứu sâu hơn về cách đảm bảo chất lượng của các hệ thống CBS.

1.2. Vấn Đề Bùng Nổ Không Gian Trạng Thái Trong Kiểm Chứng Mô Hình

Kiểm chứng mô hình duyệt toàn bộ không gian trạng thái của phần mềm. Cách tiếp cận này gặp phải vấn đề bùng nổ không gian trạng thái với các hệ thống lớn. Khi hệ thống càng phức tạp, số lượng trạng thái cần kiểm tra tăng theo cấp số nhân, làm cho quá trình kiểm chứng trở nên không khả thi. Kiểm chứng giả định được đề xuất như một giải pháp để giảm thiểu vấn đề này.

II. Thách Thức Kiểm Chứng Phần Mềm Thành Phần Hiệu Quả

Mặc dù tiềm năng lớn, các nghiên cứu hiện tại cho thấy nhiều vấn đề tồn tại trong phương pháp kiểm chứng giả định. Những vấn đề này cản trở việc áp dụng rộng rãi phương pháp này trong thực tế. Luận án này đề xuất các phương pháp giải quyết một số vấn đề của quá trình kiểm chứng cho phần mềm được đặc tả bằng nhiều loại đặc tả khác nhau, như LTS và logic mệnh đề. Đồng thời, luận án xem xét ngữ cảnh tiến hóa của phần mềm, khi các thành phần thay đổi theo thời gian. Mục tiêu là cải thiện tính hiệu quả và khả năng áp dụng của phương pháp kiểm chứng giả định, như được trình bày chi tiết trong luận án tiến sĩ.

2.1. Các Loại Đặc Tả Phần Mềm Ảnh Hưởng Đến Kiểm Chứng

Phần mềm có thể được đặc tả bằng nhiều phương pháp khác nhau, như hệ chuyển trạng thái được gán nhãn (LTS), logic mệnh đề và ô-tô-mát ghi sự kiện. Mỗi phương pháp đặc tả có ưu và nhược điểm riêng, ảnh hưởng đến quá trình kiểm chứng. Luận án này nghiên cứu các phương pháp kiểm chứng phù hợp với từng loại đặc tả, nhằm đạt được hiệu quả cao nhất.

2.2. Kiểm Chứng Phần Mềm Trong Ngữ Cảnh Tiến Hóa

Phần mềm thường xuyên trải qua quá trình tiến hóa, với các thành phần được thay đổi hoặc cập nhật. Việc kiểm chứng lại phần mềm sau mỗi lần thay đổi có thể tốn kém. Luận án này đề xuất các phương pháp giảm thiểu chi phí kiểm chứng trong ngữ cảnh tiến hóa. Bằng cách tái sử dụng các kết quả kiểm chứng trước đó và sinh ra các giả định phù hợp.

III. Cách Sinh Giả Định Nhỏ Nhất Cho Phần Mềm CBS Đặc Tả LTS

Luận án đề xuất phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ cho bài toán kiểm chứng giả định đảm bảo các phần mềm dựa trên thành phần đặc tả bằng hệ chuyển trạng thái được gán nhãn (LTS). Các giả định này góp phần giảm chi phí tính toán sinh lại giả định mới và giảm không gian trạng thái khi kiểm chứng các phần mềm tiến hóa. Ý tưởng chính là sử dụng một biến thể của phương pháp trả lời các truy vấn thành viên được đề xuất bởi Cobleigh và cộng sự [29]. Biến thể này được tích hợp trong thuật toán đề xuất để sinh được các giả định nhỏ nhất và mạnh nhất cục bộ.

3.1. Thuật Toán Học L Trong Sinh Giả Định

Thuật toán L* là một thuật toán học ngôn ngữ chính quy. Nó được sử dụng rộng rãi trong kiểm chứng giả định. Thuật toán L* tương tác với hai thực thể: Learner (người học) và Teacher (người dạy). Learner đưa ra các truy vấn, Teacher cung cấp phản hồi để Learner học được ngôn ngữ mục tiêu. Luận án này sử dụng một biến thể của thuật toán L* để sinh giả định hiệu quả hơn.

3.2. Giảm Chi Phí Tính Toán Với Giả Định Nhỏ Nhất

Việc sinh giả định có thể tốn kém về mặt tính toán. Luận án này đề xuất phương pháp sinh ra các giả định nhỏ nhất và mạnh nhất cục bộ. Các giả định này giúp giảm chi phí tính toán sinh lại giả định mới khi phần mềm tiến hóa. Đồng thời, giả định nhỏ nhất giúp giảm không gian trạng thái cần kiểm tra.

IV. Hướng Dẫn Kiểm Chứng Hồi Quy Giả Định Cho Phần Mềm Tiến Hóa

Luận án đề xuất phương pháp sinh giả định yếu nhất cục bộ và phương pháp sử dụng các giả định đó để giảm số lần sinh lại giả định khi kiểm chứng giả định đảm bảo phần mềm được đặc tả bằng logic mệnh đề trong ngữ cảnh tiến hóa. Để làm việc này, luận án đề xuất một biến thể của thuật toán trả lời các truy vấn thành viên được đề xuất bởi Chen và cộng sự. Biến thể này được tích hợp trong thuật toán quay lui sinh giả định yếu nhất cục bộ khi kiểm chứng. Việc này giúp giảm chi phí cho quá trình kiểm chứng các phần mềm trong ngữ cảnh tiến hóa phần mềm.

4.1. Thuật Toán CDNF Trong Kiểm Chứng Phần Mềm

Thuật toán CDNF (Conjunction of Disjunctive Normal Form) là một thuật toán học hàm logic. Được sử dụng để sinh giả định cho phần mềm đặc tả bằng logic mệnh đề. So với thuật toán L*, thuật toán CDNF có thể sinh ra các giả định nhỏ hơn và nhanh hơn trong một số trường hợp. Luận án này sử dụng thuật toán CDNF để cải thiện hiệu quả kiểm chứng.

4.2. Giảm Số Lần Sinh Lại Giả Định Trong Tiến Hóa Phần Mềm

Khi phần mềm tiến hóa, các thành phần thay đổi, có thể làm cho các giả định cũ không còn hợp lệ. Việc sinh lại giả định có thể tốn kém. Luận án này đề xuất một phương pháp sử dụng các giả định yếu nhất cục bộ. Nhằm giảm thiểu số lần sinh lại giả định trong quá trình kiểm chứng. Điều này giúp tiết kiệm thời gian và tài nguyên.

V. Thực Nghiệm Phiên Bản Một Pha Kiểm Chứng Giả Định Thời Gian

Luận án thực nghiệm cài đặt phiên bản một pha cho phương pháp kiểm chứng giả định đảm bảo hai pha được đề xuất bởi Lin và cộng sự cho phần mềm dựa trên thành phần có ràng buộc thời gian. Phiên bản này loại bỏ pha sinh giả định không có thời gian từ quá trình kiểm chứng. Luận án cũng trình bày một số vấn đề phát sinh và phương pháp xử lý trong quá trình cài đặt phương pháp kiểm chứng trong thực tế. Công cụ hỗ trợ đã được cài đặt và thực nghiệm với một số hệ thống phổ biến trong cộng đồng nghiên cứu và cho các kết quả khả quan.

5.1. Phương Pháp Kiểm Chứng Giả Định Hai Pha

Phương pháp kiểm chứng giả định hai pha được đề xuất để xử lý các hệ thống có ràng buộc thời gian. Pha thứ nhất sinh giả định không có thời gian, pha thứ hai sinh giả định có thời gian. Luận án này đề xuất một phiên bản một pha, loại bỏ pha thứ nhất. Giúp đơn giản hóa quá trình kiểm chứng.

5.2. Kết Quả Thực Nghiệm Và Đánh Giá

Công cụ hỗ trợ đã được cài đặt và thực nghiệm với một số hệ thống phổ biến trong cộng đồng nghiên cứu. Kết quả cho thấy phiên bản một pha có hiệu quả tương đương hoặc tốt hơn so với phiên bản hai pha trong một số trường hợp. Điều này chứng minh tính khả thi và tiềm năng của phương pháp đề xuất.

VI. Giá Trị Hướng Phát Triển Của Kiểm Chứng Phần Mềm CBS

Các đề xuất của luận án đóng góp các giải pháp về mặt lý thuyết và công cụ hỗ trợ. Nhằm nâng cao hiệu quả của phương pháp kiểm chứng giả định đảm bảo. Góp phần làm cho các phương pháp kiểm chứng mô hình dễ dàng được áp dụng hơn trong thực tiễn. Luận án góp phần nâng cao chất lượng trong công nghiệp phần mềm nói chung và trong cộng đồng nghiên cứu nói riêng. Cần tiếp tục nghiên cứu để ứng dụng rộng rãi các kết quả này.

6.1. Ứng Dụng Trong Công Nghiệp Phần Mềm

Các phương pháp và công cụ được phát triển trong luận án có thể được ứng dụng trong công nghiệp phần mềm. Giúp đảm bảo chất lượng của các hệ thống phần mềm dựa trên thành phần phức tạp. Đặc biệt, các phương pháp kiểm chứng hiệu quả hơn có thể giúp giảm chi phí phát triển và bảo trì phần mềm.

6.2. Hướng Nghiên Cứu Tiếp Theo

Luận án này mở ra nhiều hướng nghiên cứu tiếp theo. Bao gồm việc mở rộng các phương pháp kiểm chứng cho các loại đặc tả phần mềm khác nhau. Phát triển các công cụ kiểm chứng tự động và hiệu quả hơn. Nghiên cứu các phương pháp kiểm chứng trong ngữ cảnh phát triển phần mềm linh hoạt (Agile).

15/05/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề Trong ba thập kỷ vừa qua, công nghệ phần mềm dựa trên thành phần (Component-Based Software Engineering - CBSE) nổi lên như một cách tiếp cận quan trọng trong công nghệ phần mềm vì các đặc tính cả về nghiệp vụ và kỹ thuật của nó như: tăng hiệu quả, giảm chi phí, rút ngắn thời gian đưa sản phẩm ra thị trường, tăng khả năng bảo trì, v. Từ đó, việc đảm bảo chất lượng cho các phần mềm dựa trên thành phần (Component-Based Software - CBS) đóng vai trò sống còn trong vòng đời phát triển của chúng do yêu cầu ngày càng tăng về chất lượng. Với các sản phẩm phần mềm quan trọng có yêu cầu chất lượng cao như các phần mềm điều khiển ô tô, tàu hỏa, máy bay, v., các phần mềm này được yêu cầu thỏa mãn một số thuộc tính (thuộc tính được nghiên cứu trong luận án này là thuộc tính an toàn) cho trước, kiểm chứng là bắt buộc để đảm bảo thuộc tính đã cho không bị vi phạm trong toàn bộ thời gian hoạt động của chúng. Có hai hướng tiếp cận chính nhằm giải quyết vấn đề này gồm: hướng tiếp cận chứng minh định lý (theorem proving) là hướng tiếp cận bán tự động, đòi hỏi có sự tham gia của các chuyên gia trong quá trình kiểm chứng [31, 35, 53, 60, 61, 95], cần nhiều công sức và chi phí [9] và hướng tiếp cận kiểm chứng mô hình (model checking) là hướng tiếp cận hoàn toàn tự động [12].

Trong hai hướng tiếp cận này, hướng tiếp cận kiểm chứng mô hình [24, 25, 27, 54, 90] nhận được sự quan tâm đặc biệt trong cộng đồng nghiên cứu và trong công nghiệp phần mềm vì tính tự động hoàn toàn của nó. Kiểm chứng mô hình là hướng tiếp cận vét cạn thông qua việc duyệt qua toàn bộ không gian trạng thái của phần mềm để kiểm tra xem phần mềm có vi phạm thuộc tính 1 đã cho hay không. Nếu không có sự vi phạm nào, hệ thống ban đầu thỏa mãn thuộc tính đã cho. Ngược lại, một minh chứng về sự vi phạm sẽ được trả lại.

Vì đặc tính vét cạn không gian trạng thái của hệ thống cần kiểm chứng, hướng tiếp cận này gặp vấn đề về sự bùng nổ không gian trạng thái đối với các hệ thống lớn [24, 26, 90]. Để tận dụng được những ưu điểm của kiểm chứng mô hình và giải quyết vấn đề về bùng nổ không gian trạng thái, phương pháp kiểm chứng giả định - đảm bảo (Assume-Guarantee Verification - AGV) đã được đề xuất [23, 44, 52, 81, 88]. Kiểm chứng giả định-đảm bảo là phương pháp kiểm chứng dựa trên chiến lược chia để trị. Trong đó, hệ thống phần mềm lớn được chia thành các thành phần nhỏ hơn để kiểm chứng.

Từ đó, quá trình kiểm chứng kết luận rằng hệ thống tổng thể có thỏa mãn thuộc tính đã cho hay không mà không phải ghép nối toàn bộ các thành phần lại với nhau. Trong phương pháp kiểm chứng giả định - đảm bảo, có hai phương pháp lập luận: giả định - đảm bảo quay vòng (Circular Assume - Guarantee Reasoning - CIRC-AG) [3, 64, 75, 77, 78, 84] và giả định - đảm bảo không quay vòng (Non- Circular Assume - Guarantee Reasoning - NC-AG) [5, 21, 23, 41, 44, 68, 76, 96]. Trong luận án này, thuật ngữ “kiểm chứng giả định - đảm bảo quay vòng” và “kiểm chứng giả định - đảm bảo không quay vòng” được sử dụng lần lượt để chỉ “phương pháp kiểm chứng sử dụng lập luận quay vòng” và “phương pháp kiểm chứng sử dụng lập luận không quay vòng”. Sau này, phương pháp kiểm chứng giả định - đảm bảo không quay vòng được mở rộng, áp dụng cho các hệ thống được đặc tả bằng nhiều phương pháp khác nhau như: hệ chuyển trạng thái được gán nhãn (Labelled Transition Systems - LTS) [18, 22, 29, 41, 45, 46, 55, 56, 57, 58, 86], hệ thống có ràng buộc thời gian (timed systems) [68, 69], hệ thống chuyển trạng thái được đặc tả bằng lôgic mệnh đề [21, 48, 94], hệ thống chuyển trạng thái tượng trưng (symbolic transition systems) [6, 49, 82, 83], các hệ thống có yếu tố xác suất (probalistic systems) [16, 20, 37, 62], v.

Bài toán quan trọng nhất trong phương pháp kiểm chứng giả định - đảm bảo là làm sao để sinh được giả định. Để giải quyết vấn đề này, các phương pháp hiện nay đều dựa vào các thuật toán học ngôn ngữ chính quy thông qua sự tương tác của hai thực thể Learner và T eacher. Tùy vào loại hệ thống (có hoặc không có ràng buộc thời gian) và tùy vào phương pháp đặc tả được sử dụng (đặc tả bằng hệ chuyển trạng thái được gán nhãn, lôgic mệnh đề, và ô-tô-mát ghi sự kiện, v.), thuật toán sinh giả định sẽ được lựa chọn tương ứng (L∗ [8, 91], và 2 CDNF (Conjunction of Disjunctive Normal Form) [15, 21], T L∗ [68, 69], v. Mặc dù tồn tại nhiều phương pháp kiểm chứng giả định - đảm bảo, các phương pháp này đều có những ưu và nhược điểm nhất định.

Tổng quan về phương pháp kiểm chứng giả định - đảm bảo và các vấn đề còn tồn tại được trình bày trong Hình 1. Trong luận án này, phần mềm được đặc tả bằng các dạng đặc tả khác nhau như LTS, lôgic mệnh đề, và ô-tô-mát ghi sự kiện và thuộc tính được kiểm chứng là thuộc tính an toàn. Kiểm chứng M’ Tăng tốc độ hiệu quả? kiểm chứng? Mô hình phần mềm tiến hóa · Yes + giả định A · No + phản ví dụ cex Mô hình phần mềm Bùng nổ Kiểm chứng M với các không gian trạng thái? LTS Lôgic mệnh đề ERA loại đặc tả khác nhau? Hình 1.1: Tổng quan về phương pháp kiểm chứng giả định - đảm bảo và các vấn đề còn tồn tại. Phương pháp kiểm chứng giả định - đảm bảo cho hệ thống chuyển trạng thái được gán nhãn là phương pháp phổ biến nhất trong cộng đồng nghiên cứu cũng như trong việc áp dụng trong công nghiệp.

Trong phương pháp này, các luật kiểm chứng giả định - đảm bảo cho thấy rằng bản chất của bài toán kiểm chứng là bài toán bao của các ngôn ngữ và độ phức tạp của quá trình kiểm chứng tỉ lệ thuận với số trạng thái của giả định được sinh ra [100]. Theo đó, chi phí của quá trình kiểm chứng (chi phí được đề cập trong luận án này là chi phí về thời gian), đặc biệt trong ngữ cảnh tiến hóa (từ phần mềm M thành M 0 ), có thể nhỏ hơn nếu sử dụng giả định có số trạng thái và ngôn ngữ nhỏ hơn. Để sinh giả định cho bài toán kiểm chứng giả định - đảm bảo cho các hệ thống được đặc tả bằng LTS, Giannakopoulou và cộng sự là nhóm tác giả đầu tiên chỉ ra sự tồn tại của giả định yếu nhất (giả định có ngôn ngữ lớn nhất) trong kiểm chứng giả định - đảm bảo [41, 87]. Tiếp đó, Cobleigh và cộng sự đề xuất sử dụng thuật toán L∗ [8, 91] sinh giả định cho bài toán kiểm chứng giả định - đảm bảo [29].

Sau Cobleigh, có nhiều nghiên cứu mở rộng, cải tiến, tối ưu 3 cũng như áp dụng kết quả của Cobleigh cho nhiều ngữ cảnh khác của việc kiểm chứng phần mềm [10, 39, 87, 22, 28, 93, 17, 18, 19, 46, 38, 101, 86, 55, 57, 58]. Mặc dù vậy, vẫn chưa có nghiên cứu nào đề xuất phương pháp sinh giả định nhỏ nhất và mạnh nhất để giảm chi phí kiểm chứng phần mềm trong ngữ cảnh tiến hóa (tăng hiệu quả, tốc độ kiểm chứng M 0 ). Phương pháp kiểm chứng giả định - đảm bảo sử dụng đặc tả bằng LTS là phương pháp phổ biến và thường được áp dụng cho các hệ thống được đặc tả ở mức cao, như mức thiết kế, dưới dạng các hệ thống chuyển trạng thái. Tuy nhiên, độ phức tạp của nó vẫn rất cao.

Vì vậy, trường hợp hệ thống được đặc tả ở mức thấp hơn dưới dạng lôgic mệnh đề, một số nghiên cứu khác đã sử dụng phương pháp kiểm chứng được đề xuất bởi Chen và cộng sự để giảm độ phức tạp của quá trình kiểm chứng [21, 48]. Các thuật toán kiểm chứng giả định - đảm bảo sử dụng đặc tả bằng lôgic mệnh đề có những ưu điểm vượt trội so với các thuật toán sử dụng đặc tả bằng ô-tô-mát. Thứ nhất, về khả năng biểu diễn, đặc tả bằng lôgic mệnh đề tương đương với đặc tả bằng ô-tô-mát không đơn định và nó có thể biểu diễn súc tích hơn nhiều lần so với đặc tả bằng ô-tô-mát. Do đó, các thuật toán kiểm chứng sử dụng đặc tả bằng lôgic mệnh đề sinh các giả định có số trạng thái ít hơn nhiều lần các giả định sinh bởi các phương pháp sử dụng thuật toán L∗.

Thứ hai, xét về tốc độ thì thuật toán sinh giả định sử dụng đặc tả bằng lôgic mệnh đề sử dụng các thuật toán như CDNF [15], v. có tốc độ tốt hơn các thuật toán kiểm chứng sử dụng thuật toán L∗ [21]. Năm 2007, Sinha và cộng sự đã đề xuất sử dụng bộ giải nhằm kiểm tra tính thỏa mãn của hàm lôgic (SAT solver) cho bài toán kiểm chứng giả định - đảm bảo với các hệ thống được đặc tả bằng lôgic mệnh đề [94]. Năm 2010, Chen và cộng sự đã đề xuất áp dụng thuật toán CDNF được đề xuất bởi Bshouty [15] cho bài toán kiểm chứng giả định - đảm bảo cho hệ thống chuyển trạng thái được đặc tả bằng lôgic mệnh đề [21].

Sau Chen, năm 2016, He và cộng sự đã đề xuất một phương pháp sinh giả định có tốc độ nhanh và hiệu quả sử dụng thuật toán CDNF để sinh các giả định trong quá trình kiểm chứng giả định - đảm bảo cho hệ thống phần mềm được đặc tả bằng lôgic mệnh đề [48]. Sau đó, phương pháp này được áp dụng cho việc kiểm chứng hồi quy cho phần mềm tiến hóa. Tuy nhiên, trong ngữ cảnh tiến hóa phần mềm, thuật toán vẫn cần sinh lại giả định trong tất cả các trường hợp dù chỉ có sự thay đổi nhỏ trong các thành phần của phần mềm ban đầu. 4 Trong phát triển phần mềm nói chung, ngoài các phần mềm không có ràng buộc thời gian được đặc tả bằng LTS hoặc lôgic mệnh đề, v.v, các hệ thống có ràng buộc thời gian cũng nhận được sự quan tâm đặc biệt của cộng đồng nghiên cứu và trong công nghiệp.

Do đó, việc kiểm chứng các phần mềm này trở thành một xu hướng tất yếu do các đòi hỏi về chất lượng của các hệ thống thời gian thực ngày càng cao và trong nhiều lĩnh vực của đời sống xã hội như Internet vạn vật, khoa học vũ trụ, v. Một trong các phương pháp đặc tả các hệ thống có ràng buộc thời gian là sử dụng các ô-tô-mát ghi sự kiện (Event - Recording Automata - ERA) [4].

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Luận án tiến sĩ "Cải tiến Phương Pháp Kiểm Chứng Giả Định Đảm Bảo cho Phần Mềm Dựa Trên Thành Phần" tập trung giải quyết bài toán kiểm chứng tính đúng đắn và an toàn của phần mềm được xây dựng từ các thành phần (component-based software). Luận án đề xuất các phương pháp cải tiến nhằm nâng cao độ tin cậy của quá trình kiểm chứng, đặc biệt là trong việc xử lý các giả định (assumptions) liên quan đến tương tác giữa các thành phần. Việc này giúp giảm thiểu rủi ro lỗi trong quá trình tích hợp và vận hành phần mềm.

Nghiên cứu này đặc biệt hữu ích cho các nhà phát triển phần mềm, kỹ sư kiểm thử và các nhà nghiên cứu trong lĩnh vực kỹ thuật phần mềm, giúp họ hiểu sâu hơn về các thách thức và giải pháp trong việc đảm bảo chất lượng phần mềm dựa trên thành phần. Nó cung cấp một cái nhìn chi tiết về cách quản lý và kiểm chứng các giả định để đảm bảo phần mềm hoạt động chính xác và an toàn.

Để hiểu rõ hơn về các phương pháp tiếp cận khác trong lĩnh vực xác thực phần mềm, bạn có thể tham khảo tài liệu Mô hình xác thực nghiệp vụ phần mềm theo hướng lập trình đặc tả. Tài liệu này cung cấp một góc nhìn khác về việc sử dụng lập trình đặc tả để xác thực nghiệp vụ phần mềm, bổ sung thêm kiến thức về các kỹ thuật kiểm chứng phần mềm tiên tiến.