The
proposed architecture is a part of ATM software which is to be developed in
Python. It is an engineering project which is going to be designed for the
Meccano Bank. The main aim behind providing with this architecture for the ATM
software is to get rid of the issues which are existing in the current system.
This project is if implemented then it will provide the bank with the
opportunity to enhance the existing activities of the banking system. This
software will help to provide the services to control the ATMs. It is the case
when the financial transactions will take place. It is the case of money
withdrawal.
The
current software is designed with the intentions to serve both the customers
and the banking officials in a better and efficient way. Once this software is
designed it will help to resolve various existing issues along with bringing
the operational efficiency. At present, there has been a significant
advancement to the operations and the activities of the firms. So as is the
case with the banking sector. The bank which does not tend to adopt the
advanced and the latest trends has to bear the cost for less competitive
advantage in the market place.
The
software architecture for the ATM needs to be so smooth that it provides quick
and efficient services to the customers. Also, the banker's queries are
required to be processed so smoothly and efficiently. The blockchain technology
regarding the usage of ATMs is an emerging concept. It will make the bank to
provide the Bitcoin ATM services by making use of the Coin source.
Table
of Contents
Background. 4
Introduction. 5
Objectives. 5
Proposed Architecture for ATM software. 6
Conclusion. 7
Recommendations. 13
Background
of ATM software
The
current report is based on a scenario in the perspective of the advanced and
latest technology. Online banking is a complex business application handling
multiple transactions with high complexity in a very short space of time. Based
on its functionality that it offers and the kind of error-prone scenarios or
error-checks that it has to perform, it can be seen that how complex is the
functionality behind the software that runs online banking. The existing
software for online banking used by Meccano Bank has been in operation for
twenty years now, long before all this snazzy new architecture stuff came along
(Egyed & Schaefer, 2015).
The
current software is written in some very old programming languages with old
architectures (and some parts in even assembly code) and is showing the signs
of deterioration. In fact, in the past twelve months, the whole online
application has had to be taken down multiple times because of some faults in
application design and the way new features have patched up to the ageing
software. Even their ATMs have troubles in offering the service and breaks down
frequently due to the use of outdated technologies and protocols. Therefore,
the top management team of the Meccano Bank has taken a bold decision to
develop a new application that serves online banking, mobile banking and also
including the new software application for their ATMs.
The
top management has allocated significant funds for the development of the new
application and they want to develop their new banking with latest technologies
and architectures so that their new software application can serve their needs
at least for next 20-30 years. My role is to serve as a software architect, for
this project, for the Meccano Bank. I have to write a report related to the
proposed architecture for the ATM software. The main reason behind writing this
report is that the Managing Director (MD) of the Meccano Bank is a real fanatic
of proper architectural design. He wants a new system written from scratch in a
high-level language like Java, C#, etc. And with the latest architectures.
I
am required to present to MD the architecture for a new system giving
information about the specific combination of possible styles of architecture
therein for this new system and the relevant decisions. For the said purpose, a
fair amount of design information is also required.
Also,
I have the responsibility to provide the higher authorities with the skill sets
which are desirable in order to code and design the ATM software for the bank.
These individuals are the ones who are to practically design and implement the
software. It will better help the firm to get the firm functionality out of the
software and its components. The people who are required to work for designing
the software need to highly skilled and professional. They are required to have
the experience of almost 10 years in the same domain. This thing will confirm
that these professionals have a better understanding of the programming
languages which are required to design the software.
Introduction
of ATM software
This
is the era of technological advancements and innovations. For everything, there
is a need to equip things with technological advancements. This can better be
done either by making the use of the technological methods or the concepts
which are existing behind the technological advancements. The closer the things
are equipped with the latest and the advanced technology the better there are
the chances to get the innovations to the specified products/ projects. So as
is the case with the ATM software which is required to have the unique and the
innovative architectural designs and the concepts behind. This thing will help
the firm to provide the customers with the quality products and the long-lasting
benefits to the firm itself. This is how the firm can achieve a competitive
advantage in the market place.
Objectives
The
main agenda behind writing this report includes as given:
·
To
provide with the architectural options for the ATM software.
·
To
determine the assumptions for the users of the ATM software and other
stakeholders.
·
To
provide with the possible diagrams which better support the architecture of the
ATM software.
·
To
discuss the overall architecture of the ATM software.
·
To
discuss the details related to the architecture for the backend systems.
·
To
include the communication of the said system with online, mobile and ATM
applications.
·
To include the communication of the said
system with the enterprise systems and the regulatory authorities.
·
To
discuss the online application, mobile application and ATM application.
·
To
take into consideration the blockchain sustainability for the ATM software.
·
To
make the decisions for choosing the best architecture out of many available for
the ATM software.
Proposed
Architecture for ATM software
By
making use of the ATM machines, the financial transactions become quick,
efficient and easy. The customers have the facility to withdraw their money
from any place where there exists an ATM. It tends to make the possible
reductions to the risk of losing the money along with the robbery etc. This is
how the use of the ATM, software provides with the facility to have the secure,
safe and more reliable banking transactions. The use of the latest and the
advanced software will make the bank to have the reduced count of the regular
customers making frequent visits to the bank for small transactions. By making
use of this software both the workload and the costs incurred on the banking
employees can be reduced. It can be said that this project will provide the
bank with the economic benefits related to the financial activities of the bank
(Marc, 2017).
The
current ATM software will be designed by making use of the Python language. The
significant modules of the ATM software are related to the admin and the user.
The admin module is related to the bank which has provided with the ATM
software project. The users are those who have the authenticated cards to make
use of the ATM services (Gorton, 2011). The sub modules for the admin module
include as given:
Adding a new ATM card: This sub-module is to
provide with the services for creating new ATM user in the perspective of
banking personnel. The important details required for the said sub-module
include the account name, the account number, phone number, address along with
the two step verification method.
Viewing the status of ATM
machines: This sub-module will help view the
status and the details of the ATM machine. By making use of this sub-module the
admin will better be able to have the view related to address of the ATM
machine, last date when the ATM machine has been refilled, the prospective date
for the next time refill, the inquiry for the minimum limit of balance along
with the option for the current balance (Nicola & Hennicker, 2015).
Updating ATM card: The re-validation of
the expired card will take place by making use of this sub-module. The process
for the update of the ATM card requires the number of ATM card. The further
sub-modules which are the part of this module include as given:
·
Blocking
the ATM card:
There may exist various reasons due to which the bank may desire to block the
ATM card. For the said purpose, this sub-module better serves the purpose. The
reasons for blocking an ATM card may include the lost or the stolen ATM card.
By making use of this feature, any claimed ATM card can be blocked and
submitted.
·
Activation
of the ATM card:
In case the ATM card has been approved by the bank officials, this sub-module
of the ATM software helps to activate the ATM card.
·
Reset
the PIN: It
is the case when the user has just forgotten the PIN of the ATM card and
approaches the bank for just resetting the PIN. Also, the client may require
the bank to change the PIN of the ATM card. This sub-module better serves the
purpose.
·
Reset
phone: In
case the client is desirous to reset his phone number this sub-module of the
ATM software helps to reset the phone number of the user.
·
Viewing
the history:
The history for the transaction of the money can better be viewed by the admin
through this sub-module (Egyed
& Schaefer, 2015).
·
Updating
the date of expiry:
In order to update the date of expiry of the ATM card, the admin can make use
of the sub-module. It will help to update the date of expiry (code
with, 2019).
User module of ATM
software
There are two major modules of ATM project that are
admin module and user module. Modules of the ATM system include branch
accounting system, account database, branch counter system, maintenance system,
security system and user database.
Module 1 – Branch
Accounting system
The first module is the branch accounting system that
consists of sub-branches of information. For instance, the number of users is
another consideration because when the user swipes the ATM card the software
system will refer them to the system and then the process will become
continued.
Module 2 – Account
Database
The account database of the users consists of
different accounts of users and they are from different branches. This
information in the account database that will contain information of account
status of the user and how it can be referred during the transactions (Groups.
umd. umich. edu, 2019).
Module 3 – Branch
counter system
The system of branch counter keep the count of branches
and it will accommodate any kind of changes. The changes in the counter system
are made for the users and branches (Fujita
& Papadopoulos, 2016).
Module 4 – maintenance
system
The maintenance system will work to maintain the cash
fed in the ATM machines. For instance, if the machine goes out of cash a prompt
response will be delivered to the system software. The response will be
delivered to the user about no balance in the ATM machine. The response will be
further forwarded to the main database and here it will be transferred to the
manager of ATM machines.
Module 5 – Security
system
The security system will find for the ATM theft and
it will immediately transfer the information to the main database regarding the
situation. In case if the user will enter the wrong pin code in this situation
the system will interrupt the process of transaction and information will be
further transferred to the user regarding the same issue and situation (Egyed
& Schaefer, 2015).
Module 6 – Usage
Database
The record of all users will be kept in the database.
The record will consider the information of ATM and it will send the report to
the whole cycle and main database. The database will be further used as the
reference database of the system (Csacsenavet.
Blogspot. com, 2007).
Blockchain (Bitcoin)
sustainability for ATM software
Virtual Crypto technologies ltd dedicated a company
that will make the cryptocurrencies accessible to the public. The ATM operators
will be provided with the software that enables the users to sell and buy
bitcoins at the regular ATM. In order to provide bitcoins at the ATM, it is
important to instance netobit trader software remotely. This software will
provide a chance to handle bitcoins like a regular money (Nicola
& Hennicker, 2015). The software will also make it possible
to convert the bitcoin into the standard cash at the regular ATM. In order to
sell the bitcoin by the software, the user will be required to scan the QR code
that will appear on the ATM screen. The code will represent the series of
variables related to the transaction of bitcoins. Shortly after that, the user
will receive the money from the ATM machine. The use of ATM machine and the
software will convert the bitcoin into cash at the best exchange rate and it
will have the lowest commission offered in the market. Virtual Crypto's
proprietary algorithms will locate the transaction time and the user can easily
and securely purchase the bitcoin on the regular ATMs. Virtual Crypto's net bit
Trader software will be installed on ATM for both sales of bitcoin and purchase
of bitcoin (Egyed
& Schaefer, 2015). The verification algorithm will be used
to predict the high degree of precision and the speed of cryptocurrency
transaction will be further authorized. After implementation, the software will
verify the cryptocurrency transaction in the seconds instead of taking the time
of 24 hours. The current process of buying and selling cryptocurrency from ATM
will consist of six authorizations. The software will break the first and main
barrier and make bitcoins available for the general public. In the current
situation, a bitcoin transaction is carried out by special ATMs and these
systems are not widely using the time consideration. According to the coin
radar system the Bitcoin ATM worldwide are connected and these services are
provided by fewer than 3500 bitcoin ATMs. When compared to the limited
deployment, in 2017, the ATM industry association estimated that there will be
more than three million regular ATMs worldwide and the global ATM market will
grow increasingly (Nicola
& Hennicker, 2015). The ATM market will grow between 2017
and 2025 increasingly and the annual rate increased 8%. Virtual Crypto is
developing proprietary software to enable real-time crypto transactions. Recent
reports represented by cybersecurity team observed attacking of organizations
cloud due to cryptocurrency mining. The reports describe details of Malware
campaign, cryptocurrency trading companies’ efforts, bugs in blockchain and
cryptocurrency platforms, and confidential information. Most often attackers
are using Cardinal RAT malware to target the companies from different
areas. According to the press releases
the suspected accomplished the aim of conversion of Bitcoin, they withdraw the
cash from the Bitcoin ATMs and then cancelled the Bitcoin transaction before anyway
Bitcoin was transferred to the ATM provider. It is important to develop
software that maintains all the procedures of Bitcoin transaction and cash
transfer from the ATM machines (Egyed
& Schaefer, 2015).
Explain the diagrams of
ATM software
Architectural Diagram
of ATM system
The functions
of an ATM will be further classified as functional and nonfunctional
properties. The functional properties include the display, cash dispenser,
providing a bank statement, transfer transaction, providing deposit invalid
deposit, and mobile phone prepared card refills. On the contrary, the
nonfunctional properties include security and config nationality. The system
will display a user-friendly menu and allow the users to access any option such
as cash withdrawal, balance enquiry, and check and deposit (Nicola
& Hennicker, 2015). The cash dispenser will allow the user
to withdraw the money from the bank account. The bank statement will be printed
with the 11-transaction made by the user and it will provide information on the
remaining Bank amount. The transfer transaction will enable to identify the
effects that induce impact on that transfer account. Some other considerations
are saving and current account. The system will provide the user with the
deposit envelope and the user must perform cash or cheque deposits in his
account (Fujita
& Papadopoulos, 2016). The system will also allow the user to
deposit cheques and cash in the system to increase or decrease the amount saved
in the bank account. Some postpaid and prepaid accounts will be accessible by
mobile phones. The nonfunctional properties of the secure accessory system will
depend upon pin code which is a confidential security key. If the pin code is
wrongly provided to the ATM constructively for the three times the ATM card
could be restricted by the system automatically. In order to prevent the
withdrawal of large amount video records of all transactions will be kept safe.
In any situation, these video records can be used as evidence of fraud. If the
pin code of user is known by the third party, it is important to change the pin
code. All transactions are carried out in a confidential system (Csacsenavet.
Blogspot. com, 2007). The system described in the figure
mentioned below for the banking system database is mainly addressing the use of
ATM card, Mastercard, Visa Card, and Bitcoin database. As mentioned in the
figure the ATM card will be used by the user to access the ATM system. The card
will store the pin code and bank details of the user. The ATM terminal will
consider the entered pin-code if it is correct or not. If the pin code is
correct the ATM terminal will grant access to the user. The video system will
be used to record all the videos of the user accessing the system. The
telephone system will be provided to the user for having a prepaid mobile phone
card facility. The system will be connected further to the whole World bank
system database in which ATM terminal can be used to retrieve information of
the customer (Nicola
& Hennicker, 2015).
Figure: Architectural Diagram of ATM system`
Activity
Diagram for ATM software
The activity diagram for the overall ATM is
mentioned in Figure 2 below. The main purpose of the diagrams is to illustrate
the whole process from inserting the card to taking out the card back with the
money from the ATM. The first step is to insert the card in the ATM. ATM will
detect the card and the further process will depend upon entering the correct
password or pin code (Fujita &
Papadopoulos, 2016). The display of the ATM will mention the requirement of password
and the user will enter the pin code at this point. If the pin code is not
accepted the machine will retrieve back to the initial position and it will be
required to enter correct a pin code again. If the pin code is correct the ATM
will display the second step of selecting the type of transaction. Different types
of transaction will include cash transaction and transfer of money online
through the ATMs from one account to another account (Csacsenavet.
Blogspot. com, 2007). For instance, the user selects the option of cash amount as a
type of transaction the machine display will show the requirement of the
amount. The user of the ATM at this point will enter the amount of money
required according to his needs. After entering the amount, the machine will
perform the transaction. The display will provide information regarding more
transaction. On completion of the transaction, the machine will pop up ATM
card. A slip of transaction will also come out with details regarding bank
account, amount transaction, cash payment, and amount remained back in the bank
account of the user (Nicola &
Hennicker, 2015).
Figure: Activity Diagram for ATM software
Use case Diagram for ATM software
Figure 3 shows the use
case diagram for the ATM software. According to the figure, the bank client and
ATM user will enter the information through checking transaction. The bank ATM
transaction can be accessed by the user for multi-purposes such as getting
information about the saving transaction history, withdrawal amount, and
deposit amount (Egyed &
Schaefer, 2015). All the information is kept by the management software of ATMs
that are further connected with the ATM database. To get these three types of
information, the user will be required to go through the approval process. The
approval process is initially described in Figure 2. Where the user enters pin
code information to access the services of ATMs. If the correct and accurate pin code is
inserted in ATMs it will allow the user to get information. The user will
insert pin code and all successful logins are dependent upon the accuracy of
pin code. In case of invalid pin code,
the ATM will retrieve back to one step named as approval process (Nicola &
Hennicker, 2015).
Figure: Use case Diagram for ATM software
Component Diagram for ATM software
Figure 4 describes the
diagram related to components of the ATM. In this diagram, the uses objects and
other procedures of ATMs are demonstrated. The focus of the main diagram is
towards the roles of the objects in the ATM and how they interact to realize the
functions of the system (Egyed &
Schaefer, 2015). The directional links are used to indicate the relation between
each component. Furthermore, these links are labelled with the appropriate
messages related to the operation of ATM cards and ATMs. The sequence numbers
are mentioned to define the function of the system and its time used to address
a system. The integrated system for ATM hardware is dependent upon the
functionality of the device. The object-oriented design of ATMs is analyzed to
how the devices are performing their duties. A system of ATM is a set of
components that interact with each other to provide services (Fujita &
Papadopoulos, 2016). The ATM system is designed according to user interface and it
contains software that executes financial transaction after interacting with
the database of the bank account. The system structure described objects and
interrelationship of these objects. The behaviour of the system describes how
the system changes after interacting with all the objects and components of the
system (Finextra.
com, 2018). There
are several distinct behaviours and structures. The diagram is used to model
the system along with characteristics structure and behaviour. The activity
diagram provides workflow information while performing the actions. These diagrams show the ATM must obtain a
balance of user account and display to the user. The process also demonstrates
ATM communicates with the bank account database. In this diagram, the emphasis
is on the sequence of steps carried out. All the information about transaction
prompt to the user’s screen before withdrawing and dispensing the cash. In this
session, additional information is also considered to accumulate with activity
diagram. The class diagram is used to model the structure of an ATM system. The fundamental key attributes are used in
the model (Saleh, 2009). The case diagram provides solid information about the structure
of a model, operation of each object, and how the sensing of structure can be
carried out. In the diagram, the customer console is connected to the card
reader, ATM, and web pages. The user can get information about bank account
through ATM and card reader. All the three components are further connected
with the bank database to get information about the bank account. ATM get
information about bank statement through ATM transaction history (Csacsenavet.
Blogspot. com, 2007). Webpage further extract information through Bank database
similar to this card reader also get information by getting access to bank
database. The bank database contains
information about the account. By using web page online transaction can be
carried out but it depends upon customer console. In the case of the webpage,
information is transferred to the client desktop after having employee console.
The client desktop display information about transaction history of the
customer. All the information depends upon the pin code associated with a bank
card (Groups. umd.
umich. Edu, 2019).
Figure: Component Diagram for ATM software
Conclusion
of ATM software
There
has been significant and the remarkable advancement to the technology and its
perspectives. It tends to bring innovations to everything. It thus makes the
new methods and techniques more efficient and quick. Also, the efficiency to
the business operations and the services are brought through the use of the
latest and the advanced techniques. So as is the case with the money transfer
processes. The new methods are totally different from the traditional methods
i.e., the use of the checks and the tokens etc. At present, people prefer to
carry out money transactions by making use of the VISA and MASTER cards. The
new and the emerging concept in this regard is the blockchain sustainability
for the ATM machines. The concept of Bitcoins better helps to carry out the
bank's transactions as per the latest and the advanced techniques. For
performing this all the Automatic Teller Machines with the ATM software
installed better serve the purpose.
The
software architecture for the ATM needs to be so smooth that it provides quick
and efficient services to the customers. Also, the banker's queries are also
required to be processed so smoothly and efficiently. The blockchain technology
regarding the usage of ATM machines is an emerging concept. It will make the
bank to provide the Bitcoin ATM services by making use of the Coin source (marketplace, 2019).
Recommendations
of
ATM software
In
order to effectively implement the architectural design of the ATM software,
the person hired for the coding and implementation needs to be highly skilled
and experienced. It is desirable that the staff must have enough knowledge
about the coding language. It will better help to avoid any issues and problems
during the designing and the implementation of the ATM software. The budget
available for designing the software needs to be compared with the available
benefits. In case the benefits are greater than the costs incurred only than it
should be implemented. Otherwise, try to adopt other suitable available option.
The main motive behind designing this software is to provide the customers with
the ease & the efficiency to the operations. The quicker and the efficient
the services are, the easier it will be for the bank to achieve a competitive
advantage in the market place.
References of
ATM software
atmmarketplace. (2019). The whys and hows of banks
and the blockchain. Retrieved from https://www.atmmarketplace.com/articles/the-whys-and-hows-of-banks-and-the-blockchain/
codewithc. (2019). ATM software Python
project. Retrieved from
https://www.codewithc.com/atm-software-python-project/
Csacsenavet. blogspot. com. (2007). Assignment
2 - Architectural Diagram of ATM System. Retrieved from
csacsenavet.blogspot.com:
http://csacsenavet.blogspot.com/2007/10/assignment-2-architectural-diagram-of.html
Egyed, A., & Schaefer, I. (2015). Fundamental
Approaches to Software Engineering: 18th International Conference, FASE 2015,
Held as Part of the European Joint Conferences on Theory and Practice of
Software, ETAPS 2015, London, UK, April 11-18, 2015, Proceedings. Springer.
Finextra. com. (2018). Virtual Crypto
launches software to make bitcoins avialable through an ATM. Retrieved from
www.finextra.com:
https://www.finextra.com/pressarticle/75242/virtual-crypto-launches-software-to-make-bitcoins-avialable-through-an-atm
Fujita, H., & Papadopoulos, G.
(2016). New Trends in Software Methodologies, Tools and Techniques:
Proceedings of the Fifteenth SoMeT_16. IOS Press.
Gorton, I. (2011). Esseential software
architecture (Second ed.).
Groups. umd. umich. edu. (2019). Sample
of UML Diagrams for ATM System. Retrieved from groups.umd.umich.edu:
http://groups.umd.umich.edu/cis/course.des/cis375/active/class6/UML-ATM.pdf
Marc, L. e. (2017). Entreprise
Architecture at work: Modelling, Communication and Analysis (Fourth ed.).
The Enterprise Engineering Series.
Nicola, R. D., & Hennicker, R.
(2015). Software, Services, and Systems: Essays Dedicated to Martin Wirsing
on the Occasion of His Retirement from the Chair of Programming and Software
Engineering. Springer.
Saleh, K. A. (2009). Software
Engineering. J. Ross Publishing,.