Programme des cours 2024-2025
BINV2090-2  
Conception d'applications d'entreprise
  • CAE - Projet
  • CAE - Théorie
  • CAE - Exercices
Durée :
CAE - Projet : 48h Proj.
CAE - Théorie : 24h Th
CAE - Exercices : 12h Ex.
Nombre de crédits :
Bachelier en informatique, orientation développement d'applications (Bachelier en informatique, orientation développement d'application)8
Nom du professeur :
CAE - Projet : Raphaël BARONI
CAE - Théorie : Raphaël BARONI
CAE - Exercices : Raphaël BARONI
Coordinateur(s) :
Raphaël BARONI
Langue(s) de l'unité d'enseignement :
Langue française
Organisation et évaluation :
Enseignement au deuxième quadrimestre
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement :
Cette unité d'enseignement aborde la conception d'applications d'entreprise à travers trois activités d'apprentissage :

  • CAE - Théorie : de nombreux concepts sont présentés pour développer une application web évolutive suivant les standards appliquées actuellement en entreprise (bonnes pratiques architecturales, de codage & de gestion de projets, gestion des tests, documentation...) et les besoins (gestion de la concurrence, gestion de l'état, gestion d'une augmentation de la charge...).
  • CAE - Exercices : apprentissage condensé, en 3 semaine, de la création d'API Rest & de sa documentation à l'aide d'un framework Java moderne ; prise en compte de la gestion de containers.
  • CAE - Projet :  application des bonnes pratiques et des technologies vues dans les autres activités d'apprentissage (CAE - Théorie & CAE - Exercices) au travers d'un projet de groupe intégrateur. Celui-ci se veut une simulation de projet proche du milieu professionnel, intégrant la gestion des sources, la gestion du temps, l'intégration continue, la mise en production.
CAE - Projet
L'activité est une situation d'intégration simulant un projet informatique. Les séances présentielles ont pour fonction de :
  • Mettre en contexte les différentes activités d'intégration à mettre en œuvre au cours du semestre.
  • Permettre aux groupes de synchroniser leur travail, et de faire le point sur ce qui a été accompli afin de planifier correctement ce qu'il reste à faire.
  • Dialoguer avec les encadrants afin de fluidifier le travail des groupes, de minimiser les tensions, et de s'assurer que les obstacles seront bien surpassés comme ils doivent l'être.
  • Assurer la partie formatrice des évaluations.
CAE - Théorie
Cette activité va présenter tous les concepts nécessaires à la mise en place d'un projet d'application d'entreprise, principalement :

- La mise en place d'une application web évolutive suivant les standards appliqués actuellement en entreprise : utilisation de git, de containers, séparation du frontend (React) & du backend (Spring), environnement de développement, conventions de codage, tests, bonnes pratiques architecturales associées aux besoins et aux frameworks choisis, documentation des API & du frontend... 

- La prise en compte de besoins pointus des applications d'entreprise et l'évolution associée de l'architecture logicielle, comme par exemple : gestion de la concurrence, gestion de l'état, gestion d'une augmentation de la charge des utilisateurs, passage vers un environnement de production...

- La mise en place d'une gestion de projet selon une approche agile.
CAE - Exercices
Cette activité d'apprentissage se concentre sur la création d'une API REST en Java (via Spring) & de sa documentation. Cette API pourra ensuite être consommée par une SPA.

Nous mettrons en pratique les concepts d'authentification avec JWT, gestion des sessions, gestion des headers/body, structure en ressources, utilisation des verbes et codes de retour... qui auront déjà été abordés dans le cours de Web2.

Nous verrons aussi comment gérer des containers (frontend & API).
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement :
Aquis d'apprentissage(s) spécifiques visé(s) : 

CAE - Théorie :

  • Expliquer les besoins des applications d'entreprise, comme par exemple : gestion de la qualité, gestion d'une augmentation de la charge des utilisateurs, gestion de l'état, passage d'un environnement de développement à un environnement de production, gestion de la concurrence...
  • Expliquer les parties de l'architecture qui permettent de répondre aux besoins et aux bonnes pratiques associées aux frameworks choisis
  • Appliquer un environnement de développement, de tests et de production selon les outils d'entreprise sélectionnés
CAE - Exercices :

  • Mettre en œuvre une API avec Spring & sa documentation
  • Exécuter des containers pour le frontend & l'API
