Proj-2016-2017-ColisMatter/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
SRS document aims to define the different characteristics and functions of this project. It has to present functional and non-functional requirements.

This should eventually describe the full content of the subject : applications allowing users to follow packages using RFID.

1.2 Scope of the product
By using open sources demo apps, the purpose of the project is to develops android applications to enable professionals to scan their products and follow them during their transit.

Two applications will be developed :
 * The first one will allow the user to scan his package and register it in the database before its transit.
 * The second one will be used during the transit by an user who will scan the package and make it match or no the database.

1.3 Definitions, acronyms and abbreviations

 * Package : In this project, we consider a package as a sum of different RFID tags. The presence of every RFID tag defines the package. In a stable state, the package contains the same tags since its creation.
 * Reader : RFID Reader, the Nordic ID Stix.

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

2.2 Product functions
Our product must allow users to :
 * Create an account
 * Basic account parameters (id, password, delete account)
 * Sign in / Sign out
 * Add a package in the database
 * Follow a package if allowed
 * Scan the package during transit
 * Update database
 * Be aware of potential issues
 * Search for a precise item
 * Change status of packages (preparation, transit, arrived)
 * Block further modifications of a package (when arrived)

2.3 User characteristics
Our product is designed to be used by companies to localize all their products in transit. Among each companies, different users appears :
 * Factory user : He creates new packages. Thus, he only uses the first app.
 * Transit user : He scans packages during the transit
 * Arrival user : He is the last one to scan the package and can then modify its characteristics in the database after checking the validity of the package. If imperfect, he can manage to search for missing package, or identify where a wrong article should be.

2.5 Assumptions and dependencies
=3.Specific requirements, covering functional, non-functional and interface requirements=
 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements,
 * design constraints,
 * emergent system properties and quality characteristics.

3.1 Requirement 1 : Application 1 : RFID Reader
Function: RFID Sensor communication

Description: Build a top level layer and application on the NurApi

Inputs: Communication with a RFID sensor

Source: NurApi

Outputs: RFID Tag

Destination: User or another Application

Action:
 * MUST : Communicate with RFid Sensor through the NurApi in order to register the package into the database.
 * MUST : Let users sign in to register new packages
 * SHOULD : Allow users to have access to the database

Non functional requirements:

Pre-condition: Database operational

Post-condition:

3.2 Requirement 2 : Application 2 : Following Packages
Function: Scanning packages to update their localisation and identify issues (articles missing, wrong articles)

Description: Build a top level layer and application on the NurApi

Inputs: Communication with a RFID sensor to scan packages

Source: NurApi

Outputs: Database Updated

Destination: User or another Application

Action:
 * MUST : Communicate with RFid Sensor through the NurApi in order to register the package into the database.
 * MUST : Let users sign in to scan new packages
 * MUST : Inform the user about his scan

Non functional requirements:

Pre-condition: Package already registered in the database

Post-condition:

=4. Product evolution=

=5. Appendices= =6. Index=