ATM Software Development System

55 downloads 587 Views 1MB Size Report
Software to communicate between ATM and bank, is not part of the requirement. •. The bank will .... to target because of quality system development. 1.3.2.1.
Advance Requirement & Software Engineering Nasreen Iqbal Msc. Software Engineering [email protected] De Montfort University

1. REQUIREMENT SPECIFICATION & TEMPLATE This section covered requirement number 1 & 2 for the task 1. 1.1. Introduction An analyst who understands the requirement and has the ability to use the tools, that represents the quality slandered in the requirement. “The system shall” is the phrase clearly specified in the requirement that referred the IEEE recommended practice 830. Automated Teller Machine that highly complicated in the implementation, required recommended slandered supportive provisions to cover all the minor or major requirements. The functional and non-functional requirements for the ATM simulation system will discuss in the following recommended framed template. 1.1.1. Purpose This document describes the software requirements for a simulation Automated Teller Machine. It is intended for the developer, designer, stockholder and maintainer of the ATM System. 1.1.2. Scope The functional and nonfunctional specification of the ATM is to support a computerized banking system to cover its basic requirements. 1.1.3. Out of Scope   

Software to communicate between ATM and bank, is not part of the requirement The bank will integrate with the ATM Hardware but later. The Hardware not been yet developed.

1.1.4. Definitions Account A single account in a bank against the transactions can be applied, with at least checking and savings. ATM A terminal that allows customers to enter their own transactions using account number as identification. The ATM interacts with the customer to gather transaction information and forward to the Bank database for validation and dispenses cash to the customer. We assume that an ATM will operate all validations and processing independently because bank trusted and authorized. Bank A financial services group that holding customer accounts and authorizing access to accounts over the ATM machine. Account Number A unique number assigned to a bank customer that authorizing access to accounts using an ATM machine. Customer Customer is the holder of one or more accounts in a bank. One customer holding an account at a different bank is considered a different customer in each bank. Transaction Process a transaction request for operation from the customer. We have only specified that ATM must dispense cash or accepting envelopes. Operator It should be easy to maintain the whole system. The maintainer will only bank authorized person, who allowed for the ATM dispenser refilling, removal of envelop and shut down and restart the ATM.

1 | Page

1.1.5. Abbreviations Throughout this document the following abbreviations are used.    

k is the maximum withdrawal per day and account. m is the maximum withdrawal per transaction n is the minimum cash in the ATM to permit a transaction t is the total fund in the ATM at start of day

1.2. Overview This section does not state specific requirements. Instead, it provides a background for requirements. This section usually consists of six subsections, as follows: 1.2.1. Product Perspective The bank will communicate with the bank computer over an appropriate communication link in the latest stage with the integration of bank software (Not included in the requirement) 1.2.2. Product functions The purpose of the ATM software must support computerized banking database to maintain their accounts and process transactions. ATM communicates with the bank database, interacts with the user to carry out the transaction dispenses cash. All these activities considered using logical database without caring its physical location. 1.2.3. Key Stakeholders 

Customer



Operator



Bank



ATM

1.2.4. Constraints This section will provide a general description of items that limits the developer‟s options.    

The bank will communicate with the ATM through the appropriate communication link. The software should encapsulate the functionality of the hardware devices within software components. The ATM hardware is not developed. The ATM must interact with the banks database.

1.2.5. Assumptions and dependencies . The assumptions and dependencies represent the risk.     

The bank will integrate the software with the ATM‟s hardware at a later time. Bank trusts the ATM to access the information in the database without security measures. ATM Hardware will available at the time of installation. Develop a simulation first version. Absence of bank database connection.

1.2.6. MoSCow Criteria / Requirements Prioritisation The requirements will be prioritized which divides the requirements into the following four categories: Priority Ranking

Description

M – Must Have

Describes a requirement that must be satisfied with the final solution to be considered a success.

S – Should Have

Describes a high-priority item that should be included in the solution if it is possible. This is often a critical requirement but can be satisfied in other ways if required.

C – Could Have

