P. 1
73917232 ATM Simulation Full Documentary With Code

73917232 ATM Simulation Full Documentary With Code

|Views: 124|Likes:

More info:

Published by: Yusuf Abiola Wayaless Bluetooth on May 27, 2012
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less









Page - 1 -

Now-a-days ATM (Automatic Teller Machines) is commonly used. It not only provides basic transaction services (e.g.…withdraw, balance enquiry, mini statement, money transfer) but also provide additional services like bill payments, mobile recharges, examination fees payment. But most of these facilities are available only to the urban people and not to the rural people. The reason why these facilities are not available to the rural people is illiteracy and the difficulty they face in remembering the entire mechanism of handling an ATM machine. Our project aims at making the ATM machines more user friendly (especially for rural people). And we are doing this by constructing the simulator of real world ATM machine. As we know that simulator is a computerized model of real world system that demonstrate the working of the real world system (on the basis of certain assumptions) and can also be used to perform new experiments before it is deployed on the real system. The technique by which we are going to make the simulator friendlier to rural people is by enabling the simulator to be controlled by speech (i.e. any regional language).

So, in our project we are constructing a simulator that depicts the real world ATM machines and have certain features which are as follows:  Works in networked environment, to demonstrate the real world ATM working environment.  Demonstrates the basic banking services provided by ATM machines, i.e.….withdraw, deposit, balance enquiry, money transfer and others.  Also, demonstrate the additional services provided by today‟s ATM machines, i.e. electricity bill payment, telephone bill payment.  Enabling the simulator to be controlled by speech is the experiment we are going to perform on the simulator.


Page - 2 -



Page - 3 -

In the earlier times ATM was only recognized for cash withdrawal or balance enquiry. various Bill payments. STUDY OF CURRENT SYSTEM: A real world automated teller machine (ATM) is a computerized telecommunications device that provides the customers of a bank with access to financial transactions in a public space without the need for a human clerk or bank teller. There is cash dispensing machine from which cash out can be accomplished. But now a day various new features like cash deposits.com Page . Mobile recharge etc are added which are attracting more and more customers. For customer‟s simplicity various language options are supported (like English. Providing more and more language options is useless because they may not be able to read a text written on the screen. In spite of these advancements in the ATM world. http://www.earnrupees4you. from which user can deposit money into his account. Security is provided by the customer entering a personal identification number (PIN). The cash dispensing machine optionally owns a cash In mechanism (if cash deposit feature is enabled in ATM machine). The same problem exists with the blind people.4 - . Thus the existing system although growing day by day and fulfilling more and more needs of customers fails in the case when simplicity and user friendliness is measured. Bank account number and some security information. AIM: The aim of this project is to simulate the real world ATM machine. Most of the people are illiterate and even can‟t perform a simple transaction like cash withdrawal due to language bondations. More and more new and exciting features are incorporated in the machine as per customer‟s increasing needs. On most modern ATMs. such as an expiration date or CVC (CVV). the ATM is not successful in rural areas. the customer is identified by inserting a plastic ATM card with a magnetic stripe or a plastic smartcard with a chip that contains a unique card number.PROBLEM STATEMENT: The real world ATM is continuously developing day by day. The real world ATM provides a keypad and a touch screen.

The process followed in making this determination is called a feasibility study. Various features provided by a real world ATM system are as follows: Cash Withdrawal  Cash Deposit  Money Transfer  Balance Enquiry  Bill Payments PROPOSED SYSTEM: The proposed system “Speech controlled ATM Simulator” provides all the basic as well as advanced features of a standard real world ATM system.5 - . It determines whether a project should be taken or not. http://www. ability to meet user needs. FEASIBILITY STUDY : Feasibility is the determination of whether or not a project is worth doing. Feasibility study is a test of a system proposal according to its workability. The constants of the reports were used as a sound basis for the decision of proceeding. The customer can now give voice commands in his mother language with the help of a microphone and the ATM machine recognizes those spoken commands and takes the appropriate action. Along with it to add more simplicity and to make the machine more user friendly two new concepts are added:- Speech Synthesis-The ATM system will now help the user by guiding him throughout the transaction by giving speech in his or her mother language. Speech Recognition.Hindi etc). postponing or the cancellation of the project. Depending on the results of the initial investigation the survey is expanded to a more detailed feasibility study.com Page .earnrupees4you.The ATM system will now be able to recognize spoken commands. Feasibility study was undertaken within tight constraints of time and culminated in the written and amoral feasibility reports. and effective use of resources. impact on the organization.

Which are generally raised during the technical feasibility there are follows -?  Does the necessary technology exist to do with what is suggested & can it required?  Does the propose requirement have the technical capacity to hold the data required to use the new system?  Can the system we updated it developed?  What new skill will be required to new technology do the existing staff members have these skills if not can they we trained in due course of time? 2) Operational Feasibility: .It is mainly related to the human organizational and political aspect.This is concerned with the specifying equipment and the software that successfully satisfies the user requirement. Can the work for the new system we done with current environment existing software technology & available personnel.It is the most frequently used technique for the evaluation of the effectiveness of the proposed system. So we can say there are a number of technical issues. 3) Economic Feasibility: . The operational staff is having no idea about operation of the computer system.earnrupees4you. new skills required etc. If benefit is more than the costs then the decision are made to design is made to design and implement the http://www. It involves the study of change to be brought about in the system.Various types of feasibility are studies they are:- 1) Technical feasibility: . In the present system there is no use of computer. It involves the cost/benefit analysis. In examining the technical feasibility the configuration of the system is given importance than to the actual hardware. The technical need of the system very considerably.6 - . Economic feasibility is the most frequently used method for evaluating the effectiveness system. As the present system devoid of computer assistant a complete revamping of the whole set-up will be required.com Page . More commonly known is cost beneficial the procedure is to determine the benefits and savings that are expected from a system and compare them with costs. An introductory training of the staff is needed.

sequence diagram.com Page . A computer literacy program is very necessary before the installation and implementation of the system failing which it may lead to rejection of the system. After studying and testing the above feasibilities we have found that our project stands firmly on them. While discussing with users it was observed that they are afraid of using a computer system. and step-by-step implementation of SDLC (Software Development Life Cycle).It determines whether the proposed system will be acceptable to the management or not. This includes the need of the project. In case of our project the documentation describes the following details:  Current System.It is the determination of whether a system will be accepted by the user or not.earnrupees4you.  Problem with current system  Proposed system  Modeling performed (Use cases analysis. state chart diagram and DFD)  System Design(Class Diagrams)  Testing Performed  Future Enhancements http://www. 5) Management Feasibility: .system. This examines the probability of the project being accepted directed by the user. objectives of the project. 4) Social Feasibility: . OVERVIEW OF DOCUMENT: PRIMARY GOAL OF DOCUMENT: The primary goal of the document is to provide the entire information of the project.7 - . This might be due to the fact they belong to diverse background.

Underlined Normal Sub-heading : Text Font Size Heading : : 24 14 12 Justified 1.5 lines Sub-heading : Text Alignment Line Spacing : : : http://www. Underlined Bold.earnrupees4you.DOCUMENT CONVENTIONS: Font Style Heading : Times New Roman : Bold.com Page .8 - .

9 - .earnrupees4you.com Page .LITERATURE SURVEY http://www.

