Programmation UML/Version imprimable

Un livre de Wikilivres.

Ceci est la version imprimable de Programmation UML.
  • 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.


Programmation UML

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

Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la Licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans Texte de dernière page de couverture. Une copie de cette licence est incluse dans l'annexe nommée « Licence de documentation libre GNU ».

Introduction

Prélude[modifier | modifier le wikicode]

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.

Historique des méthodes et notation en orienté objets.

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 :

La hiérarchie des diagrammes UML 2.0 sous 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[modifier | modifier le wikicode]

UML[modifier | modifier le wikicode]

  • 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[modifier | modifier le wikicode]

  • 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 :

Diagramme des cas d'utilisation pour un système de service dans un restaurant.

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 des cas d'utilisation avec un acteur de type application (base de donnée) et un acteur humain (utilisateur) utilisant tous les deux une même application.


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.

Diagramme de séquence simple d'interactions entre Alice et Bob.

Éléments du diagramme[modifier | modifier le wikicode]

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[1].
Diagramme de séquence d'interactions entre un client et un serveur pour l'envoi de courrier électronique et la récupération des nouveaux messages.

Références[modifier | modifier le wikicode]


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.

Diagramme de classes

Classes et objets[modifier | modifier le wikicode]

Représentation d'une classe.
Représentation d'une classe.

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.

Représentation d'un objet.
Représentation d'un objet.

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.
Exemple de classe représentant un compte bancaire.

Type de classe[modifier | modifier le wikicode]

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

Classe abstraite ou interface Une classe abstraite ou une interface est représentée comme une classe normale avec son nom en italique.
Classe template avec un paramètre Un patron de classe (class template) est représentée comme une classe avec ses paramètres typés déclarés dans une zone rectangulaire de bordure en pointillé en haut à droite du nom de la classe.

Relations entre les classes[modifier | modifier le wikicode]

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

GFDL GFDL Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans texte de dernière page de couverture.