You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
People all over the country always look for the lowest gas prices, but it's difficult to know at any time which stations have the best prices and where they are located.
Stakeholders
Stakeholder name
Description
Drivers
Use the application to look for the best gas prices and/or closest stations
Google Maps
Do not use the application directly, benefit from having the updated locations of the gas stations on their maps
Gas stations
Do not use the application directly, gain some exposure from being easier to find
Developers
Do not use the application directly, invested time and money into it to get profit out of it
Context Diagram and interfaces
Context Diagram
left to right directionactorDriverasaactorDeveloperasbactor"Google Maps"asca-- (EZGas)
b-- (EZGas)
c-- (EZGas)
Interfaces
Actor
Logical Interface
Physical Interface
Driver
GUI
Phone, touchscreen
Developer
GUI, IDE
Screen, keyboard
Google Maps
Web API
Internet connection
Stories and personas
Gianna is a mother of two and every day she's carpooling her kids and her nephews to and from school. To get to her nephews she has to take a longer route, so she's trying to save as much money as possible on gas. She uses EZGas to find the cheapest gas station along her daily route.
It's thursday morning and Gianna just left all the kids at school. She wants to get gas along the way back, so she opens EZGas and checks the updated prices. She notices that there is now a cheaper station next to the school, so she decides to go there and saves some money.
Gino is a taxi driver and he's constantly in need of fuel. He drives around the city and thus has no set route. EZGas helps him to find the cheapest nearby station in a quick and easy way, without having to memorize their location on his own or waste time driving around looking for one.
Pino is a pizza delivery guy. He uses his own scooter to deliver pizzas and has to pay for his own gas. He uses Google Maps to reach his customers so EZGas easily enters his workflow, being only a click away. Whenever he needs to get gas he just has to switch to it and find the closest station at the best price.
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Allow users to insert and update prices
FR2
Allow users to insert new stations
FR3
Rating system for accuracy of prices and location
FR4
GPS map showing the position of the stations and the best route to get to them
FR5
List view of stations ordered for price or proximity
FR6
Ability to define maximum area range or minimum rating for shown stations
FR7
Possibility to bookmark favourite stations
Non Functional Requirements
ID
Type (efficiency, reliability, .. see iso 9126)
Description
Refers to
NFR1
Usability
Application should be used with no training by any user
All FR
NFR2
Performance
All functions should complete in < 0.5 sec
All FR
NFR3
Portability
The application runs on Android and iOs
All FR
NFR4
Ease of use
Support for different measuring systems
All FR
Use case diagram and use cases
Use case diagram
left to right directionactorDriverasaa-- (FR1Allowuserstoinsertandupdateprices)
a-- (FR2Allowuserstoinsertnewstations)
a-- (FR3Ratingsystemforaccuracyofpricesandlocation)
a-- (FR4GPSmapshowingthepositionofthestationsandthebestroutetogettothem)
a-- (FR5Listviewofstationsorderedforpriceorproximity)
a-- (FR6Abilitytodefinemaximumarearangeorminimumratingforshownstations)
a-- (FR7Possibilitytobookmarkfavouritestations)
Use Cases
Use case 1, UC1 - FR1 Allow users to insert and update prices
Actors Involved
Driver
Precondition
Gas station G exists and is already in the database
Post condition
G.price_post != G.price_pre
Nominal Scenario
Driver notices that G has a different price than the recorded one. He updates G's price.
Variants
Use case 2, UC2 - FR2 Allow users to insert new stations
Actors Involved
Driver
Precondition
Gas station G exists but is not in the database
Post condition
G.create
Nominal Scenario
Driver sees a gas station on the road not present in the app, decides to add it
Variants
Use case 3, UC3 - FR3 Rating system for accuracy of prices and location
Actors Involved
Driver
Precondition
Gas station G exists and is in the database
Post condition
G.rating_post != G.rating_pre
Nominal Scenario
Driver sees that the prices and/or the location of G signaled in the app are accurate or not and leaves a rating base on that
Variants
Use case 4, UC4 - FR4 GPS map showing the position of the stations and the best route to get to them
Actors Involved
Driver
Precondition
Driver's phone has working GPS
Post condition
Nominal Scenario
Driver uses the map inside EZGas to find the gas stations around him and start navigating to a chosen one
Variants
Use case 5, FR5 List view of stations ordered for price or proximity
Actors Involved
Driver
Precondition
Post condition
Nominal Scenario
Driver wants to see the stations around him ordered in a certain manner, so opens the list view
Variants
Use case 6, FR6 Ability to define maximum area range or minimum rating for shown stations
Actors Involved
Driver
Precondition
Defined area range A and minimum rating R exist
Post condition
A_post != A_pre or R_post != R_pre
Nominal Scenario
Driver is interested only in stations within a certain range or with a rating that makes it more likely that the prices are updated, so he defines the variables he prefers to filter out the ones he's not interested in
Variants
Use case 7, FR7 Possibility to bookmark favourite stations
Actors Involved
Driver
Precondition
List of bookmarked station B exists
Post condition
B_post = B_pre + B.new
Nominal Scenario
Driver wants to save his favourite stations somewhere for easy access to them, so he keeps a list of them
Variants
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC1
Description
Allow users to insert and update prices
Precondition
gas station G is already in database and has wrong price
Postcondition
Price of G updated
Step#
Step description
1
Driver selects G
2
Driver clicks on "Update price"
3
Driver types out new price
4
Driver clicks on "Ok"
Glossary
classEZGasclass"Gas station" {
+ Position+ Price+ Rating
}
classBookmarks {
+ Gas station lists
}
class"List view" {
+ Number of results+ List of gas stations
}
class"Map" {
+ Position of gas stations+ Position of driver
}
EZGas-- "*" "Listview"
EZGas-- "*" BookmarksEZGas-- "*" MapMap-- "*" "Gasstation"
"List view"-- "*" "Gasstation"
"Gas station"-- "*" Modify"List view"-- "*" ReorderModify<|-- "Inputprice"
Modify<|--CreateModify<|--RateReorder<|-- "Orderbyprice"
Reorder<|-- "Orderbydistance"