Description of Automated Pump System Processes

Note to the Customer: Many Compontent of the Gas Pump and the Gas Pump interface have been contracted out to a hardware company as micro-controllers are out of the scope of our company. We realize that to demonstrate how the main computer is going to work and its features that there will have to be some kind of pump transactions, this will be done through 'stubs' that will simulate gas transactions from the pump. Any processes that will be contracted out will be labeled and any process that only a 'stub' will be written will also be labeled. Sorry about the inconvienience.

This is exactly what we expected.


Data flow diagrams below represent the system requirements.

Context Diagram

The Context diagram represents the entire system as a single process. The Automated Pump System as a top level process communicates with the Customer. All the data flows between the Automated Pump System and the customer in each direction. The Customers provides the pump with the following information: Credit/Debit Card information, Desired type of gas and desired amount of gas. The Automated pump process will provide the customer with all the information needed to complete the transaction as shown on the diagram.

 

Webmaster's note: For some reason these first two diagrams and three others near the end of this document show up as solid black under Netscape Gold 16 v3.01 for PCs. Please try re-encoding them with a different program next time.


Level 0 Data Flow Diagram (DFD)

The Automated Pump Process is further refined in a lower level data flow diagram - Level 0 data flow diagram. The top level process expands to Configure Pump process and Customer Transaction Process. The level 0 Data Flow Diagram also shows the Data Stores which represent different databases that will be implemented to support the system. Four basic databases are required: System Configuration database, Rejected Cards database, Transaction database and the Bank Database.

 

System Configuration Database Communication

The System Configuration database is used by the Configure Pump process to configure pumps. The process checks the database in regular intervals to get an update. Depending on the data read from the database the pump is able to determine:

The database is updated by the main computer for price changes and fuel talk levels. This information is crucial for pump operation. The Configure Pump Process will also update this database each time fuel was pumped so that the current pump levels can determined.

Rejected Card Database Communication

The Rejected Card Database is updated by the Customer Transaction process each time a credit card was rejected by the system when the user used a stolen card. The database will also inform the process what action is to be taken. The card might be returned to the customer or kept inside the pump if a stolen VISA card was used.

Transaction Database Communication

The Transaction database is used by the Customer Transactions process to store the transactions. For each transaction an entry will be made by the process to the database. All the information to identify each customer's transaction will be written to the database. The contents of this database will be used by the main office.

Bank Database Communication

The Bank Database is a database that is provided by the bank. The database contains the bank information necessary to get the credit information and to check the if there are funds available if a debit card is used. The information flow is shown on the Level 0 DFD.

The Level 0 DFD also shows all the communication of the processes with the outside world, specifically the customer.  

Level 1 Data Flow Diagram

The Level 1 DFD refines the Configure Pump and the Customer Transaction processes that was shown on the Level 0 DFD. The Configure Pump process is broken down to Set Pump and Check Tank processes.

1.1 Set Pump Process

(a stub will be written so the changes made by the main computer can be seen)

The Set Pump process is executed in regular intervals. If the pump is idle the Set Pump process is executed every 5 minutes. If the pump is in use the Set Pump process gets executed at the end of each transaction. This is done so that the pump prices can be updated rapidly by the system whenever necessary. This also gives enough flexibility so the pump can be shut down in case of an emergency. As shown on the DFD the information is obtained by the process from the System Configuration database.

1.2 Check Tank Process

(a stub will be written so the changes made by the main computer can be seen)

The Check Pump Process is a process that is responsible for checking the tank levels. This is a simple process but extremely important for the pump operation. If the tank levels are too low the Configuration Database data will inform the pump about this situation. The pump will remove the type of gas in question from the list of available gas types. The customer will not be given the option to use this type of gas.

 

 

The Customer Transaction Process is refined further as well into the following processes: Process Card, Choose type of gas, Enter amount of gas, Pump Gas, Record Transaction, and Update Bank process.

2.1 Process Card

This process is responsible for credit and debit card operations. The process takes as an input data given by the customer when the card is inserted to the pump. The process extracts the following information from the card provided: Cardholder's full name, Credit or Debit card number, Expiry date. Also in case of Debit Card the Personal Identification Number (PIN) is needed and the customer will be prompted to provide that.

The information obtained will be used to check for credit necessary to complete the transaction. Also if stolen Credit card is encountered the Rejected Card database will be updated and the appropriate action will be executed.

2.2 Choose type of gas

(a stub will be written here, it will allow for different transaction with different gas types to be entered)

The customer will be prompted by the system to select type of gas desired. The options available to the customer will depend on the tank level figures provided by the Configuration Database. The Choose type of gas process will use the information provided by the user and the database.

2.3 Enter amount of gas

The user will be given a choice as to what amount of gas is desired.

The options will be pre-selected amounts (i.e. $5, $10 etc.) or manual. The Enter amount of gas process will give these options to the user and register user's input.

2.4 Pump Gas

(this will be a simple stub)

This process is responsible for updating the screen for the current amount of gas and current transaction total values. The user will release and press the handle ojn the pump as desired and the gas will flow will reflect that . Also on the screen the current number of liters and the current dollar amount for transaction will be updated accordingly.

2.5 Process Record Transaction

(information to the user will be a simple stub , but the transaction database will be updated, no ack will be implemented {the hardware company will look after this} )

This process is responsible for updating the Transaction database and also for giving the transaction information to the user. This process is also responsible for production of the receipt.

 

2.6 Update Bank

(this will be a stub that will just show messages to the screen as to what would be occuring if a communication line was set up with a bank)

The Update Bank process updates the bank with the transaction information. The funds will be debited or credited from/to the appropriate account. If the user uses a debit card and a smaller amount of gas was pumped than originally selected the difference will be credited back to the customer's account.

This is perfect.


 

2.1.1 Identify Card

(this will be done using a stub where we will use our own algorithms to figure out what type of card is being used, we are unable to obtain the actual algorithms from the approriate card companies)

The Identify Card precces will use an algorithm provided by each of the apprpriate Card companies to decide what type of card has been entered. This will allow the pump to calll the appropriate number to get verification on the card. The type of card that has been entered will be return and a messaged will thank the user for entering their card. (i.e. "Thank for entering you VISA card")

 

2.1.2 Check Credit

(this will be a stub where we check the a flag from a pre-made list that will be used for simulation)

This process checks to make sure that the card that has been entered is vaild. The reqiured card information is entered and then the bank is called. If the card is okay then an okay status is return to the user. If the card is not okay then the appropriate information is entered in to the Rejected Card data base.

 

2.5.1 Generate Receipt

(this will be stub where the information will probably be copies to a file or outputed to the screen)

The Generate Recipt process is used to print a recipt to the customer with all the valid information on it from the transaction.

 

2.5.2 Update main Computer

(the ACK will not be implemented as this will be done in hard ware so we will write a stub and assume the main comuter is okay, if time permits a stub may be written to simulate the main computer failing but this can not be assured)

This process is used to update the main coputer so that it knows what has recently happen. This is also used to keep track of sales that have occued during the day. An acknowledgement is returnto make sure that the main computer is still up and running, if the Ack is not received then the pump will keep trying to send its data and will not work unless it receives the acknowledgement from the main computer (transaction database).

 

2.5.3 Update tank level

The Update tank level process let the main computer know how much gas has been used up in the last transaction, this is neccessary to make sure that the tank are not run empty.

This is great because we definitely don't want a tank running empty.


 Back to top

Back to interface index