Difference between revisions of "Deep Learning 2017-2018/SRS"

From air
Jump to navigation Jump to search
(Redirected page to SmartRecruiting/SRS)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
  +
#REDIRECT [[SmartRecruiting/SRS]]
[[Deep Learning 2017-2018|'''<<< RETOUR''']]
 
 
'''A consulter avant :'''
 
* [http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx Slides Exigences]
 
* [http://en.wikipedia.org/wiki/Software_requirements_specification SRS Wikipedia]
 
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]
 
 
 
==Equipe projet==
 
{| class="wikitable"
 
|-
 
! scope="col" width="200px" style="background-color:pink" | Membre
 
! scope="col" style="background-color:pink"| Rôles
 
|-
 
|Romane Gallier
 
|Chef de projet
 
|-
 
|Héloïse Fernandes de Almeida
 
|Scrum Master, Responsable Back-End
 
|-
 
|Antoine Gambro
 
|Responsable Qualité
 
|-
 
|Alicia Aubertin
 
|Responsable Front-End, Responsable Communication
 
|-
 
|Qianqian Fu
 
|Lead-Dev, Responsable Innovation
 
|}
 
 
=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 [https://fr.wikipedia.org/wiki/Intelligence_artificielle 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 [https://fr.wikipedia.org/wiki/Apprentissage_automatique 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 [https://fr.wikipedia.org/wiki/Apprentissage_profond l'apprentissage profond] est un ensemble de méthodes d'apprentissage automatique qui utilisent des réseaux de neurones.
 
* '''[https://fr.wikipedia.org/wiki/R%C3%A9seau_de_neurones_artificiels 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.
 
 
== Structure de l'application ==
 
Voici une vue logique de notre application, décrivant sa structure générale.
 
 
[[File:DeepLearning_2018_Vue_Logique.png|Vue Logique]]
 
 
==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==
 
 
Voici l'IMH abstraite du système décrit dans ce document.
 
 
[[File:DeepLearning_2018_IHM_abstraite.png|alt IHM abstraite]]
 
 
== Fonctionnalités ==
 
 
 
===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 requêtes
 
 
'''Source''': Le système
 
 
'''Sorties''': Résultats des requêtes
 
 
'''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===
 
'''Description''': Cette exigence décrit toutes les fonctionnalités accessibles à un administrateur
 
 
'''Entrées''': Les actions de l'utilisateur
 
 
'''Source''': L'utilisateur
 
 
'''Sorties''': Retours informatifs de l'application
 
 
'''Destination''': L'écran
 
 
'''Action''':
 
*'''SHOULD''' pouvoir consulter les performances et statistiques liées à l'application
 
*'''MUST''' pouvoir ajouter, modifier, retirer des formations
 
*'''MUST''' pouvoir ajouter, retirer des données de la base d'apprentissage
 
 
 
'''Exigences non fonctionnelles''':
 
 
'''Pré-condition''': L'administrateur doit être connecté avec un compte administrateur
 
 
'''Post-condition''':
 
 
'''Effets secondaires''':
 
 
=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. Elles devront é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'autres universités que celle de Grenoble.
 

Latest revision as of 12:23, 5 February 2018