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
Uses the application to add new gas stations, add and update gas station prices, search for gas stations and relative prices on the map, together with many other users.
Google Maps APIs
Passive entity that doesn't use the application directly, but influences it because the application uses the APIs it privides.
Database of gas stations
Passive entity that doesn't use the application directly, but stores gas stations locations and relative prices so that users can retrieve and save data about gas station and prices.
Context Diagram and interfaces
Context Diagram
left to right directionactorUserasaa-- (EZGas)
left to right directionactor"Google Maps APIs"asbb-- (EZGas)
left to right directionactorDatabaseascc-- (EZGas)
left to right directionactorDeveloperasdd-- (EZGas)
Interfaces
Actor
Logical Interface
Physical Interface
User
GUI
Screen, keyboard, Internet Connection
Google Maps APIs
Web service
Internet Connection
Database
Web service
Internet Connection
Developer
GUI, IDE
Screen, keyboard, Internet Connection
Stories and personas
Catherine is a mother of two children. She works from home as an employee of her husband's business and does accounting, administration and fulfills several tasks, such as organizing appointments, paying taxes, recording invoices. Moreover, she is responsible for housekeeping and doing the shopping for her family. All these activities takes a lot of time of her weekdays, but don't require the use of the car. In order to lighten the stress, she really likes to go out in the weekends with her family. She likes to explore new places, doing long trips that require a lot of fuel for her car, and of course a lot of money spent. She wants to spend the least, but she doesn't know what are the best prices, because she visits those places for the first time. Catherine would like a fast and easy way to find the best gas stations in the area, without asking to local people or spending time manually searching for them on a search engine, such as Google.
Robert travels for work. He is a freelancer, and drives his car at least 4 hours per day. He drives most of the times in highways, where gas prices are quite high and gas stations are very far one from each other. This makes him plan every movement so that he knows where to get gas, without having troubles and paying too much. He would like to have a rapid way of looking for the best gas stations in the route he's going to run across, and also update the database so that others with similar necessities can get the most out of this application.
Chris is a young man, 20 years old. He owns a nice motorcycle, but depends on his parents in order to get gas. He has a lot of friends which share his love for motorcycles. Together with his friends, he takes tours in the area where he lives, sometimes going quite far from his home town. His friends are of the same age, and thus depend on their parents in order to get gas. He would like to know where to find the best prices in his local area, as well as keep track and update prices together with their friends, so that they all can save money for other activities.
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Insert new gas station
FR2
Select gas station and update gas prices
FR3
Show gas stations on the map
FR4
Filter shown gas stations based on price, fuel and distance
Non Functional Requirements
ID
Type (efficiency, reliability, .. see iso 9126)
Description
Refers to
NFR1
Usability
Application should be used with 5 minutes training on how to use it, search for gas stations, show their prices, insert new gas stations and update prices
All FR
NFR2
Performance
All functions should complete in < 0.2 sec
FR1, FR2
NFR3
Performance
All functions should complete in < 1 sec
FR3, FR4, FR5
NFR4
Portability
The application runs on Android 6.0 (Marshmallow) and above
All FR
NFR5
Portability
The application runs on iOS 9 and above
All FR
NFR6
Localisation
Decimal numbers use . (dot) as decimal separator
NFR7
Privacy
The application doesn't collect any personal information and doesn't bind GPS data to any specific user
NFR8
Organizational
The application shows a section where users can read rules on how to contribute to the service provided by the application
Use case diagram and use cases
Use case diagram
left to right directionactorUserasaa-- (FR1Insertnewgasstation)
a-- (FR2Selectgasstationandupdategasprices)
a-- (FR3Showgasstationsonthemap)
a-- (FR4Filtershowngasstationsbasedonprice, fuelanddistance)
Use Cases
Use case 1, UC1 - FR1 Insert new gas station
Actors Involved
User, Database, Google Maps APIs
Precondition
User has no account
Post condition
Gas station G is saved to database
Nominal Scenario
User select location on map, press new gas station button, choose name for gas station G, save G
Use case 2, UC2 - FR2 Select gas station and update gas prices
Actors Involved
User, Database, Google Maps APIs
Precondition
Gas station G exists, user has no account
Post condition
G.F.currentPrice = G.F.newPrice
Nominal Scenario
User selects gas station G on the map, select fuel type F, update price
Variants
User selects gas station G on the map, add fuel type F, add new price
Use case 3, UC3 - FR3 Show gas stations on the map with GPS
Actors Involved
User, Database, Google Maps APIs
Precondition
At least one gas station exists, user has no account
Nominal Scenario
User opens the map section, select location, retrieves gas stations on the map for the area displayed on the screen
Variants
User opens the map section, gets geolocalized with GPS that has been activated, retrieves gas stations on the map for the area displayed on the screen
Use case 4, UC4 - FR4 Filter shown gas stations based on price, fuel and distance
Actors Involved
User, Database, Google Maps APIs
Precondition
At least one gas station exists, map section displayed, user has no account
Post condition
Gas stations displayed on the map are only the ones that meet the filter(s) set by the user
Nominal Scenario
User filters by a combination of price, fuel and distance, retrieves filtered gas stations on the map for the area displayed on the screen
Variants
User filters by minimum and/or maximum price, retrieves filtered gas stations on the map for the area displayed on the screen
User filters by fuel type, retrieves filtered gas stations on the map for the area displayed on the screen
User filters by minimum and/or maximum distance, retrieves filtered gas stations on the map for the area displayed on the screen
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC2
Description
User selects gas station and update gas prices
Precondition
Selected gas station exists, user doesn't need an account
Post condition
The current price for the selected fuel type in the selected gas station is updated with the new price set by the user
Nominal Scenario
User selects gas station G on the map, select fuel type F, update price
Variants
User selects gas station G on the map, add fuel type F, add new price
| Step# | Step description |
| 1 | User opens map section |
| 2 | User selects the gas station |
| 3 | user selects the fuel type |
| 4 | User insert new price |
| 5 | User hits save button |
| 6 | User is returned to the gas station's list of fuel types and can check the price has been updated |
Scenario 2
Scenario ID: SC2
Corresponds to UC4
Description
User filters shown gas stations based on price, fuel and distance
Precondition
At least one gas station exists, map section displayed, user doesn't need an account
Post condition
Gas stations displayed on the map are only the ones that meet the filter(s) set by the user
Nominal Scenario
User filters by a combination of price, fuel and distance, retrieves filtered gas stations on the map for the area displayed on the screen
Step#
Step description
1
User hits filter button
2
User select min/max price, and/or fuel type, and/or min/max distance through a form
3
User hits confirm button
4
User gets displayed only the gas stations that meet the filter(s)