Vous êtes sur la page 1sur 31

Organisation et plan du cours

I - Introduction : l’historique, la modélisation

CM-01
II - Diagrammes de classes et d’objets! – concepts de base

CM-02
III - Diagrammes de classes – concepts avancés

Modélisation Objet

CM-03
IV - Diagramme de cas d’utilisation

CM-04
V - Diagramme de séquences
Le langage UML
VI - Diagramme d’états-transitions

CM-05
VII - Diagramme d’activités

VIII - Diagramme de composants

CM-06
IX - Diagramme de déploiement
X - Diagramme de paquetages
Philippe Declercq 2020-2021
Modélisation Objet, le langage UML Philippe Declercq (2)

UML C’est quoi exactement ?

♦ Comme disait ma grand-mère … un bon dessin vaut


mieux qu’un long discours !

♦ Quel sont les premiers outils que l’on utilise pour


I construire une maison, un immeuble, une ville :
• La pelle et le seau ? Le crayon et le papier ?
Introduction
♦ Quand un système est complexe, il est nécessaire de
pouvoir en faire des représentations simples, axées sur un
point de vue particulier.

♦ Exemples : le plan électrique d’une habitation, une carte


routière, …
Modélisation Objet, le langage UML Philippe Declercq (3) Modélisation Objet, le langage UML Philippe Declercq (4)
UML C’est quoi exactement ? UML C’est quoi exactement ?

♦ En informatique aussi, les systèmes peuvent être ♦ Exemples de modélisations :


complexes ! Point de vue du client : quelles sont les Point de vue de l’informaticien : quels
différentes fonctions de mon système ? Pour sont les différents composants mis en
qui est-il fait ? œuvre ? Comment communiquent ils ?
♦ Il devient alors nécessaire, quelque soit la démarche Quelles sont les informations manipulées ?

choisie, de faire des représentations – pour un point de vue


particulier – du système que l’on construit.

♦ On parle alors de modèles et de modélisation.

Modélisation Objet, le langage UML Philippe Declercq (5) Modélisation Objet, le langage UML Philippe Declercq (6)

UML C’est quoi exactement ? UML C’est quoi exactement ?

♦ Pour partager un modèle avec d’autres personnes, il faut UML = Unified Modeling Language
s’assurer au préalable : Langage unifié pour la modélisation
• que les personnes comprennent les conventions de
représentation et les notations utilisées,
♦ Langage de modélisation objet, indépendant de la
• qu’il ne pourra pas y avoir d’ambiguïté sur l’interprétation du
modèle. méthode utilisée.

♦ D’où l’émergence de langages de modélisation de ♦ UML est un langage pour :


systèmes informatiques. • Comprendre et décrire un problème,
• Spécifier un système,
♦ Un langage de modélisation doit définir sans ambiguïté les • Concevoir et construire des solutions,
concepts utilisables, leur représentation, les règles et • Documenter un système,
contraintes associées. • Communiquer.

Modélisation Objet, le langage UML Philippe Declercq (7) Modélisation Objet, le langage UML Philippe Declercq (8)
UML C’est quoi exactement ? – La genèse UML c’est quoi exactement ? – La genèse

OMT ♦ Au départ, plus de 150 méthodes et langages !


♦ Unification progressive de plusieurs méthodes, de remarques des utilisateurs, des
♦ UML a été « boosté » par l’essor de la programmation
Booch
partenaires orientée objet.
OOSE ♦ 1989 : création de l’OMG (Object Management Group)
Groupe créé à l’initiative de grandes sociétés informatiques américaines afin de normaliser
Fusion les systèmes à objets. Première réalisation de l’OMG : CORBA.
Classe-Relation ♦ Historique de l’approche orientée objet :
ROOM
Rational OMG UML 2.5 • Simula (1967),
HOOD 2015 • Smalltalk (1976),
UML 2.0
etc...
2005 • C++ (1985),
Fin 1990 UML 1.4
• Java (1995),
1995 2003
OMT
(Rumbaugh et al.)
UML 1.3 • .net …
Unified Method
0.8 1996 1999
Booch UML 1.1
UML 0.9 1997 ♦ UML permet de modéliser une application selon une
OOSE
(Jacobson et al.) vision objet, indépendamment du langage de
programmation.
https://www.omg.org/spec/UML/
Catalysis ROOM etc.

Modélisation Objet, le langage UML Philippe Declercq (9) Modélisation Objet, le langage UML Philippe Declercq (10)

UML c’est quoi exactement ? – La genèse UML c’est quoi exactement ? – La portée

♦ Comment représenter une classe ? Un objet ? ♦ UML reste au niveau d’un langage et ne propose pas de
processus de développement
• ni ordonnancement des tâches,
• ni répartition des responsabilités,
• ni règles de mise en œuvre.

♦ Il existe de (très) nombreux outils pour faire de la


modélisation UML.

♦ Certains ouvrages et AGL basés sur UML proposent un


♦ Tout est défini dans la spécification UML ! processus en plus de UML.
• http://www.omg.org/spec/UML/ • Exemple : le processus unifié UP.
Modélisation Objet, le langage UML Philippe Declercq (11) Modélisation Objet, le langage UML Philippe Declercq (12)
UML c’est quoi exactement ? – Le méta-modèle UML c’est quoi exactement ? – En résumé

♦ UML est bien plus qu’un outil pour dessiner des ♦ UML est un langage de modélisation objet
représentations mentales !
♦ UML n’est pas une méthode
♦ La notation graphique n’est que le support du langage.
♦ UML convient pour tous les types de systèmes, tous les
♦ UML repose sur un méta-modèle, qui normalise la domaines métiers, et tous les processus de développement
sémantique de l’ensemble des concepts.
♦ UML est dans le domaine public

♦ Les concepts véhiculés dans UML sont définis et non


équivoques

Modélisation Objet, le langage UML Philippe Declercq (13) Modélisation Objet, le langage UML Philippe Declercq (14)

Tour d’horizon des diagrammes – 13 diagrammes ! Tour d’horizon des diagrammes – 13 diagrammes !

