Programme des cours 2021-2022
BINV2090-2  
Conception d'applications d'entreprise
  • Projet d'applications d'entreprise
  • Architecture d'applications d'entreprise
  • Back-end Java
Durée :
Projet d'applications d'entreprise : 48h Pr
Architecture d'applications d'entreprise : 24h Th
Back-end Java : 12h Th
Nombre de crédits :
Bachelier en informatique de gestion8
Nom du professeur :
Projet d'applications d'entreprise : Brigitte LEHMANN
Architecture d'applications d'entreprise : Laurent LELEUX
Back-end Java : Raphaël BARONI, Laurent LELEUX, Sébastien STREBELLE
Coordinateur(s) :
Brigitte LEHMANN, Laurent LELEUX
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 axes. Un premier propose aux étudiants de construire une architecture d'application web. De nombreux concepts y seront abordés, notamment l'injection de dépendances, les pattern DTO, DAO, Registry... Le second propose la création d'une API en JAVA avec Jersey et Jackarta. Les principaux concepts de ces technologies y seront abordés, notamment les ressources, les annotations, les ExceptionMappers, les Filters... Le troisième met en pratique cette architecture ainsi que ces technologies 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...
Projet d'applications d'entreprise
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.
Architecture d'applications d'entreprise
L'activité présente l'analyse et le développement d'un Framework d'application basé sur une architecture trois tiers. Seules les parties "Business" et "Persistance" sont abordées en détails.   Dans un premier temps, un Framework mono-thread va être construit, pour ensuite être adapté en multi-thread.   De nombreux concepts et patterns sont abordés et mis en pratique:


  • Injection de dépendances
  • Gestion des exceptions
  • Logging
  • Data Access Objects
  • Use-Case Controllers
  • Unit Of Work
  • Data Transfer Objects
  • ...
Back-end Java
Cette activité d'apprentissage se concentre sur la création d'une API REST en JAVA, qui pourra ensuite être consommée par une SPA.
Les concepts de Servlet, serveur embedded (Jetty) ou non, sérialisation JSON... y seront abordés.
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.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement :
Compétence(s) - Capacité(s):
C1 - S'insérer dans son milieu professionnel et s'adapter à son évolution CA1.1 -Travailler, tant en autonomie qu'en équipe éventuellement multidisciplinaire dans le respect de la culture d'entreprise CA1.2 -Collaborer à la résolution de problèmes complexes avec méthode, rigueur, pro activité et créativité CA1.4 -Développer une approche responsable, critique et réflexive des pratiques professionnelles CA1.5 -Identifier ses besoins de développement et s'inscrire dans une démarche de formation permanente C2 - Communiquer ¿ Ecouter, informer, conseiller les acteurs tant en interne qu'en externe CA2.1 -Poser les questions adéquates et adaptées aux spécifications demandées et comprendre son interlocuteur pour identifier les besoins de l'utilisateur CA2.2 -Adapter ses techniques de communication, son vocabulaire à l'interlocuteur quel qu'il soit CA2.3 -Rédiger un document technique, un rapport CA2.5 -Exploiter un document technique en français et en anglais C3 - Mobiliser les savoirs et les savoir-faire propres à l'informatique de gestion CA3.1 -Concevoir, implémenter et maintenir des algorithmes répondant aux spécifications et fonctionnalités fournies CA3.2 -Choisir et mettre en œuvre un standard défini ou une technologie spécifique (méthodologie, environnement, langage, framework, librairies, ...) CA3.3 -Traduire les besoins des utilisateurs en modèles d'analyse CA3.4 -Concevoir, implémenter, administrer et utiliser avec maîtrise un ensemble structuré de données C4 - Analyser les données utiles à la réalisation de sa mission en adoptant une démarche systémique CA4.1 -Prendre en compte les évolutions probables de la demande et envisager les diverses solutions possibles CA4.4 -Prendre en compte la problématique de sécurité des applications CA4.5 -Soigner l'ergonomie des applications C5 - S'organiser ¿ Structurer, planifier, coordonner, gérer de manière rigoureuse les actions et les tâches liées à sa mission CA5.1 -Evaluer la charge et la durée de travail liée à une tâche CA5.2 -Planifier un travail CA5.3 -Respecter les délais prévus CA5.4 -Suivre un protocole méthodologique visant à cerner un problème CA5.5 -Documenter son travail afin d'en permettre la traçabilité CA5.6 -Gérer une équipe et favoriser les collaborations au sein du service ou du département
Aquis d'apprentissage(s) spécifiques visé(s) :
  • Comprendre les enjeux du multi-threading, les analyser, et construire une architecture cohérente (Architecture d'applications d'entreprise).
  • Comprendre les besoins des applications d'entreprise (Architecture d'applications d'entreprise).
  • Développer un Framework d'application mono/multi-thread (Architecture d'applications d'entreprise).
  • Développer une application utilisant une architecture d'entreprise classique en 3 couches (Projet d'applications d'entreprise).
  • Analyser les besoins d'un utilisateur et rédiger un cahier des charges et rapport d'analyse détaillant aussi le produit à développer (Projet d'applications d'entreprise).
  • Réaliser le développement collaboratif d'une application à l'aide d'un outil de partage de code (Projet d'applications d'entreprise).
  • Planifier un développement à l'aide d'un outil de gestion de tâche (Projet d'application d'entreprise).
  • Gérer son temps à l'aide d'un outil de gestion du temps (Projet d'application d'entreprise).
  • Se conformer à des conventions de développement à l'aide d'un outil d'intégration continue (Projet d'application d'entreprise).
  • Respecter les délais lors d'un développement informatique (Projet d'application d'entreprise).
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    Projet d'applications d'entreprise                         48 BINV2090 B    Architecture d'applications d'entreprise               24 BINV2090 C    Back-end Java                                                     12
Architecture d'applications d'entreprise
Le cours sera donné en parallelle du projet. Les premières séances se focaliseront sur une architecture de base, qui sera ensuite développée dans le projet. Les séances suivantes permettront d'ajouter des concepts, ainsi que des structures supplémentaires sur l'architecture de base.
Back-end Java
Le cours sera donné en parallelle du projet, 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.
Situation d'intégration
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, métriques liées à la qualité du code.
  • Utilisation d'outils cadrant la gestion du projet : forum de discussion et wiki, outils de suivi du temps, outils de gestion des tâches.
  • Implémentation respectant une architecture d'entreprise en couches typique des applications Web.
  • Implémentation en utilisant les technologies Jersey et Jackarta.
