Presentation is loading. Please wait.

Presentation is loading. Please wait.

Processes for OO Software Development

Similar presentations


Presentation on theme: "Processes for OO Software Development"— Presentation transcript:

1 Processes for OO Software Development
A Use Case Model for Jiffy Stop Gasoline Station and Convenience Store 555 Alafaya Road Orlando, Florida Prepared by Dr. David A. Workman COP 4331 & EEL4884 Processes for OO Software Development June 20, 2002 Revised: March 17, 2008

2 Table of Contents System Overview Use Case Specifications
Scope Business Case Concept of Operation Use Cases & Actors Use Case Flow System Interfaces Gasoline Pump Store Cashier Credit Institution Use Case Specifications Pay for Gasoline Pay By Cash Issue Cash Receipt Pay By Credit Manage Accounts Dispense Gasoline Issue Refueling Receipt Requirements Traceability Glossary March 17, 2008 (c) Dr. David A. Workman

3 1. System Overview 1.1 Scope 1.2 Business Case
The purpose of this document is to present the gasoline refueling scenarios at the Jiffy Stop Convenience Store from the motorist’s perspective. This document is intended for store management to provide the operational insight necessary to improve and maintain good service to vehicle refueling motorists. This document may also be used by simulation developers as a description of the functional capabilities and external interfaces for Jiffy Stop motorist service operations. 1.2 Business Case Management of Jiffy Stop Convenience Store has been receiving a persistent stream of consistent complaints from motorists about the inconveniences they suffer when purchasing gasoline. To help identify the potential problems with their gasoline service, management has commissioned a study to model this part of their business operations. This document is the first deliverable of that study. Preliminary analysis of Jiffy Stop’s operations, based on the models presented in this document, are inconclusive and management is proceeding with plans to develop a simulation tool to enable a more precise analysis of the possible sources of Jiffy’s operational inefficiencies. Unless management can identify the cause of these complaints, motorists will slowly migrate to the competition (DinoServ on the other side of the intersection with Alafaya) and Jiffy Stop will have to declare Chapter 11. This project is management’s only hope to stay in business (aren’t you convinced, now?) March 17, 2008 (c) Dr. David A. Workman

4 Fig. 1.1 Use Case Diagram for Jiffy Stop
Vehicle Refueling System Credit Accounts Pay By Credit «includes» Manage Account * * «specializes» Issue Refueling Receipt * * Motorist «uses» Pay For Gasoline «specializes» Pay By Cash NOTES: Make Payment has subordinate specialized use cases, Pay Inside and Pay Outside. Dispense Gasoline, while initiated by the Customer, cannot proceed until Authorize Transaction has been completed. Complete Transaction notifies the Store Cashier and Financial Agent that the transaction has completed successfully and transmits information about the dollar amount and gallons dispensed. * * Vehicle «includes» Dispense Gasoline Issue Cash Receipt March 17, 2008 (c) Dr. David A. Workman

5 1. System Overview 1.3 Concept of Operation
The modeled scenario begins when the motorist exits his/her car and walks to the gas pump to start the refueling process. An LED display on the gas pump interface provides instructions to guide the motorist through each step of the refueling scenario. Initially, as part of the Pay for Gasoline uses case, the motorist is prompted to select a method of payment: pay by cash, or pay by credit. Only these two options are available. The motorist responds by pushing a button corresponding to the payment option. In the Pay-by-Cash use case, the motorist must leave the pump, enter the convenience store, pay the Cashier for the amount of purchase, then return to the pump to refuel the car. The gas pump will stop automatically when the purchase amount has been reached. A receipt is always issued (use case Issue Cash Receipt) by the Cashier for cash transactions. In Pay-by-Credit, the motorist must swipe a credit card at the gas pump and wait for an authorization message to appear on the LED display. Authorization involves electronically verifying the credit card information via the on-line Credit Accounts system (use case Manage Account). A debit transaction is issued to the motorist's account upon completing of the refueling operation (Manage Account). Once payment has been made, the pump instructs the motorist to begin refueling by selecting one of three octane grades: Flamo-Plus, Flamo, Flamo-Minus. Refueling involves removing the gas nozzle, dispensing the gasoline, and replacing the nozzle when finished. Finally, the gas pump produces a refueling receipt (use case Issue Refueling Receipt) of the transaction at the motorist’s option. Once the receipt has been printed, or the motorist has chosen “no receipt”, the refueling scenario is complete and the motorist can leave the place of business. March 17, 2008 (c) Dr. David A. Workman

