Skip to content

Latest commit

 

History

History
218 lines (158 loc) · 7.12 KB

REQ_276062.md

File metadata and controls

218 lines (158 loc) · 7.12 KB

Official Requirements Document

Author: Daniela Di Canio

Date: 26/03/2020

Contents

Abstract

The EZGas application is a software to help people easily find gas stations on a map, also informing them of their respective prices. The manager of the gas station is in charge to upload and modify prices when necessary, while an administrator is in charge to check these prices and update them on the app. The software relies on Google Maps for the position of the stations.

Stakeholders

Stakeholder name Description
Administrator Uses the application to insert prices of fuel he receives from users
User Manager of the gas station. Uses the application to update the price he practice
User Uses the application for knowing where are located stations and which are the fuel prices
Google Maps Used for locating stations

Context Diagram and interfaces

Context Diagram

See Context Diagram.asta associated.

Interfaces

Actor Logical Interface Physical Interface
Administrator GUI Screen, keyboard

Stories and personas

Jack is the manager of the gas station. He keep updated the price of the fuel in his gas station, basing the sale price on the purchase price from its supplier. The price changes when Jack receives an order from the gas supplier, more or less every 4-5 days.

Gas can be purchased between a minimum and a maximum quantity. Jack send the new price to John with the amount of liters of gas available for each type.

John is an administrator and operates the change of prices. Each time a manager send him a new price, he checks its range and if it's too low or too high with respect to other stations, send a warning message.

Mike is a guy who needs to refuel gas for his car and he decides to use EZgas application. When Mike enters the app he is asked what is the radius in which he wants to search the stations. The Google Maps software is used to locate gas stations. If Mike needs it, he can directly set the google maps navigator to reach the chosen station.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Record that a station has changed prices
FR2 Request position from user
FR3 Record new user
FR4 Produce a report about user usage
FR5 Manage types of gas fuel and prices
FR6 Manage stations and user accounts

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with no training by any kind of user All FR
NFR2 Performance All functions should complete in < 1 sec All FR
NFR3 Portability The application runs on Safari All FR
NFR4 Localisation Decimal numbers use . (dot) as decimal separator

Use case diagram and use cases

Use case diagram

See Use Case.asta associated.

Use Cases

Use case 1, UC1 - FR1 Record change of price and quantity

Actors Involved Administrator
Precondition Station S exists, gas G exists
Post condition T.quantity_post != T.quantity_pre
EZgasAccount.price_post != EZgasAccount.price_pre
Nominal Scenario Administrator selects gas station S, selects gas G, Delete previous price and insert new one
Variants Price too low or too high, send warning

Use case 2, UC2 - FR2 Request position

Actors Involved Google Maps
Precondition User select the station S and ask for its position
Post condition User reach the station
Nominal Scenario User wants to reach the station S, localize it and insert navigator
Variants

Use case 3, UC3 - FR3 Record new user

Actors Involved User
Precondition User U is a real person not registered on the app, requesting for registration
Post condition User U is registered on the app
EZgas.numberofaccounts > EZgas.numberofaccounts
Nominal Scenario A new user decides to sign in and his account is registered in the app database
Variants

Use case 4, FR4 Produce report on user usage

Actors Involved Administrator
Precondition User U exists
Post condition
Nominal Scenario Administrator selects user U, defines a time range, application collects all usage for U in the time range and presents them
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description User search stations in a range of X km, range valid
Precondition At least one station S is in the range
Postcondition User is provided with information on the station S
Step# Step description
1 User selects range X
2 Google maps provides station(s) S in range X
3 User select one station
4 User is able to see prices and other informations previously uploaded by administrator

Scenario 2

Scenario ID: SC2 Corresponds to UC1
Description User search stations in a range of X km, range invalid
Precondition No station S is in the range
Postcondition User is requested to change the range
Step# Step description
1 User selects range X
2 Google maps has no station in range X
3 Issue warning

Glossary

class LaTazza
class Colleague {
+ name
+ surname
}

class PersonalAccount {
+ balance
}

class CapsuleType {
+ name
+ price
+ quantity
}

class LaTazzaAccount {
+ balance
}

class BoxPurchase {
+ quantity
}

class Transaction {
+ date
+ amount
}

class Recharge
class Consumption


LaTazza -- "*" Colleague
LaTazza -- "*" CapsuleType
LaTazza -- LaTazzaAccount

LaTazzaAccount -- "*" BoxPurchase
LaTazzaAccount -- "*" Consumption

CapsuleType -- "*" Consumption
CapsuleType -- "*" BoxPurchase

Colleague -- PersonalAccount
PersonalAccount -- "*" Transaction

Transaction <|-- Recharge
Transaction <|-- Consumption
Transaction <|-- BoxPurchase