Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,38 MB
Nội dung
LOGO Mô hình Promela – spin Emacs editor Báo cáo thuyết trình Nội dung Mô hình Promela1 Công cụ Spin và giao diện Xspin2 Trình soạn thảo Emac3 Demo 4 www.themegallery.comCompany Logo Giới thiệu Promela và Spin Mối liên hệ giữa promela và spin Để làm việc với Spin thì phải xây dựng hệ thống bằng ngôn ngữ promela. Công cụ Spin sẽ tự động sinh ra các ca kiểm thử. Ngôn ngữ Promela Khái niệm mô hình Promela Promela là ngôn ngữ mô hình dùng để mô tả hệ thống đồng thời (The Spin Model Checker: Primer and Reference Manual). Ngôn ngữ Promela tựa như ngôn ngữ C. Ngôn ngữ Promela Cấu trúc của 1 mô hình Promela. Khai báo kiểu Khai báo biến Khai báo kênh Khai báo tiến trình Ngôn ngữ Promela Kiểu bit or bool : {0,1} Byte : 0-255 Short : -215 … 215 - 1 Int : -231 … 231 – 1 Structs { } Array Kiểu liệt kê (enum) • mtype = {LINE_CLEAR, TRAIN_ON_LINE, LINE_BLOCKED} Ngôn ngữ Promela Channel: Kênh được sự dụng trao đổi dữ liệu giữa các tiến trình. Cú pháp : chan <name> = [<dim>] of <type1>,<type2>, <typen>; Cú pháp gửi tin nhắn trong 1 kênh (!): • chan-name ! <expr1>, <expr2> <exprn>; Cú pháp nhận tin nhắn trong 1 kênh (?). • chan-name ? <expr1>, <expr2> <exprn>; Cả hai trường hợp các các loại biểu thức phải phù hợp với khai báo kênh. Ngôn ngữ Promela Ví dụ về chanel Ngôn ngữ Promela Tiến trình: Tiến trình được định nghĩa bởi từ khóa proctype. • Tên • Danh sách tham số • Khai báo biến • Thân chương trình Cú pháp proctype name( /* formal parameter list */ ) { /* các khai báo địa phương và các lệnh */ } Ngôn ngữ Promela Tiến trình Init Tất cả các chương trình promela đều cần một tiến trình init nó giống như hàm main() trong ngôn ngữ C. Chương trình chạy bắt đầu với tiến trình Init. [...]... ưu hóa) Giới thiệu công cụ XSPIN XSpin là công cụ thuận tiện để tiếp cận với Spin Có giao diện thân thiện người dùng cửa sổ soạn thảo chính với khả năng chỉnh sửa và tìm kiếm là đơn giản Kiến trúc XSPIN Kiến trúc XSpin Sử dung Xspin Màn hình cửa sổ chính của XSPIN Sử dụng Xspin Cửa sổ chức năng Run Slicing algorithm XSPIN Run Syntax Check • Kiểm tra cú pháp ngôn ngữ Promela • Luôn luôn là bước... • Data Values • Sequence Chart XSPIN Hình 6: Cửa sổ khi chạy chức năng Run Simulation XSPIN Set Verification Parameters Kiểm tra mô hình Đảm bảo thực hiện an toàn và xác minh tính chất • • • • • Correctness Properties: Safety, Liveness Search mode A full queue Verify an LTL property Set advance options XSPIN Cửa sổ chính chức năng Set Verification Parameters XSPIN Run Verification Set verification... khóa atomicity Ngôn ngữ Promela Khi sử dụng atomic Ngôn ngữ Promela Cú pháp D-step: Thực hiện lại trong một bước Không có trạng thái trung gian được tao ra trong các bước Nếu một lệnh bị khóa thì chương trình sẽ lỗi Cú pháp: • d-step { statement1; ;statementn } Cả D-step và atomic có thể sử dụng để làm giảm đi số các trạng thái trong mô hình promela Ngôn ngữ Promela Cú pháp Timeout:... trình khác đang thực thi Giống như thời gian chờ của Hệ thống Spin sử dụng để giải quyết bế tắc xung đột Nó không phải là một tính năng thời gian thực và có thể không được sử dụng trong mô hình times-outs tham gia vào thiết kế hệ thống Spin SPIN là công cụ mã nguồn mở, phổ biến và được sử dụng bởi hàng ngàn người trên toàn cầu SPIN được sử dụng cho việc xác minh thẩm định của các hệ thống... kế đạt được kết quả phản hồi từ hệ thống mô hình của họ Những kết quả phản hồi đó đóng vai trò quan trọng trong sự hiểu biết của các nhà thiết kế về hệ thống trước khi họ đầu tư vào phân tích chính thức Lịch sử phát triển của SPIN Từ năm 1980 Spin được phát triển tại Bell Labs của nhóm Unix Phần mềm này phát triển rộng rãi từ năm 1991 Tháng 4 năm 2002 Spin được trao giải thưởng phần mềm uy tín... Promela • Luôn luôn là bước đầu tiên sau khi thay đổi chương trình Promela Run Slicing Algorithm • Xác định những thành phần không liên quan của mô hình • Biểu diễn sự phân tích lưu lượng dữ liệu Set Simulation Parameters (Hỗ trợ gỡ lỗi quan trọng nhất) XSpin Thiết lập thông số hiển thị Cửa sổ chính chức năng Set Simulation Parameters XSpin Run Simulation Việc thiết lập các thông số hiển thị phải... năm 2001 của ACM Các version chính: năm 1991 là 1.0 (initial version) tới năm 2002 đã có SPIN version 4.0 (automata extration from C code) Một số yếu tố thành công của SPIN "Bấm vào nút" xác minh (mô hình Checker) Cú pháp thực hiện (bằng cách sử dụng tựa ngôn ngữ C) Giao diện người dùng đồ họa đẹp (Xspin) Không chỉ là một công cụ nghiên cứu, nhưng cũng hỗ trợ Chứa nhiều hơn so với nhiều... (Re)run verification XSPIN Cửa sổ khi chạy chức năng Run Verification XSPIN LTL Temporal Logic Formulae LTL = Mệnh đề Logic + toán tử điều khiển thời gian Giúp chỉnh sửa và bảo trì các công thức logic XSPIN Của sổ khi chạy chức năng LTL Property Manager (những thông số của LTL có thể lưu lại để sử dụng trong tương lai bằng nút “Save As” và “Load”) XSPIN Theo thời gian trong Spin Bước 1: Chạy...Ngôn ngữ Promela Lệnh và toán tử Promela Mỗi lệnh được ngăn cách dấu chấm phẩy Một số lệnh và cấu trúc tiêu biểu • Skip: không thực hiện, chỉ thay đổi khi tiến trình gọi tới • Printf: In ra màn hình • Assert(Exp) : Sử dụng kiểm tra nếu Exp là biểu thức hợp lệ (Nếu giá trị Exp = 0 thì thực thi sẽ bị lỗi) Cấu trúc lặp (do) Cấu trúc so sánh (if) Ngôn ngữ Promela Cấu trúc điều... break Ngôn ngữ Promela Cú pháp Atomic: Có thể sử dụng trong nhóm lệnh của 1 phần tiến trình Các lệnh được thực hiện đơn lẻ và không xen kẽ với các lệnh trong tiến trình khác Tự động phá vỡ nếu lệnh bị khóa khi đó các lệnh trong tiến trình khác có thể xen kẽ vào giữa Cú pháp: • atomic { statement1; ; statementn } – Statement1 chạy đầu tiên, statementn chạy cuối cùng Ngôn ngữ Promela Khi không . LOGO Mô hình Promela – spin Emacs editor Báo cáo thuyết trình Nội dung Mô hình Promela1 Công cụ Spin và giao diện Xspin2 Trình soạn thảo Emac3 Demo 4 www.themegallery.comCompany Logo Giới thiệu Promela. niệm mô hình Promela Promela là ngôn ngữ mô hình dùng để mô tả hệ thống đồng thời (The Spin Model Checker: Primer and Reference Manual). Ngôn ngữ Promela tựa như ngôn ngữ C. Ngôn ngữ Promela Cấu. Promela và Spin Mối liên hệ giữa promela và spin Để làm việc với Spin thì phải xây dựng hệ thống bằng ngôn ngữ promela. Công cụ Spin sẽ tự động sinh ra các ca kiểm thử. Ngôn ngữ Promela Khái