020GLOES5 | Génie logiciel |
---|---|
![]() |
Ce cours décrit les problématiques liées à la programmation « à grande échelle » par rapport à la programmation « à petite échelle », en termes de coût, de qualité, de fonctionnalités et de gestion du temps. Il expose les méthodologies associées au cycle de vie du développement logiciel selon des approches traditionnelles éprouvées, telles que CMM, TSP, PSP, RUP, ainsi que selon des méthodologies agiles comme XP et Scrum (concepts, rôles et cérémonies), en plus des cycles de vie en cascade et itératif. Le cours détaille les techniques d’élicitation et les règles et modèles de rédaction des cahiers des charges fonctionnels (SRS), et présente plusieurs outils de spécification utilisés pour l’analyse des besoins fonctionnels et non fonctionnels. Il explique les principes DRY, KISS et SOLID, notamment leurs concepts avancés de conception orientée objet (OCP, LSP, etc.), et couvre les diagrammes UML pour la modélisation orientée objet. Il présente également la méthode de conception par cartes CRC, adoptée par la méthodologie eXtreme Programming. Le cours met en évidence la nécessité d’un refactoring continu et en explique les techniques aux niveaux chirurgical, tactique et stratégique, tout en décrivant le processus à suivre pour réussir un refactoring : configuration et utilisation des outils de gestion de versions et du code source (Git/GitHub), utilisation des logiciels de tests et de gestion des anomalies, évaluation quantitative et qualitative de la qualité du code afin d’identifier les candidats au refactoring, puis exécution et validation des étapes de refactoring. Il décrit en outre la pyramide de tests et détaille les tests unitaires, d’intégration, fonctionnels et non fonctionnels, en insistant sur la nécessité du développement piloté par les tests (TDD) avec JUnit. Le cours compare les méthodes permettant d’estimer le coût d’un logiciel, explique les bonnes et mauvaises pratiques UI/UX en étudiant différents cas d’applications autonomes et web, en mettant l’accent sur les problématiques d’accessibilité. Enfin, il introduit les principes DevOps et sensibilise les étudiants au développement SaaS ainsi qu’à la valeur de l’automatisation informatique. Temps présentiel : 30 heures Charge de travail étudiant : 70 heures Méthode(s) d'évaluation : Travaux pratiques |