- Customer checks his balances.
- Customer deposits money to his account.
- Customer withdraws money from his account.
- Customer transfers money between accounts.
- Customer opens an account.
- Customer closes an account.
Should you distinguish between “Customer deposits money in his checking account” and
“Customer deposits money in his savings account,” or should these actions be combined
(as they are in the preceding list) into “Customer deposits money to his account?” The
answer to this question lies in whether this distinction is meaningful in the domain (the
domain is the real-world environment being modeled—in this case, banking).
To determine whether these actions are one use case or two, you must ask whether the
mechanismsare different (does the customer do something significantly different with
these deposits) and whether the outcomesare different (does the system reply in a differ-
ent way). The answer to both questions for the deposit issue is “no”: The customer
deposits money to either account in essentially the same way, and the outcome is pretty
much the same; the ATM responds by incrementing the balance in the appropriate
account.
Given that the actor and the system behave and respond more or less identically, regard-
less of whether the deposit is made to the checking or to the savings account, these two
use cases are actually a single use case. Later, when the use-case scenarios are fleshed
out, you can try the two variations to see whether they make any difference at all.
As you think about each actor, you might discover additional use cases by asking these
questions: - Why is the actor using this system?
The customer is using the system to get cash, to make a deposit, or to check an
account balance. - What outcome does the actor want or expect from each request?
Add cash to an account or get cash to make a purchase. - What happened to cause the actor to use this system now?
She might recently have been paid or might be on the way to make a purchase. - What must the actor do to use the system?
Identify herself by putting an ATM card into the slot in the machine.
Aha! We need a use case for the customer logging in to the system.
338 Day 11