Mục đích
Mục tiêu của sự trừu tượng hóa là để thay thế các vấn đề của việc kiểm tra các hệ thống cụ thể rất lớn, và không tiện lợi bằng các hệ thống trừu tượng nhỏ hơn và có hy vọng thực thi được.
CHƯƠNG 7. CÁC THIẾT KẾ MẪU 7.9. TRỪU TƯỢNG HÓA VÀ MÔ PHỎNG
Hình 7.10: Ví dụ The Train Gate được điều chỉnh để cho phép kiểm tra phạm vi tính sống Đặc biệt, mô hình có thể được ứng dụng một cách thành phần đến một hệ thống con. Các hệ thống con đa dạng được thay thế bởi các vật trừu tượng thích hợp, và các nỗ lực kiểm tra được tiến hành trong các thành phần của các hệ thống con trừu tượng này.
Hỗ trợ từ Uppaal
Mặc dù sự tiến bộ rất lớn trong khả năng kiểm chứng của Uppaal nhiều năm qua- và chắc chắn những năm sắp tới- sự bùng nổ không gian trạng thái vẫn là một vấn đề còn tồn tại, sẽ được giải quyết bởi những tiến bộ về thuật toán. Tuy nhiên, trong việc xác minh những đặc tính cụ thể của một hệ thống thường chỉ là một phần của cách hoạt động của các thành phần đa dạng có liên quan. Người thiết kế sẽ thường có một trực giác tốt về sự liên quan của các thành phần này, trong trường hợp người thiết kế có khả năng cung cấp sự trừu tượng cho các thành phần đa dạng, vẫn đủ cụ thể để giữ các đặc tính đã cho, nhưng đủ trừu tượng (và nhỏ) để nỗ lực xác minh trở nên khả thi. Để đưa ra hai yều cầu về phương pháp luận cần được thỏa mãn. Thứ nhất, các khái niệm trừu tượng được dùng nên giữ được các tính chất quan tâm. Một đặc tính được biễu diễn để giữ sự trừu tượng, nó cũng nên đảm bảo giữ cho các hệ thống cụ thể. Thứ hai, mối quan hệ trừu tượng nên được giữ gìn dưới các thành phần của hệ thống. Trong [46,45] chúng tôi đưa ra khái niệm (ready) của các đặc tính an toàn về giữ thời gian mô phỏng trước khi làm phù hợp các thành phần. Hơn nữa, sự trừu tượng cho tiền định và với việc chuyển tiếp nội bộ, mô phỏng có thể thiết lập việc kiểm tra tính đạt được đơn giản.
7.9. TRỪU TƯỢNG HÓA VÀ MÔ PHỎNG CHƯƠNG 7. CÁC THIẾT KẾ MẪU
Cho A là một automat thời gian được đề xuất như một sự trừu tượng cho một vài hệ thống S (có thể là một mạng automat thời gian). Chúng ta coi rằng A là tiền định và không có bất kỳ chuyển tiếp nội bộ nào. Để đơn giản hóa, chúng ta sẽ coi tất các kênh là không khẩn cấp và không tồn tại các biến chia sẻ giữa S và các hệ thống còn lại. Để cho thấy A thực sự là một khái niệm trừu tượng của S về ý nghĩa, A(ready) mô phỏng theo thời gian S hỗ trợ kỹ thuật thử nghiệm TA được xây dựng theo cách sau:
TA có A như là bộ xương nhưng với việc chỉ đạo các hành động (input/output) đảo ngược. Một vị trí mới phân biệt bad được thêm và từ tất cả các vị trí l và tất cả các hành động a và một cạnh dán nhãn a từ l đến bad được chèn với guard¬(g1∨...∨gn) nơi mà g1 . . . gn là tập hợp đầy đủ các guard của cạnh dán nhãn a của l trong bộ xương. Bây giờ S (ready) được mô phỏng theo thời gian bởi A- và vì thế A là khái niện trừu tượng có giá trị của S- chính xác nếu vị trí bad là không thể đạt được trong hệ thống hỗn hợp S||TA. Cơ bản, TA cho thấy tất cả các hoạt động của S có thể tương xứng với A.
Ví dụ mẫu
Xem xét mô hình Uppaal trong hình7.9 gồm một Sender, một Receiver và 4 quá trình đường
Hình 7.11: Mô hình một hệ thống pipeline
ống Pi. Mỗi quá trình đường ống Pi có nghĩa vụ phản ứng lại với một kích thích từ người tiền nhiệm trên kênh ai và vượt qua nó đến người kế thừa của nó trên kênh ai+1. Một đồng hồ cục bộ được dùng để mô hình mà mỗi quá trình đường ống thêm một trễ nhỏ nhất là 2. Sau khi hoàn thành việc thông qua trên, quá trình đương ống tham gia một vài tính toán nội bộ (vòng tròn nhỏ S2, S3, S4). Bây giờ coi rằng chúng ta muốn xác minh Receiver sẽ nhận kích thích của nó không sớm hơn sau 8 đơn vị thời gian, hoặc trong 2n trong một hệ thống với n quá trình đường ống. Rõ ràng, hệ thống chúng ta dang xem xét dẫn đến sự bùng nổ không gian trạng thái rất lớn khi chúng ta tăng số lượng các phần tử đường ống. Tuy nhiên, việc thiết lập đặc tính chúng ta chỉ cần một chút thông tin về các hệ thống con. Đối với P1||P2 về cơ bản, chúng ta chỉ cần biết
CHƯƠNG 7. CÁC THIẾT KẾ MẪU 7.9. TRỪU TƯỢNG HÓA VÀ MÔ PHỎNG
Hình 7.12: Một gợi ý cho việc trừu tượng hóa và atomat để kiểm tra gợi ý đó
thời gian phản ứng với kích thích khởi tạo từ Sender đển việc truyền kích thích này đến P3 ít nhất là 4. Chúng ta không cần lo lắng về việc tính toán nội bộ hoặc thời điểm chính xác khi các kích thích được truyền từ P1 đến P2. Đặc biệt, chúng ta có thể thay thế P1||P2 với automat đơn giản hơn nhiều P1P2. Để cho thấy điều này là một sự thay thế hợp lệ, chúng ta chỉ ra đơn giản là vị tri BAD không thể đạt tới trong hệ thống P1||P2||TestP1P2, nơi mà TestP1P2 là automat thử nghiệm cho P1P2. Một khái niệm trừu tượng tương tự P3P4 có thể thấy được đưa cho hệ thống con P3||P4 và đặc tính mong muốn có thể được thiết lập cho một hệ thống đơn giản hơn nhiều P1P2||P3P4, hơn là với hệ thống ban đầu.
Chương 8
Các demo khác trong Uppaal
8.1 Demo: 2 doors
Nội dung bài toán
Một căn phòng có 2 cánh cửa nhưng không thể mở cùng một lúc. Một cánh cửa sẽ mở nếu nút bấm được nhấn. Cánh cửa sẽ mở trong vòng 6s, sau đó có thể mở tiếp trong 4s nhưng không được quá 8s. Mất 6s để đóng cửa và sau khi đã đóng rồi thì nó sẽ không thể mở ra trong ít nhất 5s sau đó.
Những giả thiết sau được áp dụng trong mô hình:
- Nút bấm mở cửa không được bấm khi cửa đang mở, đã mở hoặc đang đóng. - Có giới hạn trên ở địa điểm “close”, ví dụ như trễ sau khi cửa đã đóng. Công việc của chúng ta là mô hỏng lại hoạt động của hệ thống này sao cho nó thỏa mãn đặc điểm mutex (cả 2 cửa không thể mở 1 lúc) và xác đinh xem giớ hạn trên khi cửa đã mở hoàn toàn sau khi bâm nút mở cửa, và chứng minh được giới hạn trên này là nhỏ nhất.
Mô hình hóa trên UPPAAL
Mô hình 2 cửa có 2 khuôn mẫu (template) đó là cánh cửa và người qua cửa. - Door là template của cánh cửa.
- User là template của người mở cửa.
Vì bài toán có tính đến độ trễ khi mở cửa và đóng cửa nên đương nhiên trong khi mô hình hóa ta sẽ phải sử dụng automat thời gian để mô phỏng khoảng thời gian trễ này. Tương ứng với mỗi cửa và mỗi người sử dụng sẽ có một đồng hồ riêng.