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
This application is oriented to two types of user: Administrators and Customers.
Customers would like to collect prices of different gas stations in order to comparing and choising the best based on the ratio best-price/distance.
To perform this comparison the user must use an setnav system which will show him/her the stations in the area.
The system should authenticate the customer ID and position in order to update possible shown results.
The application must also be able to check if the customer is a fidelty client in order to apply him/her discounts/gifts.
The fidelity of a client is mainly based on the number of feedbacks the user have done so far.
The more feedback the customer does, the most benefits he/she receives.
Gas price can be updated periodically (daily). This task is in charge of an administrator. In doing so, the administrator should always check changes among the prices. On this purpose, he/she periodically receives a message with the information.
If many feedbacks report complaints about prices, the administrator must be able to change accordingly.
On this purpose, the administrator checks all the given feedbacks of users.
The administrator is also able to help the user when is asked, both for helping and for advertising some promotions.
Stakeholders
Stakeholder name
Description
Administrator
Uses the application (with some privileges) to update fuel prices possibly.
Customer
Use the application to find a place in the neighbourhood with the best price.
LocalServer
Provides the updated information about local gas stations to users.
Context Diagram and interfaces
Context Diagram
left to right directionactorAdministratorasaactorCustomerasbactorLocalServerasca-- (EZGas)
b-- (EZGas)
(EZGas) --c
Interfaces
Actor
Logical Interface
Physical Interface
Administrator
GUI
Screen, keyboard
User
GUI
Screen, keyboard
LocalServer
TCP/IP
Wi-Fi/4G-LTE connectons
Stories and personas
David is driving away for a family holiday. So, after having drived for a while he needs to gas up. He should turn on his location by using an existing setnav application (such as Google Maps, Waze, etc) in order to find a near petrol station. Being a fidelity client of Q8 and Esso, he can apply for some discount by using his client cards.
So the system, when possible, should prioritize the companies to which David is a fidelity client. It should additionally both authenticate the user and checking the current validity of his/her card.
On the other hand, Roger is the administrator of the neighbourhood gas stations who should update the information about price and promotion availability.
Some additional gifts can be given to the fidelity clients during Christmas holidays.
Everytime clients like David use their own fidelty card, they must be sure about the validity of the card. If they use an invalid fidelty card (e.g. it is expired) an error message will be shown.
David can possibly renew the card by filling up a module online.
For doing so, he should specify his userID and the Company name of the gas station (ex. Q8,Esso, etc.).
The system will then be in charge of contacting Roger who will aapprove the request.
In the meanwhile, Roger also sends David an additional promotion if he accepted to give a feedback. This feedback would be saved in the database of the local server which will be used to increase the fidelity level of David.
Once it has been done, David can keep driving away.
Use case diagrams and use cases
Use case diagrams
left to right directionactorCustomerasaa-- (FR1Activateposition)
a-- (FR2Logintotheapplication)
a-- (FR7Chooseapetroilstation)
a-- (FR8Gasesupthecar)
left to right directionactorLocalServerasaa-- (FR3Authenticateuser)
a-- (FR4Trackuserposition)
a-- (FR5Givelastupdatedinformation)
left to right directionactorAdministratorasaa-- (FR5.1Updateprices)
a-- (FR7.3Giveacupontotheuser)
a-- (FR9.1Checkingfeedbacks)
Use Cases
Use case 1, UC1 - FR1 Activate Position
Actors Involved
User
Precondition
SetNav application installed, device is not out of battery and connection stable
Post condition
Customer.location='active'
Nominal Scenario
Customer turns on his location and runs SetNav application
Variants
If connection not stable, warning message
Use case 2, UC2 - FR2 Login to the application
Actors Involved
User
Precondition
Customer has installed EZGas application, User has an account
Post condition
Customer.logged_in = 'true'
Nominal Scenario
Customer inserts his/her own credentials
Variants
Customer does a reset password because he/she has forgotten it; User create a new account
Use case 3, UC3 - FR3 Authenticate User
Actors Involved
LocalServer
Precondition
Customer Account exists (accountID>=0)
Post condition
LocalServer.authenticathed_user = true
Nominal Scenario
A local server authenticates the user and the latter can access the application services.
Variants
LocalServer.authenticathed_user = false
Use case 4, UC4 - FR4 Track customer position
Actors Involved
LocalServer
Precondition
Customer has been authenticated and user turned his/her position on
The system keeps track of customer movement in order to update the results shown in the maps continously
Variants
Location is lost and a connection error message is shown
Use case 5, Give last updated information
Actors Involved
LocalServer
Precondition
Available information
Post condition
All the information are reported
Nominal Scenario
Application collects all the information about the nearby gas stations from a database stored in the local server. Then, this information is given to the users.
Variants
No available information, nothing to be reported.
Use case 5.1, Update prices
Actors Involved
Administrator
Precondition
Prices have been changed
Post condition
All the updates has been reported
Nominal Scenario
Administrator will compare the new prices with the old ones. If there have been changes .
Variants
No available information, nothing to be reported.
Use case 6, Sort available gas stations
Actors Involved
User
Precondition
Nearby gas stations available
Post condition
Best choise is given
Nominal Scenario
The application will verify if there are any gas stations related to companies which the customer is a fidelity client. Those are eventually prioritized, otherwise the selection is made based on price and distance of the gas station.
Variants
No available gas station, the customer should keep driving to find some.
Use case 8, Gasing up
Actors Involved
User
Precondition
Gas station choosen
Post condition
customer.money -= purchase
Nominal Scenario
The user puts money at the station terminal to gas up the car.
Variants
customer.cupon -= purchase
Use case 9, Giving feedback
Actors Involved
Customer
Precondition
UCustomer ser has gased up his/her car using the application
Post condition
Given feedback of the service
Nominal Scenario
The user gives a feedback on the utility of the application service
Variants
The customer reports some issue/complaints: problem in gasing up, complaints about price/service.
Use case 9.1, Checking feedback
Actors Involved
Administrator
Precondition
The customer has given a feedback
Post condition
Feedback recorded
Nominal Scenario
The administrator check feedback type and eventually gives extra fidelity points to the user
Variants
If Christmast holiday advertisements. If emergency call send a rescue team. If complaints about prices take it into account.
Relevant scenarios
Scenario 1
Scenario ID: SC1
Corresponds to UC8
Description
Gasing up
Precondition
User choosed a gas station
Postcondition
update money of User; update points/cupon of User
Step#
Step description
1
User select how much fuel to buy
2
User decides to use credit o cupon
3
User makes the purchase
4
The credit/points of user is being updated
Scenario 2
Scenario ID: SC2
Corresponds to UC9
Description
User gives a feedback
Precondition
User accepted to give a feedback
Postcondition
User receives additional cupon/points
Step#
Step description
1
User puts his/her own credentials
2
User fill out a module
3
User receives additional points
4
Database of feedback is updated
Scenario 3
Scenario ID: SC3
Corresponds to UC5.1
Description
Updating prices
Precondition
Prices has been updated OR many complaints
Postcondition
Updated information are spread among users
Step#
Step description
1
Administrator check the date OR complaints
2
Administrator check if prices are changed
2.1
If so, administrator changes the information in the local servers databases
3
Local servers show the correct information about prices
Functional and non functional requirements
Functional Requirements
ID
Description
FR1
User must activate his/her location by using an existing setnav application
FR2
User must login to the application
FR3
Application will authenticate the user
FR4
Application will use the setnav application to find near petroil stations
FR5
Application will contact a local server to get the info (company, prices, availability) of the near petroil stations
FR6
Application will sort properly the list of available petroil station (best-price, distance and fidelty client)
FR7
User choses a particular petroil station
FR8
User gases up his/her car
FR9
User gives a feedback
Extensions
ID
Description
FR2.1
A 'Resume Password' request is be sent if the user forgot the password
FR2.2
Client fills up a 'Resume Password' module
FR2.3
An Authentication Server updates new user credentials
FR3.1
An authentication error message will be shown to the user. The system restarts from FR2
FR5.1
Administrator updates prices if they have been changed
FR5.2
Application will show updated information
FR7.1
If the user is a fidelity client he uses his/her fidelity card
FR7.2
If the fidelity card is invalid, the user can use the application to request a new one
FR7.3
If the user was already a fidelity card, the administrator gave him a grupon to be used temporarily
FR8.1
User applies possible discounts
FR9.1
Administrator check the feedback
Non Functional Requirements
ID
Type (efficiency, reliability, .. see iso 9126)
Description
Refers to
NFR1
Usability
Application should be used with no training by any users
All FR
NFR2
Performance
Authentication and Network services should be completed in a few seconds
FR2,FR3,FR5
NFR3
Portability
The application runs on mobile devices (Android) and desktops (Microsoft,Linux)
All FR
NFR4
Maintanance
Updates done by the feedback of the user should be integrated without any problem.
All FR
NFR5
Localisation
Euro is the current currency. A currency converter is made available within the application to help foreign users.