A requirement which is considered desirable but not necessary. This will be included when time and resources permit.

W – Won’t Have

Represents a requirement that stakeholders have agreed but will not be implemented in a given release, may consider for the future.

2 | Page

1.2.7. Intended Audience and Document Overview The intended audience of this document is a developer‟s group or system administrators who would use the library to control ATM system. 1.3. Specific Requirements The specific requirement focused mainly on functional requirements of ATM and bank system. 1.3.1. External Interface Requirement 1.3.1.1. User interfaces The interface of the ATM must represent the ergonomic requirements. We can distinguish this section with the hardware interface, software interface and communication interfaces, but currently we have no hardware and no communication software from the bank, we are running software on the PC therefore only the user interfaces needed. The followings are the possible interface to the ATM.    

Screen that display Messages Withdrawal screen Deposit Screen Operator screen

1.3.1.2. Hardware interfaces Not Applicable 1.3.1.3. Software interfaces Not Applicable 1.3.1.4. Communications interfaces Not Applicable. 1.3.2. Functional Requirement The functional requirements are organized in two sections: First requirements of the ATM and second requirements of the bank. Please note there are some requirements not specified in the coursework, but we tried to target because of quality system development. 1.3.2.1. Requirements of the ATM The requirements for the automated teller machine are organized in the following way. General requirements, requirements for authorization, requirements of the bank database and function requirement. 1.3.2.1.1. General Functional Requirement ID

FR01

Priority

M

Requirement Description

Initialize parameters t,k,m,n

Input

ATM is initialized with t Pounds. K,m,n are entered.

Processing

Loading the parameters

Output

Parameters are set.

Functional Requirement ID

FR02

Priority

S

Requirement Description

ATM should display Welcome Screen.

Functional Requirement ID

FR03

3 | Page

Priority

S

Requirement Description

If the ATM is running out of money.

Output

Display an error message and No Welcome Screen display

1.3.2.1.2. Authorization: The authorization starts after a customer has entered his card in the ATM. Functional Requirement ID

FR04

Priority

M

Requirement Description

Screen displays Main message and prompt to enter 5 digit account number.

Input

Customer enter 5 digit account number

Processing

The ATM verifies the account number with the bank database.

Output

ATM Accept or reject authorization after verification from the bank database

Functional Requirement ID

FR05

Priority

S

Requirement Description

If the Account number is valid, then ATM should prompt the PIN number.

Input

Enter 5 digits PIN Number

Processing

ATM do PIN verified with the bank database.

Output

Authentication accept or reject

Functional Requirement ID

FR06

Priority

S

Requirement Description

The Account number should be logged for record tracing.

Input

Account number entered by the user

Processing

Log the number in the log-file, stored in the system

Output

Update the log file.

Functional Requirement ID

FR07

Priority

M

Requirement Description

Different negative answers from an ATM while doing an authorized activity from the bank computer for authorization dialog.

Input

Response from bank database or authorization dialog: Bad account number: if the account number was wrong. Bad PIN Number: if the PIN number was wrong.

Processing

ATM gets any of these errors from the bank database; the user will get the 4 | Page

appropriate message. Output

Message display and return to main menu (FR02).

Functional Requirement ID

FR08

Priority

S

Requirement Description

If Account number and PIN number is ok, then authorization process is finished.

Input

The ATM gets acceptance from the bank database for the authorization process.

Processing

Finishing authorization

Output

Start a transaction dialog. Screen display main menu (FR10)

Functional Requirement ID

FR09

Priority

C

Requirement Description

If the account number or PIN Number entered more than 3 times and each time both the numbers are invalidated. A message will be displayed that the customer should call the bank.

Input

Entering a wrong Account / PIN number more than 3 times in a session.

Processing

Verified and check the counter (infinite loop used here)

Output

Display error message that „the customer should call the bank‟.

1.3.2.1.3. Functions These are the requirements for the different functions the ATM should provide after authorization. Functional Requirement ID

FR10

Priority

M

Requirement Description

After Authentication, ATM will display the main menu contained 4 options

Input

