Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nicolasvauchenet/cours_methodologie


https://github.com/nicolasvauchenet/cours_methodologie

Last synced: 11 days ago
JSON representation

Awesome Lists containing this project

README

        

# Cours de Modélisation UML, Merise et Méthodes Agiles

## Objectifs du cours

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**.

## Semaine 1 : UML et Modèles de Données

### 01. Présentation d’UML

- **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.

### 02. Le diagramme de Cas d'Utilisation

- 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é.

### 03. Le diagramme d'Activité

- 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é.

### 04. Le diagramme de Séquence

- Représentation des interactions temporelles entre objets.
- **Exercice** : Tracer les interactions d'un scénario avec un diagramme de séquence.

### 05. Le diagramme de Classes

- Modélisation des classes et de leurs relations.
- **Exercice** : Concevoir un diagramme de classes avec attributs et méthodes.

### 06. Les diagrammes d'Objets

#### 06a. Diagramme d'Objets

Snapshot des instances de classe à un moment donné.

- **Exercice** : Modéliser les objets d'un scénario concret.

#### 06b. Diagramme de Communication

Représentation des interactions entre objets pour accomplir une tâche.

- **Exercice** : Modéliser la communication entre les objets d'un scénario concret.

#### 06c. Diagramme État / Transition

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.

### 07. Les modèles de données

#### 07a. Modèle Hiérarchique

Structure en arbre des données.

#### 07b. Modèle Relationnel

Organisation des données en tables.

#### 07c. Modèle Réseau

Extension du modèle hiérarchique avec plusieurs parents.

#### 07d. Modèle Document

Stockage des données sous forme de documents.

#### 07e. Modèle Entité / Association

Représentation des bases de données relationnelles.

#### 07f. Modèle Entité / Relation

Structure des bases de données relationnelles.

- **Exercices** : Modéliser une base de données SQL à partir d'un scénario donné.

### Projet d'évaluation UML

- 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.

---

## Semaine 2 : Merise et Méthodes Agiles

### 01. Merise

- **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.

#### 01a. Le Modèle Conceptuel des Données (MCD)

- Introduction au MCD et exercices pratiques pour modéliser les données d’un système.

#### 01b. Le Modèle Logique des Données (MLD)

- Passage du MCD au MLD en prenant en compte les contraintes relationnelles.
- **Exercices** : Conversion du MCD en MLD.

#### 01c. Le Modèle Physique des Données (MPD)

- **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.

### 02. L'Agilité dans le développement web et logiciel

#### 01. Historique des méthodes de gestion de projet

- **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.

#### 02. Présentation des méthodes traditionnelles

- **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.

#### 03. Présentation de LEAN

- **Contenu** : Introduction à la méthodologie Lean, ses principes (réduction des gaspillages, amélioration continue) et
son influence sur l’agilité.

#### 04. Introduction à l'agilité

- **Contenu** : Définition et explication des principes fondamentaux de l'agilité dans le développement logiciel.

#### 05. Le Manifeste Agile, valeurs et principes

- **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.

#### 06. Les méthodes agiles historiques, populaires et utiles

- **Contenu** : Introduction à plusieurs méthodes agiles :
- Kanban
- SCRUM
- Extreme Programming (XP)
- Agile Modeling
- Crystal

#### 07. Focus sur Extreme Programming (XP)

- **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.

#### 08. Focus sur Agile Modeling

- **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.

#### 09. Focus sur Kanban

- **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.

#### 10. Focus sur Scrum

- **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.

#### TP Scrum : MyTodo

- **Contenu** : Atelier pratique basé sur la méthode Scrum pour développer une application de todo list "MyTodo".
- **Étapes** :
1. Analyse d'une expression de besoins
2. Mise en place d'une équipe Scrum
3. Constitution du Product Backlog
4. Rédaction des User Stories
5. Définition du MVP
6. Estimation des User Stories (Story Points vs estimation temporelle, Planning Poker)
7. Backlog refinement
8. Sprint Planning
9. Exécution d'un Sprint
10. Daily Scrum Meeting
11. Suivi avec le Burndown Chart
12. Sprint Review
13. Sprint Retrospective
14. Analyse des Burnup et Velocity Charts

#### Quizz récapitulatif Agile

- Un quizz pour réviser les concepts des méthodes agiles, avec un focus sur **SCRUM** et **Kanban**.

---

### 03. Projet d'évaluation final : UML, Merise, Agile

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.