Ce cours en deux semaines a pour objectif de fournir aux étudiants une compréhension complète et pratique de la modélisation des systèmes logiciels à travers les langages UML et Merise, ainsi que l'application des méthodes agiles pour la gestion de projets. À la fin de ce cours, les étudiants seront capables de :
- Modéliser des systèmes d'information à l'aide de diagrammes UML et de modèles de données.
- Utiliser la méthode Merise pour structurer des systèmes d'information complexes.
- Gérer un projet de développement logiciel en suivant les principes et pratiques des méthodes agiles, notamment * SCRUM* et Kanban.
- Historique d'UML : Origines et rôle de l'UML dans le développement logiciel.
- Importance de l'UML : Pourquoi UML est essentiel pour modéliser la structure et le comportement des systèmes.
- Types de diagrammes UML :
- Diagrammes Comportementaux : Modélisation des processus dynamiques et des interactions.
- Diagrammes Structurels : Visualisation de la structure statique des systèmes.
- Présentation du diagramme de cas d'utilisation et de ses symboles.
- Exercice : Créer un diagramme de cas d'utilisation à partir d'un scénario donné.
- Illustration des processus métier à l'aide d'un diagramme d'activité.
- Exercice : Modéliser un processus d'affaires en utilisant un diagramme d'activité.
- Représentation des interactions temporelles entre objets.
- Exercice : Tracer les interactions d'un scénario avec un diagramme de séquence.
- Modélisation des classes et de leurs relations.
- Exercice : Concevoir un diagramme de classes avec attributs et méthodes.
Snapshot des instances de classe à un moment donné.
- Exercice : Modéliser les objets d'un scénario concret.
Représentation des interactions entre objets pour accomplir une tâche.
- Exercice : Modéliser la communication entre les objets d'un scénario concret.
Modélisation des états d’un objet au cours de son cycle de vie.
- Exercice : Modéliser les changements d'états d'un objet dans un scénario concret.
- Modélisation des composants et de leurs relations.
- Exercice : Concevoir un diagramme de composants avec leurs relations.
- Modélisation des composants regroupés par nœuds.
- Exercice : Concevoir un diagramme de déploiement.
Structure en arbre des données.
Organisation des données en tables.
Extension du modèle hiérarchique avec plusieurs parents.
Stockage des données sous forme de documents.
Représentation des bases de données relationnelles.
Structure des bases de données relationnelles.
- Exercices : Modéliser une base de données SQL à partir d'un scénario donné.
- Les étudiants développeront un système en utilisant les diagrammes UML et un modèle de base de données relationnelle.
- Présentation orale : Chaque groupe présente ses choix de conception.
- Présentation et historique : Origines et rôle de la méthode Merise dans la modélisation des systèmes d'information.
- Comparaisons avec UML : Similitudes et différences entre Merise et UML.
- Introduction au MCD et exercices pratiques pour modéliser les données d’un système.
- Passage du MCD au MLD en prenant en compte les contraintes relationnelles.
- Exercices : Conversion du MCD en MLD.
- Choix du SGBD : Sélectionner et préparer un système de gestion de bases de données.
- Optimisation : Techniques pour optimiser les bases de données et garantir l'intégrité des données.
- Contenu : Vue d’ensemble de l’évolution des méthodes de gestion de projet, du traditionnel à l’agile.
- Exercice : Présenter des expressions de besoins et demander aux apprenants de choisir entre une méthode traditionnelle ou agile, en justifiant leur choix.
- Contenu : Introduction aux approches traditionnelles comme le cycle en V et Waterfall.
- Exercice : Donner un projet et demander de choisir entre le cycle en V ou Waterfall, avec une explication des étapes et du raisonnement derrière leur choix.
- Contenu : Introduction à la méthodologie Lean, ses principes (réduction des gaspillages, amélioration continue) et son influence sur l’agilité.
- Contenu : Définition et explication des principes fondamentaux de l'agilité dans le développement logiciel.
- Contenu : Étude des 4 valeurs et des 12 principes du Manifeste Agile.
- Exercice : Proposer des scénarios où les apprenants doivent repérer des erreurs ou des non-conformités aux valeurs et principes du Manifeste Agile, et proposer des corrections.
- Contenu : Introduction à plusieurs méthodes agiles :
- Kanban
- SCRUM
- Extreme Programming (XP)
- Agile Modeling
- Crystal
- Contenu : Présentation des pratiques clés (pair programming, TDD, refactoring, etc.).
- Exercices :
- Mettre en place un plan d'implémentation de pair programming.
- Pratiquer le Test-Driven Development (TDD) avec un petit projet pratique.
- Contenu : Présentation des principes de modélisation agile (just enough, good enough).
- Exercice : Modélisation d'un petit projet (par exemple, une application de gestion de bibliothèque) en respectant les principes de simplicité d’Agile Modeling.
- Contenu : Explication du tableau Kanban, des règles WIP (Work In Progress), et des principes de priorisation.
- Exercice : Création d’un tableau Kanban pour un projet avec une liste de tâches, définition des règles WIP, et justification des choix de priorisation.
- Contenu : Présentation des valeurs, piliers, rôles (Scrum Master, Product Owner, Équipe), artefacts (Product Backlog, Sprint Backlog, Incrément) et événements (Sprint, Daily Scrum Meeting, Sprint Review, Sprint Retrospective).
- Exercice : Simuler un Sprint Planning avec la définition d'un Sprint Goal, l'estimation des User Stories et l' organisation du backlog. Ensuite, simuler un Daily Scrum en demandant à chaque apprenant de faire un tour rapide de leurs progrès.
- Contenu : Atelier pratique basé sur la méthode Scrum pour développer une application de todo list "MyTodo".
- Étapes :
- Analyse d'une expression de besoins
- Mise en place d'une équipe Scrum
- Constitution du Product Backlog
- Rédaction des User Stories
- Définition du MVP
- Estimation des User Stories (Story Points vs estimation temporelle, Planning Poker)
- Backlog refinement
- Sprint Planning
- Exécution d'un Sprint
- Daily Scrum Meeting
- Suivi avec le Burndown Chart
- Sprint Review
- Sprint Retrospective
- Analyse des Burnup et Velocity Charts
- Étapes :
- Un quizz pour réviser les concepts des méthodes agiles, avec un focus sur SCRUM et Kanban.
Les étudiants formeront des équipes pour travailler sur un projet complet en utilisant UML et Merise, et géreront le projet selon les pratiques agiles.
- Présentation du projet : Explication des objectifs du projet et constitution des équipes.
- Aide et accompagnement : Encadrement pour la conception et la gestion du projet.
- Restitution : Présentation des résultats par les étudiants, avec évaluation de la modélisation et de la gestion de projet.