Skip to content

Latest commit

 

History

History
273 lines (212 loc) · 9.69 KB

REQ_s269095.md

File metadata and controls

273 lines (212 loc) · 9.69 KB

Requirements

Abstract

EZGas is crowdsourcing service which is capable of providing the users the position and the relative prices of the gas station, given a certain area. This will allow users to choose, based on their preferences and needs, the most suitable possibity among the different shown alternatives, while providing a platform which can be used also by the gas station owners to spread knowledge about their work, while allowing the users to give also a feedback about the veridicity of the prices.

Stakeholders

Stakeholder name Description
Users: car owners, gas station owners Contribute to the application by adding and upvoting gas stations and prices and/or use it to get informations
Developer Develops the application
Administrator Application administrator
Analyst Gets involved in requirements engineering
Buyer Commits the EZGas service
Map system Provides maps to the service

Context diagram and interfaces

Context diagram

actor User as U
actor Administrator as A
actor "Map System" as M
U -- (EZGas)
A -- (EZGas)
M -- (EZGas)

Interfaces

Actor Logical Interface Physical Interface
User GUI Screen, keyboard/touchscreen
Administrator GUI Screen, keyboard
Map System Web services and localization Internet connection

Personas and stories

John owns since some month a gas station which he opened in small city which is often traversed by a lot of people travelling (most for work). He wants to spread informations about its station and its convenient prices such that many of these, while going to work, stop there to refill their vehicles.

At the moment, since it is on a very small road, only few of them end up there, even if he tried to put some advertisement throughout the city.

He wants to be able to increase the awareness of its station among this possible customers. This can be done by the mean of the EZGas application which he would directly use to publish and advertise its work.


Bob is a plumber since many years; he tries to cover a very big area in order to reach as many customers as possible. This means that he often has to travel a lot through the country, resulting in considerable expenses due to fuel for his old furgon.

He often ends up traveling in cities which he doesn't really know while requiring to refill its vehicle, which means he often stops at the first station which he sees on the road.

Bob wants to be able to access the must suitable stations every time he needs, most of all when he is in a city which he doesn't know much about; this would be achieved with the EZGas application, which would be able to provide the nearest stations with their relative prices.


Alice likes contributing to services to help people, even in small things. She actually writes on Google a lot of reviews for places where she's been.

She lives since decades along with her family in a city which she knows very well, and from many of her new collegues she receives questions about which are the best and/or the most convenient places for doing something and she explains them where they are, but at the same time she feels that many other people cannot receive these informations.

She wants to be able to spread all of these informations more easily among the people transferring to her city; with EZGas she would have a platform for publishing all the informations about the gas stations of the city along with their prices and eventually verify the correct ones, helping the newcomers find what they need.

Scenario, use cases and use case diagram

Use case diagram

actor User as U
actor "Registered User" as RU
actor Administrator as A
actor "Map System" as M
rectangle system {
    usecase "FR1 Manage gas station" as FR1
    usecase "FR1.1 Add gas station" as FR11
    usecase "FR1.2 Set fuel offer for gas station" as FR12
    usecase "FR1.3 Manage authentication" as FR13
    usecase "FR1.4 Upvote fuel offer" as FR14
    usecase "FR2 Find gas stations" as FR2
    usecase "FR3 Manage Users" as FR3
}
RU -> FR1
U -> FR2
A -> FR3
A --> RU
RU --> U
FR1 -> M
FR1 .-> FR11 : include
FR2 -> M
FR1 .-> FR12 : include
FR1 .-> FR14 : include
FR1 .> FR13 : include
FR3 .> FR13 : include
FR22 --|> FR2

Use cases

Use case 1, UC1 - FR1 Manage gas station

Actors Involved User
Precondition Gas station does not already exist on the service
Post condition Gas station exists on the service
Nominal Scenario User authenticates, select position on map for the station, add fuel offer and eventually other information (such as gas station name, working hours) or upvote/downvote existing fuel offers
Variants Position not valid, issue error
Authentication not valid, issue error
Invalid name, issue error
Prices not valid, issue error

Use case 2, UC2 - FR2 Find gas stations

Actors Involved User
Precondition
Post condition It is shown a list of gas station
Nominal Scenario User select position and a range, service shows available gas station and relative prices
Variants Position not valid, raise error
Range is not valid, raise error
List is empty, show warning

Use case 3, UC3 - FR3 Manage users

Actors Involved Administrator
Precondition
Post condition Users notifications are processed
Nominal Scenario Administrator logs in, handles and processes user reporting, delete or block unappropriate users
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description User add a gas station with its prices
Precondition Gas station does not already exist on the service
Postcondition Gas station exists on the service
Step# Step description
1 User log in or sign in
2 User select position on maps (either with pointer or with address)
3 User add gas station name
4 User set fuel offer for current gas station
5 User confirm inserted data
6 User log out

Scenario 2

Scenario ID: SC2 Corresponds to UC2
Description User search for gas station in a certain area
Precondition
Postcondition It is shown a list of gas station
Step# Step description
1 User select position on maps (either with pointer, with address or current position)
2 User add range
3 Show list of gas station in selected area with relative prices

Scenario 3

Scenario ID: SC3 Corresponds to UC1
Description User upvote a gas station fuel offer
Precondition Gas station exists and has at least one fuel offer
Postcondition Gas station fuel offer(s) upvoted/downvoted
Step# Step description
1 User log in or sign in
2 User select station on maps
3 User select fuel offer
4 User upvote/downvote offer
5 User log out

Scenario 4

Scenario ID: SC4 Corresponds to UC3
Description Manage users
Precondition
Postcondition User notifications are processed
Step# Step description
1 Admin log in
2 Admin checks new user notications
3 Admin process new user notifications
4 Admin log out

Functional requirements

ID Description
FR1 Manage gas station
FR1.1 Add gas station
FR1.2 Add fuel offer for gas station
FR1.3 Manage authentication
FR1.4 Upvote fuel offer
FR2 Find gas stations
FR3 Handle users

Non functional requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with no training by all users All FR
NFR2 Performance All functions should complete in < 1 sec All FR
NFR3 Portability The application runs on Android, iOS and on main Browsers (Chrome > 70, FIrefox > 51, Edge > 16) All FR
NFR4 Reliability Functions should be available > 95% in a year All FR
NFR5 Localisation Prices are displayed in local currency
NFR6 Usability Number of help frames < 5 All FR

Glossary

class EZGas {}

class "Gas Station" as GS {
    + ID
    + Name
    + Longitude
    + Latitude
    + Address
    + Working hours
    + Insertion Date
}

class User {
    + Name 
    + Surname
    + Email address
}

class Account {
    + ID
}

class "Fuel type" as Ft{
    + Name
}

class "Fuel Offer" as FO {
    + ID
    + Price*
    + Insertion Date
    + Votes
}

User -- Account
Account -- "*" GS
Account "*" -- EZGas
Account -- "*" FO
FO "*" -- Ft
FO "*" -- GS

Prototype

Initial

UC1 - Manage gas stations

Login Signin Add Price

UC2 - Search gas stations

Search SearchResult SearchResult

UC3 - Manage users

Admin