Projet-2014-2015-OpenHAB-ExtendedGUI/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 Objectif du document d'exigence
Ce document présente l'objectif du projet OpenHAB Extended GUI, ainsi que les exigences fonctionnelles et non fonctionnelles, les risques, et les critères de qualité.

1.2 Cadre du produit
Ce projet est réalisé pour deux étudiants en RICM4 (Réseaux Informatiques et Communication Multimédia) à Polytech' Grenoble dans le cadre de leur projet tuteuré par Didier DONSEZ. La durée est fixé à 7 semaines a compté de 13 janvier 2015.

1.3 Définitions, acronymes et abréviations

 * GUI : Graphical User Interface. est un dispositif de dialogue homme-machine, dans lequel les objets à manipuler sont dessinés sous forme de pictogrammes à l'écran, que l'usager peut utiliser en imitant la manipulation physique de ces objets avec un dispositif de pointage, le plus souvent une souris.(src. Wikipédia).


 * UPnP : Universal Plug and Play. Le but de l'UPnP est de permettre à des périphériques de se connecter aisément et de simplifier la mise en œuvre de réseaux à la maison (partages de fichiers, communications, divertissements) ou dans les entreprises. UPnP le permet en définissant et en publiant les protocoles de commande UPnP au-dessus des standards de communication de l'Internet.(src. Wikipédia).

1.4 Références

 * Nous avons pu nous aider d'un travail réalisé par les RICM4 de l'année précédente :
 * Mais aussi du projet des RICM5 2014 :

=2.  Description générale= Nous devrons créer, une interface simple adaptée à des personnes d’un certain âge. L’utilisateur devra décrire sa maison sous forme hiérarchique (voir ci-dessous). Le système détectera les composants de domotique avec l’aide du protocole UPnP, configurera le composant dans le réseau. L’utilisateur devra alors ajouter dans la pièce le matériel détecté. La plupart du temps le composant entre dans une certaine catégorie, de se fait nous lui proposerons différentes action disponible (type IFTTT) pour un composant.

2.1 Perspective du produit
Notre produit doit répondre au scénario suivant : L'utilisateur donne un plan de sa maison sous forme hiérarchique. Il place ses composants de domotique compatible UPnP dans sa maison. Un serveur UPnP va alors détecter l'ensemble des appareils dans la maison. Ce dernier via l'interface utilisateur fera apparaitre les composants qu'il a détecté. L'utilisateur devra alors les placer dans la catégorie qui lui convient. L'utilisateur pourra ensuite modifier les informations sur les composants c'est à dire les mettre en marche, etc...

2.2 Fonctions du produit

 * Création d'une interface graphique
 * Création d'une hiérarchie d'une maison de façon dynamique
 * Détection et affichage automatique des composants
 * Réorganisation des composant en groupe selon leur lieu

2.3 Caractéristiques de l'utilisateur
Au niveau des utilisateurs, cette applications est destinée à des personnes débutant, afin de leur permettre de simplifier la gestion de leur maison. C'est cet utilisateur qui personalisera ca maison et pourra réalisé les opérations détaillé ci-dessus.

2.4 Contraintes générales

 * Le développement de application doit être flexible (utilisation d'HTML5).
 * Besoin d'une passerelle vers internet(wifi, 3G, 3G+, 4G).

=3.  Exigences spécifiques, exigences fonctionnelles, non fonctionnelles et exigences d'interface=
 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements,
 * design constraints,
 * emergent system properties and quality characteristics.

3.1 Exigence X.Y.Z (en Langage Naturel Structuré)
Fonction: Simplification de l'interface utilisateur OpenHab

Description: Notre projet consiste à développer un système qui permette à l'utilisateur de simplifier la gestion de sa maison intelligente, avec notamment la détection automatique des appareils de domotique. Et la proposition d'action sur un composant.

Inputs: Tablette, smartphone, ordinateur, équipement de domotique.

Outputs: interface d'administration

Destination: Destiné à toutes personnes possédant une maison intelligente mais rencontrant des difficultés dans la gestion.

Action:
 * Ajout d'équipement
 * Modification des règles sur un équipement
 * Modification de la hiérarchie de la maison

Côté utilisateur:
 * Doit permettre de gérer ca maison
 * Doit donner un affichage hiérarchique des groupes de sa maison.
 * Doit permettre d'effectuer des modifications.
 * Doit permettre l'identification à l'aide d'un ID user.

Exigences non-fonctionnelles:
 * Facilité d'utilisation : Pas d'expérience utilisateur requise
 * Portabilité : Utilisation sur tout appareil électronique ayant un accès internet
 * Taille : Pas de restriction au niveau de la taille
 * Utilisabilté : Interface claire et travaillée, de façon à pourvoir une expérience utilisateur efficace
 * Robustesse: Pas nécessaire d'avoir un accès lorsque le réseaux est coupé.

Exigences fonctionnelles:
 * Interface web en HTML5 dans le but pouvoir activer le système, réglage de l’application, dialoguer avec les capteurs domotiques (caméra, badge)
 * Gestion de composant de domotique (arrêt/mettre en marche)
 * Ajout/retrait de matériel ou de disposition de la maison.

Pre-condition:
 * Côté matériel :
 * - l'utilisateur doit avoir un appareil (smartphone, tablette, pc)
 * - l'utilisateur doit avoir un id pour la gestion de sa maison


 * Côté application :
 * - De préférence toujours avec un accès vers Internet

Post-condition:
 * l'utilisateur d'administre sa propre maison
 * les utilisateurs sont identifiés grace à un ID

Risques:
 * Ne pas être accepté dans la communauté OPENHAB

=4. Evolution du produit=
 * Ajout de nouvelles fonctionnalités
 * Permettre à l’utilisateur lui même de créer ses règles

=5. Annexes=
 * OpenHAB
 * IFTTT
 * Wikipedia
 * Les clients

=6. Index=