Cours : Introduction à l'UML
- Les notions du jour
Présentation de l'UML
Diagramme de classe
Use-Case
Diagramme de séquence
Méthode Merise
MCD
Présentation de l'UML

L'UML (Unified Modeling Language) est un langage visuel utilisé pour modéliser des applications en informatique (logiciel, mobile, web, ...).
Il se présente sous formes de diagrammes pouvant représenter différents aspects d'une application.
Nous allons en voir 4 principaux :
le diagramme de classe qui représente les données
le use-case qui représente les comportements de l'application
le diagramme de séquence qui représente les interactions
le MCD qui représente les relations entre les données
L'idée de ce cours n'est pas de faire de vous des expert·e·s de la conception, mais plutôt que vous ayez croisé dans votre parcours certains des principaux diagrammes de modélisation, que vous sachiez que ça existe et que vous puissiez retourner sur ce cours lorsque vous aurez besoin de faire la conception de votre projet de formation.
Les diagrammes présentés dans le cours sont en version simplifiée afin que vous puissiez vous familiariser avec un langage visuel, mais s'il existe des grands principes de modélisation, chaque entreprise et chaque logiciel de modélisation va avoir ses spécificités.
Représenter les données : le diagramme de classe
Le diagramme de classe représente une entité dans votre code. Dans la plupart des langages, il existe un paradigme de programmation appelé Programmation Orientée Objet (ou POO en français, OOP en anglais).
Vous en avez peut-être entendu parler dans le cours de JavaScript, pour rappel une classe en JavaScript ressemble à ça :
Le PHP implémente lui aussi la POO, vous le verrez en profondeur plus tard dans les cours PHP.
Pour l'instant, souvenez-vous qu'une classe ça contient des variables : les attributs et des fonctions : les méthodes.
Du coup sous forme de diagramme cela donne :

Nous avons la classe Human.
Elle a des attributs :
firstName
lastName
age
height
weight
et des méthodes :
eat()
sleep()
talk()
walk()
run()
Exercice Diagramme de classe simple
Les liens entre les entités
Parfois vos entités sont liées entre elles, c'est le cas par exemple quand vous implémentez l'héritage. Par exemple un chien, c'est une sous-espèce plus précise d'un Animal. On pourrait donc dire que la classe Chien hérite de la classe Animal.
On doit aussi représenter ce genre de lien sur un diagramme de classes, et on le fait de la façon suivante :

Dans cet exemple, nous avons deux classes filles : Client et Vendor, qui héritent toutes les deux de la classe User.
Exercice Diagramme de classes avec liens
Représenter les comportements : les Use-Case
Dans une application il y a souvent des rôles différents pour les utilisateurs et les acteurs, pour modéliser ces différents comportements, on utilise un type de diagramme appellé Use-Case (cas d'usage en français).

Le diagramme ci-dessus représente les comportements des différents acteurs dans une marketplace e-commerce.
Dans un diagramme de Use-Case, nous avons un bloc pour représenter l'entité complète (le bloc bleu e-shop).
Puis, nous avons des bonhommes batons pour représenter, sur la gauche les utilisateurs du service (ici un client et un vendeur), sur la droite les systèmes tiers (ici la banque).
Nous avons des formes ovales (ici en jaune) qui présentent les différentes actions possibles, et enfin des traits qui font le lien entre les différents acteurs et les actions.
Exercice sur le Use-Case
Représenter les interactions : le diagramme de séquence
Pour représenter les différentes interactions entre les différents acteurs (attention, un acteur peut soit être un humain, soit un système, soit un bloc de votre application) et leur déroulé dans le temps on va utiliser un diagramme de séquence.

Le diagramme ci-dessus représente les interactions entre le client, le service et la cuisine dans un restaurant.
En haut, dans les blocs verts, nous avons les différents acteurs (Client, Service, Cuisine).
Pour chaque acteur, nous avons en pointillé le temps qui s'écoule, sa timeline. Sur les timelines, nous avons des blocs oranges qui représentent chacun une action faite par l'acteur et le temps qu'elle lui prend.
Les interactions qui déclenchent et résultent de ces actions sont représentées par des flèches qui partent de la source de l'interaction vers son destinataire (le client commande, c'est la source, le service reçoit la commande, c'est le destinataire).
Exercice sur le diagramme de séquence
La méthode Merise
La méthode Merise est une méthode de modélisation des données et des traitements qui est moins universelle que l'UML et principalement utilisée en France.
Elle utilise différents niveaux de diagrammes : Modèle Conceptuel (MCD, MCT), Modèle Logique (MLD, MLT) et Modèle Physique (MPD, MOT).
Je ne l'ai à titre personnel, jamais apprise ni utilisée, mais vous trouverez sur Moodle des explications des diagrammes s'appliquant aux données (dans la journée MCD).
Ma version du MCD
J'utilise par contre quand je travaille sur du web un diagramme qui se rapproche de l'idée du MCD qy'on appelle généralement un ERD (Entity Relationship Diagram) c'est une sorte de pont entre un diagramme de classe en UML et une modélisation de base de données.

Le diagramme ci-dessus représente une modélisation simple (et incomplète) de la base de données d'un site e-commerce. On y trouve les produits, leurs catégories, le lien qui dit que tel produit est dans telle catégorie, les commandes et le lien qui dit que tel produit est dans telle commande.