RICM4 2017 2018 - UltraTeamMV : SRS

The document provides a template of the Software Requirements Specification (SRS). It is inspired of the IEEE/ANSI 830-1998 Standard.

Read first:
 * http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx
 * http://en.wikipedia.org/wiki/Software_requirements_specification
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

=1.  Introduction=

1.1 Purpose of the requirements document
This Software Requirements Specification (SRS) identifies the requirements for project UltraTeamMV project. It will present our solution's functionalities and problem solved but also list our system requirements.

1.2 Scope of the product
This project mainly consists of a web application development. This app should allow a hikers team to localise each other in real time. It should be really easy to add new members (Numeric code, QRCode, NFC, …). The system should work whether or not there is a 2G/3G/4G or LoRa connection.

1.3 Definitions, acronyms and abbreviations

 * LoRa = Long Range : Low powered radio based communication technology
 * LoRaWAN = Long Range Wide Area Networks : LoRa overlayer to ease (& securise) LoRa communication implementation
 * LPWAN = Low Powered Wide Area Networks
 * BLE = Bluetooth Low Energy
 * GPS = Global Positioning System

1.4 References

 * The main page of the project
 * The UML page

1.5 Overview of the remainder of the document
=2.  General description=

2.1 Product perspective
The product is supposed to be an open source. It is a web based system implementing client-server model. The UltraTeamMV System provides simple mechanism for outdoor geolocation in white & gray network areas.

2.2 Product functions
This system should allow low energy cost localisation. It should be decentralized as 2G/3G/4G network is sporadic in such environnement. It should also centralize all data to allow sending it to appropriate services (rescue team for instance).

2.3 User characteristics
Hikers team, comfortable with using a smartphone but not a technology expert. No financial criteria other than having a smartphone as an ESP32 costs about 5€. Age group = any that is comfortable with using a smartphone hence (~15-70).

2.4 General constraints
The system should work whether or not there is a 2G/3G/4G connection Limited localisation accuracy : GPS.

2.5 Assumptions and dependencies
As few environnement assumptions as possible. A team needs at least 1 smartphone (with GPS connection) and 1 ESP32 per hiker.

=3.Specific requirements, covering functional, non-functional and interface requirements=

This section is supposed to describe two types of requirements :  A structured document setting out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
 * System requirements

Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.
 * User requirements

Those requirements are in fact better described in use case section of the UML page of the project.

Those requirement will be classified in 3 categories : Statements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations. It may also state what the system should not do.
 * Functional requirements

Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.
 * Non-functional requirements

Constraints on the system from the domain of operation.
 * Domain requirements


 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements,
 * design constraints,
 * emergent system properties and quality characteristics.

3.0 Requirement 1 : BLE connection establishment
Start ESP32 and smartphone are disconnected.

End ESP32 and smartphone are connected via BLE.

Normal execution User pairs devices via its smartphone's OS settings, as any other BLE device. Non-functional constraint BLE on ESP32 & on smartphone should be technologically able to communicate

Function: BLE connection establishment

Description: Establish a BLE connection between a smartphone and an ESP32

Inputs:

Source:

Outputs:

Destination:

Action:
 * Natural language sentences (with MUST, MAY, SHALL)
 * Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
 * Mathematical Notations
 * Tabular notations for several (condition --> action) tuples

Non functional requirements:

Pre-condition:
 * ESP32 & Smartphone are on, with BLE running,
 * ESP32 & Smartphone are near enough to communicate via BLE.

Post-condition:

Side-effects:

3.0 Template : Requirement X.Y.Z (in Structured Natural Language)
Function:

Description:

Inputs:

Source:

Outputs:

Destination:

Action:
 * Natural language sentences (with MUST, MAY, SHALL)
 * Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)
 * Mathematical Notations
 * Tabular notations for several (condition --> action) tuples

Non functional requirements:

Pre-condition:

Post-condition:

Side-effects:

=4. Product evolution=

=5. Appendices=