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
Nowadays it often happens for the average car driver to go and seek for the most convenient gas station nearby when refueling is needed.
He might stick to the one he thinks is the best in terms of price and distance, but he would need to periodically check his area for price changes in the other stations, relatively to the one he chose.
That's why our brand new startup decided to develop a service which could help the drivers to find the most convenient gas station in their area when they need it.
Stakeholders
Stakeholder name
Description
Guest User
Searches for a gas station
Registered User
Searches for a gas station and/or inserts/updates them
OpenStreetMaps
Provides maps API and service
Context Diagram and interfaces
Context Diagram
left to right directionactor"Guest User"asaactor"Registered User"asbactor"OSM API"asGMa-- (EZGas)
b-- (EZGas)
(EZGas) --GM
Interfaces
Actor
Logical Interface
Physical Interface
User
GUI
Smartphone/Computer
Stories and personas
Mark is a regular car driver and when he needs to buy fuel for his car he can drive even for a whole kilometer looking for the gas station with the lowest price in the way. Though he often ends up losing a good bit of the money he saved for searching the station. Though with EZGas he can easily find the best compromise every time he needs to refill!
Barbra instead uses to always refill to the same gas station, which has really low prices, but many times there have been better alternatives in her area! With EZGas now she can find out which is the closest dealer with the lowest price.
Jack is driving on the highway and he will need to refuel soon, so when he reaches for the next service area he looks on EZGas if such service area is convenient or there are better alternatives further on the route, but before the fuel runs too low! At the same time, he finds out the price in EZGas for the gas station (in the service area he's currently in) isn't up-to-date, so he proceeds to send an update.
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Any user shall be able to find gas stations nearby given a certain radius
FR2
Any user shall be able to sort gas stations by price
FR3
Any user shall be able to sort gas stations by distance
FR4
Any user shall be able to filter gas stations by fuel type
FR5
Any user shall be able to authenticate itself
FR6
Registered users shall be able to insert new gas stations
FR7
Registered users shall be able to update an existent gas station's price
Non Functional Requirements
ID
Type
Description
Refers to
NFR1
Usability
Application should be used with no training
All FR
NFR2
Performance
All functions should complete in < 1 sec
All FR
NFR3
Portability
The application runs on any major browser
All FR
NFR4
Portability
The application (functions and data) should be accessible from any internet connected device without installation
All FR
NFR5
Localisation
Decimal numbers use local display format
All FR
NFR6
Localisation
Gas station names may contain any special character
All FR
NFR7
Privacy
GDPR has to be taken into account
FR[5,6,7]
Use case diagram and use cases
Use case diagram
left to right directionactor"Guest User"asaactor"Registered User"asba-- (FR[1,2,3,4] Searchessuitablegasstation)
a-- (FR5Registersorlogsin)
b<-- (FR5Registersorlogsin)
b-- (FR[1,2,3,4] Searchessuitablegasstation)
b-- (FR6Addsnew/missinggasstation)
b-- (FR7Updatesgasstation'sprice)
Use Cases
Use case 1, UC1 - FR[1,2,3,4] Search suitable gas station
Actors Involved
Any user
Precondition
Gas stations are present on database, search filters are set
Post condition
Gas stations are displayed
Nominal Scenario
User chose search parameters and reads results
Variants
Registered user recalls the last search
Use case 2, UC2 - FR5 - User sign-up
Actors Involved
Guest user
Precondition
User has never registed
Post condition
User has now a personal account
Nominal Scenario
Guest user registers inserting required personal data
Variants
Use case 3, UC3 - FR5 - User log-in
Actors Involved
Guest user
Precondition
User is already registered and not authenticated
Post condition
User is authenticated
Nominal Scenario
Guest user authenticates using his login details
Variants
Use case 4, UC4 - FR6 - Add new gas station entry
Actors Involved
Registered user
Precondition
Chosen gas station doesn't exist in EZGas, GPS is enabled on the device and user is located in the gas station itself
Post condition
Gas station exists in EZGas database
Nominal Scenario
User inserts station name, selects available fuel types and inserts the corresponding price, GPS coordinates are associated
Variants
Use case 5, UC5 - FR7 - Update outdated gas station entry
Actors Involved
Registered user
Precondition
Chosen gas station exists in EZGas, prices aren't up-to-date, GPS is enabled on the device and user is located nearby the gas station
Post condition
Gas station prices are up-to-date in EZGas database
Nominal Scenario
User inserts the corresponding price for each available fuel type in the selected gas station
Variants
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC1
Description
User needs to refuel at the lowest price available in his zone
Precondition
Fuel level being too low (?)
Postcondition
User knows the lowest price gas station nearby
Step#
Step description
1
User inputs his fuel type
2
User inputs a search radius
3
User looks in the results and finds a solution
Scenario 2
Scenario ID: SC2
Corresponds to UC4
Description
User discovers a new gas station and wants to add it to the database
Precondition
Gas station not present in the database
User is logged in
Postcondition
Gas station is included in the database
Step#
Step description
1
User phisically reaches the gas station
2
User follows the flow for inserting a new gas station, inserting the requested data
Scenario 3
Scenario ID: SC3
Corresponds to UC5
Description
User finds out a gas station entry in the database is outdated
Precondition
Gas station already present (and outdated) in the database
User is logged in
Postcondition
Gas station is updated in the database
Step#
Step description
1
User phisically reaches somewhere close to the gas station, proving he's seeing the actual prices
2
User selects the gas station from the list
3
User follows the flow for updating such gas station, inserting the requested data