Máy trạng thái hữu hạn mở rộng là một mô hình nâng cao dựa trên máy trạng thái hữu hạn truyền thống. Một máy trạng thái hữu hạn sẽ có ba thành phần chính:
Các trạng thái
Các hàm chuyển trạng thái Các sự kiện đầu vào và đầu ra.
Theo [8], máy trạng thái hữu hạn mở rộng cung cấp thêm thành phần nữa là các tác vụ và các quyết định. EFSM thường dùng trong các vấn đề phức tạp, khi mà số lượng trạng thái là lớn.
Một máy ATM hoạt động dựa trên ba thành phần tương tác chính là: khách hàng, máy ATM, và ngân hàng (hay có thể hiểu là máy chủ của ngân hàng). Khách hàng tương tác với máy ATM thông qua các màn hình hiển thị các chức năng đăng nhập, rút tiền, gửi tiền và truy vấn tài khoản. Máy ATM có trách nhiệm nhận các yêu cầu của khách hàng, chuyển các yêu cầu đó đến ngân hàng để kiểm tra tính hợp lệ của giao dịch, nhận kết quả trả về từ ngân hàng cho các yêu cầu đó và gửi lại kết quả của yêu cầu cho khách hàng. Ngân hàng làm nhiệm vụ nhận các yêu cầu từ máy ATM, xử lý thông tin, kiểm tra tính hợp lệ của giao dịch, và trả lại thông tin cho máy ATM.
Hình 6.1 bên dưới mô tả máy trạng thái hữu hạn mở rộng của máy ATM[8]. Máy trạng thái EFSM có bốn trạng thái và mười phép chuyển trạng thái. Mỗi phép chuyển trạng thái đều có gẵn nhãn [7]. Ví dụ, “PIN/rOK[try <=2], Logon” tức là nếu khách hàng nhập mã PIN đúng với dưới ba lần đăng nhập, thì hệ thống đăng nhập thành công và hiển thị các chức năng rút tiền, gửi tiền và truy vấn tài khoản cho khách hàng lựa
chọn; “PIN/Invalid [try <2], Logon” từ trạng thái Init đến trạng thái Re-Logon thể hiện rằng nếu khách hàng nhập sai mã PIN dưới hai lần thì khách hàng có cơ hội đăng nhập lại lần thứ ba (tiếp tục được Re-Logon); hay nhãn “Withdraw Amount/ r2ManyWD[MaxTimesW >=6]” trong trạng thái Withdraw/ Deposit/ Inquiry Balance thể hiện rằng nếu khách hàng nhập số tiền cần rút tới lần thứ sáu – yêu cầu rút tiền quá sáu lần thì hệ thống sẽ trả về lỗi r2ManyWD – lỗi yêu cầu rút tiền quá sáu lần trong một phiên giao dịch.
Hình 6.1. EFSM của máy rút tiền tự động