6 Fig. 1.2 Use Case Flow March 17, 2008 (c) Dr. David A. Workman
Pay By Cash Issue Cash Receipt Dispense Gasoline Issue Fueling Receipt [receipt accepted] [ cash ] Pay for Gasoline [receipt denied] [ credit ] Update Credit Account Pay By Credit Validate Credit Account Dispense Gasoline March 17, 2008 (c) Dr. David A. Workman

7 Fig 1.3 System Architecture and Interfaces
Convenience Store (and Cashier) Pump Station motorist Credit Accounts March 17, 2008 (c) Dr. David A. Workman

8 1.4. System Architecture and Interfaces
Pump Interface The motorist interface to the gasoline pump under study is depicted in Figure below. A typical motorist transaction begins when the pump is in a “ready” state and is continuously displaying the message to “select payment method.” Two buttons on the pump control panel clearly mark the choices of “Pay Cash” and “Pay Credit”. See Notes View for further discussion. LED Message Display Price and Quantity Display Select Flamo Minus Select Flamo Select Flamo Plus Pay Cash Pay Credit The LED Display is an output-only device that presents instructions to the motorist in all interaction scenarios. A response to every input action by the motorist is presented via this display. The LED Display, Pay-Credit Button and the Card Reader are the interface elements used in the Pay-By-Credit use case. The LED Display and Pay-Cash Button are the interface elements used in the Pay-by-Cash scenario. The Fuel Grade Select Buttons, the Price and Quantity Display, the Gas Nozzle and the LED Display are used in the Dispense Gasoline use case. In this scenario, the Price and Quantity Display always shows the sale price and number of gallons dispensed. It is updated every second while the lever on the gas nozzle is “On”; this applies only if a gasoline grade has been selected and the nozzle has been removed from its cradle. The LED Display, the Yes and No Buttons, and the Receipt Printer are the interface elements used in the Issue Receipt use case. Once the gasoline has been dispensed (signaled by returning the nozzle to its cradle), the LED displays a message querying the motorist whether or not a receipt is desired. Based on the motorists response via the Yes/No Buttons, a receipt may be printed. After this scenario, the pump returns to its original “ready” state displaying the initial instruction message for the next motorist. Card Reader Gas Nozzle And Hose Receipt Dispenser Yes No March 17, 2008 (c) Dr. David A. Workman

9 1.4. System Architecture and Interfaces
Cashier Interface The Pay By Cash scenario requires the motorist to enter the convenience store and pay cash for the amount of gasoline to be purchased. The cashier then presets the dollar amount at the pump and gives the motorist a receipt. The motorist returns to the pump and begins the Dispense Gasoline scenario. See the Notes View for more details. Convenience Store Pump Station Pump Console Display (PCD) Cashier motorist In this scenario, the motorist waits for access to the cashier. The interaction begins by the motorist identifying the pump (PmpId) and how much gasoline he/she wants to purchase(P-Amt) (e.g. “$10 on pump 7”). The motorist pays with cash in an amount equal to or greater than the amount of purchase(P-Amt). If any change is due, the Cashier returns the change and a receipt of the cash transaction. Then the Cashier selects the pump identified by the motorist and enters the purchase amount via the PCD – when the Cashier presses the “Reset” button on the PCD, the purchase amount is sent to the pump station where it is recorded – this completes the Pay-by-Cash use case. The pump station responds by displaying the instruction on the LED, “Begin Refueling by Selecting Grade.” Cash Register Figure Cashier Interfaces March 17, 2008 (c) Dr. David A. Workman

