System analysis and project management
Model for the Proposed Gas Buddy System
Context Diagram
Use Case Diagram
Use Case Descriptions
Use Case: 1
Name: Authorize Sign In
Description: Authenticates members
Trigger: A member wants to sign in
Normal Flow:
1. Display Login Screen
2. Accept Nickname and Password
3. Verify Nickname and Password using the member data file
Exception Flow:
3.a1. If Invalid Verification Then display Failed Authentication message and Login Screen.
Use Case: 2
Name: Search Gas Prices
Description: Displays gas prices in a location
Trigger: A use clicks search gas price button
Normal Flow:
1. Accept Search Criteria
2. Get locations within 25 miles using Google Maps.
3. Get travel direction from mobile operator
4. Get Gas Stations in these locations using gas price file
5. Compute effective distance for each gas station as the following:
5.1 If gas station is in the travel direction, the effective distance is equal to the physical distance of the gas station from location
5.2. else, the effective distance is equal to twice the physical distance of the gas station from location
6. If (Search Criteria includes preferred gas brand) or (the user is a member with preferred gas brand in his/her profile) then
6.1 Retrieve price list of the closest 15 gas stations based on effective distance with gas brand = preferred gas brand in these locations using the gas price file
Else
6.2 Retrieve price list of the closest 15 gas stations based on effective distance in these locations using the gas price file
7. Retrieve map info for each of the 15 gas stations from Google Maps
8. Send user data to each of these 15 gas stations soliciting offers
9. Display the offer that has the highest Gas Buddy Commission
8. Display the Gas price Info in the order of effective distance, closest being at the top
Use Case: 3
Name: Report Gas Price
Description: processes gas price reported by a member
Trigger: A member wants to report a gas price
Normal Flow:
1. If not already signed in, execute Authorize Sign In use case
2. Display the Report Gas Price Screen
3. Accept Gas Price Data
4. Store the data in the gas price file
5. Add 200 points to the member’s accumulated reward points and add report transaction detail
Use Case: 4
Name: Calculate Trip Cost
Description: calculates the cost estimate for a trip
Trigger: A user clicks the calculate trip cost button
Normal Flow:
1. Display Trip Cost Request Screen
2. Accept Trip Data
3. Retrieve Route Data from Google Maps
4. Retrieve Vehicle Data from Vehicle file
5. Compute Fuel Requirement
6. Compute the locations where the gas tank will be between 25% and 10% full.
7. Retrieve Gas Station Data on those locations using Gas Price file
8. Select the gas station with the cheapest price and compute the cost for a fill up
9. Repeat steps 6 – 8 for the whole trip
10. Compute the total cost for the trip using costs calculated in step 8 and the cost for the distance remaining after the last fill up.
11. Display the Trip Cost Data
Exception Flow
2.a1. If multiple destinations, execute Add Intermediate Destinations use case
4.a1. If user provides own data, use user provided vehicle data for vehicle data
Use Case: 5
Name: Add Intermediate Destinations
Description: processes multiple destinations for a trip
Trigger: A use wants to add intermediate destinations
Normal flow:
1. Display the intermediate destinations screen
2. Accept the intermediate destination data
3. Prepare the Trip Data with Stops
Use Case: 6
Name: Remove Gas Price
Description: removes has prices more than 24 hours old
Trigger: Every hour
Normal Flow
1. For every gas station in the gas price file,
Delete prices more than 24 hours old
Use Case: 7
Name: Send Prime Member Alerts
Description: sends alters to prime members when international oil price increases or decreases by more than 5% in day
Trigger: Every Day
Normal Flow:
1. Get the international oil price from Commodities Exchange
2. Using the international oil price history file, compute the increase% from the previous price
3. If the increase% is not more than 5% and not less than -5%,
3.1 Quit
Else
3.2 Get the Location of each prime member
3.3 Using the Retail Price Lag file, determine the lag period for the location each prime member
3.3 Send a message to the member whether the price is likely to increase (or decrease as the case may be) by increase% in the next lag period.
Data Dictionary
Use case 1: Authorize Sign In
Nickname: Data Element
Password: Data Element
Member data file = Nickname + Password + AccumulatedRewardPoints + (preferred gas brand) + Prime member? + location + {Report Transaction Detail}
Report Transaction Detail = ReportDate + ReportTime + Gas Station ID + Gas type + Gas Price
Prime Member? = [Yes | No]
Use Case 2: Search Gas Prices
Search Criteria = Location + (Preferred Gas Brand)
Location = [Zipcode | City+State | GPS location]
Locations = 0{Location}
Profile = Member data file
Price list = 1{Gas Station ID + Gas Brand + Gas Station Location + MapInfo + Regular Gas Price + MemberNickname + ReportTime}15 + 1{Gas Station ID + Gas Brand + Gas Station Location + MapInfo + MidGrade Gas Price + MemberNickname + ReportTime}15 + 1{Gas Station ID + Gas Brand + Gas Station Location + MapInfo + Premium Gas Price + MemberNickname + ReportTime}15 + 1{Gas Station ID + Gas Brand + Gas Station Location + MapInfo + Diesel Price + MemberNickname + ReportTime}15
Gas stations = {Gas Station ID + Gas Station Location + MapInfo}
Effective Distance = Data element
Physical Distance = Data Element
Gas Price File = {Gas Station ID + Gas Brand + Gas Station Location + {Regular Gas Price + MemberNickname + ReportTime}+{MidGrade Gas Price + MemberNickname + ReportTime}+ {PremiumGas Price + MemberNickname + ReportTime}+ {Diesel Price + MemberNickname + ReportTime}
Map info = Data Element
Offers = {offer}
Offer = User Coupon + Gas Buddy Commission
Travel Direction = Data element
Gas Price Info = Price list
Use Case 3: Report Gas Price
Gas price Data =MemberNickname + Gas Station ID + Gas Brand _ Gas Station Location + Gas Type + Gas Price + Time
Gas Type = [Regular | MidGrade | Premium | Diesel]
Gas Price File = {Gas Station ID + Gas Brand + Gas Station Location + {Regular Gas Price + MemberNickname + ReportTime}+{MidGrade Gas Price + MemberNickname + ReportTime}+ {PremiumGas Price + MemberNickname + ReportTime}+ {Diesel Price + MemberNickname + ReportTime}
AccumulatedRewardPoints = Date Element
Report Transaction Detail = ReportDate + ReportTime + Gas Station ID + Gas type + Gas Price
Use Case 4: Calculate Trip Cost
Trip Data = Route + Vehicle Data + Options Data
Route = Origin + Intermediate destination data + Final destination
intermediate destination data = 0{Stop Number + Stop Location}
Vehicle Data = [System Determined Vehicle Data | User Provided Vehicle Data]
System Determined Vehicle Data = Vehicle Year + Vehicle Make + Vehicle Model + City mpg + Hwy mpg + tank capacity
User Provided Vehicle Data = City mpg + Hwy mpg + tank capacity
Route Data = {Route Sequence # + Route Location}
Fuel Requirement = Data element
Locations = {Route Location}
Gas Stations Data = {Gas Station ID + Gas Brand _ Gas Station Location + Gas Type + Gas Price}
Gas Price File = {Gas Station ID + Gas Brand + Gas Station Location + {Regular Gas Price + MemberNickname + ReportTime}+{MidGrade Gas Price + MemberNickname + ReportTime}+ {PremiumGas Price + MemberNickname + ReportTime}+ {Diesel Price + MemberNickname + ReportTime}
Gas station = Gas Station ID
Cost = data element
Total cost = data element
Trip Cost data = Origin + Destination + distance + time taken + total cost + fuel used + 0{fueling station # + Gas Brand + Gas station address + Gas price + amount to be filled + cost}
Use Case 5: Add Intermediate Destinations
intermediate destination data = 0{Stop Number + Stop Location}
Trip Data with Stops = Origin + Intermediate destination data + Final destination
Use Case 6: Remove Gas Price
Gas Price File = {Gas Station ID + Gas Brand + Gas Station Location + {Regular Gas Price + MemberNickname + ReportTime}+{MidGrade Gas Price + MemberNickname + ReportTime}+ {PremiumGas Price + MemberNickname + ReportTime}+ {Diesel Price + MemberNickname + ReportTime}
Prices = 0{Regular Gas Price}+0{MidGrade Gas Price}+0{PremiumGas Price}+0{Diesel Price}
Use case 7 : Send Prime Member Alerts
International Oil price = Data element
international oil price history file = {date + International Oil Price}
Increase% = date element
Retail Price Lag File = {Location + Lag Period}
Class Diagram
Gas BuddyMemberGoogle MapsVehicle DatabaseGet OffersUserGas StationPrime MemberMobile Operator
Gas Buddy Get gas price Get trip cost Member Sign In Report gas price Google Maps Get route and map info Vehicle Database Get vehicle data Get Offers User Gas Station Prime Member Mobile Operator Send Alert Get Travel Direction