Problem Description

The Bank Accounts and Transactions (BAT for short) system is to be built for the Big Bank Corporation. It must handle clients' bank accounts and the (standard) services on these accounts: deposit, withdraw, transfer, get balance.

The transactions are recorded, because at the end of each month, the system sends out account statements to all clients showing all transactions performed for their accounts during the last period; the system sends the statements to the printer from where a junior clerk posts them.

The system is accessed by the bank's clients only indirectly, i.e., either via a teller, an ATM, or the Internet. All transactions and queries are possible via a teller; all transactions and queries are possible except deposits via an ATM; and all except deposits and withdrawals via the Internet.

Opening an account can be performed only via a teller and the Internet; however, if a client opens an account via the Internet they must identify themselves with a teller to have their account activated (this is government policy to avoid money laundering, e.g.).

Closing an account can only be performed by a teller, and it requires a final statement to be sent out to the client. The Bank offers various account types, which fall into two categories: savings and checking. Savings accounts cannot be overdrawn. There can be a credit limit, subject to agreement by the bank, on checking accounts; a checking account cannot be overdrawn beyond this limit.