Deep Learning 2017-2018/SRS

<<< RETOUR

A consulter avant :
 * Slides Exigences
 * SRS Wikipedia
 * IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998

Equipe projet
=Introduction= Le but de ce projet est de permettre aux entreprises qui souhaitent trouver une personne ou une équipe de personnes pour un stage ou un emploi d'identifier le profil d’étudiant qui répond au mieux à ses attentes et qui aura les compétences nécessaires.

But du document
Le but de ce SRS (Software Requirement Specification) est de définir les différentes fonctionnalités de notre projet à travers des spécifications fonctionnelles et non fonctionnelles. Il décrit également le public cible du projet, et l'interface utilisateur. Il est destiné tant aux utilisateurs qu'aux développeurs du logiciel et fait office de contrat car il définit toutes les fonctionnalités qui doivent être délivrées.

Objectif du projet
L'année dernière, un projet de Deep Learning a été conduit dans le but de suggérer des films à des utilisateurs en utilisant de l'outil TensorFlow.

Cette année, le projet est repris pour pouvoir réponde à une problématique différente qui est liée au projet Disrupt'Campus.

Les offres de formation, et profils associés, sont aujourd'hui nombreux et il est difficile de savoir quelle formation correspond le mieux aux besoins d'une entreprise. Ce projet utilisera les stages et les embauches déjà réalisés pour entraîner notre application de prédiction de profils adaptés à une offre. Son objectif est de pouvoir aider une entreprise dans son processus d'embauche, ou de constitution d'équipes pour répondre à des problèmes, en gardant à l'esprit la construction d'équipes pluridisciplinaires.

Définitions, acronymes et abréviations

 * AI : Ou intelligence artificielle est "l'ensemble de théories et de techniques mises en œuvre en vue de réaliser des machines capables de simuler l'intelligence"
 * Machine Learning : Ou l'apprentissage automatique est un champ de l'intelligence artificielle composé de méthodes, le plus souvent de classification, visant à permettre à la machine d'adapter ses analyses en se basant sur des données fournies en entrée (base d'apprentissage)
 * Deep Learning : Ou l'apprentissage profond est un ensemble de méthodes d'apprentissage automatique qui utilisent des réseaux de neurones.
 * Réseau de neurones : Système composé d'une succession de couches dont chacune prend ses entrées sur les sorties de la précédente, pouvant boucler et ayant pour but de modéliser des comportements complexes.

Références
https://fr.wikipedia.org/wiki/Apprentissage_profond

https://www.tensorflow.org/tutorials/wide_and_deep

Portée du produit
Cette application est destinée aux entreprises ou laboratoires qui sont à la recherche d'un ou plusieurs étudiants pour effectuer un stage ou un projet. Les entreprises pourront par la suite contribuer à la base de données en indiquant si elles sont satisfaites de la proposition et ainsi la rendre plus performante.

=Description générale=

Le but du produit
Ce produit a pour but de permettre à l'utilisateur de rentrer une offre de stage ou d'emploi et d'obtenir une recommandation d'un formation d’études adaptée à ses besoins. L'utilisateur pourrait aussi indiquer si cette formation est adaptée pour sa demande. Il pourra aussi obtenir le moyen de contacter un représentant de la formation pour soumettre sa proposition à des étudiants. Cette recommandation sera faite en fonction d’étudiants de cette formation qui ont répondu à des offre similaire ainsi que par les compétence nécessaire pour ce travail et les compétences acquises par l’étudiant au cours de sa formation.

Caractéristiques et contraintes utilisateurs
Cette application est destinée à des recruteurs principalement, n'ayant pas de handicap particulier.

L'utilisateur devra avoir accès à une connexion internet pour pouvoir utiliser l'application. Et il n'aura pas besoin de compétences en informatique pour l'utiliser, il devra simplement savoir naviguer sur un site internet.

Contraintes générales du système
Ce système sera conçu dans une optique d'être repris et en tant que "brique de base" réutilisable et/ou adaptable. Pour cela, nous porterons une attention particulière à la documentation et ré-utilisabilité de notre code.