domotic appliance control and content-based spoken audio search (e.. a radiology report). The term "voice recognition" is sometimes incorrectly used to refer to speech recognition. transfer funds. data entry. when actually referring to speaker recognition.g.. WHAT IS SPEECH RECOGNITION?Speech recognition (also known as automatic speech recognition or computer speech recognition) converts spoken words to machine-readable input (for example.. The recognized words can be the final results. call routing (e. to key presses. Speech recognition applications include voice dialing (e.g. find a podcast where particular words were spoken).WHAT IS ATM?- Automated Teller Machine (ATM). The computer then permits the ATM to complete the transaction.earnrupees4you. entering a credit card number).g. a user inserts into the ATM a special plastic card that is encoded with information on a magnetic strip. to a set of words. and provide information on account balances.. Typically. preparation of structured documents (e.g. "I would like to make a collect call"). simple data entry (e. To prevent unauthorized transactions. http://www. Banks have formed cooperative. word processors or emails). The strip contains an identification code that is transmitted to the bank's central computer by modem. as for applications such as commands & control. device used by bank customers to process account transactions.10 - .com Page .. which attempts to identify the person speaking. Confusingly.g. journalists and manufacturers of devices that use speech recognition for control commonly use the term Voice Recognition when they mean Speech Recognition. captured by a microphone or a telephone. nationwide networks so that a customer of one bank can use an ATM of another for cash access. most machines can dispense cash. and in aircraft cockpits (usually termed Direct Voice Input). accept deposits. as opposed to what is being said. a personal identification number (PIN) must also be entered by the user using a keypad. using the binary code for a string of character codes)..g. and document preparation. Speech recognition is the process of converting an acoustic signal. speech-to-text processing (e. "Call home").

including the modeling of natural systems. Physical simulations are used in many contexts. WHAT IS SIMULATION?Simulation is the imitation of some real thing. Some systems require speaker enrollment---a user must provide samples of his or her speech before using them. Spontaneous. or extemporaneously generated. and manual systems.An isolated-word speech recognition system requires that the speaker pause briefly between words.11 - . Computer simulations: Computer programs based on mathematical models are used to manipulate elements of the experiment. Examples: Physical or manual simulations: These simulations rely on the use of physical methods to create data that mimic the types of information required. Using a simulator or experimenting with a fictitious system can show the eventual real effects of a given situation. The act of simulating something generally entails representing certain key characteristics or behaviours of a selected physical or abstract system. This type of simulation can be applied in many ways. and is much more difficult to recognize than speech read from script. Physical methods. It is basically an experiment run as a model of reality. language models or artificial grammars are used to restrict the combination of words. state of affairs. whereas other systems are said to be speaker-independent.com Page . computer simulations generate system topology and traffic models http://www. in that no enrollment is necessary.earnrupees4you. such as using a dice to simulate data have the disadvantage of being too time consuming. speech contains disfluencies. whereas a continuous speech recognition system does not. Recognition is generally more difficult when vocabularies are large or have many similar-sounding words. A simulation is a representation of a situation with a similar but simpler model that can easily be manipulated to determine experimental results. or process. Some of the other parameters depend on the specific task. When speech is produced in a sequence of words. In telegraphic engineering.

CSIM19. Computer simulation of ATM can be used effectively to teach a specific independent living skill to adults with mental retardation. By changing variables. nuclear power plant operators) as well as specific rote tasks (e. participants were again tested on their capacity to operate the actual ATM.com Page . As a result. In the pilot evaluation. switchboard operators). computer simulation has been used increasingly as a cost-effective alternative to actual hands-on training. and Minitab.that can be used for network performance management.g. and emerging technological advances associated with computers have made computer simulation a viable alternative teaching method in a variety of settings. Some computer exercises that use a computer program to generate data or information are TELPACK.. WHAT IS ATM SIMULATOR?: ATM-Simulator (ATM-SIM) is a computer-based trainer used for teaching individuals with intellectual disabilities how to use an automated teller machine (ATM) to access their personal bank accounts. After a brief training period. predictions may be made about the behaviour of the system. Participants were pre-tested on their ability to use an ATM and then were trained using the ATM-SIM prototype. but this article doesn't). A computer simulation (or "sim") is an attempt to model a real-life or hypothetical situation on a computer so that it can be studied to see how the system works. These physical objects are often chosen because they are smaller or cheaper than the actual object or system.12 - . In our project we are performing computer simulation and creating a computerized model.g. With technology. such as http://www. Physical simulation refers to simulation in which physical objects are substituted for the real thing (some circles use the term for computer simulations modelling selected laws of physics. Recently the increased availability. Simulation has been used effectively in many settings to teach skills that require both complex problem solving abilities (e.. decreased cost. a prototype system was developed and used to train nine adults with intellectual disabilities how to use a local ATM.earnrupees4you.

Privacy (the concern over one's personal financial details being overheard) and security (the fear of potential attackers hearing the user withdraw cash) were the major reasons given. WHAT IS SPEECH CONTROLLED ATM SIMULATOR?: Despite the success and widespread use of Automatic Teller Machines (ATMs).13 - . The user trials confirmed that possible solutions. ATM-SIM is designed as a multimedia training tool that provides individuals with intellectual disabilities step-by-step instructions for learning how to use an ATM. from entering the ATM card. in which simulations may need to be used in training. The idea of using speech for ATM transactions led to a number of concerns. Each button and displayed message from a local ATM in the PLUS system of ATMs was incorporated into the ATM-SIM system. The potential advantages of speech interfaces include hands-free and eyes-free use for physically. This study investigated user attitudes to the concepts of a speech-based ATM. a significant proportion of bank customers can not or will not use them. citing various difficulties http://www. and improved ease and speed of use through increased 'naturalness' of the interaction. while simultaneously improving usability for all.earnrupees4you. or experience difficulties in their interactions. such as the adoption of a hood over the ATM or the use of a telephone handset as the speech input/output device. keying in an access code. Users interacted with the ATM-SIM system using a touch screen similar to actual operation of an ATM.and visually impaired users. Users were guided through each step of a desired transaction via computer generated audio instructions and by visually highlighting the buttons that needed to be pressed. particularly visually-impaired subjects. Groups of impaired users. it is likely that computers can provide reasonably priced and realistic simulations that might provide for transfer of skills to community settings. selecting the desired transaction and completing the transaction was simulated on the computer and presented to the user with step-by-step visual and audio cues. Each step in the process. via large-scale survey and a series of focus groups. were more positive about the concept of speech. Objective performance was also considered in user trials with a prototype speechdriven ATM.ATMs.com Page . Speech technology has been suggested as a means by which non-users might be encouraged to use ATMs. were ineffective.

what a simulation is and why we simulate any real world system. Most non-users.com Page . So this point must also be considered in ATM Simulator. It means that the banks can experiment the enhancements on the simulator before they implement it in the real world system.  Usability: Unlike the modern ATM machines the simulator should be useful to a wide range of users and the users must use it without any assistance.  Functionality: The ATM Simulator must include all the possible basic and advanced features that can be provided by a modern ATM machine. The simulator must be user friendly and must support multiple languages.  Service Extension: The simulator must be helpful to extend the functionalities of the real world ATM machines.14 - . http://www. would not be encouraged to use ATMs with the addition of speech.  Efficiency: The simulator must be fast and easy in operation. however. So before we move further we must consider the following aspects regarding ATM Simulator. As per literature survey we have learned what an ATM is.with current visual-manual interactions. So secured handling of PIN (Personal Identification Number) and secured manipulation of other information across the network must also take place. The aspects are as follows Security: The security is the main concern in case of ATM machines.earnrupees4you.

com Page .15 - .earnrupees4you.TECHNOLOGY SURVEY http://www.

util java.sql java.print javax.com Page .sound.awt java.event javax.awt.sampled java.rmi RmiJdbc Java is a high-level programming language that is all of the following:           Simple Object-oriented Portable Distributed High performance Interpreter Multithreaded Robust Dynamic Secure http://www.speech.16 - .awt.JAVA is the language used and in it following packages are used:                 java.io javax.filechooser java.earnrupees4you.recognition javax.swing java.attribute java.swing.print.speech.text java.speech javax.synthesis javax.

earnrupees4you. you translate a Java program into an intermediate language called Java byte codes.com Page .the platform-independent codes interpreted by the Java interpreter. each Java byte code instruction is parsed and run on the computer. Compilation happens just once. With a compiler. Fig: Execution of Java Program http://www. This figure illustrates how this works.Java program is both compiled and interpreted.17 - . With an interpreter. interpretation occurs each time the program is executed.

run anywhere" possible. and Macintosh.sql. Following are the steps mainly used when a Java program connects itself to a backed:1. 3.earnrupees4you. 2.com Page . The Java VM can also be implemented in hardware. Connecting a Java application in back end requires the use of JDBC. is an implementation of the Java VM. JDBC is a set of API which in use to wrap up SQL queries and then sends them to the target database. http://www.18 - . The technology is termed as JDBC (Java Data Base Connectivity). Load and register the driver.Fig: Java program executions One can think of Java byte codes as the machine code instructions for the Java Virtual Machine (Java VM). Java byte codes help make "write once. Every Java interpreter. the same Java program can run on Windows NT. java. Establish connection to the database. You can compile your Java program into byte codes on any platform that has a Java compiler. Import the package java. For example. whether it's a Java development tool or a Web browser that can run Java applets.sql This package is used for avail of classes and drivers required for accessing and manipulating databases through Java programs. Solaris. The byte codes can then be run on any implementation of the Java VM.

4.jdbc. 6.forName(String ) throws ClassNotFoundException : This method notifies and use the driver required for accessing the database.Overall there are 127 drivers available. Statement objects are created by the above method belonging to the „Connection‟ interface. The first record is at row 1.19 - . public Connection getConnection(String) throws SQLException: This method is a ststic member of DriverManager class and is used to connect the driver to the database.earnrupees4you. 7. 5.odbc. Execute the SQL query and obtain the results. And it is used for executing „select‟ query. Terminate the connection. 5. public boolean next() throws SQLException: This method belongs to the „ResultSet‟ class and is used to move the cursor to the next record in the resultset.com Page .‟update‟ and „delete‟ queries.JdbcOdbcDriver”. Retrieve the values of the columns of each row. Create a statement. http://www. 2. Class. public Stsatement createStatement() throws SQLException: A „statement‟ is an interface and by creating its objects we get a workspace to fire SQL queries and retrieve any results. 6. By default Java use the following driver –“sun. public Resultset executeQuery(String) throws SQLException: Once we have created a „statement‟ object our next job is to execute an SQL query by calling the above method which belongs to a „Statement‟ class.4. Method used: 1. 3. public int executeUpdate(String) throws SQLException: This method is used for executing the „insert.

getConnection(“college”).createStatement(). public Xxx getXxx(String ) throws SQLException: This method belongs to the „ResultSet‟ class. 8. While(r.forName(“sun.getString(“Name”)+ “ Roll No=”+r.executeQuery(“Select * from Details”) . public void close() throws SQLException: This method is present in „ResultSet‟. } } catch(ClassNotFoundException e) { http://www.com Page .println(“Name =”+r. Statement st = con.next()) { System.odbc. The parameter takes the name of the column whose data is to fetched from the resultset.*. St. con = DriverManager.7.sql.jdbc.10)). Here Xxx may be replaced by the data types present in Java.getInt(2)). ResultSet r=st. class Database { public static void main(String [] args) { Connection con .earnrupees4you.executeUpdate(“INSERT INTO Details VALUES(„Ajay‟. For example: import java.20 - .‟Statement‟ and „Connection‟ class to close the respective connections. This method is used to retrieve the data from the resultset.JdbcOdbcDriver”). try { Class.out.

out. The permitted formats of audio file for sampled playback are .. For playing sound there are two kinds of line. } finally { con. public DataLine. Clip specifies all data line at a time for playback whereas SourceDataLine allows one to keep writing in the buffer while playback. public AudioSystem getAudioInputStream(File): This method returns the object of AudioInputStream class and takes the name of the audio file as an object of File class.com Page .out. Samples are successive snapshots of a signal. } catch(SQLException f) { System.wav. Plying sound sometimes is referred to as presentation or rendering.auf. A Clip and a SourceDataLine.sound. Method Used: 1. 2.println(f.AudioInputStream): This is a constructor.sampled This package is used to play the recorded sampled sound.. The signal is a sound wave in the case of audio. } } } javax.System.av. http://www.This method is a static method of AudioSyatem class.println(“Cannot File the class”).close().getMessage()).earnrupees4you.Info (Clip.21 - .

