Skip to content

Latest commit

 

History

History
229 lines (172 loc) · 12 KB

REQ_s269731.md

File metadata and controls

229 lines (172 loc) · 12 KB

Official Requirements Document

Author: Loredana Finocchiaro

Version: 1

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.

The service is developed in form of application for smartphones (Android or iOS). In order to be able to use the application, users have to download the app and subscribe a free account.

Prices are kept updated by users and gas stations' managers. Gas stations can be registered by explicit request from managers or indicated by users themselves (in this last case, the gas station will be officially added only after at least 5 reports from different users).

The administrator, who is also the developer, has the role of managing the EZGas application, assuring that the service is always run without any problem. Furthermore, the administrator can accept or refuse the requests for new gas stations to be added.

Stakeholders

Stakeholder name Description
Admin/Developer Uses the application to manage pending requests from managers and users that want to add a gas station and to correct eventual bugs in the application
Google Maps Provides an Application Program Interface (API) to the application, so that gas stations can be easily localized
Gas station managers Use the application to update regularly prices
Users Use the application directly, because they are interesting in finding the closest gas station with the lowest price and also in keeping prices up to date

Context Diagram and interfaces

Context Diagram

@startuml

actor Administrator
actor GoogleMaps
actor GSManagers
actor Users

Administrator --> (EZGas)
GoogleMaps --> (EZGas)
GSManagers --> (EZGas)
Users --> (EZGas)

@enduml

Interfaces

Actor Logical Interface Physical Interface
Admin/Developer GUI/IDE Smartphone or screen and keyboard
Google Maps API Internet connection
GSManagers GUI Smartphone, Internet connection
Users GUI Smartphone, Internet connection

Stories and personas

Alice, Susan and Ally are three young and smart women that love travelling around the world by car. It may seem a bit strange choice, but they agree that it's possible to enjoy much more the trip if you simply drive a car, instead of taking airplanes or trains, avoiding frequent delays caused by public transport. You can decide whatever you want: you could also change your plans, feeling yourself completely free from scheduled departures.

One of the most difficult things they have noticed during the first trips is to find gas stations when they are in unknown place for the first time. In fact, Google Maps' application is good for finding the right way in order to reach a certain place, but it is not enough if you're searching for a gas station (possibly with the lowest prices). Since Ally is a computer engineer, she decided to develop an application on her own in order to solve this issue, probably common to a lot of people. So EZGas is born.

EZGas is a simple application for smartphones (Android and iOS) that provides the closest gas stations and relative prices on the basis of your GPS position. Gas stations are localized thanks to a specific API of Google Maps.

The gas stations' managers may ask to register their gas station among the available in a certain area by compiling the specific request directly from the application. Once one gas station is inserted, it will be localized. Prices can be updated by users or by managers themselves. Both users and managers need to have a (free) account in order to use the application.

Note that if there is a station that has not been inserted by its manager yet, the user can indicate that to the app, but the gas station will be officially added only after at least other 5 reports from other users.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Subscribe a new account
FR2 Log into an existing account
FR3 Add a new gas station
FR4 Indicate a new gas station
FR5 Search for the closest gas stations
FR6 Update prices

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability The user interface of the application is simple and intuitive. Users need only a smartphone and Internet connection. All FR
NFR2 Security Users must change the initially assigned login password immediately after the first successful login. Privacy of personal information is guaranteed. FR1
NFR3 Portability The application runs on the most recent versions of Android and iOS. All FR
NFR4 Efficiency It depends on the constancy of users and managers that have to keep fuel's prices up to date. FR6
NFR5 Maintainability The application doesn't require constant maintenance; however, the administrator checks periodically for possible raising issues. All FR

Use case diagram and use cases

Use case diagram

@startuml

left to right direction

actor Administrator
actor GoogleMaps
actor Managers
actor Users

