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
Alice would like to minimize costs related to refueling, she downloads the app and sign ups. She reports the prices of the station in front of her house when she remembers to do so. She tracks prices weekly to know when gas is cheaper.
Bob is a gas station owner, he uses EZGas to report prices everyday, in order to attract more customers
Charlotte's job requires her to travel very frequently by car to move accross the nation.
Very often she has trouble finding a gas station, she uses the app to look for the nearest station.
Functional and non functional requirements
Functional Requirements
ID
Description
FR01
Record the position of a gas station that if not already in the app
FR02
Record the set of prices of a station on a certain day
FR03
Highlight the last time that prices were reported for a certain station
FR04
Show the cheapest station in the neighbouring area on the map
FR05
Show the last prices reported for a given gas station
FR06
Highlight the nearest gas station on the map
FR07
Record the review of a gas station from a registered user
FR08
Show the latest reviews for a certain gas station
FR09
Record the upvote/downvote on user reported content (gas station, fuel prices, review)
FR10
Highlight as "potentially false" reports with upvote/downvote ratio of 1:10
Non Functional Requirements
ID
Type (efficiency, reliability...)
Description
Refers to
NFR1
Usability
Application should be used with no training user
All FR
NFR2
Performance
All functions should complete in < 0.5 sec
All FR
NFR3
Portability
Compatible with Android 10 and iOS 13
All FR
NFR4
Localisation
Decimal numbers use . (dot) as decimal separator
Use case diagram and use cases
Use case diagram
left to right directionactor :RegisteredUser: asaactor :UnregisteredUser: asb
(FR01Recordtheposition\nofagasstationthatif\nnotalreadyintheapp) as (FR01)
(FR02Recordthesetof\npricesofastation\nonacertainday) as (FR02)
(FR03Highlightthelast\ntimethatprices\nwerereported\nforacertainstation) as (FR03)
(FR04Showthecheapest\nstationinthe\nneighbouringarea\nonthemap) as (FR04)
(FR05Showthelastprices\nreportedfora\ngivengasstation) as (FR05)
(FR06Highlightthe\nnearestgasstation\nonthemap) as (FR06)
(FR07Recordthereview\nofagasstation\nfromaregistereduser) as (FR07)
(FR08Showthelatest\nreviewsfora\ncertaingasstation) as (FR08)
(FR09Recordthe\nupvote/downvoteon\nuserreportedcontent) as (FR09)
(FR10Highlightas"potentially false"\nreportswith\nupvote/downvoteratioof1:10) as (FR10)
a--- (FR01)
a--- (FR02)
a-- (FR03)
a-- (FR04)
a-- (FR05)
a-- (FR06)
a--- (FR07)
a-- (FR08)
a--- (FR09)
a-- (FR10)
b-- (FR03)
b-- (FR04)
b-- (FR05)
b-- (FR06)
b-- (FR08)
b-- (FR10)
Use Cases
Use case 1, UC1 - FR01 Record the position of a gas station that if not already in the app
Actors Involved
Registered User
Precondition
User U is Registered
Post condition
New station S is Recorded
Nominal Scenario
U finds out about S, reports its position on the platform if not already present
Use case 2, UC2 - FR02 Record the set of prices of a station on a certain day
Actors Involved
Registered User
Precondition
U is Registered, S is in the database
Post condition
Prices are recorded on the platform
Nominal Scenario
U is refueling, reports the prices
Variants
U is the Manger of S, reports the prices
Use case 3, UC3 - FR03 Highlight the last time that prices were reported for a certain station
Actors Involved
User
Precondition
User U selected a Station from the Map
Post condition
-
Nominal Scenario
U sees in the detail page of the station the date in which prices were last reported
Use case 4, UC4 - FR04 Spot the cheapest station in the neighbouring area
Actors Involved
User
Precondition
At least a station's prices have been reported recently
Post condition
-
Nominal Scenario
U opens the app to see where gas is chepear, and refuels there
Use case 5, UC5 - FR05 Show the last prices reported for a given gas station
Actors Involved
User
Precondition
User U selected a Station from the map
Post condition
-
Nominal Scenario
U sees in the detail page of the station the latest reported prices
Use case 6, UC6 - FR06 Highlight the nearest gas station on the map
Actors Involved
User
Precondition
User U can see the map
Post condition
-
Nominal Scenario
U opens the map tab, the nearest station is clearly highlighted
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC1
Description
User U reports a new gas station S
Precondition
U has the application and is registered
Postcondition
The platform now displays S
Step#
Step description
1
U opens the app
2
U logins
3
U selects add new Gas Station
4
U inserts the necessary data and submits them
Scenario 2
Scenario ID: SC2
Corresponds to UC2
Description
A User updates the set of prices for a certain station
Precondition
Gas Station is open, User can see prices
Postcondition
Prices for the gas station are updated
Step#
Step description
1
User selects the gas station
2
User selects "update prices"
3
User adds all relevant informations and submits
Scenario 3
Scenario ID: SC3
Corresponds to UC3
Description
User U uses the app to discover the cheapest gas station near by
Precondition
U has the app installed on their phone
Postcondition
-
Step#
Step description
1
U opens the app
2
U uses the map to understand where the gas stations are
3
U can see the prices related to the gas stations on the map