Sunday, October 21, 2007

Automated Teller Machine Architecture (second assignment on SE)

AUTOMATED TELLER MACHINE

For the purpose of the assignment on Software Engineering we have chosen an Automated Teller Machine System. Firstly, we would like to explain how the Automated Teller Machine works.

The ATM have a magnetic stripe reader for reading an ATM card, a customer console (keyboard and display) for interaction with the customer, a slot for depositing envelopes, a dispenser for cash, a printer for printing customer receipts, and a key-operated switch to allow an operator to start or stop the machine. The ATM communicates with the bank's computer over an appropriate communication link.


The ATM services one customer at a time. A customer will be required to insert an ATM card and enter a personal identification number (PIN) - both of which will be sent to the bank for validation as part of each transaction. The customer will then be able to perform one or more transactions. The card will be retained in the machine until the customer indicates that he/she desires no further transactions, at which point it will be returned - except as noted below.
The ATM must be able to provide the following services to the customer:


1. A customer must be able to make a cash withdrawal from any suitable account linked to the card, in multiples of Rs50.00. Approval must be obtained from the bank before cash is dispensed.


2. A customer must be able to make a deposit to any account linked to the card, consisting of cash and/or checks in an envelope. The customer will enter the amount of the deposit into the ATM, subject to manual verification when the envelope is removed from the machine by an operator. Approval must be obtained from the bank before physically accepting the envelope.


3. A customer must be able to make a transfer of money between any two accounts linked to the card.


4. A customer must be able to make a balance inquiry of any account linked to the card.


5. A customer must be able to abort a transaction in progress by pressing the Cancel key instead of responding to a request from the machine.


The ATM will communicate each transaction to the bank and obtain verification that it was allowed by the bank. Ordinarily, a transaction will be considered complete by the bank once it has been approved. In the case of a deposit, a second message will be sent to the bank indicating that the customer has deposited the envelope. (If the customer fails to deposit the envelope within the timeout period, or presses cancel instead, no second message will be sent to the bank and the deposit will not be credited to the customer.)


If the bank determines that the customer's PIN is invalid, the customer will be required to re-enter the PIN before a transaction can proceed. If the customer is unable to successfully enter the PIN after three tries, the card will be permanently retained by the machine, and the customer will have to contact the bank to get it back.


If a transaction fails for any reason other than an invalid PIN, the ATM will display an explanation of the problem, and will then ask the customer whether he/she wants to do another transaction.


The ATM will provide the customer with a printed receipt for each successful transaction, showing the date, time, machine location, type of transaction, account(s), amount, and ending and available balance(s) of the affected account ("to" account for transfers).


The ATM will have a key-operated switch that will allow an operator to start and stop the servicing of customers. After turning the switch to the "on" position, the operator will be required to verify and enter the total cash on hand. The machine can only be turned off when it is not servicing a customer. When the switch is moved to the "off" position, the machine will shut down, so that the operator may remove deposit envelopes and reload the machine with cash, blank receipts, etc.


The ATM will also maintain an internal log of transactions to facilitate resolving ambiguities arising from a hardware failure in the middle of a transaction. Entries will be
made in the log when the ATM is started up and shut down, for each message send to the Bank (along with the response back, if one is expected), for the dispensing of cash, and for the receiving of an envelope. Log entries may contain card numbers and amounts, bu for security will never contain a PIN.

Emergent properties of the ATM listed below:

Safety, “Shall-not”

· If an intruder tries to enter invalid pin, system should block the card and alarmed the concerned authority.


· If card is expired, system should act accordingly, and stop transaction.


· The system must output the exact amount amount of money withdrawn by user not more or even less.


· If the receipt printer is down or there is any other problem with it, the system must inform user by means of the monitor.

Security
· Authentication of user by the card and pin number, log of every transaction taking place.


Security sensors (Magnetic, Thermal, Seismic).


Locks: (to ensure controlled access to the contents of the vault).

Performance


· Available 24Hrs a day, user can access account anytime.

Functional requirements of ATM


The functional requirements of the Automated Teller Machine are organized in the following way:


1. ATM is initialized with T rupees. K, M, N are entered. Parameters are set.


2. If no cash card is in ATM, system should display initial display.


3. If ATM is running out of money, no card should be accepted. An error message is displayed.


4. ATM has to check if the entered card is a valid one. Display error message and return cash card if it is invalid.


5. Serial number should be logged and updated in log file. User requested to enter password. ATM verified bank code and password with bank computer. Bank accepts or rejects authorization from bank.


6. Card is ejected and error message displayed if “bad password”, “bad bank code”, and “bad account”.


7. If card was entered more than thrice in a row at any ATM, password was wrong, card is kept by ATM. A message will be displayed that customer should call at the bank.


8. Amount of withdrawal is entered. Amount of money to be dispensed is dispensed. Begin initial withdrawal sequence.


