Skip to content

Latest commit

 

History

History
275 lines (217 loc) · 11.2 KB

REQ_s269275.md

File metadata and controls

275 lines (217 loc) · 11.2 KB

Official Requirements Document

Authors: Federica Germinario

Date: 27/03/2020

Version: 1

Contents

Abstract

Some customers volunteer to report prices of fuels in different gas stations where they transit when they refuel.
Customers can be registered and unregistered

For gas stations for which no data is collected during the last 24 hours the reporting activity may be carried out by empoyees of the Gas station itself by sending them a notification. To report the data to the administrator customers and employees can both use a telegram channel/ mail which can be found on the site of the crowdsourcing company.

One administrator of the crowdsourcing EZGas service is collecting and joining all these data in an excel sheet. Possibly as the number of gas stations to manage increases the number of administrators may increase as well in order to efficiently manage the service over time. In the same excel sheet together with fuel prices are collected the loactions of the Gas stations.

Stakeholders

Stakeholder name Description
Administrator Uses the mail/telegram channel in order to collect data and update the excel sheet
Users They are interested in finding a good tradeoff between distance and pricing of Gas stations surronding them
Buyer Is interested in investing in the application in order to improve its incomes
Developer Develops the application
Google Maps Provides maps to the application

Context Diagram and interfaces

Context Diagram

left to right direction
actor Administrator as a
actor User as u
actor GoogleMaps as g
a -- (EZGas)
g -- (EZGas)
(EZGas) -- u

Interfaces

Actor Logical Interface Physical Interface
Administrator GUI Screen, keyboard, Touch screen
Developer GUI Screen, keyboard
Users GUI Screen, keyboard, Touch screen
Google Maps GUI Screen, keyboard, Touch screen

Stories and personas

Mike volunteers to keep track of the prices of fuel of gas stations in an area. Every time Mike has to refuel his vehicle he can send data of the gas station in which he decided to refuel to the application. Notice that Mike can give informations to the application about both diesel fuel price and gas price or just about one of them. In order to send data to the application Mike has to perform the logi to the appliction. Once Mike's data arrive to the application, values for that gas station are updated. Everytime time Mike has to refuel his vehicle, he can check on the application which is the cheapest and nearest station around him.

Mary works in the gas station, it is in her interest to have the values of her gas station updated each day. So if none of the customers of that gas station provide fuel price informations for more then 24 houres a notification is sent to Mery to infor her that in order to have updated price values in the application she has to provice them.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Record information
FR1.1 Record date and time in which a customer or employee sent a report
FR1.2 Record the gas station name and location for which a customer or employee sent a report
FR1.3 Record the gas station fuel price for which a customer or employee sent a report
FR2 Send a notification to the employee if no report has been received for its gas station
FR3 Manage received reports and update gas stations information
FR4 Display on a map system, location and fuel price for each gas station
FR5 Authorize and authenticate
FR5.1 Perform login operation to enter the application
FR5.2 Perform logout operation to exit the application
FR5.3 Define account

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with no training by any user All FR
NFR2 Performance All functions should complete in < 0.5 sec All FR
NFR3 Portability The application runs on browser All FR
NFR4 Portability The application (functions and data) should be portable from a PC to another PC in less than 5 minutes All FR
NFR5 Localization Decimal numbers use . (dot) as decimal separator
NFR6 Realiability Fuel price should be in range (0,10) euros per liter

Use case diagram and use cases

Use case diagram

left to right direction
actor Administrator as a
actor User as u
actor Developer as d
rectangle system{
u --> (FR1 Record date, time, gas station name, location and fuel price sent to the application)
a --> (FR2 Send a notification to the employee if no report has been received)
a --> (FR3 Manage received reports and update gas stations information)
d --> (FR4 Display on a map system, location and fuel price for each gas station)
u --> (FR5 Authorize and authenticate)
(FR5 Authorize and authenticate) .> (FR5.1 Perform login operation): <include>
(FR5 Authorize and authenticate) .> (FR5.2 Perform logout operation): <include>
(FR5 Authorize and authenticate) .>(FR5.3 Define account): <include>}

Use Cases

Use case 1, UC1 - FR1 Record date, time, gas station name, location and fuel price sent to the application

Actors Involved Administrator
Precondition User knows all data to be sent to the application
Post condition Data about that gas station is updated
Nominal Scenario A customer goes to a gas station
Variants The customr inserts wrong data

Use case 2, UC2 - FR2 Send a notification to the employee if no report has been received for its gas station

Actors Involved Administrator
Precondition No report has been received for its gas station
Post condition Values for a given gas station are updated
Nominal Scenario If none of the customers of that gas station provide fuel price informations for more then 24 houres a notification is sent to Mery
Variants

Use case 3, UC3 - FR3 Manage received reports and update gas stations information

Actors Involved Administrator
Precondition Data has been correctely received
Post condition Other users can see updated values
Nominal Scenario A customer goes to the gas station and reports to the application data relative to fuel price of that gas station, the application updates values for that station
Variants There can be a delay in updating the data

Use case 4, UC4 - FR4 Display on a map system, location and fuel price for each gas station

Actors Involved Administrator
Precondition Application needs to have data corresponding toall gas atations
Post condition Upadated data are displayed
Nominal Scenario An user provides data about a gas station to the application, the application has to update data relative to that gas station
Variants The user can cheat on fuel price of that gas station

Use case 5, FR5.1 Perform login operation to enter the application

Actors Involved Administrator
Precondition User already has an account
Post condition The user enters in the application
Nominal Scenario A user wants to provide gas information to the application or wants to see the map of gas stations
Variants Username or password are wrong
Forgotten password

Use case 6, FR5.2 Perform logout operation to exit the application

Actors Involved Administrator
Precondition User is already logged in
Post condition The user exits from the application
Nominal Scenario A user doesn't need to use anymore the application, so decides to exit
Variants No variants

Use case 7, FR5.3 Perform logout operation to exit the application

Actors Involved Administrator
Precondition User is not signed up
Post condition The user gets its credential to enter the application
Nominal Scenario A user wants to enter in the application but doesn't have an account
Variants No variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description User wants to insert informations about a gas station
Precondition User knows all data to be sent to the application
Postcondition Data about that gas station is updated
Step# Step description
1 User performs login
2 User selects a gas station
3 User inserts data about that gas station
4 User commits the inserted data to the application
5 User perform logout

Scenario 2

Scenario ID: SC2 Corresponds to UC5
Description Perform login operation to enter the application
Precondition User already has an account
Postcondition The user enters in the application
Step# Step description
1 User opens the application
2 User provides a username and password to the application
3 Provided credentials are correct
4 User is logged in

Scenario 3

Scenario ID: SC3 Corresponds to UC5
Description Perform login operation to enter the application
Precondition User already has an account
Postcondition The user enters in the application
Step# Step description
1 User opens the application
2 User provides a username and password to the application
3 Provided credentials are not correct
4 User can reset the credential

Glossary

class EZgas

class User{
+ name
+ surname
}

class Driver

class Employee{
+ notification
}

class PersonalAccount{
+ email
+ username
+ password
}

class GasStation{
+ name
+ price
+ fuelType: {Diesel,Gasoline}
+ address
}

class GoogleMaps{
+ longitude
+ latitude
+ address
}
GoogleMaps-- "1..*" GasStation
EZgas-- "*" PersonalAccount
EZgas--  GoogleMaps
PersonalAccount-- User : "has"
EZgas-- "*" GasStation
GasStation-- "1..*" Employee : "works in"

User <|-- Employee
User <|-- Driver