Case Study – ATM system
-
Upload
khangminh22 -
Category
Documents
-
view
2 -
download
0
Transcript of Case Study – ATM system
Phần mềm được thiết kế sẽ điều khiển một máy mô phỏng máy rút tiền tự động (ATM) có đầu đọc để đọc thẻ ATM
có bảng điều khiển (bàn phím và màn hình) để tương tác với khách hàng
có khe cắm để phong bì thư chứa tiền
có thiết bị trả tiền mặt (bằng bội số của 20USD)
có máy in để in biên lai của khách hàng
có bộ chuyển đổi phím cho phép điều khiển bắt đầu hoặc ngừng máy.
Máy ATM sẽ liên lạc với máy tính của ngân hàng qua một liên kết truyền thông thích hợp
Máy ATM sẽ phục vụ một khách hàng mỗi lần.
Một khách hàng sẽ phải nạp thẻ ATM
nhập mã số cá nhân (PIN) Cả hai sẽ được gửi đến ngân
hàng để xác nhận tính hợp lệ như là một phần của mỗi giao dịch.
Sau đó, khách hàng có thể thực hiện một hoặc nhiều giao dịch.
Thẻ sẽ được giữ lại trong máy cho đến khi khách hàng cho biết rằng anh ta / cô ta không muốn tiếp tục giao dịch. Tại thời điểm đó nó sẽ được trả lại.
Máy ATM phải có khả năng cung cấp các dịch vụ sau cho khách hàng: Khách hàng có khả năng rút tiền mặt từ tài
khoản tương ứng với thẻ, số tiền rút là bội số của $20.00. Sự chấp thuận phải được xác nhận từ ngân hàng trước khi tiền mặt được rút ra.
Khách hàng có thể thực hiện gửi một khoản tiền bất kỳ cho tài khoản tương ứng với thẻ, bao gồm tiền mặt và / hoặc séc trong một phong bì. Khách hàng sẽ nhập số tiền đặt cọc vào máy ATM, tùy thuộc vào sự kiểm tra thủ công khi phong bì được người vận hành dỡ bỏ. Sự chấp thuận phải được xác nhận từ ngân hàng trước khi nhận được phong bì.
Khách hàng có thể thực hiện chuyển tiền giữa hai tài khoản.
Khách hàng có thể thực hiện việc kiểm tra số dư tài khoản tương ứng với thẻ.
Khách hàng có thể hủy bỏ một giao dịch đang tiến hành bằng cách nhấn phím Hủy thay vì trả lời yêu cầu từ máy.
Máy ATM sẽ thông báo từng giao dịch cho ngân hàng và nhận được xác minh rằng ngân hàng đã cho phép. Thông thường, một giao dịch sẽ được ngân hàng hoàn thành sau khi đã được phê duyệt.
Trong trường hợp gửi tiền, một tin nhắn thứ hai sẽ được gửi đến ngân hàng cho biết khách hàng đã gửi tiền cho phong bì. (Nếu khách hàng không gửi tiền trong phong bì trong khoảng thời gian chờ, hoặc hủy bỏ thì hệ thống sẽ không gửi tin nhắn thứ hai đến ngân hàng và khoản tiền gửi sẽ không được ghi có vào tài khoản của khách hàng.)
Nếu ngân hàng xác định mã PIN của khách hàng là không hợp lệ, khách hàng sẽ phải nhập lại mã PIN trước khi giao dịch có thể tiến hành.
Nếu khách hàng không thể nhập mã PIN thành công sau ba lần thử, thì thẻ sẽ được giữ lại vĩnh viễn bởi máy và khách hàng sẽ phải liên lạc với ngân hàng để lấy lại.
Nếu một giao dịch thất bại vì bất kỳ lý do nào ngoài mã PIN không hợp lệ, máy ATM sẽ giải thích sự cố và sẽ hỏi khách hàng xem họ có muốn thực hiện giao dịch khác không.
Máy ATM sẽ cung cấp cho
khách hàng một hóa đơn
biên nhận cho mỗi giao
dịch thành công, hiển thị
ngày, giờ, vị trí máy, loại
giao dịch, tài khoản, số
tiền, và kết thúc và số dư
hiện thời của tài khoản.
Máy ATM có bộ phận điều khiển cho phép cán bộ vận hành có thể khởi động hoặc tạm ngừng phục vụ
Khi chuyển sang vị trí “ON”, cán bộ vận hành phải xác minh và nhập số tiền mặt có trong máy
Máy chỉ có thể tắt khi không phục vụ khách hàng
Khi chuyển sang vị trí “OFF”, máy sẽ tắt và cán bộ vận hành có thể lấy phong bì tiền gửi, nạp thêm tiền mặt, biên lai
ATM sẽ duy trì nhật ký nội bộ ghi lại các giao dịch nhằm giải quyết những vấn đề phát sinh.
Các mục sẽ được thực hiện trong nhật ký khi máy ATM được khởi động và tắt, mỗi tin nhắn được gửi đến Ngân hàng, việc phân phát tiền mặt, và để nhận một phong bì.
Các mục đăng nhập có thể chứa số thẻ và số tiền, nhưng để bảo mật sẽ không bao giờ chứa mã PIN.
Xác định yêu cầu nghiệp vụ 1. Xác định và mô tả các tác nhân
2. Xây dựng bảng thuật ngữ
3. Xác định và mô tả các ca sử dụng
4. Xây dựng kịch bản
5. Xây dựng biểu đồ hoạt động (Tùy chọn)
6. Xây dựng biểu đồ giao tiếp (Tùy chọn) Xác định yêu cầu hệ thống
1. Xác định và mô tả các tác nhân
2. Xác định và mô tả các ca sử dụng
3. Xây dựng kịch bản
4. Xây dựng biểu đồ ca sử dụng
5. Xếp ưu tiên các ca sử dụng
6. Phác họa giao diện người dùng
TT Tiếng Anh Tiếng Việt Giải thích
1 ATM System
2 Customer
3 PIN
4 Session
5 Transaction
6 Withdrawal
7 Deposit
8 Transper
9 Inquiry
10 Operator
11 System Start
12 System Shutdown
System Startup Hệ thống được khởi động khi cán bộ điều hành (Operator)
chuyển công tắc điều khiển sang vị trí «ON».
Cán bộ điều hành sẽ được yêu cầu nhập vào số tiền hiện có trong máy rút tiền
Kết nối với ngân hàng được thiết lập
Sẵn sàng phục vụ. System Shutdown
Hệ thống sẽ tắt khi cán bộ điều hành đảm bảo rằng không có khách hàng đang sử dụng máy
Chuyển công tắc của điều khiển sang vị trí «OFF».
Kết nối với ngân hàng sẽ bị loại bỏ
Cán bộ điều hành thu các phong bì tiền gửi, bổ sung tiền mặt và giấy in biên lai.
Session Một phiên được bắt đầu khi một khách hàng chèn một thẻ ATM vào khe
đọc thẻ của máy.
Máy ATM kéo thẻ vào máy và đọc nó. (Nếu máy đọc thẻ không thể đọc được thẻ do chèn không đúng hoặc thẻ hỏng, thẻ sẽ bị đẩy ra, màn hình lỗi được hiển thị và phiên làm việc bị hủy bỏ)
Khách hàng được yêu cầu nhập mã PIN của mình và sau đó được phép để thực hiện một hoặc nhiều giao dịch, lựa chọn từ một thực đơn các loại giao dịch có thể có.
Sau mỗi giao dịch, khách hàng được hỏi liệu anh / chị ấy có muốn thực hiện giao dịch khác không.
Khi khách hàng thực hiện giao dịch, thẻ sẽ được đẩy ra khỏi máy và kết thúc phiên.
Nếu một giao dịch bị hủy vì quá nhiều mục nhập PIN không hợp lệ, phiên cũng bị hủy bỏ, với thẻ được giữ lại trong máy.
Khách hàng có thể hủy bỏ phiên làm việc bằng cách nhấn phím Hủy khi nhập mã PIN hoặc chọn loại giao dịch.
Transaction Transaction là giao dịch trừu tượng
Transaction được bắt đầu trong một phiên khi khách hàng chọn một loại giao dịch từ thực đơn cá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ụ: tài khoản liên quan, số tiền). Thông tin giao dịch sẽ được gửi đến ngân hàng, cùng với thông tin từ thẻ của khách hàng và mã PIN mà khách hàng nhập.
Nếu ngân hàng phê duyệt giao dịch, các bước cần thiết để hoàn tất giao dịch (ví dụ như phát tiền mặt hoặc chấp nhận phong bì) sẽ được thực hiện, biên lai sẽ được in. Sau đó, khách hàng sẽ được hỏi liệu anh / chị ấy có muốn làm một giao dịch khác hay không.
Nếu ngân hàng báo cáo rằng mã PIN của khách hàng không hợp lệ, một thủ tục mở rộng sẽ được thực hiện để tiếp tục giao dịch. Nếu nhiều lần không hợp lệ, thẻ khách hàng được giữ lại, giao dịch bị hủy và khách hàng sẽ 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ị huỷ bỏ bởi khách hàng hoặc không thành công vì các lý do khác, màn hình sẽ được hiển thị thông báo cho khách hàng về lý do của sự thất bại của giao dịch và sau đó khách hàng sẽ được cung cấp cơ hội làm khác.
Khách hàng có thể hủy giao dịch bằng cách nhấn phím CANCEL.
Tất cả các tin nhắn đến ngân hàng và trả lời lại được ghi lại trong nhật ký của máy ATM.
Giao dịch rút tiền (Withdrawal transaction) 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 từ một danh mục các tài khoản có
thể và nhập số tiền cần rút.
Hệ thống xác minh rằng nó có đủ tiền trong tay để đá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 sẽ được thông báo và yêu cầu nhập một số tiền khác.)
Nếu giao dịch được ngân hàng chấp thuận, số tiền đó sẽ được máy rút ra trước khi xuất hóa đơn.
Việc rút tiền được ghi lại trong nhật ký của máy ATM
Giao dịch rút tiền có thể được huỷ bởi khách hàng nhấn phím CANCEL bất kỳ lúc nào trước khi nhập số tiền.
Giao dịch gửi tiền (Deposit transaction) Giao dịch gửi tiền yêu cầu khách hàng chọn tài khoản để gửi tiền từ danh mục các tài khoản có thể
và nhập một khoản tiền trên bàn phím.
Thông tin giao dịch được gửi đến ngân hàng để xác minh rằng máy ATM có thể chấp nhận khoản tiền gửi từ khách hàng vào tài khoản này. Nếu giao dịch được chấp thuận, máy chấp nhận phong bì từ khách hàng có tiền mặt và / hoặc séc trước khi xuất trình biên nhận.
Sau khi nhận được phong bì, một thông báo thứ hai được gửi đến ngân hàng, để xác nhận rằng ngân hàng có thể ghi có vào tài khoản của khách hàng - phụ thuộc vào việc xác minh thủ công các phong bì đựng tiền bởi cán bộ điều hành sau đó. (Việc nhận được một phong bì cũng được ghi lại trong nhật ký của máy ATM)
Giao dịch gửi tiền có thể được huỷ bỏ bởi khách hàng nhấn phím CANCEL bất kỳ lúc nào trước khi đưa phong bì chứa tiền gửi. Giao dịch được tự động hủy nếu khách hàng không thể đưa phong bì có chứa khoản tiền gửi trong một khoảng thời gian hợp lý sau khi được yêu cầu làm như vậy.
Giao dịch chuyển tiền (Transfer transaction)
Giao dịch chuyển tiền yêu cầu khách hàng chọn tài khoản để chuyển từ một danh sác các tài khoản có thể, chọn một tài khoản khác để chuyển sang và nhập một khoản tiền trên bàn phím.
Không cần thực hiện thêm hành động nào sau khi giao dịch được ngân hàng chấp thuận trước khi in biên nhận.
Giao dịch chuyển khoản có thể được hủy bởi khách hàng nhấn phím CANCEL bất kỳ lúc nào trước khi nhập số tiền.
Giao dịch truy vấn số dư
Giao dịch truy vấn số dư yêu cầu khách hàng chọn tài khoản từ một danh sách các tài khoản.
Không cần thực hiện thêm hành động nào sau khi giao dịch được ngân hàng chấp thuận trước khi in biên nhận.
Có thể hủy giao dịch truy vấn số dư khi khách hàng nhấn phím CANCEL trước khi chọn tài khoản để truy vấn.
Thủ tục kiểm tra PIN không hợp lệ (Invalid PIN Extension) Thủ tục kiểm tra PIN không hợp lệ được bắt đầu từ bên trong
giao dịch khi ngân hàng báo cáo rằng giao dịch của khách hàng bị từ chối do mã PIN không hợp lệ.
Khách hàng được yêu cầu nhập lại mã PIN, thông tin mã PIN được gửi lại cho ngân hàng.
Nếu ngân hàng chấp thuận giao dịch, hoặc không chấp thuận vì một lý do nào đó, giao dịch đã chọn sẽ được tiếp tục; nếu không quá trình tái nhập mã PIN được lặp lại.
Khi mã PIN được nhập lại thành công, mã PIN được sử dụng cho cả giao dịch hiện tại và tất cả giao dịch tiếp theo trong phiên. Nếu khách hàng không thành công trong ba lần nhập mã PIN, thẻ sẽ được giữ lại vĩnh viễn, màn hình hiển thị thông báo cho khách hàng về điều này và đề nghị liên hệ với ngân hàng và toàn bộ phiên khách sẽ bị hủy.
Nếu khách hàng chọn phím CANCEL thay vì nhập lại mã PIN, giao dịch sẽ bị hủy.
System
Operator
Customer
System Startup
System Shutdown
Session
Transaction
Invalid PIN
WithdrawalDeposit Transfer
Inquiry
Bank
<<include>>
<<extend>>
OperatorPanel ATM CashDispenser NetworkToBank
1 : switchOn()
2 : perpromStartup()
3 : getInitialCard()
4 : initialCard5 : setInitalCard(initialCard)
6 : openConnection()
Sequence Diagram for System Startup Use Case
OperatorPanel ATM NetworkToBank
1 : switchOff()
2 : performShutdown()
3 : closeConnection()
Sequence Diagram for System Shutdown Use Case
while customer wants to perform transactionsloop
CardReader ATM CustomerConsoleSession
Transaction
1 : cardInserted()
2 : create(this)
<<create>>
3 : performSection()
4 : readCard()
5 : card
6 : readPIN()
7 : PIN
8 : create(atm,this,card,pin)
<<create>>
9 : performTransaction()
10 : doAgain
11 : ejectCard()
Sequence Diagram for Session Use Case
Transaction NetworkToBank CustomerConsoleReceipt
1 : message := getSpecificsFromCustomer()
2 : send(message,balances)
3 : logSend(message)
4 : logResponse(status)5 : status
6 [invalid PIN] : status := performInvalidPINExtension()
7 [status ok] : receipt := completeTransaction()
8 : printReceipt(receipt)
9 : getMenuChoice(status message, yes no menu)
10 : customer wants to do another
Sequence Diagram for Transaction Use Case
Lớp ATM Lớp CardReader (máy đọc thẻ) Lớp CashDispenser (khe trả tiền) Lớp CustomerConsole (tương tác khách hàng) Lớp EnvelopeAcceptor (chấp nhận phong bì) Lớp Log (ghi nhật ký) Lớp NetworkToBank (liên lạc với ngân hàng) Lớp OperatorPanel (điều khiển của cán bộ điều hành) Lớp ReceiptPrinter (máy in biên nhận) Lớp Session (phiên) Lớp Transaction (giao dịch) Lớp Withdrawal (rút tiền) Lớp Deposit (gửi tiền) Lớp Transfer (chuyển tiền) Lớp Inquiry (truy vấn số dư) Lớp Balances( số dư ngân hàng) Lớp Card (thông tin thẻ ngân hàng) Lớp Message (thông điệp liên lạc) Lớp Receipt (thông tin giấy biên nhận) Lớp Status (thông tin trạng thái)
Lớp ATM
Khởi động khi bật công tắc
Tắt khi tắt công tắc
Bắt đầu một phiên mới khi khách hàng chèn thẻ
Cung cấp truy cập vào các lớp thành phần cho các phiên và các giao dịch
Lớp CardReader (máy đọc thẻ)
Cho ATM biết khi nào thẻ được lắp
Đọc thông tin từ thẻ
Trả thẻ
Giữ thẻ
Lớp CashDispenser (khe tiền trả)
Giữ tiền mặt trong máy ATM, bắt đầu với số tiền khởi tạo
Báo cáo liệu có đủ tiền mặt hay không
Thanh toán tiền
Lớp CustomerConsole (tương tác khách hàng)
Hiển thị tin nhắn
Hiển thị lời nhắc, chấp nhận mã PIN từ bàn phím
Hiển thị dấu nhắc và trình đơn, chấp nhận sự lựa chọn từ bàn phím
Hiển thị dấu nhắc, chấp nhận một khoản tiền từ bàn phím
Phản hồi khi phím CANCEL được nhấn bởi khách hàng
Lớp EnvelopeAcceptor (chấp nhận phong bì)
Chấp nhận phong bì từ khách hàng; báo cáo nếu đã hết thời gian hoặc hủy
Lớp Log (ghi nhật ký)
Ghi nhật ký các thông điệp gửi về ngân hàng
Ghi nhật ký các phản hồi từ ngân hàng
Ghi nhật ký việc xuất/trả tiền mặt
Ghi nhật ký việc nhận phong bì tiền
Lớp NetworkToBank (liên lạc với ngân hàng)
Bắt đầu kết nối với ngân hàng khi khởi động
Gửi tin nhắn tới ngân hàng và chờ phản hồi
Ngắt kết nối với ngân hàng khi tắt máy
Lớp OperatorPanel (điều khiển của cán
bộ điều hành)
Thông báo cho ATM về thay đổi chuyển đổi
trạng thái công tắc
Cho phép cán bộ điều hành nhập số tiền ban
đầu
Lớp ReceiptPrinter (máy in biên nhận)
In biên nhận
Lớp Session (phiên) Thực hiện một phiên làm việc Cập nhật giá trị PIN nếu khách hàng phải nhập lại mã PIN
Lớp Transaction (giao dịch) Là lớp trừu tượng
Cho phép khách hàng chọn loại giao dịch
Thực hiện mở rộng việc kiểm tra mã PIN không hợp lệ
Lớp Withdrawal (rút tiền) Thực hiện các hoạt động đặc biệt đối với trường hợp sử dụng giao dịch rút tiền
Lớp Deposit (gửi tiền) Thực hiện các hoạt động đặc biệt đối với trường hợp sử dụng giao dịch gửi tiền
Lớp Transfer (chuyển tiền) Thực hiện các hoạt động đặc biệt đối với trường hợp sử dụng giao dịch chuyển
tiền
Lớp Inquiry (truy vấn số dư) Thực hiện các hoạt động đặc biệt đối với trường hợp sử dụng giao dịch truy vấn
số dư
Lớp Balances( số dư ngân hàng)
Biểu diễn thông tin về số dư tài khoản tại ngân hàng Lớp Card (thông tin thẻ ngân hàng)
Biểu diễn thông tin được mã hoá trên thẻ ATM của khách hàng
Lớp Message (thông điệp liên lạc)
Biểu diễn thông tin được gửi qua mạng tới ngân hàng Lớp Receipt (thông tin giấy biên nhận)
Biểu diễn thông tin được in trên giấy biên nhận Lớp Status (thông tin trạng thái)
Biểu diễn thông tin trạng thái giao dịch được ngân hàng trả lại
Customer
Operator ATM
Card
Operator Panel
SessionCard Reader
Customer Console
Receipt Printer
TransactionNetwork To Bank Bank
Log
Cash Dispenser
Envelope Acceptor
ATM
CustomConsole
CardReader
Session
Card
Transaction
Withdrawal Deposit Transfer Inquiry
AccountInformation
ReceiptPrinter
OperatorPanel
NetworkToBankEnvelopAcceptorCashDispenser
Log
Message
Balances
Receipt
Status
Money
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1
1
11
1
*
1
*
1 *
ATM - id: int
- place: String
- bankName: String
- bankAddress: InetAddress
- cardReader: CardReader
- cashDispenser: CashDispenser
- customerConsole: CustomerConsole
- envelopeAcceptor: EnvelopeAcceptor
- log: Log
- networkToBank: NetworkToBank
- operatorPanel: OperatorPanel
- receiptPrinter: ReceiptPrinter
- state: int
- switchOn: boolean
- cardInserted: boolean
- OFF_STATE: final int
- IDLE_STATE: final int
- SERVING_CUSTOMER_STATE: final int
+ ATM(id: int, place: String, bankName: String,
bankAddress: InetAddress)
+ run()
+ switchOn()
+ switchOff
+ cardInserted()
+ getID(): int
+ getPlace(): String
+ getBankName(): String
+ getCardReader(): CardReader
+ getCashDispenser(): CashDispenser
+ getCustomerConsole(): CustomerConsole
+ getEnvelopeAcceptor(): EnvelopeAcceptor
+ getLog(): Log
+ getNetworkToBank(): NetworkToBank
+ getOperatorPanel(): OperatorPanel
+ getReceiptPrinter(): ReceiptPrinter
- performStartup()
- performShutdown()
CardReader
- atm: ATM
+ CardReader(atm: ATM)
+ readCard(): Card
+ ejectCard()
+ retainCard()
CashDispenser
- log: Log
- cashOnHand: Money
+ CashDispenser(log: Log)
+ setInitialCash(initialCash: Money)
+ checkCashOnHand(amount: Money): boolean
+ dispenseCash(amount: Money)
CustomerConsole
+ CustomerConsole()
+ display(message: String)
+ readPIN(prompt: String): int throws Cancelled
+ readMenuChoice(prompt: String, menu: String []): int throws Cancelled
+ readAmount(prompt: String): Money throws Cancelled
EnvelopeAcceptor
- log: Log
+ EnvelopeAcceptor(log: Log)
+ acceptEnvelope() throws Cancelled
Log
+ Log()
+ logSend(message: Message)
+ logResponse(status: Status)
+ logCashDispensed(amount: Money)
+ logEnvelopeAccepted()
OperatorPanel
- atm: ATM
+ OperatorPanel(atm: ATM)
+ getInitialCash(): Money
ReceiptPrinter
+ ReceiptPrinter()
+ printReceipt(receipt: Receipt)
Session
- atm: ATM
- pin: int
- state: int
- READING_CARD_STATE: final int
- READING_PIN_STATE: final int
- CHOOSING_TRANSACTION_STATE: final int
- PERFORMING_TRANSACTION_STATE: final int
- EJECTING_CARD_STATE: final int
- FINAL_STATE: final int
+ Session(atm: ATM)>
+ performSession()
+ setPIN(int pin)
Transaction
# atm: ATM
# session: Session
# card: Card
# pin: int
# serialNumber: int
# message: Message
# balances: Balances
- TRANSACTION_TYPES_MENU: final String []
- nextSerialNumber: int
- state: int
- GETTING_SPECIFICS_STATE: final int
- SENDING_TO_BANK_STATE: final int
- INVALID_PIN_STATE: final int
- COMPLETING_TRANSACTION_STATE: final int
- PRINTING_RECEIPT_STATE: final int
- ASKING_DO_ANOTHER_STATE: final int
# Transaction(atm: ATM, session: Session,
card: Card, pin: int)
+ makeTransaction(atm: ATM, session:
Session, card: Card, pin: int): Transaction
throws Cancelled
+ performTransaction(): boolean throws
CardRetained
+ performInvalidPinExtension(): Status throws
Cancelled, CardRetained
+ getSerialNumber(): int
# getSpecificsFromCustomer(): Message
throws Cancelled
# completeTransaction(): Receipt throws
Cancelled
Withdrawal
- from: int
- amount: Money
+ Withdrawal(atm: ATM, session: Session, card: Card, pin: int)
# getSpecificsFromCustomer(): Message throws Cancelled
# completeTransaction(): Receipt
Deposit
- to: int
- amount: Money
+ Deposit(atm: ATM, session: Session, card: Card, pin: int)
# getSpecificsFromCustomer(): Message throws Cancelled
# completeTransaction(): Receipt throws Cancelled
Transfer
- from: int
- to: int
- amount: Money
+ Transfer(atm: ATM, session: Session, card: Card, pin: int)
# getSpecificsFromCustomer(): Message throws Cancelled
# completeTransaction(): Receipt
Inquiry
- from: int
+ Inquiry(atm: ATM, session: Session, card: Card, pin: int)
# getSpecificsFromCustomer(): Message throws Cancelled
# completeTransaction(): Receipt
AccountInformation
+ ACCOUNT_NAMES: final String[]
+ ACCOUNT_ABBREVIATIONS: final String []
Balances
- total: Money
- available: Money
+ Balances()
+ setBalances(total: Money, available: Money)
+ getTotal(): Money
+ getAvailable(): Money
Card
- number: int
+ Card(number: int)
+ getNumber(): int
Message
+ WITHDRAWAL: final int
+ INITIATE_DEPOSIT: final int
+ COMPLETE_DEPOSIT: final int
+ TRANSFER: final int
+ INQUIRY: final int
- messageCode: int
- card: Card
- pin: int
- serialNumber: int
- fromAccount: int
- toAccount: int
- amount: int
+ Message(messageCode: int,
cardNumber: Card, pin: int, serialNumber:
int, fromAccount: int, toAccount: int,
amount: Money)
+ toString(): String
+ setPIN(pin: int)
+ getMessageCode(): int
+ getCard(): Card
+ getPIN(): int
+ getSerialNumber(): int
+ getFromAccount(): int
+ getToAccount(): int
+ getAmount(): Money
Money
- cents: long
+ Money(dollars: int)
+ Money(dollars: int, cents: int)
+ Money(toCopy: Money)
+ toString(): String
+ add(amountToAdd: Money)
+ subtract(amountToSubtract: Money)
+ lessEqual(compareTo: Money): boolean
Receipt - headingPortion: String []
# detailsPortion(): String []
- balancesPortion: String []
# Receipt(atm: ATM, card: Card, transaction: Transaction, balances: Balances)
+ getLines(): Enumeration
Status
+ toString(): String
+ isSuccess(): boolean
+ isInvalidPIN(): boolean
+ getMessage(): String