Authorization successfully completed. An ATM display withdrawal menu containing the withdrawal amount 1- View balance 2- Withdraw cash 3- Deposit fund 4- Exit

Processing

ATM will process transactions from the following above options, exit if customer chooses 4.

Functional Requirement ID

FR11

Priority

M

Requirement Description

The kind of transactions the ATM offers is: Withdrawal.

5 | Page

Input

Authorization successfully completed. An ATM display withdrawal menu containing the withdrawal amount 20 (Option 1), 40 (Option 2), 60 (Option 3), 100 (Option 4), 200 (Option 5), 6 (Cancel)

Processing

ATM will begin transaction process or cancel the session

Output

Transaction accepted or rejected based on selection.

Functional Requirement ID

FR12

Priority

M

Requirement Description

The kind of transactions the ATM offers is: Deposit.

Input

Authorization successfully completed. Screen prompts to type deposit amount Type 0 – Cancel The user must enter the number of pens, no decimal accepted

Processing

Start Deposit processed, or the user chooses Exit typing 0

Output

ATM Ask for the envelop or display welcome menu (FR02)

1.3.2.1.4. Withdrawal Function The withdrawal requirement is based on the Simulated ATM system; there will be no physical interaction with the cash dispenser. The function will ask user to collect money and user will press ok to complete the transaction. Functional Requirement ID

FR13

Priority

M

Requirement Description

The kind of transactions the ATM offers is: Withdrawal.

Input

Authorization successfully completed. Customer inputs a menu (FR10) selection using Keypad.

Processing

The withdrawal amount entered is greater than the user‟s account balance

Output

ATM Display message stating problem and the system prompt to enter smaller amount. System Return to withdrawal menu (FR10)

Functional Requirement ID

FR14

Priority

C

Requirement Description

Customer selected Cancel option from the withdrawal menu.

Input

Customer selected 6 as cancel from the withdrawal menu (FR10)

Processing

ATM terminates the withdrawal menu.

Output

The System display Thank you message and returned to Welcome Screen (FR02)

Functional Requirement ID

FR15

6 | Page

Priority

M

Requirement Description

The kind of transactions the ATM offers is: Withdrawal.

Input

The customer selects a choice from the menu (FR10) for the withdrawal

Processing

Selected withdrawal amount is less than or equal to the user‟s account balance

Output

The system accepted transaction and begin process to check the cash dispense for the selected amount.

Functional Requirement ID

FR16

Priority

M

Requirement Description

Dispense slot contained greater than the selecting withdrawal amount.

Processing

ATM debit withdrawal amount from the users‟ account from the bank database.

Output

The Cash Dispenser dispensed the desired amount, Display message, reminding user to collect amounts from the Cash Dispenser.

Functional Requirement ID

FR17

Priority

M

Requirement Description

Cash Dispense contained not enough value.

Processing

The system checks the cash dispenser for the available balance and prompts to select lesser amount.

Output

A message displays indicating the problem and prompt to select, the less amount; System return to the withdrawal menu (FR10).

Functional Requirement ID

FR18

Priority

C

Requirement Description

If the money is dispensed, the amount is logged.

Input

The number of 20£ bills requested is dispensed to the customer.

Processing

Entered the details against the account number in the log.txt file stored in the system.

Output

Details logged along with the account number, the response sent to the bank.

1.3.2.1.5. Deposit Function The Deposit slot here texture as a real ATM process, in the real hardware the slot might send the signal to ATM indicating that envelope deposited, the ATM, then sends messages to the bank indicating that envelope deposited and the bank will credit the amount, to simulate this operation into the ATM, included deposit slot in the development. If the customer fails to deposit the envelope within the timeout period, or presses cancel instead, the deposit will not be credited to the customer. Functional Requirement ID

FR19

7 | Page

Priority

C

Requirement Description

The kind of transactions the ATM offers is: Deposit.

Input

Authorization successfully completed. Customer Entered the amount to deposit

Processing

Verified entered amount, System rejected the real number

Output

The Message appeared to remember that “Enter amount in pens only”, return to FR13 and wait

