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
EZGas is a crowdsourcing service which shares prices of GasStations. Users can just use the service to check prices, but they can also interact adding untracked Stations or updated existing prices if they are obsolete.
The administrator is in charge of manage the service (User, accounts and Stations), accessing to the Gas stations data. He can check the utilization rate of the service, and can also make reports about the update rate of a singe Gas Station.
The service uses an external Map Service provider.
Stakeholders
Stakeholder name
Description
Administrator
Manage the service
User
Use the EZGas service. He can see prices and also update them
Map system
External Map like Google Maps
Developer
Develop the system
Context Diagram and interfaces
Context Diagram
left to right directionactorAdministratorasaleft to right directionactorUserasuleft to right directionactorMapSystemasmapleft to right directionactorDeveloperasda-- (EzGas)
u-- (EzGas)
map-- (EzGas)
d-- (EzGas)
Interfaces
Actor
Logical Interface
Physical Interface
Administrator
GUI
Screen, keyboard
User
GUI
Screen, keyboard
Map System
API
Internet connection
Stories and personas
A user wants to find the cheapest gas station near his location. He also would like to inform other users when he find wrong or obsolete price, or just a gas station which is not recorded. The user can also check and signal the status of a Gas Station (if doesn't exist in reality, or closed).
A guest user just wants to find a near and cheap gas station. He his happy to see many gas station and up to date prices on EzGas service.
Use case diagram and use cases
Use case diagram
left to right directionactorUserasuleft to right directionactorMapSystemasmapleft to right directionactorAdministratorasa
(FR4Login) <.. (FR1UpdatepriceofaGasStation)
(FR4Login) <.. (FR2AddaGasStation)
u--> (FR1UpdatepriceofaGasStation)
u--> (FR2AddaGasStation)
(FR2AddaGasStation) -->mapa--> (FR6Produceareport)
a--> (FR7Manageusersandaccounts)
Use Cases
Use case 1, UC1 - FR2, FR4 User update price of a gas station
Actors Involved
User
Precondition
Gas station G is registered
Post condition
G.fuel1.price = X, G.fuel2.price = Y, ...
Nominal Scenario
User login, selects gas station G, read prices, update prices
Variants
Use case 2, UC2 - FR2, FR4 User add a new gas station
Actors Involved
User
Precondition
List of gas stations L exists
Post condition
Define new gas station G, define prices
L.add(G)
Nominal Scenario
User login, fill form to add a gas station, insert location
Variants
Use case 3, FR4, FR6 Produce report about update rate of a gas station
Actors Involved
Administrator
Precondition
Gas station G exists
Post condition
Nominal Scenario
Administrator selects gas station G, defines a time range, application collects all updates for G in the time range and presents them
Variants
Use case 3, FR4, FR9 Produce report about update rate of a gas station
Actors Involved
Administrator
Precondition
Gas stations list, Location known
Post condition
User obtain nearest Gas station
Nominal Scenario
User filter Gas stations by Location/Price, choose the best result
Variants
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC1
Description
User update prices of a gas station
Precondition
fuel1.price, fuel2.price, ...
Postcondition
fuel1.price = x, fuel2.price = y, ...
Step#
Step description
1
User Login to the service
2
User selects the gas station to update
3
Write new prices
Scenario 2
Scenario ID: SC2
Corresponds to UC2
Description
User add a new gas station
Precondition
-
Postcondition
list of gas stations updated
Step#
Step description
1
User Login to the service
2
User fill form to insert a new gas station
3
User use his location as gas station location
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
Update price of a gas station
FR2
Store a new gas station
FR3
Record that a user has seen prices of a gas station
FR4
Login to the service
FR5
Logout from the service
FR6
Produce a report about update rate for each stored gas station
FR7
Manage users and accounts
FR8
Signal if a Gas Station doesn't exist
FR9
Search station by distance/price
FR10
Store a user account
Non Functional Requirements
ID
Type (efficiency, reliability, .. see iso 9126)
Description
Refers to
NFR1
Usability
Application should be used with no training
All FR
NFR2
Performance
All functions should complete in < 0.5 sec
All FR
NFR3
Portability
The application runs on mobile phones and as a Web Service