Chương 3 đã đề xuất hai phương pháp cho việc xây dựng mô hình mô tả chính xác hành vi của thành phần phần mềm. Phương pháp thứ nhất là xây dựng mô hình sử dụng thuật toán học L* cho việc học lặp đi lặp lại xây dựng và cập nhật các mô hình ứng viên để thu được mô hình tương thích với thành phần phần mềm cần mô hình hóa. Phương pháp thứ hai là xây dựng mô hình sử dụng thuật toán Thompson xây dựng ôtômát hữu hạn như một mô hình chính xác mô tả hành vi của thành phần phần mềm từ biểu thức chính quy biểu diễn ngôn ngữ L gồm tập các dẫn xuất thực hiện được trên thành phần phần mềm đó.
Trong phương pháp thứ nhất, việc học mô hình ứng viên được thực hiện thông qua tương tác với đối tượng Teacher để kiểm tra tính tương thích giữa mô hình ứng viên với thành phần phần mềm. Việc cài đặt giải thuật học thông qua tương tác với đối tượng Teacher là khó khăn. Hơn nữa, với mỗi mô hình ứng viên đưa ra đều phải thực hiện kiểm tra tính tương thích với thành phần phần mềm thông qua giải thuật Vasilevskii – Chow nên độ phức tạp rất lớn.
Trong luận văn, chúng tôi đã cài đặt công cụ xây dựng mô hình thành phần phần mềm sử dụng thuật toán Thompson (gọi là GenModelTool). Hình 4.1 chỉ ra kiến trúc của GenModelTool. Đầu vào của công cụ này là một bảng chữ cái gồm tập tất cả các hành động quan sát được trên thành phần phần mềm và tập các dẫn xuất là chuỗi các hành động có thể thực hiện được trên thành phần đó. GenModelTool sẽ trả về một ôtômát hữu hạn đoán nhận tập dẫn xuất trên.
Hình 4.1: Kiến trúc công cụ sinh mô hình.
Công cụ trên được xây dựng bằng ngôn ngữ java với đầu vào được lưu trên file input.txt. Dòng đầu tiên lưu bảng chữ cái là một tập tất cả các hành động có thể quan sát được trên thành phần phần mềm C. Các dòng tiếp theo mỗi dòng ghi một dẫn xuất là một chuỗi các hành động có thể thực hiện được trên C từ trạng thái khởi tạo. Hình 4.2 chỉ ra giao diện của công cụ và một ví dụ minh họa. Sau khi mở tệp input.txt, dữ liệu đầu vào được hiển thị trên tab input như trên hình. Lựa chọn chức năng Generate, chương trình sẽ gọi hàm makeDFA, được trình bày trong giải thuật 3.5, xây dựng ôtômát hữu hạn đoán nhận tập dẫn xuất đầu vào. Khi đó, đầu ra của công cụ trên được biểu diễn trên tab output. Lựa chọn chức năng lưu tệp, chương trình sẽ lưu ôtômát hữu hạn thu được ở trên dưới một tệp output.txt.
Hình 4.2: Giao diện GenModelTool. GenModelTool Alphabet Executable Experiments Set Finite State Automata as Accurate Model