Cho hai mô hình thành phần M1, M2 và một thuộc tính p, A(p) là một giả định nếu và chỉ nếu A(p) thoả các luật ghép nối. Một giả định A(p) đƣợc biểu diễn bởi một LTS là cực tiểu nếu và chỉ nếu số lƣợng các trạng thái của A(p) là nhỏ hơn hoặc bằng với số lƣợng trạng thái của bất kỳ giả định nào khác.
Xác minh đảm bảo giả định đƣợc đƣa ra trong [Rivest&Schapire’1993] là một phƣơng pháp hiệu quả cho việc xác minh phần mềm hƣớng thành phần, đƣợc thực hiện bằng cách tách nhiệm vụ xác minh một phần mềm hƣớng thành phần thành các công việc nhỏ hơn trên các thành phần độc lập. Trong phƣơng pháp này, giả định đƣợc xem nhƣ là môi trƣờng của các thành phần. Tuy nhiên, giải thuật này chƣa đƣa ra cho chúng ta một giả định tối thiểu. Chúng ta sẽ xét một ví dụ cụ thể để minh chứng cho điều này. Xét hệ thống gồm các thành phần sau:
Hình 3.1: Các thành phần của hệ thống trong ví dụ đƣợc xét
Áp dụng giải thuật L* tại chƣơng 4 ta sẽ thu đƣợc giả định A nhƣ sau:
Hình 3.2: Giả định đƣợc tạo ra sau khi sử dụng giải thuật L*
Tuy nhiên, tồn tại một giả định A’ nhƣ sau:
Hình 3.3: Giả định đƣợc tạo ra bởi giải thuật tạo giả định tối thiểu. in Input ack send 0 1 2 Output send ack out send out Ordererr in in a b out π ack,out,send ack send out ack send send 0 1 ack send send out
Dễ dàng kiểm tra đƣợc các biểu thức sau là đúng:
<A’> Input <Order>
<true> Output <A’>.
Mặt khác, ta có |A’| = 2 < 4 = |A|. Nhƣ vậy, giả định đƣợc tạo ra bởi giải thuật L* chƣa phải là giả định tối thiểu. Theo lý thuyết của nhóm NASA, giải thuật L* thực hiện huấn luyện và sẽ đƣa ra Otomat tối thiểu. Vậy, nguyên nhân nào làm cho giải thuật L* không cho chúng ta giả định tối thiểu.
Giải thuật L* sử dụng một phƣơng pháp thực hiện học ngôn ngữ của giả định yếu nhất AW với bảng chữ cái (M1p)M2 và đƣa ra một DFA chấp nhận nó. Để học đƣợc ngôn ngữ này, giải thuật L* xây dựng một bảng quan sát (S, E, T) trong đó S và E tƣơng ứng là tập tiền tố và hậu tố. T là một hàm thực hiện ánh xạ tập (S S. ).E sang tập {true, false}, trong đó toán tử “.” đƣợc định nghĩa nhƣ sau: Cho hai tập các chuỗi hành động P và Q, khi đó P Q. {pq| pP q, Q}, trong đó pq thể hiện sự ghép nối của hai chuỗi hành động p và q. Kỹ thuật này thực hiện trả lời câu hỏi kiểm tra thành viên nhƣ sau: với mỗi chuỗi s (S S. ).E, T(s) = true nếu s L(AW) và bằng false nếu ngƣợc lại.Trong phản ví dụ trên, ta nhận thấy nếu s L(AW) nhƣng s
L(A(p)), khi đó T(s) đƣợc gán giá trị true (trong trƣờng hợp này, T(s) nên là giá trị false). Vì lý do này, giả định A(p) đƣợc tạo ra bởi giải thuật đƣa ra trong [1] chứa một số chuỗi/dẫn xuất mà không thuộc vào ngôn ngữ của giả định đƣợc huấn luyện. Do đó, A(p) không phải là giả định tối thiểu.
Trong chƣơng này, chúng tôi đã đề xuất phƣơng pháp tạo giả định tối thiểu cho việc xác minh đảm bảo giả định của các phần mềm hƣớng thành phần. Chúng tôi cũng định nghĩa một kỹ thuật mới để trả lời câu hỏi kiểm tra thành viên nhằm khắc phục vấn đề gặp phải của giải thuật tạo giả định sử dụng thuật toán học L*. Giả định tối thiểu đƣợc tạo ra bằng cách kết hợp giải thuật học L* và tƣ tƣởng tìm kiếm trên cây tìm kiếm theo chiều rộng.