Le système devra stocker de manière permanente les descripteurs et classes de la base d'apprentissage et permettre un enrichissement de cette base.

Dépendances
Le bon déroulement de se projet dépends de la quantité de données pertinentes fournies. Nous dépendons donc de nos sources de données.

Nous partons du principe que des données faisant le lien entre des annonces et le profils y répondant existent déjà et en quantité suffisante pour que de l'apprentissage profond soit pertinent.

=Exigence fonctionelles=

Conception de l'interface du système
TODO

Exigence 1 : Fonctionnalités sans se connecter
Description: Cette exigence décrit toutes les fonctionnalités accessibles à un utilisateur non connecté

Entrées: Les actions de l'utilisateur

Source: L'utilisateur

Sorties: Retours informatifs de l'application

Destination: L'écran

Action:
 * MUST pouvoir entrer dans un champ texte son offre.
 * SHOULD pouvoir entrer son offre en fournissant un fichier au format pdf, ou word, ou txt.
 * MUST fournir une formation répondant au mieux à une offre.
 * SHOULD fournir une description plus détaillée d'une formation et/ou rediriger vers cette description
 * MAY permettre de contacter le responsable d'une formation.

Exigences non fonctionnelles:
 * MUST être facile d'utilisation
 * SHOULD fournir un résultat en moins de 1 seconde

Pré-condition: L'utilisateur a une offre à fournir

Post-condition: L'utilisateur a un profil correspondant à son offre

Effets secondaires:

Exigence 2 : Fonctionnalités en étant connecté
Description: Cette exigence décrit toutes les fonctionnalités accessibles à un utilisateur connecté

Entrées: Les actions de l'utilisateur

Source: L'utilisateur

Sorties: Retours informatifs de l'application

Destination: L'écran

Action:
 * MUST pouvoir sauvegarder les offres et les profils prédits
 * MUST pouvoir dire si la prédiction est bonne ou s'il a engagé un/des profils différents.

Exigences non fonctionnelles:
 * MUST être facile d'utilisation
 * SHOULD fournir un résultat en moins de 1 seconde

Pré-condition: L'utilisateur est connecté

Post-condition:

Effets secondaires: Si l'utilisateur donne un retour, il mets à jour la base d'apprentissage et la phase d'apprentissage doit être relancée.

Exigence 3 : Fonctionnalités internes
Description: Cette exigence décrit toutes les fonctionnalités internes du système (majoritairement au niveau du back-end)

Entrées: Des requetes

Source: Le système

Sorties: Résultats des requetes

Destination: Interne (back-end ou front-end)

Action:
 * MUST pouvoir extraire un descripteur à partir d'un fichier texte
 * MUST pouvoir enregistrer les descripteur et leur classe associée
 * SHOULD pouvoir enregistrer les descriptions des formations
 * MUST faire appel à TensorFlow pour l'apprentissage et la prédiction
 * MUST pouvoir communiquer les requêtes/résultats entre le back-end et le front-end

Exigences non fonctionnelles:

Pré-condition: Le système est correctement initialisé (dans un état normal) et TensorFlow cloud fonctionne.

Post-condition: Le résultat correspondant à la requête est rendu

Effets secondaires:

Exigence 4 : Fonctionnalités pour un administrateur
Une partie administrative sera disponible pour avoir accès a des statistique de l'application.

=Exigence de performance=
 * Facilité d'utilisation : Le logiciel doit pouvoir être utilisé par un utilisateur non expert et être agréable.
 * Rapidité : Le temps de réponse doit être raisonnable. (< 1s)
 * Gestion des erreurs : Les erreur doivent être gérées en interne et ne pas nécessiter d'intervention humaine. Elle devrons également être explicites pour l'utilisateur.
 * Précision : Le modèle de prédiction doit être fiable ( précision > 80% dans l'idéal)

=Évolutions potentielles=
 * La base d’apprentissage pourra être complétée pour augmenter la précision de prédiction du produit.
 * Le produit pourra être déployé sur un système Multi-serveurs pour permettre une plus grande performance de calcul.
 * L'application pourrait être par la suite étendue à d'autre Universités que celle de Grenoble.