earnrupees4you. public void setMicrosecondPosition(long): This method is used to set the position of head at the position passed as argument.*.3.*.io. public (Clip) getLine(AudioInputSteream) : This method belongs to the AudioSystem class and creates a line of the audiofile.sound.*.sampled. import java.event.*. import java. 4. import java. private File f.Info info.swing. class Playing_Sound { private AudioInputStream ain.22 - . import javax. http://www.*. For Example: import javax. 6. public void stop(): This method stops the current playing file. private Clip clip. public void open(AudioInputSteam): This method belongs to Clip class and is used to open the audio file for playback.awt. 5.com Page . public void start(): This method plays the file and is not stopped until the file is completed. private DataLine. 7.awt.

public Playing_Sound(String name) { try { f=new File(name); ain=AudioSystem.getAudioInputStream(f); info=new DataLine.Info(Clip.class,ain.getFormat()); clip=(Clip) AudioSystem.getLine(info); clip.open(ain); System.out.println(ain.getFormat());

} catch(Exception e) { System.out.println(e.getMessage()); } }

public void play() { try { clip.start();

System.out.println(clip.getMicrosecondPosition()); } catch(Exception r) {} }

public void stop() http://www.earnrupees4you.com Page - 23 -

{ clip.stop(); }

public void resume() { clip.setMicrosecondPosition(0); }


class Player extends JFrame implements ActionListener { JPanel p; JButton b,s;

Player(String name) { super(name); p=new JPanel(); b=new JButton("Play"); s=new JButton("Stop"); b.addActionListener(this); s.addActionListener(this); p.add(b); p.add(s); add(p); setBounds(0,0,100,200); p.setVisible(true); setVisible(true); } http://www.earnrupees4you.com Page - 24 -

public void actionPerformed(ActionEvent e) { Playing_Sound p=new Playing_Sound("C:\\gh.wav");

if(e.getSource()==b) { p.play(); } else if(e.getSource()==s) { p.stop();

} } } class Player_Test { public static void main(String [] args) { Player o=new Player("My First Player"); } }

javax.speech & javax.speech.synthesis & javax.speech.recognition In JAVA speech synthesis is supported by javax.speech.synthesis package. A speech synthesizer is a speech engine that converts text to speech. The javax.speech.synthesis package defines the Synthesizer interface to support speech synthesis plus a set of supporting classes and interfaces. As a type of speech engine, much of the functionality of a Synthesizer is inherited from the Engine interface in the javax.speech package and from other classes and interfaces in that package.


Page - 25 -

util.synthesis.26 - . null). Allocate and Resume: The allocate and resume methods prepare the Synthesizer to produce speech by allocating all required resources and putting it in the RESUMED state. // Wait till speaking is done synth. http://www.deallocate().ENGLISH)). Create: The Central class of javax.The following code shows a simple use of speech synthesis to speak the string "Hello World".Locale.createSynthesizer( new SynthesizerModeDesc(Locale. } } } This example illustrates the four basic steps which all speech synthesis applications must perform. } catch (Exception e) { e.com Page .allocate().waitEngineState(Synthesizer.resume(). import javax.QUEUE_EMPTY).speech. import javax.*. In this example a synthesizer that speaks English is requested.*.speech package is used to obtain a speech synthesizer by calling the createSynthesizer method. import java. world!".printStackTrace(). Let's examine each step in detail. // Clean up synth. public class HelloWorld { public static void main(String args[]) { try { // Create a synthesizer for English Synthesizer synth = Central.speakPlainText("Hello. synth.speech. // Speak the "Hello world" string synth. // Get it ready to speak synth.earnrupees4you. The SynthesizerModeDesc argument provides the information needed to locate an appropriate synthesizer.

speech. and the patterns in which those words can be spoken. The deallocate method frees the synthesizer's resources. public <sentence> = hello world | good morning | hello mighty computer. The following example shows a simple application that uses speech recognition. much of the functionality of a Recognizer is inherited from the Engine interface in the javax. In this example. and then wait for the user to http://www.earnrupees4you.speech package and from other classes and interfaces in that package.recognition package defines the Recognizer interface to support speech recognition plus a set of supporting classes and interfaces. load the grammar. In JAVA speech recognition is supported by javax. and we need to write the Java software that performs the recognition task.speech. This trivial grammar has a single public rule called "sentence". grammar <grammar_name>. A rule defines what may be spoken by a user. A speech recognizer is a speech engine that converts speech to text. The javax.until it has finished speaking the text. Deallocate: The waitEngineState method blocks the caller until the Synthesizer is in the QUEUE_EMPTY state . we define a grammar that allows a user to say "Hello World" or a variant.com Page . The grammar is defined using the Java Speech Grammar Format. For this application we need to define a grammar of everything the user can say. A public rule is one that may be activated for recognition. A grammar is provided by an application to a speech recognizer to define the words that a user can say. Place this grammar into a file.0.27 - . As a type of speech engine. The following code shows how to create a recognizer.recognition package. #JSGF V1.Generate: The speakPlainText method requests the generation of synthesized speech from a string.

com Page .28 - .Locale. // Deallocate the recognizer and exit rec. ResultToken tokens[] = r. } public static void main(String args[]) { try { // Create a recognizer that supports English.util.getSource()).recognition. rec = Central. import javax. for (int i = 0. i++) System. When it gets a match.exit(0). clean up.speech.*.speech. System. System.*.getBestTokens().deallocate().out.say something that matches the grammar. public class HelloWorld extends ResultAdapter { static Recognizer rec.print(tokens[i].earnrupees4you.println(). it deallocates the engine and exits.length. exit public void resultAccepted(ResultEvent e) { Result r = (Result)(e. // Receives RESULT_ACCEPTED event: print it. i < tokens. import java.FileReader. import javax.createRecognizer(new http://www.getSpokenText() + " "). import java.io.out.

Let's examine each step in detail. // Add the listener to get results rec.resume(). http://www.EngineModeDesc(Locale. RuleGrammar gram = rec.allocate().ENGLISH)). // Load the grammar from a file.addResultListener(new HelloWorld()).commitChanges().com Page .29 - . } } } This example illustrates the basic steps which all speech recognition applications must perform. gram. } catch (Exception e) { e. and enable it FileReader reader = new FileReader(args[0]).setEnabled(true).printStackTrace(). // Commit the grammar rec. // Start up the recognizer rec.requestFocus(). rec.loadJSGF(reader).earnrupees4you. // Request focus and start listening rec.

