SRS - Tachymètre

=.  Introduction=

. Purpose of the requirements document

 * L’objectif du projet est de prendre en main les outils de la plateforme Cohorte pour développer un application web qui affiche l’historique des mesures effectuées par un capteur de présence et stockées sur un serveur.

. Scope of the product

 * Le produit développé peut servir pour de nombreux autres projets :


 * l’implémentation du capteur sur le Raspberry Pi et le traitement de ces mesures peut être intégré à n’importe quelle autre application nécessitant la détection de mouvements ou de passages devant le capteur.
 * le stockage sur le serveur et l’interface doivent être conçus pour être évolutifs. En effet, lors de notre projet nous ne disposons que d’un capteur, mais l’application à développer doit pouvoir interroger et afficher les données de plusieurs capteurs.

. Definitions, acronyms and abbreviations

 * Cohorte : plate-forme de développement développé par Isandlatech qui fournit des outils pour créer des applications réparties sur plusieurs systèmes indépendants, y compris au niveau du langage de programmation.
 * Raspberry Pi : ordinateur monocarte (processeur ARM) à taille réduite, compatible avec de nombreux périphériques (clavier, souris, …).

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

. Product perspective

 * Le produit a pour but d’être un détecteur de présence dont les mesures sont sauvegardées. On peut alors imaginer de nombreuses utilisations comme de la surveillance domestique (radar lié avec une alarme), ou tout simplement un appareil de mesure de trafic.

. Product functions

 * Le capteur permet d’avoir une mesure de proximité et de vitesse. Le but est donc de mesurer la vitesse des objets passant devant le capteur (piétons, cyclistes, voiture, …) et de dater cette mesure. Les données sont stockées sur un serveur qui va permettre l’utilisation d’une interface graphique. Cette interface utilisateur affiche l’historique des mesures, avec diverses actions comme la sélection d’une plage de dates pour un affichage plus ciblé, ou encore la présentation des données sous la forme de graphiques pour permettre une analyse plus pointue du trafic.

. General constraints

 * Les contraintes de ce projet sont l’utilisation de Cohorte et du Raspberry Pi comme support pour le capteur.


 * Il n’y a pas de contraintes pour le langage de programmation, car grâce à Cohorte, les différents composants peuvent être développés dans différents langage : Python ou Java pour le Raspberry, Java et SQLite pour le stockage sur le serveur, et HTML/CSS/Javascript pour l’interface web.

. Assumptions and dependencies
=.  Specific requirements, covering functional, non-functional and interface requirements=

Exigences fonctionnelles
Fonction d’acquisitions des données
 * Récupération des valeurs physiques : Vitesse et proximité Isolation et interprétation des mesures : Seuil (prévoir un buffer si le traitement est trop long).
 * Propagation des données par consommation d’un service fourni par un composant distant.

Fonction d’agrégation
 * Stockage de la donnée (service write).

Fonction interface utilisateur
 * Composants de récupération et de présentation des données.

Exigences non-fonctionnelles
Qualité du réseau
 * Eventuellement envisager la mise en œuvre de solution de communication pour le Raspberry Pi pour garantir une bonne disponibilité.

Environnement du capteur
 * Perturbation possible des mesures.

Exigences de l’interface
Ergonomie
 * Compatibilité multi-support (différents navigateurs, version mobile)

Interactions (sélection de plage de dates, affichage de graphiques, …).


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

. 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:

=. Product evolution=

=. Appendicies= 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

Cohorte
 * cohorte.github.io

Microwave Motion Sensor
 * https://www.openimpulse.com/blog/wp-content/uploads/wpsc/downloadables/HB100_Microwave_Sensor_Module_Datasheet.pdf
 * https://www.openimpulse.com/blog/wp-content/uploads/wpsc/downloadables/HB100_Microwave_Sensor_Application_Note.pdf

Making the electronics for $7 USD doppler motion sensor
 * http://ch.linkedin.com/in/mathieustephan
 * http://www.limpkin.fr/index.php?post/2013/08/09/Making-the-electronics-for-a-%247-USD-doppler-motion-sensor

Raspberry Frequency measurment =. Index=
 * http://raspberrypi.stackexchange.com/questions/26166/count-rpm-frequency-pulses-on-gpio-ports-maximum
 * http://blog.durablescope.com/2015/03/build-speed-camera-and-traffic-logger.html
 * http://abyz.co.uk/rpi/pigpio/examples.html#C_code
 * https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=97795
 * http://raspberrypi.stackexchange.com/questions/24812/measuring-frequency-via-gpio
 * http://hacker.instanet.net/forums/viewtopic.php?f=4&t=104