Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 53 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
53
Dung lượng
1,34 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Hồng Phong ĐẶC TẢVÀKIỂMCHỨNGCÁCPHẦNMỀMTƯƠNGTRANH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Hồng Phong ĐẶC TẢVÀKIỂMCHỨNGCÁCPHẦNMỀMTƯƠNGTRANH KHÓA LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY Ngành: công nghệ phần ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Hồng Phong ĐẶC TẢVÀKIỂMCHỨNGCÁCPHẦNMỀMTƯƠNGTRANH KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: Ts. Phạm Ngọc Hùng Cán bộ đồng hướng dẫn: Ths. Đặng Việt Dũng HÀ NỘI - 2010 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh i LỜI CẢM ƠN Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc đến thầy Phạm Ngọc Hùng và thầy Đặng Việt Dũng đã tận tình hướng dẫn, chỉ bảo em trong quá trình thực hiện đề tài. Em xin chân thành cảm ơn các thầy cô giáo trong Khoa Công nghệ Thông tin, trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu trong suốt thời gian qua. Con xin chân thành cảm ơn ông bà, cha mẹ đã luôn động viên, ủng hộ con trong suốt thời gian học tập và thực hiện khóa luận tốt nghiệp. Tôi xin cảm ơn sự quan tâm, giúp đỡ và ủng hộ của anh chị em, bạn bè trong quá trình thực hiện khóa luận. Mặc dù đã cố gắng hoàn thành khóa luận trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý thầy cô vàcác bạn. Hà Nội, ngày 15 tháng 5 năm 2010 Sinh viên thực hiện Lê Hồng Phong Đặc tảvàkiểmchứngcácphầnmềmtươngtranh ii TÓM TẮT Phầnmềmtương tranh, một phầnmềm được ứng dụng rộng rãi trong các hệ thống nhúng vàcác hệ thống điều khiển. Chúng có vai trò vô cùng quan trọng trong việc điều khiển các hệ thống đó. Chỉ cần một lỗi nhỏ của phầnmềm có thể gây ra hậu quả vô cùng nghiêm trọng vì những hệ thống này có thể trực tiếp và gián tiếp ảnh hưởng đến cuộc sống của con người. Chính vì vậy phầnmềmtươngtranh phải được kiểmchứng để giảm thiểu tối đa lỗi của chương trình. Vì những lý do đó, đề tài “Đặc tảvàkiểmchứngcácphầnmềmtương tranh” đề cập tới phương pháp hình thức, các lý thuyết về máy hữu hạn trạng thái (Finite State Process, FSP) và sử dụng máy hữu hạn trạng thái để đặc tả thiết kế và mã nguồn của phầnmềmtương tranh. Từ đó sử dụng công cụ phân tích máy hữu hạn trạng thái để kiểmchứng xem thiết kế và mã nguồn của phầnmềm có lỗi và chạy đúng theo yêu cầu không. Do thời gian có hạn nên phần thực nghiệm trong khóa luận này em chỉ thực hiện kiểmchứng một applet được viết bằng Java. Thiết kế của bài toàn đã được đặc tả sẵn bằng FSP. Nhiệm vụ của em là kiểmchứng xem thiết kế đó có lỗi xác hay không và chuyển mã nguồn Java của applet thành FSP để kiểmchứng xem mã nguồn có chạy đúng theo thiết kế hay không. Đặc tảvàkiểmchứngcácphầnmềmtươngtranh vi MỤC LỤC Chương 1: Giới thiệu 1 1.1 Nhu cầu thực tế và lý do thực hiện đề tài 1 1.2 Mục tiêu của đề tài 2 1.3 Nội dung của khóa luận 3 Chương 2: Các khái niệm cơ bản 4 2.1 Phương pháp mô hình hóa 4 2.2 FSP 5 2.2.1 Khái niệm FSP 5 2.2.2 Các thành phần cơ bản trong FSP 6 2.2.3 Quy trình tuần tự 9 2.3 LTS 11 2.3.1 LTS 11 2.3.2 Deadlock 13 2.3.2.1 Khái niệm 13 2.3.2.2 Phân tích Deadlock 14 2.3.3 Thuộc tính An toàn 14 2.3.4 Thuộc tính Liveness 15 2.4 Công cụ LTSA 15 2.5 Kết luận 16 Chương 3: Kiểmchứng thiết kế 17 3.1 Đặc tả thiết kế bằng FSP 17 3.3. Kiểmchứng thiết kế bằng LTSA 23 3.3.1 Giao diện của công cụ LTSA 23 3.3.2 Check safety 24 3.3.3 Check Progress 25 3.3.4 Compile 25 3.3.5 LTS Analiser 27 3.3.6 LTSA Animator 28 3.4 Kết luận 30 Chương 4: Kiểmchứng cài đặt 31 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh vii 4.1 Phương pháp để kiểmchứng cài đặt 31 4.2 Cách chuyển từ mã nguồn Java sang FSP 31 4.3 Ứng dụng để chuyển mã nguồn bài toán “SingleLandBridge” 34 4.5 Kiểmchứng cài đặt 36 4.6 Kết luận 41 Chương 5: Kết luận 42 Tài liệu tham khảo 43 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh viii Danh mục các hình vẽ Hình 2.1: Nghiên cứu khí động học trên mô hình ô tô 4 Hình 2.2.1a: Mô hình hóa hành trình bay của máy bay 6 Hình 2.2.2a: Máy trạng thái DRINKS 7 Hình 2.2.2b: Máy trạng thái Gate 8 Hình 2.3.1c: Tiến trình tuần tự BOMP 10 Hình 2.3.1d: Sự tổng hợp tuần tự LOOP 10 Hình 2.3.1e : Sự tổng hợp song song hai tiến trình tuần tự. 11 Hình 2.3.1a: Máy trạng thái PHIN 12 Hình 2.3.1b: Máy trạng thái FORK 13 Hình 2.3.2.1a: Bữa tối của triết gia 13 Hình 2.3.2.1b: Deadlock 14 Hình 2.4a: Mô hình hành động của chiếc ô tô 16 Hình 2.4b: LTSA animator điều khiển các hành động trong mô hình 2.4a 16 Hình 3.1: Mô tảcác ô tô đi qua một chiếc cầu hẹp 18 Hình 3.3.1: Giao diện công cụ LTSA 23 Hình 3.3.2: Kết quả hiển thị sau khi check safety 24 Hình 3.3.3: Kết quả hiển thị khi check progress 25 Hình 3.3.4: Kết quả hiển thị khi biên dịch đoạn mã LTS 26 Hình 3.3.5: LTS Analiser SingleLaneBridge 27 Hình 3.3.6: Animator SingleLandBridge 29 Hình 4.5a: Mở tệp SafeBridge bằng công cụ LTSA 37 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh ix Hình 4.5b: Check safety phương thức redExit 38 Hình 4.5c: Check prgress phương thức redExit 39 Hình 4.5d: Máy trạng thái REDEXIT 40 Hình 4.5e: Máy trạng thái REDEXIT trong thiết kế. 41 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh x Danh mục các bảng biểu Bảng 4.3.2a Những toán tử tương đương giữa FSP và Java 32 Bảng 4.3.2b: Các thành phần cơ bản khi chuyển từ Java sang FSP: 32 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh vii BẢNG KÝ TỰ VIẾT TẮT Ký tự viết tắt Ý nghĩa FSP (Finite State Process) Máy hữu hạn trạng thái LTS (Labelled Transition System) Máy dịch chuyển trạng thái có gán nhãn LTSA (LTS Analyzer) Công cụ hỗ trợ kiểmchứng với đặc tả là LTS [...]... nhất là cácphầnmềmtươngtranh Cách tiếp cận của khóa luận là: 1 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh Trước hết, phải đảm bảo có một thiết kế đúng, chính xác bằng cách đặc tả thiết kế bằng FSP[1] và sử dụng công cụ LTSA[1][4] để kiểmchứng thiết kế đó Sau khi thiết kế đã được kiểm tra và thẩm định tính đúng đắn, chúngta tiến hành cài đặt chương trình Sau khi đã xây dựng xong phần mềm, có... tế từ đó cho kết quả kiểm tra tương đối chính xác Thiết kế có vai trò vô cùng quan trọng trong sản xuất phầnmềm nói chungvàphầnmềmtươngtranh nói riêng Phầnmềm được lập trình ra có đạt yêu cầu hay 4 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh không là phụ thuộc vào thiết kế có chính xác hay không? Chính vì vậy, lựa chọn phương pháp thiết kế phù hợp với đặc tính của phầnmềm là hết sức quan trọng... hóa, máy hữu hạn trạng thái FSP và công cụ hỗ trợ kiểmchứng LTSA Đây là những khái niệm cơ bản mà chúngta sẽ phải trang bị để có thể thực hiện đặc tảvàkiểmchứng thiết kế, cài đặt một phầnmềmtươngtranh mà chúngta sẽ tìm hiểu ở hai chương sau 16 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh Chương 3: Kiểmchứng thiết kế Một bản thiết kế, dù cẩn thận và chi tiết đến đâu cũng có thế tồn tại thiếu...Đặc tả và kiểmchứng các phầnmềmtươngtranh Chương 1: Giới thiệu 1.1 Nhu cầu thực tế và lý do thực hiện đề tài Ngày nay, cùng với sự phát triển mạnh mẽ của máy móc phục vụ đời sống con người là sự phát triển âm thầm của các hệ thống tươngtranhChúng được tạo ra để điều khiển hoạt động của những máy móc đó Một hệ thống tươngtranh có thể bao gồm cả phầnmềmvàphần cứng nhưng cũng có thể chỉ có phần. .. dụng công cụ hỗ trợ kiểmchứng LTSA để kiểmchứng thiết kế của một hệ thống điều khiển được đặc tả bằng FSP Đặc tả mã nguồn Java của hệ thống điều khiển trên bằng FSP, sử dụng công cụ hỗ trợ kiểmchứng LTSA để kiểm tra xem chương trình có lỗi và đúng với thiết kế không 2 Đặc tảvàkiểmchứngcácphầnmềmtươngtranh 1.3 Nội dung của khóa luận Nội dung của khóa luận gồm 5 chương: Chương 1 trình bày... 15 Đặc tả và kiểmchứng các phầnmềmtươngtranh Hình 2.4a: Mô hình hành động của chiếc ô tô Hình 2.4b: LTSA animator điều khiển các hành động trong mô hình 2.4a Mỗi hành động được chọn trong Animator sẽ điều khiển các hoạt động tương ứng trong mô hình 2.5 Kết luận Trong chương này, chúngta đã tìm hiểu một số khái niệm phầnmềmtương tranh, phương pháp mô hình hóa, máy hữu hạn trạng thái FSP và công... kiểmchứng an toàn cho các hệ thống tươngtranh là hoàn toàn tất yếu Hiện nay, song song với quá trình sản xuất phầnmềm luôn có một quá trình kiểm thử (testing) phầnmềm Tuy nhiên, kiểm thử là chưa đủ vì các phương pháp kiểm thử hiện tại chỉ là kiểm tra dữ liệu đầu ra của phầnmềm rồi so sánh với dữ liệu đầu vào để kiểm tra xem chương trình chạy có lỗi hay không Chúng không hề kiểm tra được chi tiết... Maybay) 6 Đặc tả và kiểmchứng các phầnmềmtươngtranh Trong đó: Maybay là một tiến trình catcanh, bay, hacanh là các hành động Lựa chọn (| Choice): Nếu x, y là các hành động thì (x -> Q | y -> P) mô tả một tiến trình trong đó các hành động đầu tiên tham gia là x hoặc y Các hành động tiếp theo hoạt động theo mô tả của Q nếu hành động đầu tiên xảy ra là x, các hành động tiếp theo hoạt động theo mô tả của... đã được đặc tả bằng FSP trong các ví dụ có sẵn của công cụ LTSA Ví dụ này mang tên “SingleLandBridge” Tuy nhiên, chúngta sẽ tìm hiểu chi tiết cách đặc tả thiết kế bằng các máy trạng thái FSP Ta quy định ô tô qua chiếc cầu sẽ phân thành hai loại là ô tô đỏ (red) đi từ phía tây sang và ô tô xanh (blue) đi từ phía đông sang 17 Đặc tả và kiểmchứng các phầnmềmtươngtranh Hình 3.1: Mô tảcác ô tô đi... -> BLUE[i+1] |when(i==1)blue[ID].exit -> ONEWAY |when( i>1)blue[ID].exit -> BLUE[i-1] ) 22 Đặc tả và kiểmchứng các phầnmềmtươngtranh 3.3 Kiểmchứng thiết kế bằng LTSA Sau khi đã đặc tả xong thiết kế của bài toán bằng FSP chúngta tiến hành kiểmchứng thiết kế đó bằng cách sử dụng công cụ hỗ trợ kiểmchứng LTSA để phân tích mẫu LTS vừa được tạo ra 3.3.1 Giao diện của công cụ LTSA LTSA có giao diện . Đặc tả và kiểm chứng các phần mềm tương tranh ii TÓM TẮT Phần mềm tương tranh, một phần mềm được ứng dụng rộng rãi trong các hệ thống nhúng và các hệ thống điều khiển là các phần mềm tương tranh. Cách tiếp cận của khóa luận là: Đặc tả và kiểm chứng các phần mềm tương tranh 2 Trước hết, phải đảm bảo có một thiết kế đúng, chính xác bằng cách đặc tả. LTSA Animator 28 3.4 Kết luận 30 Chương 4: Kiểm chứng cài đặt 31 Đặc tả và kiểm chứng các phần mềm tương tranh vii 4.1 Phương pháp để kiểm chứng cài đặt 31 4.2 Cách chuyển từ mã nguồn