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
Drivers do not always know what is the best gas station to go to, this is especially true when they are in a new neighborhood or city. They find themselves looking up for the closest gas station on the internet, not always knowing which one has the best price.
A company wants to realize a crowdsourcing service that allows users to both collect prices of fuels in different gas stations
and locate gas stations in an area, along with the prices they practice. This application is meant to be used by any user that wants do search for the closest and most convenient gas station nearby. Whenever a customer visits the gas station, he can also update the service with up-to-date information.
Stakeholders
Stakeholder name
Description
User
Uses the application to look for gas stations and also updates the information on it
Developer
Develops the functionality of the applicaiton
Context Diagram and interfaces
Context Diagram
left to right directionactorUserasu <<Human>>
actorDeveloperasd <<Human>>
actorMapServiceasms <<Application>>
u-- (EZGas)
d-- (EZGas)
ms--(EZGas)
Interfaces
Actor
Logical Interface
Physical Interface
User
GUI
Screen, keyboard
MapService
Data exchanged
Internet
Stories and personas
Mario is a taxi driver and he works in Rome. Being Rome such a big and chaotic city, he often struggles in remembering which is the closest gas station to his position, and even after finding a gas station after going around for a while, he often realizes that it has not the most convenient price he could have found in the neighborhood. Tired of searching and needful of heading back to his work, Mario pays that gas price anyway.
John really likes his work, but searching for gas stations can become frustrating, time consuming and expensive.
John would like to have a simple way to look for gas stations in the surroundings and find the best one in terms of proximity and cost. He would also like to know the price for the exact type of fuel he needs.
Additionaly, John would like to be able to look for specific gas stations he has already been to, by searching them by name, this is because with time he has become familiar with them and he would like to know if the prices there are still convenient.
For John it is not a problem to update others when he finds out new information about a gas station, he would like to help other drivers and tell them if a new gas station has just opened, or an old one has been dismissed. He would also like to share the information about the price he paid when refilling his taxi.
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Search for gas station
FR2
Add new gas station
FR3
Remove gas station
FR4
Modify gas station (price, location, name)
FR5
View information about a gas station
FR6
Geo-localization
FR7
Log-in
FR8
Log-out
FR8
Sign-in
Non Functional Requirements
ID
Type (efficiency, reliability, .. see iso 9126)
Description
Refers to
NFR1
Usability
Application should be used with no precedent knowledge by any user
All FR
NFR2
Performance
All functions should complete in < 0.5 sec
All FR
NFR3
Portability
The application should run both on Android, IoS and Windows Phone
All FR
NFR4
Portability
The application (functions and data) should be downloadable from PlayStore, AppStore and Windows Store
MapService is working, User is connected to the internet
Post condition
Nominal Scenario
User selects if he wants to choose a specific gas station (by name) or to search for a combination (price-vicinity), selects the type of gas he needs,the application display the results
Variants
No gas station available for that data, issue warning
Use case 2, UC2 - FR2 Add new gas station
Actors Involved
User
Precondition
Gas Station GS exists, User is signed-in,User is connected to the internet
Post condition
number gas stations post> number gas stations pre
Nominal Scenario
User insert info about GS, user creates GS
Variants
The information inserted is not coherent, issue warning
Use case 3, UC3 - FR3 Remove gas station
Actors Involved
User
Precondition
Gas Station GS doesn't exist, user is signed-in,User is connected to the internet
Post condition
number gas stations post< number gas stations pre
Nominal Scenario
User selects GS, user deletes GS
Variants
Use case 4, UC4 - FR4 Modify gas station (price, location, name)
Actors Involved
User
Precondition
Gas Station GS exists, user is signed-in,User is connected to the internet
Post condition
GS.information.pre!=GR.information.post
Nominal Scenario
User insert info about GS, information sent to DB
Variants
The information inserted is not coherent, issue warning
Use case 5, FR5 View information about a gas station
Actors Involved
User
Precondition
Gas Station GS exists, search has been performed, User is connected to the internet
Post condition
Nominal Scenario
User selects GS, application displays information
Variants
The GS selected has been removed, issue warning
Use case 6, FR6 Geo-localization
Actors Involved
User
Precondition
mobile geolocalization is on
Post condition
user.location!=null
Nominal Scenario
User opens application, mobile geolocalization is performed
Variants
The mobile is not able to geo-localize itself, issue warning
Use case 7, FR7 Log-in
Actors Involved
User
Precondition
User is registered,User is connected to the internet
Post condition
User is logged-in, Users.loggedIn.nr.post > Users.loggedIn.nr.pre
Nominal Scenario
User insert username and password, log-in is performed
Variants
log-in enconuters an error, issue warning
Use case 8, FR8 Log-out
Actors Involved
User
Precondition
User is logged-in,User is connected to the internet
Post condition
User is logged-out,Users.loggedIn.nr.post < Users.loggedIn.nr.pre
Nominal Scenario
User clicks on log-out, log-out is performed
Variants
Use case 9, FR9 Sign-in
Actors Involved
User
Precondition
User is not registered,User is connected to the internet
Post condition
User is registered, Users.nr.pre>Users.nr.post
Nominal Scenario
User inserts information about it-self, sign-in is performed, new user account created
Variants
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC1,UC5,UC6
Description
User U searches for a gas station with a specific name
Precondition
U is connected to the internet
Postcondition
Step#
Step description
1
U select the search by name type and type of gas
2
U inserts the name of gas station GS
3
U is displayed search results
4
U selects the gas station GS he is most interesed in
5
U views information about GS
Scenario 2
Scenario ID: SC1
Corresponds to UC1,UC5,UC6
Description
User U searches for a gas station with the best price/vicinity
Precondition
U is connected to the internet, MapService is working
Postcondition
Step#
Step description
1
U select the search by price/vicinity type and type of gas
2
U is displayed search results
3
U selects the gas station GS he is most interesed in
4
U views information about GS
Scenario 3
Scenario ID: SC1
Corresponds to UC4, UC5
Description
User U updates information about gas station GS
Precondition
U is connected to the internet, U is logged-in, GS exists
Postcondition
GS.information.pre!=GR.information.post
Step#
Step description
1
U views information about GS
2
U modifies information about GS inserting up-to-date values