Analytical Documentation

Name: UCTool Sample
Version: 0.1-SNAPSHOT

Sample analysis of a bank branch system demonstrating the Use case tool.

Requirements overview

Requirement Status Priority Area Level
RQ-001 - Provide bank services Accepted Normal General Solution target
RQ-100 - Withdrawal Accepted High Cash Middle

Requirements details

Requirement RQ-001 - Provide bank services Solution target

Status: Accepted
Priority: Normal
Area: General
Type: Functional
Level: Solution target
Origin: Workshop 2011-03-18
References in use cases: OVR-010 - Use services of bank's branch

Requirement RQ-100 - Withdrawal Middle

Status: Accepted
Priority: High
Area: Cash
Type: Functional
Level: Middle
Cash teller withdraws cash for the client.
References in use cases: CAS-100 - Withdraw cash in local currency

Actors overview

Actors details

Actor Cash teller

Extends actors:
Goals:
Inherited actors:
Inherited goals:

Actor Non-cash teller

Extends actors:
Goals:
Inherited actors:
Inherited goals:

Actor Teller

Extended by actors:
Goals:

Actor System

Goals:

Actor Client

Goals:

Use Cases overview

Primary actor Goal Level
Client OVR-010 - Use services of bank's branch High summary
Client OVR-100 - Use cash services of bank's branch Summary
Client OVR-110 - Use non-cash services of bank's branch Summary
Cash teller CAS-100 - Withdraw cash in local currency User goal
Cash teller CAS-200 - Deposit cash in local currency User goal
Non-cash teller NCA-100 - Transfer funds in local currency User goal
Non-cash teller NCA-200 - Perform direct debit in local currency User goal
Teller SYS-100 - Identify account Subfunction
Teller SYS-110 - Identify client Subfunction
System FEE-100 - Calculate fee Subfunction

Use cases details

Use case OVR-010 - White-box, Organization Use services of bank's branch High summary

Scope: New Branch System
Type: Organization   Visibility: White-box   Level: High summary
Primary actor: Client
Main success scenario:
1. Client comes to a branch.
2.  Client approaches a counter and uses services relevant to the counter ( RQ-001 - Provide bank services ):

Use case OVR-100 - White-box, Organization Use cash services of bank's branch Summary

Scope: New Branch System
Type: Organization   Visibility: White-box   Level: Summary
Primary actor: Client
Main success scenario:
1.  Client asks the cash teller to perform cash services:
References: OVR-010 - Use services of bank's branch

Use case OVR-110 - White-box, Organization Use non-cash services of bank's branch Summary

Scope: New Branch System
Type: Organization   Visibility: White-box   Level: Summary
Primary actor: Client
Main success scenario:
1.  Client asks the cash teller to perform non-cash services:
References: OVR-010 - Use services of bank's branch

Use case CAS-100 - Black-box, System Withdraw cash in local currency User goal

Scope: New Branch System
Type: System   Visibility: Black-box   Level: User goal
Primary actor: Cash teller
Description:
Based on requirement (RQ-100 - Withdrawal) .
Main success scenario:
1.  User identifies account (SYS-100 - Identify account) .
2.  User identifies client (SYS-110 - Identify client) based on the account number.
3. User verifies client's signature.
4. User enters amount.
5.  System calculates fee (FEE-100 - Calculate fee) and total amount.
6. User submits the transaction.
7.  System prints withdrawal receipt (Withdrawal receipt) using printing template (Withdrawal receipt - receipts/withdrawal-receipt-template-01.gif) .
Extensions:
4a. User decides to enter cash denomination:
    4a1. User enters cash denomination.
References: OVR-100 - Use cash services of bank's branch

Use case CAS-200 - Black-box, System Deposit cash in local currency User goal

Scope: New Branch System
Type: System   Visibility: Black-box   Level: User goal
Primary actor: Cash teller
Main success scenario:
1.  User identifies account (SYS-100 - Identify account) .
2. User enters amount.
3.  System calculates fee (FEE-100 - Calculate fee) and amount to collect.
4. User submits the transaction.
Extensions:
1a. User decides to identify client:
    1a1.  User also identifies client (SYS-110 - Identify client) based on the account number.