10 1.4. System Architecture and Interfaces
Credit Accounts Interface In the Pay By Credit scenario, the motorist is prompted to swipe a credit card through the Card Reader at the Pump Station. The account number(Cust-Accnt), and the authorizing financial institution id number (Cust-FID) are read from the card. Using this information, the pump station activates the Manage Accounts scenario which connects the pump to the motorist’s credit institution through the Financial Network. An Open transaction is issued on the motorist’s account and the available credit balance is retrieved(Cust-Bal). The credit balance is used to initialize the amount of purchase (P-Amt), as in the Pay By Cash scenario. If P-Amt is zero (no credit available), the pump station issues the message, “Authorization Denied! Select another payment method.” and returns to the “ready” state. If the available credit is not zero, then (P-Amt) is set to the min( $50, Cust-Bal) and the motorist is instructed to “Begin Refueling by Selecting Grade” and thus ending the use case. (See Notes for more details.) Pump Station motorist Credit Institution Upon completion of the Dispense Gasoline scenario, the Pay For Gasoline scenario sends a Debit transaction to the Financial Institution for the dollar-amount of the gasoline actually dispensed. The connection is closed and the motorist is queried for a sales receipt. LED Financial Network motorist Card Reader Figure Cashier Interfaces March 17, 2008 (c) Dr. David A. Workman

11 2. Use Case Specifications
2.1 Pay For Gasoline 2.1.1 Purpose: The purpose of this use case is to coordinate interaction with the motorist to enforce the refueling protocol of: (a) purchasing the gasoline via one of two payment scenarios , cash or credit; (b) dispensing the gasoline in the amount of purchase; and finally (c) printing a receipt, if requested. 2.1.2 Pre-conditions: The pump must be in the “Ready” state for this scenario to begin. 2.1.3 Nominal Scenario (See Figure 2.1) Display “Select Payment Method” on LED. (a) Button(Pay Cash): Perform Pay-By-Cash scenario. (b) Button(Pay Credit): Perform Pay-By-Credit scenario. Both sub-usecases define the dollar amount of purchase (P-amt). If amount of purchase > 0 then :Perform Dispense-Gasoline; Else Alternative scenario. Perform Issue-Receipt. If (Pay-By-Credit) then 5.2 Send Open(Cust-Accnt) to Credit Accounts(Cust-FID) Send a Debit(Cust-Accnt, amount dispensed (D-amt) ) to Credit Accounts(Cust-FID) Send Close(Cust-Accnt) to Credit Accounts(Cust-FID) Log Transaction and Repeat from 1. See Notes View NOTE: Every transaction is logged to a Sales Log file for management and accounting purposes. The information written to this file is: Transaction Id (TransID): a sequence number that starts at “1” at midnight. Transaction Code (TransCD): indicates “nominal” or “aborted” Date & Time of the transaction Pump Id (PmpID) Payment Method (PayMeth) Purchase Amount (P-Amt) Transaction Amount (D-Amt) Transaction Quantity(Q-Amt) Gasoline Grade( Grade ) Price-Per-Gallon( PPG) March 17, 2008 (c) Dr. David A. Workman

12 Fig 2.1 Pay For Gasoline March 17, 2008 (c) Dr. David A. Workman
15: Display “Select Payment Method” Update Account Controller 9a: Display “Thank You!” 4: Display “Select Grade” 12: Open (Account) 13: Debit (Account, Amt ) 14: Close (Account) 1. “Select Payment Method” LED Display 6: Display “Receipt? (Yes|No)” 11: Execute(Credit) 2a. Press 2a. Press 3: Execute (Cash) Pay-By-Cash Button Pay Cash Controller 5: Execute 2b. Press Credit Institution Motorist 3: Execute (Credit) Dispense Receipt Controller 2b. Press Dispense Gasoline Controller 7: Accept/Deny Pay-By-Credit Button Pay Credit Controller 9b: Produce Receipt 8: Motorist response Accept/Deny Receipt Button Receipt Printer 10: Refueling Receipt March 17, 2008 (c) Dr. David A. Workman

