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
A group of friends are used to travel almost every day because of their job and because during the weekend they spend time with their family and friends doing sightseeing, walking in the nature and so on. They have a Whatsapp group in which they signal to the others the prices of the Gas station in which they fuel up, so that the other members of the group can refuel in the station with the lower price.
Since the more people there are in the group, the more price reports there are, it could be possible to have the price of all the gas stations in the city, in this way, it is much more likely to refuel in the gas station with the lower price in the city. However, doing it with a Whatsapp group would be a mess, either because there would be too much messages and finding the lower prices among them would be really difficult, moreover people who are interested to this kind of service are not able to freely join the group. That’s why some member of this group, who are employers in an IT company, decided to set up a mobile crowdsourcing application, which could allow the users to collect the price of the gas stations, and to find, among them, the one which is closer and with the lower prices.
Since anyone could be able to change the prices, all the modifications provided by the end users, have to be inspected by a group of moderators.
The gas station owners are able to provide some proof in order to take the control of the price list of their gas station, all the modifications provided by an owner are automatically approved, moreover the owner is able to accept or reject the modifications provided by the other users for their gas station.
Stakeholders
Stakeholder name
Description
Moderators
Make sure that the modifications provided by the users are correct.
End users
Are able to check the list of the prices of gas stations closer to them. They are also able to provide modifications to the list.
Gas station owner
Are able to directily update their gas station price list without the need of moderators approvation.
Google Maps API
Used for providing the map service and in order to have the list of the gas stations.
Context Diagram and interfaces
Context Diagram
left to right directionactorModeratorasmactor"End User"asuactor"Gas Station Owner"asgoactor"Google Maps API"asgmam-- (EZGas)
u-- (EZGas)
go-- (EZGas)
(EZGas) --gma
Interfaces
Actor
Logical Interface
Physical Interface
Moderator
GUI
Screen, keyboard
End user
GUI
Smartphone/Tablet touch screen
Gas station owner
GUI
Smartphone/Tablet touch screen
Google maps API
JSON over HTTPS
Internet connection
Stories and personas
Mario is a washing machine technician, he goes around the city with his van all the day and he need to fuel up in average two times a week. He refuel in the early morning before going to work, in order to be sure that he won’t have any problem during the day. He prefers to fuel up in a gas station which is close to the house of the first customer of the day so he won’t be late.
He would like to have a way for looking up to the customer’s address and finding the closest gas station with the lower price, but he is really good with the washing machines but not so good in using the smartphone.
Hannah is as traveller, she goes around the world with her camper with her husband Gimmy. They don’t have so much money to spend for fueling up and since they usually don’t know the places in which they stay, they need a way for finding the closest gas station for refueling without spending too much.
Bob is 24, he loves travelling with his girlfriend and friends, and when he visit a place he typically leaves a review of that place, that’s because he really likes to share his experience and to suggest to the other people of the community the place which he prefers. Bob would be really happy to update the price list of EZGas, so that he can always find the gas station with the lower price when he is around, but he can also he can help the other people thanks to his contributes.
Gianni bought his gas station two years ago, he though it was a really good deal, but unfortunately it wasn’t. He hasn’t many customers, because people don’t know about Gianni’s gas station, because it isn’t in the main road. Gianni would like something which could allow him to let people know about his gas station and about his competitive prices.
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Locate the end user
FR2
Show the gas the stations close to a specific address
FR3
Show the price list of a gas station
FR4
Provide a modification of the price list
FR5
Approve a modification
FR6
Update the price list
FR7
Authenticate user
FR8
Claim ownership of a gas station
Non Functional Requirements
ID
Type
Description
Refers to
NFR1
Usability
Application should be used with no training by any person
All FR
NFR2
Performance
All functions should complete in < 0.8 sec
All FR
NFR3
Portability
The application runs in any popular smartphone or tablet running Android at least from version 7.1 and IOS 9
All FR
NFR4
Portability
The user has his data available in any device in which he performed the authentication
All FR
NFR5
Legislative
The application has to be in compliance with the GDPR (General Data Protection Regulation) of the EU
All FR
NFR6
Privacy
The user data and the communications with the users have to be protected with the state of art of the crypto algorithms
All FR
NFR7
Localisation
Automatically select the application language depending on the the system language
NFR8
Localisation
Express the prices of the price list in the currency of the country
The end user has been located (The application knows the end user position)
Nominal Scenario
The end user opens the application and he is located
Variants
The gps is powered off or not available -> raise a warning and ask the user to type an address
Variants
There is no gps signal -> raise a warning and ask the user to type an address
Use case 2, UC2 - FR2 Show the gas the stations close to a specific address
Actors Involved
End user
Precondition
The end user input an address or he is located
Post condition
The the stations gas close to requested position list is shown in a map
Nominal Scenario
The end user is located or he types an address and tap on the search button
Variants
The address is not valid -> raise an error
Use case 3, UC3 - FR3 Show the price list of a gas station
Actors Involved
End user
Precondition
The the list of gas stations close to requested position is shown in the map
Post condition
A window with the price list is shown
Nominal Scenario
The end user tap to the icon of one gas station in the map
Variants
-
Use case 4, UC4 - FR4 Provide a modification of the price list
Actors Involved
End user
Precondition
The end user is authenticated
Post condition
The modification is put in a waiting list waiting to be approved by a moderator
Nominal Scenario
The end user types the current prices and confirm the modification
Variants
The prices are not valid or out of range -> raise an error
Use case 5, UC5 - FR5 Approve modification
Actors Involved
Moderator
Precondition
The moderator is authenticated
Post condition
The modification is performed
Nominal Scenario
The moderator select one modification in the waiting list and check the validity, if it is valid he approves it
Variants
After checking the validity the modification come out to not to be valid -> remove the modification from the waiting list and don't peform any modification
Use case 6, UC6 - FR6 Update the price list
Actors Involved
Moderator
Precondition
A modification of the price list was approved
Post condition
The modification to the price list are effective
Nominal Scenario
The moderator approves a modification for a price list
Variants
-
Use case 7, UC7 - FR6 Update the price list
Actors Involved
Gas station owner
Precondition
The user is authenticated and the owner of the updated gas station
Post condition
The modification to the price list are effective
Nominal Scenario
The gas station owner type the prices of the new price list and confirm the modification
Variants
The prices are not valid or out of range -> raise an error
Use case 8, UC8 - FR7 User authentication
Actors Involved
End user, Gas station owner, Moderator
Precondition
The user is NOT authenticated
Post condition
The user is authenticated
Nominal Scenario
The user types username and password and confirm them
Variants
Username or password are wrong -> Raise an error
Use case 9, UC9 - FR8 Claim ownership of a gas station
Actors Involved
End user, Gas station owner
Precondition
There is no owner in the system for that gas station
Post condition
The modification is put in a waiting list waiting to be approved by a moderator
Nominal Scenario
The user provide the required proofs and send the form
Variants
The user doesn't provide all the required proofs -> raise a warning
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC2
Description
An end user ask for the closer gas station to a specific position
Precondition
Postcondition
The map with the list of gas station is shown
Step#
Step description
1
End user type the address
2
The map with a diameter of 1km with the list of the closest gas station to the required address is shown in the whole page
Scenario 2
Scenario ID: SC2
Corresponds to UC2
Description
An end user ask for the closer gas station to a specific position
Precondition
Postcondition
Step#
Step description
1
End user type the address
2
The address is not valid -> raise a warning
Scenario 3
Scenario ID: SC3
Corresponds to UC2
Description
An end user ask for the closer gas station to a specific position
Precondition
The end user has been located (the application knows the user position)
Postcondition
Step#
Step description
1
The map with a diameter of 1km with the list of the closest gas station to the user is shown in the whole page
Scenario 4
Scenario ID: SC4
Corresponds to UC1
Description
An end user open the application and the map with the gas station is shown
Precondition
Localization is enabled and GPS is available
Postcondition
The end user has been located (The application knows the end user position)
Step#
Step description
1
End user open the application
2
The application tries to localize the user
Scenario 5
Scenario ID: SC5
Corresponds to UC1
Description
An end user open the application and the map with the gas station is shown
Precondition
Postcondition
The scenario SC1 is triggered
Step#
Step description
1
End user open the application
2
The application tries to localize the user
3
The Localization is not enabled, GPS is not available or there is no GPS signal -> Raise a warning