♦ Historiquement UML proposait 9 types de diagrammes diagram

(UML 1.x). Structure Behavior


diagram diagram

♦ UML 2 a enrichi les concepts des diagrammes existants et Class U2


Package Activity Interaction
diagram diagram diagram diagram
a ajouté 4 nouveaux types de diagrammes.
Component Deployment State Machine
Sequence
diagram diagram diagram
diagram
♦ Les diagrammes manipulent des concepts parfois U2
Composite Object Use Case
Communication
Structure diagram diagram diagram
communs (ex. classe, objet, …), parfois spécifiques (ex. diagram
cas d’utilisation). U2
Interaction
overview diagram
U2

♦ Quelle différence entre un modèle et un diagramme ?


Timing
U2 Nouveaux diagrammes UML2 diagram

Modélisation Objet, le langage UML Philippe Declercq (15) Modélisation Objet, le langage UML Philippe Declercq (16)
Tour d’horizon des diagrammes – 13 diagrammes ! Tour d’horizon des diagrammes – 13 diagrammes !

♦ UML est une grande boîte à outils, Diagramme de


cas d’utilisation
Exemple d’utilisation
et comme toute boîte à outils …. Expression des de diagrammes UML
Diagramme
besoins d’activités dans les phases d’un
• On utilise pas tout …
• Certains outils servent plus souvent que d’autres …
Analyse projet « classique »
• Dans chaque situation il faut choisir le bon outil ! Diagramme de
Conception composants
Diagramme de
classes Diagramme de
♦ En tant que langage, il faut aussi s’assurer que l’on va Développement déploiement
Diagramme
être compris ! d’objets

Diagramme de Test
séquences

Diagramme de Mise en
d’états service

Modélisation Objet, le langage UML Philippe Declercq (17) Modélisation Objet, le langage UML Philippe Declercq (18)

Tour d’horizon des diagrammes – 13 diagrammes ! Tour d’horizon des diagrammes – Restrictions & extensions

Exemple d’utilisation
de diagrammes UML ♦ Restrictions : au sein d’une organisation ou d’une équipe, on
utilise un « sous-ensemble » de UML :
en méthode « agile » Diagramme de • Sous-ensemble de diagrammes,
classes • Sous-ensemble des possibilités offertes par chaque diagramme.
Diagramme
d’objets
♦ Extensions : UML possède des mécanismes d’extension, qui
Diagramme de permettent d’adapter le langage à une organisation, une équipe ou
séquences un domaine particulier.
Diagramme de
d’états ♦ Un profil UML est un ensemble cohérent de concepts UML,
Diagramme de
d’extensions/restrictions, de contraintes, de règles et notations.
composants • Exemples : profil EJB, profil SIG, profil RT, …

Diagramme Diagramme de Diagramme de


d’activités cas d’utilisation déploiement

Modélisation Objet, le langage UML Philippe Declercq (19) Modélisation Objet, le langage UML Philippe Declercq (20)
Classes et objets

♦ Le diagramme de classes permet de représenter des


classes, leurs propriétés et leurs relations avec d’autres
classes.

II ♦ Le diagramme d’objets permet de représenter des objets,


Le diagramme de classes et le les valeurs de leurs propriétés et leurs relations avec
diagramme d’objets d’autres objets.

Concepts de base ♦ Mais au fait ….


• Qu’est ce qu’un objet ?
• Qu’est ce qu’une classe ?
• Une classe peut-elle être un objet ? Et inversement ?

Modélisation Objet, le langage UML Philippe Declercq (21) Modélisation Objet, le langage UML Philippe Declercq (22)

Les objets Les objets

♦ Un objet est une entité identifiable du monde réel. ♦ Une abstraction est un résumé, un condensé, une mise à
l’écart des détails non pertinents dans un contexte donné.
♦ Les objets informatiques définissent une représentation
simplifiée des entités du monde réel. ♦ Mise en avant des caractéristiques essentielles et utiles.

♦ Un objet informatique est une structure de données


♦ Dissimulation des détails (complexité).
valorisées qui répond à un ensemble de messages.
Domaine = monde réel Abstraction = modèle

Vendeur
♦ Un objet peut représenter une entité concrète (personne,
Abstraction
Voiture

guitare, véhicule, …) ou abstraite (gestionnaire de flux, Prix Marge

…). Constructeur
Voiture

Abstraction Boîte Moteur

Modélisation Objet, le langage UML Philippe Declercq (23) Modélisation Objet, le langage UML Philippe Declercq (24)
Les objets Les objets

♦ L’état d’un objet : ♦ Le comportement


• regroupe les valeurs instantanées de tous les attributs d’un objet • décrit les actions et les réactions d’un objet
• regroupe toutes les compétences d’un objet
• évolue au cours du temps
• se représente sous la forme d’opérations (méthodes)
• est la conséquence des comportements passés

♦ Un objet peut faire appel aux compétences d’un autre


♦ Exemples : objet
• un signal électrique : l’amplitude, la pulsation, la phase, …
• une voiture : la marque, la puissance, la couleur, le nombre de
places assises, … ♦ L’état et le comportement sont liés
• Le comportement dépend souvent de l’état
• un étudiant : le nom, le prénom, la date de naissance, l'adresse,
… • L’état est souvent modifié par le comportement

Modélisation Objet, le langage UML Philippe Declercq (25) Modélisation Objet, le langage UML Philippe Declercq (26)

Les objets Les objets

♦ Tout objet possède une identité qui lui est propre et qui ♦ Le diagramme d’objets permet la représentation d’objets
le caractérise. du système que l’on modélise.

♦ L’identité permet de distinguer tout objet de façon non ♦ Exemple :


ambiguë, indépendamment de son état.

Modélisation Objet, le langage UML Philippe Declercq (27) Modélisation Objet, le langage UML Philippe Declercq (28)
Communication entre objets Les classes

♦ Application = société d'objets collaborant ♦ La classe


