SPIN là một công cụ hỗ trợ tự động gia tăng số lượng các tiến trình hoặc rút gọn số lượng các tiến trình. Nó hỗ trợ các quá trình mô phỏng dựa trên việc chứng minh cục bộ và tổng thể, dựa trên tìm kiếm theo chiều sâu để có thể kiểm soát được kích cỡ bài toán lớn có hiệu quả. SPIN khai thác kỹ thuật giản lược thứ tự từng phần và lưu trữ để tối ưu hóa khi xác thực. Để xác thực một mô hình phần mềm, mô hình đó phải là một mô hình hình thức được xây dựng bằng ngôn ngữ
Promela - ngôn ngữ mô hình hóa của bộ công cụ SPIN. Sử dụng công cụ SPIN
với ngôn ngữ Promela có thể: Mô phỏng tương tác phỏng ngẫu nhiên cho một hệ thống; Xác thực và chứng minh tính đúng đắn so với yêu cầu đặc tả của người sử dụng; Chứng minh sự xấp xỉ của các mô hình hệ thống lớn với việc bao phủ không gian trạng thái.
Cấu trúc và cách thức hoạt động của bộ công cụ SPIN dùng để kiểm tra mô hình có thỏa mãn hay không thỏa mãn tính chất có một số bước cụ thể. Tuy nhiên trong nội dung của luận văn này chỉ xét đến khía cạnh kiểm chứng sự tuân thủ hoặc không tuân thủ thể thức tương tác của chương trình nên ta thực hiện hai bước: mô hình hóa thể thức tương tác của chương trình bằng một tiến trình đồng thời mô hình hóa thể thức tương tác của một thành phần cũng bằng một tiến trình trong SPIN, hai tiến trình này chạy song song và sử dụng một kênh dữ liệu chung; thực hiện chạy SPIN để xác minh (verification). Kết quả sẽ được báo cáo trong
Thông báo lỗi cú pháp
Phân tích cú pháp Giao diện SPIN
Phân tích cú pháp LTL và dịch
Kiểm tra xác thực
Tối ưu bộ kiểm tra mô hình
Thực hiện xác thực on-the-fly Phản ví dụ
cửa sổ pan.out của ISPIN ngay sau khi chạy xác minh: nếu không có deadlock
(không báo Invalid EndState depth ( )) thì chương trình tuân thủ thể thức tương tác của thành phần, nếu có deadlock (báo Invalid endState depth ( )) thì thành phần không tuân thủ thể thức tương tác của chương trình. Cần phải yêu cầu bên thiết kế xây lại thể thức của chương trình.
2.2.3. Công cụ ISPIN
Bộ công cụ ISPIN có giao diện thân thiện, dễ sử dụng trong quá trình thực hiện kiểm chứng mô hình [19].