Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
1,78 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ TỐ NGA ĐẶCTẢVÀKIỂMCHỨNGCÁCHỆTHỐNGTHỜIGIANTHỰCSỬDỤNGUPPAAL LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2017 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ TỐ NGA ĐẶCTẢVÀKIỂMCHỨNGCÁCHỆTHỐNGTHỜIGIANTHỰCSỬDỤNGUPPAAL Ngành: Công nghệ thông tin Chuyên ngành:Kỹ Thuật Phần Mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHẠM NGỌC HÙNG Hà Nội – 2017 i MỤC LỤC LỜI CAM ĐOAN iii LỜI CẢM ƠN iv DANH MỤC HÌNH VẼ v CHƯƠNG GIỚI THIỆU 1.1 Đặt vấn đề .1 1.2 Mục tiêu phạm vi đề tài 1.3 Cấu trúc luận văn CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Đặctảhệthống .4 2.2 Kiểmchứnghệthống phần mềm 2.3 Ơ-tơ-mát thờigian CHƯƠNG ĐẶCTẢVÀKIỂMCHỨNG TRONG UPPAAL 3.1 Bộ công cụ Uppaal 3.1.1 Giới thiệu công cụ Uppaal 3.1.2 Tổng quan công cụ Uppaal .9 3.1.2.1 Java Client 10 3.1.2.2 Stand-alone Verifier 16 3.2 Mạng Ơ-tơ-mát thờigianUppaal 16 3.2.1 Ơ-tơ-mát thờigianUppaal 16 3.2.2 Mơ hình mạng ô-tô-mát thờigianUppaal .17 3.3 ĐặctảUppaal 19 3.4 KiểmchứngUppaal 22 3.4.1 Mô hoạt động hệthống .22 3.4.2 Kiểmchứng dòng lệnh 23 CHƯƠNG ÁP DỤNGĐẶCTẢVÀKIỂMCHỨNG MỘT SỐ HỆTHỐNGTHỜIGIANTHỰC BẰNG CÔNG CỤ UPPAAL .26 4.1 Hệthống phân loại .26 4.1.1 Ví dụ1 Hệthống phân loại bóng theo màu sắc (Hệ thống Bong7mau) 26 4.1.2 Ví dụ Hệthống phân loại sản phẩm (sản phẩm đạt chất lượng hay chưa) 32 4.2 Hệthống điều khiển sửdụng vùng tài nguyên 37 4.2.1 Ví dụ Hệthống điều khiển việc sửdụngchung vùng tài nguyên Process ResourceV1 (có ràng buộc thờigiansửdụng nguồn tài nguyên) 37 4.2.2 Ví dụ Hệthống điều khiển việc sửdụngchung vùng tài nguyên Process Resource V2(có nhiều nhóm q trình có ràng buộc thờigiansửdụng nguồn tài nguyên) 45 ii KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 54 iii LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp với đề tài “Đặc tảkiểmchứnghệthốngthờigianthựcsửdụng Uppaal” cơng trình nghiên cứu riêng hướng dẫn PGS.TS Phạm Ngọc Hùng Các kết tơi trình bày luận văn hồn tồn trung thực chưa cơng bố cơng trình khác Tơi trích dẫn đầy đủ tài liệu tham khảo, công trình nghiên cứu liên quan nước quốc tế phần tài liệu tham khảo Ngoại trừ tài liệu tham khảo này, luận văn hoàn toàn cơng việc riêng tơi Nếu có phát gian lận chép tài liệu, cơng trình nghiên cứu tác giả khác mà không ghi rõ phần tài liệu tham khảo, xin chịu hoàn toàn trách nhiệm kết luận văn Hà nội, tháng 10 năm 2017 Học viên Phạm Thị Tố Nga iv LỜI CẢM ƠN Tôi xin bày tỏ lòng cảm ơn chân thành sâu sắc đến PGS.TS Phạm Ngọc Hùng hướng dẫn bảo tận tình với định hướng, lời khuyên, kiến thức vô quý giá Thầytrong q trình tơi theo học làm luận văn Tôi xin gửi lời cảm ơn tới Thầy Cô khoa Công nghệ thông tin trường Đại học Công Nghệ- Đại học Quốc gia Hà Nội trang bị cho kiến thức quý báu q trình tơi theo học khoa Đây tiền đề để m có kiến thức cần thiết để hoàn thiện luận văn Tôi xin gửi lời cảm ơn tới Thầy Cô giáo anh chị em bạn bè theo học môn Công nghệ Phần mềm tận tình bảo tạo điều kiện tốt để làm việc môn với đầy đủ trang thiết bị cần thiết để tơi hồn thiện tốt luận văn Tơi xin gửi lời cảm ơn chân thành đến lãnh đạo anh chị em đồng nghiệp trường Đại học Đại Nam nơi công tác gia đình, bạn bè, người thân giúp đỡ vật chất lẫn tinh thần để hoàn thành luận văn Mặc dù cố gắng luận văn chắn không tránh khỏi thiếu sót, tơi mong nhận ý kiến đánh giá phê bình từ phía Thầy Cơ để luận văn hồn thiện Tơi xin chân thành cảm ơn! Hà nội, tháng 11 năm 2017 Học viên Phạm Thị Tố Nga v DANH MỤC HÌNH VẼ Hình 2.1 Sơ đồ việc kiểmchứnghệ thống……………………………………….5 Hình 2.1 Sơ đồ hoạt động phương pháp kiểm tra mơ hình…………………….6 Hình 3.1 Màn hình khung soạn thảo Uppaal………………………………….9 Hình 3.2 Màn hình khung mơ bước chuyển trạng thái trình hệthống Train-Gate Uppaal ………………………………… 10 Hình 3.3 Màn hình khung mơ bước chuyển hệthống theo thờigian Train-Gate Uppaal ………………………………… …………………….11 Hình 3.4 Màn hình khung kiểmchứnghệthống Train-Gate………………11 Hình 3.5 Mạng ô-tô-mát thờigianhệthống điều khiển đèn……………17 Hình 3.6 Ơ-tơ-mát tích ơ-tơ-mát cơng tắc đèn người dùng (hình 2.5)…….18 Hình 3.7 Màn hình thể việc dùng nút Add location vẽ trạng thái……….19 Hình 3.8 Màn hình dùng chức Edit để khai báo cho nút……………………19 Hình 3.9 Màn hình dùng lệnh Add Edge………………………………… …… 20 Hình 3.10 Màn hình dùng chức Edit Edge để khai báo cho cạnh…………21 Hình 3.11 Màn hình thể chức kiểm chứng………………………… 24 Hình 4.1 Ơ-tơ-mát Sensorcủa hệthống Bong7mau……………………………….26 Hình 4.2 Ơ-tơ-mát PushDoor hệthống Bong7mau…………………………27 Hình 4.3 Màn hình chức mơ Simulation hệthống Bong7mau… 28 Hình 4.4 Màn hình chức mơ Simulation hệthống Bong7mau… 29 Hình 4.5 Màn hình chức kiểmchứng Verifier hệthống Bong7mau… 30 Hình 4.6 Ơ-tơ-mát Potato hệthống Potato…….…….…….…….…….…….32 Hình 4.7 Ơ-tơ-mát Sensor…….…….…….…….…….…….…….…….…….… 33 Hình 4.8 Ơ-tơ-mát Adoor hệthống Potato…….…….…….…….…….…… 33 Hình 4.9 Ơ-tơ-mát Bdoor hệthống Potato…….…….…….…….…….…… 34 Hình 4.10 Màn hình chức mơ Simulation hệthống Potato………34 vi Hình 4.11 Màn hình chức mơ Simulation hệthống Potato……35 Hình 4.12 Ơ-tơ-mát Process1 hệthống Process ResourceV1……… 38 Hình 4.13 Ơ-tơ-mát Process2 hệthống Process ResourceV1…….…… 39 Hình 4.14 Ơ-tơ-mát Resource hệthống Process ResourceV1…….……….41 Hình 4.15 Màn hình mơ vận hành hệthống Process ResourceV1 42 Hình 4.16 Ơ-tơ-mát Process1 hệthống Process-Resource V2…….…….…45 Hình 4.17 Ơ-tơ-mát Process2 hệthống Process-Resource V2…….…….…46 Hình 4.18 Ơ-tơ-mát Resource hệthống Process Resource V2…….…….….49 Hình 4.19 Màn hình mơ vận hành hệthống Process ResourceV2 50 Hình 4.20 Màn hình mơ vận hành hệthống Process ResourceV2 .50 CHƯƠNG GIỚI THIỆU 1.1 Đặt vấn đề Trong thời đại ngày nay, hệthống có yếu tố thờigianđặc biệt hệthốngthờigianthực lĩnh vực nhận nhiều quan tâm giới khoa học nói chung giới khoa học nghiên cứu cơng nghệ nói riêng Thật vây, hệthốngthờigianthực ứng dụng nhiều đời sống xã hội, sản xuất, y tế, hàng không vũ trụ quân sự, gần lĩnh vực ta thấy có góp mặt ứng dụnghệthốngthờigianthực Không góp mặt nhiều lĩnh vực mà góp mặt có tầm quan trọng lớn hệthống Trong hệthốngthờigian thực, cơng vệc tác vụ cần phải hồn thành khoảng thờigian cho phép (deadline), khơng đáp ứng u cầu thờigianhệthống sụp đổ gây hậu nghiêm trọng (hệ thờigianthực cứng: Hard RealTime) bị suy giảm chất lượng dịch vụ (hệ thờigianthực mềm: Soft Real-Time)[6, 9] Chính tầm quan trọng yếu tố thờigianhệthốngthờigian nên việc kiểm tra tính đắn hệthống cần thiết Việc kiểm tra tính đắn hệthốngthực khâu kiểm thử kiểmchứng Tuy nhiên, với hệthống có ràng buộc thờigian tầm quan trọng hệthống mà việc kiểm thử không kiểm tra hết mà chủ yếu tập chung khâu kiểmchứng [10] Việc kiểmchứng tính đắn hệthống nhằm kiểm tra xem hệthống có vận hành u cầu khơng, muốn cần phải có mơ vận hành hệ thống, cần có bước kiểm tra quy trình vận hành có đảm bảo tính chất hệthống như: tính đến trạng thái, tính an tồn, tính liên tục theo thờigian (khơng bị dừng – not deadlock) [10, 11] Muốn làm điều cần phải có cơng cụ mơ tả vận hành hệ thống, qua mơ vận hành từ kiểm tra vận hành có thỏa mãn yêu cầu hệthống hay không.Đây thực mối quan tâm lớn vấn đề kiểmchứng nói riêng cơng nghệ phần mềm nói chung Hiện có nhiều cơng cụ cho phép kiểmchứng tự động hệthống phần mềm có yếu tố thờigian như: SPIN, LTSmin, mCRL2, MRMC, PAT,TAPAL, DREAM, ROMEO, UPPAAL …Trong cơng cụ Uppaal thể tính mạnh mà cơng cụ khác khơng có việc mơ vận hành hệthốngthờigianthựckiểmchứng vận hành hệthống câu lệnh đơn giản.Cơng cụ giúp takiểmchứnghệthống mơ hình hóa thành hệthống ô-tô-mát thờigian với nhứng biến số nguyên, cấu trúc liệu, hàm người dùng đồng kênh Với việc đặctảkiểmchứnghệthốngthờigianthực cơng cụ Uppaal đánh giá tốt sửdụng rộng rãi công nghiệp Nhưng bên cạnh việc sửdụng cơng cụ Uppaalkiểmchứnghệthống có yếu tố thờigian đòi hỏi người sửdụng có trình độ định việc đặctảhệthống dạng ô-tô-mát thờigian điều khiển vận hành tương tác ơ-tơmát thơng qua ngơn ngữ lập trình [7, 8] 1.2 Mục tiêu phạm vi đề tài Trong luận văn tác giả tập trung tìm hiểu cơng cụ kiểmchứng Uppaal, sâu vào tìm hiểu ngơn ngữ đặctả Uppaal, tìm hiểu cách đặctảhệthống phần mềm dạng ô-tô-mát thờigian điều khiển vận hành hệthốngthông qua ngôn ngữ lập trình C++, tìm hiểu chế kiểmchứng công cụ cho hệthốngthờigianthực Từ tác giả xây dựng số ví dụ (cụ thể tác giả xây dựng ví dụ) số hệthốngthờigianthực áp dụng vào đặctảkiểmchứnghệthống cơng cụ Uppaal Đối với ví dụ tác giả giả định hệthốngthờigian thực, tiến hành đặc tả, mô hình hóa hệ ơ-tơ-mát thờigian trình soạn thảo Uppaal sau chạy mơ kiểmchứng hoạt động hệthống 1.3 Cấu trúc luận văn Phần lại luận văn trình bày thành ba chương: Ở chương 2, tác giả trình bày sở lí thuyết cần thiết cho việc nghiên cứu đề tài Sang chương 3, tác giả nêu hiểu biết tác giả công cụ Uppaal cách đặc đả hệthống phần mềm dạng ô-tô-mát thờigian phương pháp mô kiểmchứngUppaal Chương 4, tác giả trình bày số ví dụ áp dụng mà tác giả xây dựng sau tìm hiểu cơng cụ Uppaal Chương tác giả trình bày bốn ví dụ mà tác giả xây dựng bốn hệthốngthờigian tiến hành đặctảkiểmchứnghệthống qua cơng cụ Uppaal Cuối phần kết luận, đâytác giả tóm tắt cơng việc mà tác 41 Hình 4.13 Ơ-tơ-mát Process2trong hệthống Process ResourceV1 Khuôn mẫu Resource khai báo biến hàm sửdụng khuôn mẫu sau: id_t list[N+1]; int[0,N] len; // Put an element at the end of the queue void enqueue(id_t element) { list[len++] = element; } // Remove the front element of the queue void dequeue() { int i = 0; len -= 1; 42 while (i < len) { list[i] = list[i + 1]; i++; } list[i] = 0; } // Returns the front element of the queue id_t front() { return list[0]; } // Returns the last element of the queue id_t tail() { return list[len - 1]; } Khn mẫu gồm có ba trạng thái Free; Occ; RS Trong đó: Free trạng thái nguồn tài nguyên rảnh; Occ trạng thái tiếp nhận thơng tin đăng kí xếp hàng RS trạng thái xếp hàng cho trình (trạng thái trạng thái Committed) Các bước chuyển trạng thái khuôn mẫu diễn tả sau: Nếu nguồn tài nguyên trạng thái rảnh mà số q trình có nhu cầu xử dụng hàng đợi lớn khơng gọi q trình cho sửdụng trước Nếu khơng có q trình hàng đợi, đồng thời nhận tín hiệu báo có nhu cầu sửdụng xếp vào hàng đợi chuyển sang trạng thái Occ Từ trạng thái Occ 43 Hình 4.14 Ơ-tơ-mát Resource hệthống Process ResourceV1 tiếp tục nhận tín hiệu từ q trình khác có nhu cầu sửdụng xếp q trình vào hàng đợi chuyển qua trạng thái RS- Trạng thái Commited không cho phép trễ, đồng thời gửi tín hiệu stop! cho q trình trở trạng thái Occ Từ trạng thái Occ nhận tín hiệu leave[i]? xóa q trình khỏi hàng đợi chuyển trạng thái Free Dựa vào phân tích trạng thái bước chuyển trạng thái, ô-tô-mát Resource thiết kế sau (xem hình 4.14) Khai báo trình sửdụnghệthống mục System declaration sau: const int delay1=20; // thờigian trình sửdụng vùng tài nguyên; const int delay2=30;// thờigian trình sửdụng vùng tài nguyên; P1=Process1(delay1); P2=Process2(delay2); system P1, P2, Resource; Bước Mô vận hành hệthống Khi kết thúc bước mà khơng có lỗi hệthống cho phép chạy mô vận hành hệthống hai hình thức khác thay đổi trạng thái đối tượng mô đồng theo thờigian đối tượng (xem hình4.15) 44 Hình 4.15 Màn hình mơ vận hành hệ thốngProcess ResourceV1 Bước Kiểmchứng hoạt động hệthống Chức Verifier Uppaal cho phép kiểmchứng tính chất hệthốngthơng qua câu lệnh cụ thể như: - Kiểmchứng tính đạt (khả tới trạng thái định) E P1.Using kiểm tra xem trình có chuyển sang trạng thái Using khơng Tương tự cho trình 2, tasửdụng câu lệnh: E P2.Using E Resource.Occkiểm tra xem q trình Resource có chuyển sang trạng thái Occ không - Kiểmchứng tính an tồn (một điều ln ln đúng) A[]P1.Using && P2.Using: đảm bảo thời điểm có nhiều q trình sửdụng vùng tài ngun (tính khơng xung đột) A[] Resource.list[N] == đảm bảo khơng có q n q trình hàng đợi Kiểm tra tính liveness hệthống (tính chất đảm bảo điều trước sau xảy ra) P1.Appr > P1.Using: Đảm bảo q trình có nhu cầu sửdụngsửdụng Tương tự cho trình tasửdụng câu lệnh: P2.Appr > P2.Using 45 E P1.Using and P2.Using: Đảm bảo trình khác không sửdụng Hoặc câu lệnh: E P1.Using and P2.Stop hay E P2.Using and P1.Stop để đảm bảo trình sửdụng tất trình khác trạng thái phải chờ Kiểmchứng ơ-tơ-mát có rơi vào deadlock hay khơng tasửdụng cú pháp A[] not deadlock 4.2.2 Ví dụ Hệthống điều khiển việc sửdụngchung vùng tài ngun Process Resource V2(có nhiều nhóm q trình có ràng buộc thờigiansửdụng nguồn tài nguyên) Ví dụ mở rộng ví dụ 3, ta giả thiết lúc hệthống có n q trình (demo 4) có nhu cầu sửdụngchung vùng tài nguyên, có nhiều nhóm q trình muốn sửdụng vùng tài ngun với thờigian khác (demo nhóm: Nhóm có N1 q trình muốn dùng vùng tài ngun thờigian delay1, nhóm có N2 q trình muốn sửdụng vùng tài nguyên với thờigian delay2), hệthống đảm bảo việc điều khiển cho thời điểm có q trình sửdụng vùng tài nguyên trình gửi yêu cầu trước bố trí sửdụng trước Đặc tả:Hệ thống có nhóm q trình Process1 Process2 (với mã trình đánh số theo cách: nhóm từ đến N1-1; nhóm từ N1 đến N2-1) có nhu cầu sửdụng nguồn tài ngun Resource Khi q trình có nhu cầu sửdụng gửi tín hiệu thơng báo cho điều khiển, điều khiển tiếp nhận tín hiệu tiến hành xử lí tín hiệu đó, thời điểm nguồn tài nguyên rảnh báo lại tín hiệu cho q trình phép sửdụng nguồn tài ngun, có q trình sửdụng nó, điều khiển lưu thứ tự q trình có nhu cầu vào hàng đợi đến nguồn tài nguyên rảnh gọi trình sửdụng trước Khi trình sửdụng xong vùng tài nguyên (mặc định sau khoảng thờigian cho trước tương ứng với q trình đó) báo lại cho điều khiển biết rời khỏi tài nguyên Yêu cầu: Q trình có nhu cầu bố trí sửdụng nguồn tài ngun, khơng có xung đột, đảm bảo thời điểm có q trình sửdụng Phân tích nhận diện đối tượng hệthống 46 Hệthống có nhóm q trình Process1 Process2 (trong nhóm có N1 q trình, nhóm có N2 q trrình) nguồn tài nguyên (Resource) Các Process1 Process2 hoạt động song song, đồng với Resource thơng qua kênh: báo tín hiệu u cầu sửdụng (appr1[i] appr2[i]), dừng (stop1[i] stop2[i]), phép sử dụng(go1[i] go2[i]) rời khỏi vùng tài nguyên (leave[i]) Mơ hình hóa đối tượng Khai báo biến toàn cục const int N1 = 2; // # Process1 const int N2 = 2; // # Process2 typedef int[0,N1-1] id_t1; // Mã trình typedef int[N1,N1+N2-1] id_t2; // Mã trình typedef int[0,N1+N2-1] id_t3; chan appr1[N1], stop1[N1], leave[N1+N2], appr2[N1+N2], stop2[N1+N2]; //các tín hiệu đồng mơ hình urgent chan go1[N1],go2[N1+N2]; // khơng có trễ đồng chuyển tiếp Khuôn mẫu Process1 Được truyền tham số mã trình (đánh số từ đến N1-1), biến địa phương đồng hồ x Quá trình gồm năm trạng thái: Safe; Appr; Stop; Ready; Using đó: Safe trạng thái chưa có nhu cầu sửdụng nguồn tài nguyên; Appr trạng thái đăng kí sửdụng nguồn tài nguyên; Stop trạng thái chờ đến lượt sử dụng; Using trạng thái sửdụng nguồn tài nguyên Các bước chuyển trạng thái trình diễn tả sau: Process1 trạng thái Safe, có nhu cầu sửdụng nguồn tài nguyên gửi tín hiệu (appr1[i]!) đến điều khiển chuyển sang trạng thái Appr, đồng hồ x giới hạn khoảng thờigian delay1(demo 20) (là thờigian mà trình dùng để sửdụng vùng tài nguyên +10s chờ tín hiệu) Nếu vòng 10s nhận tín hiệu yêu cầu dừng (stop1[i]?) từ điều khiển chuyển sang trạng thái Stop, chờ đến nhận tín hiệu cho phép sửdụng (go1[i]?) chuyển sang trạng thái Ready sau 7s sửdụng vùng tài nguyên chuyển sang trạng thái Using Nếu sau 10s mà không thấy có 47 tín hiệu (stop1[i]) chuyển sang trạng thái sửdụng Using Ở trạng thái Using 5s (thời gian để khỏi vùng tài nguyên) báo cho điều khiển tín hiệu sửdụng xong (leave[i]!) chuyển sang trạng thái Safe Hình 4.16 Ơ-tơ-mát Process1 hệthống Process-Resource V2 Dựa vào phân tích trạng thái bước chuyển trạng thái ô-tô-mát Process1 thiết kế sau (xem hình 4.16): Khuôn mẫu Process2 Được truyền tham số mã trình (được đánh số thứ tự từ N1 đến N2-1), biến địa phương đồng hồ x Khuôn mẫu gồm trạng thái: Safe; Appr; Stop; Ready; Using đó: Safe trạng thái chưa có nhu cầu sửdụng nguồn tài nguyên; Appr trạng thái đăng kí sửdụng nguồn tài nguyên; Stop trạng thái chờ đến lượt sử dụng; Using trạng thái sửdụng nguồn tài nguyên Các bước chuyển trạng thái khuôn mẫu diễn tả sau: Process2 trạng thái Safe, có nhu cầu sửdụng nguồn tài nguyên gửi tín hiệu (appr2[i]!) đến điều khiển chuyển sang trạng thái Appr, đồng hồ x giới hạn khoảng thờigian delay2 (demo 30s, thờigian mà trình dùng để sửdụng vùng tài nguyên +10s chờ tín hiệu) Nếu vòng 10s nhận tín hiệu yêu cầu dừng (stop2[i]?) từ điều khiển chuyển sang trạng thái Stop, chờ đến nhận tín hiệu cho phép sửdụng (go2[i]?) chuyển sang trạng thái Ready sau 7s sửdụng 48 vùng tài nguyên chuyển sang trạng thái Using Nếu sau 10s mà khơng thấy có tín hiệu (stop2[i]) chuyển sang trạng thái sửdụng Using Ở trạng thái Using 5s (thời gian để khỏi vùng tài ngun) báo cho điều khiển tín hiệu sửdụng xong (leave[i]!) chuyển sang trạng thái Safe Với phân tích trạng thái bước chuyển trạng thái trên, ô-tô-mát Process2 thiết kế sau (xem hình4.17): Hình 4.17 Ơ-tơ-mát Process2 hệthống Process-Resource V2 Khuôn mẫu Resource Khuôn mẫu khai báo biến hàm sau: id_t3 list[N1+N2+1]; int[0,N1+N2] len; // Put an element at the end of the queue void enqueue(id_t3 element) { list[len++] = element; } // Remove the front element of the queue void dequeue() 49 { int i = 0; len -= 1; while (i < len) { list[i] = list[i + 1]; i++; } list[i] = 0; } // Returns the front element of the queue id_t3 front() { return list[0]; } // Returns the last element of the queue id_t3 tail() { return list[len - 1]; } Khn mẫu gồm có sáu trạng thái: Free;CheckP1; CheckP2;Occ; RS1; RS2 đó: Free trạng thái nguồn tài nguyên rảnh; CheckP1, CheckP2 trạng thái kiểm tra xem trình xếp hàng thuộc nhóm nào; Occ trạng thái tiếp nhận thơng tin đăng kí xếp hàng; RS1, RS2 trạng thái xếp hàng cho q trình thuộc nhóm nhóm Các bước chuyển trạng thái diễn tả sau: Nếu nguồn tài nguyên trạng thái rảnh mà số q trình có nhu cầu xử dụng hàng đợi lớn khơng chuyển sang trạng thái kiểm tra xem trình thuộc nhóm 50 hay nhóm 2, gọi q trình cho sửdụng trước chuyển sang trạng thái Occ Nếu khơng có q trình hàng đợi chuyển sang trạng thái kiểm tra xem tín hiệu báo nhu cầu sửdụng thuộc nhóm hay nhóm 2, đồng thời nhận tín hiệu báo có nhu cầu sửdụng xếp vào hàng đợi chuyển sang trạng thái Occ Từ trạng thái Occ tiếp tục nhận tín hiệu có nhu cầu sửdụng xếp vào hàng đợi chuyển qua trạng thái RS1- thuộc nhóm RS2-nếu thuộc nhóm 2, đồng thời trạng thái Commited không cho phép trễ, đồng thời gửi tín hiệu stop1[i]! - thuộc nhóm stop2[i]! - thuộc nhóm trở trạng thái Occ Từ trạng thái Occ nhận tín hiệu leave[i]? xóa q trình khỏi hàng đợi chuyển trạng thái Free Ơ-tơ-mát Resource thiết kế sau (xem hình 4.18): Hình 4.18 Ơ-tơ-mát Resource hệthống Process Resource V2 Việc khai báo trình sửdụnghệthốngthực câu lệnh sau: system Process1, Process2, Resource; Mô vận hành hệthống 51 - Mô thay đổi trạng thái đối tượng (xem hình 4.19) Hình 4.19 Màn hình mơ vận hành hệthống Process ResourceV2 - Mô đồng theo thờigian đối tượng (xem hình 4.20) Hình 4.20 Màn hình mơ vận hành hệthống Process ResourceV2 Kiểmchứng hoạt động hệthống - Kiểmchứng tính đạt (khả tới trạng thái định) Cú pháp: E𝜑 (trong 𝜑 cơng thức trạng thái) 52 EProcess1(0).Using kiểm tra xem q trình có chuyển sang trạng thái Using không EProcess1(2).Using E Resource.Occ: kiểm tra xem q trình có chuyển sang trạng thái Occ khơng? - Kiểm tra tính an tồn (một điều ln ln đúng) Cú pháp: A[] E[] A[]Process1(0).Using && Process2(2).Using: đảm bảo thời điểm có nhiều q trình sửdụng vùng tài ngun (tính khơng xung đột) A[] Resource.list[N1+N2] == đảm bảo khơng có q n q trình hàng đợi Kiểm tra tính liveness hệthống (tính chất đảm bảo điều trước sau xảy ra) Cú pháp: A𝜑: Chỉ 𝜑 thỏa mãn 𝜑 > : Khi 𝜑 thỏa mãn thỏa mãn Process1(0).Appr > Process1(0).Using: Đảm bảo q trình có nhu cầu sửdụngsửdụng Process2(2).Appr > Process2(2).Using EProcess1(0).Using imply Process2(3).Stop: đảm bảo trình sửdụng tất trình khác trạng thái phải chờ EProcess1(0).Using and Process2(2).Using: Đảm bảo q trình khác khơng sửdụng - Kiểm tra ơ-tơ-mát có rơi vào deadlock hay không Cú pháp A[] not deadlock 53 KẾT LUẬN Ngày nay, với phát triển ngày mạnh khoa học, kỹ thuật, quân y tế Cáchệthống có yếu tố thờigian ngày trở nên phổ biến khẳng định vị trí quan trọng lĩnh vực đời sống xã hội Việc đặctảkiểmchứnghệthốngthờigianthực trở nên cấp thiết hết việc đưa công cụ để đặctảkiểmchứng tự động cho hệthốngthờigianthực xu tất yếu phù hợp với phát triển vũ bão khoa học công nghệ Công cụ kiểmchứngUppaal với giao diện thân thiện, khả kiểmchứng tối ưu dựa sở mô vận hành hệthống theo thờigiankiểmchứngđặc tính quan trọng hệthống tính an tồn, khả đến được, tính not deadlock thơng qua dòng lệnh đơn giản khiến Uppaal trở thành công cụ kiểmchứng tốt hệthống có yếu tố thờigian Việc nắm bắt sửdụng cơng cụ tốt Uppaal có ý nghĩa quan trọng, việc xây dựng nên hệthốngđặc trưng có giá trị ứng dụngthực tế, đặctảkiểmchứng cơng cụ Uppaal nhiệm vụ cần thiết Tác giả tìm hiểu sửdụng thành thạo cơng cụ kiểmchứngUppaal đồng thời nghiên cứu xây dựng ví dụ hệthốngthờigian giả định có tính ứng dụngthực tế (hệ thống tự động phân loại sản phẩm hệthống điều khiển việc sửdụngchung nguồn tài nguyên),vận dụngđặctảkiểmchứnghệthống cơng cụ Uppaal Đây bước đầu, ví dụ hệthống đơn giản Hơn điểm hạn chế công cụ phải mô cá hệthốngthờigian thành hệ ô-tô-mát thờigian (một nhiệm vụ dễ dàng người sử dụng) Trong tương lai, tác giả mong muốn mở rộng đặctảkiểmchứng cho hệthống phức tạp với ràng buộc thờigian chặt chẽ hơn, đồng thời tìm hiểu để tự động hóa nhiều từ khâu đặctả 54 TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1] Đỗ Đức Giáo (2000), Toán rời rạc, NXB Đại học Quốc Gia Hà Nội, Hà Nội [2] Phan Đình Diệu (1997), Lý thuyết ơ-tơ-mát thuật toán, NXB Đại học Trung học chuyên nghiệp, Hà nội [3] Vũ Đức Thi (1999), Thuật toán tin học, NXB Khoa học Kỹ thuật, Hà Nội TIẾNG ANH [4] A Belinfante, J Feenstra, R d Vries, J Tretmans, N Goga, L Feijs, S Mauw, and L Heerink (1999), ―Formal test automation: A simple experiment‖ In 12th Int Workshop on Testing of Communicating Systems, pp 179–196 [5] Christel Baier, Joost - Pieter Katoen (2008), Principles of Model Checking, The MIT Press Cambridge, Massachusetts London, England, chepter 1,9 [6] Edmund M Clarke(2008),―The Birth of Model Checking‖,Book 25 Years of Model Checking, pp 1-26 [7] Gerd Behrmann, Alexandre David, and Kim G Larsen (2006), ―A Tutorial on Uppaal 4.0‖, Department of Computer Science, Aalborg University, Denmark [8] Johan Bengtsson Kim Larsen, Fredrik Larsson, Paul Pettersson, Wang Yi (1996),―UPPAAL — a Tool Suite forAutomatic Verification of Real–Time Systems‖,Proceedings of the DIMACS/SYCON workshop on Hybird systems III: verification and control, pp 232-243 [9] Kim G Larsen, Paul Pettersson, Wang Yi 1991 Model - Checking for Real Time Systems Proceedings of the 18th international colloquium on Automata, languages and programming Page 115-126 [10] Kim G Larsen, Paul Pettersson, and Wang Yi (1996),―Diagnostic ModelChecking for Real-Time Systems‖ Appears in Alur, Henzinger and Sontag, editors, DIMACS Workshop on Verification and Control of Hybrid Systems, HYBRID ’96 Proceedings, pp 575–586 55 [11] Le Vo Hue Quan (2012) ―Model Checking Real-Time Systems with Schedulers‖ Japan Adv anced Institute of Science and Technology [12] Luca de Alfaro and Thomas A Henzinger (2001),―Interface Automata‖,Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering,pp 109-120 [13] Marius Mikucionis Kim G, Larsen Brian Nielsen (2004),―T-UPPAAL: Online Model-based Testing of Real-time Systems‖ Proceeding ASE '04 Proceedings of the 19th IEEE international conference on Automated software engineering,pp 396-397 [14] Rajeev Ah and David L Dill (1994),―A theory of timed automata‖,Theoretical Computer Science 126 (1994),pp 183-235 [15] Wang Yi, Paul Pettersson, and Mats Daniels(1995),―Automatic Verification of Real-Time Communicating Systems by Constraint-Solving‖,Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII,pp 243-258 [16] UPPAAL W S www.uppaal.com ... 3.3 Đặc tả Uppaal Việc đặc tả hệ thống thời gian thực Uppaal đặc tả hình thức Trong cơng cụ Uppaal hệ thống có yếu tố thời gian mơ hình hóa thành mạng ơ-tơ-mát thời gian gồm ô-tô-mát thời gian. .. chế kiểm chứng công cụ cho hệ thống thời gian thực Từ tác giả xây dựng số ví dụ (cụ thể tác giả xây dựng ví dụ) số hệ thống thời gian thực áp dụng vào đặc tả kiểm chứng hệ thống cơng cụ Uppaal. .. Với việc đặc tả kiểm chứng hệ thống thời gian thực cơng cụ Uppaal đánh giá tốt sử dụng rộng rãi cơng nghiệp Nhưng bên cạnh việc sử dụng công cụ Uppaal kiểm chứng hệ thống có yếu tố thời gian đòi