Luận án trình bày các nội dung chính sau: Giới thiệu các khái niệm cơ bản được sử dụng trong các nghiên cứu của luận án. Phương pháp sinh giả định nhỏ nhất và mạnh nhất cục bộ; Đề xuất một phương pháp sinh giả định yếu nhất cục bộ và sử dụng giả định đó một cách hiệu quả trong việc kiểm chứng các phần mềm trong ngữ cảnh tiến hóa;...
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ −−−−−−−−−−−−− TRẦN HOÀNG VIỆT KIỂM CHỨNG DỰA TRÊN PHƯƠNG PHÁP GIẢ ĐỊNH – ĐẢM BẢO CHO PHẦN MỀM DỰA TRÊN THÀNH PHẦN TÓM TẮT LUẬN ÁN TIẾN SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ −−−−−−−−−−−−− TRẦN HOÀNG VIỆT KIỂM CHỨNG DỰA TRÊN PHƯƠNG PHÁP GIẢ ĐỊNH – ĐẢM BẢO CHO PHẦN MỀM DỰA TRÊN THÀNH PHẦN Chuyên ngành: Kỹ Thuật Phần Mềm Mã số: 9480103.01 TĨM TẮT LUẬN ÁN TIẾN SĨ NGÀNH CƠNG NGHỆ THƠNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS Phạm Ngọc Hùng TS Võ Đình Hiếu Hà Nội - 2020 Mục lục Giới thiệu 1.1 Đặt vấn đề 1.2 Các đóng góp luận án 1.3 Bố cục luận án Kiến thức tảng 2.1 2.2 2.3 Đặc tả kiểm chứng giả định - đảm bảo cho hệ thống đặc tả LTS 2.1.1 Hệ thống chuyển trạng thái gán nhãn 2.1.2 Kiểm chứng hệ thống chuyển trạng thái gán nhãn Đặc tả kiểm chứng giả định - đảm bảo cho hệ thống đặc tả lôgic mệnh đề 2.2.1 Đặc tả hệ thống chuyển trạng thái lôgic mệnh đề 2.2.2 Kiểm chứng giả định - đảm bảo cho hệ thống đặc tả lôgic mệnh đề Đặc tả kiểm chứng giả định - đảm bảo cho hệ thống có ràng buộc thời gian 2.3.1 Hệ thống chuyển trạng thái có ràng buộc thời gian 2.3.2 Kiểm chứng giả định - đảm bảo cho hệ thống có ràng buộc thời gian Phương pháp sinh giả định nhỏ mạnh cục cho việc kiểm chứng phần mềm dựa thành phần 3.1 Giới thiệu 3.2 Các nghiên cứu liên quan 3.3 Phương pháp sinh giả định dựa thuật toán học L∗ 3.3.1 Thuật toán học L∗ 3.3.2 Thuật toán sinh giả định sử dụng thuật toán học L∗ Phương pháp sinh giả định nhỏ mạnh cục 3.4.1 Phương pháp sinh giả định mạnh cục 3.4.2 Phương pháp sinh giả định nhỏ mạnh cục 3.4 3.5 Thực nghiệm thảo luận 10 3.6 Tổng kết 10 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 4.1 12 Giới thiệu 12 i 4.2 Các nghiên cứu liên quan 13 4.3 Phương pháp sinh giả định dựa thuật toán CDNF 13 4.4 4.5 4.6 4.7 4.3.1 Thuật toán CDNF 13 4.3.2 Thuật toán sinh giả định dựa CDNF 14 Phương pháp sinh giả định yếu cục 14 4.4.1 Biến thể thuật toán trả lời truy vấn thành viên 14 4.4.2 Thuật toán quay lui sinh giả định yếu cục 14 4.4.3 Tính đắn 15 Phương pháp kiểm chứng phần cho phần mềm dựa thành phần tiến hóa 15 4.5.1 Phương pháp kiểm chứng giả định - đảm bảo cho phần mềm tiến hóa 15 4.5.2 Một ví dụ 15 Thực nghiệm 15 4.6.1 So sánh thuật toán sinh giả định 16 4.6.2 Tính hiệu giả định sinh ngữ cảnh tiến hóa 16 4.6.3 Thảo luận 16 Tổng kết 16 Ba cải tiến cho phương pháp kiểm chứng giả định - đảm bảo cho phần mềm có ràng buộc thời gian 18 5.1 Giới thiệu 18 5.2 Các nghiên cứu liên quan 19 5.3 Phương pháp sinh giả định sử dụng trình sinh giả định hai pha 5.4 5.5 19 5.3.1 Pha thứ – pha kiểm chứng khơng có ràng buộc thời gian 20 5.3.2 Pha thứ hai – pha kiểm chứng có ràng buộc thời gian 20 Phương pháp sinh giả định sử dụng trình học pha 21 5.4.1 Ví dụ cho q trình học vơ hạn 21 5.4.2 Thuật toán sinh giả định 21 Các thuật toán thực thi Teacher 21 5.5.1 Thuật toán trả lời truy vấn thành viên 21 5.5.2 Thuật toán trả lời truy vấn ứng viên 22 5.5.3 Tính đắn 22 5.6 Thực nghiệm 22 5.7 Tổng kết 22 Kết luận 23 6.1 Các kết đạt 23 6.2 Hướng phát triển 23 ii Chương Giới thiệu 1.1 Đặt vấn đề Phương pháp kiểm chứng giả định - đảm bảo cho hệ thống chuyển trạng thái gán nhãn (Labelled Transition System - LTS) phương pháp phổ biến cộng đồng nghiên cứu việc áp dụng công nghiệp Trong phương pháp này, từ luật kiểm chứng giả định - đảm bảo, chất tốn kiểm chứng tốn bao ngơn ngữ (M |= p ≡ L(M ) Σp ⊆ L(p)) độ phức tạp trình kiểm chứng tỉ lệ thuận với số trạng thái giả định sinh Theo đó, chi phí q trình kiểm chứng, đặc biệt ngữ cảnh tiến hóa, giảm sử dụng giả định có số trạng thái nhỏ ngôn ngữ nhỏ So với phương pháp kiểm chứng giả định - đảm bảo sử dụng đặc tả LTS, thuật toán kiểm chứng giả định - đảm bảo sử dụng đặc tả lôgic mệnh đề có ưu điểm vượt trội Thứ nhất, khả biểu diễn, đặc tả lôgic mệnh đề tương đương với đặc tả ô-tô-mát không đơn định biểu diễn súc tích nhiều lần so với đặc tả ơ-tơ-mát Do đó, thuật tốn kiểm chứng sử dụng đặc tả lơgic mệnh đề sinh giả định có số trạng thái nhiều lần giả định sinh phương pháp sử dụng thuật toán L∗ Thứ hai, xét tốc độ thuật tốn sinh giả định sử dụng đặc tả lôgic mệnh đề sử dụng thuật tốn CDNF, v.v có tốc độ tốt thuật toán kiểm chứng sử dụng thuật toán L∗ Năm 2010, Chen cộng đề xuất áp dụng thuật toán CDNF đề xuất Bshouty cho toán kiểm chứng giả định - đảm bảo cho hệ thống chuyển trạng thái đặc tả lơgic mệnh đề Trong phát triển phần mềm nói chung, ngồi phần mềm khơng có ràng buộc thời gian đặc tả LTS lôgic mệnh đề, v.v, hệ thống có ràng buộc thời gian nhận quan tâm đặc biệt cộng đồng nghiên cứu cơng nghiệp Do đó, việc kiểm chứng phần mềm trở thành xu hướng tất yếu đòi hỏi chất lượng hệ thống có ràng buộc thời gian ngày cao nhiều lĩnh vực đời sống xã hội Internet vạn vật, khoa học vũ trụ, v.v Một cách đặc tả hệ thống có ràng buộc thời gian sử dụng ô-tô-mát ghi kiện (Event - Recording Automata - ERA) Năm 2014, Lin cộng nhóm tác giả đề xuất toán kiểm chứng giả định đảm bảo cho phần mềm có ràng buộc thời gian đặc tả ơ-tơ-mát ghi kiện sử dụng thuật tốn T L∗ Tuy phương pháp Lin sinh giả định cho toán kiểm chứng giả định - đảm bảo cho phần mềm có ràng buộc thời gian, thuật tốn có độ phức tạp cao nên khó khăn để áp dụng rộng rãi cộng đồng nghiên cứu công nghiệp Từ phân tích trên, luận án có hai mục tiêu Mục tiêu thứ giảm chi phí kiểm chứng phần mềm dựa thành phần theo phương pháp giả định - đảm bảo ngữ cảnh tiến hóa phần mềm Có hai giải pháp để giảm chi phí Giải pháp sinh giả định lần phần mềm tiến hóa với tốc độ nhanh kiểm chứng Giải pháp thứ hai giảm số lần cần phải sinh giả định phần mềm tiến hóa Mục tiêu thứ hai giảm chi phí cải tiến phương pháp kiểm chứng phần mềm có ràng buộc thời gian theo phương pháp giả định - đảm bảo 1.2 Các đóng góp luận án Luận án đạt ba kết sau Thứ nhất, luận án đề xuất phương pháp sinh giả định nhỏ mạnh cục để giảm chi phí tốn kiểm chứng giả định - đảm bảo Một cơng cụ hỗ trợ cài đặt thực nghiệm với số ví dụ điển hình để minh chứng cho tính hiệu phương pháp đề xuất Thứ hai, luận án đề xuất phương pháp kiểm chứng hồi quy giả định - đảm bảo cách hiệu cho phần mềm tiến hóa Biến thể trả lời truy vấn thành viên thuật toán quay lui tích hợp vào phương pháp đề xuất để giảm số lần giả định cần sinh lại kiểm chứng phần mềm tiến hóa Một cơng cụ hỗ trợ cài đặt thực nghiệm với số hệ thống phổ biến cộng đồng nghiên cứu cho kết khả quan Thứ ba, luận án đề xuất ba cải tiến cho phương pháp kiểm chứng giả định - đảm bảo cho hệ thống phần mềm có ràng buộc thời gian Đầu tiên, luận án loại bỏ pha học khơng có thời gian khỏi trình học làm giảm độ phức tạp thời gian trình học Thứ hai, luận án đề xuất dùng giá trị cận thuật toán trả lời truy vấn ứng viên cài đặt Teacher đóng vai trị báo để Teacher trả kết “không biết” cho Learner để ngăn khơng cho q trình học bị lặp vơ hạn Cuối cùng, luận án đề xuất phương pháp phân tích phản ví dụ nhận từ Teacher phương pháp tiền xử lý phản ví dụ trước trả Learner Sự kết hợp hai phương pháp giúp q trình kiểm chứng khơng bị lặp vô hạn nhiều trường hợp tiến gần đến kết kết luận trình học Luận án cài đặt công cụ tiến hành thực nghiệm với số hệ thống phổ biến cho kết tốt 1.3 Bố cục luận án Phần lại luận án cấu trúc sau Chương giới thiệu khái niệm sử dụng nghiên cứu luận án Phương pháp sinh giả định nhỏ mạnh cục trình bày Chương Chương đề xuất phương pháp sinh giả định yếu cục sử dụng giả định cách hiệu việc kiểm chứng phần mềm ngữ cảnh tiến hóa Ba cải tiến cho phương pháp kiểm chứng phần mềm có ràng buộc thời gian trình bày Chương Cuối cùng, tổng kết kết nghiên cứu luận án hướng nghiên cứu trình bày Chương Chương Kiến thức tảng 2.1 Đặc tả kiểm chứng giả định - đảm bảo cho hệ thống đặc tả LTS 2.1.1 Hệ thống chuyển trạng thái gán nhãn Phần trình bày số khái niệm liên quan đến LTS dùng Chương Chương luận án 2.1.2 Kiểm chứng hệ thống chuyển trạng thái gán nhãn Các khái niệm liên quan việc kiểm chứng giả định - đảm bảo cho CBS đặc tả LTS trình bày 2.2 Đặc tả kiểm chứng giả định - đảm bảo cho hệ thống đặc tả lôgic mệnh đề 2.2.1 Đặc tả hệ thống chuyển trạng thái lôgic mệnh đề Trong mục này, luận án trình bày số khái niệm hàm lơgic sử dụng Chương 2.2.2 Kiểm chứng giả định - đảm bảo cho hệ thống đặc tả lơgic mệnh đề Mục trình bày luật kiểm chứng giả định - đảm bảo khơng quay vịng để kiểm chứng cho phần mềm thành phần đặc tả lơgic mệnh đề 2.3 Đặc tả kiểm chứng giả định - đảm bảo cho hệ thống có ràng buộc thời gian 2.3.1 Hệ thống chuyển trạng thái có ràng buộc thời gian Phần trình bày số khái niệm hệ thống chuyển trạng thái có ràng buộc thời gian dùng Chương luận án 2.3.2 Kiểm chứng giả định - đảm bảo cho hệ thống có ràng buộc thời gian Trong mục này, phép toán cốt lõi sử dụng trình kiểm chứng trình bày Phần trình bày thuật toán sinh giả định nhỏ mạnh cục sử dụng biến thể thuật toán trả lời truy vấn thành viên trình bày Mục 3.4.1 Chi tiết thuật tốn trình bày Thuật tốn 3.4 Thuật tốn sử dụng ứng viên cho giả định sinh Thuật tốn 3.1 làm sở cho q trình học Tại bước trình học, bảng quan sát đóng, tồn ứng viên cho giả định sở tương ứng Trong thuật toán coi số kết truy vấn thành viên “ ?” bảng quan sát tương ứng f alse, thuật toán kiểm tra tồn ứng viên cho giả định khác có số trạng thái số trạng thái ứng viên cho giả định sở Nếu tồn tại, ứng viên cho giả định gửi đến Teacher câu truy vấn ứng viên Tính đắn độ phức tạp thuật toán đề xuất chứng minh luận án 3.5 Thực nghiệm thảo luận Luận án tiến hành thực nghiệm để đánh giá, so sánh phương pháp sinh giả định nhỏ mạnh cục trình bày Mục 3.4.2 với Thuật tốn 3.1 trình bày Mục 3.3.2 Kết cho thấy nhiều tiềm ứng dụng phương pháp đề xuất thực tiễn 3.6 Tổng kết Chương trình bày thuật tốn sinh giả định nhỏ mạnh cục nhằm giảm chi phí tính tốn cho tốn kiểm chứng giả định - đảm bảo CBS Thuật toán đề xuất sử dụng biến thể kỹ thuật trả lời câu truy vấn thành viên đề xuất Hùng cộng Chương đưa chứng minh cách hình thức tính đắn phương pháp đề xuất để sinh giả định nhỏ mạnh cục 10 Chương trình bày thực nghiệm để đánh giá so sánh giả định sinh phương pháp đề xuất với giả định sinh phương pháp đề xuất Cobleigh cộng Kết thực nghiệm cho thấy, phương pháp đề xuất cần nhiều thời gian phương pháp Cobleigh lần đầu sinh giả định, giả định sinh giúp giảm cách hiệu không gian trạng thái hệ thống áp dụng Do đó, chi phí tính tốn việc kiểm chứng hệ thống giảm 11 Chương 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 4.1 Giới thiệu Một hai giải pháp để giảm chi phí kiểm chứng phần mềm ngữ cảnh tiến hóa tăng số lần sử dụng lại giả định nhiều Vì phần mềm thay đổi hàng ngày, nên số lần phải sinh lại giả định giảm chi phí kiểm chứng phần mềm thay đổi Hơn nữa, từ phân tích Mục 4.5 phía dưới, giả định yếu (giả định có ngơn ngữ lớn) giúp đạt điều đóng vai trị quan trọng kiểm chứng hồi quy phần mềm thay đổi Mặt khác, chưa có nghiên cứu tiến hành việc sinh giả định có ngơn ngữ yếu sử dụng đặc tả lơgic mệnh đề Do đó, nghiên cứu chương tập trung vào cải tiến thuật toán học Chen cộng sinh giả định yếu cục Các giả định dùng lại cách hiệu để giảm chi phí kiểm chứng hồi quy phần mềm ngữ cảnh tiến hóa phần mềm Để đạt mục tiêu trên, luận án đề xuất biến thể kỹ thuật trả lời truy vấn thành viên cho hai thực thể thuật toán học CDNF ι (hàm khởi tạo) τ (hàm chuyển trạng thái) Dựa vào biến thể này, luận án đề xuất thuật toán học quay lui (thuật tốn LWAG) sinh 12 giả định yếu giả định sinh thuật toán đề xuất Chen cộng (thuật toán CBAG) Điều dẫn đến kết quan trọng ngữ cảnh tiến hóa phần mềm: giả định sinh thuật tốn LWAG giảm số lần cần sinh lại giả định kiểm chứng phần mềm bị thay đổi Biến thể trả lời truy vấn thành viên thuật toán LWAG tích hợp vào phương pháp để giảm số lần giả định cần sinh lại kiểm chứng phần mềm tiến hóa 4.2 Các nghiên cứu liên quan Phần trình bày nghiên cứu liên quan đến việc kiểm chứng giả định - đảm bảo cho phần mềm tiến hóa Tuy nhiên, chưa có nghiên cứu sử dụng giả định yếu cục ngữ cảnh tiến hóa để giảm số lần sinh lại giả định 4.3 Phương pháp sinh giả định dựa thuật toán CDNF 4.3.1 Thuật toán CDNF Gọi X tập biến lôgic λ(X) hàm lơgic tập X CDNF thuật tốn học học biểu diễn xác λ(X) sau số hữu hạn bước học Sử dụng ý tưởng với thuật toán L∗ , CDNF dựa thực thể T eacher (biết λ(X)) thực trình học Thực thể T eacher phải trả lời hai loại truy vấn sau: • M embership queries M EM (v): Cho phép gán v X, λ[v] = T (true), T eacher trả lại yes cho Learner Ngược lại, Teacher trả lại no • Equivalence queries EQ(h): Cho hàm lơgic ứng viên h X, ứng viên h tương đương với hàm cần học λ, T eacher trả lại yes 13 Ngược lại, T eacher trả lại phép gán v X với h[v] = λ[v] Phép gán v đóng vai trị phản ví dụ cho câu truy vấn ứng viên 4.3.2 Thuật toán sinh giả định dựa CDNF Mục trình bày thuật tốn sinh giả định dựa thuật toán CDNF, gọi thuật toán CBAG Thuật toán CBAG sử dụng số thuật toán sau: thuật toán trả lời truy vấn thành viên (thuật toán OMQ); truy vấn ứng viên (thuật toán EQ); thuật tốn kiểm tra phản ví dụ α dùng để sinh ứng viên cho giả định tốt hay α thực phản ví dụ cho M0 M1 |= p (thuật tốn IW) Tính đắn thuật tốn trình bày nghiên cứu Chen cộng Thuật toán sinh giả định ban đầu - CBAG Thuật toán CBAG tạo Learner có hai thực thể thuật toán CDNF, gọi CDN Fι CDN Fτ Hai thực thể tương tác với T eacher có thuật tốn OMQ, EQ, IW cài đặt Tổng quan thuật tốn CBAG trình bày Hình 4.1 4.4 4.4.1 Phương pháp sinh giả định yếu cục Biến thể thuật toán trả lời truy vấn thành viên Luận án giới thiệu thuật toán IMQ, cải tiến thuật toán OMQ Trong thuật toán IMQ, luận án sử dụng ký hiệu question trả cho Learner θ = F , θ ι1 (X1 ) τ1 (X1 , X1 ) Ngược lại, θ = T , thuật toán trả lại yes cho Learner giống với thuật toán OMQ 4.4.2 Thuật toán quay lui sinh giả định yếu cục Phần trình bày thuật tốn quay lui (được gọi thuật toán LWAG) sinh giả định yếu giả định sinh thuật toán CBAG 14 Thuật toán LWAG sử dụng biến thể trả lời truy vấn thành viên thuật tốn IMQ trình bày Hình 4.2 4.4.3 Tính đắn Tính đắn thuật toán LWAG luận án chứng minh Mục 4.4.3 4.5 Phương pháp kiểm chứng phần cho phần mềm dựa thành phần tiến hóa Các giả định sử dụng lại, giả định yếu, đóng vai trị quan trọng việc giảm chi phí kiểm chứng sử dụng phương pháp đề xuất mục 4.5.1 Phương pháp kiểm chứng giả định - đảm bảo cho phần mềm tiến hóa Mục trình bày phương pháp để kiểm chứng CBS ngữ cảnh tiến hóa Phương pháp phát triển dựa phương pháp Hùng cộng 4.5.2 Một ví dụ Mục trình bày ví dụ cho việc sinh giả định sử dụng thuật tốn LWAG phương pháp trình bày Mục 4.5.1 để kiểm chứng hồi quy hệ thống tiến hóa 4.6 Thực nghiệm Các thực nghiệm tiến hành để làm bật hai điểm sau: (i) so sánh thuật tốn CBAG thuật toán LWAG; (ii) so sánh phương pháp Mục 4.5.1 trường hợp sử dụng giả định sinh thuật toán CBAG trường hợp sử dụng giả định sinh thuật toán LWAG 15 sau phần mềm thay đổi 4.6.1 So sánh thuật toán sinh giả định Kết thực nghiệm cho thấy truy vấn thành viên cho hàm khởi tạo, truy vấn thành viên cho hàm chuyển trạng thái hai thuật toán khác nhau; giả định sinh thuật toán LWAG yếu giả định sinh thuật toán CBAG Thuật toán LWAG cần nhiều thời gian dung lượng nhớ sử dụng hai thuật toán tương đương 4.6.2 Tính hiệu giả định sinh ngữ cảnh tiến hóa Kết thực nghiệm cho thấy thuật toán LWAG phương pháp đề xuất giảm số lần giả định cần sinh lại sau M1 tiến hóa cho thấy chúng giảm chi phí kiểm chứng cho CBS thay đổi Việc sử dụng nhớ hai trường hợp (sử dụng giả định sinh thuật toán CBAG thuật toán LWAG) tương đương 4.6.3 Thảo luận Phần đưa thảo luận tính mở rộng khả áp dụng phương pháp đề xuất hệ thống lớn thực tế 4.7 Tổng kết Chương trình bày phương pháp hiệu để kiểm chứng hồi quy giả định - đảm bảo cho phần mềm tiến hóa Phương pháp sử dụng biến thể phương pháp trả lời truy vấn thành viên tích hợp vào thuật tốn LWAG để sinh giả định yếu cục Thuật toán đề xuất giả định yếu cục sinh sử dụng phương pháp đề xuất để kiểm chứng hồi quy cho phần mềm tiến hóa Việc sử dụng 16 giả định giảm số lần sinh lại giả định kiểm chứng hồi quy phần mềm tiến hóa Các kết thực nghiệm cho thấy thuật tốn đề xuất sinh giả định yếu hơn, với chi phí thời gian lớn Thực nghiệm cho thấy việc sử dụng giả định yếu cục làm giả định bắt đầu trình kiểm chứng hồi quy làm giảm đáng kể số lần phải sinh lại giả định kiểm chứng phần mềm tiến hóa Một số thảo luận kết thực nghiệm trình bày chương 17 Chương Ba cải tiến cho phương pháp kiểm chứng giả định - đảm bảo cho phần mềm có ràng buộc thời gian 5.1 Giới thiệu Lin cộng nhóm tác giả đề xuất phương pháp áp dụng kiểm chứng giả định - đảm bảo cho hệ thống có ràng buộc thời gian cách hoàn toàn tự động Phương pháp chứa hai pha sinh giả định, pha sinh giả định giả định ràng buộc thời gian pha hai sinh giả định có ràng buộc thời gian Nếu giả định khơng có ràng buộc thời gian sinh pha sinh giả định đầu tiên, sử dụng làm đầu vào cho pha sinh giả định để sinh giả định có ràng buộc thời gian Tuy nhiên, phương pháp có số hạn chế sau Hạn chế hai pha sinh giả định có độ phức tạp thời gian lớn Điều làm cho phương pháp sinh giả định hai pha có độ phức tạp thời gian lớn Hạn chế thứ hai việc chia q trình học làm hai giai đoạn khơng giúp cho phương pháp bao phủ toàn trường hợp mà giả định sinh Vấn đề tồn có hai dạng luật kiểm chứng giả định - đảm bảo sử dụng kiểm chứng 18 phần mềm: luật giả định - đảm bảo quay vòng (CIRC-AG) đầy đủ; luật giả định - đảm bảo khơng quay vịng (NC-AG) khơng đầy đủ Trong trường hợp tổng quát, tồn vùng mà Teacher khơng biết giả định có tồn hay khơng Xét trường hợp điển hình hệ thống cho M thỏa mãn thuộc tính an tồn cho trước p, Teacher khơng biết giả định thỏa mãn luật NC-AG có tồn hay khơng Q trình sinh giả định nghiên cứu chạy vơ hạn Từ đó, luận án cần thêm hướng dẫn cho Teacher trả lại kết “khơng biết” để Learner dừng q trình học Luận án thực hóa ý tưởng cách thêm giới hạn cận vào thuật toán trả lời truy vấn ứng viên cài đặt Teacher Quá trình sinh giả định trình bày Hình 5.1 5.2 Các nghiên cứu liên quan Phần trình bày nghiên cứu liên quan đến kiểm chứng giả định đảm bảo phần mềm có ràng buộc thời gian 5.3 Phương pháp sinh giả định sử dụng trình sinh giả định hai pha Trong phương pháp sinh giả định đề xuất Lin cộng sự, trình sinh giả định chia thành hai pha Trong hai pha sinh giả định, trình sinh giả định thực thông qua tương tác hai thực thể Learner T eacher Chi tiết phương pháp trình bày Hình 5.2 19 5.3.1 Pha thứ – pha kiểm chứng khơng có ràng buộc thời gian Trong pha này, thuật toán sinh giả định dạng DFA Aut sử dụng phương pháp sinh giả định đề xuất Cobleigh cộng để sinh giả định cho việc kiểm chứng hệ thống khơng có ràng buộc thời gian M ut = M1ut M2ut thuộc tính khơng có ràng buộc thời gian put Nếu pha sinh giả định Aut , Aut dùng pha thứ hai để sinh giả định có ràng buộc thời gian Nếu pha trả lại kết Aut khơng tồn với phản ví dụ π , π sử dụng để kiểm tra xem có phải phản ví dụ thực hay khơng việc kiểm tra biểu thức L(π) ⊆ L(M1 p¯) L(π) ⊆ L(M2) Nếu π thỏa mãn hai biểu thức này, luận án kết luận M |= p Ngược lại, luận án kết luận cần tiến hành pha học có thời gian 5.3.2 Pha thứ hai – pha kiểm chứng có ràng buộc thời gian Pha học thực việc sử dụng thuật toán học T L∗ tương tác với T eacher trả lời hai loại câu truy vấn sau • Truy vấn thành viên (Qm(σ)): Cho từ gác σ , σ thuộc ngôn ngữ giả định A sinh ra, T eacher trả lại yes Ngược lại, T eacher trả lại no • Truy vấn ứng viên (Qc(C)): Cho ứng viên cho giả định C , L(C) ≡ U , với U ngôn ngữ giả định sinh ra, T eacher trả lại yes Ngược lại, T eacher trả lại no với phản ví dụ cex làm chứng cho M = M1 M2 |= p T eacher phân tích cex thấy M thực vi phạm p Nếu sau phân tích cex, T eacher thấy Learner sinh ứng viên cho giả định tốt hơn, T eacher trả lại continue phản ví dụ cex Learner dựa phản ví dụ cex để làm ứng viên cho giả định tốt lên 20 Chi tiết thuật tốn T L∗ trình bày Hình 5.2 5.4 Phương pháp sinh giả định sử dụng trình học pha Khi cài đặt thuật toán sinh giả định hai pha đề xuất Lin cộng sự, cài đặt thuật toán trả lời truy vấn ứng viên đề xuất Teacher cách đơn giản, có nhiều trường hợp q trình sinh giả định chạy vơ hạn Mục trình bày ví dụ cho q trình sinh giả định vơ hạn thuật tốn sinh giả định có chứa kỹ thuật tìm hậu tố t 5.4.1 Ví dụ cho q trình học vơ hạn Mục trình bày ví dụ q trình kiểm chứng chạy vơ hạn với thuật tốn đề xuất Lin cộng cài đặt Learner Teacher 5.4.2 Thuật toán sinh giả định Luận án trình bày thuật tốn có chứa phương pháp phân tích phản ví dụ trả từ Teacher Chi tiết thuật tốn trình bày Thuật tốn 5.1 5.5 5.5.1 Các thuật toán thực thi Teacher Thuật toán trả lời truy vấn thành viên Để trả lời câu truy vấn thành viên từ σ có thuộc vào ngôn ngữ giả định A sinh hay khơng, luận án dựa vào đốn nhận từ gác trình bày Thuật tốn 5.2 σ kiểm tra có thuộc vào ngơn ngữ M1 p Nếu đúng, thuật toán trả no Ngược lại, thuật toán trả yes 21 5.5.2 Thuật toán trả lời truy vấn ứng viên Để kỹ thuật phân tích phản ví dụ trình bày Mục 5.4.2 sử dụng cách hiệu quả, luận án cần biến thể thuật toán trả lời truy vấn ứng viên khơng trả phản ví dụ trả Learner trước Biến thể thuật toán trả lời truy vấn ứng viên đề xuất Lin cộng trình bày Thuật tốn 5.3 5.5.3 Tính đắn Các chứng minh cho tính đắn thuật tốn đề xuất trình bày luận án 5.6 Thực nghiệm Các thực nghiệm tiến hành với số hệ thống quen thuộc cộng đồng nghiên cứu cho kết khả quan phương pháp học giả định pha 5.7 Tổng kết Chương trình bày ba cải tiến cho phương pháp sinh giả định hai pha đề xuất Lin cộng Cải tiến loại bỏ pha sinh giả định khơng có ràng buộc thời gian từ q trình sinh giả định giúp giảm độ phức tạp thời gian trình kiểm chứng Cải tiến thứ hai đưa giới hạn “cận trên” giúp cho Teacher trả lại “không biết” cho Learner để dừng trình học Cuối cùng, chương trình bày kỹ thuật phân tích phản ví dụ từ Teacher phương pháp tiền xử lý phản ví dụ trước trả Learner Cải tiến ngăn trình kiểm chứng khỏi việc chạy vô hạn nhiều trường hợp Các kết thực nghiệm cho thấy cải tiến cho kết tốt thực nghiệm với số hệ thống phổ biến 22 Chương Kết luận 6.1 Các kết đạt Luận án đề xuất hai phương pháp góp phần giảm chi phí kiểm chứng phần mềm dựa thành phần ngữ cảnh tiến hóa phần mềm Thứ nhất, luận án đề xuất phương pháp sinh giả định nhỏ mạnh cục cho trình kiểm chứng phần mềm đặc tả LTS Thứ hai, luận án đề xuất phương pháp sinh sử dụng giả định yếu cục kiểm chứng phần mềm tiến hóa đặc tả lơgic mệnh đề Ngồi ra, luận án đề xuất ba cải tiến cho phương pháp kiểm chứng giả định - đảm bảo cho phần mềm dựa thành phần có ràng buộc thời gian 6.2 Hướng phát triển Mặc dù kết nghiên cứu có đóng góp cụ thể trình bày Mục 6.1, kết cịn có hạn chế cần khắc phục Nghiên cứu theo tiếp luận án hướng đến giải hạn chế Các hướng phát triển luận án bao gồm: giảm độ phức tạp thuật tốn đề xuất; xây dựng giao diện cho cơng cụ thực nghiệm; đưa công cụ vào kiểm chứng hệ thống lớn thực tế, v.v 23 Danh mục cơng trình khoa học tác giả liên quan đến luận án Hoang-Viet Tran, Pham Ngoc Hung, Viet-Ha Nguyen, Toshiaki Aoki (2019) “A Framework For AssumeGuarantee Regression Verification Of Evolving Software”, Science of Computer Programming Journal, ISSN 0167-6423 (Accepted) (ISI Indexed) Hoang-Viet Tran, Quang-Trung Nguyen, and Pham Ngoc Hung (2019) “On Implementation of the Improved Assume-Guarantee Verification Method for Timed Systems.” In Soict ’19, December – 6, 2019, Hanoi - Ha Long Bay, Vietnam ACM, NY, USA, pp 457–464 Hoang-Viet TRAN, Ngoc Hung PHAM, Viet Ha NGUYEN (2019) “On Locally Minimum and Strongest Assumption Generation Method for Component-Based Software Verification”, IEICE Transactions on Information and Systems ISSN 0916-8532, Vol.E102-D, No.8, pp.1449-1461 (ISI Indexed) Hoang-Viet Tran and Ngoc Hung PHAM (2018) “On Locally Strongest Assumption Generation Method for Component-Based Software Verification.” VNU Journal of Science: Computer Science and Communication Engineering, vol 34, no 2, pp 16–32 ISSN 2588-1086 Hoang-Viet Tran, Ngoc Hung PHAM, Dang Van Hung (2018) “On Improvement of Assume-Guarantee Verification Method for Timed Component-Based Software.” 10th International Conference on Knowledge and Systems Engineering (KSE), Ho Chi Minh City, pp 270-275 Chi-Luan Le, Hoang-Viet Tran, and Pham Ngoc Hung (2017) “On Implementation of the Assumption Generation Method for Component-Based Software Verification.” Advanced Topics in Intelligent Information and Database Systems Springer International Publishing, pp 549-558 Chi-Luan Le, Hoang-Viet Tran, Pham Ngoc Hung (2016), “A Framework for Modeling and Modular Verifying of Component-based System Designs”, VNU Journal of Science: Computer Science and Communication Engineering, vol 32 , no 2, pp 31-42 Hoang-Viet Tran, Chi-Luan Le and Ngoc Hung Pham (2016), “A Strongest Assumption Generation Method for Component-Based Software Verification”, In Addendum Proc of the 2016 IEEE-RIVF International Conference on Computing and Communication Technologies, pp 1-6 Danh mục gồm 08 cơng trình 24 ... tiêu thứ giảm chi phí kiểm chứng phần mềm dựa thành phần theo phương pháp giả định - đảm bảo ngữ cảnh tiến hóa phần mềm Có hai giải pháp để giảm chi phí Giải pháp sinh giả định lần phần mềm tiến. .. 15 Phương pháp kiểm chứng phần cho phần mềm dựa thành phần tiến hóa 15 4.5.1 Phương pháp kiểm chứng giả định - đảm bảo cho phần mềm tiến hóa 15 4.5.2 Một... −−−−−−−−−−−−− TRẦN HOÀNG VIỆT KIỂM CHỨNG DỰA TRÊN PHƯƠNG PHÁP GIẢ ĐỊNH – ĐẢM BẢO CHO PHẦN MỀM DỰA TRÊN THÀNH PHẦN Chuyên ngành: Kỹ Thuật Phần Mềm Mã số: 9480103.01 TĨM TẮT LUẬN ÁN TIẾN SĨ NGÀNH CƠNG NGHỆ