Skip to content

Latest commit

 

History

History
202 lines (155 loc) · 7.33 KB

REQ_s267559.md

File metadata and controls

202 lines (155 loc) · 7.33 KB

Official Requirements Document

Authors: Enrico Clemente

Date: 29/03/2020

Contents

Stakeholders

Stakeholder name Description
Developer Mantains the application and its components
Google Maps Gives the user the location of a Gas Station
User Uses the application to collect the fuel prices and receive their location

Context Diagram and interfaces

Context Diagram

left to right direction
skinparam packageStyle rectangle
actor User as U
actor Developer as D
actor GoogleMaps as G
rectangle system {
  (EZgas) as sys
  U -- sys
  D -- sys
  G -- sys
}

Interfaces

Actor Logical Interface Physical Interface
User GUI Smartphone
Google Maps API Internet connection

Stories and personas

Alan is a food delivery employee and he uses its scooter for his deliveries. He wants to earn the best he can so he has to save on fuel cost. He needs to go, during his job across the city, always to the gas station with the lowest prices.

Cristine is a gas station employee who has the task to gain new customers so she needs the fuel prices of the competitor gas stations to establish the best price in the area for her gas station.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Add a gas station with its prices
FR2 Update prices of an existing gas station
FR3 Show on Google Maps gas stations in a certain area
FR3.1 Filter gas stations on price
FR4 Report bugs and data errors

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 < 3 sec All FR
NFR3 Portability The application runs on smartphones (Android, iOS) All FR

Use case diagram and use cases

Use case diagram

actor User as U
actor Google Maps as M

rectangle EZGas {
	usecase "Add station with its prices" as FR1
	usecase "Update prices" as FR2
	usecase "Show gas stations in a certain area" as FR3
	usecase "Filter gas stations on price" as FR3.1
	usecase "Report bugs and data errors" as FR4
}

FR3 .> FR3.1:<<extend>>
U -> FR1
U -> FR2
M -> FR3
U <- FR3
U -> FR4

Use Cases

Use case 1, UC1 - FR1 Add a gas station with its prices

Actors Involved User
Precondition Gas station exists but it's not present in the application DB
Post condition Gas station is added in the DB
Nominal Scenario User adds the gas station in the application DB, locating it and setting its fuel prices
Variants Gas station is already present in the DB but with wrong location

Use case 2, UC2 - FR2 Update prices of an existing gas station

Actors Involved User
Precondition Gas station is present in the application DB but its prices are not updated
Post condition New prices updates for the gas station
Nominal Scenario User is in a gas station showed by the application but it's prices are not updated so he updates them

Use case 3, UC3 - FR3 Show on Google Maps gas stations in a certain area

Actors Involved User, Google Maps
Precondition User wants to see gas stations in a certain area
Post condition Google Maps shows to the user the gas station in the area
Nominal Scenario User needs to go to a gas station, he uses the application to show him on Google Maps the stations in the area he selected

Use case 4, UC4 - FR3.1 Filter gas stations on price

Actors Involved User
Precondition User wants to see gas stations in a certain area filtered on price
Post condition Google Maps shows to the user the gas station in the area corresponding to the criteria
Nominal Scenario User needs to go to a gas station which has certain fuel prices, he uses the application to show him on Google Maps the stations in the area he selected
Variants Gas station prices are not updated so the data are not correct

Use case 5, UC5 - FR4 Report bugs and data errors

Actors Involved User
Precondition User detects a bug or data error
Post condition User reports the issues
Nominal Scenario User detects a bug or data error and reports them so a Developer could fix them

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description User adds a gas station with its prices
Precondition Gas station exists but it's not showed in the application DB
Postcondition Gas station is added in the DB
Step# Step description
1 User adds the gas station
2 User sets fuel prices
3 User locate the station on Google Maps

Scenario 2

Scenario ID: SC2 Corresponds to UC2
Description User updates prices of an existing gas station
Precondition Gas station present in the application DB but its prices are not updated
Postcondition New prices updates for the gas station
Step# Step description
1 User sees the prices of a gas stations are not updated
2 User updates the prices

Scenario 3

Scenario ID: SC3 Corresponds to UC3 and UC4
Description User wants to see on Google Maps gas stations in a certain area filtered by price
Precondition Gas station present in the application DB
Postcondition Google Maps shows to the user the gas station in the area corresponding to criteria
Step# Step description
1 User asks application to show gas station in a certain area
2 User set price filter
3 Google Maps shows the desired stations

Scenario 4

Scenario ID: SC4 Corresponds to UC5
Description User reports bugs and data errors
Precondition Bug or data errors presents in the application
Postcondition Issues reported to the application
Step# Step description
1 User finds a bug or a data error
2 User reports the issue