the recognizer must be in the RESUMED state and must have the speech focus.) Next. the recognizer http://www. These events indicate progress as the recognition of speech takes place. Allocate: The allocate methods requests that the Recognizer allocate all necessary resources. Request focus and resume: For recognition of the grammar to occur. the loadJSGF method can load a grammar from a URL. The EngineModeDesc argument provides the information needed to locate an appropriate recognizer. we process the RESULT_ACCEPTED event.earnrupees4you.com Page .30 - . Load and enable grammars: The loadJSGF method reads in a JSGF document from a reader created for the file that contains the javax. The requestFocus and resume methods achieve this. In this example we requested a recognizer that understands English (since the grammar is written for English). In this implementation. When the user speaks something that matches the loaded grammar. an enabled grammar is activated for recognition: that is. the recognizer compares incoming audio to the active grammars and listens for speech that matches those grammars. Process result: Once the main method is completed.demo grammar.speech package is used to obtain a speech recognizer by calling the createRecognizer method. the grammar is enabled. the application waits until the user speaks. Once the recognizer receives focus. which is provided when the recognizer completes recognition of input speech that matches an active grammar. (Alternatively.Create: The Central class of javax. Attach a ResultListener: The HelloWorld class extends the ResultAdapter class which is a trivial implementation of the ResultListener interface.speech. Commit changes: Any changes in grammars and the grammar enabled status needed to be committed to take effect (that includes creation of a new grammar). An instance of the HelloWorld class is attached to the Recognizer to receive result events.

listRoots().issues a RESULT_ACCEPTED event to the listener we attached to the recognizer. so if the floppy drive is not inserted then the system warning will be flashed. The source of this event is a Result object that contains information about what the recognizer heard.filechooser This package is used to hide the system warnings regarding the hard disks used. In our project we are using floppy drive as or card. So to hide the message and to make the system to continuously sense the floppy drive we have to use the above class.getFileSystemView().31 - . It is a static method of FileSystemView class and returns the same class object. do { }while(!f[1].com Page . For Example: FileSystemView fsv = FileSystemView. These words are printed. each of which represents a single spoken word. The getBestTokens method returns an array of ResultTokens.exists()). public File listRoots(): This method is used to provide an array of File of the drives. File[] f = File.swing. http://www. 2. public boolean exists(): This method determines whether the disk is present at the appropriate drive or not. Deallocate: Before exiting we call deallocate to free up the recognizer's resources.earnrupees4you. 3. Method Used: 1. javax. public FileSystemView getFileSystemView(): This method is used to find all the permanent drives present in the system.

println(“Date=”+currentdate).out. } } http://www. at=cv.SHORT. private java.out.Locale): This method returns the current date and time of the local system depending upon the Locale and format passed. System.util.java.text: Although there are various classes and methods available in these packages for various jobs but we have used these packages to extract current date and time.32 - .com Page .at.util. System.Date(): This is a non-parameterized constructor of Date class to construct it‟s object.getDateInstance(DateFormat. public String format(Date): This method returns the DateFormat object in a string form for editing.Date now = new java. 2.Date(). java.new Locale("en")).currenttime. private String currentdate. currenttime = tz. For Example: class DateTime { static: { private DateFormat cv=DateFormat.util.format(now).MEDIUM.new Locale("en")). Method Used: 1. 3.util & java.getTimeInstance(DateFormat.println(“Time=”+currenttime). private DateFormat tz=DateFormat.format(now). public DateFormat getDateInstance(int.earnrupees4you.

Container javax. And the remaining two packages has been used for handling.awt & java.Component java.event.swing.awt. Class JButton Inheritance hierarchy of Class JButton java. } } java.JComponent javax.awt.AbstractButton javax.swing.swing has been used for designing the components in our code. registering and listening the events fired while clicking an button.class Test { public static void main(String [] p) { DateTime h=new DateTime(). The package javax.earnrupees4you.awt.swing These three packages are solely used for implementing the front end of our program.swing.JButton Constructor used: JButton(String text) Creates a button with text.lang. http://www.com Page . & javax.33 - .Object java.

Component java. 5.TextComponent java.awt. void setFont(Font):Sets a specified font for the button 4. Class TextField java. boolean isEnabled():Returns true if button is enabled else returns false 2. int y. and the new size is specified by width and height.earnrupees4you.Methods used: 1.34 - . void setEnabled(Boolean):Enables or disables a button 3.awt. void addActionListener(ActionListener):Adds the specified action listener to receive action events from this button Event used: Public void actionPerformed(ActionEvent) The event is fired whenever a button is clicked.awt. The new location of the top-left corneris specified by x and y. int height):Moves and resizes this component.TextField Constructor used: TextField(int columns) Constructs a new empty text field with the specified number of columns Methods used: 1. void setBounds(int x.lang.Object java. void setEchoChar(char c):Sets the echo character for this text field http://www. int width.com Page .

The new location of the top-left corner is specified by x and y. int y.JComponent javax.swing.com Page . 4. void addTextListener(TextListener):Adds the specified Text listener to receive text events from this text field Event used: public void textValueChanged(TextEvent) The event is fired whenever text of a text field is changed. int height):Moves and resizes this component. void requestFocus():Brings the cursor to the text field 5.2. Class JLabel java. void setFont(Font):Sets a specified font for text field 3. String getText():Returns the text that is presented by this text component 7.Object java.awt.swing. void setText(String):Sets the text that is presented by this text component to be the specified text 6.earnrupees4you.JLabel http://www.awt. and the new size is specified by width and height.35 - . void setBounds(int x.Container javax.Component java. int width.lang.

swing. int height):Moves and resizes this component.awt. void setBackground(Color):Sets the background color of this Panel http://www.awt.Constructor used: JLabel(String text) Creates a JLabel instance with the specified text Methods used: 1.Object java. void setText(String):Sets the text that is presented by this text component to be the specified text Class JPanel java. void setFont(Font):Sets a specified font for the Label 2. The new location of the top-left corner is specified by x and y. void setBounds(int x. and the new size is specified by width and height.com Page . 3.Container javax.36 - .JComponent javax. int width.JPanel Constructor used: JPanel() Create a new JPanel with a double buffer and a flow layout Methods used: 1.swing.earnrupees4you.Component java.lang. int y.