13 2. Use Case Specifications
2.1 Pay For Gasoline (continued) 2.1.4 Alternative Scenarios In step 3, if Pamt = 0, then Set the transaction code (TransCD) to “Credit Denied”. Display “Credit Authorization Denied! Select alternative payment method.” Skip to step 6. Post-Conditions: A receipt has been printed, if requested by the motorist, showing the gasoline grade, price-per-gallon, the amount dispensed (in gallons), amount dispensed (in dollars), method of payment, date, time, pump #, and transaction # of the transaction. If the payment method was by credit card, then the update transaction on the motorist’s credit account has been successfully completed. The gas hose has been returned to its receptacle. The pump is in the “ready” state. March 17, 2008 (c) Dr. David A. Workman

14 2. Use Case Specifications
2.2 Pay By Cash Purpose: to coordinate the interaction with the motorist to make a cash purchase of gasoline. 2.2.2 Pre-conditions: The pump must be in “Define Purchase Amount” state as the result of the motorist pressing the “Pay Cash” button on the pump station interface. 2.2.3 Nominal Scenario 1. Display “Pay cashier inside store” on LED. 2. Signal Pump Console (PC) in store that motorist has requested a cash transaction on this pump (PmpId). 3. motorist pays cash (Cash-Amt) to Cashier and requests amount of purchase (P-Amt) on pump (PmpId). 4. Cashier returns Change to motorist, if Cash-Amt > P-Amt. 5. Cashier gives Cash-receipt to motorist (see Notes View for details). 6. Cashier enters P-Amt into Pump Console for pump (PmpId). 7. Cashier presses “Set Amount” button on pump console to transmit the amount of purchase (P-Amt) to the motorist’s pump station. 8. Create a new Sales Transaction with P-Amt by cash. NOTES: The Cash-Receipt contains the following information Date Time Receipt Header: Place of business, Address, Phone # Purchase description: “Purchase Gasoline” Amount paid by motorist (Cash-Amt) Amount of purchase (P-Amt) Amount of Change March 17, 2008 (c) Dr. David A. Workman

15 2. Use Case Specifications
2.2 Pay By Cash (continued) Alternative Scenarios: 3’. If motorist discovers s/he has no cash, then this scenario terminates when the cashier presses the “Cancel” button on the Pump Console to cancel the cash transaction on the motorist’s pump station and return that pump (PmpId) to its “ready” state. The cashier may have to prompt the motorist for the pump number to complete this alternative action. The effect of “Cancel” is to reset the purchase amount (P-Amt) to zero at the pump station (PmpId). The pump station Posts a Sales Transaction for “Aborted Cash” to the Sales Log and returns to the “Ready” state. 2.2.5 Post-conditions: The pump will be in the “Ready” state, if P-Amt = 0; in this case a Sales Transaction has been posted to the Sales Log for an aborted cash purchase. If P-Amt > 0, the pump station will be in the “Dispensing” state, where a Sales Transaction has been created for a normal cash payment. NOTES: The Cash-Receipt contains the following information Date Time Receipt Header: Place of business, Address, Phone # Purchase description: “Purchase Gasoline” Amount paid by motorist (Cash-Amt) Amount of purchase (P-Amt) Amount of Change March 17, 2008 (c) Dr. David A. Workman

16 2. Use Case Specifications
2.3 Pay By Credit 2.3.1 Purpose: to coordinate the interaction between the pump station, motorist, and financial network to purchase gasoline by credit card. 2.3.2 Pre-conditions: the pump station must be in the “Define Purchase Amount” state as the result of the motorist pressing the “Pay Credit” button on the pump station interface. 2.3.3 Nominal Scenario Display “Quickly swipe credit card through reader device as illustrated on the control panel.” Card reader transmits motorist account number (Cust-Accnt), the financial institution identification number (Cust-FID), and the expiration date (Exp-Date) to pump station memory. Display “Wait for credit authorization.” Send “Open Account (Cust_Accnt, Exp-Date) “ transaction to financial institution (Cust-FID) on the Financial Network. Financial Network responds with “Connection Established” message. Send “Retrieve Balance” transaction to financial institution (Cust-FID). Financial Network responds with “Account Balance( Avail-Amt )” message. Set amount of purchase(P-Amt) to Avail-Amt. Create a new Sales Transaction with P-Amt by credit. March 17, 2008 (c) Dr. David A. Workman