CAE - Projet :

  • Développer une application utilisant une architecture d'entreprise répondant à des besoins pointus et utilisant les bonnes pratiques actuelles
  • Analyser les besoins du client et des utilisateurs notamment via un cahier des charges et rédiger un rapport d'analyse détaillant le produit à développer
  • Réaliser le développement collaboratif d'une application à l'aide d'un outil de partage de code, tout en respectant les contraintes du projet : qualité, architecture adéquate...
  • Gérer son projet selon une méthodologie agile (découpe du projet en tâches, planning & évaluation du temps, sprints...)
  • Se conformer à des conventions de développement à l'aide d'un outil d'intégration continue
  • Respecter les délais lors d'un développement informatique
 

Compétence(s) - Capacité(s):

CO1 - Communiquer et informer
CA1.a - Choisir et utiliser les moyens d'informations et de communication adaptés
CA1.d - Utiliser le vocabulaire adéquat
CA1.f - Utiliser une langue étrangère

CO2 - Collaborer à la conception, à l'amélioration et au développement de projets
CA2.a - Elaborer une méthodologie de travail Planifier des activités et évaluer la charge et la durée de travail liée à une tâche
CA2.e - Documenter son travail afin d'en permettre la traçabilité et le cycle de vie

CO3 - S'engager dans une démarche de développement professionnel
CA3.a - Prendre en compte les aspects éthiques et déontologiques
CA3.b - S'informer et s'inscrire dans une démarche de formation permanente
CA3.c - Développer une pensée critique
CA3.d - Travailler tant en autonomie qu'en équipe dans le respect de la structure de l'environnement professionnel

CO4 - S'inscrire dans une démarche de respect des réglementations
CA4.b - Respecter les normes, les procédures et les codes de bonne pratique

CO5 - Mobiliser les savoirs et les savoir-faire lors du développement d'applications
CA5.a - Concevoir, implémenter et maintenir des algorithmes répondant aux spécifications et fonctionnalités fournies
CA5.b - Choisir et mettre en oeuvre un standard défini ou une technologie spécifique (méthodologie, environnement, langage, framework, librairies, ...)
CA5.c - Utiliser et exploiter des méthodes de modélisation lors de la phase d'analyse pour traduire les besoins des utilisateurs, sous forme d'un cahier de charges Concevoir, implémenter, administrer et utiliser avec maîtrise un ensemble structuré de données
CA5.e - Choisir, mettre en oeuvre un processus de validation et d'évaluation et prendre les mesures appropriées

CO6 - Analyser les données utiles à la réalisation de sa mission en adoptant une démarche systémique
CA6.a - Prendre en compte les évolutions probables de la demande et envisager les diverses solutions possibles
CA6.b - Choisir les méthodes de conception et les outils de développement
CA6.f - Soigner l'ergonomie des applications



Acquis d'apprentissage(s) terminaux visé(s):

- Acquis d'apprentissage terminaux : AAT1. Concevoir des solutions informatiques efficaces qui répondent à des problèmes en maitrisant les structures de données véhiculées. CA5.a ; CA5.c ;

CA6.e * PROGRAMMATION (AAT1)
- Acquis d'apprentissage terminaux : AAT2. Traduire les besoins de l'utilisateur en modèles d'analyse en veillant à l'évolution des spécifications demandées tout en respectant les standards de formalisation utilisés. CA1.d ; CA5.c ; CA6.a * ANALYSE (AAT2)

- Acquis d'apprentissage terminaux : AAT4. Décrire les flux d'information et les processus dans une organisation ; CA3.a ; CA3.b ; CA3.c ; CA3.d * GESTION (AAT4)

- Acquis d'apprentissage terminaux : AAT5. Se conformer aux bonnes pratiques du métier tout en restant critique. CA3.c ; CA4.b ; CA5.b ; CA5.e ; CA6.b ; CA6.d ; CA6.f * QUALITE (AAT5)

- Acquis d'apprentissage terminaux : AAT6. Exploiter de façon autonome et rigoureuse les différentes ressources d'information (en français ou en anglais). CA1.f * AUTONOMIE (AAT6)

- Acquis d'apprentissage terminaux : AAT7. Communiquer (y compris documenter) une solution selon les différents canaux (oraux ou écrits) en procédant avec rigueur et en garantissant la traçabilité. CA1.a ; CA1.d ; CA2.e* COMMUNICATION (AAT7)

- Acquis d'apprentissage terminaux : AAT8. Collaborer au sein d'une équipe en s'adaptant à ses interlocuteurs, en organisant les différentes tâches d'un travail selon leur complexité et leur dépendance ainsi qu'en respectant les délais prévus. CA3.d ; CA1.d ; CA2.a * Equipe (AAT8)

- Acquis d'apprentissage terminaux : AAT9. Affronter des situations nouvelles en se formant pour intégrer les changements. CA1.d ; CA2.a ; CA3.b * FLEXIBILITE ( AAT9)