Functional Requirement ID

FR20

Priority

M

Requirement Description

The kind of transactions the ATM offers is: Deposit.

Input

Customer entered amount in the pens to deposit

Processing

Verified the entered amount value, the system calculates the amount divided by 100 to obtain a number representing pound (e.g. 125/100=1.25)

Output

The screen displayed a message to the user to insert a deposit envelope into the deposit slot.

Functional Requirement ID

FR21

Priority

M

Requirement Description

Deposit Slot Receive the Envelop

Input

Prompt to insert Envelop into deposit slot

Processing

If the envelope received within 2 minutes, then ATM credited the deposited amount to the user‟s account.

Output

The screen displays a Thank You Message, return to the main menu and wait for additional transaction or choose exit.

Functional Requirement ID

FR22

Priority

M

Requirement Description

Deposit Slot Not Receive the Envelop in the specific period of time.

Input

Customer not insert Envelop into the deposit slot

Processing

ATM waits for 2 minutes, deposit slot not received envelop.

Output

The screen displays a message that the system has cancelled the transaction, display main menu (FR10) and wait for user input.

Functional Requirement ID

FR23

Priority

S

Requirement Description

The Customer chooses to cancel

8 | Page

Input

Customer Entered 0 (Zero) to exit.

Processing

ATM cancels the transaction

Output

The screen return to main menu (FR02)

1.3.2.1.6. View Balance Functional Requirement ID

FR24

Priority

M

Requirement Description

Process balance inquiry

Input

Entered view balance option from the main menu FR10

Processing

ATM retrieves balance from the bank account

Output

The screen displays the user‟s account balance, return to the main menu (FR10) and wait for another input.

1.3.3. Requirements of the Bank Database for the ATM 1.3.3.1. Authorization: The bank gets a request from the ATM to verify an account. If the bank database determines that the customer's account number / PIN is invalid, the customer will be required to re-enter the details. The bank will check If the customer is unable to successfully enter the account number / PIN after three tries, the bank will send a message to the customer stated to contact the bank. Functional Requirement ID

FR25

Priority

S

Requirement Description

If it is not a valid bank Account number, the ATM will send a message to the Customer

Input

Invalid bank Account number.

Processing

The ATM, check from the bank database, if the bank account is invalid. A bank account is valid if the account number available in the database.

Output

The ATM displays the message “Invalid Bank Account”

Functional Requirement ID

FR26

Priority

S

Requirement Description

The ATM, checks the bank database if the PIN invalid.

Input

Invalid PIN

Processing

The ATM, check from the bank database, if the PIN is invalid. A PIN is invalid if the PIN number (hexadecimal) doesn't match in the database.

Output

Invalid PIN.

Functional Requirement ID

FR27

Priority

S

Requirement

The ATM will check the bank database if the PIN valid. 9 | Page

Description Input

Valid PIN

Processing

The ATM, check from the bank database, if the PIN is valid. A PIN is valid if the PIN number (hexadecimal) matches in the database.

Output

Valid PIN Number.

Functional Requirement ID

FR28

Priority

M

Requirement Description

ATM counts the number of wrong PIN and Account entries

Input

Repeatedly invalid PIN / Account number entered

Processing

Update count for invalid PIN / Account number for the account. If it reached the maximum limit then ATM must cancel the transaction.

Output

The ATM Display the message “Invalid PIN/ account number attempt”, return to main menu (FR02)

Functional Requirement ID

FR29

Priority

S

Requirement Description

If it is a valid Account and a valid PIN but there are problems with the account.

Input

Valid Account Number and PIN

Processing

The problem occurred in the system, ATM will send a problem message

Output

The ATM Display error message and return to welcome screen

Functional Requirement ID

FR30

Priority

S

Requirement Description

If it is a valid Account number, a valid PIN and there are no problems with the account

Input

Valid Account/ PIN number.

Processing

Process Message

Output

ATM receives “Account ok” from the database

