System analysis and project management

profileArupsh
UMLModelsforProposedGasBuddySystem.docx

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