Bank Management File
Bank Management File
Bank Management File
PROBLEM STATEMENT: A Banking concern by the name ABC Bank wants to computerize its Banking Services. Bank Management is generally a very complicated task. To reduce the complexity, it wants to computerize its Banking services and for this purpose it wants software, which will handle all its transactions. The software created must get the overall information from the user. It should then give the user an option as to whether the user wants to make a withdrawal or a deposition. As the bank for which the software is to be created provides loan and locker facilities, the various activities of handled by the bank is provision of loan, handling the locker facility and handling the regular banking services. The software created must allow the user to handle each of the service provided by the bank. The software should manage the banks account at the end of the year and finally if should generate the yearly financial report of the company.
BANK MANAGEMENT:
PROBLEM STATEMENT: ABC Bank a nationalized bank wants to computerize some of its services. Banking services is really a complicated task. Each service has a process of its own to be carried out. To reduce the complexity the bank wants to computerize some of its services like maintenance of account holders details, their transactions, providing interest for fixed deposit account holders etc. The software created must get the information from the user. It should then give the user an option as what he wants to look into, like the details of the account holder, his transactions, interest calculated etc by selecting onto the correct option. As the firm for which the software is to be created is a Bank, the various activities of the bank which the software must carry out is maintenance of account holders details, their transactions, interest calculation for fixed deposit account holders etc. The software created must allow the user to view the details of the account holder for each activity. The software should calculate the interest for fixed deposit account holders as per the time given by the user. It should maintain every detail of the account holder.
LAN-Local Area Network 1.4. Reference: The books and reference materials used during the pre-development stages of the project include: Software Engineering: A Practitioners Approach By Roger.S.Pressman. Software Engineering: Ian Sommerviel. 1.5. Overview: The rest of this document gives an overview of the feature and functions of the bank management software along with the technical and non-technical details and the interfaces.
2. OVERALL DESCRIPTION:
2.1. PRODUCT PERSPECTIVE: The Bank Management System is an application that remains to be independent. The system interfaces, user interfaces and the hardware interfaces related with this software is defined below: 2.1.1. System Interfaces: The client system must be able to share the data available in the database through the network. 2.1.2. User Interfaces: The screen formats and the menu structure should be in such a way that the user should find it easy to use the product. The product should be user-friendly. The functionality provided by the system like displaying error messages should adapt itself to the different users of the product.
2.1.3. Hardware Interfaces: UPS (Uninterrupted Power Supply) for backup power during power failure. Client systems are connected to the LAN. Since a LAN is to be used for the network wherein each node is connected to every other node. 2.1.4. Software Interfaces: VERSION 2000 or any other higher version 2000 or any other higher version SOURCE Microsoft Corporation Microsoft Corporation
Communication Interfaces: There is a LAN user for communication among the different client systems to be used. 2.1.6. Memory Constraints: The system should require a disk space of 20 GB and 256MB RAM of the service systems and 5 GB and 128 RAM for the client system. 2.1.7. Operations: The user can be a staff or an administrative manager. The user has to use a login to enter the software and then he/she can check the details of the account holders. There must be a backup data, which will enable easy recovery from failures, which may catastrophic at times by clicking on the menu. 2.1.8. Site Adaptive Requirements: The software requires no special requirements to adapt to a particular installation except for files that are to be re-created.
2.2. PRODUCT FUNCTIONS: The main functions are: Create an account. Maintain a track on the transactions made by the account holder. Calculate the interest for fixed deposit account holders. Display the account holders details when required. 2.3. USER CHARACTERISTICS: It is enough that the user has a basic knowledge of C++ needed for the operation of the software. There is no need for any experience or technical knowledge. 2.4. CONSTRAINTS: Regulatory Policies: It is mandatory that no text box must be left empty or contains insufficient information. Hardware Limitations: There must be 128 MB on board memory. Interface to other application: Not applicable. Parallel Operations: It should support many users at a time. Control functions: In case of any errors and service problems proper error handling and other recovery mechanisms must be used. Higher order language Requirements: Not applicable. Signal Handshake Protocol: Not applicable. Reliability Requirements: Data redundancy.
Safety and Security Considerations: The application must always be exited normally.
2.5. ASSUMPTIONS AND DEPENDENCIES: The requirements of the software product will be changed if suppose the features or the functions of the system are to be improved. 2.6. APPORTIONING OF REQUIREMENTS: Not applicable.
3. SPECIFIC REQUIREMENTS:
3.1. EXTERNAL INTERFACE REQUIREMENTS: 3.1.1. User Interfaces: The interface used in GUI must be easy to understand. This interface serves as a bridge between the user and the software. It also makes the user interaction with the system easy. The user interface includes: Screen formats / Organizations: The introductory screen will be the first to be displayed which allows the user to log in using their id and password. Windows formats / Organizations: When the user chooses a particular topic then the information pertaining to that topic will be displayed in a new window, which will allow multiple windows to be available on the screen, and the user can switch between them. Data Format:
The alphanumeric.
data
entered
by
the
user
will
be
End Message: When there are some exceptions, error messages will be displayed promptly by the user to reenter the details when an event has taken place successfully. 3.1.2. Hardware interfaces: The system must basically support certain hardware and these must be an interface between them. NAME OF THE ITEM Keyboard Printer SOURCE OF DESCRIPTION OF INPUT / PURPOSE DESCRIPTION OF OUTPUT To get the details Source of input of from the user. To print the details Destination of of the account output holder.
3.1.3. 3.1.4.
Communication interfaces: Every client system connected through LAN establishes a communication only with server and not with any client system. A LAN of 10 Mbps is used.
Outputs: The page corresponding to the chosen feature will be displayed. 3.2.2.FEATURE 2:CREDIT/DEBIT (Making transactions): This feature is to keep a track on the transaction made by the account holder. 3.2.2.1. Purpose: The purpose of this feature is to keep on the transactions made by the account holder. If the A/C holder credits some amount, the amount gets added up to his account. If he withdraws some amount from his account, then that amount is subtracted from his account. Its compulsory that the account holder must maintain a minimum balance of Rs. 500 in his account. 3.2.2.2. Stimulus / Response Sequence: Once the user chooses that option, the page corresponding to that is to be displayed. 3.2.2.3. Associated Functionality Requirements: 3.2.2.3.1. Functionality Requirement: Transactions: Once the user chooses the respective feature in the page, they should be taken to the appropriate section establishing them to view the corresponding page. 3.2.2.3.1.1. Introduction: The user has to enter the date on which the A/C holder is making the transaction. 3.2.2.3.1.2. Inputs: The user has to enter member id of the A/c holder and the date on which the transaction is made. The
user must enter the nature of transaction made (whether credit or debit) and the amount. 3.2.2.3.1.3. Processing: Considering the given input to be correct if the nature of transaction is credit then the amount is added to the account else it taken from the account. 3.2.2.3.1.4. Outputs: The required change is made in the account. 3.2.3. FEATURE 3: INTEREST CALCULATION: The feature is to calculate the interest for fixed deposit account holders. 3.2.3.1. Purpose: The purpose of this feature is to calculate the interest amount for fixed deposit account holders according to the time given by the user. 3.2.3.2. Stimulus / Response Sequence: The user will be asked to enter the membership number, the software will calculate the interest. 3.2.3.3. Associated Functionality Response: 3.2.3.3.1. Functionality Requirement 3: If any one of the details provided by the user does not meet the defined parameters then it would notify the user by displaying error messages. 3.2.3.3.1.1. Introduction: The user can check about the details on the number of years since the account has been started. 3.2.3.3.1.2. Inputs: The user has to enter the member id, date, number of years since the account has been started and the rate of interest provided by the bank.
3.2.3.3.1.3. Processing: Recognizing the correct input as given by the user and to calculate the interest payable by the bank to the account holder. 3.2.3.3.1.4. Outputs: The output is generated in such way that the amount is added up to account of the respective A/c holder. 3.2.4. FEATURE DETAILS: 4:-DISPLAYING A/c HOLDERS
3.2.4.1. Purpose: The purpose is to enable the user to view the details of the respective account holders details as entered by the user. 3.2.4.2. Stimulus / Response: When the user requests to view the details of a particular account holder, a screen prompts the user asking whether he want s o view the member details or to view the transaction details. 3.2.4.3. Associated Functional Requirement: 3.2.4.3.1. Functional Requirements:-Displaying A/c holders details: If invalid membership number has been entered, the system must handle the error and ask the user to enter the proper input. 3.2.4.3.1.1. Introduction: The user must be provided with the requested information within 10 seconds. 3.2.4.3.1.2. Inputs: The user must enter the correct option whether he wants to view the member details or the transaction details.
3.2.4.3.1.3. Processing: Recognizing the correct option chosen by the user. 3.2.4.3.1.4. Output: Displays the output with corresponding to the option chosen by the user. 3.3. PERFORMANCE REQUIREMENTS: A large database should be present as large data will be stored. 3.4. DESIGN CONSTRAINTS: Requires 256 MB onboard memory. Based completely on windows functionality performance. The software must be valid and accessible only by authorized users. 3.5. SOFTWARE SYSTEM ATTRIBUTES: 3.5.1. Reliability: The factors needed to establish the software expected reliability are: The user inputs should be valid and within the given range Normal termination of the program 3.5.2. Availability: The factors that generate the software availability include proper termination and correct input details. Also the resource used for the project development is Microsoft certified which speaks of the high quality standards. 3.5.3. Security: It must ensure that the access is provided to authorized users only through password.
The user of the service will provide network security. 3.5.4. Maintainability: Implementing the concept of modularity, which in turn reduces the complexity involved in maintaining it, will develop the software.
3.5.5.
Portability: The application is very adaptable; it can be used in different computer systems with different operating systems and folders. 3.6. LOGICAL DATA BASE REQUIREMENTS: The system requires the use of text file to maintain the account details about the customer which includes the basic details of the customer and the account details. 3.7. OTHER REQUIREMENTS: NIL.
4. INDEX:
NIL
5. APPENDICES:
NIL
DATA FLOW DIAGRAM: LEVEL 0: Create new member Bank staff Bank management system Credit/debit Interest calculation Display
Bank staff
LEVEL 1(b): Membe r display Bank staff Display Transaction display LEVEL 2(a): checkid Bank user Credit/debit Transaction database Member database
Calculate
Transaction database
Write into the file LEVEL 2(b): checkid Bank user Interest calculation
Calculate
Transaction database
LEVEL 2(c):
Read details from the file Bank user Membe r display Display the details Member database
LEVEL 2(d):
Read details from the file Bank user Transac tion display Display the details Member database
metrics were first proposed by Albrecht [ALB79], who suggested a measure called the function point. Function points are derived using an empirical relationship based on countable [direct] measures of softwares information domain and assessments of software complexity. Formula FP=count total*[0.65+ (0.01*Fi)] Function point count for bank management Fi F1 General System characteristics General system Adjustment factor Characteristics Data communications How many communication facilities are there to aid in the transfer or exchange of information with the application Distributed data How are distributed data and processing processing functions handled? Performance Heavily used Configuration Did the user require response time or throughput? How heavily used is the current hardware platform where the application will be executed? How frequently is transactions executed daily, weekly, monthly, etc.? What percentage of the information is entered online? Was the application designed for end user efficiency? How many ILFs are updated by online transaction? Does the application have extensive logical or mathematical processing? Value 3
F2
F3 F4
1 2
F5 F6 F7 F8 F9
Transaction rate On line data entry End user efficiency On line update Complex processing
3 0 4 0 3
F10 Reusability F11 Installation ease F12 Operational ease F13 Multiple sites
Was the application developed to meet one or many users needs? How difficult is conversion and installation? How effective and/or automated are start up, back up and recovery procedures? Was the application specifically designed, developed and supported to install at multiple sites for multiple organizations? Was the application specifically designed, developed and supported to facilitate change? TOTAL
2 2 2 0
3 27
Type of components External inputs External outputs External inquiries External logical files External interface files
Unadjusted function point Complexity of components 4*3 2*4 2*3 2*7 2*5 Total
Value 12 8 6 14 10 50
Formula FP = count total*[0.65+ (0.01*Fi)] = 50*[0.65+ (0.01*27)] = 46 Function point count for bank management = 46 Lines of code=46*29=1334=1.3KLOC Code developed in C++
Estimation of effort using Cocomo Model: a=2.4; b=1.05 Effort =a*(KLOC) b =2.4*(1.3)1.05 =3.1 person-month. Estimation of time using Cocomo Model: Type of Project = Organic. Then, c=2.5; d=0.38 Time = (Effort) d * c = (3.1) 0.38 * 2.5 = 3.8 months Estimation of Cost using Cocomo Model: Cost = 3.8 * 10000 = Rs. 38,000.
PROGRAM
#include<iostream.h> #include<process.h> #include<string.h> #include<conio.h> #include<stdio.h> #include<fstream.h> fstream h("Z:\\tran.doc",ios::out,ios::in); struct member
{ int char char int }a,temp; struct tran { int char char float int float float tran() { } }b,t; void line() { cout<<endl; for(int i=0;i<80;i++) cout<<"-"; cout<<endl; } mid,idno; name[15],address[50]; sf,id; phone;
if(a.mid==id) { strcpy(b.name,a.name); if(a.sf=='s') return 1; else return 0; } } } g.close(); } void credit() { int n=h.tellg(); h.seekg(n,ios::beg); char ch; do { line(); cout<<"\n\tEnter the following details:"; cout<<"\n\t\tMember id:"; cin>>b.mid; if(check(b.mid)==0) { cout<<"\n\tError:It is a fixed deposit account"; return; }
else b.bal=b.balb-b.amount; h.write((char*)&b,sizeof(b)); cout<<"\n\tDo you want to add more transaction(y/n):"; cin>>ch; b.balb=b.bal; }while(ch=='y'); b.balb=500; b.bal=0; b.amount=0; } void interest() { int n=h.tellg(); h.seekg(n,ios::beg); line(); cout<<"\n\tEnter the following details:"; cout<<"\n\t\tMember id:"; cin>>b.mid; if(check(b.mid)==1) { cout<<"\n\tError:It is a savings deposit account"; return; } cout<<"\n\tDate:"; cin>>b.date; cout<<"\n\tNumber of years:"; cin>>b.nof; cout<<"\n\tRate of interest:"; cin>>b.r; b.cd='c'; b.amount=(b.balb*b.r*b.nof)/100.00; b.bal=b.balb+b.amount; h.write((char*)&b,sizeof(b)); h.close(); } void create() { char ch; ofstream f("Z:\\bank.doc");
do { line(); cout<<"\nEnter the details:"; cout<<"\n\t\tMember id no:"; cin>>a.mid; cout<<"\n\t\tName:"; gets(a.name); cout<<"\n\t\tAddrees:"; gets(a.address); cout<<"\n\t\tPhone number:"; cin>>a.phone; cout<<"\n\t\tSavings(s)/Fixed(f):"; cin>>a.sf; cout<<"\n\t------------\n"; cout<<"\tDocument produced"; cout<<"\n\tRation card(r)"; cout<<"\n\tElection card(e)"; cout<<"\n\tIdentity card from office/institution(i)"; cout<<"\n\t\tEnter appropriate character:"; cin>>a.id; cout<<"\n\t\tEnter the no:"; cin>>a.idno; cout<<"\n\t-------------\n"; cout<<"\n\tDo you want to enter more members(y/n):"; f.write((char*)&a,sizeof(a)); cin>>ch; }while(ch=='y'); f.close(); } void memdis() { ifstream g("Z:\\bank.doc"); g.read((char*)&a,sizeof(a)); while(!g.eof()) { if(!g.eof()) {
line(); cout<<"\nThe details:"; cout<<"\n\t\tMember id no:"<<a.mid; cout<<"\n\t\tName:"; puts(a.name); cout<<"\n\t\tAddrees:"; puts(a.address); cout<<"\n\t\tPhone number:"<<a.phone; cout<<"\n\t\tSavings(s)/Fixed(f):"<<a.sf; cout<<"\n\t------------\n"; cout<<"\tDocument produced"; cout<<"\n\tRation card(r)"; cout<<"\n\tElection card(e)"; cout<<"\n\tIdentity card from office/institution(i)"; cout<<"\n\t\tThe member had produced"<<a.id; cout<<"\n\t\tNumber:"<<a.idno; cout<<"\n\t-------------\n"; getchar(); g.read((char*)&a,sizeof(a)); } } g.close(); }
i.read((char*)&b,sizeof(b)); while(!i.eof()) { cout<<"\n\t"<<b.mid<<"\t"<<b.name<<"\t"<<b.date<<"\t"<<b.cd<<"\t"<<b. amount<<"\t"<<b.bal; i.read((char*)&b,sizeof(b)); } line(); i.close(); } void displaymenu() { line(); cout<<"\t\t\tDISPLAY"; line(); cout<<"\n\t1:Member Details"; cout<<"\n\t2:Transactions"; cout<<"\n\t3:Back"; line(); cout<<"\n\t\tEnter your option:"; } void display() { int opt; do { displaymenu(); cin>>opt; line(); switch(opt) { case 1: memdis(); break; case 2: trandis(); break; case 3: break;
default:cout<<"Error:Not a vaild option"; } }while(opt>3); } void mainmenu() { line(); cout<<"\t\t\tBANK MANAGEMENT"; line(); cout<<"\n\t\t1:Create New Member"; cout<<"\n\t\t2:Credit/Debit"; cout<<"\n\t\t3:Interest Calculation"; cout<<"\n\t\t4:Display"; cout<<"\n\t\t5:Exit"; line(); cout<<"\n\tEnter your option:"; }
cin>>opt; switch(opt) { case 1: create(); break; case 2: credit(); break; case 3: interest(); break; case 4: display(); break; case 5: exit(0); break; default:cout<<"Error:Not a valid option"; line(); break; } getchar(); }while(1); }
1:Create New Member 2:Credit/Debit 3:Interest Calculation 4:Display 5:Exit -------------------------------------------------------------------------------Enter your option:1 -------------------------------------------------------------------------------Enter the details: Member id no:1 Name:subha Address:mylapore Phone number:100 Savings(s)/Fixed(f):s -----------Document produced Ration card(r) Election card(e) Identity card from office/institution(i) Enter appropriate character:r Enter the no:120 ------------Do you want to enter more members(y/n):y --------------------------------------------------------------------------------
Savings(s)/Fixed(f):f -----------Document produced Ration card(r) Election card(e) Identity card from office/institution(i) Enter appropriate character:r Enter the no:122 ------------Do you want to enter more members(y/n):n -------------------------------------------------------------------------------BANK MANAGEMENT -------------------------------------------------------------------------------1:Create New Member 2:Credit/Debit 3:Interest Calculation 4:Display 5:Exit -------------------------------------------------------------------------------Enter your option:2 -------------------------------------------------------------------------------Enter the following details: Member id:1 Date:2108 credit(c)/Debit(d)c Amount:5000 Do you want to add more transaction(y/n):n
2:Credit/Debit 3:Interest Calculation 4:Display 5:Exit -------------------------------------------------------------------------------Enter your option:3 -------------------------------------------------------------------------------Enter the following details: Member id:2 Date:2108 Number of years:2 Rate of interest:2 -------------------------------------------------------------------------------BANK MANAGEMENT -------------------------------------------------------------------------------1:Create New Member 2:Credit/Debit 3:Interest Calculation 4:Display 5:Exit -------------------------------------------------------------------------------Enter your option:4 -------------------------------------------------------------------------------DISPLAY -------------------------------------------------------------------------------1:Member Details 2:Transactions 3:Back -------------------------------------------------------------------------------Enter your option:1 --------------------------------------------------------------------------------------------------------------------------------------------------------------The details: Member id no:1 Name:subha Addrees:mylapore Phone number:100
Savings(s)/Fixed(f):s -----------Document produced Ration card(r) Election card(e) Identity card from office/institution(i) The member had producedr Number:120 -------------------------------------------------------------------------------------------The details: Member id no:2 Name:abinaya Addrees:pallikaranai Phone number:101 Savings(s)/Fixed(f):f -----------Document produced Ration card(r) Election card(e) Identity card from office/institution(i) The member had producedr Number:122 -------------------------------------------------------------------------------------------BANK MANAGEMENT -------------------------------------------------------------------------------1:Create New Member 2:Credit/Debit 3:Interest Calculation 4:Display 5:Exit -------------------------------------------------------------------------------Enter your option:4 -------------------------------------------------------------------------------DISPLAY -------------------------------------------------------------------------------1:Member Details 2:Transactions
3:Back -------------------------------------------------------------------------------Enter your option:2 --------------------------------------------------------------------------------------------------------------------------------------------------------------TRANSACION -------------------------------------------------------------------------------Mid Name Date Credit/Debit Amount Balance ------------------------------------------------------------------------------1 subha 2108 c 5000 5500 2 abinaya 2108 c 20 520 --------------------------------------------------------------------------------------------------------------------------------------------------------------BANK MANAGEMENT -------------------------------------------------------------------------------1:Create New Member 2:Credit/Debit 3:Interest Calculation 4:Display 5:Exit -------------------------------------------------------------------------------Enter your option:5
TEST CASES
INPUT PROCESSING OUTPUT
Enter the details: Create new member: Member id no:1 This function create Name: subha new member details and Address:Mylapore writes it into the file. Phone no:100 Savings(s)/Fixed(f):s
Credit/debit This function accepts the user id and credits or debits the amount. It then saves the transaction to the file.
Interest calculation: This function calculates the interest of the member and stores the transaction to the file.
Enter the following details: Member id:1 Date:2108 Number of years:2 Rate of interest:2
ERROR TRACKING: Errors per requirements specification page : denoted by Ereq-2 Errors per component design level : denoted by Edesign-2