1.3.3.2. Transaction: The ATM will communicate with the bank in each transaction and obtain verification. The transaction will be considered complete by the bank once it has been approved. If a transaction fails for any other reason rather than an invalid PIN or invalid account number, the ATM will display a description of the problem, and prompt to do another transaction. Functional Requirement ID

FR31

Priority

M

Requirement Description

After a request the ATM computer processes the transaction

10 | P a g e

Input

Request to process a transaction on an account and amount „m‟ to withdraw.

Processing

Process a transaction. Update k parameter for a month

Output

If transaction succeeded, the ATM displays the message “Transaction Succeeded”. If not, it will display “Transaction Failed”.

Functional Requirement ID

FR32

Priority

M

Requirement Description

Update account after the money is dispensed

Input

The response from ATM about money dispensed, deduction from the t parameter

Processing

Updates account by the ATM in the bank database

Output

New account record

Functional Requirement ID

FR33

Priority

S

Requirement Description

ATM dispenser has a limit „k‟ for each account.

Input

Request to process the transaction

Processing

Check if the amount of money doesn‟t exceed k parameter

Output

If the amount exceeds the limit the transaction will fail and display the message, return to main menu.

Functional Requirement ID

FR34

Priority

S

Requirement Description

If the deposit slot received the envelope, actually user will press OK button to accept.

Input

Deposit slot

Processing

ATM manipulates with the bank database

Output

The ATM credits the deposit amount to the user‟s account balance.

Functional Requirement ID

FR35

Priority

M

Requirement Description

If Successfully Execute the Transaction.

Input

Transaction Completed

Processing

Check transaction over

Output

The system will return to the main menu and wait for another transaction.

Functional

FR36 11 | P a g e

Requirement ID Priority

W

Requirement Description

If the transaction has encountered with k, m, n constraints abbreviation

Input

The transaction starts

Processing

ATM, check abbreviations with k, m, n and invalidate any of them

Output

Display error message, return to the main menu.

1.3.3.3. Session: Functional Requirement ID

FR37

Priority

M

Requirement Description

The ATM session begins

Input

Customer Input the identity

Processing

The authentication verified by the bank database and executing the transaction.

Output

The system will wait for user input using the main menu.

Functional Requirement ID

FR38

Priority

S

Requirement Description

ATM session Ended or Cancelled by the user

Input

Customer Inputs selection or choose exit.

Processing

The Session completed its transaction or terminated by the user exit selection or other termination occurred, logged the account number in the log file.

Output

„Thank You‟ message display and return to the main menu (FR02)

1.3.4. Bank Operation panel activity The ATM will have operated switch that will allow authorized operator to start and stop the servicing of customers by turning OFF/ON ATM. The operator will be required to remove envelops from the slot and enter the total cash on hand while ATM turned OFF, which in turn not servicing a customer. The Operator required to verify and confirm when the machine turned ON. The Operator is presuming that no physical interaction yet, the simulation only shuts down and start up the PC. Functional Requirement ID

FR39

Priority

M

Requirement Description

ATM Operator Panel turns off

Input

The switch Off of the ATM system by the operator.

Processing

The ATM system shutdown.

Output

The Operator removes envelops from the deposit slot and refill the cash dispenser. (Simulate)

12 | P a g e

Functional Requirement ID

FR40

Priority

M

Requirement Description

ATM Operator Panel turn On

Input

The Switch On by the operator.

Processing

The Operator verified filled dispenser and deposit slot and confirmed before ATM Switch-On.

Output

The ATM System-Up and initialized parameters, display “Welcome Screen”, ready to use.

1.3.5. Non Functional requirement The non-functional quality requirements are little tricks to gather, it included interface requirement, maintenance, time, reliability, survivability, security and operating requirement. In simulation do not much nonfunctional activity recorded, but few are very important as per check list. 1.3.5.1. Performance requirements Functional Requirement ID

FR41

Priority

M

Requirement Description

The error message should display at least few second.

Functional Requirement ID

FR42

Priority

M

Requirement Description

If there is no response from the user within 2 minutes the transaction cancel and return to main menu.

Functional Requirement ID

FR43

Priority