2a. User decides to enter cash denomination:
    2a1. User enters cash denomination.
4a. Amount to collect is above 5000 and client was not identified:
    4a1.  System displays error message and returns to step 1 .
References: OVR-100 - Use cash services of bank's branch

Use case NCA-100 - Black-box, System Transfer funds in local currency User goal

Scope: New Branch System
Type: System   Visibility: Black-box   Level: User goal
Primary actor: Non-cash teller
Stakeholders and interests:
Client: Credit the amount to credit account.
Bank's retail department: Charge the fee.
Bank's audit department: Have all successful transactions posted into transaction log.
Bank's audit department: Have all failed transactions posted into audit log.
Preconditions:
  • User is logged in.
  • Client is present at the branch office.
Minimal guarantees:
  • Transfer failure and its reason logged in audit log.
  • Error message displayed to user.
  • No changes made to accounts.
Success guarantees:
  • Amount and fee debited from the debit account.
  • Amount credited to the credit account.
  • Fee credited to proper general ledger account.
  • Transfer logged in transaction log.
Trigger: Client asks to transfer funds.
Main success scenario:
1.  User selects transfer type (Enumeration Transfer type) .
2.  User identifies debit account (SYS-100 - Identify account) limiting the bank code to own bank.
3.  User identifies credit account (SYS-100 - Identify account) .
4. User enters amount and effective date.
5.  System calculates fee (FEE-100 - Calculate fee) .
6. User submits the transaction.
Extensions:
1a. Transfer type is Express and current time is past cut-off time for express transfers:
    1a1. System displays error message and does not proceed.
2a. User decides to verify signature:
    2a1. User verifies client's signature for the debit account.
3a. Debit and credit accounts are the same:
    3a1. System displays error message and lets the user identify other accounts.
6a. Amount is above 5000 and client's signature was not verified:
    6a1.  System displays error message and returns to step 2 .
6b. Effective date is in past or more than one year in future:
    6b1.  System displays error message and returns to step 4 .
References: OVR-110 - Use non-cash services of bank's branch

Use case NCA-200 - Black-box, System Perform direct debit in local currency User goal

Scope: New Branch System
Type: System   Visibility: Black-box   Level: User goal
Primary actor: Non-cash teller
Main success scenario:
1.  User identifies credit account (SYS-100 - Identify account) limiting the bank code to own bank.
2.  User identifies debit account (SYS-100 - Identify account) .
3. User enters amount and effective date.
4.  System calculates fee (FEE-100 - Calculate fee) .
5. User submits the transaction.
Extensions:
2a. User decides to verify signature:
    2a1. User verifies client's signature for the debit account.
2b. Debit and credit accounts are the same:
    2b1. System displays error message and lets the user identify other accounts.
5a. Effective date is in past or more than one year in future:
    5a1.  System displays error message and returns to step 3 .
References: OVR-110 - Use non-cash services of bank's branch

Use case SYS-100 - Black-box, System Identify account Subfunction

Scope: New Branch System
Type: System   Visibility: Black-box   Level: Subfunction
Primary actor: Teller
Main success scenario:
1.  User enters account number (Account number) .
2. System validates account number.
3. User searches for the account.
4.  System retrieves account details (Account details) by account number.
Extensions:
4a. Not own account (bank code of the account number has Own bank flag unset):
    4a1. System does not retrieve account details.
4b. Account not found: System displays error message.
References: CAS-100 - Withdraw cash in local currency, CAS-200 - Deposit cash in local currency, NCA-100 - Transfer funds in local currency, NCA-200 - Perform direct debit in local currency

Use case SYS-110 - Black-box, System Identify client Subfunction

Scope: New Branch System
Type: System   Visibility: Black-box   Level: Subfunction
Primary actor: Teller
Main success scenario:
1.  User enters personal id number (Personal id number) .
2. System validates personal id number.
3.  System retrieves client details (Client details) by the personal id number.
4.  User amends/enters the client details (Client details) manually as necessary.
5. System validates the document number in Lost documents register.
Extensions:
1a. An account number was passed-in:
    1a1.  System retrieves primary account holder details by the account number, pre-fills them as the client details and continues by step 4 .
