Skip to content

Latest commit

 

History

History
239 lines (213 loc) · 10.4 KB

REQ_s269966.md

File metadata and controls

239 lines (213 loc) · 10.4 KB

Author : s269966 Date: 29/03/2020 Version: 1

Contents

Abstract

The web-based app is implemented to manipulate the GAS station for the Users to provide the best location of the gas station in terms of location and price. When the user starts finding the nearest location of a gas station by the cellphone or web Browser the APP retrieves data from a MAP API system providing the map, route, and distance to the GAS based on the current location of the User.

The user also has the chance to create a profile to interact with the APP by providing some information to update the prices of the gas station. Regular users can also use the APP, however, they can not add a new station or request an update for the price. The acceptance of user requests in the system would be under the control of the Administrator.

Stakeholders

Stakeholder name Description
Administrator Control the data Flow, check the data sending by the users
User Use the system directly with their cellphones to find the gas station
MAP API Provide suitable data for the users to find the nearest Gas Satation or Lowest Price

Context Diagram and interfaces

Context Diagram

Left to Right direction
skinparam packageStyle rectangle
actor User
actor MAP_API
actor Administrator
actor "Signed User"
rectangle System {
  (EZGas App)-- Administrator
  User -- (EZGas App)
  User <|-- (Signed User)
  (Signed User) <|-- Administrator
  (EZGas App) -- MAP_API
}

Interfaces

Actor Logical Interface Physical Interface
Administrator GUI Screen, keyboard - Web page
User GUI Touch Screen - Web Page
MAP API Data Exchange - Online web Service , APIs Internect connection

Stories and personas

Joseph is an active and industrious teacher and program developer who always try to manage their time as best as possible. He has an impressive time scheduling for himself to get to work timely. He tries to follow this personal time management, but he often suffers from finding the nearest Gas Station. He wasted a huge amount of time to get the station and most of the time he is not able to find the right path to the station. Besides, he wants to save his money by searching the cheapest location of GAS station nearby. Goals: wants a system to find a suitable location (in terms of distances and prices) of the station to reach, as well as offer the cheapest one to others.

He would like to have an application to locate the nearest Gas station around by using his cell phone and also by his computer. He wants to implement a very simple but practical application, which easy to use for all users.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Demonstrate the GAS location
FR1-1 Based on Price
FR1-2 Based on distance
FR2 Receive the price
FR3 Monitor received data and Record it
FR4 Manage the Account
FR5 LOG IN
FR6 Authentication and Authorization
FR6-1 Verify the Pass
FR6-2 Display LOG IN ERROR
FR7 LOG OUT

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability End-user shall be able to use the app by some tips provided by the system All FR
NFR2 Performance All functions should complete in < 0.5 sec All FR
NFR3 Portability The app runs in different operating systems(both Android and IOS devices) All FR
NFR4 Portability The app operates in most web Browsers All FR
NFR5 Privacy The personal data of User/Administrator should protect FR5

Use case diagram and use cases

Use case diagram

left to right direction
actor User as U
actor "Signed User" as SU
actor Administrator as A
actor "MAP API" as MA
rectangle System{
U <|-- SU
SU <|-- A
U --> (FR1 Demonstrate the GAS location)
(FR1 Demonstrate the GAS location) --> MA
SU --> (FR2 Receive the price)
(FR3 Monitor received data and record it) --> A
A --> (FR4 Manage the Account)
SU --> (FR5 LOG IN)
SU --> (FR7 LOG OUT)
(FR2 Receive the price) ..> (FR3 Monitor received data and record it): include
(FR5 LOG IN) ..> (FR6 Authentication and Authorization) : include
(FR6 Authentication and Authorization) ..> (FR6-1 Verify the Pass): include
(FR6-2 Display LOG IN ERROR) ..>(FR6 Authentication and Authorization): extends
(FR1-1 Based on Price )..> (FR1 Demonstrate the GAS location)  : extends
(FR1-2 Based on distance) ..> (FR1 Demonstrate the GAS location): extends
}

Use Cases

Use case 1, UC1 - FR1 Demonstrate the nearest location

Actors Involved User , MAP API
Precondition The app runs, User Location (CL) exists, GAS Location (GL) exists
Postcondition Demonstrate the Route to the User, calculate the distances and show it on the MAP
Nominal Scenario User selects Gas Station, base on the current location of the User, calculate the distance and demonstrate the nearest station / cheapest station by preference to the User on the MAP
Variants User does not turn the GPS on, the Internet connection is not available

Use case 2, UC2 - FR2 Receive the price

Actors Involved User
Precondition User Account CA exists, LOG in to the system, change ordinary user to signed one
Postcondition The price of specific station sends in the system to review and accept by the Admin
Nominal Scenario User log into the account successfully, the app performs the authentication, User selects the specific station and send the price of it
Variants User is not able to log in, the account of the user is banned by the admin, User does not create the account

Use case 3, UC3 - FR3 Monitor received data and record it

Actors Involved Administrator
Precondition Administrator logs in, the prices sent by the users
Postcondition Administrator check the prices, record it into the system and update the previous data
Nominal Scenario Administrator get the real prices from the user and save the information into the system
Variants The data is wrong and not real

Use case 4, UC4 - FR6 Authentication and Authorization

Actors Involved User, Administrator
Precondition User Account CA exists, Admin Account (AA) exists
Postcondition enter into their profile, perform their tasks and manage their account
Nominal Scenario Admin/User use their password and username correctly, the system authenticates them, they can do their tasks in the profile
Variants Forget their password and username, provided the wrong logIN data

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1
Description Demonstrate the Route to the User, calculate the distances and show it on the MAP
Precondition The app runs, User Location (CL) exists, GAS Location (GL) exists
Postcondition Demonstrate the Route to the User, calculate the distances and show it on the MAP
Step# Step description
1 User switches on GPS to detect the current location
2 User chooses its preferences - Price or Distance options-
3 Based on user's preferences the MAP API calculates the distance
4 Show the route on the user's MAP

Scenario 2

Scenario ID: SC2 Corresponds to UC3
Description The system gets information about the price of GAS station and record it, the administrator monitor and check receives data from the registerd users
Precondition Administrator logs into the system, the prices sent by the registerd users
Postcondition Administrator check the prices, record it into the system
Step# Step description
1 registerd user wants to update or set the price of gas station into the system
2 registerd user selects the specific station
3 entered the price of that station into the system
4 Administrator logins to the sytem
5 Monitor and check the recieved data
6 If the data is real and correct, store/update the data into the system

Glossary

class User {
}
note left of User: Acts as a regular user.
note left of SignedUser: This user can suggest the price for the specific Gas Station.\n Send the request to the System
class SignedUser {
  ID
  First-Name  
  Last-Name
}
note left of Administrator:  This user is able to manage the System.\nCheck the Request received by the SigndUser
class Administrator{
}
class Station{
  SID
  Location
  FuelType
  LastUpdate
}
class FuelType{
  FID 
  GASType
}
class Price{
 PID
 MinPrice
 MaxPrice
}
class PriceRequest {
 RID
 Date
 UpdatedPrice
 GASType 
}
class Filter{
  Price
  Distance
}
User <|--SignedUser
SignedUser<|--Administrator
Station "0..*" -- "1..*" FuelType : offers
FuelType "1..*" -- "1..*" Price : has
SignedUser "1..*" -- "0..*" PriceRequest : send
Administrator "1" -- "*" PriceRequest : check
Administrator "1" -- "1..*" Station : manage
User "1..*" -- "0..2" Filter: set
Filter "0..2" -- "1..*" Station: apply
Administrator "1" -- "0..*" Price: update