• est une description abstraite d’un ensemble d’objets
♦ Les objets travaillent en synergie afin de réaliser les • peut être vue comme la factorisation des éléments communs à
fonctions de l’application. un ensemble d’objets
• c’est un modèle d’objets ayant les mêmes types de propriétés et
de comportements. Chaque instance d’une classe possède ses
♦ Le comportement global d’une application repose sur la propres valeurs pour chaque attribut.
communication entre les objets qui la composent.

♦ Les objets
• ne vivent pas en ermites,
• interagissent les uns avec les autres,
• communiquent en échangeant des messages.
Modélisation Objet, le langage UML Philippe Declercq (29) Modélisation Objet, le langage UML Philippe Declercq (30)

Les classes Les classes

♦ Le diagramme de classes permet la représentation des ♦ Le diagramme de classes est le diagramme le plus
descripteurs d’objets du système que l’on modélise. connu et le plus utilisé.

♦ Exemple : ♦ Structure interne statique d’un système.

♦ Diagrammes de classes et d’objets sont liés :


• Le diagramme de classes permet de représenter :
° des classes (ensembles d’objets),
° des relations entre classes (ensemble de liens entre objets).
• Le diagramme d’objets permet de représenter :
° des instances particulières des classes, des objets,
° les liens entre ces objets.

Modélisation Objet, le langage UML Philippe Declercq (31) Modélisation Objet, le langage UML Philippe Declercq (32)
Les classes Diagrammes de classes – concepts de base

♦ Diagrammes de classes et d’objets sont liés ! ♦ Représentation d’une classe :


Nom de la classe Liste des attributs
La seule chose obligatoire Peu importe l’ordre
dans une classe ! Contiennent l’information portée par
chaque objet instance de la classe
L’ensemble permet de renseigner l’état
d’un objet

Liste des opérations


Peu importe l’ordre
Correspondent aux services offerts par chaque
objet instance de la classe
L’ensemble forme le comportement d’un objet

♦ Possibilité d’afficher +/- d’informations :

Modélisation Objet, le langage UML Philippe Declercq (33) Modélisation Objet, le langage UML Philippe Declercq (34)

Diagrammes de classes – concepts de base Diagrammes de classes – concepts de base

♦ L’association exprime une connexion structurelle entre ♦ Oui mais … l’association entre Personne et Entreprise
classes.
♦ Notation :
peut être interprétée de plusieurs façons :
• « une personne travaille dans une entreprise »
• « une personne dirige une entreprise »
• « une personne est cliente d’une entreprise »
• ….
♦ Exemple : « une personne est employée par une
entreprise » pourra se traduire par : ♦ Il est alors possible d’indiquer la signification de
l’association :

Modélisation Objet, le langage UML Philippe Declercq (35) Modélisation Objet, le langage UML Philippe Declercq (36)
Diagrammes de classes – concepts de base Diagrammes de classes – concepts de base

♦ Sur un diagramme, il est possible de créer plusieurs ♦ Chaque extrémité de l’association peut aussi être
associations entre les mêmes classes : nommée :

♦ Il est aussi possible de créer une association d’une classe ♦ Le rôle décrit comment les objets de la classe
avec elle-même : correspondante sont perçus par les objets de la classe à
l’autre extrémité de l’association.

♦ Un rôle a la même nature qu’un attribut….


♦ Comment cela se traduit il au niveau des objets ?
Modélisation Objet, le langage UML Philippe Declercq (37) Modélisation Objet, le langage UML Philippe Declercq (38)

Diagrammes de classes – concepts de base Diagrammes d’objets – concepts de base


♦ Chaque rôle porte une indication de multiplicité : il s’agit ♦ Représentation d’un objet :
du nombre d’objets de la classe considérée pouvant être
Nom de l’objet : nom de
liés à un objet de l’autre classe. la classe
Souligné Valeurs des attributs
Peu importe l’ordre
L’ensemble correspond à l’état
d’un objet

♦ La multiplicité s’exprime sous la forme d’un intervalle : ♦ Possibilité d’afficher +/- d’informations :
nombre minimal et nombre maximal d’objets en relation.
Valeur Signification
1 un et un seul
0..1 zéro ou un
M .. N de M à N (entiers naturels)
* ou 0..* de zéro à plusieurs
1 .. * un à plusieurs
Modélisation Objet, le langage UML Philippe Declercq (39) Modélisation Objet, le langage UML Philippe Declercq (40)
Diagrammes d’objets – concepts de base Exercice 1

♦ Les associations entre classes permettent de créer des ♦ Réaliser un diagramme de classes pour représenter
liens entre objets : les concepts suivants issus d’un système de
réservation de véhicules :
• Un client peut effectuer des réservations de véhicules.
• Chaque client est décrit par son nom, son prénom et son numéro
d’inscription.
• Un véhicule possède un numéro d’immatriculation, une marque,
une date de mise en service, une puissance fiscale, une vitesse
maximale.
• Pour un client donné, on souhaite pouvoir calculer la puissance
moyenne des véhicules qu’il réserve.

♦ Illustrer votre diagramme de classes par un diagramme


d’objets.
Modélisation Objet, le langage UML Philippe Declercq (41) Modélisation Objet, le langage UML Philippe Declercq (42)

Propriétés complètes des attributs

♦ La représentation complète d’une classe fait apparaître


les attributs avec différentes caractéristiques en plus du
nom (type, valeur par défaut, degré de visibilité, …), et
les opérations avec leur signature complète :
III
Le diagramme de classes et le
diagramme d’objets

Concepts avancés

Modélisation Objet, le langage UML Philippe Declercq (43) Modélisation Objet, le langage UML Philippe Declercq (44)
Propriétés complètes des attributs Propriétés complètes des attributs

♦ La forme complète de représentation d’un attribut est la ♦ Le symbole de visibilité correspond au concept objet
suivante : d’encapsulation. Il représente le degré de protection de
<visibilité> <nomAttribut> : <type> [borneInf..borneSup] = l’attribut :
<valeur par défaut> {propriétés} • + : publique (accessible à toutes les autres classes)
• # : protégé (accessibles uniquement aux sous-classes)
♦ Seul le nom est obligatoire ! • ~ : paquetage (accessible uniquement aux classes du paquetage)
• - : privé (inaccessible à tout objet hors de la classe)