- Acquis d'apprentissage terminaux : AAT10. Respecter la déontologie, les règlements et les conventions en usage dans son milieu professionnel. CA3.a * PROFESSIONNALISME (AAT10.)

 
Savoirs et compétences prérequis :
Activités d'apprentissage prévues et méthodes d'enseignement :
Activités       Intitulé de l'activité                               Volume horaire
BINV2090 A    CAE - Projet                                                      48
BINV2090 B    CAE - Théorie                                                     24
BINV2090 C    CAE - Exercices                                                  12

CAE - Théorie

Le cours sera donné en parallelle du projet, de manière asynchrone. L'application d'entreprise sera construite de manière incrémentale, au fur et à mesure des besoins considérés. Les concepts associés à ces besoins seront présentés via des vidéos, tutoriels et autres contenus écrits.

CAE - Exercices

Le cours sera donné en parallelle du projet, en présentiel, uniquement durant les premières séances, de sorte que les technologies puissent être mises en pratique dès le début de la phase d'implémentation du projet.


CAE - Projet

Le projet est une activité intégrant les autres activités d'apprentissage mais aussi toutes les UEs corequises. Ce projet est une simulation d'un projet informatique tel qu'on le rencontre en milieu professionnel :





  • Travail en équipe (de 4 à 6).
  • Travail en phases d'analyse, d'architecture, de développement et de maintenance.
  • Rapports réguliers à rendre.
  • Utilisation d'outils cadrant le développement du logiciel : dépôt de code, tests unitaires automatisés, intégration continue, convention d'écriture du code,...
  • Utilisation d'outils cadrant la gestion agile du projet.
  • Implémentation d'une application web respectant une architecture d'entreprise répondant aux bonnes pratiques actuelles et aux besoins.
  • Implémentation en utilisant les technologies Spring pour l'API & React pour le frontend.
Mode d'enseignement (présentiel, à distance, hybride) :
Présentiel.
 
CAE - Projet
Aucune matière théorique n'est apportée directement dans le cadre de cette activité. Cependant, la mise en situation est accompagnée d'utilisation de divers outils informatiques (gestionnaire de dépôt de code, outils d'intégration continue, outils de gestion de temps, forum de discussion). Quand c'est relevant, le cours commence par une brève description et introduction à l'usage de ces différents outils.
CAE - Théorie
Ce cours sera donné en distanciel asynchrone.

Les étudiants apprennent en autonomie les concepts présentés principalement sous forme de capsules vidéo et tutoriels écrits reprenant la théorie. 
CAE - Exercices
L'activité sera principalement organisée autour d'exercices pratiques.
Lectures recommandées ou obligatoires et notes de cours :
CAE - Projet
Slides projetés par le professeur.      
CAE - Théorie
Tous les supports de cours disponibles sur Moodle.
Modalités d'évaluation et critères :
Mode d'évaluation et pondération:

L'évaluation de cette U.E. est intégrée et constitue dès lors un tout indécomposable. Celle-ci donne lieu à une seule note ; il n'y a pas d'évaluation d'Acap ni de note pour les Acap. Cela exclut automatiquement : toute dispense partielle issue d'une année antérieure, toute dispense partielle au sein de l'année académique, toute dispense partielle acquise cette année pour les années à venir.

L'évaluation sera décomposée en plusieurs parties :

  • L'évaluation continue, par groupe, reprenant des remises intermédiaires au long du semestre & la remise finale à la fin du semestre.
  • L'évaluation individuelle de la maîtrise de l'architecture du logiciel développé (évaluation orale).
 

En cas d'échec à l'une de ces évaluations, le responsable de l'évaluation de l'UE décide si ce déficit est inacceptable (en fonction de l'importance du déficit, de sa gravité ou du caractère essentiel des compétences non acquises). Dans l'affirmative, il définit une note pour l'ensemble de l'UE inférieure à 10/20, représentative de l'échec.

De plus, le manque de respect des consignes des enseignants encadrant l'activité sera sanctionné de pénalités directement appliquées sur les points finaux. Les points individuels sont ajustés par le prorata de la présence au cours. Finalement, dans certains cas de manque de participation, les points individuels peuvent être ajustés pour refléter ce manque de participation.

Le résultat de l'évaluation de juin est reporté à l'identique en seconde session.  Il n'y a donc pas d'évaluation en seconde session pour cette UE.
Stage(s) :
Remarques organisationnelles :
Lors du calcul de la moyenne arithmétique pondérée du PAE d'un étudiant, ainsi que du calcul de la moyenne arithmétique pondérée globale de son cursus, le poids associé à la note de la présente UE est son nombre d'ECTS.
Contacts :