Software Requirements Specification
Software Requirements Specification
Software Requirements Specification
Specification
For
ATM
Software Requirements Specification for <ATM> - ii -
Table of Contents
1. Introduction..............................................................................................................................1
1.1 Purpose.................................................................................................................................1
1.2 Document Conventions........................................................................................................1
1.3 Intended Audience and Reading Suggestions......................................................................1
1.4 Definitions, acronyms, abbreviations..................................................................................1
1.5 Scope……………………………………………………………………………………
3
2. Overall Description..................................................................................................................3
2.1 Product Perspective..............................................................................................................3
2.2 Product Features..................................................................................................................4
2.3 User Classes and Characteristics..........................................................................................5
2.4 Operating Environment........................................................................................................5
2.5 Design and Implementation Constraints..............................................................................5
2.6 Assumptions and Dependencies...........................................................................................7
3. Specific Requirements.............................................................................................................7
3.1 Functional Requirement.......................................................................................................7
3.2 Requirements of the bank computer for the ATM…………………………………… ………..11
4. External Interface Requirements.........................................................................................13
4.1 User Interfaces...................................................................................................................13
4.2 Hardware Interfaces...........................................................................................................13
4.3 Software Interfaces............................................................................................................14
5. Other Nonfunctional Requirements.....................................................................................14
5.1 Performance Requirements................................................................................................14
5.2 Safety Requirements..........................................................................................................14
5.3 Security Requirements.......................................................................................................14
5.4 Software Quality Attributes...............................................................................................15
6. Other Requirements..............................................................................................................15
Software Requirements Specification for <ATM> Page 1
1.Introduction
1.1 Purpose
This document describes the software requirements and specification for an automated teller
machine (ATM) network.
The document is intended for all the stakeholders customer and the developer (designers, testers,
maintainers). The reader is assumed to have basic knowledge of banking accounts and account
services. Knowledge and understanding of UML diagrams is also required.
1.4.1 Definitions
Account
A single account in a bank against which transactions can be applied. Accounts may be of various
types with at least checking and savings. A customer can hold more than one account.
ATM
A station that allows customers to enter their own transactions using cash cards as identification.
The ATM interacts with the customer to gather transaction information, sends the transaction
information to the central computer for validation and processing, and dispenses cash to the
customer. We assume that an ATM need not operate independently of the network.
Bank
A financial institution that holds accounts for customers and that issues cash cards authorizing
access to accounts over the ATM network.
Bank computer
Software Requirements Specification for <ATM> Page 2
The computer owned by a bank that interfaces with the ATM network and the bank’s own cashier
stations. A bank may have its own internal network of computers to process accounts, but we are
only concerned with the one that interacts with the network.
Cash Card
A card assigned to a bank customer that authorizes access to accounts using an ATM Machine.
Each card contains a bank code and a card number, coded in accordance with national standards on
credit cards and cash cards. The bank code uniquely identifies the bank within the consortium. The
card number determines the accounts that the card can access. A card does not necessarily access all
of a customer’s accounts. Each cash card is owned by a single customer, but multiple copies of it
may exist, so the possibility of simultaneous use of the same card from different machines must be
considered.
Customer
The holder of one or more accounts in a bank. A customer can consist of one or more persons or
corporations, the correspondence is not relevant to this problem. The same person holding an
account at a different bank is considered a different customer.
Transaction
A single integral request for operations on the accounts of a single customer. We only specified that
ATMs must dispense cash, but we should not preclude the possibility of printing checks or
accepting cash or checks. We may also want to provide the flexibility to operate on accounts of
different customers, although it is not required yet. The different operations must balance properly.
1.4.2 Abbreviations
The software supports a computerized banking network. The network enables customers to
complete simple bank account services via automated teller machines (ATMs) that may be located
off premise and that need not be owned and operated by the customer’s bank. The ATM identifies a
customer by a cash card and password. It collects information about a simple account transaction
(e.g., deposit, withdrawal, transfer, bill payment), communicates the transaction information to the
customer’s bank, and dispenses cash to the customer. The banks provide their own software for
their own computers. The bank software requires appropriate record keeping and security
provisions. The software must handle concurrent accesses to the same account correctly.
2. Overall Description
The ATM network does not work independently. It works together with the banks’ computers and
the software run by the network’s banks.
Communication interface: The ATMs communicate with the banking systems via a
communication network.
Software interface: The messages sent via the communication network are specific to the target
banking software systems. At present, two known banking systems will participate in the ATM
network.
Hardware interface: The software will run on an ATM computer yet to be chosen.
User interfaces
Customer: The customer user interface should be intuitive, such that 99.9% of all new ATM users
are able to complete their banking transactions without any assistance.
Bank Security Personnel: Bank security personnel are responsible for removing deposits and
adding cash to ATMs. There should be a simple interface (e.g., a switch or button) that they can use
to initialize the ATM whenever they restock.
Maintainer: The maintainer is responsible for adding new ATMs to the network and servicing
existing ATMs. A maintainer should be possible to add a new ATM to the network within 1 hour.
Software Requirements Specification for <ATM> Page 4
The ATM should work 24 hrs. The ATM identifies a customer by a cash card and password. It
collects information about a simple account transaction (e.g., deposit, withdrawal, transfer, bill
payment), communicates the transaction information to the customer’s bank, and dispenses cash to
the customer. The banks provide their own software for their own computers. The bank software
requires appropriate record keeping and security provisions. The software must handle concurrent
accesses to the same account correctly.
Software Requirements Specification for <ATM> Page 5
The hardware, software and technology used should have following specifications:
Login
Validate that the card's expiration date is later than today's date
If card is lost, prompt error message, "Card has been reported lost"
If card is stolen, prompt error message, "Card has been reported stolen"
If card is disabled, prompt error message, "Card has been disabled as of <expiration date>"
Validate for Locked Account:
Validate PIN:
Withdraw Cash
Transfer Funds
3. Specific Requirements
The functional requirements are organized in two sections First requirements of the ATM and
second requirements of the bank.
The requirements for the automated teller machine are organized in the following way General
requirements, requirements for authorization, requirements for a transaction.
General
Functional requirement 1:
Functional requirement 2:
Description: If no cash card is in the ATM, the system should display initial display.
Functional requirement 3:
Description: If the ATM is running out of money, no card should be accepted. An error
message is displayed.
Authorization: The authorization starts after a customer has entered his card in the ATM
Software Requirements Specification for <ATM> Page 8
Functional requirement 4:
Description: The ATM has to check if the entered card is a valid cash-card.
It is not expired.
Functional requirement 5:
Description: If the cash card is valid, the ATM should read the serial number and bank
code.
Functional requirement 6:
Description Authorization dialog: The user is requested to enter his password. The ATM
verifies the bank code and password with the bank computer
Processing: Send serial number and password to bank computer, receive response from
bank.
Functional requirement 8:
Description: Different negative answers from bank computer for authorization dialog.
- “bad bank code” if the cash card of the bank is not supported by the ATM.
- “bad account” if there are problems with the account.
Processing: If the ATM gets any of these messages from the bank computer, the card will
be ejected, and the user will get the relevant error message.
Description: If password and serial number are ok, the authorization process is finished.
Input: The ATM gets accept from the bank computer from authorization process.
Description: If a card was entered more than three times in a row at any ATM and the
password was wrong each time, the card is kept by the ATM. A message will be displayed
that the customer should call the bank.
Processing: Initiate authorization process Response from bank computer is to keep the card.
Output: Display error message that the customer should call the bank.
Functions: These are the requirements for the different functions the ATM should provide after
authorization.
Functional requirement 11:
Description: Initial withdrawal sequence. If it is too much withdrawal redo the transaction.
Output: Start transaction or re-initiate transaction dialog if the amount is not within the pre-
defined transaction policy.
Input: ATM gets message “transaction succeeded” from the bank computer.
Processing: ATM prints receipt, updates t and ejects the card. Dialog: Customer should take
the card.
Output: After the Customer has taken the card the money is dispensed.
Processing: the attaches the amount of money against the serial number of the card.
Output: Amount together with the serial number. Response sent to bank for money
dispensed.
Description: If the transaction is not successful, an error message should be displayed. The
card should be ejected.
Input: ATM gets message “transaction not successful” from the bank computer.
Processing: ATM displays error message. Dialog: Customer should take the card.
Authorization
The bank computer gets a request from the ATM to verify an account.
Functional requirement 1:
Description: The bank computer checks if the bank code is valid. A bank code is valid if
the cash card was issued by the bank.
Input: Request from the ATM to verify card (Serial number and password.)
Description: If it is not a valid bank code, the bank computer will send a message to the
ATM.
Output: The bank computer sends the message “bad bank code” to the ATM.
Functional requirement 3:
Description: The bank computer checks if the password is valid for a valid cash card.
Functional requirement 4:
Description: If it is not a valid password, the bank computer will send a message to the
ATM.
Processing: Process message. Update count for invalid password for the account.
Output: The bank computer sends the message “bad password” to the ATM.
Software Requirements Specification for <ATM> Page 12
Functional requirement 5:
Description: If it is a valid cash card and a valid password but there are problems with the
account, the bank will send a message to the ATM that there are problems.
Description: If it is a valid cash card a valid password and there are no problems with the
account the bank computer will send a message to the ATM that everything is ok.
The bank computer gets a request to process a transaction from the ATM.
Functional requirement 7:
Processing: Process transaction (together with the software of the bank.) Update k for
amount.
Output: If transaction succeeded, the bank computer sends the message “transaction
succeeded” to the ATM. If not, it will send “transaction failed”.
Functional requirement 8:
Description: Each bank has a limit k for each account about the amount of money that is
available via cash card each day monthly.
Software Requirements Specification for <ATM> Page 13
Output: If the amount exceeds the limit, the transaction will fail.
Description: The bank only provides security for their own computer and their own
software.
The customer user interface should be intuitive, such that 99.9% of all new ATM users are able to
complete their banking transactions without any assistance
The software interfaces are specific to the target banking software systems.
Software Requirements Specification for <ATM> Page 14
• The cabin door will always be locked, which will open only when user swipes his/her
ATM card in the slot & is validated as genuine
Security.
Performance.
Software Requirements Specification for <ATM> Page 15
5.4.2 Security: The ATM network should provide maximal security. In order to make that much
more transparent there are the following requirements:
6. Other Requirements