Skip to content

Latest commit

 

History

History
246 lines (192 loc) · 8.39 KB

REQ_s245885.md

File metadata and controls

246 lines (192 loc) · 8.39 KB

Official Requirements Document

Author: Giuseppe Raffa

Date: 05/04/2020

Version: 1

Contents

Abstract

EZGas is a web application that allows users, called drivers, to collect informations about near gas stations. Drivers can select a gas station and the application, using Google Maps API, shows them the best route.

At the same time, gas station owners can use application to register their business, describe available fuel types with related prices and get more customers.

Stakeholders

Stakeholder name Description
Drivers They use the application to collect informations about near gas stations
Gas station owners They use the application to show position of them gas station, fuel types and related price
Developer He is interested to develop a reability and user friendly web application

Context Diagram and interfaces

Context Diagram

left to right direction
actor driver as d
actor "gas station owner" as gao
actor "Google Maps API" as gma
d -- (EZGas)
gao -- (EZGas)
gma -- (EZGas)

Interfaces

Actor Logical Interface Physical Interface
Driver GUI Screen, keyboard
Gas station owner GUI Screen, keyboard
Google Maps API Web API GPS

Stories and personas

Tom travels a lot for work and drives many kilometers every day. Finding a cheap gas station is very important to him, but it is not easy. Often Tom doesn't know the place where he is. But now Tom uses EZGas and refuel isn't a problem. In a few seconds Tom finds the most convenient gas station and the best route to get there.

John recently moved to the city and decided to invest in a gas station. Thanks to EZGas, John has quickly increase his customers highlighting low fuel price and the good location of gas station.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Manage account registration
FR2 Update account information
FR3 Manage drivers preferences about fuel type
FR4 Filter gas stations based on location, fuel type and price
FR5 GPS tracking at the selected service station
FR6 Manage types of fuel and prices
FR7 Manage gas station logo

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with no training by any drives and gas station owners All FR
NFR2 Performance All functions should complete in < 1.0 sec All FR
NFR3 Portability The application runs on every browser and on android/iOS OS All FR
NFR4 Localisation Decimal numbers use . (dot) as decimal separator All FR
NFR5 Privacy Application should be GDPR compliance All FR

Use case diagram and use cases

Use case diagram

left to right direction
actor driver as d
actor "gas station owner" as gao
actor "Google Maps API" as gma
d -- (FR1 Manage account registration)
gao -- (FR1 Manage account registration)
d -- (FR2 Update account information)
gao -- (FR2 Update account information)
d -- (FR3 Manage drivers preferences about fuel type)
d -- (FR4 Filter gas stations based on location, fuel type and price)
d -- (FR5 GPS tracking at the selected service station)
gma -- (FR5 GPS tracking at the selected service station)
gao -- (FR6 Manage types of fuel and prices)
gao -- (FR7 Manage gas station logo)

Use Cases

Use case 1, UC1 - FR1 Manage account registration

Actors Involved Driver
Precondition Driver wants to create an account
Post condition Driver can use EZGas application
Nominal Scenario Driver downloads EZGas application and clicks on "create new account" button to begin the signup process
Variants

Use case 2, UC2 - FR2 Update account information

Actors Involved Driver
Precondition Driver has an account and he is logged in
Post condition Driver's email is updated
Nominal Scenario Driver changes personal email and he would like to change this information on EZGas account
Variants

Use case 3, UC3 - FR3 Manage drivers preferences about fuel type

Actors Involved Driver
Precondition Driver has an account and he is logged in
Post condition Driver's fuel type preference is setting
Nominal Scenario Driver would like to set preference about fuel type
Variants

Use case 4, UC4 - FR4 Filter gas stations based on location, fuel type and price

Actors Involved Driver
Precondition Driver has an account and he is logged in
Post condition Only gas stations that respect driver's constraints are showed
Nominal Scenario Driver would like to filter search results
Variants No gas stations are showed

Use case 5, UC5 - FR5 GPS tracking at the selected service station

Actors Involved Driver
Precondition Driver has an account and he is logged in
Driver would like to refuel
Post condition Fuel tank is full
Nominal Scenario Driver opens the application and logs in. He searches gas stations nears and selects one
Variants No gas stations in the search area

Use case 6, UC6 - FR6 Manage types of fuel and prices

Actors Involved Gas station owner
Precondition Owner has an account and he is logged in
Owner would like to update fuel types and related price
Post condition Gas station informations are updated
Nominal Scenario Owner opens the application and logs in. He selects setting tab and adds/removes fuel type or updates prices
Variants

Use case 7, UC7 - FR7 Manage gas station logo

Actors Involved Gas station owner
Precondition Owner has an account and he is logged in
Owner would like to update gas station's logo
Post condition Gas station's logo is updated
Nominal Scenario Owner opens the application and logs in. He selects the logo picture and uploads a new photo
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description Manage account registration
Precondition Driver does not have an account on the EZGas application
Postcondition Driver can use the application
Step# Step description
1 Driver installs EZGas application on smartphone
2 Driver opens EZGas and clicks on "create new account" button
3 He fills form with personal informations
4 He confirms email address clicking on link send to him

Scenario 2

Scenario ID: SC2 Corresponds to UC6
Description Manage types of fuel and prices
Precondition Owner has an account
Postcondition A new fuel type is available
Step# Step description
1 Owner logs in using web application
2 He clicks on "settings" tab and then on "add fuel type"
3 He fills form with the name of new fuel type and related price
4 He confirms clicking on "apply" button

Glossary

class User {
	+ ID
	+ name
	+ surname
	+ email
	+ password
}

class Driver

class Owner

class "Gas station" {
	+ name
	+ logo
	+ latitude
	+ longitude
}

class Fuel {
	+ type
	+ price
}

class Preference {
	+ user id
}

User <|-- Owner
User <|-- Driver
Driver "1"--"0..*" Preference
Preference "0..*"--"0..*" Fuel
"Gas station" "*"--"*" Fuel
Owner "1"--"1..*" "Gas station":owns