♦ La visibilité peut être précisée sur chaque attribut et sur


chaque opération.

Modélisation Objet, le langage UML Philippe Declercq (45) Modélisation Objet, le langage UML Philippe Declercq (46)

Propriétés complètes des attributs Propriétés complètes des attributs

♦ Le type permet de fixer l’ensemble des valeurs possibles ♦ Un attribut peut prendre plusieurs valeurs.
que peut prendre un attribut.
♦ Il peut s’agir : ♦ Il est alors possible de préciser le nombre minimal et le
• d’un type standard : integer, string, boolean, real nombre maximal de valeurs que peut prendre l’attribut.
• d’une classe : on préfèrera très souvent utiliser une association

On spécifie ici qu’une


personne possède entre 1
et 3 noms et 0 à plusieurs
prénoms
Préférez l’association
et supprimez l’attribut
« proprietaire » !

♦ En l’absence d’indication, la valeur est unique ([1..1]).


Modélisation Objet, le langage UML Philippe Declercq (47) Modélisation Objet, le langage UML Philippe Declercq (48)
Propriétés complètes des attributs Propriétés complètes des attributs

♦ Une valeur par défaut peut être précisée sur un attribut. ♦ Il est possible d’attribuer des propriétés aux attributs, en
Cette valeur est affectée à l’attribut à la création des les indiquant entre accolades.
instances de la classe.

♦ Parmi les propriétés les plus utilisées :


• {readonly} indique que la valeur de l’attribut ne peut pas être
modifiée,
• {id} indique que l’attribut fait partie de l’identifiant des
instances de la classes.
Modélisation Objet, le langage UML Philippe Declercq (49) Modélisation Objet, le langage UML Philippe Declercq (50)

Propriétés complètes des attributs Propriétés complètes des attributs

♦ Lorsque la valeur d’un attribut peut être calculée par une ♦ Chaque instance d’une classe contient une valeur
fonction basée sur la valeur d’autres attributs, on parle spécifique pour chacun de ses attributs. Dans certains cas
d’attribut calculé ou attribut dérivé. cependant, il est utile de pouvoir définir des attributs
dont la valeur est commune à l’ensemble des instances
de la classe.
♦ Un attribut calculé est précédé du signe « / »
♦ On parle alors d’attribut statique ou attribut de classe, et
on souligne l’attribut.

La vitesse maximale autorisée est


L’âge peut être calculé à la même pour toutes les instances
partir de la date de de la classe !
naissance !

Modélisation Objet, le langage UML Philippe Declercq (51) Modélisation Objet, le langage UML Philippe Declercq (52)
Propriétés complètes des opérations Propriétés complètes des opérations
♦ La forme complète de représentation d’une opération est ♦ Certains concepts présentés pour les attributs s’appliquent
la suivante : aux opérations :
<visibilité> <nomOpération> (listeParamètres) : <typeRetour> • La visibilité de l’opération,
[borneInf..borneSup] {propriétés} • L’intervalle pour indiquer le nombre de valeurs du retour,
• Sur les paramètres : le type, l’intervalle pour préciser le nombre
♦ Comme pour les attributs, seul le nom, suivi des de valeurs autorisées et la valeur par défaut,
parenthèses ( ), est obligatoire ! • Les propriétés.

♦ Il existe cependant des différences :


♦ Chaque paramètre est décrit sous la forme : • Lorsque l’opération renvoie un objet, il n’est pas possible de
<direction> <nom> : <type> [borneInf…borneSup] = <valeur remplacer le typeRetour par une association !
par défaut> {propriétés} • Un paramètre peut être préfixé en indiquant sa direction : in, out
ou inout.

Modélisation Objet, le langage UML Philippe Declercq (53) Modélisation Objet, le langage UML Philippe Declercq (54)

Propriétés complètes des opérations Classe d’association


♦ Il est également possible qu’une opération soit définie ♦ La classe d’association est … une classe ! Cette classe
comme « statique » : cette opération est appelée sur la
classe directement. permet de faire porter des informations aux liens entre
instances de classes.

♦ Ces opérations ne peuvent pas manipuler d’attributs qui ne


soient pas statiques ! ♦ Une telle classe peut être dotée d’attributs, d’opérations,
et de relations avec d’autres classes.
Modélisation Objet, le langage UML Philippe Declercq (55) Modélisation Objet, le langage UML Philippe Declercq (56)
Classe d’association Associations n-aire

♦ Exemples d’utilisation de la classe d’association : ♦ L’association permet de relier plus de deux classes. On
parle d’association ternaire pour trois classes, ou plus
généralement d’association n-aire.
• Des personnes empruntent des livres à la bibliothèque. Il est
nécessaire de pouvoir retrouver la date de chaque emprunt.
♦ Représentation : un losange blanc ou au moyen d’une
• Des personnes signent des accords entre eux. Il est nécessaire classe stéréotypée.
de conserver la date de ces accords et la ville où a eu lieu la
signature.

• Des personnes travaillent dans des entreprises. Pour chacun Je veux connaitre le gardien de
de leurs emplois, il est nécessaire de connaître le temps de but de chaque équipe, pour
travail et le type de contrat signé avec l’entreprise. chaque année.
Pour chaque gardien de but de chaque
équipe, je veux connaître chaque année
le nombre de buts marqués, encaissés, …

Modélisation Objet, le langage UML Philippe Declercq (57) Modélisation Objet, le langage UML Philippe Declercq (58)

Associations n-aire Navigabilité d’une association

♦ Attention, il est souvent possible de modéliser un ♦ Les associations permettent par défaut une navigation
problème avec plusieurs associations binaires plutôt bidirectionnelle : il est possible de déterminer les liens
qu’avec une association n-aire. de l’association depuis les instances de chaque classe.