M

Requirement Description

The ATM dispenses money if and only if the withdrawal from the account is processed and verified by the bank database.

Functional Requirement ID

FR44

Priority

M

Requirement Description

Cash dispensed shall not exceed £500/- and Cash deposit limit (i.e. £2000/limit)

Functional Requirement ID

FR45

Priority

M

Requirement Description

The ATM interface should be user friendly. Easy to expand and easily repaired 13 | P a g e

1.3.6. Attributes The attributes included to synchronize the process. 1.3.6.1. Safety and Security Requirements The ATM network should provide maximal security. In order to make that much more transparent there are the following requirements. This security check will come later on. 1.3.6.2. Availability The ATM network has to be available 24 hours (check later on) 1.3.6.3. Maintainability Only maintainers are allowed to Switch On and OFF for the ATM machine, operated by bank staff only. The ATM will maintain an internal log of transactions to resolve ambiguities arising from a failure in the middle of a transaction. All entries will be made in the log when the ATM is started up and shut down, all messages will sent to the Bank in each transaction along with the dispensing of cash, and for the receiving of an envelope. Log entries may contain account number and amount in pounds, but do remember the PIN number never logged for security reason. 1.3.7. Other Requirements 1.3.7.1. Data Base ATM must be able to use several data formats according to the data provided by the databases. As we assume the bank data as logical database and location doesn‟t consider, therefore we recommended the data file for the data manipulation. This will occupy small space in the system and easy to access using ODBC connection.

14 | P a g e

References IEEE Std 830-1998 Recommended Practice for Software Requirements Specifications. IEEE Std 1002-1987 (Reaff 1992), IEEE Standard Taxonomy for Software Engineering Standards. IEEE Std 1016-1998, IEEE Recommended Practice for Software Design Descriptions. „The Art of Requirements Triage‟, Alan Davis, IEEE computer, March 2003 Software Requirements. Karl E. Wieger. Windows Press

15 | P a g e

2. USE CASES UML Use Case Diagrams can be used to describe the functionality of a system, usually referred as behavior diagrams used to describe a set of actions. This session designed the ATM system, including withdrawal, deposit, authenticated user, etc. The UML Model attached to the complete conceptual view. All attached Diagrams can be viewed in the Appendix A at the end of the report. 2.1. ATM System: Represent the overall functionalities of a system in general. ATM System Use Case designed to perform the visual effect of the requirement. The requirement described as: 1. Screen display menu 2. User required to enter a selection 3. Session begins 4. Authentication checks from the bank 5. The transaction starts or cancel 6. The operator performs the ATM operation 7. Wait for the next transaction 2.2. User Authentication System: The system begins with the user authentication process. 1. 2. 3. 4. 5. 6. 7.

Screen display Welcome message and prompt to enter the account number User input 5 digit account number Prompt to enter a PIN User input PIN number in 5 digests. ATM authenticates the user with the bank database. If authenticated, then main menu display for selection. If not authenticated, then error message display and return to step one for the re - authentication process.

2.3. ATM Session: The session begins with the user verification. 1. 2. 3. 4. 5. 6. 7.

Display Menu Customer Input PIN / Account number The session begins Verified inputs from the bank database If verification success, then transaction begins Session completed. If verification unauthorized then session cancels and ATM display menu

2.4. ATM Transaction: The Transaction fulfills the following requirement in the Use Case diagram. 1. 2. 3. 4. 5. 6.

User Inputs using selection The transaction begins by user authentication from the bank database. If verified ok then the transaction completed its process. If authentication not verified then transaction cancel by ATM and display message. The user may cancel the transaction anytime, the ATM will display Thank you message. Log Updated

2.5. Withdrawal System: ATM withdrawal Use case designed, based on requirements, as stated, that cash dispenser has no physical intervention but simulate. 1. Display Menu 2. The customer enters the Account / PIN number 3. User authenticated checked by the bank 4. Session created 5. Customer Enter Amount 6. Verified Amount from the bank 7. If amount > available balance, then ATM display menu to enter less amount 8. If amount