Chapitre 148 minIntermédiaire
Aide-mémoire UML : notations et symboles
Par Josselyn C., prof de BTS SIO. Mis à jour le .
À la fin de ce chapitre, tu sauras
- retrouver vite le symbole de chaque élément UML ;
- retenir la syntaxe des attributs, des opérations et des transitions ;
- appliquer les dix réflexes qui évitent les erreurs classiques.
1 schéma
Cet aide-mémoire rassemble sur une page les notations UML à connaître pour le BTS SIO : les symboles de chaque diagramme, la syntaxe des attributs, des opérations et des transitions, les multiplicités et les correspondances avec le code et avec Merise. Garde-le sous la main pendant tes révisions ; chaque ligne renvoie au chapitre qui l'explique.
Diagramme de cas d'utilisation
| Élément | Symbole | Chapitre |
|---|---|---|
| Acteur humain | Bonhomme, hors du cadre | 2 |
| Acteur non humain | Rectangle «actor» ou bonhomme, hors du cadre | 2 |
| Cas d'utilisation | Ellipse, « verbe + complément » | 2 |
| Frontière du système | Rectangle avec le nom du système | 2 |
| Association acteur-cas | Trait plein | 2 |
| Inclusion | Pointillé «include», du cas de base vers le cas inclus | 2 |
| Extension | Pointillé «extend», de l'extension vers le cas de base | 2 |
| Généralisation | Trait plein, triangle creux vers le parent | 2 |
Diagramme de classes : symboles et syntaxe
Syntaxe
Attribut : visibilité nom : Type [multiplicité] = valeurInitiale {propriété}
- montantValide : decimal [0..1]
Opération : visibilité nom(paramètre : Type, …) : TypeRetour
+ Valider(comptable : Comptable)
Dérivé : / total : decimal
Statique : souligné
Abstrait : italique, ou {abstract}
| Visibilité | Sens | C# |
|---|---|---|
+ | publique | public |
- | privée | private |
# | protégée | protected |
~ | paquetage | internal (le plus proche) |
| Multiplicité | Lecture | C# |
|---|---|---|
1 | exactement un | référence non nulle, dans le constructeur |
0..1 | zéro ou un | référence nullable (T?) |
*, 0..* | zéro ou plusieurs | List<T> exposée en IReadOnlyList<T> |
1..* | au moins un | liste, avec un contrôle du minimum |
n..m | de n à m | liste, avec des contrôles |
La multiplicité se lit à l'autre bout du trait : « un A est relié à [nombre écrit près de B] B ».
| Relation | Symbole | Se lit | En C# |
|---|---|---|---|
| Association | Trait plein | « connaît » | Référence ou liste |
| Navigabilité | Flèche ouverte | « A connaît B, pas l'inverse » | Référence d'un seul côté |
| Dépendance | Flèche pointillée | « utilise ponctuellement » | Paramètre, variable locale |
| Généralisation | Triangle creux, trait plein | « est un » | class B : A |
| Réalisation | Triangle creux, pointillé | « implémente » | class C : IInterface |
| Agrégation | Losange creux côté tout | « regroupe » (la partie survit) | Référence vers un objet créé ailleurs |
| Composition | Losange plein côté tout | « est composé de » (la partie meurt avec le tout) | Le tout crée et possède ses parties |
| Classe-association | Classe reliée au trait par un pointillé | « l'association porte des données » | Classe avec deux références |
| Stéréotype | Sens |
|---|---|
«interface» | Contrat sans code |
«enumeration» | Liste de valeurs |
«abstract» ou {abstract} | Classe non instanciable |
«create» | Constructeur, ou message de création |
Diagramme de séquence
| Élément | Symbole |
|---|---|
| Ligne de vie | Rectangle nom : Classe et pointillé vertical |
| Message synchrone | Trait plein, pointe pleine |
| Message asynchrone | Trait plein, pointe ouverte |
| Retour | Pointillé, pointe ouverte |
| Création | Pointillé «create» vers la tête de la nouvelle ligne de vie |
| Destruction | Croix en bas de la ligne de vie |
| Activation | Rectangle fin sur la ligne de vie |
alt / opt / loop | if … else / if / boucle |
par / break / ref | Parallèle / sortie anticipée / renvoi à un autre diagramme |
Chapitre 7.
Diagramme d'activité
| Élément | Symbole |
|---|---|
| Début | Disque plein |
| Fin de l'activité | Disque plein cerclé |
| Fin d'un flot | Cercle barré d'une croix |
| Action | Rectangle arrondi, verbe à l'infinitif |
| Décision, fusion | Losange (gardes [ ] exclusives et complètes) |
| Bifurcation, jonction | Barre épaisse (parallélisme) |
| Couloir | Colonne nommée |
| Événement temporel | Sablier |
| Nœud d'objet | Rectangle objet [état] |
Chapitre 8.
Diagramme d'états-transitions
Transition : événement [garde] / effet
Valider(comptable) [toutes les lignes contrôlées] / calculer le montant
Dans l'état : entry / action exit / action do / activité
Temps : after(48 h) when(1er du mois)
| Élément | Symbole |
|---|---|
| État initial | Disque plein |
| État final | Disque plein cerclé |
| État | Rectangle arrondi, adjectif ou participe |
| Transition | Flèche avec événement [garde] / effet |
| État composite | État qui contient des sous-états |
Règle d'or : ce qui n'est pas dessiné est interdit. Chapitre 9.
Diagrammes d'architecture
| Diagramme | Éléments | Chapitre |
|---|---|---|
| Déploiement | Nœuds (pavés «device», «executionEnvironment»), artefacts, chemins avec protocole | 10 |
| Composants | Composants, interface fournie (sucette), interface requise (prise) | 10 |
| Paquetages | Dossiers à onglet, dépendances pointillées sans cycle | 10 |
| Objets | nom : Classe souligné, valeurs, liens | 10 |
UML et Merise
| Merise | UML |
|---|---|
| Entité | Classe |
| Propriété | Attribut |
| Identifiant | (aucun) |
Cardinalité près de l'entité décrite : 0,n | Multiplicité près de la classe comptée : 0..* |
0,1 / 1,1 / 0,n / 1,n | 0..1 / 1 / 0..* / 1..* |
| Association porteuse | Classe-association |
| Spécialisation | Généralisation |
Détails : chapitre 5 et cours Merise.
Lire un diagramme en phrases
À l'examen comme devant une commission, expliquer un diagramme, c'est le traduire en phrases. Voici les tournures qui marchent, sur les exemples du cours.
| Ce que tu vois | La phrase à écrire |
|---|---|
Visiteur "1" ──── "0..*" FicheFrais | « Un visiteur remplit zéro ou plusieurs fiches ; une fiche est remplie par un seul visiteur. » |
FicheFrais ◆──── "0..*" LigneFraisHorsForfait | « Une fiche est composée de lignes hors forfait, qui n'existent pas sans elle et sont supprimées avec elle. » |
Region ◇──── "0..*" Visiteur | « Une région regroupe des visiteurs, qui existent indépendamment d'elle. » |
Visiteur ──▷ Utilisateur | « Un visiteur est un utilisateur : il hérite de ses attributs et de ses opérations. » |
FicheFrais ┈┈▷ IExportable | « Une fiche sait s'exporter en CSV : elle réalise l'interface IExportable. » |
Classe-association LigneFraisForfait | « La quantité dépend du couple fiche-forfait ; une fiche a au plus une ligne par forfait. » |
«include» de A vers B | « Faire A implique toujours de faire B. » |
«extend» de B vers A | « Pendant A, on peut faire B, sous condition. » |
Transition CL → VA : Valider(comptable) | « Une fiche clôturée devient validée quand un comptable la valide ; c'est le seul moyen d'y arriver. » |
Les dix réflexes
- Une classe au singulier, des attributs privés et typés, des opérations publiques.
- Pas de clé étrangère dans un diagramme de classes.
- Les multiplicités aux deux bouts, lues à l'autre bout.
- Le losange collé au tout ; la composition seulement si la partie meurt avec lui.
- L'héritage seulement si « est un » est toujours vrai.
{abstract}et«interface»écrits en toutes lettres.- Les acteurs hors du cadre ; la base de données n'est pas un acteur.
«include»: du cas de base vers l'obligatoire ;«extend»: de l'option vers le cas de base.- Chaque message d'un diagramme de séquence = une opération du diagramme de classes.
- Une décision se referme par une fusion, une bifurcation par une jonction.