♦ Exemple : ♦ Il est possible de limiter la navigabilité en spécifiant un


• Un employé emprunte un véhicule de fonction pour se seul sens de navigation :
rendre sur un site
• Un employé possède un véhicule de fonction. L’employé se
rend sur des sites avec son véhicule de fonction

Modélisation Objet, le langage UML Philippe Declercq (59) Modélisation Objet, le langage UML Philippe Declercq (60)
Navigabilité d’une association Les différentes relations entre classes

♦ Exemple : ♦ Concernant les relations entre classes, il existe d’autres


Une instance d’utilisateur peut accéder à des instances
de Mot de passe, mais pas l’inverse.
relations en plus de l’association :
• L’agrégation,
détenteur *
Utilisateur 1 clef Mot de passe • La composition,
• La généralisation/spécialisation,
♦ A ne pas confondre avec le sens de lecture de • La dépendance.
l’association !

Modélisation Objet, le langage UML Philippe Declercq (61) Modélisation Objet, le langage UML Philippe Declercq (62)

Agrégation et composition Agrégation et composition


♦ L’agrégation est une forme particulière d’association ♦ Deux types d’agrégation :
binaire, mais dissymétrique, où l’une des extrémités est • Agrégation partagée – notion de co-propriété
prédominante par rapport à l’autre. ° La création (resp. la destruction) des composants est indépendante de
la création (resp. la destruction) du composite
° Un objet peut faire partie de plusieurs composites à la fois
♦ Représentation des relations de type : ° Notation :
• tout et parties,
• composé et composants,
• Composition
• maître et esclaves.
° Cas particulier de l’agrégation : attributs contenus physiquement par
l’agrégat
♦ Exemple : un élevage est composé d’un certain nombre de ° La création (resp. la destruction) du composite entraîne la création
(resp. la destruction) des composants.
chevaux : ° Un objet ne fait partie que d’un seul composite à la fois.
° Notation :

Modélisation Objet, le langage UML Philippe Declercq (63) Modélisation Objet, le langage UML Philippe Declercq (64)
Agrégation et composition Généralisation/Spécialisation

♦ Agrégation ♦ La relation de généralisation/spécialisation permet de


gérer les relations « est du type » ou « est une sorte de »
Train 0..* 1..* Wagon

♦ Cette relation correspond au concept d’héritage en objet.

♦ Composition
Classe plus
Super-classe générale Mammifère
Voiture 1 Moteur

1
1..* Classe plus Chien Chat
Sous-classe
Cylindre Carburateur spécialisée

Modélisation Objet, le langage UML Philippe Declercq (65) Modélisation Objet, le langage UML Philippe Declercq (66)

Généralisation/Spécialisation Généralisation/Spécialisation

♦ Les instances d’une classe sont aussi instances des super- ♦ La généralisation peut se traduire par « est un » ou « est
classes. Elle « profitent » des attributs, opérations et une sorte de »
relations définies dans les super-classes.
Animal
Abstraction plus générale

Véhicule

Carnivore Herbivore

Véhicule terrestre Véhicule aérien

Lion Mouton Lapin


Voiture Camion Avion Hélicoptère

Modélisation Objet, le langage UML Philippe Declercq (67) Modélisation Objet, le langage UML Philippe Declercq (68)
Généralisation/Spécialisation Généralisation/Spécialisation

♦ Propriétés de la généralisation : non-réflexive, non- ♦ La généralisation multiple est modélisable en UML !


symétrique, transitive

Animal
A A
Station Nourriture Protection

B Bipède Quadrupède Herbivore Carnivore A plumes A poils A écailles

A
Impossible !!!
C
Lapin

B Impossible !!!

Modélisation Objet, le langage UML Philippe Declercq (69) Modélisation Objet, le langage UML Philippe Declercq (70)

Généralisation/Spécialisation Généralisation/Spécialisation

♦ Exemple : ♦ Classe abstraite : classe qui ne peut avoir aucune


instance directe ; on écrit son nom en italique
CompteBancaire
Généralisation crédit : nombre Spécialisation
débit : nombre ♦ Opération abstraite : opération incomplète qui a besoin
déposer(nombre) de la classe fille pour fournir une implémentation ; on
retirer(nombre) écrit son nom en italique.
donnerSolde()

Forme
CompteÉpargne
taux : nombre nom
calculerIntérêts() calculerSurface()
dessiner()

Modélisation Objet, le langage UML Philippe Declercq (71) Modélisation Objet, le langage UML Philippe Declercq (72)
Généralisation/Spécialisation Généralisation/Spécialisation - polymorphisme

♦ Ces deux modèles sont ils équivalents ? ♦ Le polymorphisme est un concept objet selon lequel un
même message peut être interprété de différentes façons,
selon le récepteur.
Forme
nom
calculerSurface()
dessiner()

Rectangle Cercle

Une méthode peut être définie longueur rayon


largeur
par le même nom dans calculerSurface()
différentes classes. calculerSurface() dessiner()
dessiner()

opérations polymorphes

Modélisation Objet, le langage UML Philippe Declercq (73) Modélisation Objet, le langage UML Philippe Declercq (74)

Généralisation/Spécialisation - interfaces Dépendance

♦ L’interface est une classe totalement abstraite, sans ♦ La relation de dépendance est une relation sémantique
attribut et dont toutes les opérations sont abstraites. entre deux éléments selon laquelle un changement
apporté à l’un peut affecter l’autre.
♦ La concept d’interface permet la définition d’un contrat
pour toutes les classes qui l’implémentent. La relation ♦ Implique uniquement que des objets d’une classe peuvent
entre une interface et une classe qui implémente fonctionner ensemble.
l’interface est appelée relation de réalisation.
<<interface>> <<interface>>
♦ Notation :
Redimensionnable Coloriable

♦ Notation : grossir(facteur)
reduire(facteur)
colorier(couleur)
InterfaceUtilisateur Document

Cercle

