Analytical Documentation
Name: UCTool Sample
Version: 0.1-SNAPSHOT
Sample analysis of a bank branch system demonstrating the Use case tool.
Requirements overview
Requirements details
Requirement RQ-001 - Provide bank services
Requirement RQ-100 - Withdrawal
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
Use cases details
Use case OVR-010 - Use services of bank's branch
Scope: New Branch System |
Type: Organization
Visibility: White-box
Level: High summary
|
Primary actor: Client |
Main success scenario: |
1. | Client comes to a branch. |
|
Use case OVR-100 - Use cash services of bank's branch
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 - Use non-cash services of bank's branch
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 - Withdraw cash in local currency
Use case CAS-200 - Deposit cash in local currency
Scope: New Branch System |
Type: System
Visibility: Black-box
Level: User goal
|
Primary actor: Cash teller |
Main success scenario: |
4. | User submits the transaction. |
|
Extensions: |
1a. | User decides to identify client: |
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 - Transfer funds in local currency
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: |
4. | User enters amount and effective date. |
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 - Perform direct debit in local currency
Scope: New Branch System |
Type: System
Visibility: Black-box
Level: User goal
|
Primary actor: Non-cash teller |
Main success scenario: |
3. | User enters amount and effective date. |
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 - Identify account
Use case SYS-110 - Identify client
Scope: New Branch System |
Type: System
Visibility: Black-box
Level: Subfunction
|
Primary actor: Teller |
Main success scenario: |
2. | System validates personal id number. |
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 - Calculate fee
Data structures overview
Data structures details
Data structure Enumeration Transaction type
Code: TransactionType
Description:
Transaction types are:
- Withdraw cash in local currency.
- Deposit cash in local currency.
- Transfer funds in local currency.
- Perform direct debit in local currency.
Data structure Enumeration Transfer type
Code: TransferType
Description:
Transfer types are:
- Normal: performed over-night.
- Express: performed on the day of entry.
Data structure Code table
Code: CodeTable
Description:
A base entity for all code tables.
Attributes:
Name | Code | Status | Type | Description |
Label | label | M | String [1024] | |
Valid from | | M | Date | |
Valid until | | O | Date | |
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:
Name | Code | Status | Type | Description |
Code | code | M | Integer [4] | A four-digit code of the bank. |
Own bank | ownBank | M | Boolean | Flag indicating the bank operating the teller system. Exactly one bank code must have the flag set. |
Common attributes | | | Code table | |
Data structure expansion:
Name | Code | Status | Type | Description |
Code | code | M | Integer [4] | A four-digit code of the bank. |
Own bank | ownBank | M | Boolean | Flag indicating the bank operating the teller system. Exactly one bank code must have the flag set. |
Label | label | M | String [1024] | |
Valid from | | M | Date | |
Valid until | | O | Date | |
Data structure Code table Country
Code: Country
Attributes:
Name | Code | Status | Type | Description |
Code | code | M | String [2] | The ISO standard country code. |
Common attributes | | | Code table | |
Data structure expansion:
Name | Code | Status | Type | Description |
Code | code | M | String [2] | The ISO standard country code. |
Label | label | M | String [1024] | |
Valid from | | M | Date | |
Valid until | | O | Date | |
Data structure Code table Currency
Code: Currency
Attributes:
Name | Code | Status | Type | Description |
Code | code | M | String [3] | The ISO standard currency code. |
Common attributes | | | Code table | |
Data structure expansion:
Name | Code | Status | Type | Description |
Code | code | M | String [3] | The ISO standard currency code. |
Label | label | M | String [1024] | |
Valid from | | M | Date | |
Valid until | | O | Date | |
Data structure Code table Gender
Code: Gender
Attributes:
Name | Code | Status | Type | Description |
Code | code | M | String [1] | |
Common attributes | | | Code table | |
Data structure expansion:
Name | Code | Status | Type | Description |
Code | code | M | String [1] | |
Label | label | M | String [1024] | |
Valid from | | M | Date | |
Valid until | | O | Date | |
Data structure Code table Document type
Code: DocumentType
Description:
Type of personal document, like passport, id card, etc.
Attributes:
Name | Code | Status | Type | Description |
Code | code | M | String [] | |
Common attributes | | | Code table | |
Data structure expansion:
Name | Code | Status | Type | Description |
Code | code | M | String [] | |
Label | label | M | String [1024] | |
Valid from | | M | Date | |
Valid until | | O | Date | |
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:
Name | Code | Status | Type | Description |
Account number | | | Account number | Client account number, debited for withdrawal amount and fee. |
Name | | | String [] | Name of the primary account holder. |
Amount withdrawn | | | Decimal | Amount withdrawn by client. |
Date and time | | | Timestamp | Current system date and time |
Data structure Account number
Code: AccountNumber
Description:
Structure of a domestic account number.
Attributes:
Name | Code | Status | Type | Description |
Prefix | prefix | O | Integer [6] | Account number prefix. |
Number | number | M | Integer [10] | The account number itself. |
Bank code | bankCode | M | Code table Bank code | Code of the bank keeping the account. |
Data structure Account details
Code: AccountDetails
Attributes:
Name | Code | Status | Type | Description |
Currency | | | Code table Currency | |
Name | | | String [] | Name of the primary account holder. |
Available balance | | | Decimal | |
Data structure Personal id number
Code: PersonalId
Attributes:
Name | Code | Status | Type | Description |
Number | | M | Integer [10] | |
Data structure Client details
Code: ClientDetails
Attributes:
Data structure expansion:
Data structure Personal data
Code: PersonalData
Attributes:
Name | Code | Status | Type | Description |
Date of birth | | M | Date | |
First names | | M | String [50] | |
Last name | | M | String [50] | |
Gender | | M | Code table Gender | |
Data structure Document identification
Code: DocumentIdentification
Attributes:
Data structure Address
Code: Address
Attributes:
Name | Code | Status | Type | Description |
Street | | M | String [] | |
City | | M | String [] | |
ZIP | | M | String [] | |
Country | | M | Code table Country | |
Data structure Input to calculateFee
Code: calculateFee_in
Attributes:
Name | Code | Status | Type | Description |
Transaction type | | M | Enumeration Transaction type | |
Amount | | O | Decimal | Transaction amount equivalent in local currency, if relevant. |
Account number | | O | Account number | Account number of the transaction, if relevant. |
Data structure Output from calculateFee
Code: calculateFee_out
Attributes:
Name | Code | Status | Type | Description |
Fee | | M | Decimal | Fee in local currency. |
Fee description | | M | String [1024] | |
Revenue account for fee | | M | Account number | |
Attachments overview
Receipt printing templates
Glossary
Term |
Abbreviation |
Description |
Created in uctool.sf.net.