JFrame Constructor used: JFrame(String title) Creates a new. int y. int height):Moves and resizes this component.awt. The new location of the top-left corner is specified by x and y.com Page .Container java.lang.swing. void setVisible(Boolean):Sets the panel visible or invisible 4.37 - . int width. 2.awt.Window java.awt. and the new size is specified by width and height. initially invisible Frame with the specified title Methods used: 1.earnrupees4you.awt.2.Frame javax. Component add(Component comp):Adds the specified component to the panel Class JFrame java. void setVisible(Boolean):Sets the frame visible or invisible 3. void setBounds(int x. Boolean isVisible():Returns true if Panel is visible 3. void setDefaultCloseOperation(int operation):Sets the operation that will happen by default when the user initiates a "close" on this frame http://www.Component java.Object java.

lb2.addActionListener(this). import java.*.add(jt).For Example: import javax.red).addActionListener(this). lb1=new JLabel("").add(lb1).add(jb2). jb1. jp1.jp2.awt.setBackground(Color.*.awt.*.earnrupees4you.add(jb1).event. JButton jb1. jp1. jp2=new JPanel(). jb2. jp1. class Myjframe extends JFrame implements ActionListener. jp1. http://www.swing. Myjframe(String str) { super(str). import java. TextField jt.TextListener { JPanel jp1.jb2. lb2=new JLabel("").com Page . jp1=new JPanel(). jb2=new JButton("BACK").38 - . jp2. jt=new TextField(20). JLabel lb1. jb1=new JButton("NEXT").add(lb2). jp2.

setText(jt. setVisible(true). setDefaultCloseOperation(JFrame. jp2.setText(jt. } } public void textValueChanged(TextEvent t) { lb1.EXIT_ON_CLOSE).setVisible(false). setBounds(0. jp1. add(jp1).500).getSource()==jb1) { jp1. } http://www.setVisible(false).0. add(jp2).jp2.getText()).com Page . } else { jp2.setBackground(Color.getText()).500.setVisible(true).setVisible(true). } } public void actionPerformed(ActionEvent e) { if(e. add(jp2).green). lb2.39 - . add(jp1).earnrupees4you.

http://www. Although components can provide size and alignment hints. if we want to be able to drag and drop the bars away from their starting positions.earnrupees4you. }} Layouting: Lay outing can be done in the two ways either by using LayoutManager or without it. Tool bars that are created using JToolBar must be created within a BorderLayout container. right.40 - . All extra space is placed in the center area. Layouting by using Layout manager: A layout manager is an object that implements the LayoutManager interface and determines the size and position of the components within a container.} class Test { public static void main(String [] args) { Myjframe mj=new Myjframe("My swing application"). bottom. and center. left. A BorderLayout places components in up to five areas: top. Several AWT and Swing classes provide layout managers for general use: BorderLayout BoxLayout CardLayout FlowLayout GridBagLayout GridLayout GroupLayout BorderLayout: Every content pane is initialized to use a BorderLayout.com Page . a container's layout manager has the final say on the size and position of the components within the container.

GroupLayout works with the horizontal and vertical layouts separately. flexible layout manager. but it can also be used manually. The Find window shown above is an example of a GroupLayout. It aligns components by placing them within a grid of cells. allowing components to span more than one cell. and then the user can move or resize the http://www. to a container's changing size. then absolute positioning might make sense.BoxLayout: The BoxLayout class puts components in a single row or column. or language changes. A layout manager makes it easier to adjust to look-and-feel-dependent component appearances. with the state of the combo box determining which panel (group of components) the CardLayout displays.earnrupees4you. however. Consequently. Doing Without a Layout Manager (Absolute Positioning): Although it is possible to do without a layout manager. GridBagLayout: GridBagLayout is a sophisticated.com Page . which contain internal frames are in this category. GroupLayout: GroupLayout is a layout manager that was developed for use by GUI builder tools.41 - . and to different locales. as well as other programs. Layout managers also can be reused easily by other containers. It simply lays out components in a single row. to different font sizes. starting a new row if its container is not sufficiently wide. FlowLayout: FlowLayout is the default layout manager for every JPanel. The layout is defined for each dimension independently. you should use a layout manager if at all possible. each component needs to be defined twice in the layout. If a container holds components whose size is not affected by the container's size or by font. It respects the components' requested maximum sizes and also lets we align components. lookand-feel. CardLayout: The CardLayout class lets us implement an area that contains different components at different times. A CardLayout is often controlled by a combo box. The programmer determines the initial size and placement of internal frames within the desktop pane. and grid columns can have different widths. Desktop panes. The rows in the grid can have different heights. The size and position of internal frames does not depend directly on the desktop pane's size.

getInsets().add(b2).com Page .setBounds(25 + insets. size. //pane is a JPanel object JButton b1 = new JButton("one"). 5 + insets. A layout manager is unnecessary in this situation Another situation in which absolute positioning might make sense is that of a custom container that performs size and position calculations that are particular to the container. 3) Call the Component class's repaint method.add(b3). Insets insets = pane.getPreferredSize(). Creating a container without a layout manager involves the following steps.setBounds(55 + insets. 40 + insets. creating containers with absolutely positioned containers can cause problems if the window containing the container is resized. size. size = b3.left. 1) Set the container's layout manager to null by calling setLayout(null).top. http://www. pane.height). size = b2. However.earnrupees4you.height). b2.frames.left. JButton b3 = new JButton("three"). For Example: pane. pane.width. Dimension size = b1. size. b1. size. and perhaps require knowledge of the container's specialized state. JButton b2 = new JButton("two").top.42 - . 2) Call the Component class's setbounds method for each of the container's children.setLayout(null). pane.getPreferredSize().add(b1).getPreferredSize().width.

com Page .setBounds(150 + insets.right.getInsets().. size. frame.top.setSize(300 + insets.earnrupees4you.left + insets.left.bottom).width + 50.. .height + 20).//In the main method: Insets insets = frame. size. In our project we use Layouting without using LayoutManager http://www.top + insets. 125 + insets. 15 + insets.b3.43 - .

PRODUCT SPECIFICATION http://www.44 - .com Page .earnrupees4you.

Providing more and more language options is useless because they may not be able to read a text written on the screen. Along with it to add more simplicity and to make the machine more user friendly concepts like speech synthesis and speech recognition are added. The same problem exists with the blind people. http://www. Mobile recharge etc are added which are attracting more and more customers. In spite of these advancements in the ATM world. Similarly.com Page . Most of the people are illiterate and even can‟t perform a simple transaction like cash withdrawal due to language bondation.45 - . The performance of the system can be studied on the simulator and then it can be implemented on real world machines.PRODUCT PERSPECTIVES: The real world ATM is continuously developing day by day. So here we are also performing an experiment of speech synthesis and speech recognition.earnrupees4you. various Bill payments. But now a day various new features like cash deposits. In the earlier times ATM was only recognized for cash withdrawal or balance enquiry. the ATM is not successful in rural areas. More and more new and exciting features are incorporated in the machine as per customer‟s increasing needs. The proposed system “Speech controlled ATM” provides all the basic as well as advanced features of a standard real world ATM system. we can also perform other advancements on the simulator before deploying it on the real system. Thus the existing system although growing day by day and fulfilling more and more needs of customers fails in the case when simplicity and user friendliness is measured. PRODUCT SCOPE: The scope of the project are as follows: As the project is a simulator so the new experiments can be performed on it before we implement it on the real world machine.

LAN in our case).  Urban people require both banking features and supplementary services..  Whereas the urban people are literate and can use speech as well as manual techniques. Along with the above features the simulator also demonstrates the additional features like payment of telephone and electricity bills and other services. The simulator must work in a networked environment (i.  Rural people want the basic banking features. Withdrawal.It must also communicate with the requisite servers available in LAN.com Page . transaction details. In our project we have pointed out a new idea regarding user friendliness by introducing the concepts of speech synthesis and speech recognition... deposit.e. USER CLASSES & CHARECTERISTICS: The user can be both rural and urban people and possess the following characteristics:  Rural people are in general illiterate and would like to use the ATM through speech for simplicity. http://www. The project also helps us to understand the Software Engineering principles and Object Oriented Programming principles in a better way. money transfer and balance queries.PRODUCT FUNCTIONS: The software to be designed will control a simulated Automated Teller Machine (ATM) having a capablility to read a card. The simulator software includes also the basic featur es of an ATM viz. a customer console (keyboard and display) for interaction with the customer and a printer for printing customer receipts.earnrupees4you.46 - ..

And to construct this system certain assumptions are taken. So it becomes necessary for our project to work at least in a networked environment. And the server will respond the user at client end appropriately.47 - . The software runs on the client end and the request made by the user at the client end goes for validation at the server end and if it has been validated then the requested transaction is performed at the server and the appropriate message is displayed at the server. so in order to run the application with good look and feel we have used distributed environment as our operating environment. So for this we have implemented our project in a distributed environment which consists of a server end and multiple client ends.earnrupees4you. USER ENVIRONMENT: As discussed above the software will run in a distributed environment having multiple client ends and a single server end.com Page . but then browser was needed to run the program which doesn‟t give a good look and feel. ASSUMPTIONS AND DEPENDIES: Simulation is the process of constructing a computerized model of a real world system.OPERATING ENVIRONMENT: As we know that the real world ATM machines work in a WAN (Wireless Area network). So the user will operate on the client end of the distributed environment from where he will make request and that will be executed on the server end. Although the web based environment can also be used in place of distributed environment. So do as our project has certain assumptions which are as follows: http://www.

48 - .e.  Unlike real world ATM machines there is no cash dispensing. Real world ATM machines work in WAN whereas our simulator works in LAN (i.com Page .e.4 onwards).  Instead of touch screens in real world ATM machines our software uses mouse for selection of options.  For deployment of the software all the client and server ends system must have compatible JDK versions (i. http://www. JDK 1.earnrupees4you. distributed environment).

49 - .com Page .REQUIREMENT AND SYSTEM ANALYSIS http://www.earnrupees4you.

EXTERNAL INTERFACE REQUIREMENTS: USER INTERFACES: The user interfaces can be well defined by the following diagrams: Enters card ATM SIMULATOR SCREEN Prompt to select language LANGUAGE SCREEN Select language through speech LANGUAGE SCREEN http://www.earnrupees4you.com Page .50 - .

COMMUNICATION PROTOCOLS: As defined above the software will work in distributed environment.com . And in Java distributed environment can be deployed by three techniques. MESSAGE SCREEN HARDWARE INREFACES: Hardware interfaces defines how hardware will be used by the user in the product.51 - http://www.earnrupees4you.Prompt to perform transaction TRANASACTION SCREEN Selection through speech Select a transaction TRANSACTION SCREEN After performing the transaction the appropriate message is displayed in a printed from. which are as follows:    RMI(Remote Method Invocation) CORBA(Common Object Request Broker) SOAP(Simple Object Access Protocol) Page . As there is no hardware utility in our project so there is anything such as hardware interfaces.

When the receiver at the server side receives the format it un-marshals it and execute the method at server. The stub packages the parameters to be passed in the remote method and performs machine independent coding. The system on which the client object runs is known as client and the other is known as server.Among the above three techniques we have used RMI(Remote Method Invocation) which permits communication between two Java objects.earnrupees4you. So. The result to be returned is marshaled and transmitted to stub of client side. The process of encoding of parameter is called parameter marshaling. And. the remote object I known as „server object‟.52 - . CLIENT CLIENT STUB SERVER STUB SERVER Call Stub on local Proxy object Send marshaled parameters Call server method Return result Marshaled return values Response values Whenever the client code makes a call to the method of a remote object then the call is made to an ordinary method in the local proxy called stub. where it is un-marshaled and displayed to the client. If we have to access the remote computer then we have to call the remote method of the remote object. The object that calls the remote object is called „client object‟. whereas the remaining two permits communication between Java object and other language object. http://www.com Page . Parameter marshaling is done to convert the parameters into a transmission format. the communication protocol used in our project can be defined by the following figure.

4 onwards) http://www. Windows server 2003)  Front End  Back End : Java (JDK 1.com Page .4 onwards) : MS-Access CLIENT SITE:  Operating System : Compatible Operating System with NOS (e. Widows Xp)  Front End : Java (JDK 1.53 - .g.earnrupees4you.g.INFRASTRUCTURE REQUIREMENTS: HARDWARE REQUIREMENTS: SERVER SITE:  Processor  RAM : Pentium 3 onwards  Hard Disk : 10 GB : 512 MB CLIENT SITE:  Processor  Hard Disk  RAM : Pentium II onwards : 5 GB : 256 MB  Good quality headphone and microphone  Floppy Drive Reader  Printer SOFTWARE REQUIREMENTS: SERVER SITE:  Operating System : Any Network Operating System (e.

54 - . The ATM Simulator will communicate each transaction to the bank and obtain verification that it was allowed by the bank. Withdrawal: This feature allows the card user for withdrawing money. 3) Transactions: The customer will be able to perform one or more transactions. the customer will be required to re-enter the PIN before a transaction can proceed. the ATM will display an explanation of the problem. a transaction will be considered complete by the bank once it has been approved. and the customer will have to contact the bank to unlock it. As soon as the user entry has been authenticated then a session will be initialized for him/her which will end either when the user finishes transactions or he/she aborts the session. If a transaction fails for any reason other than an invalid PIN. and will then ask the customer whether he/she wants to do another transaction.both of which will be sent to the bank server for validation as part of each transaction.FUNCTIONAL REQUIREMENTS: Following are the general functional requirements of our project: 1) Entry: The model will service one customer at a time. 2) PIN (Personal Identification Number) Access: If the ATM Simulator determines that the customer's PIN is invalid. Transaction Details: These features help the card user to obtain last http://www.earnrupees4you. Balance Enquiry: This helps the card user to obtain either a printed or non-printed balance status. If the customer is unable to successfully enter the PIN after three tries.com Page . the card will be locked by the machine. A customer will be required to insert a card and enter a personal identification number (PIN) . Ordinarily. A customer must be able to abort a transaction in progress anytime instead of responding to a request from the machine.