17 2. Use Case Specifications
2.3 Pay By Credit 2.3.4 Alternative Scenarios 5’. If the Financial Network responds to the Open transaction with an error message (e.g. “Financial Intitution ID Invalid” or “motorist Account Invalid”) then 5’.1 Display “Credit Information Not Valid! Select alternative payment method.” 5’.2 Create a new Sales Transaction for “Invalid Credit Information” and Post it to the Sales Log. (see Notes View for more details.) 5’.3 Reset pump station state to “Ready.” 8’. If P-Amt <= $0 then 8’.1 Display “No Credit Available! Select alternative payment method.” 8’.2 Create a new Sales Transaction for “No Available Credit” and Post it to the Sales Log. (see Notes View for more details.) 8’.3 Reset to state “Ready”. 2.3.5 Post-conditions: The pump station is in state “Ready” or in state “Dispensing”. In the latter case a Sales Transaction has been created for a normal credit payment. In the former case a Sales Transaction has been created and posted (to the Sales Log) for an aborted credit payment. A Sales Transaction for credit purchases includes the information read from the credit card: Cust-Accnt, Cust-FID, and Exp-Date. March 17, 2008 (c) Dr. David A. Workman

18 2. Use Case Specifications
2.4 Dispense Gasoline Purpose: to control the flow of gasoline from the storage tank corresponding to the grade selected by the motorist in such a way that the dollar amount does not exceed the amount of purchase (P-Amt) by more than a small random error. Pre-conditions: the pump station must be in the Dispensing state with a positive amount of purchase (P-Amt). A normal Sales Transaction has been created. Nominal Scenario: Display “Select Gasoline Grade to begin fueling.” on LED. Motorist selects gasoline grade: (a) motorist presses one of the buttons { Flamo-Minus, Flamo, Flamo-Plus } (b) Price and Quantity Displays are reset to initial state ($0.00, Gal 0.000) Motorist removes nozzle from cradle Motorist inserts nozzle into vehicle recepticle. (a) Motorist depresses lever on nozzle releasing gasoline flow. (b) A flow sensor on the output side of the pump detects gasoline flow and signals update of the Price and Quantity Display at a periodic rate. Motorist releases lever or Automatic cutoff on Price is reached to stop gasoline flow. Motorist returns nozzle to cradle. March 17, 2008 (c) Dr. David A. Workman

19 2. Use Case Specifications
2.4 Dispense Gasoline (continued) Alternative Scenarios: None Post-conditions: The pump station is in the Dispense Receipt state: the pump motor is stopped, all valves are closed, Q-Amt and D-Amt reflect the amount of gasoline actually dispensed (within some tolerable error) from the selected storage tank, and the message “Do you want a receipt? (Yes | No)” is displayed on the LED. March 17, 2008 (c) Dr. David A. Workman

20 2. Use Case Specifications
2.5 Issue Receipt 2.5.1 Purpose: to coordinate interaction with the motorist to print a transaction of the gasoline sale at the motorist’s option. 2.5.2 Pre-conditions: the pump station must be in Querying Receipt state with a receipt prompt displaying on the LED. 2.5.3 Nominal Scenario: Set timer to interrupt in 5 seconds. motorist presses Yes | No on the pump station panel: (a) YES: Create transaction receipt; Print transaction receipt; Perform Post Transaction scenario. (b) NO: Perform Post Transaction scenario. Timer Expires: Perform Post Transaction scenario. 2.5.4 Alternative Scenarios: None 2.5.5 Post-conditions: A Sales Transaction receipt has been printed if the motorist pressed “YES” on the station panel. The pump station is in state Posting Transaction. March 17, 2008 (c) Dr. David A. Workman

