Skip to content

Latest commit

 

History

History
204 lines (157 loc) · 9.86 KB

REQ_s275128.md

File metadata and controls

204 lines (157 loc) · 9.86 KB

Lab2 Requirement document

Author: s275128

Date: 28/03/2020

Version: 1

Contents

Stakeholders

Stakeholder name Description
User Uses the application to add new gas stations, add and update gas station prices, search for gas stations and relative prices on the map, together with many other users.
Google Maps APIs Passive entity that doesn't use the application directly, but influences it because the application uses the APIs it privides.
Database of gas stations Passive entity that doesn't use the application directly, but stores gas stations locations and relative prices so that users can retrieve and save data about gas station and prices.

Context Diagram and interfaces

Context Diagram

left to right direction
actor User as a
a -- (EZGas)
left to right direction
actor "Google Maps APIs" as b
b -- (EZGas)
left to right direction
actor Database as c
c -- (EZGas)
left to right direction
actor Developer as d
d -- (EZGas)

Interfaces

Actor Logical Interface Physical Interface
User GUI Screen, keyboard, Internet Connection
Google Maps APIs Web service Internet Connection
Database Web service Internet Connection
Developer GUI, IDE Screen, keyboard, Internet Connection

Stories and personas

Catherine is a mother of two children. She works from home as an employee of her husband's business and does accounting, administration and fulfills several tasks, such as organizing appointments, paying taxes, recording invoices. Moreover, she is responsible for housekeeping and doing the shopping for her family. All these activities takes a lot of time of her weekdays, but don't require the use of the car. In order to lighten the stress, she really likes to go out in the weekends with her family. She likes to explore new places, doing long trips that require a lot of fuel for her car, and of course a lot of money spent. She wants to spend the least, but she doesn't know what are the best prices, because she visits those places for the first time. Catherine would like a fast and easy way to find the best gas stations in the area, without asking to local people or spending time manually searching for them on a search engine, such as Google.

Robert travels for work. He is a freelancer, and drives his car at least 4 hours per day. He drives most of the times in highways, where gas prices are quite high and gas stations are very far one from each other. This makes him plan every movement so that he knows where to get gas, without having troubles and paying too much. He would like to have a rapid way of looking for the best gas stations in the route he's going to run across, and also update the database so that others with similar necessities can get the most out of this application.

Chris is a young man, 20 years old. He owns a nice motorcycle, but depends on his parents in order to get gas. He has a lot of friends which share his love for motorcycles. Together with his friends, he takes tours in the area where he lives, sometimes going quite far from his home town. His friends are of the same age, and thus depend on their parents in order to get gas. He would like to know where to find the best prices in his local area, as well as keep track and update prices together with their friends, so that they all can save money for other activities.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Insert new gas station
FR2 Select gas station and update gas prices
FR3 Show gas stations on the map
FR4 Filter shown gas stations based on price, fuel and distance

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with 5 minutes training on how to use it, search for gas stations, show their prices, insert new gas stations and update prices All FR
NFR2 Performance All functions should complete in < 0.2 sec FR1, FR2
NFR3 Performance All functions should complete in < 1 sec FR3, FR4, FR5
NFR4 Portability The application runs on Android 6.0 (Marshmallow) and above All FR
NFR5 Portability The application runs on iOS 9 and above All FR
NFR6 Localisation Decimal numbers use . (dot) as decimal separator
NFR7 Privacy The application doesn't collect any personal information and doesn't bind GPS data to any specific user
NFR8 Organizational The application shows a section where users can read rules on how to contribute to the service provided by the application

Use case diagram and use cases

Use case diagram

left to right direction
actor User as a
a -- (FR1 Insert new gas station)
a -- (FR2 Select gas station and update gas prices)
a -- (FR3 Show gas stations on the map)
a -- (FR4 Filter shown gas stations based on price, fuel and distance)

Use Cases

Use case 1, UC1 - FR1 Insert new gas station

Actors Involved User, Database, Google Maps APIs
Precondition User has no account
Post condition Gas station G is saved to database
Nominal Scenario User select location on map, press new gas station button, choose name for gas station G, save G

Use case 2, UC2 - FR2 Select gas station and update gas prices

Actors Involved User, Database, Google Maps APIs
Precondition Gas station G exists, user has no account
Post condition G.F.currentPrice = G.F.newPrice
Nominal Scenario User selects gas station G on the map, select fuel type F, update price
Variants User selects gas station G on the map, add fuel type F, add new price

Use case 3, UC3 - FR3 Show gas stations on the map with GPS

Actors Involved User, Database, Google Maps APIs
Precondition At least one gas station exists, user has no account
Nominal Scenario User opens the map section, select location, retrieves gas stations on the map for the area displayed on the screen
Variants User opens the map section, gets geolocalized with GPS that has been activated, retrieves gas stations on the map for the area displayed on the screen

Use case 4, UC4 - FR4 Filter shown gas stations based on price, fuel and distance

Actors Involved User, Database, Google Maps APIs
Precondition At least one gas station exists, map section displayed, user has no account
Post condition Gas stations displayed on the map are only the ones that meet the filter(s) set by the user
Nominal Scenario User filters by a combination of price, fuel and distance, retrieves filtered gas stations on the map for the area displayed on the screen
Variants User filters by minimum and/or maximum price, retrieves filtered gas stations on the map for the area displayed on the screen
User filters by fuel type, retrieves filtered gas stations on the map for the area displayed on the screen
User filters by minimum and/or maximum distance, retrieves filtered gas stations on the map for the area displayed on the screen

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC2
Description User selects gas station and update gas prices
Precondition Selected gas station exists, user doesn't need an account
Post condition The current price for the selected fuel type in the selected gas station is updated with the new price set by the user
Nominal Scenario User selects gas station G on the map, select fuel type F, update price
Variants User selects gas station G on the map, add fuel type F, add new price

| Step# | Step description | | 1 | User opens map section |
| 2 | User selects the gas station | | 3 | user selects the fuel type | | 4 | User insert new price | | 5 | User hits save button | | 6 | User is returned to the gas station's list of fuel types and can check the price has been updated |

Scenario 2

Scenario ID: SC2 Corresponds to UC4
Description User filters shown gas stations based on price, fuel and distance
Precondition At least one gas station exists, map section displayed, user doesn't need an account
Post condition Gas stations displayed on the map are only the ones that meet the filter(s) set by the user
Nominal Scenario User filters by a combination of price, fuel and distance, retrieves filtered gas stations on the map for the area displayed on the screen
Step# Step description
1 User hits filter button
2 User select min/max price, and/or fuel type, and/or min/max distance through a form
3 User hits confirm button
4 User gets displayed only the gas stations that meet the filter(s)

Glossary

class EZGas
class User

class GasStation {
+ name
+ FuelType
}

class FuelType {
+ type
+ price
}

class MapsAPIs

class Database

EZGas -- User
EZGas -- MapsAPIs
EZGas -- Database

User -- GasStation

GasStation -- FuelType