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