Modélisation Objet, le langage UML Philippe Declercq (75) Modélisation Objet, le langage UML Philippe Declercq (76)
Exercice 2 Les diagrammes un par un

♦ Réaliser un diagramme de classe pour chaque


énoncé :
• Une voiture :
° Quatre roues, des pneus IV
° Un moteur, Le diagramme de cas d’utilisation
° Un coffre,
° Des passagers….

• Un chien : c’est un mammifère qui appartient à un


propriétaire, possède quatre membres, donne naissance
éventuellement à des chiots, ….
Modélisation Objet, le langage UML Philippe Declercq (77) Modélisation Objet, le langage UML Philippe Declercq (78)

Le diagramme de cas d’utilisation Acteur - définition

♦ Un acteur est une entité externe au système :


♦ Ce diagramme permet une description, en prenant le
• qui attend un ou plusieurs services du système,
point de vue de l’utilisateur, du système à construire.
• à qui le système fournit une interface d’accès,
• qui interagit avec le système par échange de messages.
♦ Pas d’aspects techniques. ♦ C’est une personne ou un autre système
♦ Les acteurs sont décrits par une abstraction ne retenant
♦ Les deux concepts de base du diagramme : que le rôle qu’ils jouent vis à vis du système
• l’acteur,
• Le cas d’utilisation.
♦ Notation : <<actor>>
Stéréotype

Client
Stick man
Client

Modélisation Objet, le langage UML Philippe Declercq (79) Modélisation Objet, le langage UML Philippe Declercq (80)
Acteur - définition Acteurs vs Utilisateurs

♦ Exemples d’acteurs : ♦ On ne doit pas raisonner en terme d’entité physique,


mais en terme de rôle que l’entité physique joue
♦ Un acteur représente un rôle joué par un utilisateur qui
interagit avec le système
♦ La même personne physique peut jouer le rôle de
plusieurs acteurs (joueur, banquier)
♦ Plusieurs personnes peuvent également jouer le même
rôle, et donc agir comme le même acteur (tous les
joueurs)

♦ Tous, humains ou système, interagissent avec le système


considéré !
Modélisation Objet, le langage UML Philippe Declercq (81) Modélisation Objet, le langage UML Philippe Declercq (82)

Cas d’utilisation - définition Cas d’utilisation, enchaînements et scénarios

♦ Un cas d’utilisation modélise un service rendu par le ♦ Cas d’utilisation : représente un cas en général, une
système représentation générale et synthétique d’un ensemble de
♦ Il exprime les interactions entre les acteurs et le système scénarios similaires décrits sous la forme d’enchaînements
Exemple : un joueur joue un coup en lançant 2 dés
♦ Il apporte une valeur ajoutée "notable" aux acteurs
concernés. ♦ Enchainement : succession d’étapes qui se réalisent
lorsqu’un acteur déclenche un cas d’utilisation.
♦ Règle de nommage : verbe (+ complément)
Exemple : un joueur joue un coup, les 2 dés ont une valeur
♦ Notation : Cas
d’utilisation identique, le joueur peut ensuite rejouer un autre coup
♦ Scénario : exécution d’un ou plusieurs enchaînements,
Commander
un article

Client joignant le début du cas d’utilisation à une fin normale ou


Association non.
« participe à »
Exemple : le joueur Pierre joue : il obtient 7 avec les dés, se
déplace rue de Belleville et achète la propriété
Modélisation Objet, le langage UML Philippe Declercq (83) Modélisation Objet, le langage UML Philippe Declercq (84)
Cas d’utilisation vs scénario Intérêt des cas d’utilisation
♦ Un cas d’utilisation contient en général plusieurs ♦ Un moyen de déterminer le but et le périmètre d’un
enchainements. système
♦ Pour décrire lisiblement un cas d’utilisation, on ♦ Utilisé par les utilisateurs finaux pour exprimer leur
distinguera les trois types d’enchaînements : attentes et leur besoins  permet d’impliquer les
• Nominal : déroulement normal du cas utilisateurs dès les premiers stades du développement
• Alternatif : embranchements dans la séquence nominale ♦ Support de communication entre les équipes et les clients
• Exception : interviennent quand une erreur se produit
♦ Découpage du système global en grandes tâches qui
pourront être réparties entre les équipes de
développement
♦ Permet de concevoir les Interfaces Homme-Machine
♦ Constitue une base pour les tests fonctionnels

Modélisation Objet, le langage UML Philippe Declercq (85) Modélisation Objet, le langage UML Philippe Declercq (86)

Exemple de diagramme de cas d’utilisation Relations entre cas d’utilisation

♦ UML définit trois types de relations standardisées


entre cas d’utilisation :
Cas d'utilisation
• une relation d’inclusion,
• une relation d’extension,
Acteur Association
Gérer les clients
• une relation de généralisation/spécialisation.

Gérer les commandes


♦ On peut également généraliser les acteurs
Réceptionniste Client

Consulter l'en-cours

Modélisation Objet, le langage UML Philippe Declercq (87) Modélisation Objet, le langage UML Philippe Declercq (88)
Relations entre cas d’utilisation Relations entre cas d’utilisation

♦ <<include>> permet d’incorporer le comportement d’un ♦ La relation <<include>> se traduit de la façon suivante
autre cas d’utilisation. en terme d’enchaînements :

♦ Le cas de base en incorpore explicitement un autre, à un


endroit spécifié dans sa description.
base
Acheter un article
<<include>>
<<include>>

Rechercher un article
<<include>>
inclus
Réserver un article

Modélisation Objet, le langage UML Philippe Declercq (89) Modélisation Objet, le langage UML Philippe Declercq (90)

Relations entre cas d’utilisation Relations entre cas d’utilisation

♦ <<extend>> permet de modéliser la partie d’un cas ♦ La relation <<extend>> se traduit de la façon suivante en
d’utilisation considérée comme facultative dans le terme d’enchaînements :
comportement du système.
(Point
d’extension)

♦ Le cas de base peut fonctionner seul, mais il peut aussi


