Xác minh đảm bảo giả thiết được đưa ra trong [4] 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ả thiết đượ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ả thiết 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 hai thành phần M1 (Input), M2 (Output), và thuộc tính yêu cầu p như trong Hình 4.1.
Hình 4.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 3 ta sẽ thu được giả thiết A như trong Hình 4.2.
Hình 4.2: Giả thiết được tạo ra sau khi sử dụng giải thuật L*. Tuy nhiên, tồn tại một giả thiết A’ như trong Hình 4.3.
Hình 4.3: Giả thiết được tạo ra bởi giải thuật tạo giả thiết tối thiểu. 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ả thiết được tạo ra bởi giải thuật L* chưa phải là giả thiết tối thiểu. Theo lý thuyết của nhóm NASA, giải thuật L* thực
ack,out,send ack send out ack send send 0 1 ack send send out in out ii i Input LTS as M1 in ack send 0 1 2 send ack out a b c
Output LTS as M2 p LTS as the property
hiện huấn luyện và sẽ đưa ra Otomat tối thiểu. Vậy, nguyên nhân nào dẫn đến việc giải thuật L* không đưa ra giả thiết tối thiểu? Dưới đây sẽ là câu trả lời cho câu hỏi này:
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ả thiết 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 (SS. ). 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(SS. ). E, T(s) = true nếu s L(AW)
và bằng false nếu ngược lại. Lý do tại sao giả thiết được sinh ra theo phương pháp
trong [4] không tối thiểu được chỉ ra trong Hình 4.4. Ký hiệu s là chuỗi các hành động, A(p) là giả thiết được sinh bởi phương pháp [4], và L(Am(p)) ngôn ngữ của giả thiết nhỏ nhất được huấn luyện. Trong trường hợp s L(AW) nhưng s L(Am(p)) (giả thiết
nhỏ nhất được huấn luyên), phương pháp thiết lập T(s) là true (trong trường hợp này T(s) nên là false). Điều này có nghĩa nếu s L(AW) thì chúng ta không biết s có thuộc về ngôn ngữ được huấn luyện (tức là s L(A(p))?). Kết quả là giả thiết sinh ra chứa những chuỗi không thuộc về ngôn ngữ của giả thiết nhỏ nhất được huấn luyện.
Hình 4.4: Lý do chỉ ra tại sao giả thiết được sinh ra trong [4] không tối thiểu