ATM System Design: Requirements, Refinement, Traceability, Architecture

ATM System Design: Requirements, Refinement, Traceability, Architecture_1

Contents
Task 1: Requirement specification . 2
1. Introduction . 2
1.1 Purpose . 2
1.2 Product Description . 2
2. Product Decomposition . 3
2.1 Stakeholders . 3
2.2 Stakeholder's Functional Requirements . 3
2.3 Non-functional Requirements . 3
2.4 System Use Cases . 3
2.3.1 Use Case Specifications . 4
Task 2: Refinement and Traceability . 6
Check Account Balance . 6
Withdraw Funds . 7
Deposit Funds . 8
Class Diagrams . 9
Traceability Matrix . 9
Task 3: Architecture Design . 10
Key Advantages of using MVC . 12
Task 4: Cloud-based ATM . 14
References . 16

ATM System Design: Requirements, Refinement, Traceability, Architecture_2

Task 1: Requirement specification
1. Introduction
1.1 Purpose
The purpose of this document is to present a detailed description of An Automated Teller
Machine (ATM) Software System. This requirement specification document outlines the features
of the software, users, use cases, interfaces and operating constraints. The document is intended
for use as a blueprint for the implementation of the system by developers, and a reference point
for the software architecture by maintenance personnel.
1.2 Product Description
The software to be developed in this project will run an Automated Teller Machine (ATM). An
ATM is a highly complex system that is both real-time and safety-critical. It plays a critical role
in helping financial institutions handle more transactions by increasing accessibility of services
to account holders, while reducing the need for additional staff. The basic building blocks of an
ATM are the hardware, software , a backend database and network connecting the ATM to a
financial institution's core banking system. This project focus on the software that runs and
simulates the operations of an ATM.
The system outlined in this specification document avails users with features to allow them to
check balance, withdraw cash and deposit cash. It also allows an operator to load cash into the
system and manage all the features of the system.
2. Product Decomposition
2.1 Stakeholders
The ATM software has two main stakeholders;
 Customer : a bank customer who will be interacting with the ATM to either deposit,
check balance or withdraw cash.
 Operator : will interact with the ATM when loading or offloading cash from the
machine. The operator will have an option to switch off the system; effectively shutting
down the services to the customers.

ATM System Design: Requirements, Refinement, Traceability, Architecture_3

2.2 Stakeholder's Functional Requirements
 - Menu with all the options for interacting with the ATM
 -Verify a user with account number and pin
 -Option to View balance
 -Withdraw cash
 -Select withdrawal amount
 -Check if an account has sufficient funds
 -Check if the ATM has enough funds to dispense
 -Deposit funds
 -Exit from the system
2.3 Non-functional Requirements
 Menu items to be displaced in a clear manner for ease of use
 Provide a user with an option to exit from any given process
 Handle errors gracefully
 The system should be able to recover from an error condition without affecting financial
records
 Secure data communication
2.4 System Use Cases
Use Case ID Use Case Description
UC01 Authenticate a User A user is presented with a welcome screen when one types in a
five digit account number and PIN. the system verifies if the
account number is valid and if the PIN is correct. If the account
and PIN are okay, the system displays the main menu with
options, else it displays an error message and returns to the
welcome screen.
UC02 Check Account
Balance
If a user selects option 1 on the main menu, the system queries
the bank's database for the account balance and displays the
balance to the user.
UC03 Withdraw Funds If a user chooses option 2; Withdraw Funds, the system displays
a menu options with standard withdrawal amounts;: £20 (option
1), £40 (option 2), £60 (option 3), £100 (option 4) and £200, as
well as an option to allow the user to cancel the transaction
(option 6).
-Upon the user selecting the amount to withdraw, the system
queries the bank's database for the account balance
- If the account balance can service the withdrawal request the
system queries the cash dispenser to check if there are enough
funds to satisfy the request; otherwise the an error message is
displayed
-If there is enough funds in the dispenser, funds are dispensed