être complété par un autre, sous certaines conditions, et base
uniquement à certains points particuliers de son flot
d’événements appelés points d’extension. <<extend>>

<<extend>>
Saisir une commande Créer un client
(nouveau client)
extension

Point d'extension

Modélisation Objet, le langage UML Philippe Declercq (91) Modélisation Objet, le langage UML Philippe Declercq (92)
Relations entre cas d’utilisation Relations entre cas d’utilisation

♦ Les cas d’utilisation peuvent être hiérarchisés par


généralisation.
♦ Les cas d’utilisation descendants héritent de la
sémantique de leur parent. Ils peuvent comprendre des
interactions spécifiques supplémentaires, ou modifier les
interactions héritées.
Affecter une salle
pour un cours

Affecter un amphitéatre
Affecter une salle de TD Affecter une salle de TP
avec micro

Modélisation Objet, le langage UML Philippe Declercq (93) Modélisation Objet, le langage UML Philippe Declercq (94)

Spécification Exemple : La CBM

♦ La description textuelle n’est pas normalisée par UML ! ♦ La CBM (Computer Books by Mail) est une société de distribution
♦ Convergence vers un modèle standard : d'ouvrages d'informatique qui agit comme intermédiaire entre les
• Sommaire d’identification librairies et les éditeurs.
inclut titre, but, résumé, dates, version, responsable, acteurs… ♦ Elle prend des commandes en provenance des libraires,
• Description des enchaînements s'approvisionne (à prix réduit) auprès des éditeurs concernés et
décrit les enchaînements nominaux, les enchaînements alternatifs, les
exceptions, mais aussi les préconditions, et les postconditions.
livre ses clients à réception des ouvrages
• Exigences fonctionnelles ♦ Il n'y a donc pas de stockage de livres.
• Besoins d’IHM ♦ Seules les commandes des clients solvables sont prises en compte.
ajoute éventuellement les contraintes d’interface homme-machine
♦ Les commandes « urgentes » font l’objet d’un traitement
• Contraintes non-fonctionnelles particulier.
ajoute éventuellement les informations suivantes : fréquence, volumétrie,
disponibilité, fiabilité, intégrité, confidentialité, performances, ♦ La CBM désire mettre en place un Système Informatique lui
concurrence, etc. permettant de gérer les libraires et les livres, et d’enregistrer les
♦ On peut aussi réaliser des diagrammes commandes.

Modélisation Objet, le langage UML Philippe Declercq (95) Modélisation Objet, le langage UML Philippe Declercq (96)
Diagramme de cas d’utilisation Spécification textuelle du cas « Enregistrer une commande »
Acteur : l’employé de la coopérative
Objectif : enregistrer une commande de livres
Précondition : le libraire existe
CBM
Enchainement nominal :
1 - l’employé sélectionne le libraire et vérifie sa solvabilité
Enregistrer une
commande 2 - l’employé vérifie l’existence des livres
3 - l’employé précise la quantité pour chaque livre
4 – L’employé confirme la commande
<<extend>>
Passer une commande
Postcondition : une nouvelle commande est créée.
urgente Enchainement d’exception 1 :
1a - le libraire n’est pas solvable
Enregistrer un
nouveau client 1b - le système alerte l’employé et lui propose d’arrêter l’enregistrement
Employé Enchainement d’exception 2 :
2a - un des livres n’existe pas
2b – Le système édite une lettre qui pourra être envoyée au libraire. La
Enregistrer un
nouveau livre commande est placée en attente.

Modélisation Objet, le langage UML Philippe Declercq (97) Modélisation Objet, le langage UML Philippe Declercq (98)

Diagrammes complémentaires Diagrammes complémentaires

♦ On peut ajouter à chaque cas d’utilisation un diagramme ♦ Autres diagrammes possibles pour compléter la
de classes simplifié, appelé Diagramme de Classes description d’un cas d’utilisation :
Participantes (DCP) • Diagramme d’activités
• Diagramme de séquence (vision boîte noire)

Commande Librairie

* 1 Système Gestion Contrats

Employé : Employé Manager : Manager


1 : saisir nouveau contrat()

2 : choisir options tarifaires()

*
3 : vérifier contrat()

Livre Editeur
4 : valider contrat()

Modélisation Objet, le langage UML Philippe Declercq (99) Modélisation Objet, le langage UML Philippe Declercq (100)
Pour finir : quelques pièges à éviter Exercice 3

♦ Des cas d’utilisation trop petits et trop nombreux Représenter par un diagramme de cas d’utilisation les
• Jacobson : pas plus de 20 UC ! éléments de l’énoncé suivant :
• Larman : test du patron ♦ Le système de déclaration des impôts en ligne permet aux
• Test de la taille contribuables :
♦ Trop d’importance au diagramme • De saisir toutes les informations relatives à leurs revenus de
• Pas trop de relations entre UC ! l’année précédente,
♦ Décomposition fonctionnelle • De mettre à jour leurs informations administratives (adresse
postale, …).
• Garder le point de vue de l’utilisateur et pas le point de vue
interne ! ♦ La déclaration en ligne n’est accessible qu’aux contribuables
♦ Confusion entre processus métier et UC authentifiés, au moyen de leur n° fiscal et de leur mot de passe.
• Pas d’interactions entre acteurs directement ! ♦ Lors de la saisie, le contribuable choisit de réaliser une déclaration
• Se concentrer sur les actions à automatiser ! simplifiée ou une déclaration complète.
♦ La déclaration d’impôts d’une année donnée n’est possible qu’après
ouverture du service par les services fiscaux.
Modélisation Objet, le langage UML Philippe Declercq (101) Modélisation Objet, le langage UML Philippe Declercq (102)

Les diagrammes un par un Objectifs

♦ Décrire des scénarios particuliers

♦ Capturer l’ordre des interactions entre les parties du


V système (objets, composants, acteurs, …)
Le diagramme de séquence
Le diagramme de communication
♦ Décrire les interactions déclenchées lorsqu’un scénario
d’un cas d’utilisation est exécuté