5) Acknowledgements: The ATM Simulator will provide the customer with a printed receipt for each successful transaction. This is known as speech synthesis. and ending and available balance(s) of the affected account. amount. Money Transfer: This helps the card user to transfer the money from his account to another account in the same branch or same bank. time. This is known as Speech recognition. It also provides the printed balance transaction details and an error message if any error is encountered. type of transaction. the ATM system will now be able to recognize spoken commands. http://www. The telephone bill can be paid only to those providers who have coordination with the bank . 6) Speech Recognition & Synthesis: The ATM system will now help the user by guiding him throughout the transaction by giving speech in his or her mother language. account(s).com Page . machine location.earnrupees4you. Deposit: This feature allows the card user to deposit the money in his/her account.ten transactions details of the account in a printed way. showing the date. The services present in the simulator are as follows – Bill Payment: This includes the facility of payment of electricity bill and telephone bill through your ATM. 4) Services: This includes the additional services which can be performed through an ATM Simulator. The customer can now give voice commands in his mother language with the help of a microphone and the ATM machine recognizes those spoken commands and takes the appropriate action. And.55 - .

 User selects one of the transactions either through speech or manually.  System provides a printed acknowledgement depending upon the transaction. Use-case: Withdraw Actor: User  User selects „withdraw‟ either through speech or manually.56 - .  System validates the PIN. http://www.  System performs the transaction.  If the user enters the PIN wrong at fourth time then the system will block user‟s account.com Page .  System prompts the user to enter the relative data for performing the selected transaction.DOMAIN ANALYSIS USE CASES ANALYSIS: Use-case: Card Entry-PIN entry Actor: User  The user enters the card. properly inserted then system prompts the user to enter PIN.  User enters PIN.  If. Use-case: Performing Transaction Actor: User  System displays the available transactions that user can perform.earnrupees4you.  User enters the data.  If the PIN is invalid then the user can re-enter the PIN at a maximum of three times.  The system checks whether the card is properly inserted or not.  System prompts user to enter the amount.  If valid then display the transactions that user can perform.

 System performs & commits the transaction. User enters the amount.earnrupees4you.  System displays the current balance as per the selected choice.  System performs & commits the transaction.  System prompts the user to enter the denominations  System checks the denominations.  System prompts user to enter the target account number.57 - .  System acknowledges user with an updated printed balance details of account.com Page .  System checks the target account number for validation  System prompts the user to enter the amount to be transferred.  User enters the amount.  System acknowledges user with an updated printed balance details of account Use-case: Balance Enquiry Actor: User  User selects „balance enquiry‟ either through speech or manually.  User selects his choice.  System acknowledges user with an updated printed balance details of account http://www. Use-case: Money Transfer Actor: User  User selects „transfer‟ either through speech or manually.  User enters the amount.  System prompts user to enter the amount.  System prompts user whether user wants printed advice or not. Use-case: Deposit Actor: User  User selects „deposit‟ either through speech or manually.  System performs & commits the transaction.

58 - .  System prompts user to enter the consumer number.  System performs & commits the transaction.  System performs & commits the transaction. http://www. Use-case: Telephone Bill Payment Actor: User  User selects „Telephone Bill‟ either through speech or manually. Use-case: Electricity Bill Payment Actor: User  User selects „Electricity Bill‟ either through speech or manually.  User selects for payment.  System checks the consumer number for validation  System displays the last bill details for the consumer number.  System prompts the user for payment.  System prompts the user for payment.com Page .Use-case: Mini Statement Actor: User  User selects „mini statement‟ either through speech or manually.  System displays the last 10 transactions performed on his account in a printed form.  System prompts user to enter the consumer number.  User selects for payment.earnrupees4you.  System acknowledges user with an updated printed balance details of account & bill details.  System acknowledges user with an updated printed balance details of account & bill details.  System checks the consumer number for validation  System displays the last bill details for the consumer number.

arrows to represent flow through the system.STATE CHART DIAGRAM: Tries<=3 Card CARD READER Do: Check Card invalid INTERFACE Valid Do: Prompt for PIN Tries>3 LOCKED PIN entered Successful activation Do: Block Account PIN VALIDATOR Do: Validate PIN valid PRINT INTERFACE Do: Display & Print Acknowledgement message INTERFACE Do: Display &Prompt for transaction Prompt for transaction selection TRANSACTION Do: Perform selected transaction Acknowledgement message ACTIVITY DIAGRAMS: An activity diagram comes under “Scenario based modeling” of analysis modeling. decision diamonds to depict a branching decision and solid horizontal lines to indicate that parallel activities are occurring.earnrupees4you. The UML activity diagram supplements the use-case by providing a graphical representation of the flow of interaction within a specific scenario. http://www.com Page .59 - . An activity diagram uses rounded rectangles to imply a specific system function.

Enter card Not properly inserted Properly inserted Prompt for re-entry of card Select language Enter PIN Invalid PIN Valid PIN No.earnrupees4you.com Page .60 - . of tries>3 Select a transaction Perform selected transaction Update databases Acknowledgement/error message http://www. of tries<=3 No.

It provides a model by which we can convince our customer for the software to be developed.com Page .61 - . system design is the last work in modeling phase and it also provide a base for construction phase. FUNCTIONALITY: In single word system engineering implements „quality‟ to our software.SYSTEM DESIGN: INTRODUCTION: System Design is generally a collection of principles. In context of a software engineering it is the technical kernel. Once the software requirements are analyzed and modeled. http://www.earnrupees4you. The main goal of design engineering is to define a model or representation that can be used to fulfill the customer about the satisfactory of the constructed software. concepts and practices that lead to the development of a high quality system that lead to the development of a high quality product.