Mode d'enseignement (présentiel, à distance, hybride) :
Présentiel.
 
Projet d'applications d'entreprise
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.
Architecture d'applications d'entreprise
Chaque cours aborde progressivement une nouvelle partie du Framework, avec les concepts et patterns associés. Il est ainsi construit progressivement, en collaboration avec les étudiants.
Back-end Java
L'activité sera principalement organisée autour d'exercices pratiques.
Lectures recommandées ou obligatoires et notes de cours :
Projet d'applications d'entreprise
Slides projetés par le professeur.      
Architecture d'applications d'entreprise
Diagrammes dessinés en cours.
Modalités d'évaluation et critères :
Responsable de l'évaluation: LELEUX Laurent
Langue de l'évaluation: Français
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'AcA ni de note pour les AcA. 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 des remises intermédiaires au long du semestre. Ces remises sont composées de rapports et de dépôts de code.
  • L'évaluation de la remise finale à la fin du semestre. Cette remise implique une présentation du produit fini, l'évaluation du code du produit fini, un complément d'analyse ainsi que la possibilité de corriger des points des remises intermédiaires.
  • L'évaluation individuelle de la compréhension de l'architecture du logiciel développé (évaluation orale hors session).
En cas d'échec à l'une de ses é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.
Les deux premières évaluations sont de l'évaluation continue, il n'y a pas d'examen et et le résultat de l'évaluation de juin est pris en compte à l'identique en septembre. La dernière (évaluation individuelle) pourra être représentée lors de la seconde session.
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.
Tenant compte de la situation sanitaire et du Protocole pour la reprise des cours dans l'enseignement supérieur émanant de la Ministre de l'enseignement, les modalités prévues pour l'organisation et l'évaluation de l'Unité d'enseignement sont susceptibles d'être modifiées en cas d'évolution du risque épidémique et d'un retour vers un confinement total ou partiel.
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. C1-CA1.2 ; C3-CA3.1 et CA3.4 ; C4-CA4.4 * 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. C2-CA2.1 et CA2.2(externe) ; C3-CA3.3 ; C3-CA3.4; C4-CA4.1 * ANALYSE ( AAT2)
  • Acquis d'apprentissage terminaux : AAT9. Affronter des situations nouvelles en se formant pour intégrer les changements. C1-CA1.5; C2-CA2.2; C5-CA5.2 * FLEXIBILITE ( AAT9) Acquis d'apprentissage terminaux : AAT10. Respecter la déontologie, les règlements et les conventions en usage dans son milieu professionnel. C1-CA1.3 * PROFESSIONNALISME ( AAT10.)
  • Acquis d'apprentissage terminaux : AAT4. Décrire les flux d'information et les processus dans une organisation; C1 * GESTION ( AAT4)
  • Acquis d'apprentissage terminaux : AAT5. Se conformer aux bonnes pratiques du métier tout en restant critique. C1-CA1.4 ; C3-CA3.2 et CA3.5 ; C4-CA4.2 et CA4.3 et CA4.5 ; C5-CA5.3; C5-CA5.4 * QUALITE ( AAT5)
  • 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é. C2-CA2.2; C2-CA2.3 et CA2.4 ; C5-CA5 * 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. C1-CA1.1 ; C2-CA2.2(interne) ; C5- CA5.1 et CA5.2 et CA5.3 et CA5.6 ( AAT8)
  • Acquis d'apprentissage terminaux : AAT6. Exploiter de façon autonome et rigoureuse les différentes ressources d'information (en français ou en anglais). C2-CA2.5 * AUTONOMIE ( AAT6)
Contacts :