21 2. Use Case Specifications
2.6 Manage Accounts 2.6.1 Purpose: to provide a secure interface to the Financial Network(FN); to provide services for accessing accounts and performing transactions on those accounts at financial organizations connected to the FN. 2.6.2 Pre-conditions: None. This interface is operational as long as power is supplied to the pump station. 2.6.3 Nominal Scenario: Open Account: requires an account number, and the financial id of a server on the FN. Returns a completion code: “FID Invalid”, “Account ID Invalid”, “OK”. Close Account: requires an account number, and the financial id of a server on the FN. Returns a completion code: “FID Invalid”, “Account ID Invalid”, “OK”. Retrieve Balance: requires an account number, and the financial id of a server on the FN. Returns a completion code: “FID Invalid”, “Account ID Invalid”, “OK” and the Available Balance. Debit Account: requires an account number, and the financial id of a server on the FN, and a dollar amount. Returns a completion code: “FID Invalid”, “Account ID Invalid”, “OK”. Deposit Account: requires an account number, and the financial id of a server on the FN, and a dollar amount. Returns a completion code: “FID Invalid”, “Account ID Invalid”, “OK”. 2.6.4 Alternative Scenarios: None. 2.6.5 Post-conditions: None. March 17, 2008 (c) Dr. David A. Workman

22 2. Use Case Specifications
2.7 Update Account 2.7.1 Purpose: to update the motorist’s credit account and the store’s bank account for credit transactions; to write all sales transactions to the Sales Log. 2.7.2 Pre-conditions: Pump station must be in the Posting Transaction state. 2.7.3 Nominal Scenario: If [normal credit transaction] then (a) Issue Debit-Account( Cust-FID, Cust-Accnt, D-Amt) to Financial Network. (b) Issue Close-Account(Cust-FID, Cust-Accnt ) to Financial Network. Reset pump station to “Ready” state. 2.7.4 Alternative Scenarios: None. 2.7.5 Post-conditions: Pump station is in Ready state. All Financial Network transactions have been completed. March 17, 2008 (c) Dr. David A. Workman

23 3. Requirements Traceability
3.1 Sources [1] On-site Study of Jiffy Stop at Alafaya Trail and University Blvd. [2] Interview with Jiffy Stop Manager, Dr. David Workman [3] Interview with a typical Motorist. Requirement Source R01: Gas Pump shall initiate, manage and terminate all vehicle refueling operations All R02: Only two methods of payment shall be supported: Pay-By-Cash and Pay-By-Credit R03: Only Pay-By-Credit shall be provided at the Gas Pump. [1] R04: Pay-By-Cash shall only be provided in the Convenience Store at the checkout counter. R05: A cash receipt shall be produced after each Pay-By-Cash transaction. [1],[2] R06: A refueling receipt shall be produced at the Gas Pump for each refueling transaction, at the option of the motorist. [1],[3] R07: Instructions shall be displayed at the Gas Pump as an aid to help the motorist progress through the refueling transaction. R08: The Gas Pump shall provide the motorist with a choice of at least three gasoline grades to purchase. R09: Gasoline delivery shall be under manual control by the motorist, with one constraint. Automatic cutoff of gasoline flow shall occur if the credit limit or cash limit is exceeded during the pumping operation. R10: A functional electronic interface shall be provided at the Gas Pump for accessing and managing account information during Pay-By-Credit transactions. March 17, 2008 (c) Dr. David A. Workman

24 4. Glossary Pump Station (PmpId) Pump motorist Store Cashier (Cashier)
Financial Institution (Financial Organization) FID (Financial Institution Id) Cust-FID Store-FID Store Bank (Store-FID) Gasoline Grade (Flamo-Minus, Flamo, Flamo-Plus) Sales Transaction (Transaction) Sales Transaction Receipt (Receipt) Sales Log Cash Receipt Pump Nozzle (Nozzle) Pump Hose Pump State (See slide 11) Pump Id (PmpId) March 17, 2008 (c) Dr. David A. Workman

25 4. Glossary motorist Account (Cust-Accnt)
motorist Financial Institution (Cust-FID) Instruction Message LED Payment Method (Cash, Credit) Amount of Purchase (P-Amt) Amount Dispensed (D-Amt) Quantity Dispensed( Q-Amt) Credit Card Cust-FID Cust-Accnt Exp-Date Price and Quantity Display (P&D Display) Flow Sensor Gasoline Storage Tank Available Amount March 17, 2008 (c) Dr. David A. Workman


Download ppt "Processes for OO Software Development"

Similar presentations


Ads by Google