# UML : cas d'utilisation et diagramme de classes

Informatique de gestion · Bachelor 2

> Acteurs, cas d'utilisation, classes, associations et multiplicités pour modéliser un SI.

## Introduction

UML (Unified Modeling Language) est un langage graphique normalisé pour décrire un système d'information avant de le développer. Il ne prescrit pas de méthode, mais offre un vocabulaire commun entre analystes, développeurs et représentants métier.

Le diagramme de cas d'utilisation décrit le système vu de l'extérieur : des acteurs (personnes ou systèmes externes) interagissent avec des cas d'utilisation, c'est-à-dire des fonctionnalités qui apportent une valeur observable. Le diagramme de classes décrit la structure interne : classes, attributs, opérations et associations avec leurs multiplicités.

Dans un projet d'informatique de gestion, on passe typiquement des cas d'utilisation (quoi ?) au diagramme de classes (avec quelles données ?), puis à la base de données et au code. Une bonne modélisation réduit les malentendus coûteux découverts tard.

## Objectifs d'apprentissage

- Distinguer acteur, cas d'utilisation et frontière du système
- Utiliser les relations include, extend et généralisation à bon escient
- Lire et construire un diagramme de classes avec multiplicités
- Différencier association, agrégation, composition et héritage
- Dériver un schéma relationnel à partir d'un diagramme de classes

## Concepts clés

- **Acteur et cas d'utilisation** : Un acteur est un rôle externe au système; un cas d'utilisation est un service rendu à un acteur, nommé par un verbe (Passer une commande).
- **Include et extend** : Include: le cas inclus est toujours exécuté (obligatoire, factorisation). Extend: comportement optionnel ou conditionnel ajouté à un cas de base.
- **Multiplicités** : Elles indiquent combien d'objets participent à une association: 1, 0..1, 0..*, 1..*. Elles traduisent des règles de gestion.
- **Composition vs agrégation** : La composition est un lien fort de cycle de vie (la partie disparaît avec le tout); l'agrégation est un lien plus faible, la partie existe indépendamment.

## Conclusion

UML offre un langage commun pour passer du besoin au modèle de données. Les cas d'utilisation cadrent le périmètre fonctionnel, le diagramme de classes en fixe la structure.

En pratique, on privilégie des modèles lisibles et vérifiés avec les utilisateurs plutôt que des diagrammes exhaustifs: leur valeur tient à la discussion qu'ils provoquent.

## Cartes

### Que représente la frontière du système dans un diagramme de cas d'utilisation ?

Un cadre qui sépare ce qui est dans le système (les cas d'utilisation) de ce qui est externe (les acteurs).

### Qu'est-ce qu'un acteur en UML ?

Un rôle joué par une personne ou un système externe qui interagit avec le système; ce n'est pas forcément un humain.

### Quelle différence entre include et extend ?

Include est obligatoire et factorise un comportement commun; extend est optionnel et soumis à une condition.

### Comment nommer un cas d'utilisation ?

Par un verbe à l'infinitif suivi d'un complément, du point de vue de l'acteur (Consulter son solde).

### Que contient une classe UML ?

Un nom, des attributs (données) et des opérations (comportements), avec leur visibilité.

### Que signifie la multiplicité 0..* ?

Zéro à plusieurs: l'association est facultative et peut concerner un nombre quelconque d'objets.

### Quand utiliser une composition plutôt qu'une agrégation ?

Quand la partie ne peut pas exister sans le tout: une ligne de commande disparaît avec sa commande.

### Qu'est-ce qu'une classe d'association ?

Une classe rattachée à une association pour porter ses propres attributs, par exemple la quantité sur Commande-Produit.

### Comment traduit-on une association 0..*—0..* en relationnel ?

Par une table de jonction contenant les clés étrangères des deux tables, éventuellement avec les attributs de l'association.

### Que représente la généralisation en UML ?

Une relation d'héritage: la sous-classe reprend les attributs et opérations de la super-classe (est un).

## Glossaire

- **Acteur** : Rôle externe interagissant avec le système.
- **Cas d'utilisation** : Fonctionnalité du système apportant une valeur à un acteur.
- **Multiplicité** : Nombre d'instances d'une classe pouvant participer à une association.
- **Composition** : Association forte où la partie dépend du cycle de vie du tout.
- **Agrégation** : Association de type tout-parties où la partie peut exister seule.
- **Classe d'association** : Classe qui porte les attributs propres à une association.

https://ruvy.ch/decks/-P5CXBU4dUYjLNvoVHZT