earnrupees4you.SEQUENCE DIAGRAM: USER Enter card ATM SCREEN VALIDATOR DATABASE Card details(not visible) Details from card invalid status Relevant details from database Prompt for PIN (valid) User ready Enters PIN Invalid (tries<=3) PIN status Already stored PIN Valid (Prompt for trans.com Page .) Fig: Sequence diagram for card entry and entry of PIN http://www.62 - .

USER ATM SCREEN SYSTEM DATABASE Valid (Prompt for trans.63 - .) User ready selects transaction Selected transaction & Requisite data Acknowledgement Data from database Perform transaction Updating of data User session ends Fig: Sequence diagram for performing transaction http://www.com Page .earnrupees4you.

earnrupees4you.com Page .64 - .CLASS DIAGRAMS: Myjframe JPanel JButton JLabel TextField Playing_Sound Font Int AudioInputStream DataLine File Clip Is placed within & Is placed within & Is part of DateTime Playing_Sound Long String PrintPanel PrintRequestAttributes +Myjframe (String) +senseCard() +textValueChanged(TextEvent) +actionPerformed(ActionEvent) +Playing_Sound (String) +Play () +Stop () Is part of DateTime DateFormat Date String +userTalked(String) +startThread () Is used to build +Datetime () +getDate () +getTime () AtmSimulatorFloppy +main (String [ ]) http://www.

com Page .65 - .USER INTERFACE DESIGN http://www.earnrupees4you.

com Page .earnrupees4you. It defines how a user can interact efficiently with the software. The interface must also fulfill the requirements that had been stated at the requirement elicitation and requirement inception phase. USER INTERFACE DESIGN: The user interface can be defined by the following snapshots of the user interface of our project. This interface must user friendly as much as possible.66 - . http://www. It must not force unnecessary stress on the end user and must be easy to use.INTRODUCTION: User Interface Design means the interface through which user can interact with the software and perform it requisite operations.

com Page .1) The above interface defines the “Welcome Screen of our project”. As soon as the user enters the card properly the next screen is displayed. http://www. The software remains in the screen until the user doesn‟t insert the card (i.e.67 - . floppy drive).earnrupees4you.

earnrupees4you. After selecting the language the next screen is displayed. English for English and Hindi for Hindi.com Page . http://www.2) This screen prompts the user to select the language. It can be done by either clicking on the respective button or by speaking the choice i.e.68 - .

earnrupees4you. As soon as user will enter his PIN he/she will be guided to next screen. http://www.3) The above screen prompts the user to enter his/her 4-digit PIN (Personal Identification Number).com Page .69 - .

70 - .com Page .4) The above screen will be displayed only when the user has selected his language as “English”. Follow the guidelines from the software to select one of the options through speech.earnrupees4you. http://www.

5) The above screen defines the basic banking transaction features under “Banking”.earnrupees4you. http://www.71 - .com Page . In this page any one of the options can be selected either by clicking on it or by speaking the word which will be pronounced by the software for each of the option.

com Page . http://www. After entering the amount he can either click “Yes” or speak “Yes” which will be automatically recognized by the software.6) The above screen prompts the user to enter the amount to withdraw.72 - .earnrupees4you.

7) The above screen will help the user to deposit the money into his account. The further steps is same as discussed in the previous step. For this he has to first enter the amount followed by denominations.73 - .earnrupees4you.com Page . http://www.

8) The above screen helps the user to transfer money from his account to another persons account belonging to this same branch.com Page .earnrupees4you.74 - . http://www. And the warning will be displayed only when if the user doesn‟t have enough money to transfer.

earnrupees4you.9) The above screen has been displayed as a result of selection of “Balance enquiry” on step 5.com Page . If the user selects “Yes” then he will get a printed statement else he will forwarded to the next screen.75 - . http://www.

earnrupees4you.com Page .76 - .http://www.

10) The above screen will be displayed when user selects “Services” from the screen displayed on step 4.earnrupees4you. http://www. It helps the user to pay either electricity or telephone bill.77 - .com Page .

11) The above screen prompts the user to enter the 10 digit consumer no. for paying his telephone bill. After entering it he may either click “Yes” or speak “Yes”. If he does so then the next screen will be displayed. And if he selects No then he will be send to screen at step 5.


Page - 78 -

12) The above screen defines the last bill details of the customer. To pay the bill the user may select Yes otherwise by selecting No he will get a printed copy of the above bill.


Page - 79 -

13) The above screen defines the procedure for paying the electricity bill. And the rest is same as step 12 and step 11.


Page - 80 -

14) The above screen guides the user in the regional language through speech and prompts him to enter the PIN. http://www. This screen will be displayed only when the user has selected his language as Hindi.com Page .earnrupees4you.81 - .

15) The above screen prompts the user to select any one of the above operations in regional language.earnrupees4you. http://www.82 - .com Page .

com Page .earnrupees4you.83 - . The further steps is same as discussed in the step 8 http://www.16) The above screen will help the user to deposit the money into his account and this can be done in regional language. For this he has to first enter the amount followed by denominations.

After entering the amount he can either withdraw it by speaking or clicking the word as per the guidelines from the software.84 - .com Page .17) The above screen prompts the user to enter the amount to withdraw. http://www.earnrupees4you.

com Page .earnrupees4you.85 - .18) The above screen enters the consumer no against the electricity bill payment. http://www.

earnrupees4you.19) The above screen defines the last unpaid bill details of the customer. http://www.86 - .com Page .

http://www.87 - .20) It prompts the user to enter the consumer no for paying the telephone bill.com Page .earnrupees4you.

88 - .com Page . http://www.earnrupees4you.21) The above message will be displayed only when the user has entered wrong PIN.

http://www.com Page .22) The above message will be displayed only when the user doesn‟t have enough money to withdraw.89 - .earnrupees4you.

90 - .earnrupees4you. is entered wrong in case of money transfer.com Page . http://www.23) The above message will be displayed only when the target account no.

91 - . http://www.com Page .24) The above message will be displayed only when there is not sufficient balance to make the transaction.earnrupees4you.

com Page .earnrupees4you.25) Invalid consumer no. http://www. entered.92 - .

com Page .26) No pending bills.earnrupees4you. http://www.93 - .

27) It will be displayed only when a user has entered his PIN wrong three times.94 - .earnrupees4you.com Page . http://www.

IMPLEMENTATION http://www.earnrupees4you.95 - .com Page .

Then for checking the functioning in the distributed network we have deployed the software in network discussed above.e. The rapid development is achieved by component based construction process. http://www.earnrupees4you. DEVELOPMENT ENVIRONMENT: Regarding the development environment of our project. The primary goal of implementation is to write source code to its specification. it has two phases – first on a stand alone system and second on a peer-to-peer network (containing two computers). The goal can be achieved by making the source code as clear and straightforward as possible. 60 to 90 days).INTRODUCTION: The implementation phase of software development is concerned with design specification with source code. PROTOTYPING: RAPID PROTOTYPING: The RAD Model is an incremental process model with a rapid development phase.com Page . Initially we have developed the front end of the software in modules. If the software requirement is well defined and project scope is constrained then RAD model can develop the project in a short time duration (i. with one system as client and other system as server.96 - . databases and its access through Java) or we can also say server end. testing and maintenance can be eased. The code has to be easily verified. so that debugging. Then we have designed the back end (i. It is a high speed adaptation of waterfall model.e.

of human resources and high technical risk is associated. At third increment spell check feature will be added and so on. The next increment must increase the functionality of the core product. INCREMENTAL PROTOTYPING: It combines waterfall model in an iterative fashion.97 - . But on the other hand requires large no. Initially in the first increment only basic file management. http://www. Thus the first increment in an incremental model is often the core product. The core product refers to the basic functionality and the supplementary functionality are provided at the later versions. documentation and editing features will be available. For example consider word processing software developed using this paradigm. As result of used plan for next increment is produced. At second increment sophisticated file management. The core product is used by the customer. This process continues till the complete software is not provided.earnrupees4you. Each increment adds some additional functionality to software. It uses the linear sequences in staggered form.Team n (Modeling) Team n (Construct) Team 2 (Modeling) Team2 (Construct) Deployment Communication Planning Team 1 (Modeling) Team 1 (Construct) Fig: Rapid Prototyping It requires less time and workload can be distributed. editing and documentation will be provided.com Page .