1b. Client does not present personal id number:
    1b1.  System continues by step 4 .
3a. Personal id number not found:
    3a1.  System displays error message and continues by step 4 .
References: CAS-100 - Withdraw cash in local currency, CAS-200 - Deposit cash in local currency

Use case FEE-100 - Black-box, System Calculate fee Subfunction

Scope: New Branch System
Type: System   Visibility: Black-box   Level: Subfunction
Primary actor: System
Main success scenario:
1.  System calls fee engine (operation calculateFee) passing in input data (Input to calculateFee) and retrieving output data (Output from calculateFee) .
2. System returns the output data to the caller.
References: CAS-100 - Withdraw cash in local currency, CAS-200 - Deposit cash in local currency, NCA-100 - Transfer funds in local currency, NCA-200 - Perform direct debit in local currency

Data structures overview

Data structure Code Category
Enumeration Transaction type TransactionType
Enumeration Transfer type TransferType
Code table CodeTable
Code table Bank code BankCode
Code table Country Country
Code table Currency Currency
Code table Gender Gender
Code table Document type DocumentType
Withdrawal receipt WithdrawalReceipt
Account number AccountNumber
Account details AccountDetails
Personal id number PersonalId
Client details ClientDetails
Personal data PersonalData
Document identification DocumentIdentification
Address Address
Input to calculateFee calculateFee_in
Output from calculateFee calculateFee_out

Data structures details

Data structure Enumeration Transaction type

Code: TransactionType
Description:
Transaction types are:
References in data structures: Input to calculateFee

Data structure Enumeration Transfer type

Code: TransferType
Description:
Transfer types are:
References in use cases: NCA-100 - Transfer funds in local currency

Data structure Code table

Code: CodeTable
Description:
A base entity for all code tables.
Attributes:
NameCodeStatusTypeDescription
LabellabelMString [1024] 
Valid from MDate 
Valid until ODate 
References in data structures: Code table Bank code, Code table Country, Code table Currency, Code table Gender, Code table Document type, Account number, Withdrawal receipt, Input to calculateFee, Output from calculateFee, Document identification, Address, Client details, Account details, Personal data

Data structure Code table Bank code

Code: BankCode
Description:
Identifies a domestic bank. Each bank has its own bank code assigned by the national central bank.
Attributes:
NameCodeStatusTypeDescription
CodecodeMInteger [4]A four-digit code of the bank.
Own bankownBankMBooleanFlag indicating the bank operating the teller system. Exactly one bank code must have the flag set.
Common attributes  Code table 
References in data structures: Account number, Withdrawal receipt, Input to calculateFee, Output from calculateFee

Data structure expansion:
NameCodeStatusTypeDescription
CodecodeMInteger [4]A four-digit code of the bank.
Own bankownBankMBooleanFlag indicating the bank operating the teller system. Exactly one bank code must have the flag set.
LabellabelMString [1024] 
Valid from MDate 
Valid until ODate 

Data structure Code table Country

Code: Country
Attributes:
NameCodeStatusTypeDescription
CodecodeMString [2]The ISO standard country code.
Common attributes  Code table 
References in data structures: Document identification, Address, Client details

Data structure expansion:
NameCodeStatusTypeDescription
CodecodeMString [2]The ISO standard country code.
LabellabelMString [1024] 
Valid from MDate 
Valid until ODate 

Data structure Code table Currency

Code: Currency
Attributes:
NameCodeStatusTypeDescription
CodecodeMString [3]The ISO standard currency code.
Common attributes  Code table 
References in data structures: Account details

Data structure expansion:
NameCodeStatusTypeDescription
CodecodeMString [3]The ISO standard currency code.
LabellabelMString [1024] 
Valid from MDate 
Valid until ODate 

Data structure Code table Gender

Code: Gender
Attributes:
NameCodeStatusTypeDescription
CodecodeMString [1] 
Common attributes  Code table 
References in data structures: Personal data, Client details

