Với nghiệp vụ bài toán đặt ra, ta thể hiện dưới dạng lược đồ cộng tác UML và biểu đồ tuần tự để mô tả sự tương tác giữa các cấu phần tham gia hệ thống. Nghiệp vụ bài toán trên có các cấu phần tham gia và tương tác với nhau đó là: giao dịch, thẻ, hóa đơn, nhật ký, ATM, Mạng, Đầu đọc thẻ, giao diện khách hàng, in hoa đơn, tin nhắn.
Trước hết, ta thể hiện mô hình tương tác cấu phần hệ thống trên thông qua biểu đồ cộng tác của một mô hình khởi động hệ thống.
Hình 3.2. Biểu đồ trình tự khởi động hệ thống
Hệ thống được bắt đầu khi nhà điều hành này bật công tắc. Nhà điều hành sẽ được yêu cầu nhập số tiền hiện tại trong máy rút tiền, và một kết nối với ngân hàng sẽ được thiết lập. Sau đó các dịch vụ của khách hàng có thể bắt đầu.
Hình 3.3a. Biểu đồ trình tự tắt hệ thống
50
Hệ thống tắt khi nhà điều hành đảm bảo rằng không có khách hàng đang sử dụng máy tính và sau đó tắt công tắc. Kết nối tới ngân hàng sẽ được đóng lại, nhà điều hành tự do để loại bỏ phong bì, bổ sung tiền mặt và giấy,…
Hình 3.3b. Biểu đồ trạng thái bật và tắt hệ thống
Hình 3.4. Biểu đồ trình tự phiên
Một phiên giao dịch được bắt đầu khi một khách hàng chèn thẻ ATM vào khe đọc thẻ. ATM kéo thẻ vào máy và đọc nó (nếu đầu đọc thẻ không thể đọc thẻ do chèn không đúng hoặc do phần từ bị hỏng, thẻ được đẩy ra, một màn hình lỗi được hiển thị và phiên này hủy bỏ.) Khách hàng được hỏi nhập PIN của họ, và sau đó thực hiện một hoặc nhiều giao dịch, lựa chọn từ danh mục các loại có thể có của giao dịch trong từng trường hợp. Sau mỗi giao dịch, khách hàng được hỏi liệu có muốn thực hiện giao dịch khác không. Khi khách hàng thông qua các giao dịch thực hiện, thẻ sẽ được trả ra từ máy và kết thúc phiên. Nếu giao dịch là hủy do nhập PIN sai nhiều lần, phiên cũng bị hủy bỏ và thẻ sẽ bị giữ lại trong máy.
Khách hàng có thể hủy phiên bằng cách ấn phím hủy khi nhập mã PIN hoặc chọn loại giao dịch.
Hình 3.5. Biểu đồ trạng thái phiên
52
Hình 3.6. Biểu đồ trình tự giao dịch
Lưu ý: giao dịch là một khái quát trừu tượng. Mỗi loại giao dịch cụ thể thực hiện các thao tác nhất định. Luồng sự kiện như ở hình 3.2.3.4 miêu tả các hành vi phổ biến cho tất cả các giao dịch. Các luồng sự kiện của mỗi loại giao dịch riêng (rút tiền, gửi tiền, chuyển tiền, truy vấn) cho các đắc trưng cụ thể cho mỗi loại giao dịch.
Một giao dịch use case được bắt đầu trong một phiên khi khách hàng chọn một loại giao dịch từ danh mục tùy chọn. Khách hàng sẽ được yêu cầu cung cấp chi tiết thích hợp (ví dụ như tài khoản tham gia, số tiền). Giao dịch sau đó sẽ được gửi tới ngân hàng, cùng với thông tin thẻ của khách hàng và PIN của khách hàng nhập.
Nếu ngân hàng chấp nhận giao dịch, mọi bước cần thiết để hoàn thành giao dịch (ví dụ như trả tiền hoặc chấp nhận phong bì) sẽ được thực hiện, và sau đó một hóa đơn sẽ được in. Sau đó khách hàng sẽ được hỏi liệu có muốn thực hiện giao dịch khác không.
Nếu ngân hàng báo cáo PIN của khách hàng không hợp lệ, nếu thẻ khách hàng bị giữ do quá nhiều PIN không hợp lệ, giao dịch sẽ bị hủy và khách hàng không được cung cấp tùy chọn để thực hiện giao dịch khác.
Nếu một giao dịch bị hủy bỏ do khách hàng, hoặc lỗi vì bất kỳ lý do nào khác PIN không hợp lệ, một màn hình hiển thị thông báo khách hàng lý do lỗi của giao dịch, và sau đó khách hàng sẽ có cơ hội thực hiện giao dịch khác.
Khách hàng có thể hủy giao dịch bằng án phím hủy.
Tất cả tin nhắn đến ngân hàng và phản hồi là ghi lại trong nhật ký ATM.
Hình 3.7. Biểu đồ trạng thái cho một loại giao dịch
54
Hình 3.8. Biểu đồ cộng tác giao dịch rút tiền
Một giao dịch rút tiền yêu cầu khách hàng chọn loại tài khoản rút tiền (ví dụ tài khoản) từ danh mục tài khoản có, và chọn một số tiền từ dnah mục số tiền có. Hệ thống xác minh nó có đủ tiền mặt để đáp ứng yêu cầu trước khi gửi giao dịch đến ngân hàng (nếu không khách hàng được thông báo và yêu cầu nhập số tiền khác.) Nếu giao dịch được chấp nhận bởi ngân hàng, số tiền tương ứng được phát ra từ máy trước khi phát hóa đơn (phân phát tiền cũng được ghi vào nhật ký ATM.)
Giao dịch rút tiền có thể được hủy bởi khách hàng ấn nút hủy bất kỳ thời gian nào trước khi lựa chọn số tiền.
Hình 3.9. Biểu đồ cộng tác giao dịch gửi tiền
Giao dịch gửi tiền yêu cầu khách hàng chọn một loại tài khoản để gửi tiền vào (ví dụ tài khoản) từ danh mục tài khoản có, và gõ số tiền trên bàn phím. Giao dịch này ban đầu được gửi đến ngân hàng để kiểm tra xem máy ATM có thể chấp nhận một khoản tiền gửi từ khách hàng tới tài khoản này không. Nếu giao dịch được chấp nhận, máy chấp nhận một phong bì từ khách hàng chứa tiền mặt trước khi nó phát hóa đơn. Một khi phong bì đã được nhận, tin nhắn được gửi tới ngân hàng để xác nhận rằng ngân hàng có thể công nhận tài khoản khách hàng - đội ngũ xác minh nội dung phong bì tiền gửi bằng thao tác sau đó (hóa đơn của phong bì cũng được ghi vào nhật ký ATM.)
Giao dịch gửi tiền có thể được hủy do khách hàng ấn phím hủy bất cứ thời gian trước khi chèn phong bì có chứa tiền gửi, giao dịch tự động hủy nếu khách hàng thất bại khi chèn phong bì chứa tiền gửi trong thời gian hợp lý sau khi được yêu cầu làm như vậy.
56
Hình 3.10. Biểu đồ cộng tác giao dịch chuyển tiền
Giao dịch chuyển tiền yêu cầu khách hàng chọn loại tài khoản để chuyển từ (ví dụ tài khoản) từ danh mục tài khoản có, tới tài khoản khác chuyển tới, và nhập số tiền từ bàn phím. Không có hành động nào được yêu cầu một khi giao dịch được chấp nhận bởi ngân hàng trước khi in hóa đơn.
Giao dịch chuyển tiền có thể được hủy bởi khách hàng khi ấn nút hủy bất kỳ lúc nào trước khi nhập tiền.
Hình 3.11. Biểu đồ cộng tác giao dịch truy vấn
Giao dịch truy vấn (điều tra số dư) yêu cầu khách hàng chọn loại tài khoản để truy vấn từ danh mục tài khoản có. Không có hành động nào được yêu cầu một khi giao dịch được chấp nhận bới ngân hàng trước khi in hóa đơn (biên lai).
Giao dịch truy vấn có thể được hủy bởi khách hàng khi ấn phím hủy bất kỳ thời gian nào trước khi lựa chọn tài khoản truy vấn.
Hình 3.12. Biểu đồ cộng tác PIN không hợp lệ
PIN không hợp lệ được bắt đầu từ trong một giao dịch khi báo cáo ngân hàng các giao dịch không được chấp nhận do PIN không hợp lệ, khách hàng được yêu cầu nhập lại PIN và các yêu cầu ban đầu được gửi lại cho ngân hàng. Nếu mã PIN nhập lại thành công. Nó được sử dụng cho giao dịch hiện tại và tất cả các giao dịch về sau. Còn nếu ma PIN không đúng thì quá trình mã PIN được nhập lại. Nếu khách hàng nhập ba lần thất bại thẻ được giữ vĩnh viễn, một màn hình hiển thị thông báo cho khách hàng về điều này và đề xuất liên lạc với ngân hàng.
Nếu khách hàng ấn phím hủy thay cho nhập lại PIN. giao dịch ban đầu bị hủy bỏ.
58
3.3. Sinh test case, test path để kiểm thử trên mô hình UML
Ta xây dựng các tình huống kiểm thử ứng với use case “rút tiền, gửi tiền, chuyển tiền, truy vấn. PIN hợp lệ” trong bài toán thực tiễn phát biểu trên.
Tình huống Các bước thực hiện Kết quả mong đợi
Rút Tiền (Withdrawal).
Thực hiện giao dịch rút tiền từ tài khoản
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“tài khoản”.
- Chọn số tiền muốn rút (nhỏ hơn tổng số dư của “tài khoản”.)
Chương trình thực hiện giao dịch thành công, tiền bị trừ trong
“tài khoản” tương ứng số tiền rút, máy phát tiền trả số tiền vừa rút và hiển thị các thông tin giao dịch rút tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“tài khoản”.
- Chọn số tiền muốn rút (lớn hơn tổng số dư của “tài khoản”.)
Chương trình hiển thị thông báo lỗi “số dư tài khoản không đủ”, tiền không bị trừ từ “tài khoản”
và không rút được tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“tài khoản”.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Thực hiện giao dịch rút tiền từ tiết kiệm
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“tiết kiệm”.
- Chọn số tiền muốn rút (nhỏ hơn tổng số dư của “tiết kiệm”)
Chương trình thực hiện giao dịch thành công, tiền bị trừ trong
“tiết kiệm” tương ứng số tiền rút, máy phát tiền trả số tiền vừa rút và hiển thị các thông tin giao dịch rút tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không ? co/khong
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“tiết kiệm”.
- Chọn số tiền muốn rút (lớn hơn tổng số dư của “tiết kiệm”)
Chương trình hiển thị thông báo lỗi “số dư tài khoản không đủ”.tiền không bị trừ từ “tiết kiệm” và không rút được tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“tiết kiệm”.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong
Thực hiện giao Mở chức năng “rút tiền”. Chương trình hiển thị thông báo
Tình huống Các bước thực hiện Kết quả mong đợi
dịch rút tiền từ thị trường tiền tệ
- Chọn loại tài khoản muốn rút là
“thị trường tiền tệ”.
- Chọn số tiền muốn rút.
“loại tài khoản không hợp lệ”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong
Mở chức năng “rút tiền”.
- Chọn loại tài khoản muốn rút là
“thị trường tiền tệ”.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Gửi Tiền (Deposit).
Thực hiện giao dịch gửi tiền
vào “tài
khoản”
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tài khoản”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
- Đưa tiền vào phong bì.
Chương trình thực hiện giao dịch thành công, tiền bị cộng thêm vào “tài khoản” tương ứng số tiền gửi và hiển thị các thông tin giao dịch gửi tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tài khoản”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
Sau 20 giây mà không kích vào đưa tiền vào phong bì.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tài khoản”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tài khoản”.
- Nhập số tiền muốn gửi.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tài khoản”
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Thực hiện giao
dịch gửi tiền Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là Chương trình thực hiện giao dịch thành công, tiền bị cộng
60
Tình huống Các bước thực hiện Kết quả mong đợi
vào “tiết kiệm”
“tiết kiệm”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
- Đưa tiền vào phong bì.
thêm vào “tiết kiệm” tương ứng số tiền gửi và hiển thị các thông tin giao dịch gửi tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tiết kiệm”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
Sau 20 giây mà không kích vào đưa tiền vào phong bì.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tiết kiệm”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tiết kiệm”.
- Nhập số tiền muốn gửi.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“tiết kiệm”.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Thực hiện giao dịch gửi tiền vào “thị trường tiền tệ”
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“thị trường tiền tệ”.
- Nhập số tiền muốn gửi.
- Chọn đồng ý.
Chương trình hiển thị thông báo
“loại tài khoản không hợp lệ”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“thị trường tiền tệ”.
- Nhập số tiền muốn gửi.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “gửi tiền”.
- Chọn loại tài khoản muốn gửi là
“thị trường tiền tệ”
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Chuyển Tiền(Transfer).
Thực hiện giao Mở chức năng “chuyển tiền”. Chương trình hiển thị thông báo
Tình huống Các bước thực hiện Kết quả mong đợi
dịch chuyển tiền từ “tài khoản” vào
“tài khoản”
- Chọn số tiền chuyển từ “tài khoản”.
- Chọn số tiền chuyển tới “tài khoản”
- Nhập số tiền - Chọn đồng ý.
“không thể chuyển tiền đến cùng tài khoản”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không ? co/khong
Mở chức năng “chuyển tiền”.
- Chọn số tiền chuyển từ “tài khoản”
- Chọn số tiền chuyển tới “tài khoản”.
- Nhập số tiền - Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “chuyển tiền”.
- Chọn số tiền chuyển từ “tài khoản”.
- Chọn số tiền chuyển tới “tài khoản”
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “chuyển tiền”.
- Chọn số tiền chuyển từ “tài khoản”.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Thực hiện giao dịch chuyển tiền từ “tài khoản” vào
“tiết kiệm”
Mở chức năng “chuyển tiền”.
- Chọn số tiền chuyển từ “tài khoản”.
- Chọn số tiền chuyển tới “tiết kiệm”.
- Nhập số tiền.
- Chọn đồng ý.
Chương trình thực hiện giao dịch thành công, tiền được cộng thêm vào “tiết kiệm”,và bị trừ từ
“tài khoản” tương ứng số tiền chuyển và hiển thị các thông tin giao dịch chuyển tiền.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “chuyển tiền”.
- Chọn số tiền chuyển từ “tài khoản”.
- Chọn số tiền chuyển tới “tiết kiệm”.
- Nhập số tiền.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.
Mở chức năng “chuyển tiền”.
- Chọn số tiền chuyển từ “tài khoản”.
- Chọn số tiền chuyển tới “tiết kiệm”.
- Chọn hủy.
Chương trình hiển thị thông báo
“giao dịch cuối cùng được hủy”.
Sau đó chương trình sẽ hỏi bạn có muốn thực hiện giao dịch khác không? co/khong.