9. If transaction is successful, money is dispensed. ATM prints receipt and ejects card.


10. If money is dispensed, amount is logged. Response sent to bank for money dispensed.


Sensor


· The card reader consists of sensor recognising presence and correct orientation of the card, it waits for transaction to be completed and once terminated it verifies that card has correctly been removed from the card slot by the cardholder.


· Mispicked notes in an automated teller machine (ATM) are detected by multiple note detectors and diverted to reject bin via diverter.


Actuators


· Key pressed on the Operator panel.


· Card inserted in the Card reader.

Communication


· Monitor consisting of a display.


· Receipt of transaction, example cash withdrawal or balance statement.

Coordination


· Card Reader, Ethernet linking to bank system

Interface

· The interface is the monitor

Computation


· Processor

Non-functional Requirements of the ATM

Accuracy:

1 Customer inserting an ATM card


A session is started when a customer inserts an ATM card into the card reader slot of the machine. The ATM pulls the card into the machine and reads it. The customer is asked to enter his PIN, only then he is allowed to perform transactions but if PIN is invalid, the session is aborted, with the card being retained in the machine. The system should be very accurate to track hackers.

2. Withdrawal or depositing cash


The system must be again very accurate about precise amount being deposited or withdrawn by customer.

Timing Constraint:


· Every transaction must have a timing session.


· System should immediately update the client account depending on the transaction.


Reliability:


· A customer must get an immediate balance statement by the receipt printer if prompted to.


· If ever there is a problem like printer is out of paper or Cash Dispenser is out of money, message should be displayed on the screen.

Usability:


· ATM must be able to allow transaction in different language selected by cardholder.
Supportability:


· The ATM must be able to maintain an internal log of transactions to facilitate resolving ambiguities arising from a hardware failure in the middle of a transaction.





References
http://www.ibm.com/developerworks/rational/library/4860.html
· http://www.eece.unm.edu/faculty/rjordan/oldwebsite/595-025/sudheer/atm3.htm
· http://www.math-cs.gordon.edu/local/courses/cs211/ATMExample/http://www.patentstorm.us/patents/6540136.html


















Saturday, October 6, 2007

First Assignment on software engineering

System Software

As per our study, system software is a general term referring to any computer software, which manages and controls the hardware so that application software can perform a task.
System software can be subdivided into system management programs and system development programs. System management programs manage the hardware, software, network and data resources of a computer system during its execution of information processing jobs. Example of systems management programs are operating systems, network management programs, database management systems, system utilities, application servers and performance and security monitors. System development program like translators and programming editors help programmers develop computer programs to support business process.


Real Time Software

A system is said to be real time if the total correctness of an operation depends not only upon its logical correctness, but also upon the time in which it is performed. There are two types of real time systems, which are the hard real time system and soft real time system. In a hard real time system, the completion of an operation after its deadline is considered useless. For example, a car engine control system is a hard real time system because a delayed signal may cause engine failure or damage. Other example of hard real-time embedded system includes medical systems such as heart pacemakers, that is, the pacemaker is responsible to a particular node in the heart. If the node is not working, then the pacemaker stimulates the heart to regulate heartbeats.

On the other hand, if an operation is completed after its deadline, a soft real time system will tolerate such lateness. For example, the software that maintains and updates the flight plans for commercial airlines. These can operate to a latency of seconds.
Thus, we conclude that real-time software operates in a time-compressed, real-world environment. Although most software is in some sense real-time, since the users of modern software are usually interacting with it via a GUI, real-time software typically has much shorter time constraints. For example, software that controls a nuclear reactor must make decisions and react to its environment in minuscule fractions of a second.

Business Software

We also found that business software is generally any software program, that helps a business increase productivity or measure their productivity. The term covers a large variation of uses within the business environment, and can be categorized by using a small, medium and large matrix:
The small business market generally consists of home accounting software, and office suite such as Microsoft Office and Openoffice.org.

The medium size, or SME, has a broader range of software applications, ranging from accounting, groupware, customer relationship management, human resource software, loan origination software, shopping cart software, field service software, and other productivity enhancing applications.

The last segment covers enterprise level software applications, such as those in the fields of enterprise resources planning, enterprise content management (ECM), business process management and product lifecycle management. These applications are extensive in scope, and often come with modules that either add native functions, or incorporate the functionality of third-party software programs.
Now, technologies that have previously only existed in peer to peer software applications, like Kazaa and Napster, are starting to feature within business applications. JXTA is an open source platform that enables the creation of machine and language neutral applications. Peer based applications will be especially useful for aggregating the information at the edge of the network that currently resides in the neurons of the users themselves.


Engineering/Scientific Software

According to our study, scientific and engineering software satisfies the needs of a scientific or engineering user to perform enterprise-specific tasks. Because scientific and engineering tasks tend to be very enterprise-specific, there has been no generalization of this application area analogous to that of the ERP for back office business systems. The scientific-engineering application usually is considered to be in second place only to business software in terms of software products built.
We found many examples of Engineering/Scientific Software; they are Medical software, Neural networking software, modeling and simulation software, Computer aided design(CAD), Statistics software.

