Skip to content

Latest commit

 

History

History
281 lines (227 loc) · 8.67 KB

REQ_s234436.md.md

File metadata and controls

281 lines (227 loc) · 8.67 KB

Official Requirements Document

Contents

Stakeholders

Stakeholder name Description
User Uses the application to: collect prices of fuels in different gas stations; locate gas stations in an area, along with the prices they practice.
Administrator Checks the correctness of the data, manage the users.
Map API Provides the API.

Context Diagram and interfaces

Context Diagram

actor User as u
actor Administrator as a
actor "Map API" as m
rectangle system{
	(EZGas) as e
}

e -- u
e -- a
e -- m

Interfaces

Actor Logical Interface Physical Interface
User GUI Touch screen
Administrator GUI Touch screen
Map API Web service (GoogleMaps) Internet connection

Stories and personas

A group of friends wants to leave for holidays and they're trying to avoid spending too much money, so they search for the gas station with the lowest fuel's price. Andrea is going to go to the cinema this evening. When he gets in the car, he discovers he is low on gas. In order to avoid to be late, he search for the closest gas station to him and without queue.

Functional and non functional requirements

Functional Requirements

ID Description
FR1 Sign in
FR2 Locate gas station in your area
- FR2.1 Locate for type of fuel
- FR2.2 Locate for price
- FR2.3 Locate for service
FR3 Handle user
- FR3.1 Create user
- FR3.2 Delete user
- FR3.3 Confirm user's update
FR4 Handle gas station
- FR4.1 Update the price of fuels in a gas station
- FR4.2 Update the state of the gas station (open, closed, no fuel)
- FR4.3 Add a new gas station
- FR4.4 Remove a gas station
- FR4.5 Update the state of the queue at the gas station
- FR4.6 Update gas station's services (restaurant, carwash, toilet, convenience store, tire-pressure gauge)
FR5 Handle map
- FR5.1 Center map
- FR5.2 Resize map

Non Functional Requirements

ID Type (efficiency, reliability, .. see iso 9126) Description Refers to
NFR1 Usability Application should be used with no training by any colleague in the office All FR
NFR2 Performance All functions should complete in < 0.5 sec All FR
NFR3 Portability The application runs on Android and IOS All FR
NFR4 Localisation Decimal numbers use . (dot) as decimal separator FR2, FR4
NFR5 Reliability Shown data are referred to the last confirmed update All FR
NFR6 Functionality Currency is Euro FR2, FR4
NFR7 Interoperability Connected with GPS All FR

Use case diagram and use cases

Use case diagram

left to right direction
actor User as u
actor Administrator as a

rectangle system {
	(FR1 Sign in) as FR1
	(FR2 Locate gas station) as FR2
	(FR2.1 Locate gas station for type of fuel) as FR2.1
	(FR2.2 Locate gas station for price) as FR2.2
	(FR2.3 Locate gas station for service) as FR2.3
	(FR3 Handle user) as FR3
	(FR3.1 Create user) as FR3.1
	(FR3.2 Delete user) as FR3.2
	(FR3.3 Confirm user's update) as FR3.3
	(FR4 Handle gas station) as FR4
	(FR4.1 Update the price of fuels in a gas station) as FR4.1
	(FR4.2 Update the state of the gas station) as FR4.2
	(FR4.3 Add a new gas station) as FR4.3
	(FR4.4 Remove a gas station) as FR4.4
	(FR4.5 Update the state of the queue at the gas station) as FR4.5
	(FR4.6 Update gas station's services) as FR4.6
	(FR5 Handle map) as FR5
	(FR5.1 Center map) as FR5.1
	(FR5.2 Resize map) as FR5.2
}

	FR2 .-> FR2.1 : <<include>>
	FR2 .-> FR2.2 : <<include>>
	FR2 .-> FR2.3 : <<include>>

	FR3 .-> FR3.1 : <<extend>>
	FR3 .-> FR3.2 : <<extend>>
	FR3 .-> FR3.3 : <<include>>

	FR4 .-> FR4.1 : <<extend>>
	FR4 .-> FR4.2 : <<extend>>
	FR4 .-> FR4.3 : <<extend>>
	FR4 .-> FR4.4 : <<extend>>
	FR4 .-> FR4.5 : <<extend>>
	FR4 .-> FR4.6 : <<extend>>

	FR5 .-> FR5.1 : <<include>>
	FR5 .-> FR5.2 : <<extend>>



u --> FR1
u --> FR2
u --> FR4
u --> FR5

a --> FR3

Use Cases

Use case 1, UC1 - FR1 Sign in

Actors Involved User
Precondition User has Internet connection
Post condition User has an account
Nominal Scenario Visitor inserts his information. Now he is a registered user and can access to the system
Variants No Internet connection, error

Use case 2, UC2 - FR2 Locate gas station in your area

Actors Involved User
Precondition User has the GPS on or inserts his position
Post condition User obtains a list of all the gas stations in his area
Nominal Scenario User needs a list of all the gas stations in his area. He can filter the gas stations shown by selecting the type of fuel, the services available or the cheapest one
Variants GPS doesn't work, try to manually insert your position

Use case 3, UC3 - FR3 Handle user

Actors Involved Administrator
Precondition User exists
Post condition User's action is confirmed
Nominal Scenario A person wants to access to EZGas' information. He neeeds an account, so he signs in. After that, he can modify any information he wants, but only after administrator's confirmation this will be updated
Variants The update is wrong, the administrator doesn't confirm it

Use case 4, UC4 - FR4 Handle gas station

Actors Involved User
Precondition Tha gas station registered has oldinformation
Post condition Gas station's information are updated
Nominal Scenario User visits a gas station and discover that something has changed, so he updates it on the system
Variants There is no gas station to remove or change at the given address, error

Relevant scenarios

Scenario 1

Scenario ID: SC1 Corresponds to UC1 and UC3
Description A new user registers himself to EZGas
Precondition User install EZGas on his device and has Internet connection
Postcondition User has an account. Now he not only has access to the stored data, but he can modify them
Step# Step description
1 User selects the sign in button
2 User inserts his information. If GPS is on, his city is relevated, otherwise he can manually select a city
3 Administrator must confirm the creation of the account

Scenario 2

Scenario ID: SC2 Corresponds to UC2 and UC5
Description Map shows all the gas stations around, filtered according to user's selection
Precondition The position of the user has to be relevated
Postcondition The map shows all the gas station in the area
Step# Step description
1 If GPS on releve the city, otherwise te user inserts it
2 User select the requirements of the gas station
3 The map with the gas station in the area around the user is shown
4 User can resize the map near his position

Glossary

Class "EZGas" as e
Class "User" as u
Class "Gas station" as gs
Class "Fuel" as f
Class "Service" as s
Class "Update" as up
Class "Update state" as upst
Class "Update price" as upp
Class "Update service" as upse

e -- u : uses <
gs "*"-- e 
s "*"-- gs : has <
f "*"-- gs : has <
u -- up : does >
upst "*"-- gs : changes >
upp "*"-- f : changes >
upse "*"-- s : changes >

Class u {
	+ ID
	+ name
	+ surname
	+ password
}

Class gs {
	+ address
	+ state {open, closed, no fuel}
	+ queue 
}

Class f {
	+ type
	+ price
}

Class s {
	+ type
}

Class up {
	+ date
}

Class upst {
	+ state
}

Class upp {
	+ price
}

Class upse {
	+ service
}

up <|-- upst
up <|-- upp
up <|-- upse