# Programmation UML/Version imprimable

* Si vous imprimez cette page, choisissez « Aperçu avant impression » dans votre navigateur, ou cliquez sur le lien Version imprimable dans la boîte à outils, vous verrez cette page sans ce message, ni éléments de navigation sur la gauche ou en haut.
* Cliquez sur Rafraîchir cette page pour obtenir la dernière version du wikilivre.
* Pour plus d'informations sur les version imprimables, y compris la manière d'obtenir une version PDF, vous pouvez lire l'article Versions imprimables.
Une version à jour et éditable de ce livre est disponible sur Wikilivres, une bibliothèque de livres pédagogiques, à l'URL : https://fr.wikibooks.org/wiki/Programmation_UML

# Introduction
## Prélude

UML est un langage de modélisation qui fut conçu à l'origine comme une unification des notations des méthodes OMT (Object Modelling Technique), Booch (OOD/OOA) et OOSE.
Le principe est de démarrer l'analyse avec les diagrammes simples et grossiers, puis de les affiner en plus complexes.
* Base : les cas d’utilisation.
* Interactions entre objets et chronologie des échanges entre ces objets.
* Échange de messages pour déclencher une opération.
* Mention des objets créés ou détruits lors des exécutions.
* Messages synchrones.
* Messages asynchrones.
* Spécification des contraintes de temps : durée.
Voici les différents diagrammes disponibles en UML 2.0 sous la forme d'un diagramme de classes :
Les 14 diagrammes UML 2.2 sont dépendants hiérarchiquement et se complètent, de façon à permettre la modélisation d'un projet tout au long de son cycle de vie.

## Glossaire
### UML

* DAC : diagramme d'activité
* DCL : diagramme de classe
* DOB : diagramme d'objet
* DCP : diagramme de composant
* DCU : diagramme de cas d'utilisation
* DCO : diagramme de communication (ou de collaboration)
* DET : diagramme d'état-transition
* DGI : diagramme global d'interaction
* DPA : diagramme de paquetage
* DPL : diagramme de déploiement
* DSC : diagramme de structure composite
* DSE : diagramme de séquence
* DTP : diagramme de temps

### Merise

* MCT : modèle conceptuel des traitements
* MOT : modèle opérationnel des traitements (ou MLT : modèle logique des traitements, équivalent du DCU ou DAC)
* MCD : modèle conceptuel de données (modèle entité-association, équivalent du DCL)
* MLD : modèle logique de données (tables de la BDD)
* MPD : modèle physique des données (SQL)

# Diagramme des cas d'utilisation

Le diagramme des cas d'utilisation est normalement le premier à réaliser dans le cadre d'une étude, et découle directement du cahier des charges. Il représente les différents acteurs et leurs opérations dans le système :
Chaque acteur est représenté à l'extérieur du système, soit par une figure humaine pour un opérateur humain, soit par une machine si celle-ci est extérieure au système. Les opérations sont représentées par une ellipse dans le cadre du système. Chaque opération est relié aux acteurs qui peuvent l'effectuer, et chaque acteur est relié à toutes les opérations qu'il peut effectuer dans le système.

# Diagramme de séquences

Le diagramme de séquence montre comment se déroule les interactions entre les différents acteurs ou objets impliqués dans une procédure.

## Éléments du diagramme

Le diagramme est composé des éléments principaux suivants :
* Les acteurs ou objets sont représentés par leur nom dans un rectangle en haut du diagramme, et parfois repris en bas du diagramme particulièrement quand le diagramme est long.
* Une ligne de vie sous chaque acteur ou objet représente sa période d'existence où il peut interagir.
* Une flèche relie deux acteurs ou objets par leur ligne de vie, partant de l'acteur initiant l'action ou l'envoi de messages et allant vers l'acteur recevant le message ou l'action à effectuer.
* Le diagramme est temporel : les flèches d'interactions se lisent ou s'écrivent du haut vers le bas dans l'ordre chronologique.
* Une interaction synchrone est représenté par une flèche horizontale.
* Un retour par une ligne verticale en pointillés.

## Références

* ↑ « Diagramme de séquence »

# Diagramme de classes

Le diagramme de classes montre les classes et les relations entre elles. C'est le diagramme le plus connu, car il représente les classes pour une utilisation directe en programmation orientée objets.

## Classes et objets

Une classe est représentée par un rectangle divisé verticalement en trois parties :
* La zone du haut contient le nom de la classe ;
* La zone du milieu contient les attributs de la classe,
* La zone du bas contient les méthodes de la classe.
Les zones des attributs et méthodes sont optionnelles et peuvent être vides ou absentes.
Un objet est représenté de façon similaire à une classe par un rectangle divisé verticalement en trois parties avec les mêmes zones. Cependant le nom de l'objet est souligné pour distinguer les objets des classes.
Les membres des classes et objets sont éventuellement précédés d'un caractère indiquant le niveau de protection :
* + pour les membres publics,
* # pour les membres protégés,
* - pour les membres privés.

## Type de classe

La représentation d'une classe peut varier selon son type.

## Relations entre les classes

Dans un diagramme, les classes peuvent être reliées par des lignes ou flèches de différents types selon la nature de la relation entre les classes.

# Diagramme d'activité

Un diagramme d'activité UML permet de modéliser un processus interactif, global ou partiel pour un système donné (logiciel). Il est recommandable pour exprimer une dimension temporelle sur une partie du modèle, à partir de diagrammes de classes ou de cas d'utilisation, par exemple. Le diagramme d'activité est sémantiquement proche des diagrammes d'état-transitions ou de collaboration, ces derniers offrant une vision microscopique des objets du système. Le diagramme d'activité présente une vision macroscopique et temporelle du système modélisé.