Data structure expansion:
NameCodeStatusTypeDescription
CodecodeMString [1] 
LabellabelMString [1024] 
Valid from MDate 
Valid until ODate 

Data structure Code table Document type

Code: DocumentType
Description:
Type of personal document, like passport, id card, etc.
Attributes:
NameCodeStatusTypeDescription
CodecodeMString [] 
Common attributes  Code table 
References in data structures: Document identification, Client details

Data structure expansion:
NameCodeStatusTypeDescription
CodecodeMString [] 
LabellabelMString [1024] 
Valid from MDate 
Valid until ODate 

Data structure Withdrawal receipt

Code: WithdrawalReceipt
Description:
Data printed on withdrawal receipt.
Conforms to printing template (Withdrawal receipt - receipts/withdrawal-receipt-template-01.gif) .
Attributes:
NameCodeStatusTypeDescription
Account number  Account numberClient account number, debited for withdrawal amount and fee.
Name  String []Name of the primary account holder.
Amount withdrawn  DecimalAmount withdrawn by client.
Date and time  TimestampCurrent system date and time
References in use cases: CAS-100 - Withdraw cash in local currency

Data structure Account number

Code: AccountNumber
Description:
Structure of a domestic account number.
Attributes:
NameCodeStatusTypeDescription
PrefixprefixOInteger [6]Account number prefix.
NumbernumberMInteger [10]The account number itself.
Bank codebankCodeMCode table Bank codeCode of the bank keeping the account.
References in data structures: Withdrawal receipt, Input to calculateFee, Output from calculateFee
References in use cases: SYS-100 - Identify account

Data structure Account details

Code: AccountDetails
Attributes:
NameCodeStatusTypeDescription
Currency  Code table Currency 
Name  String []Name of the primary account holder.
Available balance  Decimal 
References in use cases: SYS-100 - Identify account

Data structure Personal id number

Code: PersonalId
Attributes:
NameCodeStatusTypeDescription
Number MInteger [10] 
References in use cases: SYS-110 - Identify client

Data structure Client details

Code: ClientDetails
Attributes:
NameCodeStatusTypeDescription
Personal data  Personal data 
Document identification  Document identification 
Address  Address 
References in use cases: SYS-110 - Identify client

Data structure expansion:
NameCodeStatusTypeDescription
Date of birth MDate 
First names MString [50] 
Last name MString [50] 
Gender MCode table Gender 
Type MCode table Document type 
Number MString [50] 
Country of issue MCode table Country 
Valid until MDate 
Street MString [] 
City MString [] 
ZIP MString [] 
Country MCode table Country 

Data structure Personal data

Code: PersonalData
Attributes:
NameCodeStatusTypeDescription
Date of birth MDate 
First names MString [50] 
Last name MString [50] 
Gender MCode table Gender 
References in data structures: Client details

Data structure Document identification

Code: DocumentIdentification
Attributes:
NameCodeStatusTypeDescription
Type MCode table Document type 
Number MString [50] 
Country of issue MCode table Country 
Valid until MDate 
References in data structures: Client details

Data structure Address

Code: Address
Attributes:
NameCodeStatusTypeDescription
Street MString [] 
City MString [] 
ZIP MString [] 
Country MCode table Country 
References in data structures: Client details

Data structure Input to calculateFee

Code: calculateFee_in
Attributes:
NameCodeStatusTypeDescription
Transaction type MEnumeration Transaction type 
Amount ODecimalTransaction amount equivalent in local currency, if relevant.
Account number OAccount numberAccount number of the transaction, if relevant.
References in use cases: FEE-100 - Calculate fee

Data structure Output from calculateFee

Code: calculateFee_out
Attributes:
NameCodeStatusTypeDescription
Fee MDecimalFee in local currency.
Fee description MString [1024] 
Revenue account for fee MAccount number 
References in use cases: FEE-100 - Calculate fee

Attachments overview

Receipt printing templates

Glossary

Term Abbreviation Description

Created in uctool.sf.net.