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ương tranh
ĐẠ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ỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH 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ỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH 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ỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH 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ểm chứng các phần mềm tương tranh 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 i Đặc tả và kiểm chứng các phần mềm tương tranh 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. 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ần mề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ần mềm tương tranh phải được kiểm chứ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ểm chứng các phần mềm tươ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ần mềm tương tranh. Từ đó sử dụng công cụ phân tích máy hữu hạn trạng thái để kiểm chứng xem thiết kế và mã nguồn của phần mề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ểm chứ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ểm chứ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ểm chứng xem mã nguồn có chạy đúng theo thiết kế hay không. ii Đặc tả và kiểm chứng các phần mềm tương tranh MỤC LỤC Lê Hồng Phong .1 HÀ NỘI - 2010 .1 Lê Hồng Phong .2 HÀ NỘI - 2010 .2 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 .2 Chương 2: Các khái niệm cơ bản .4 Trong chương này chúng ta sẽ tìm hiểu một số khái niệm về phương pháp mô hình hóa, máy hữu hạn trạng thái, máy dịch chuyển trạng thái có gán nhãn và công cụ hỗ trợ kiểm chứng LTSA .4 2.1 Phương pháp mô hình hóa 4 Hình 2.1: Nghiên cứu khí động học trên mô hình ô tô .4 2.2 FSP (Finite State Process) 5 2.2.1 Khái niệm FSP . 5 Hình 2.2.1a: Mô hình hóa hành trình bay của máy bay. .6 2.2.2 Các thành phần cơ bản trong FSP 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 2.2.3 Quy trình tuần tự 9 Hình 2.3.1c [1] : Tiến trình tuần tự BOMP 10 Hình 2.3.1d[1]: Sự tổng hợp tuần tự LOOP 10 Hình 2.3.1e[1] : Sự tổng hợp song song hai tiến trình tuần tự .11 2.3 LTS (Labelled Transition System) .11 2.3.1 LTS . 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 12 vi Đặc tả và kiểm chứng các phần mềm tương tranh 2.3.2 Deadlock 12 2.3.2.1 Khái niệm . 12 Hình 2.3.2.1a: Bữa tối của triết gia[1] 13 Hình 2.3.2.1b: Deadlock[1] .13 2.3.2.2 Phân tích Deadlock 13 2.3.3 Thuộc tính An toàn (safety property) .14 2.3.4 Thuộc tính Liveness (Liveness property) .14 2.4 Công cụ LTSA .15 Hình 2.4a: Mô hình hành động của chiếc ô tô .15 Hình 2.4b: LTSA animator điều khiển các hành động trong mô hình 2.4a .15 2.5 Kết luận 16 Chương 3: Kiểm chứng thiết kế 17 3.1 Đặc tả thiết kế bằng FSP 17 Hình 3.1: Mô tả các ô tô đi qua một chiếc cầu hẹp[1] .18 3.3. Kiểm chứng thiết kế bằng LTSA 22 3.3.1 Giao diện của công cụ LTSA 23 Hình 3.3.1: Giao diện công cụ LTSA 23 3.3.2 Check safety . 24 Hình 3.3.2: Kết quả hiển thị sau khi check safety 24 3.3.3 Check Progress 24 Hình 3.3.3: Kết quả hiển thị khi check progress 25 3.3.4 Compile 25 Hình 3.3.4: Kết quả hiển thị khi biên dịch đoạn mã LTS .26 3.3.5 LTS Analiser .26 Hình 3.3.5: LTS Analiser SingleLaneBridge .27 3.3.6 LTSA Animator .28 Hình 3.3.6: Animator SingleLandBridge .29 3.4 Kết luận 30 Chương 4: Kiểm chứng cài đặt .31 4.1 Phương pháp để kiểm chứng cài đặt .31 vii Đặc tả và kiểm chứng các phần mềm tương tranh 4.2 Cách chuyển từ mã nguồn Java sang FSP .31 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 4.3 Ứng dụng để chuyển mã nguồn bài toán “SingleLandBridge” .34 4.5 Kiểm chứng cài đặt 36 Hình 4.5a: Mở tệp SafeBridge bằng công cụ LTSA .36 Hình 4.5b: Check safety phương thức redExit 37 Hình 4.5c: Check prgress phương thức redExit .38 Hình 4.5d: Máy trạng thái REDEXIT 39 Hình 4.5e: Máy trạng thái REDEXIT trong thiết kế .40 4.6 Kết luận 40 Chương 5: Kết luận .41 Tài liệu tham khảo .43 viii Đặc tả và kiểm chứng các phần mềm tương tranh Danh mục các hình vẽ Lê Hồng Phong .1 HÀ NỘI - 2010 .1 Lê Hồng Phong .2 HÀ NỘI - 2010 .2 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 .2 Chương 2: Các khái niệm cơ bản .4 Trong chương này chúng ta sẽ tìm hiểu một số khái niệm về phương pháp mô hình hóa, máy hữu hạn trạng thái, máy dịch chuyển trạng thái có gán nhãn và công cụ hỗ trợ kiểm chứng LTSA .4 2.1 Phương pháp mô hình hóa 4 Hình 2.1: Nghiên cứu khí động học trên mô hình ô tô .4 2.2 FSP (Finite State Process) 5 2.2.1 Khái niệm FSP . 5 Hình 2.2.1a: Mô hình hóa hành trình bay của máy bay. .6 2.2.2 Các thành phần cơ bản trong FSP 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 2.2.3 Quy trình tuần tự 9 Hình 2.3.1c [1] : Tiến trình tuần tự BOMP 10 Hình 2.3.1d[1]: Sự tổng hợp tuần tự LOOP 10 Hình 2.3.1e[1] : Sự tổng hợp song song hai tiến trình tuần tự .11 ix Đặc tả và kiểm chứng các phần mềm tương tranh 2.3 LTS (Labelled Transition System) .11 2.3.1 LTS . 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 12 2.3.2 Deadlock 12 2.3.2.1 Khái niệm . 12 Hình 2.3.2.1a: Bữa tối của triết gia[1] 13 Hình 2.3.2.1b: Deadlock[1] .13 2.3.2.2 Phân tích Deadlock 13 2.3.3 Thuộc tính An toàn (safety property) .14 2.3.4 Thuộc tính Liveness (Liveness property) .14 2.4 Công cụ LTSA .15 Hình 2.4a: Mô hình hành động của chiếc ô tô .15 Hình 2.4b: LTSA animator điều khiển các hành động trong mô hình 2.4a .15 2.5 Kết luận 16 Chương 3: Kiểm chứng thiết kế 17 3.1 Đặc tả thiết kế bằng FSP 17 Hình 3.1: Mô tả các ô tô đi qua một chiếc cầu hẹp[1] .18 3.3. Kiểm chứng thiết kế bằng LTSA 22 3.3.1 Giao diện của công cụ LTSA 23 Hình 3.3.1: Giao diện công cụ LTSA 23 3.3.2 Check safety . 24 Hình 3.3.2: Kết quả hiển thị sau khi check safety 24 3.3.3 Check Progress 24 Hình 3.3.3: Kết quả hiển thị khi check progress 25 3.3.4 Compile 25 Hình 3.3.4: Kết quả hiển thị khi biên dịch đoạn mã LTS .26 3.3.5 LTS Analiser .26 Hình 3.3.5: LTS Analiser SingleLaneBridge .27 3.3.6 LTSA Animator .28 x Đặc tả và kiểm chứng các phần mềm tương tranh Hình 3.3.6: Animator SingleLandBridge .29 3.4 Kết luận 30 Chương 4: Kiểm chứng cài đặt .31 4.1 Phương pháp để kiểm chứng cài đặt .31 4.2 Cách chuyển từ mã nguồn Java sang FSP .31 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 4.3 Ứng dụng để chuyển mã nguồn bài toán “SingleLandBridge” .34 4.5 Kiểm chứng cài đặt 36 Hình 4.5a: Mở tệp SafeBridge bằng công cụ LTSA .36 Hình 4.5b: Check safety phương thức redExit 37 Hình 4.5c: Check prgress phương thức redExit .38 Hình 4.5d: Máy trạng thái REDEXIT 39 Hình 4.5e: Máy trạng thái REDEXIT trong thiết kế .40 4.6 Kết luận 40 Chương 5: Kết luận .41 Tài liệu tham khảo .43 xi [...]... 43 xiv Đặc tả và kiểm chứng các phần mềm tương tranh xv Đặc tả và kiểm chứng các phần mềm tương tranh 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ểm chứng với đặc tả là LTS vii Đặc tả và kiểm chứng các phần mềm tương tranh Chương 1: Giới... hiểu một số khái niệm phần mềm tươ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 cụ hỗ trợ kiểm chứng LTSA Đây là những khái niệm cơ bản mà chúng ta sẽ phải trang bị để có thể thực hiện đặc tả và kiểm chứng thiết kế, cài đặt một phần mềm tương tranh mà chúng ta sẽ tìm hiểu ở hai chương sau 16 Đặc tả và kiểm chứng các phần mềm tương tranh Chương 3: Kiểm chứng thiết kế Một bản... nhất là các phần mềm tương tranh Cách tiếp cận của khóa luận là: 1 Đặc tả và kiểm chứng các phần mềm tương tranh 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ểm chứng thiết kế đó Sau khi thiết kế đã được kiểm tra và thẩm định tính đúng đắn, chúng ta 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ần mềm nói chung và phần mềm tương tranh nói riêng Phần mềm được lập trình ra có đạt yêu cầu hay không là 4 Đặc tả và kiểm chứng các phần mềm tương tranh 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ần mềm là hết sức quan trọng... 4].{sitdown,eat}} 11 Đặc tả và kiểm chứng các phần mềm tương tranh Phân tích mẫu LTS này ta được 2 mô hình tương ứng: Hình 2.3.1a: Máy trạng thái PHIN Hình 2.3.1b: Máy trạng thái FORK 2.3.2 Deadlock 2.3.2.1 Khái niệm Deadlock xảy ra trong hệ thống khi tất cả các tiến trình của hệ thống đều bị chặn hoặc không đủ điều kiện để tiến trình đó hoạt động 12 Đặc tả và kiểm chứng các phần mềm tương tranh Một ví dụ... chuyển tiếp và không có chuyển tiếp nào từ bên trong tập hợp ra trạng thái bên ngoài tập hợp 14 Đặc tả và kiểm chứng các phần mềm tương tranh 2.4 Công cụ LTSA LTSA (Labelled Transition System Analiser) là một công cụ hỗ trợ kiểm chứng với đặc tả là LTS LTSA sử dụng để kiểm tra tính mong muốn và không mong muốn cho tất cả các trình tự có thể có của các sự kiện và hành động [1] LTSA được tải miễn phí... công cụ hỗ trợ kiểm chứng LTSA để kiểm chứ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ểm chứng LTSA để kiểm tra xem chương trình có lỗi và đúng với thiết kế không 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: 2 Đặc tả và kiểm chứng các phần mềm tương tranh Chương 1 trình bày nhu cầu... này đã đượ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úng ta 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ểm chứng các phần mềm tương tranh Hình 3.1: Mô tả các ô tô đi... vậy, yêu cầu kiểm chứng an toàn cho các hệ thống tương tranh là hoàn toàn tất yếu Hiện nay, song song với quá trình sản xuất phần mềm luôn có một quá trình kiểm thử (testing) phần mề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ần mề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... hacanh là các hành động 6 Đặc tả và kiểm chứng các phần mềm tương tranh 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 P nếu hành động đầu tiên xảy ra là y Ví dụ mô tả việc . ĐẠ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ỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH KHOÁ LUẬN TỐT NGHIỆP ĐẠI. 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ỂM CHỨNG CÁC PHẦN MỀM TƯƠNG TRANH KHÓA LUẬN TỐT NGHIỆP HỆ