Modélisation Objet, le langage UML Philippe Declercq (103) Modélisation Objet, le langage UML Philippe Declercq (104)
Diagramme de séquence / diagramme de communication Diagramme de séquence / diagramme de communication

♦ Ces diagrammes comportent : ♦ UML propose deux types de diagrammes pour modéliser
• des objets dans une situation donnée (instances) la collaboration entre les objets du système :
• les messages échangés entre les objets • Le diagramme de séquences,
• Le diagramme de communication

♦ Les objets sont les instances des classes identifiées et


décrites dans le diagramme de classes. ♦ Ces deux diagrammes sont regroupés sous le terme de
diagrammes d’interactions.

♦ Nous nous focaliserons dans un premier temps sur le


diagramme de séquences.

Modélisation Objet, le langage UML Philippe Declercq (105) Modélisation Objet, le langage UML Philippe Declercq (106)

Diagramme de séquence en détail Messages imbriqués

♦ Un message peut conduire à l’envoi d’un ou plusieurs


Object1 : Classe1 Object2 : Classe2 messages par le récepteur
Objets object1 : Classe1 Object2 : Classe2 Object3 : Classe3 Object4

1 : message1()
1 : message1()
Temps 2 : message2()

3
2 : retour
Ligne de vie 4 : message3()
5 : message4()
d’un objet
6
7
Barre d’activité : 8
message l’objet est actif, il
flèche retour
effectue quelque chose
Modélisation Objet, le langage UML Philippe Declercq (107) Modélisation Objet, le langage UML Philippe Declercq (108)
Exemple Diagrammes de séquences et diagramme de classes

♦ Comment calculer le poids d’une voiture, égal au poids ♦ Le diagramme de classes présente une vue statique du
du moteur plus le poids de la carrosserie ? système.
♦ Le diagramme de séquences présente une vue dynamique
du système.
Voiture 1
Moteur

ClasseA ClasseB
1 Carrosserie
operationA1() operationB1()
operationB2()

Modélisation Objet, le langage UML Philippe Declercq (109) Modélisation Objet, le langage UML Philippe Declercq (110)

Messages synchrones/asynchrones Messages de création/destruction

♦ Message synchrone : l’émetteur attend le retour du ♦ Rappel : les objets naissent, vivent et meurent
récepteur du message
♦ Message asynchrone : l’émetteur n’est pas bloqué, il
Object2 : Classe2
continue ses traitements

<<create>>
object2 : Classe2 1 Object3 : Classe3
object1 : Classe1 Création

1 : message1()

message synchrone

message asynchrone <<destroy>>


Suppression 2
3 : message2

Modélisation Objet, le langage UML Philippe Declercq (111) Modélisation Objet, le langage UML Philippe Declercq (112)
Messages réflexifs Fragments (UML2)

♦ Envoi d’un message d’un objet à lui-même ♦ Cadres d’interaction et fragments combinés permettent,
depuis UML 2, d’enrichir les diagrammes de séquence
pour structurer les interactions complexes
Cadre global
permettant de
object1 : Classe1 Object3 : Classe3 nommer une
séquence

1 : message1()

2 : message2()
Message réflexif
Référence à une
autre séquence

Modélisation Objet, le langage UML Philippe Declercq (113) Modélisation Objet, le langage UML Philippe Declercq (114)

Fragments (UML2) Utilisation du diagramme de séquence


♦ De la même façon, les fragments combinés permettent ♦ Dans la vue fonctionnelle du système
d’enrichir un diagramme de séquence. • Diagramme complémentaire de description d’un cas
♦ Exemple : fragment de type alt (alternative) : d’utilisation
• Décrire un scénario d’un cas d’utilisation : décrire les
interactions entre le système et son environnement (vision boîte
noire)
• Appelé diagramme de séquence « système »

♦ Dans l’analyse détaillée et la conception OBJET du


système
• Décrire les interactions internes du système : les interactions
entre les objets
♦ Autres fragments utiles : opt (partie optionnelle), loop
(boucle).
Modélisation Objet, le langage UML Philippe Declercq (115) Modélisation Objet, le langage UML Philippe Declercq (116)
Diagramme de communication Diagramme de communication

♦ Diagramme de séquences : l’accent est mis sur l’ordre ♦ Focalisation sur les liens entre objets d’une interaction
temporel des interactions
♦ Diagramme de communication : l’accent est mis sur
l’examen des interactions vis-à-vis des liens entre objets.
1 : message1()
Object1 Object2

♦ Équivalents en UML1, quelques nouveautés sur le


5 : message5

diagramme de séquences en UML2, non disponibles sur 2 : message2() 4 : message4

le diagramme de communication
3
message3
Object3

Modélisation Objet, le langage UML Philippe Declercq (117) Modélisation Objet, le langage UML Philippe Declercq (118)

Diagramme de communication Exemple : La CBM

♦ Exemple : ♦ Description du système :


• Reprendre l’énoncé de l’exercice sur les cas d’utilisation.

♦ Objectif :
• Réaliser un diagramme de classes pour le système CBM,
• Réaliser un diagramme de séquence objet lorsque qu’un
utilisateur demande les détails de toutes les commandes d’une
librairie donnée.

Modélisation Objet, le langage UML Philippe Declercq (119) Modélisation Objet, le langage UML Philippe Declercq (120)
CBM : diagramme de classes CBM : un diagramme de séquence

COMMANDE saLibrairie LIBRAIRIE ♦ Diagramme de séquence : « Communiquer les détails de


1
numéro
date
nom
adresse
toutes les commandes d'une librairie donnée »
getDate() solvabilité
isSolvable ()

* ♦ Ce diagramme correspond à la méthode


LIGNE DE COMMANDE
getDétailCommandes() de la classe LIBRAIRIE
quantité

*
LIVRE EDITEUR
ISBN sesLivres nom
titre * adresse
getLivre (titre) : LIVRE

Modélisation Objet, le langage UML Philippe Declercq (121) Modélisation Objet, le langage UML Philippe Declercq (122)

Vous aimerez peut-être aussi