Baseline Application Description: Online banking application for tellers to perform transactions such as withdraws/deposits, fund transfers, and view transaction statements on user accounts

Baseline Application Features:

  • The system shall provide a login/logout interface for bank tellers
  • Tellers shall be allowed to create/edit customer information
  • Tellers shall be allowed to create accounts for customers
  • Tellers shall be allowed to deposit/withdraw money from accounts
  • Tellers shall be allowed to transfer funds between two of a customer’s accounts
  • Tellers shall be allowed to check the account balances
  • Tellers shall be allowed to check the transaction history of accounts
  • Tellers shall be allowed to close accounts

Note: This banking application only accounts for non-interest-bearing accounts. It does not consider interest, tax, commission, overdrafts, etc.

Reliability Requirements:

  • The client shall automatically fail over to another server without any noticeable effects on the front-end client screen aside from, at most, a 30-second delay for the fail over
  • A client, or a transaction, shall not be affected by a single server failure
  • The system shall be available 24×7 without any critical system failures
  • No account shall ever be in an inconsistent state
  • The teller shall never observe system level error on the client screen/interface

Real-Time Requirements:

  • Each transaction (except for transaction history queries) shall be completed within 1 second in the testing environment with at most 1000 user accounts
  • Each transaction history query of up to 1000 items shall be completed within 5 seconds in the testing environment with at most 1000 user accounts
  • Balance updates as a result of deposit, withdrawal, and/or fund transfer transactions shall take effect immediately (less than 50 ms) upon completion of those transactions

Performance Requirements:

  • The system shall support at least 100 concurrent and at most 500 concurrent client sessions
  • The system shall support up to 1000 TPS (transactions per second)

Baseline Application

Fault-Tolerant Baseline Application

  1. Fault Detection:
    1. How can a Client detect failure?
    2. How many faults can be tolerated?
  2. Fail-Over
    1. How can a Client check if a server bean instance is alive? 1
  3. Recovery
  4. Check Pointing
  5. Sequence diagram