Mô hình hóa quá trình thực hiện giao dịch

Một phần của tài liệu LUẬN VĂN:KIỂM CHỨNG MÔ HÌNH PHẦN MỀM SỬ DỤNG NUSMV docx (Trang 40 - 42)

Dựa vào biểu đồ trạng thái quá trình thực hiện giao dịch của hệ thống (hình 5.4), chúng ta xây dựng được mô hình bằng ngôn ngữ SMV như sau:

MODULE main VAR

state_transaction: {LAY_THONG_TIN, -- lay thong

tin

GUI_THONG_TIN_DEN_NGAN_HANG, -- gui thong tin

XU_LY_SAI_MA_PIN, -- chosing transaction

HOAN_THANH_GIAO_DICH, -- hoan thanh giao

dich

THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG, -- thuc hien giao dich khac hay khong

IN_HOA_DON, -- in hoa don

KET_THUC}; -- ket thuc

VAR

action_session: {

BO_QUA, -- an nut bo qua

THONG_TIN_DUOC_NHAP_VAO, -- thong tin duoc nhap vao hop

le

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

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) & (action_session = BO_QUA): THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG;

(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 = GUI_THONG_TIN_DEN_NGAN_HANG) & (adsbygoogle = window.adsbygoogle || []).push({});

(action_session = NGAN_HANG_KHONG_PHE_DUYET):

THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG;

(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 thanh 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 = IN_HOA_DON) :

THUC_HIEN_GIAO_DICH_KHAC_HAY_KHONG;

-- 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 quá trình thực hiện giao dịch của hệ thống ATM bằng ngôn ngữ SMV.

Trong mô hình này, chúng ta muốn đảm bảo rằng không có giao dịch nào được thực hiện mà trước đó dữ liệu không được 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))

Một phần của tài liệu LUẬN VĂN:KIỂM CHỨNG MÔ HÌNH PHẦN MỀM SỬ DỤNG NUSMV docx (Trang 40 - 42)