Skip to content

Latest commit

 

History

History
285 lines (224 loc) · 10.7 KB

REQ_s228489.md

File metadata and controls

285 lines (224 loc) · 10.7 KB

Official Requirements Document

Contents

Abstract

Today life has become more and more dinamic and owning a car is useful or in many cases even necessary. But cars need fuel and their owners need to refuel; but where and at which cost? EZGas can help them.

The purpose of this application is to locate and display every gas station in the area together with the prices the gas station's owners apply. The driver can decide whether to go to a specific station and pay less or to go to the nearest station.

Stakeholders

Stakeholder name Description
Driver Uses the application to search for a gas station (the nearest or the cheaper) and reach it
Gas station owner Can share informations and prices of his gas station
Map API Locates the gas stations

Context Diagram and interfaces

Context Diagram

left to right direction
actor :Driver: as a
usecase (EZGas) as uc
a -- uc
actor :Gas station owner: as b
b -- uc
actor :Map API: as m
uc -- m

Interfaces

Actor Logical Interface Physical Interface
Driver GUI Screen, keyboard,touchscreen
Gas station owner GUI Screen, keyboard,touchscreen
Map API Web services Internet connection

Stories and personas

Chandler is a pharmaceutical salesman, for his work he needs to drive a lot and has a tight schedule of appointments. For this reason when he needs to refuel his car he tries to reach the nearest gas station, in order to complete the operation as quickly as possible. Unfortunately, he has to travel to new cities and doesn't always know where to go and the whole process can be long. With EZGas he will be able to find the nearest gas station and save time.

Monica is a housewife with two children. She tries to spend the least possible on gas so that she can buy icecream to her boys with the money she saved from refueling. However the prices at gas stations change often and she's not able to keep track of which is the cheapest. EZGas will help her find the best one for her needs and help her save money.

Joey is a gas station owner. His business goes quite well but he knows that it could be even better if he could give his station more visibility. With EZGas he will be able to do so by sharing his position and the prices of the fuel, and by receiving good reviews from his customers.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Manage the creation of an account
FR1.1 Manage the creation of driver's account
FR1.2 Manage the creation of gas station owner's accout
FR2 Manage the visualization of the map with the gas stations in the current position
FR3 Manage the view of bigger and smaller areas on the map
FR4 Manage the update of fuels prices by gas station owners
FR5 Record the reviews of drivers for a specific gas station
FR6 Record the position and prices of a gas station
FR7 Manage the creation of a new gas station

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with no training FR1, FR2, FR3, FR4
NFR2 Performance The localization of gas station should be complete in < 5 sec FR2, FR3
NFR3 Portability The application runs on Android (5.1 and more recent), iOS (13 and more recent), Chrome (79, 80) and Firefox (72) All FR

Use case diagram and use cases

Use case diagram

left to right direction
usecase (EZGas) as app 
actor Driver as d
actor :Gas station owner: as g
actor :Map API: as m
d -- (FR1.1   Creation of driver's account)
(FR1.1   Creation of driver's account) -- app
g -- (FR1.2 Creation of gas station owner's account)
(FR1.2 Creation of gas station owner's account) -- app
g -- (FR4 Update of fuels prices)
(FR4 Update of fuels prices) -- app
g -- (FR7 Creation of new gas station)
(FR7 Creation of new gas station) -- app
app -- (View map)
(View map) -- m
d -- (FR5 Record review of gas station)
(FR5 Record review of gas station) -- app

Use Cases

Use case 1, UC1 - FR1.1 Creation of Driver account

Actors Involved Driver
Precondition The Driver isn't already registered
Post condition The Driver is registered and his information are memorized
Nominal Scenario The Driver opens the application and insert his personal data (email and password)
Variants

Use case 2, UC2 - FR1.2 and FR6 Creation of Gas station owner account

Actors Involved Gas station owner
Precondition The Gas station owner isn't already registered
Post condition The Gas station owner is registered and his information are memorized
Nominal Scenario The Gas station owner opens the application and insert his personal data (email and password) and the information about the gas station (position and types of fuels)
Variants

Use case 3, UC3 - FR4 Update of fuel prices

Actors Involved Gas station owner
Precondition The type of fuel to be updated exist in that gas station
Post condition The cost of that type of fuel is updated for that station
Nominal Scenario The Gas station owner opens the application and insert his personal data (email and password) and the new cost of the fuel
Variants

Use case 4, UC4 - FR5 Record review of gas station

Actors Involved Driver
Precondition The Driver and the gas station exist
Post condition The gas station has a new review
Nominal Scenario The Driver opens the application and insert his personal data (email and password) then select the gas station he wants to review and leave a comment
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description Driver D access the application and wants to create an accout
Precondition D hasn't an account with the same email address
Postcondition Account of D created
Step# Step description
1 Driver opens the application and starts the registration procedure
2 Driver is required to insert his email
3 The email does not correspond to an existing account
4 Driver chooses a new password

Scenario 2

Scenario ID: SC2 Corresponds to UC1
Description Driver D access the application and wants to create an accout
Precondition D has an account with the same email address
Postcondition Account of D not created
Step# Step description
1 Driver opens the application and starts the registration procedure
2 Driver is required to insert his email
3 The email corresponds to an existing account
4 The system delivers an error message and interrupts the procedure

Scenario 3

Scenario ID: SC3 Corresponds to UC2
Description Gas station owner G access the application and wants to create an accout
Precondition G hasn't an account with the same email address
Postcondition Account of G created
Step# Step description
1 G opens the application and starts the registration procedure
2 G is required to insert his email
3 The email does not correspond to an existing account
4 G chooses a new password
5 G is required to insert the position of the gas station and the types of fuel
6 The gas station and its informations are saved

Scenario 4

Scenario ID: SC4 Corresponds to UC2
Description Gas station owner G access the application and wants to create an accout
Precondition G has an account with the same email address
Postcondition Account of G not created
Step# Step description
1 G opens the application and starts the registration procedure
2 G is required to insert his email
3 The email corresponds to an existing account
4 The system delivers an error message and interrupts the procedure

Scenario 5

Scenario ID: SC5 Corresponds to UC3
Description Gas station owner G access the application and wants to update prices of fuels of his Gas station S
Precondition G has an account
Postcondition S's prices are modified
Step# Step description
1 G opens the application and logs in
2 G is required to insert the new prices
3 The prices are modified

Scenario 6

Scenario ID: SC6 Corresponds to UC4
Description Driver D access the application and wants to leave a review of a Gas station S
Precondition D has an account and S exist
Postcondition S has a new review
Step# Step description
1 Driver opens the application and logs in
2 Driver is required to insert his review
3 The review is saved

Glossary

class EZGas
class Driver {
+ name
+ surname
}

class Owner {
+ name
+ surname
}

class DriverAccount {
+ email
+ password
}
class OwnerAccount {
+ email
+ password
}

class GasStation {
+ ID
+ price
}

class FuelType {
+ fuel
+ color
}

class Review {
+ gasStationID
+ driverEmail
}


EZGas -- "*" DriverAccount
EZGas -- "*" OwnerAccount
EZGas -- "*" GasStation

OwnerAccount -- GasStation : manages a
OwnerAccount -- Owner : has a

DriverAccount -- "*" Review : writes a
DriverAccount -- Driver : has a

GasStation -- "*" FuelType : sells
GasStation -- "*" Review