Managers --> (FR1. Subscribe a new account)
Users --> (FR1. Subscribe a new account)
Managers --> (FR2. Log into an existing account)
Users --> (FR2. Log into an existing account)
Managers --> (FR3. Add a new gas station)
(FR3. Add a new gas station) --> Administrator
Users --> (FR4. Indicate a new gas station)
(FR4. Indicate a new gas station) --> Administrator
Users --> (FR5. Search for the closest gas stations)
Managers --> (FR6. Update prices)
(FR5. Search for the closest gas stations) --> GoogleMaps
Users --> (FR6. Update prices)

@enduml

Use Cases

Use case 1, UC1 - FR1 Subscribe a new account

Actors Involved User (or Manager)
Precondition User has never subscribed an account with EZGas
Post condition User is enrolled to EZGas
Total number of enrolled users incremented by one
Nominal Scenario User selects the option "Sign in" from the application, then compiles a form providing his personal information. He will receive an e-mail with a link to be clicked in order to change the default password and confirm the subscription.
Variants If the inserted e-mail address doesn't exist, user will never receive the link needed for the confirmation.

Use case 2, UC2 - FR2 Log into an existing account

Actors Involved User (or Manager)
Precondition User has already subscribed an account with EZGas
Post condition User is logged in
Total number of logged in users incremented by one
Nominal Scenario User selects the option "Log in" from the application, then inserts his username and password: if these are correct, user will be correctly logged in.
Variants If username and/or password are not correct, user will not be able to log in.

Use case 3, UC3 - FR3 Add a new gas station

Actors Involved Manager, Administrator
Precondition Manager has logged in with EZGas (account previously created) and is the owner of a gas station not already inserted
Post condition Gas station added among the available ones
Total number of available gas stations incremented by one
Nominal Scenario Manager sends a request for adding his gas station to the Administrator, which will approve that after checking if the information given by the manager are truthful.
Variants The administrator may refuse the request if sure about the untruth of the information given by the manager.

Use case 4, UC4 - FR4 Indicate a new gas station

Actors Involved User, Administrator
Precondition User has logged in with EZGas (account previously created) and wants to indicate a gas station not already inserted
Post condition Number of reports for that specific station incremented by one
Nominal Scenario User sends a request for indicating a gas station to the Administrator. The request will remain pending until it reaches at least 5 reports from different users.
Variants If the request is the 5th one related to that specific gas station, the Administrator will add that gas station among the available ones after checking about the veracity of the information given by users.

Use case 5, FR5 Search for the closest gas stations

Actors Involved User, GoogleMaps
Precondition User has logged in with EZGas (account previously created) and has activated the GPS position for finding the closest gas stations
Post condition List of gas stations provided based on the GPS position
Nominal Scenario User activates the GPS position; the application, thanks to GoogleMaps API, will provide the closest gas stations and relative prices.
Variants

Use case 6, FR6 Update prices

Actors Involved User (or Manager)
Precondition User has logged in with EZGas (account previously created) and wants to update prices for a certain gas station
Post condition Record that prices for a specific gas station have been updated by a certain user in a certain date
Nominal Scenario User selects a specific gas station and the option "Update prices", then he inserts the current prices.
Variants

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC4
Description User wants to indicate a new gas station
Precondition The gas station hasn't been inserted by the relative manager, neither indicated by more than three users
Postcondition Number of indications for that specific station incremented by one
Step# Step description
1 User selects the option "Indicate a new gas station"
2 User inserts information about the gas station and its position
3 The request is confirmed and sent to the Administrator
4 The request remains pending until that gas station receives at least 5 reports by different users

Scenario 2

Scenario ID: SC2 Corresponds to UC4
Description User wants to indicate a new gas station (5th report for that gas station)
Precondition The gas station hasn't been inserted by the relative manager, but it was indicated by other four users
Postcondition Gas station added among the available ones
Step# Step description
1 User selects the option "Indicate a new gas station"
2 User inserts information about the gas station and its position
3 The request is confirmed and sent to the Administrator
4 Since the request is the 5th one related to that specific gas station, the Administrator can finally process that.
5 The Administrator, after checking about the veracity of the information given by users, will add the gas station among the available ones.