Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Software Engineering, Assignments of Software Engineering

A project report for a Bank Management System developed by students of HITEC University Taxila Cantt. The report includes the purpose, introduction, importance, functionalities, and architecture of the system. It also covers UML modeling, SDA principles, and class and sequence diagrams. The system allows users to create an account, check balance, deposit and withdraw money, and view transaction history. The report discusses the benefits of e-banking and the use of layered architecture. The project is based on prerequisite courses such as Object-Oriented Programming and Software Engineering.

Typology: Assignments

2022/2023

Available from 03/19/2023

ZARQAWI
ZARQAWI 🇵🇰

3.7

(3)

14 documents

1 / 42

Toggle sidebar

Related documents


Partial preview of the text

Download Software Engineering and more Assignments Software Engineering in PDF only on Docsity! BS SOFTWARE ENGINEERING 4TH SEMESTER SOFTWARE DESIGN & ARCHITECTURE PROJECT REPORT BANK MANAGEMENT SYSTEM SUBMITTED BY: RABIA LATIF 20-SE-024 M. AWAIS 20-SE-001 SYED HAIDER ZUBAIR 20-SE-002 USMAN ALI SHAH 20-SE-016 M USMAN 20-SE-018 SUBMITTED TO: SIR JUNIAD ALI KHAN DEPARTMENT OF SOFTWARE ENGINEERING HITEC UNIVERSITY TAXILA CANTT BANK MANAGEMENT SYSTEM 2022 SOFTWARE DESIGN AND ARCHITECTURE STUDENTS OF HITEC UNIVERSITY TAXILA CANTT BS SOFTWARE ENGINEERING | 4 TH SEMESTER INTRODUCTION PURPOSE Purpose of making this project is making our semester project “Software Design and Architecture”. The main aim of this project is that we have to choose a system of our own choice and display all its architectural styles and also do its implementation in java programming language and also do its software modeling . INTRODUCTION Bank management system is use of computers and telecommunications to enable banking transactions to be done by telephone or computer rather than through human interaction. Its features include creating account, checking balance, deposit money , withdraw money and view transaction history . Electronic banking has vastly reduced the physical transfer of paper money from one place to another or even from one person to another. In banking systems all work is done virtually rather than manually. It helps the user to work easily from home and it takes less time. Now a day’s, managing a bank is tedious job up to certain limit. So software that reduces the work is essential. Also today’s world is a genuine computer world and is getting faster and faster day-by-day. Thus, considering above necessities, the software for bank management system has become necessary which would be useful in managing the bank more efficiently. This project is being designed on basis of pre-requisite courses: Object Oriented Programming, Software Engineering, Software Requirement Engineering, Programming Fundamentals. In this project we have used the concepts of functions, classes, loops, conditional statements, inheritance, switch cases, abstraction, encapsulation etc. IMPORTANCE OF E-BANKING • Offer flexibility with online banking. • Availability of banking services 24/7. • Delivering bank services to the door-step of customer. • Less reduction of cash during online transaction GOALS & OBJECTIVES In this project our motto is , we are going to make software which manages all the banking work virtually and help the user to take all services from home. Also check all the transactions details and other problems faced by customers. SYSTEM FUNCTIONALITIES SYSTEM FUNCTIONALITIES ➢ Create account ➢ Balance enquiry ➢ Deposit money ➢ Withdraw money ➢ View transaction history ID Functionalities Prioritization User Group 1 Create Account MUST Customer, Bank 2 Balance Enquiry MUST Customer, Bank 3 Deposit_money MUST Customer, Bank 4 Withdraw money MUST Customer, Bank 5 View_transaction_history COULD Customer, Bank “Layered architecture” of Bank Management System There are five layers in layered architecture: • User interaction layer • Functionality layer • Business rules layer • Application core layer • Database layer User Interaction layer The menus and buttons used for create account, transactions & every other action performing through clicking held in this layer. It is the most visible layer of the application we are displaying. Functionality layer In this layer the functions of a system performed like we check the activity of login, transactions held by user, balance inquiry, and all the functions perform in this layer. Business rule layer The business rule of banking system is security & availability. In this we assure that our system is secure & safe and all the requirements are available 24/7. Application layer All the codes are there in this layer. The code that we used to implement this system is in application layer. Database layer In this layer all the transactions, balance inquiries and all the functions that are performing will update, delete, & retrieve. Conclusions Having reviewed each architectural style it became apparent that the two most suitable styles for this project are Service‐Oriented and Object‐Oriented. These two styles match majority of the client requirements as well as being widely‐used approaches today, indicating that the deployed system will be futureproof. Being so popular presently, the maintenance of the system will be carried‐out easily by the most software engineers. The layered architectural style was abandoned due to weak performance. As mentioned earlier, the layered approach requires more time to process data when compared to SOA and OO. The component‐based architectural style will be taken forward and implemented as a SOA. The OO architectural style was chosen because it is easily scalable due to polymorphism, reusable due to inheritance and fully testable using most available techniques. Similarly, SOA is scalable, reusable, loosely coupled and independent making it an ideal competitor to OO. Both architectural styles bring more advantages to the projects than disadvantages, making them ideal solutions to the problem. CHAPTER 4 UML MODELING USE CASE DIAGRAM € BANK MANAGEMENT SYSTEM DESCRIPTION OF DEPOSIT/ WITHDRAW MONEY For this customer need to enter all his credentials in order to fist login to his account and after that he/she can deposit /withdraw money. If he/she has entered the correct password then he can deposit/withdraw money and then his updated balance will be displayed on screen . And the process will terminate. ACTIVITY DIAGRAM FOR CHECK BALANCE DESCRIPTION OF CHECK BALANCE For this customer need to enter all his credentials in order to fist login to his account and after that he/she can check balance. If he/she has entered the correct password then his account statement would be displayed. And the process will terminate. ACTIVITY DIAGRAM FOR TRANSACTION HISTORY DESCRIPTION OF VIEW TRANSACTION HISTORY For this customer need to enter all his credentials in order to fist login to his account and after that he/she can view transaction history. If he/she has entered the correct password then his transaction history would be displayed. And the process will terminate. CLASS DIAGRAM CLASS DIAGRAM DESCRIPTION Classes Bank , customer , account Attributes Customer - name, id, cnic, phone no, account_type, balance, city SEQUENCE DIAGRAM FOR BANK MANAGEMENT SYSTEM SDA PRINCIPLES SDA principles The following are the SDA principles: • Problem partitioning • Abstraction • Modularity • Top down & bottom up strategy Problem partitioning All the problems can be solved at a time but it is difficult to solve all the problems so we divide it into smaller portion like a lot of transactions are being held at one time it is difficult to see whole data at a time so we break it into smaller chunks so that we can easily see & find our required transaction. These chunks are not independent to each other as they are part of one whole system. Benefits of problem partitioning • Software is easy to understand • Software becomes simple • Software is easy to test • Software is easy to modify • Software is easy to maintain • Software is easy to expand ABSTRACTION Abstraction is process of hiding certain details and showing only essential information to user. For example, in banking system user will only see their own transactions and balance but the CEO or the bank management system will see all the details of every account. So only essential data that the user want to see is provided to user and hide other details. Functional Abstraction In functional abstraction, details of the algorithms to accomplish the function are not visible to the consumer of the function. For example, the system and user perform their own functions in banking management system but admin see the details of the user but user only see their details not system. Data Abstraction Data abstraction refers to providing only essential information about the data to the outside world, hiding the background details or implementation. For example, we only provide the details of user to it not all the details that are performing in backend. MODULARITY Modularity specifies to the division of software into separate modules which are differently named and addressed and are integrated later on in to obtain the completely functional software. It is the only property that allows a program to be intellectually manageable. Single large programs are difficult to understand and read due to a large number of reference variables, control paths, global variables, etc. For example, the system is BANK MANAGEMENT SYSTEM. The modules are: • Create account • Check balance • Withdraw money • Deposit money • View transaction history Top Down & Bottom Up strategy Top down This approach starts with the identification of the main components and then decomposing them into their more detailed sub-components. For example, account is decomposed into saving account &current account etc. Bottom up Ae tye ae -println(¢" Aya Cy oT Qe -printin("~ -println("AMOUNT MUST BE ABOVE 8"); = PRANTL ( eeneinenenenvrsrorsnacacs: aE Berth al Gene nee conn withdraw( amount ) eet) iF WEe Tite B Vieira Saarland Ate eel a ae -out.println(” eee aN), mecl eel ios) O "2 tel peels ay | leone ora elena -out.println(” asta aerate al Geen Senses ronenenar -printin("MOUNT MUST BE ABOVE 8"); -out.printin("“MOUNT MUST BE ABOVE @ eee he ae Pelee Tata hee ta bank_trans_detail() (trans_detail { BCT aed Las ihe ol h ee sD ae he ce iT Derr Sina et Tt eae scram ae See eso BCT aed Las ihe ol oe Ta he cerca (Gaur wee tae ea) Be aed Das ahs ee Dee -out.println eT -out.printIn("DEPOSITED AMOUNT -abs(trans_detail)); ol h ee sD ae he ce eT Ae ieee ache Tale yah ot eo A Tes tah Ta -printIn("NO TRANSACTION HAS BEEN DONE! ! A Tes tah Ta ye oh iene el ae law bad a) er menu() Cates atari} ere] hay Bre) hay etsy 3 out. pri eee eee eee eee -out.pri ve WELCOME TO BANK MANAGEMENT SYSTEM ere] hay ve aaa alia ote) hay caleaatae Soca -out.pri a tT 0 lode ren -out.pri RABIA LATIF 21 Se Pr oe -out.pri - AWAIS 20-SE-881~=. Chas vewesS¥ED HAIDER ZUBAIR 2@-SE-662- Chas reemerged ed a -out.pri c - USMAN 26-SE-018 -out.pri “ aaa -out.pri “ caer Chas vers SOFTWARE DESIGN AND ARCHITE! -out.println(” -out.println( -out.println( eet Gn ke -out.printin( “~~~ class Bank { public static void main(String args[]) { Account a=new Account(); a.menu(); } } class Account { int balance=0,trans_detail; String cust_name; String cust_id; String cnic; String phone_no; String city; String account_type; void deposit(int amount) { if(amount>0) { balance=balance+amount; trans_detail=amount; System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("DEPOSITED SUCCESSFULLY!!"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } else { System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("AMOUNT MUST BE ABOVE 0"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } } void withdraw(int amount) { if(amount>0) { balance=balance-amount; trans_detail=-amount; System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("WITHDRAW SUCCESSFULLY!!"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } else { System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("MOUNT MUST BE ABOVE 0"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } } void bank_trans_detail() { if(trans_detail>0) { System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("DEPOSITED MONEY:::"+trans_detail); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } else if(trans_detail<0) { System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("DEPOSITED AMOUNT :::"+Math.abs(trans_detail)); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } else { System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("NO TRANSACTION HAS BEEN DONE!!"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); } } void menu() { int ch; Scanner s =new Scanner(System.in); System.out.println("******************************************"); System.out.println("******************************************"); System.out.println("******************************************"); System.out.println("******************************************"); System.out.println("ENTER THE AMOUNT TO DEPOSIT::: "); int amount1=s.nextInt(); deposit(amount1); System.out.println("\n"); break; case 4: System.out.println("AVAILABLE BALANCE IS::: "+balance); System.out.println("ENTER THE AMOUNT YOU WANT TO WITHDRAW:::"); int amount2=s.nextInt(); withdraw(amount2); System.out.println("\n"); break; case 5: System.out.println("YOUR TRANSACTION HISTORY IS:::"); bank_trans_detail(); System.out.println("\n"); break; case 6: System.out.println("########################################"); break; default: System.out.println("INVALID CHOICE!!! PLEASE ENTER VALID CHOICE "); System.out.println("\n"); } }while(ch!=5); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~THANKS FOR VISITING OUR BANK~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); OUTPUT OF THE CODE ee eee etn reres Fee eee ed Se Se WELCOME TO BANK MANAGEMENT SYSTEM cm aa] ~RABIA LATIF 20-SE-024~ cote Vor oc) et ~SYED HAIDER ZUBAIR 20-SE-00: ~“USMAN ALT SHAH 20-SE-016 WM. USMAN 20-SE-018 = SOFTWARE DESIGN AND ARCHITECTURE Se Sete ed Fee tee Fee eee ed MAIN MENU ma ae eee Ue -BALANCE ENQUIRY ee CN ee EM ete Bea ag 0a ENTER YOUR CHOICE: - - CREATE ACCOUNT Dats met a0) el eee Paiste eee 0 ssh Baba 3830238668686 Pama ee eld Peete ialelili) Pai eel ee Losin Pattee eee ed eee Ered YOUR ACCOUNT HAS SUCCESSFULLY BEEN CREATED YOUR ACCONUT DETAILS ARE: fete iis 3830238668686 Pant eae laid 0300000000 eee Lote ACCOUNT TYPE ::: SAVING THANK YOU FOR CREATING ACCOUNT BALANCE ENQUIRY CONCLUSIONS CONCLUSIONS This project has been designed using the principles of OOP, SE, SRE, PF and SDA. The major programming concepts used in this project are: ➢ Classes ➢ Objects ➢ Functions ➢ Encapsulation ➢ Abstraction ➢ Inheritance ➢ Switch case statements ➢ Conditional statements ➢ Loops REFRENCES ➢ www.w3schools.com/java/java_abstract.asp ➢ www.javatpoint.com/software-engineering-software- design-principles ➢ www.freeprojectz.com/uml-diagram/internet-banking- system-uml-diagram ➢ www.dbforums.com ➢ www.ibm.com ➢ Chihi, H., Chainbi, W., Ghdira, K. (2016) ‘Cloud computing architecture and migration strategy for universities and higher education’, Proceedings of IEEE/ACS International Conference on Computer Systems and Applications, vol.2016‐. DOI: 10.1109/AICCSA.2015.7507140. ➢ Crotty, J., Horrocks, I. (2017) ‘Managing legacy system costs: A case study of a meta‐assessment model to identify solutions in a large financial services company’, Applied Computing and Informatics, 13(2), pp.175‐ 183. DOI: 10.1016/j.aci.2016.12.001. GLOSSARY TERMS TO UNDERSTAND TERM DEFINITION Class a blueprint of data member and functions or we can say a template which has attributes and functions Object Instance of class Abstraction used to hide background details or any unnecessary implementation about the data so that users only see the required information Inheritance the process by which genetic information is passed on from parent to child i.e, from base class to derived class Association a “using” relationship between two or more objects in which the objects have their own lifetime and there is no owner Generalization the technique of extracting the essential characteristics (these include attributes, properties and methods) from two or more subclasses and then combining them inside a generalized base class (also called a superclass) Aggregation a relation that exists between two or more two objects which individually have their own individual life cycle along with the ownership Encapsulation the bundling of data, along with the methods that operate on that data, into a single unit , data hiding ABBREVIATIONS ABBREVIATION STANDS FOR OOP OBJECT ORIENTED PROGRAMMING SDA SOFTWARE DESIGN ND ARCHITECTURE PF PROGRAMMING FUNDAMENTALS SRE SOFTWARE REQUIREMENT ENGINEERING SE SOFTWARE ENGINEERING **********************************
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved