Skip to content

Latest commit

 

History

History
385 lines (301 loc) · 12.6 KB

REQ_s270436.md

File metadata and controls

385 lines (301 loc) · 12.6 KB

Official Requirements Document

Authors: Concetto Antonino Privitera

Date: 24/03/2020

Version: 1

Change history

Version Changes
1 Initial version

Contents

Abstract

EZGas is a crowdsourcing service that allows users to:

  • collect prices of fuels in different gas stations
  • locate gas stations in an area, along with the prices they practice.

Stakeholders

Stakeholder name Description
Administrator Manages fuel prices of different gas stations
Developers Manages problems of service
User Uses the application for locating gas stations and checking prices, but can also add/update fuel prices
Google Maps External service used to offer service of maps

Context Diagram and interfaces

Context Diagram

left to right direction
actor Administrator as a
actor Developer as de
actor User as u
actor Google_Maps as g
rectangle system {
	a -- (EZGas)
	de -- (EZGas)
	de -|> u
	a -|> u
	u -- (EZGas)
	g -- (EZGas)
}

Interfaces

Actor Logical Interface Physical Interface
Administrator GUI Screen, keyboard
Developer GUI Screen, keyboard
User GUI Screen, keyboard
Google Maps Data Exchange Network

Stories and personas

Most of people typically travel a lot by car, so they usual need to refuel their vehicle. An administrator of gas stations would like to show its fuel prices online. The idea is to create a service (website and app) that allows users to show a map with all gas stations and their information. Of course, these stations have to agree with the service in order to be showed. These prices can be added/updated by the administrator or user for each gas stations by means a personal section in the website.

Each administrator can register in this service by means a specific section separated by user registration page because it needs more controls to verify the ownership of gas stations. The administrator can add or remove gas stations from the service, but also manage prices.

Users just need to create an account on the website/app to use the service. Afterwise, they get a personal area where they can add/update fuel prices and show the map with gas stations information. The map is directly implemented in the website/app.

Notice that for semplicity only the last update on price for each type of fuel is shown for each gas station.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Creation user account
FR2 Creation administrator account
FR3 Adding/removing gas stations
FR4 Handle geolocalization and maps
FR5 Show prices in each gas station
FR6 Adding/Updating prices available in each gas station

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 app runs on Android (5 or newer) and IOS (7 or newer). The website should run in the most common browsers All FR
NFR4 Reliability App/website doesn't need the support on geolocalization (address can be insert manually to find a gas station) All FR
NFR5 Localisation Petrol price is in euro

Use case diagram and use cases

Use case diagram

left to right direction
actor Administrator as a
actor User as u
actor Google_Maps as g
rectangle system {
	u ---> (FR1 Creation user account)
	a -> (FR2 Creation administrator account)
	a -> (FR3 Adding/removing gas stations)
	u -> (FR5 Show prices in each gas station)
	u -> (FR6 Adding/Updating prices available in each gas station)
	u -> (FR4 Handle geolocalization and maps)
	g <- (FR4 Handle geolocalization and maps)

	(FR4 Handle geolocalization and maps) .> (FR5 Show prices in each gas station): include
	(FR4 Handle geolocalization and maps) .> (FR3 Adding/removing gas stations): include
	
	a -|> u
}

Use Cases

Use case 1, UC1 - FR1 Creation account User

Actors Involved User
Precondition EZGas Server is working and no network problems
Post condition New user account with the capability to add/update prices
Nominal Scenario User wants to use the service, but it hasn't an account
Variants

Use case 2, UC2 - FR2 Creation administrator account

Actors Involved Administrator
Precondition EZGas Server is working and no network problems
Administrator account doesn't exist
Post condition Administrator account created
Nominal Scenario Administrator wants to join in the service with its gas stations
Variants

Use case 3, UC3 - FR3 Adding/removing gas stations

Actors Involved Administrator
Precondition EZGas Server is working and no network problems
Administrator account exists
Post condition added or removed gas station
Nominal Scenario Administrator wants to add or remove its gas stations
Variants

Use case 4, UC4 - FR4 Handle geolocalization and maps

Actors Involved User, Administrator and Google Mpas
Precondition EZGas Server is working and no network problems
Google Maps Server is working and no network problems
Post condition Map showed
Nominal Scenario User or Administrator goes into map section to show all gas stations that offer the service EZGas
Variants

Use case 5, FR5 Show prices in each gas station

Actors Involved User and Administrator
Precondition EZGas Server is working and no network problems
Post condition
Nominal Scenario User/Administrator clicks on a gas station in order to show its information
Variants

Use case 6, FR6 Adding/Updating prices available in each gas station

Actors Involved User and Administrator
Precondition EZGas Server is working and no network problems
Post condition Added or or updated prices in a gas station
Nominal Scenario User/Administrator clicks on a gas station and wants to make some changes
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description User wants to use the service
Precondition EZGas Server is working and no network problems
Post condition New user account with the capability to add/update prices
Step# Step description
1 User goes to website or app
2 Insert nickname and password
3 User account created

Scenario 2

Scenario ID: SC2 Corresponds to all use cases
Description User or administrator wants to use website/app
Precondition EZGas Server is not working
Postcondition No usage of service
Step# Step description
1 User tries to perform an action on the website or app
2 Website or app returns an error of connection

Scenario 3

Scenario ID: SC3 Corresponds to UC3, UC5
Description User or administrator wants to use maps
Precondition Google maps Server is not working
Post condition Allow operations without maps
Step# Step description
1 User/administrator goes to website or app
2 Tries to use geolocalization but isn't working
3 Apps will allow to insert address or to select gas station from a list without a map

Scenario 3

Scenario ID: SC3 Corresponds to UC2
Description Administrator wants to use the service
Precondition EZGas Server is working and no network problems
Administrator account doesn't exist
Post condition Administrator account created
Step# Step description
1 User goes to website or app
2 Insert nickname and password
3 Insert certification of ownership of some gas stations
4 Administrator account created

Scenario 4

Scenario ID: SC4 Corresponds to UC3
Description Administrator wants to add or remove gas stations
Precondition EZGas Server is working and no network problems
Administrator account exists
Post condition added or removed gas station
Step# Step description
1 Administrator goes to personal section
2 Select a gas station to remove or click add button to add a new one
3 Administrator click on save button
4 Server updates and returns success

Scenario 5

Scenario ID: SC5 Corresponds to UC4
Description User/Administrator wants to the map
Precondition EZGas Server is working and no network problems
Google Maps Server is working and no network problems
Post condition
Step# Step description
1 User/Administrator goes to website or app map section
2 App interacts with Google maps API in order to show the map

Scenario 6

Scenario ID: SC6 Corresponds to UC5
Description User/Administrator wants to show prices of a gas station

| | Precondition | EZGas Server is working and no network problems |
| Post condition | | | Step# | Step description | | 1 | User/Administrator goes to website or app map section |
| 2 | App interacts with Google maps API in order to show the map | | 3 | User/Administrator clicks on a gas station | | 4 | App returns info required |

Scenario 4

Scenario ID: SC4 Corresponds to UC3
Description User/Administrator wants to add or remove gas stations
Precondition EZGas Server is working and no network problems
Post condition Added or or updated prices in a gas station
Step# Step description
1 User/Administrator goes to website or app map section
2 App interacts with Google maps API in order to show the map
3 User/Administrator clicks on a gas station
4 Add/update price
5 User/Administrator click on save button
6 Server updates and returns success

Glossary

class EZGas

class User {
+ name
+ surname
}

class Developer {
+ role
}

class Administrator {
+ description
}

class GasStation {
+ location
}

class UserAccount {
+ id
}

class Price {
+ date
+ value
}

class Fuel {
+ type
}

class AdministratorAccount {
+ id
}


EZGas -- "*" UserAccount
EZGas -- "*" AdministratorAccount
EZGas -- "*" Developer
Administrator -- AdministratorAccount
User -- "*" UserAccount
UserAccount -- "*" Price
AdministratorAccount -- "*" GasStation
GasStation -- "*" Price
GasStation -- "*" Fuel
Fuel -- "*" Price

User <|-- Administrator
User <|-- Developer

System Design

class "Personal Computer"
class "Smartphone" as s
class "gps" as gps
s o-- gps

Deployment Diagram

artifact "EZGas app and website" as a
artifact "Google Maps API" as gm
node "Personal Computer" as n
node "Smartphone" as m
node "EZGas Server" as s
node "Google Maps Server" as gms
s -- n
s -- m
a -- s
gm -- s
gm -- gms