Artificial Intelligence

As per us, Artificial Intelligence can be defined as the ability of a computer to behave like a human in all possible ways that is the ability of reasoning, thinking, learning from past experience and it is programmed mainly in languages such as LISP and Prolog. In other word it responds to stimuli just as a human being, some examples of Artificial Intelligence are games (chess) playing with a computer, which can easily defeat a human; the trick behind is that the computer remembers all the moves of the player and uses it to defeat the player. An expert system is another listed Artificial Intelligence, which helps doctors to diagnose diseases based on symptoms presented by the patient.

Moreover, Heuristic classification is one of the most feasible kinds of expert system given is to put some information in one of a fixed set of categories using several sources of information. An example is advising whether to accept a proposed credit card purchase. Information is available about the owner of the credit card, his record of payment and also about the item he is buying and about the establishment from which he is buying it (whether there have been previous credit card frauds at this establishment). Natural Language processing machine is another type of Artificial Intelligence where computers understand human language such as vocabulary, rules of grammar and syntax.
We consider Computer Vision Pattern Recognition as another form of artificial Intelligence, which recognizes patterns using cameras for eyes, microphones for ears and also Optical Character Recognition (OCR). The fields in which it used are satellite photo interpretation, facial characteristics detection, digital searching of videos, based on content, obstacle detection systems for aircraft navigation and automatic analysis of multi-dimensional radiological images

Web application

After our research, we concluded that a web application can be said to be an application that is accessed via web over a network such as the Internet or an intranet where users can create, manipulate, and permanently store data. It requires a web browser such as Internet Explorer, enabling the users to access the application from almost any computer and data can be shared regardless of location but response time of the application is dependent on the connection speed such as the type of connection for dial-up or DSL. Moreover, we found that web application requires each user to uniquely identify themselves to the system, typically through a username and password. This give an aspect of personalized functionality based on roles and privileges. We have understood that a web application can be classified as a three-tier structure, comprising a User Service tier (allowing user access to the application), a Business Service tier (allowing the user to carry out complex activities) and a Data Service tier (which allows data storage and retrieval). The flow of web application is two way traffic, it consists of a user requesting from its browser, at the other end there is a web server forwarding the request to Web Application Servers which in turn process the request searching in the database and completing the transaction sending back the response in the same schema, therefore the user get a response on his monitor. Some of its applications are web mail, online retail sales, online auctions, wikis, discussion boards and web logs and human resources records.


Embedded Software

We tried to defined an embedded system as a specialized computer system that is part of a larger system or machine which is housed on a single microprocessor board with the programs stored in ROM. An embedded system is a specialized program specifically designed for a particular kind of application device, it is very precise in its application.

Embedded systems often reside in machines that are expected to run continuously for years without errors and in some cases recover by themselves if an error occurs. Thus, it is a very precise task and unreliable mechanical moving parts such as switches or buttons are not implemented within it.
One drawback of embedded system is that it lacks tight real time requirements.
Thus all appliances that has a digital interface uses embedded system such a simple watches, VCR, cars, the operating system, industrial machines, automobiles, medical equipment, cameras, household appliances, airplanes, vending machines, toys, traffic lights and as well as the cellular phone.


Reference:

· http://www.britannica.com/eb/article-9009711/artificial-intelligence
· A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence
· Thoughts About Artificial Intelligence. By Marvin Minsky.
· Austin Tate [AIAI, School of Informatics, University of Edinburg]
· AI Journals & Magazines
· The Age of Intelligent Machines. Cambridge, MA: MIT Press.
· http://www.aaai.org/AITopics/html/overview.html
· http://www.singinst.org/overview/whatisthesingularity
· http://www-formal.stanford.edu/jmc
· http://www-formal.stanford.edu/jmc/whatisai/node4.html
· http://www.dilnetpc.com/?gclid=CI_7tYz48Y4CFRu1EAodDA9mKQ
· http://www.ecoscentric.com
· http://www.maxim-ic.com/products/microcontrollers
· http://en.wikipedia.org/wiki/Embedded_system
· http://en.wikipedia.org/wiki/Web_application
· http://www.ladenterprizes.com/whatiswebapp.htm
· http://www.boxesandarrows.com
· http://computing-dictionary.thefreedictionary.com
· http://www.bitpipe.com/tlist/Web-Applications-Software.html
· http://wdvl.com/Authoring
· http://www.acsac.org/2005/tutorials.html
· http://www.desktopscientific.co.za/http://bioinformatics.org/
· http://open-encyclopedia.com/Engineering
· http://en.wikipedia.org/wiki/Business_software
· http://en.wikipedia.org/wiki/Category:System_software