Skip to content

Latest commit

 

History

History
307 lines (233 loc) · 11.5 KB

REQ_s269274.md

File metadata and controls

307 lines (233 loc) · 11.5 KB

Official Requirements Document

Authors: Alessandro Pisani

Date: 29/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
rectangle system{
	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

Peter volunteers to report the price of the gas station where he refuels his car. Peter is directly touched by these problematics since he owns both a diesel car and a gasoline car. In his neighbourhood there's plenty of gas stations each one with fluctuating prices. John is tired of picking always the more expensive gas station among the ones present in its neighbourhood.

John is an employee of a gas station, since his gas station didn't get any fuel price update whithin the last 24 hours receives a notification to update the gas statio's prices if he desires to do so.

Paul is planning a trip with its friends and they would like to refuel in the cheapest gas stations in order to spend the less money. They decided to use EZGas since they don't knwo the pricing of the gas stations outside their town.

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
NFR5 Realiability Fuel price should be expressed as €/L

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 to enter the application): <include>
	(FR5 Authorize and authenticate) .> (FR5.2 Perform logout operation to exit the application): <include>
	(FR5 Authorize and authenticate) .> (FR5.3 Define account): <include>
}

Use Cases

Use case 1, UC1 - FR1.1,FR1.2,FR1.3 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 Values for a given gas station are 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 Developer
Precondition Application has recorded data to be displayed
Post condition updated fuel price for each gas station is displayed
Nominal Scenario An user reports information regarding a gas station to the application. The application updates data relative to the gas station
Variants the user may cheat on the fuel price

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

Actors Involved User
Precondition User must already have an account
Post condition User enters into its personal area
Nominal Scenario A user wants to report information or wants to see gas stations on the map.
Variants Invalid username or/and password. Password forgotten

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

Actors Involved User
Precondition User must already be logged in
Post condition User exits its own personal area
Nominal Scenario User can optionally log out from its personal area. Later a new log in operation will be required
Variants

Use case 7, UC6 - FR5.3 Define Account

Actors Involved User
Precondition User is not signed up
Post condition User is signed up
Nominal Scenario User signs up and gets its own credentials to access its own personal area
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description User inserts new information
Precondition User knows all data to be sent to the application
Postcondition Values for a given gas station are updated
Step# Step description
1 User permorms a log in
2 User selects Gas Station GS
3 User inserts current Fuel Price FP
4 User commits the inserted data
5 User performs a log out

Scenario 2

Scenario ID: SC2 Corresponds to UC1
Description User inserts new information
Precondition User knows all data to be sent to the application
Postcondition Values for a given gas station are updated
Step# Step description
1 User permorms a log in
2 User inserts a new Gas Station GS
3 User inserts current Fuel Price FP
4 User commits the inserted data
5 User performs a log out

Scenario 3

Scenario ID: SC3 Corresponds to UC5
Description Perform login operation to enter the application
Precondition User must already have an account
Postcondition User enters into its personal area
Step# Step description
1 User opens the application
2 User enters its credentials
3 User's credentials are correct
4 User is now logged in

Scenario 4

Scenario ID: SC4 Corresponds to UC5
Description Perform login operation to enter the application
Precondition User must already have an account
Postcondition User enters into its personal area
Step# Step description
1 User opens the application
1 User has forgotten its credentials
2 User can reset the credentials
3 User can now perform a log in

Glossary

class EZgas

class User{
+ name
+ surname
}

class GoogleMaps{
+ longitude
+ latitude
+ address
}

class EZgasAccount{
+ email
}

class Driver{
}

class Employee{
+ notification
}

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

EZgas-- "*" EZgasAccount
EZgas-- "*" GasStation
EZgas -- GoogleMaps


GasStation-- "1..*" Employee : "works in"
GoogleMaps -- "*" GasStation

EZgasAccount -- User : "has"


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