Imprimer
Catégorie : SAÉ S5 - développement appli. complexe
Affichages : 1253

1°/ Objectifs

Ce sujet a pour objectif de mettre en place une application complexe faisant intervenir des connaissances de la plupart des matières techniques enseignées en 3ème année, mais aussi celles des années précédentes. Comme le choix a été fait de "mixer" la SAÉ a S5 vec celle de S6, le cadre de développement de ce sujet relativement fixé et se base sur des codes déjà écrits qu'il faut adapter aux besoins applicatifs. Ces derniers sont en revanches laissés libres.

 

2°/ Cadre général

La SAÉ consiste a "inventer" une application basée sur des micro-contrôleurs et des objets connectés (téléphones portables, camera ip, ...) pour collecter des données, et ensuite analyser ces données via des méthodes statistiques et de l'IA. Ces données sont soit directement textuelles/numériques, comme c'est souvent le cas avec celles que collectent des micro-contrôleurs grâce à des capteurs, soit au format audio, image, ... qu'il faut traiter pour en tirer de l'information textuelle/numérique. Qu'il y ait ou non traitement, le résultat est stocké dans une base de données non relationnelle, type mongodb. Une application web front-end faite en vuejs permet de récupérer des données dans cette BdD au travers d'une API et de les visualiser. L'API peut également appeler des scripts python qui vont lancer des traitements d'IA sur les données stockées en BdD, les résultats de ces traitements étant eux-même stockés en BdD.

Cependant, votre application doit suivre 2 contraintes majeures :

ATTENTION ! Réutiliser ne veut pas forcément dire faire du copier/coller aveugle de code. C'est plutôt la structuration du code et tout ce qui correspond parfaitement qui doit être conservé. Par exemple, la partie BdD du prototype définit certains schémas de document, avec la syntaxe de mongoose. Cela implique que :

 

L'évaluation tiendra compte de l'aspect réutilisation, et sanctionnera tout morceau de code totalement réécrit, alors qu'il était déjà présent dans le prototype et quasi fonctionnel pour votre application. L'idée est de se mettre dans des conditions de développement dans une entreprise où l'on doit faire évoluer un code existant, tout en restant dans un cadre de développement fortement contraint.

Une partie de la SAÉ sera consacrée à la gestion du code et la mise en production. C'est pourquoi les serveurs implémentés devront être "dockerisés" automatiquement, grâce à des processus d'intégration continue. 

 

3°/ Architecture applicative

3.1°/ Structuration fonctionnelle

Elle est donné en figure 1 ci-dessous

 SAE BUT5 A archiglobale
 Figure 1 : architecture logicielle imposée

 

Description :

 

 

 

 

 

 

3.2°/ contraintes & libertés

Vous devez trouver un contexte applicatif qui soit différent de celui du prototype mais qui soit compatible avec la structure exposée ci-dessus.

Les autres contraintes logicielle à respecter sont :

En dehors de ces contraintes, vous êtes libres d'adapter/ajouter des éléments en fonction de votre application, notamment :

 

Du point de vue matériel, les contraintes sont :

 

Remarques & conseils :

 

Quelques exemples de contexte :

 

4°/ Le prototype de départ : surveillance domotique

 

Dans une maison, des boîtiers permettent de faire des mesures à intervalles réguliers. Ces boîtiers contiennent des micro-contrôleurs de type esp8266, connectés à des capteurs. Par exemple, on cherche à mesurer la température et pression atmosphérique sur la terrasse, la luminosité dans chaque pièce (= lumière allumée ou non), la production électrique de panneaux photovoltaïques, etc. L'objectif de cette collecte de données est de faire par exemple du suivi/gestion de consommation énergétique, au travers de la visualisation de graphiques, statistiques, ... via un navigateur. 

Le propriétaire peut également utiliser son téléphone portable et des caméra IPs pour prendre des photos du ciel, qui vont être analysées par un serveur afin d'en tirer des informations chiffrées, par exemple la nébulosité, le % de chance qu'il pleuve, etc.

Enfin, ces informations peuvent être croisées avec celles collectées via les micro-contrôleurs, puis utilisées comme entrée dans une IA pour faire de la prévision météorologique, et prendre des décisions concernant la maison, comme par exemple fermer les volets, éteindre des lumières, ...