UE25 Architectures logicielles
En pratique
-
Cette unité d'enseignement (UE) articule 1 activité d'apprentissage :
- Architectures logicielles
- En 2024-2025, elle s'organise au premier quadrimestre et couvre 6 crédits (ECTS).
- L'enseignement est principalement centralisé dans le campus : Département Informatique
- Cette UE est remédiable d'une session à l'autre
-
Modalités d'enseignement
- Auditoire
- Sous-groupe
- Travaux pratiques dans un local équipé spécifiquement
- en autonomie
Activité d’apprentissage
Les finalités de l'UE
Cette UE vise à former les étudiants à concevoir et implémenter des architectures logicielles backend robustes et évolutives, intégrant des frameworks modernes, des méthodologies de travail agiles, et des pratiques de CI/CD avec Docker. Elle s'inscrit dans le parcours professionnalisant en leur permettant de maîtriser des compétences clés telles que la collaboration en équipe, l'organisation du travail et la mise en production d'applications backend, contribuant ainsi à leur préparation aux métiers de développeur et d'architecte logiciel.
Les contenus de l'UE
L’UE explore les fondements des architectures logicielles backend, offrant une vision globale des différentes approches et de leur application dans le développement de solutions logicielles modernes. Le cours théorique présente les principaux types d'architectures (monolithique, microservices, serverless, etc.), avec des exemples pratiques pour comprendre leurs forces et faiblesses. Nous couvrons également les frameworks backend les plus utilisés (comme Node.js, Express, ou Spring), en mettant l'accent sur leur rôle dans la structure et l'efficacité d'une application.
Une partie importante est dédiée aux méthodologies de travail, notamment Agile, avec une application concrète dans la gestion de projets en groupe. La répartition des tâches, la planification, et l'organisation du travail sont mis en avant, avec des outils comme GitLab pour favoriser la collaboration et le suivi des projets.
L'UE aborde également l'intégration continue (CI) et le déploiement continu (CD), en utilisant Docker pour simplifier le déploiement d'applications dans des environnements contrôlés et reproductibles. Les laboratoires permettent aux étudiants de mettre en pratique ces concepts, en concevant une architecture backend complète qui pourra être intégrée à un front-end.
Enfin, l’accent est mis sur le travail en groupe : les étudiants, réunis en équipe, devront discuter avec un client, établir un cahier des charges, et appliquer les concepts vus en classe pour réaliser un backend fonctionnel, intégrant les meilleures pratiques de sécurité, de performance, et de maintenabilité.
Les acquis d'apprentissage visés par l'UE
Au terme des apprentissages, l'étudiant·e sera capable de :
- Analyser un cahier des charges et proposer une architecture logicielle backend adaptée aux besoins d'une application, en tenant compte des contraintes techniques et fonctionnelles.
- Concevoir et implémenter un backend fonctionnel en utilisant un framework adapté (Node.js, Express, Spring, etc.), intégrant des principes de modularité, de performance et de maintenabilité.
- Collaborer au sein d’une équipe en suivant une méthodologie Agile, planifier les tâches, et utiliser des outils de gestion de projet comme GitLab pour assurer un suivi efficace.
- Mettre en place une solution de CI/CD, notamment via Docker, pour automatiser les tests, le déploiement, et la maintenance d’une application backend.
- Documenter les choix techniques et les solutions mises en place, en fournissant des rapports clairs et détaillés.
- Communiquer avec un client pour recueillir des besoins, présenter une solution technique, et justifier les décisions d'architecture prises.
- Assurer la sécurité des données et des services backend en intégrant les meilleures pratiques de sécurité dans l'architecture.
Les méthodes d'enseignement-apprentissage
L'UE combine des cours théoriques et des laboratoires pratiques pour favoriser une approche progressive et active. Les premières séances introduisent les concepts théoriques essentiels, permettant aux étudiants de développer une base solide. Ces notions sont ensuite approfondies dans des laboratoires où ils appliquent ce qu'ils ont appris en concevant et réalisant une architecture backend en groupe.
Les laboratoires sont conçus pour encourager l'autonomie, la collaboration, et l'apprentissage par la pratique. Les étudiants travaillent sur un projet concret avec des étapes de planification, de développement et de mise en production, en interaction avec un client fictif. Tout au long de l'UE, l'accent est mis sur la gestion de projet Agile et l'utilisation d'outils comme GitLab et Docker.
Engagement attendu de la part de l'étudiant.e
Pour réussir ce cours, il est essentiel de s'engager activement dans les apprentissages. Assurez-vous de préparer chaque séance en lisant préalablement le contenu des cours et en participant aux discussions. Travaillez régulièrement sur votre projet en groupe, en répartissant équitablement les tâches et en communiquant fréquemment avec vos coéquipiers. Utilisez des outils de gestion de projet pour suivre votre progression. Enfin, n'hésitez pas à poser des questions et à solliciter des retours pour clarifier vos doutes et améliorer vos compétences.
Oral 1ere session
Cette épreuve présente des modalités spécifiques à la 1re session. Elle est organisée durant la session. Il s'agit d'un examen. Cette épreuve est en équipe de travail. Concrètement, l'épreuve repose sur une formulation orale. L'épreuve repose sur des réponses longues, formulations personnelles. Elle se déroule avec un support (à projeter). La correction de cette épreuve est assurée par délibération d'une équipe d’enseignant.es.
Oral 2eme session
Cette épreuve présente des modalités spécifiques à la seconde session. Elle est organisée durant la session. Il s'agit d'un examen. Cette épreuve est individuelle ou collective. Concrètement, l'épreuve repose sur une formulation orale. L'épreuve repose sur des réponses longues, formulations personnelles. Elle se déroule avec un support (à projeter). La correction de cette épreuve est assurée par délibération d'une équipe d’enseignant.es.
Projet 1ere session
Cette épreuve présente des modalités spécifiques à la 1re session. Elle est organisée de manière continue. Il s'agit d'un travail. Cette épreuve est en équipe de travail. Concrètement, l'épreuve repose sur une réalisation par mise en pratique. La correction de cette épreuve est assurée par délibération d'une équipe d’enseignant.es.
Projet 2ème session
Cette épreuve présente des modalités spécifiques à la seconde session. Elle est organisée durant la session. Il s'agit d'un travail. Cette épreuve est individuelle ou collective. Concrètement, l'épreuve repose sur une réalisation par mise en pratique. La correction de cette épreuve est assurée par délibération d'une équipe d’enseignant.es.
Règles de l’UE
Quels sont les supports et matériels de cours indispensables ?
Supports et matériels de cours
-
Documentation Officielle : Guides et références des frameworks et outils utilisés (Laravel, Django, Express,...).
-
Tutoriels en Ligne : Ressources pratiques pour approfondir les compétences techniques et résoudre des problèmes.
-
Articles et Études de Cas : Lectures recommandées sur les meilleures pratiques et tendances du développement backend.
-
Forums et Communautés : Espaces pour poser des questions et échanger avec d'autres développeurs.
Comment la note globale de l’UE est-elle déterminée ?
Explication de la pondération des différentes épreuves
Calcul de la note
La réussite de l'examen oral et du projet est nécessaire pour valider l'UE. Lorsque l'étudiant réussit les deux épreuves, la note finale de l'UE (/20) est calculée en fonction des pondérations suivantes :
- 50% pour le projet
- 50% pour la défense orale
Conditions de réussite
- La réussite du projet est une condition nécessaire mais insuffisante pour valider l'UE.
- Lors de la défense orale, l'étudiant doit démontrer une compréhension approfondie du code qu'il a développé et être capable d'expliquer les choix techniques réalisés.
- Si l'étudiant ne parvient pas à justifier de manière satisfaisante la conception et l'implémentation de son projet lors de la défense orale, prouvant ainsi un manque de maîtrise des compétences attendues, l'UE sera considérée comme non validée, quelle que soit la qualité du code soumis.
Notes importantes
- L’utilisation d’outils d’aide à la programmation, y compris l’intelligence artificielle, est autorisée durant le développement. Cependant, il est impératif que l'étudiant comprenne, maîtrise et puisse expliquer en détail le code produit. La simple génération de code sans compréhension approfondie ne répond pas aux exigences de l'UE.
- Il n'y a pas de dispense partielle d'une session à l'autre.
- Bien que le projet soit réalisé en groupe, la note attribuée est individuelle.
Quelles sont les informations administratives de cette UE ?
-
UE prérequises
-
UE corequises
Aucune -
Langue d'enseignement
Français -
Responsable de cette UE
TILLIEUX Arnaud -
Jury de délibération
- Président.e : Vincent MARTIN
- Secrétaire : Marianne COLLET
-
Identification
- Code : C1-B3-Q1-UE25
- Cycle : 1er cycle
- Unité obligatoire : oui
- Niveau CEC : 6
- 70 heures
-
Cursus
-
Enseignants prenant part à cette UE