Skip to content

Latest commit

 

History

History
225 lines (177 loc) · 8.4 KB

REQ_s269358.md

File metadata and controls

225 lines (177 loc) · 8.4 KB

Contents

Abstract

In any city or place, people usually learn with experience or by word of mouth to find both the closest and cheapest gas station, according to their needs.

We could build an application that collects those informations from people, so that they can be provided to anyone and be updated constantly and efficiently.

Stakeholders

Stakeholder name Description
Customer Uses the application to find the best gas station that fit his needs
Maps provider Provides the system informations about driving directions
Sponsor Buys advertising
Developer Develops and mantain the software

Context Diagram and interfaces

Context Diagram

left to right direction
Customer -- (EzGas)
(EzGas) -- MapsProvider
(EzGas) -- Sponsor

Interfaces

Actor Logical Interface Physical Interface
Customer GUI Smartphone
Maps provider Web API Internet network
Sponsor E-mail service Internet network
Developer IDE Screen and keyboard

Stories and personas

Tom uses his car daily to commute, when he runs out of gas he goes to the cheapest gas station which is not too far from his home or work place. It happens from time to time, that he finds such gas station closed or with unusually high prices. When this happens, he wonders if he could have known the situation without physically going to the gas station wasting time and/or money. This is even more annoying when Tom makes longer journeys, especially when using highways, since prices are higher there he would like to know when he may benefit to drive out of the highway to get gas, without getting lost or uselessly drive for more kilometres.

Tom then downloads EzGas, so just after he notices he's short on gas, takes out his smartphone and run the application. In the application he finds out the gas station that fullfils his needs (price, distance, services offered). Once he selects his preferred gas station, he gets all the driving directions to actually getting there.

It can happen from time to time, that the information listed on EzGas is wrong or partially wrong. If this doesn't happen to frequently Tom will understand the situation may consider to update the informations himself.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 List gas stations
FR1.1 Visualize gas stations sorted by price
FR1.2 Visualize gas stations sorted by distance
FR1.3 Filter by choosing the maximum gas price and filter the list accordingly
FR1.4 Filter by choosing the maximum distance and filter the list accordingly
FR1.5 Filter out closed gas stations
FR1.6 Filter by the type of gas they need
FR1.7 Filter by the kind of vehicles the gas station supply
FR1.8 Filter by the payment system the gas station supports
FR2 Create a profile
FR2.1 Save favorite gas stations
FR2.2 Save favorite gas type
FR2.3 Save informations about used vehicles
FR3 Update informations about gas stations
FR3.1 Add a gas station to the map
FR3.2 Update prices of a gas station
FR3.3 Update services offered by a gas station (paymement system, kind of vehicles supplied, gas type, opening time)
FR4 Contact EzGas personnel
FR5 Show Driving directions

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used by an average person with possibly low IT skills All FR
NFR2 Performance All functions should complete in < 0.5 sec with a 4G connection All FR
NFR3 Portability The application runs on iOS 13 and android 10 All FR
NFR4 Reliability EzGas correct informations > 95% total informations

Use case diagram and use cases

Use case diagram

left to right direction
actor Customer as c
actor Sponsor as s
c -- (FR1 List gas stations)
c -- (FR2 Create a profile)
c -- (FR5 Show Driving directions)
c -- (FR3 Update informations about gas stations)
s -- (FR4 Contact EzGas personnel)
co -> c

Use Cases

Use case 1, UC1 - FR1(and all it's subrequirements) List gas stations and FR5 Show Driving directions

Actors Involved Customer
Precondition account A exist
Post condition A path P is generated
Nominal Scenario Customer C chooses some filters (FR1.x), and selects a gas station from the generated list
Variants The generated list is empty

Use case 2, UC2 - FR2 Create a profile

Actors Involved Customer
Precondition Smartphone has internet connection, Account A doesn't already exist
Post condition A exist
Nominal Scenario Customer C insert his personal informations and creates A
Variants

Use case 3, UC3 - FR3 Update informations about gas stations

Actors Involved Customer
Precondition Account A exist, Informations I are outdated
Post condition I are updated
Nominal Scenario Customer C insert the new informations and they are updated in EzGas
Variants The informations could be recognized as wrong, there won't be any update

Use case 4, UC4 - FR4 Contact EzGas Personnell

Actors Involved Sponsor
Precondition
Post condition A request R to buy advertising is generated
Nominal Scenario A sponsor S, contact EzGas via E-Mail to buy advertising
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description The vehicle is short on gas
Precondition There is an internet connection, Customer has an EzGas account
Postcondition List of gas stations generated
Step# Step description
1 Customer runs EzGas on his phone
2 Customer logs in
3 Customer chooses his filters and preferences
4 Customer selects a gas station to get gas
5 Customer follows driving indications to reach the gas station

Scenario 2

Scenario ID: SC2 Corresponds to UC3
Description EzGas has outdated informations
Precondition Customer discovered an updated information
Postcondition The information is updated
Step# Step description
1 Customer notices an outdated information
2 Customer logs in
3 Customer updates informations on EzGas

Scenario 3

Scenario ID: SC2 Corresponds to UC4
Description Sponsor wants to buy advertising
Precondition
Postcondition A request R is generated
Step# Step description
1 Sponsor send an E-Mail with his commercial offer
2 EzGas personnell decide to accept or reject the commercial offer
3 EzGas Personnell notify the sponsor about his decision

Glossary

class EzGas
class Customer {
+ name
+ surname
}

class PersonalAccount {
+ Car Model
}

class GasStation {
+ name
+ location
}

class Sponsor {
+ name
}

class CommercialOffer {
+ Description
}

EzGas -- "*" Customer
EzGas -- "*" GasStation
EzGas -- "*" Sponsor
Customer -- PersonalAccount
PersonalAccount -- "*" GasStation
Sponsor -- "*" CommercialOffer