98 - . It is of two types:  Prototyping Model: Often a customer defines the objective of software.earnrupees4you. To overcome the problem. which can accommodate a product explicitly and can modify itself with the product with the time.com Page . In such cases. If during the development of software the business or product requirement changes. but is unable to define the complete details about input. only a limited version product can be provided.Functionality C P M K D Increment n C P M K D Increment 2 C P M K D Increment 1 Time Fig: Incremental Prototyping EVOLUTIONARY PROTOTYPING: As we know that software occupies time. http://www. we require a software process model. Also the tight deadlines prevent the completion of comprehensive project. processing and output. then it leads to the development of software to be unrealistic. In such cases a prototype model is beneficial as it guides the developer and the customer when the requirement is indistinct.

hardware-based platforms. The first release may be prototype and further release is a sophisticated software product. A platform is the hardware or software environment in which a program runs. So C doesn‟t support portability. PORTABILTY: Platform for any software is defined as the combination of processor and operating system over which the software runs. http://www. Most other platforms are described as a combination of hardware and operating system.com Page . So we can say that spiral model results in development of software in evolutionary releases. For example if we construct a program in C language which is running on a platform (Intel + Windows Xp) and if we run the same program on a computer having LINUX operating system then the program will not run.99 - . Platform dependent software is those that will run only on that platform for which it has been constructed. The Java platform differs from most other platforms in that it's a software-only platform that runs on top of other.earnrupees4you.Communication Deployment Quick Plan Construction of Prototype Quick Design Fig: Prototyping Model  Spiral Model: A spiral model is an evolutionary process model that couples the iterative nature of prototype model and semantic and control aspect of waterfall model. It produces the rapid development of increment of the software.

Java itself is a portable language (supports platform independency). The only thing that can violate the portability of our project is –if the version of JDK is less than 1.100 - .The Java platform has two components: The Java Virtual Machine (Java VM) The Java Application Programming Interface (Java API) The Java API is a large collection of ready-made software components that provide many useful capabilities. such as graphical user interface (GUI) widgets. The following figure depicts a Java program. However. JAVA. Regarding our project. smart compilers. In the project first Java will create a byte code (CLASS file) of our source code and after that this byte code can be made to execute on any system irrespective of the platform. that's running on the Java platform. Fig: Java as a programming language & a platform As a platform-independent environment.4.e. Java can be a bit slower than native code. well-tuned interpreters. the Java API and Virtual Machine insulates the Java program from hardware dependencies.earnrupees4you. As the figure shows. The reason for portability is the technology used i. http://www. and just-in-time byte code compilers can bring Java's performance close to that of native code without threatening portability.com Page . such as an application or applet. it is portable. The Java API is grouped into libraries (packages) of related components.

com Page .101 - .TESTING http://www.earnrupees4you.

It can be carried out after the coding or before the coding. Testing of each module can be carried out in the following parts:     Module Interface Local data structure Independent paths Boundary values Error handling statements  Interface Local Data Structures Module Independent Paths Boundary Values Error Handling Test Cases Fig: Unit Testing The unit testing begins with the testing of modules interface. The unit testing mainly focuses on the internal processing level and data structure of a component. A component level design act as guide for testing of modules.102 - .com Page . After this the data stored in local data structures are checked for http://www. The unit testing tests the control paths to uncover errors within the boundaries of modules.TESTING STRATEGIES: UNIT TESTING: Unit Testing is a testing mechanism that tests the modules of our software. In this the flow of information from or to module interface is checked.earnrupees4you.

In which all the components are combined and structure is obtained and afterwards testing is performed.com Page . INTEGRATION TESTING: Integration testing is a systematic technique that describes software architecture and at the same time checks the errors encountered in the interfaces. There are two types of incremental testing:   Top-down incremental integration testing Bottom-up incremental integration testing Top-Down Integration Testing: Top-down incremental testing is a mechanism for constructing software architecture and testing at the same time. In this approach the process of integration begins from the top where the main control is taken first. After that all independent paths are checked whether they are checked at least once.integrity.103 - . Depth first integration and Breadth first integration are two approaches for integration of modules. At last the tests are conducted for the error handling statements for identifying any errors (if present) and error handling routines. But the best way is to follow incremental testing in which the program is constructed and tested increments and errors can be easily isolated and corrected. The main control module act as a driver and the module sub-ordinate requires are replaced by stubs. http://www. After this the boundary values are checked against the control flow.earnrupees4you. The main objective of integration testing is to use the unit tested modules and design architecture as depicted by design. The normal tendency is to follow non-incremental integration testing. Then as we move towards bottom each module is integrated and simultaneously tested. data structures at the boundaries of input domain.

e. Orthogonal array testing.Bottom-up Integration Testing: In bottom-up integration the integration of module begins from the lowest level. so stubs are eliminated. Data structures and data access to external database error. By applying black box testing tester will be able to get a test case that checks the functionality of ones program.earnrupees4you. FUNCTION TESTING: Black Box testing or Functional testing is a mechanism to check the functionality of our program. Equivalence partitioning. Black Box testing can be used to find the following errors:      To find incorrect or missing functions. Black Box testing is done to check that software functions are operational i. It can be performed by following four methods:     Graph Based methods. Behavior and performance error. Initialization and termination errors. It is usually applied at the later phase of testing. http://www.com Page .104 - . Interface errors. Since the module at the lowest level are already integrated and tested. input is properly accepted & output is correctly produced & the integrity of the external information is maintained. Boundary value analysis.

Through this it is checked whether all system elements have been properly integrated and perform allocated functions.com Page .earnrupees4you.  Security Testing: It tests whether the security measures possessed by our software is capable of stopping the illegal access.  Stress Testing: Stress testing checks the stress that can be beard by our software. the logical control flows and details. TESTING CONSIDERED: In our project we have performed the following testing:     White Box Testing Black Box Testing Unit Testing Integration Testing Initially we have tested the unit modules.e. So it allows a tester to cause faults in various cases and look for the resume duration. For this the tester runs the software with abnormal quantity.  Performance Testing: Performance testing is usually done to check the performance of program at run time. It includes the following testing:  Recovery Testing: If there is a system fault then the system must resume processing within a certain period of time. frequency and volume of resources. For this hardware and software instrumentation is needed.SYSTEM TESTING: System testing is actually a series of different tests whose primary purpose is to fully exercise the computer based system. And within each module we have performed black box testing to check whether the modules is accepting the input(zero or many) or not and against that input it is producing correct output or not. If it is producing the output but it is logically wrong then white box testing is performed to check the internal functionality of modules i.105 - . http://www.

At the final step the entire system is tested.earnrupees4you. In this we have integrated the modules starting from bottom and the cluster is tested.After performing unit testing on all modules we integrate them to form big modules. Here we have used incremental bottom-up integration testing. http://www.com Page .106 - .

FUTURE WORK http://www.107 - .earnrupees4you.com Page .

http://www.  The use of Bio-metric authentication (finger print) can import more security as the card and PIN will not be used further.com Page .earnrupees4you.The future work that can be done in the project are as follows:  More speech patterns can be stored to import security.108 - .

com Page .109 - .earnrupees4you.CONCLUSION http://www.

And in these six months we have implemented the software in such a way that it fulfils all the objectives that had been stated in the first six months. regarding simulation.…functioning features and services provided). Having an ATM Simulator as a major project helps me to better understand the concepts of Object Oriented Programming principles.As a matter of fact this project is completed in twelve months and this duration is divided into two sections. In this duration I have tried to plan the simulator in such a manner that it not only covers all the features and facilities of modern real ATM but an enhancement is also suggested. before they are equipped on the real world ATM machines. http://www. Software Engineering principles and concepts regarding simulation and modeling. Along with these we have also learned some concepts of RMI (Remote Method Invocation) and JDBC (Java Database Connectivity) in Java.g. The use of speech synthesis and speech recognition helps the software more user friendly.earnrupees4you. The speech synthesis guides the user for performing the transactions and speech recognition facilitates the user to perform the transaction through speech.com Page . simulators and needs of simulation. Also we have performed the different testing strategies. planning and literature survey and next six months of implementing it. the theoretical section where I have learned lots of things regarding ATM machines (e.110 - . As speech synthesis will guide them and speech recognition will allow them to use their speech to perform transactions. six months of collecting information. This simulator also provides the environment in which new enhancements can be performed on it. This speech mechanism thus helps the rural people to use the ATM without extra overhead of remembering the procedure for maintaining the transactions. First.

com Page .111 - .earnrupees4you.REFERENCES http://www.

com  www.sun.google.BOOKS REFFERED:  JAVA 5 Programming (Black Book) by Kogent Solutions.earnrupees4you.5 (Advanced Features) by Cary Hortsman & Gray Cornell.java.  Database Concepts by Navathe.com  www.com http://www.  Core Java 1.com Page .  Software Engineering Principles by Roger Pressman WEBSITE REFFERED:  www.cloudgarden.112 - .  Database Concepts by Korth.

http://www.com Page .earnrupees4you.113 - .

114 - .earnrupees4you.com Page .http://www.

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->