Thị trạng thái của mô hình đạt được sau trích xuất

Một phần của tài liệu Kiểm chứng hình thức cho hệ thống tương tranh sử dụng ngôn ngữ đặc tả CSP # và công cụ pat (Trang 61)

4 Kiểm chứng thử nghiệm với PAT

3.3thị trạng thái của mô hình đạt được sau trích xuất

quá trình chuyển đổi, cho phép kiểm soát nhiều hơn về tính chi tiết cũng như tính nguyên tử của mô hình.

3.3.3. Hướng phát triển

Trong luận văn đã đưa ra một đề xuất trích chọn mô hình từ mã nguồn C#, cho bài toán xử lý tương tranh trong lập trình đa luồng, để phục vụ kiểm chứng mô hình. Một số chuyển đổi tương đương sử dụng trong quá trình trích xuất mô hình đã được trình bày. Trong tương lai đề tài sẽ tiếp tục nghiên cứu để hoàn thiện lý thuyết chuyển đổi và đưa ra công cụ hỗ trợ tự động.

Chương 4

Kiểm chứng thử nghiệm với PAT

Các hệ thống tương tranh thường gây ra các hành vi không dự đoán được. Việc mô phỏng và kiểm chứng trở lên cấp thiết do độ phức tạp ngày càng tăng của chúng. Nhu cầu hiện nay đòi hỏi cần có các bộ công cụ hỗ trợ phân tích hệ thống một cách tự động. Chương này của luận văn sẽ giới thiệu bộ công cụ Process Analysis Toolkit [27](PAT) được phát triển bởi đại học Quốc gia Singapore. PAT được thiết kế là một nền tảng chung, độc lập, có thể dễ dàng mở rộng để hỗ trợ các hệ thống với cú pháp ngôn ngữ và thuật toán kiểm chứng mới. Hiện tại có khá nhiều mô-đun với các mục tiêu khác nhau đã được phát triển trong PAT nhưng trong phạm vi luận văn chỉ tập trung vào mô-đun CSP (Communicating Sequential Processes Module), mô-đun này hỗ trợ mô phỏng và lập luận về hệ tương tranh.

4.1. Tổng quan về PAT

Các yêu cầu của hệ thống như tính an toàn (safety), tính sống (liveness) và tính đúng thực tế (fairness) đóng vai trò quan trọng trong đặc tả, phát triển và kiểm thử. Nhu cầu hiện nay là có các công cụ tiện dụng để mô phỏng hành vi hệ thống và xác minh các thuộc tính quan trọng. Ban đầu, PAT được thiết kế để nghiên cứu kiểm chứng hệ thống dưới các giả định về tính đúng thực tế [18], sau đó tiếp tục được phát triển thành một công cụ phân tích dạng Process Algebra [26]. Hiện tại, PAT được phát triển như một nền tảng độc lập, hỗ trợ phân tích các hệ tương tranh và hệ thống thời gian thực.

Với giao diện người dùng thân thiện, mô hình hệ thống có thể được tạo ra dễ dàng bằng các tính năng hỗ trợ trong PAT. Sau đó, các hành vi của mô hình này có thể được mô phỏng tự động. Trong PAT cũng cài đặt sẵn nhiều kỹ thuật kiểm chứng mô hình phục vụ kiểm tra các thuộc tính như: bế tắc, phân kỳ, tới được, thuộc tính dạng lôgic thời gian tuyến tính dưới các giả định về tính đúng thực tế, quan hệ tương đương, làm mịn...Để đạt được hiệu năng xử lý tốt, một số kỹ thuật tiên tiến được cài đặt trong PAT, ví dụ như: Partial Order Reduction, Process Counter Abstraction, Bounded Model Checking, Parallel Model Checking...Đến

nay, PAT đã được sử dụng để mô hình hóa và kiểm chứng nhiều hệ thống, từ các thuật toán phân tán, giao thức bảo mật, tới các hệ thống thực tế như máy điều hòa nhịp tim. Kết quả thử nghiệm cho thấy PAT đạt hiệu quả cao khi kiểm chứng các hệ thống có số lượng trạng thái lớn, giúp khám phá ra nhiều lỗi tiềm ẩn trước đây.

Các chức năng chính của PAT

Mô phỏng: Mô phỏng hành vi của hệ thống bằng các cách như mô phỏng

ngẫu nhiên, mô phỏng dựa theo từng bước lựa chọn của người dùng, sinh biểu đồ trạng thái hoàn chỉnh, mô phỏng theo truy vết.

Kiểm chứng: Xác minh các thuộc tính của hệ thống.

Từ phiên bản 2.0 PAT được thiết kế theo kiểu phân lớp để hỗ trợ phân tích các hệ thống mới với các ngôn ngữ đặc tả khác nhau bằng việc cài đặt thêm các mô-đun tương ứng dạng trình cắm (plug-in). Hình 4.1 thể hiện kiến trúc thiết kế của PAT. Với mỗi hệ thống được hỗ trợ, một mô-đun riêng được tạo ra trong PAT, mô-đun này định nghĩa cú pháp, các luật, cũng như ngữ nghĩa hình thức của ngôn ngữ đặc tả được sử dụng. Ví dụ mô-đun CSP được phát triển để phân tích các hệ thống tương tranh, ngôn ngữ đặc tả tương ứng là CSP#. Ngữ nghĩa hoạt động (operational semantics) của ngôn ngữ đặc tả được sử dụng để chuyển đổi các hành vi của mô hình thành hệ dịch chuyển nhãn (Labeled Transition Systems - LTS). Hệ dịch chuyển nhãn được coi như một biểu diễn nội bộ của mô hình đầu vào, có thể được khám phá tự động bởi các thuật toán kiểm chứng hoặc sử dụng để mô phỏng. Để xử lý kiểm chứng mô hình trên hệ dịch chuyển nhãn, số lượng các trạng thái của hệ dịch chuyển nhãn cần phải hữu hạn. Đối với hệ thống có các hành vi vô hạn, cần áp dụng các kỹ thuật trừu tượng để xử lý trước. Nếu một phản ví dụ được tìm ra trong quá trình kiểm chứng, nó có thể được biểu diễn thông qua bộ mô phỏng. Lợi ích chính của kiểu thiết kế dạng phân lớp này là cho phép chia sẻ các thuật toán kiểm chứng giữa các mô-đun, các mô-đun chỉ khác nhau về cú pháp, ngữ nghĩa của ngôn ngữ đặc tả.

Một phần của tài liệu Kiểm chứng hình thức cho hệ thống tương tranh sử dụng ngôn ngữ đặc tả CSP # và công cụ pat (Trang 61)