Title: Small Test: Bank account manager
1Small TestBank account manager
- System has to run on an automated teller machine.
- User must be able to deposit checks into the
account. - User must be able to draw money from the account.
- User should be able to query the balance of
his/her account. - The user should get a receipt for a transaction
on request. The transaction type (withdrawal or
deposit), the transaction date, the account
number, the amount, and the new balance should be
visible on the receipt. - After each transaction the new balance should be
displayed to the user.
2Perfect solution (1)
3Perfect solution (2)
Not enough money???
4Near miss (1)
- ltltincludegtgt in wrong direction
- includes and extends not dashed
5Near miss (2)
ltltextendgtgt in wrong direction
6Near miss (3)
- Undirected associations
- includes and extends not dashed
7Near miss (4)
- Receipt not optional
- includes not dashed
8Near miss (5)
- ltltusesgtgt association between actor and UC
- extends and includes not dashed
9Errors you should prevent (1)!
Undefined relationships
10Errors you should prevent (2)!
- System not a UC
- Sequence descriptions instead of Ucs
11Errors you should prevent (3)!
- get users pwd not a UC
- Sequence description
- unnamed relationships
12Errors you should prevent (4)!
- Rectangles?
- unnamed relationships
- Sequence descriptions
- Menu not a UC
13Errors you should prevent (5)!
- Rectangles?
- Unnamed relationships
- Sequence/control flow descriptions
14Errors you should prevent (6)!
- Rectangles?
- ltltextendgtgt in wrong direction
- ltltextendgtgt instead of ltltincludegtgt
- Data structure description
- Incorrect use of ltltincludegtgt
15Errors you should prevent (7)!
- Multi-referenced extension UC
- Undirected, undashed includes and extends
16Errors you should prevent (8)!
- Level of granularity too low
- ltltextendgtgt between actor and UC
17Errors you should prevent (9)!
- Validate user is the only functionality
provided to user? - ltltincludegtgt in wrong direction
18Errors you should prevent (10)!
- Description of the user interface elements
19Errors You Should Prevent (11)!
20Rules of thumb (1)
- Use the ltltincludegtgt relationship to point to a
use case describing a (sub-)sequence of action
that occurs in more than one other use case.
21Rules of thumb (2)
- Use the ltltextendgtgt relationship if a conditional
expression indicates the presence of alternative
flows - Example
- Instead of
-
- Ask user if she wants a receipt.
- If Yes print receipt on printer
-
- Use
-
- (print receipt)
-
Withdrawmoney
ltltextendgtgt(print receipt)
Withdraw moneywith receipt printing
22Were Available!
- Questions?
- if you have any questions about contents of this
lecture or other course-related issues, please
come by during our office hours, or send us email - Dr. Joshua MTW, 12-1pm, ICT 548
- joshuar_at_cpsc.ucalgary.ca
- Dr. Walker WF, 1-2pm, ICT 546
- rwalker_at_cpsc.ucalgary.ca