Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
3,89 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nơng Gia Tự KIỂM CHỨNG MƠ HÌNH PHẦN MỀM SỬ DỤNG NUSMV 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nơng Gia Tự KIỂM CHỨNG MƠ HÌNH PHẦN MỀM SỬ DỤNG NUSMV KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Phạm Ngọc Hùng HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Lời cảm ơn Lời em xin bày tỏ lòng biết ơn sâu sắc tới TS Phạm Ngọc Hùng, thầy hướng dẫn em tận tình suốt năm học vừa qua Em xin bày tỏ lòng biết ơn tới thầy, cô giáo Khoa Công nghệ thông tin - Trường Đại học Công nghệ - ĐHQGHN Các thầy cô dạy bảo, dẫn chúng em tạo điều kiện tốt cho chúng em học tập suốt trình học đại học đặc biệt thời gian làm khố luận tốt nghiệp Tơi xin cảm ơn bạn sinh viên lớp K51CD lớp K51CNPM cho tơi ý kiến đóng góp giá trị lời động viên khích lệ thực đề tài Cuối xin gửi tới bố mẹ tồn thể gia đình lịng biết ơn tình cảm yêu thương Hà Nội, ngày 15 tháng năm 2008 Nông Gia Tự i LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nơng Gia Tự Tóm tắt Kiểm chứng mơ hình (model checking) hướng tiếp cận hiệu cho việc đảm bảo chất lượng phần mềm Kĩ thuật áp dụng để chứng minh cách tự động tính đắn phần mềm phần mềm không chạy thông qua phản ví dụ Hiện có nhiều cơng cụ kiểm chứng mơ hình phần mềm NuSMV, SPIN, KRONOS Khóa luận nghiên cứu lý thuyết vè kiểm chứng mơ hình, ngơn ngữ SMV dùng để mơ hình hóa hệ thống cách sử dụng NuSMV để kiểm chứng mơ hình phần mềm Kiểm chứng mơ hình thường áp dụng giai đoạn thiết kế việc mơ hình hóa thiết kế hệ thống dễ dàng mơ hình hóa mã nguồn hệ thống Ngồi ra, việc sớm tìm lỗi thiết kế giúp giảm thiểu rủi ro trình phát triển phần mềm Vì chúng tơi tập trung tìm hiểu đề xuất quy trình kiểm chứng mơ hình sử dụng NuSMV giai đoạn thiết kế phần mềm Đồng thời áp dụng quy trình để kiểm chứng mơ hình phần mềm giả lập máy rút tiền tự động ATM ii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Mục lục Chương Giới thiệu 1.1 1.2 1.3 Đặt vấn đề .1 Nội dung nghiên cứu khóa luận Cấu trúc khóa luận Chương Tổng quan kiểm chứng mơ hình NuSMV 2.1 Tổng quan kiểm chứng mô hình 2.1.1 Giới thiệu 2.1.2 Ý nghĩa kiểm chứng mơ hình 2.1.3 Sự khác kiểm chứng mơ hình phần mềm kiểm thử phần mềm 2.2 NuSMV 2.2.1 Giới thiệu 2.2.2 Kiến trúc NuSMV 2.2.3 Sử dụng NuSMV để kiểm chứng mơ hình .8 Chương Giới thiệu logic thời gian 3.1 Khái niệm 3.2 Các toán tử logic thời gian .9 3.2.1 Toán tử globally (toàn thể) 3.2.2 Toán tử next (tiếp theo) .10 3.2.3 Toán tử eventually (cuối xảy ra) .10 3.3 TLT CTL 10 3.4 Sử dụng temporal logic để mô tả số thuộc tính cần kiểm chứng 11 3.4.1 Safety (tính an tồn) 11 3.4.2 Liveness (tính chạy được) 11 3.4.3 Fairness (tính cơng bằng) 12 Chương Ngôn ngữ SMV 13 4.1 Tổng quan .13 4.2 Cấu trúc chương trình viết ngơn ngữ SMV .13 4.3 Các kiểu liệu 13 4.3.1 Khai báo kiểu liệu 13 iii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự 4.3.2 Kiểu logic (boolean), kiểu số nguyên (integer) kiểu liệt kê (enum) 14 4.3.3 Mảng 14 4.3.4 Mảng nhiều chiều 15 4.3.5 Kiểu cấu trúc .15 4.4 Biến phép gán 16 4.5 Các phép toán 16 4.5.1 Phép gán .16 4.5.2 Tóan tử next 17 4.6 Máy trạng thái .18 Chương 20 Áp dụng NuSMV kiểm chứng mơ hình phần mềm giả lập máy ATM 20 5.1 Đề xuất quy trình đặc tả kiểm chứng phần mềm sử dụng NuSMV 20 5.1.1 Những sở để đưa quy trình 20 5.1.2 Mơ tả quy trình 21 5.2 Đặc tả kiểm chứng mơ hình phần mềm giả lập máy ATM 21 5.2.1 Đặc tả yêu cầu 21 5.2.1.1 Mơ tả tốn 21 5.2.1.2 Các tác nhân hệ thống 22 5.2.1.3 Mơ hình ca sử dụng tổng thể hệ thống 22 5.2.1.4 Bật máy 23 5.2.1.5 Tắt máy 23 5.2.1.6 Phiên làm việc 24 5.2.1.7 Giao dịch rút tiền 24 5.2.1.8 Giao dịch chuyển tiền 24 5.2.1.9 Giao dịch vấn tin tài khoản 25 5.2.1.10 Sai mã PIN .25 5.2.2 Đặc tả thuộc tính cần kiểm chứng 25 5.2.3 Thiết kế hệ thống 25 5.2.3.1 Biểu đồ trạng thái tổng thể hệ thống 25 5.2.3.2 Biểu đồ trạng thái trình thực phiên làm việc hệ thống 26 5.2.3.3 Biểu đồ trạng thái trình thực giao dịch hệ thống .27 iv LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nơng Gia Tự 5.2.4 Mơ hình hóa hệ thống ngôn ngữ SMV 28 5.2.4.1 Mơ hình hóa tổng thể hệ thống 28 5.2.4.2 Mơ hình hóa q trình thực phiên làm việc 29 5.2.4.3 Mơ hình hóa q trình thực giao dịch 31 5.2.5 Kiểm chứng mơ hình 33 Chương Kết luận 35 v LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nơng Gia Tự Danh mục hình vẽ Hình 2.1 Ngun tắc họat động kiểm chứng mơ hình Hình 2.2 Sơ đồ kiến trúc NuSMV Hình 5.1 Biểu đồ ca sử dụng hệ thống máy ATM Hình 5.3 Biểu đồ trạng thái trình thực phiên làm việc hệ thống ATM Hình 5.4 Biểu đồ trạng thái trình thực giao dịch hệ thống ATM Hình 5.5 Mơ hình tổng thể hệ thống viết ngơn ngữ SMV Hình 5.6 Mơ hình trình thực phiên làm việc hệ thống ngơn ngữ SMV Hình 5.7 Mơ hình q trình thực giao dịch hệ thống ATM ngơn ngữ SMV Hình 5.8 Kết kiểm chứng mơ hình tổng thể hệ thống Hình 5.9 Kết kiểm chứng mơ hình phiên làm việc hệ thống Hình 5.10 Kết kiểm chứng mơ hình thực giao dịch hệ thống vi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Danh mục từ viết tắt Ký hiệu Thuật ngữ ATM Automated Teller Machine BDD Binary Decision Diagram CTL Computation Tree Logic LTL Linear Time Logic vii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nơng Gia Tự Chương Giới thiệu 1.1 Đặt vấn đề Việc đảm bảo chất lượng phần mềm công đoạn khó khăn việc phát triển phần mềm Trong đó, việc đảm bảo tính đắn thiết kế bước sớm thách thức lớn quy trình phát triển phần mềm Từ trước đến nay, phương pháp giả lập kiểm thử thường sử dụng để kiểm tra thiết kế [5] Tuy nhiên phương pháp bộc lộ nhiều khiếm khuyết điểm yếu nghiêm trọng khơng thể khẳng định chương trình hết lỗi ước lượng số lỗi sót lại thiết kế [5] Kiểm chứng mơ hình kỹ thuật kiểm chứng tự động hệ thống hữu hạn trạng thái Kiểm chứng mơ hình xác minh tính đắn mơ hình việc xác định xem thuộc tính người dùng mong muốn có thỏa mãn mơ hình hay khơng [6] Về ngun tắc hoạt động, hệ thống cần kiểm chứng mô hình hóa Cơng cụ kiểm chứng kiểm tra mơ hình có thỏa mãn thuộc tính cho hay không Nhờ khả duyệt qua tất trạng thái mơ hình mà tính đắn kết kiểm chứng mơ hình ln đảm bảo Ngun tắc họat động kiểm chứng mơ sau: Đóng vai trị xử lý liệu tự động cơng cụ kiểm chứng mơ hình Đầu vào hệ thống cần kiểm chứng mơ hình hóa mơ tả thuộc tính cần kiểm chứng Đầu kết kiểm chứng – kết luận hệ thống hồn tồn thỏa mãn thuộc tính kết luận hệ thống không thỏa mãn nhiều thuộc tính kèm với phản ví dụ Nguyên tắc minh họa hình sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Phần mềm mơ máy ATM Máy ATM có đầu đọc thẻ, hình hiển thị, khe để xuất tiền, máy in để in hóa đơn, cơng tắc để tắt bật tồn máy ATM Máy ATM giao tiếp với máy chủ ngân hàng qua mạng Tuy nhiên phần giao tiếp với ngân hàng khơng đựơc xét đến ví dụ Mỗi lần sử dụng, khách hàng phải đưa thẻ ATM vào nhập mã PIN Dữ liệu kiểm tra Sau khách hàng thực nhiều giao dịch Thẻ ATM máy người dùng không muốn thực thêm giao dịch chọn lấy lại thẻ, ngoại trừ trường hợp nói đến sau Máy ATM cung cấp cho khách hàng dịch vụ sau: Khách hàng rút tiền từ tài khoản Khách hàng chuyển khoản Khách hàng xem số dư tài khoản Sau khách hàng chọn việc thực giao dịch, máy ATM chuyển liệu ngân hàng để kiểm tra Nếu mã PIN khách hàng khơng hợp lệ với giao dịch đó, máy ATM yêu cầu khách hàng nhập lại mã PIN Nếu khách hàng nhập sai mã PIN ba lần, máy ATM giữ thẻ ATM người dùng phải liên hệ với ngân hàng để lấy lại thẻ Nếu giao dịch không thực thành công, máy ATM hiển thị thông báo lỗi Sau giao dịch, máy ATM hiển thị thông báo hỏi người dùng có muốn thực giao dịch khác hay khơng Máy ATM có cơng tắc khởi động để bật tắt toàn máy 5.2.1.2 Các tác nhân hệ thống Hệ thống có ba tác nhân sau: Người điều hành: Người thực chức bật máy, tắt máy để bảo trì hệ thống Người dùng: Người sử dụng hệ thống để thực giao dịch Ngân hàng: Có vai trị kiểm tra thông tin phê duyệt giao dịch hệ thống u cầu 5.2.1.3 Mơ hình ca sử dụng tổng thể hệ thống 22 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Nếu giao dịch không thực thành công, máy ATM hiển thị thông báo lỗi Người điều hành bật máy tắt máy ATM để bảo trì Trong thời điểm, máy ATM thực phiên làm việc để phục vụ người dùng Phiên làm việc bao gồm nhiều giao dịch, người dùng thực việc chuyển tiền, rút tiền, vấn tin tài khoản Trong giao dịch, máy ATM gửi yêu cầu giao dịch đến ngân hàng Ngân hàng xác minh lại thông tin định phê duyệt giao dịch hay khơng Nếu lúc giao dịch, người dùng nhập sai mã PIN nhiều lần máy ATM ngừng giao dịch lại giữ lại thẻ người dùng Các ca sử dụng mô tả hình sau: Bật máy Người điều hành Tắt máy Phiên làm việc Người dùng Sai mã PIN Giao dịch Ngân hàng Rút tiền Chuyển tiền Vấn tin tài khoản Hình 5.1 Biểu đồ ca sử dụng hệ thống máy ATM 5.2.1.4 Bật máy Người bảo trì hệ thống ATM bật máy lên để máy ATM làm việc phục vụ khách hàng 5.2.1.5 Tắt máy 23 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nơng Gia Tự Người bảo trì hệ thống tắt máy ATM, máy ATM trạng thái ngưng họat động bật lên 5.2.1.6 Phiên làm việc Máy ATM vào phiên làm việc Một phiên làm việc bắt đầu khách hàng đưa thẻ ATM vào khe đọc thẻ Máy ATM đưa thẻ vào đọc thẻ (nếu đọc thẻ khơng đọc thẻ máy đưa thẻ ra) Hệ thống yêu cầu khách hàng nhập mã PIN, sau hệ thống đưa danh sách loại giao dịch để khách hàng lựa chọn Sau giao dịch đựơc thực hiện, hệ thống hỏi khách hàng có muốn thực giao dịch khác hay không Nếu khách hàng chọn khơng thực giao dịch máy ATM trả lại thẻ cho khách hàng Nếu giao dịch bị dừng nhiều lần nhập sai mã PIN phiên giao dịch kết thúc thẻ ATM khách hàng bị giữ lại máy Khách hàng kết thúc phiên làm việc cách ấn nút Cancel nhập mã PIN họăc chọn loại giao dịch 5.2.1.7 Giao dịch rút tiền Rút tiền Hệ thống yêu cầu người dùng chọn tài khoản muốn rút Sau yêu cầu người dùng chọn số tiền từ danh sách số tiền rút Hệ thống kiểm tra xem có đủ tiền để thực giao dịch hay không Nếu đủ, hệ thống gửi yêu cầu phê duyệt tới ngân hàng, không đủ, hệ thống yêu cầu người dùng chọn số tiền khác Sau yêu cầu rút tiền ngân hàng phê duyệt, số tiền tương ứng đưa khỏi máy ATM cho người dùng sau hóa đơn xuất Giao dịch rút tiền dừng lại bỏ qua người dùng ấn nút Cancel số tiền cần rút chưa chọn 5.2.1.8 Giao dịch chuyển tiền Hệ thống yêu cầu người dùng chọn chuyển tiền từ tài khoản danh sách tài khoản Sau yêu cầu người dùng chọn tài khoản để chuyển tiền tới Tiếp theo hệ thống yêu cầu nhập số tiền muốn chuyển Sau hệ thống gửi yêu cầu phê duyệt đến ngân hàng Nếu yêu cầu chuyển tiền hợp lệ ngân hàng phê duyệt, hệ thống thông báo giao dịch thành công 24 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự 5.2.1.9 Giao dịch vấn tin tài khoản Hệ thống hiển thị danh sách tài khoản yêu cầu người dùng chọn tài khoản cần vấn tin Sau yêu cầu vấn tin phê duyệt ngân hàng, hệ thống hiển thị thông báo in thông tin tài khỏan cho người dùng 5.2.1.10 Sai mã PIN Trường hợp xảy thực giao dịch, ngân hàng kiểm tra thông tin xác định mã PIN không Hệ thống dừng giao dịch hành yêu cầu người dùng nhập lại mã PIN Nếu mã PIN nhập lại đúng, giao dịch bị dừng tiếp tục thực Nếu mã PIN nhập sai lần hệ thống giữ lại thẻ ATM khách hàng chấm dứt phiên làm việc 5.2.2 Đặc tả thuộc tính cần kiểm chứng Về tổng thể hệ thống, cần đảm bảo hệ thống từ trạng thái ngừng họat động đến lúc đến trạng thái phục vụ người dùng (liveness) Trong trình thực phiên làm việc, muốn đảm bảo rằng, sau đưa thẻ vào, cuối phải trả lại người dùng giữ lại thẻ ATM Trong giao dịch, yêu cầu thực giao dịch cần gửi đến ngân hàng để phê duyệt Do cần đảm bảo rằng, khơng có giao dịch thực hồn tất trước chưa gửi đến ngân hàng để phê duyệt 5.2.3 Thiết kế hệ thống Ở bước này, hệ thống thiết kế Sản phẩm bước biểu đồ tương tác, biểu đồ trạng thái, biểu đồ lớp Tuy nhiên, quy trình kiểm chứng phần mềm xây dựng mơ hình dựa biểu đồ trạng thái nên đây, ngắn gọn, xét đến số biểu đồ trạng thái nhằm minh họa cho việc thực quy trình 5.2.3.1 Biểu đồ trạng thái tổng thể hệ thống 25 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Sau biểu đồ trạng thái tổng thể hệ thống (bao gồm ca sử dụng bật máy tắt máy) Hình 5.2 Biểu đồ trạng thái tổng thể hệ thống ATM 5.2.3.2 Biểu đồ trạng thái trình thực phiên làm việc hệ thống Sau biểu đồ trạng thái trình thực phiên làm việc hệ thống: 26 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Đọc thẻ Nông Gia Tự Thẻ không đọc được/ Hiển thị thông báo “Thẻ không hợp Đọc thẻ thành công Đọc mã PIN Nhấn nút Cancel Đọc mã PIN thành công Chọn giao dịch Chọn giao dịch khác Nhấn nút Cancel Giao dịch chọn Thực giao dịch Người dùng chọn “Kết thúc” Dừng mã PIN nhập sai nhiều lần Đưa thẻ Hình 5.3 Biểu đồ trạng thái trình thực phiên làm việc hệ thống ATM 5.2.3.3 Biểu đồ trạng thái trình thực giao dịch hệ thống Sau biểu đồ trạng trính thực giao dịch hệ thống: 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Bỏ qua Lấy thông tin Thông tin nhập vào Ngân hàng không phê duyệt Gửi thông tin đến ngân hàng Mã PIN không Xử lý trường hợp sai Ngân hàng phê duyệt Mã PIN phê duyệt Hòan thành giao dịch mã PIN Chọn in hóa đơn Bỏ qua in hóa đơn In hóa đơn Nhập sai mã PIN nhiều lần Bỏ qua Hỏi người dùng có thực giao dịch khác khơng Hình 5.4 Biểu đồ trạng thái trình thực giao dịch hệ thống ATM 5.2.4 Mơ hình hóa hệ thống ngơn ngữ SMV 5.2.4.1 Mơ hình hóa tổng thể hệ thống Dựa vào biểu đồ trạng thái tổng thể hệ thống, xây dựng mơ hình ngôn ngữ SMV sau: MODULE main 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mô hình phần mềm sử dụng NuSMV Nơng Gia Tự VAR state_overall: {TAT, CHO, PHUC_VU}; VAR action: {BAT_MAY, TAT_MAY, KHOI_TAO_PHIEN_LAM_VIEC, PHIEN_LAM_VIEC_HOAN_TAT, PHIEN_LAM_VIEC_BI_NGUNG}; ASSIGN init(state_overall) := TAT; init(action) := BAT_MAY; next(state_overall) := case (state_overall = TAT) & (action = BAT_MAY): CHO; (state_overall = CHO) & (action = TAT_MAY): TAT; (state_overall = CHO) & (action = KHOI_TAO_PHIEN_LAM_VIEC): PHUC_VU; (state_overall PHIEN_LAM_VIEC_HOAN_TAT): CHO; = PHUC_VU) & (action = (state_overall PHIEN_LAM_VIEC_BI_NGUNG): CHO; = PHUC_VU) & (action = 1: state_overall; esac; Hình 5.5 Mơ hình tổng thể hệ thống viết ngơn ngữ SMV Trong mơ hình này, cần đảm bảo hệ thống từ trạng thái ngừng họat động đến lúc đến trạng thái phục vụ người dùng (liveness) Thuộc tính mơ tả CTL ngôn ngữ SMV sau: SPEC AG((state_overall = TAT) -> EF(state_overall = PHUC_VU)) 5.2.4.2 Mơ hình hóa q trình thực phiên làm việc Dựa vào biểu đồ trạng thái trình thực phiên làm việc hệ thống (hình 5.3), xây dựng mơ hình ngôn ngữ SMV sau: MODULE main 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự VAR state_session: {DOC_THE, doc the DOC_MA_PIN, doc ma PIN CHON_GIAO_DICH, chosing transaction THUC_HIEN_GIAO_DICH, performing transaction TRA_LAI_THE, ejecting card KET_THUC}; KET_THUC session and not reject card VAR action_session: {THE_KHONG_DOC_DUOC, the khong doc duoc DOC_THE_THANH_CONG, doc the cong NHAN_NUT_BO_QUA, nhan nut bo qua DOC_MA_PIN_THANH_CONG, doc ma PIN cong GIAO_DICH_DUOC_CHON, giao dich duoc chon KHACH_HANG_CHON_THUC_HIEN_GIAO_DICH_KHAC, khach hang chon thuc hien giao dich khac KHACH_HANG_CHON_KET_THUC, thuc phien lam viec khach hang chon ket NGUNG_VI_NHAP_MA_PIN_SAI_QUA_NHIEU}; ngung giao dich vi nhap ma PIN sai qua nhieu ASSIGN init(state_session) := DOC_THE; next(state_session) := case reading card (state_session = THE_KHONG_DOC_DUOC): TRA_LAI_THE; DOC_THE) & (action_session = (state_session = DOC_THE_THANH_CONG): DOC_MA_PIN; DOC_THE) & (action_session = reading pin (state_session = NHAN_NUT_BO_QUA): TRA_LAI_THE; DOC_MA_PIN) & (action_session = (state_session = DOC_MA_PIN) DOC_MA_PIN_THANH_CONG): CHON_GIAO_DICH; & (action_session = 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự choosing transaction (state_session = NHAN_NUT_BO_QUA): TRA_LAI_THE; CHON_GIAO_DICH) & (action_session = (state_session = CHON_GIAO_DICH) GIAO_DICH_DUOC_CHON): THUC_HIEN_GIAO_DICH; & (action_session = performing transaction (state_session = THUC_HIEN_GIAO_DICH) & (action_session KHACH_HANG_CHON_THUC_HIEN_GIAO_DICH_KHAC): CHON_GIAO_DICH; = (state_session = THUC_HIEN_GIAO_DICH) KHACH_HANG_CHON_KET_THUC): TRA_LAI_THE; & (action_session = (state_session = THUC_HIEN_GIAO_DICH) NGUNG_VI_NHAP_MA_PIN_SAI_QUA_NHIEU): KET_THUC; & (action_session = ejecting card (state_session = TRA_LAI_THE) : KET_THUC; 1: state_session; esac; Hình 5.6 Mơ hình trình thực phiên làm việc hệ thống ngơn ngữ SMV Trong mơ hình này, muốn đảm bảo rằng, sau đưa thẻ vào, cuối phải trả lại người dùng giữ lại thẻ ATM (tức hệ thống phải đạt đến trạng thái END): SPEC AG ((state_session = DOC_THE) -> EF(state_session = KET_THUC)) 5.2.4.3 Mơ hình hóa q trình thực giao dịch Dựa vào biểu đồ trạng thái trình thực giao dịch hệ thống (hình 5.4), xây dựng mơ hình ngơn ngữ SMV sau: MODULE main VAR state_transaction: {LAY_THONG_TIN, lay thong tin GUI_THONG_TIN_DEN_NGAN_HANG, gui thong tin den ngan hang 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự XU_LY_SAI_MA_PIN, chosing HOAN_THANH_GIAO_DICH, hoan giao transaction dich THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG, -dich khac hay khong thuc IN_HOA_DON, in hoa don KET_THUC}; ket thuc hien giao VAR action_session: { BO_QUA, an nut bo qua THONG_TIN_DUOC_NHAP_VAO, thong tin duoc nhap vao hop NGAN_HANG_KHONG_PHE_DUYET, ngan hang khong phe duyet NGAN_HANG_PHE_DUYET, ngan hang phe duyet MA_PIN_KHONG_DUNG, ma PIN khong dung NHAP_SAI_MA_PIN_NHIEU_LAN, nhap sai ma PIN nhieu lan MA_PIN_DUOC_PHE_DUYET, ma PIN duoc phe duyet le CHON_IN_HOA_DON, chon in hoa don BO_QUA_IN_HOA_DON}; bo qua in hoa don ASSIGN init(state_transaction) := LAY_THONG_TIN; next(state_transaction) := case lay thong tin (state_transaction = LAY_THONG_TIN) BO_QUA): THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG; & (action_session = (state_transaction = LAY_THONG_TIN) & (action_session THONG_TIN_DUOC_NHAP_VAO): GUI_THONG_TIN_DEN_NGAN_HANG; = gui thong tin den ngan hang (state_transaction = (action_session = THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG; (state_transaction = GUI_THONG_TIN_DEN_NGAN_HANG) & NGAN_HANG_KHONG_PHE_DUYET): GUI_THONG_TIN_DEN_NGAN_HANG) & 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự (action_session = NGAN_HANG_PHE_DUYET): HOAN_THANH_GIAO_DICH; (state_transaction = GUI_THONG_TIN_DEN_NGAN_HANG) (action_session = MA_PIN_KHONG_DUNG): XU_LY_SAI_MA_PIN; & xu ly sai ma PIN (state_transaction = XU_LY_SAI_MA_PIN) & (action_session = NHAP_SAI_MA_PIN_NHIEU_LAN): KET_THUC; (state_transaction = XU_LY_SAI_MA_PIN) & (action_session = BO_QUA): THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG; (state_transaction = XU_LY_SAI_MA_PIN) & (action_session = MA_PIN_DUOC_PHE_DUYET): HOAN_THANH_GIAO_DICH; hoan giao dich (state_transaction = HOAN_THANH_GIAO_DICH) & (action_session = CHON_IN_HOA_DON): IN_HOA_DON; (state_transaction = HOAN_THANH_GIAO_DICH) & (action_session = BO_QUA_IN_HOA_DON): THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG; in hoa don (state_transaction THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG; = IN_HOA_DON) : hoi nguoi dung co thuc hien giao dich khac hay khong (state_transaction = THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG) : KET_THUC; 1: state_transaction; esac; Hình 5.7 Mơ hình q trình thực giao dịch hệ thống ATM ngôn ngữ SMV Trong mơ hình này, muốn đảm bảo khơng có giao dịch thực mà trước liệu khơng gửi đến ngân hàng để phê duyệt: !AG (!(state_transaction = GUI_THONG_TIN_DEN_NGAN_HANG) -> EF(state_transaction = HOAN_THANH_GIAO_DICH)) 5.2.5 Kiểm chứng mơ hình Kết kiểm chứng cho thấy mơ hình thiết kế hồn tồn thỏa mãn thuộc tính đặt ra: 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nơng Gia Tự Hình 5.8 Kết kiểm chứng mơ hình tổng thể hệ thống Hình 5.9 Kết kiểm chứng mơ hình phiên làm việc hệ thống Hình 5.10 Kết kiểm chứng mơ hình thực giao dịch hệ thống 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm chứng mô hình phần mềm sử dụng NuSMV Nơng Gia Tự Chương Kết luận Trong khóa luận chúng tơi trình bày lý thuyết kiểm chứng mơ hình phần mềm, nghiên cứu áp dụng kỹ thuật kiểm chứng mơ hình sử dụng NuSMV công cụ kiểm chứng Chúng đề xuất quy trình kiểm chứng mơ hình phần mềm giai đoạn thiết kế hệ thống sử dụng NuSMV Quy trình áp dụng vào kiểm chứng mơ hình phần mềm giả lập máy rút tiền tự động ATM chứng minh thiết kế hoàn toàn thỏa mãn thuộc tính đặt Khóa luận áp dụng thành cơng kỹ thuật kiểm chứng mơ hình vào kiểm chứng giai đoạn thiết kế phần mềm Tuy nhiên, chưa xét đến việc thẩm định lại thiết kế hệ thống công cụ kiểm chứng trả kết mơ hình hệ thống khơng thỏa mãn thuộc tính Khi thiết kế hệ thống sai bị mơ hình hóa sai Hướng phát triển đề tài áp dụng NuSMV để kiểm chứng mã nguồn phần mềm Một hướng khác xây dựng công cụ mơ hình hóa tự động thiết kế phần mềm 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tài liệu tham khảo Nông Gia Tự Tài liệu tham khảo [1] B Berard, M Bidoit, A Finkel, F Laroussinie, A Petit, L Petrucci, P Schnoebelen Systems and techniques and tools, 2001 [2] Software Verification: model-checking R C Bjork An Example of Object-Oriented Design: An ATM Simulation http://www.math-cs.gordon.edu/courses/cs211/ATMExample [3] M Bozga, C Daws, O Maler, A Olivero, S Tripakis, and S Yovine Kronos: A Model-Checking Tool for Real-Time Systems Proceedings of the 10th international Conference on Computer Aided Verification (June 28 July 02, 1998) A J Hu and M Y Vardi, Eds Lecture Notes In Computer Science, vol 1427 Springer-Verlag, London, 546-550 [4] A Cimatti, E Clarke, F Giunchiglia, M Roveri NuSMV: a new symbolic model checker [5] A Cimatti, E Clarke, E Giunchiglia, F Giunchiglia, M Pistore, M Roveri, R Sebastiani, A Tacchella NuSMV 2: An OpenSource Tool for Symbolic Model Checking In Proceedings of the 14th international Conference on Computer Aided Verification (July 27 - 31, 2002) [6] E M Clarke, Orna Grumberg and Doron A Peled Model Checking MIT Press, 1999, ISBN 0-262-03270-8 [7] H Giese, Safety – Critical computer systems, AG Softwaretechnik, SCCSVI-6x, 2003 [8] G J Holzmann The Model Checker SPIN IEEE Trans Softw Eng 23, (May 1997), 279-295 [9] Kröger, Fred, Merz, Stephan, Temporal logic and state systems, Springer, 2008 ISBN: 978-3-540-67401-6 [10] M Mansouri-Samani, S Pasareanu, J Penix, C Mehlitz, O Malley, C Visser, P Brat, Z Markosian and T Pressburger Program model checking: A practitioner’s guide, Intelligent Systems Division NASA Ames Research Center April 27, 2007, pages 31 – 45 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... kiểm chứng mơ hình phần mềm kiểm thử phần mềm Cả kiểm chứng mơ hình kiểm thử phần mềm thực vai trò đảm bảo chất lượng phần mềm việc tìm lỗi có phần mềm Tuy nhiên kiểm chứng mơ hình kiểm thử phần. .. luanvanchat@agmail.com Kiểm chứng mơ hình phần mềm sử dụng NuSMV Nông Gia Tự Chương Áp dụng NuSMV kiểm chứng mơ hình phần mềm giả lập máy ATM 5.1 Đề xuất quy trình đặc tả kiểm chứng phần mềm sử dụng NuSMV 5.1.1... quan kiểm chứng mơ hình NuSMV 2.1 Tổng quan kiểm chứng mơ hình 2.1.1 Giới thiệu 2.1.2 Ý nghĩa kiểm chứng mô hình 2.1.3 Sự khác kiểm chứng mơ hình phần mềm kiểm thử phần mềm