Author: Andrea Fanti
Date: 2020-03-29
- Abstract
- Stakeholders
- Context diagram and interfaces
- Stories and personas
- Functional and non functional requirements
- Use cases
EZGas is a service that allows its users to perform essentially 2 actions:
- upload prices of a particular gas station to the community
- locate surrounding gas stations. In particular, locate them and highlight the cheapest ones
Stakeholder name | Description |
---|---|
Users | Drives a vehicle and occasionally has to refill its fuel tank |
Uploaders | Users who update or upload a gas station's price list (or the gas station existance) |
Administrator | Ensures the system storing all the prices remains up and running |
Developers | Don't use the application directly. Develop the application and design the database used by it |
OpenStreetMap | Used as map service (display map, show gas stations markers, calculate routes) |
Actor | Logical | Physical |
---|---|---|
map service (i.e. OpenStreetMap) | OSM API | internet |
user | GUI | touchscreen |
uploader | GUI | touchscreen |
administrator | shell | screen, keyboard |
Charlie is a traveler who dreams to visit every country in the world with his
camper.
As he travels around the globe, many times it happens that his vehicle is close
to leave him on foot, so Charlie is forced to find quickly a fuel station.
Luckily for him, the EZGas app that he installed on its phone easily points him to the nearest gas station. Once again Charlie can continue its journey.
Carl is a guy who goes to work by car. Sometimes, since the path is long, it happens that he has to do gas refueling on his way to work.
Using EZGas, he can look which gas station is more convenient for him, after
all, money doesn't grow on trees!
While he's there, he usually updates the shown petrol price to the current one
if it has changed so everyone can benefit from it.
ID | Description |
---|---|
FR1 | Record a previously not present gas station in the system |
FR2 | Insert/update a gas station's price listing |
FR3 | Show a gas station's most recently recorded price listing |
FR4 | Calculate route to a specific gas station |
FR5 | Calculate route to the nearest gas station |
FR6 | Calculate route to the cheapest gas station within a certain distance |
ID | Type | Description | Refers to |
---|---|---|---|
NFR1 | Usability | Application should be usable by 90% of people without training | All FR |
NFR2 | Performance | Action must complete within 1 second | FR2, FR3 |
NFR3 | Performance | Action must complete within 5 seconds | FR1,4,5,6 |
NFR4 | Portability | Application run on Android version 8 (and successive) | All FR |
NFR5 | Localisation | Application is localised in english and italian | All FR |
- Actors involved: Uploader
- Precondition: Gas station G exists, G not already recorded, Uploader has GPS signal
- Nominal Scenario:
- Uploader inputs gas station's name (ex. "Esso")
- Current location is acquired
- Tuple (name, current location) is sent to the server
- Variants: /
- Actors involved: Uploader, OpenStreetMap
- Precondition: Gas station G exists
- Nominal Scenario:
- Map is shown in Uploader's application
- Uploader select a gas station in the map
- Uploader writes price/volume for each (or a subset) fuel present in the gas station
- tuple (gas station, price listing) is sent to the server
- Variants: /
- Actors involved: User, OpenStreetMap
- Precondition: none
- Nominal Scenario:
- Map is shown in User's application
- Server is queried for all gas stations that fit in the screen
- markers are placed on the map at gas stations' locations
- User taps on a gas station's marker
- Server is queried for that gas station' price listing
- returned price listing is shown on the application
- Variants: /
- Actors involved: User, OpenStreetMap
- Precondition: none
- Nominal Scenario:
- Map is shown in User's application
- current location CL is acquired
- Server is queried for all gas stations that fit in the screen
- markers are placed on the map at gas stations' locations
- User taps on a gas station's marker M
- calculate and show path from CL to M
- Variants: /
- Actors involved: User, OpenStreetMaps
- Precondition: User has GPS signal
- Nominal Scenario:
- Current location CL is acquired and sent to the server
- the nearest gas station's location GL is returned to the application
- calculate and show path from CL to GL
- Variants: /
- Actors involved: User, OpenStreetMaps
- Precondition: User has GPS signal
- Nominal Scenario:
- User selects a radius R of search from current location
- Current location CL is acquired
- tuple (CL, R) is sent to the server
- all gas stations within a distance R from CL are returned to the application
- cheapest 5 gas stations are calculated by application
- map is shown with these stations highlighted. Refer to UC4
- Variants: /