Vous êtes sur la page 1sur 171

Prsentation du module MCOO

Les diagrammes des aspects statiques


Les diagrammes des aspects dynamiques

Modlisation et Conception Oriente-Objet


Frdric Dadeau
Laboratoire dInformatique de luniversit de Franche-Comt
Bureau 421C
frederic.dadeau@lifc.univ-fcomte.fr

Licence 3 Informatique

1/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Plan du cours

2/131

Prsentation du module MCOO


M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Les diagrammes des aspects statiques


Diagrammes de cas dutilisation
Diagrammes de classes et dobjets
Diagrammes de composants
Diagrammes de dploiement

Les diagrammes des aspects dynamiques


Diagrammes de squence
Diagrammes de collaboration
Diagrammes dtats-transition
Diagrammes dactivit
Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

M.C.O.O. quest-ce que cest ?

Modlisation et

Conception

Orient
Objet

3/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

M.C.O.O. quest-ce que cest ?

Modlisation et
tablir un modle
Conception
laborer, se reprsenter quelque chose
Orient
Objet
vers lobjet

MCOO : modliser et concevoir en utilisant les objets du monde rel.

3/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Cours : 3 sances + 1 interrogation crite


lundi 14 septembre de 13h30 15h
mardi 15 septembre de 13h30 15h
lundi 21 septembre de 11h 12h30
Travaux dirigs : 10 sances (dont 1 interrogation crite)
TD1 : mardi de 15h 16h30
TD2 : mardi de 13h30 15h
Travaux pratiques : 1 sance de 1h30 la semaine du 30 novembre
TP A : jeudi de 13h30 15h
TP AB : lundi de 9h30 11h
TP B : lundi de 16h30 18h
Travail personnel : tude de cas travailler en autonomie (crneaux de TP rservs)

4/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Historique des mthodes de dveloppement


Lies aux langages de programmations.
Les mthodes fonctionnelles (1970 )
Dcomposition dune fonction en plusieurs sous-fonctions.
Architecture base sur la dcomposition fonctionnelle : peu dvolutions possibles
Peu de rutilisation des composants
Les mthodes classiques (1980 )
Modlisation des donnes et des traitements.
JSD : Jackson System Development
MACH : Mthode dAnalyse et de Conception Hirarchise
MERISE : Mthode dEtude et de Ralisation Informatique pour les Systmes
dEntreprise
SADT : Structured Analysis and Design Technique
SASD : Structured Analysis Structured Design
5/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Historique des mthodes de dveloppement


Lies aux langages de programmations.
Les mthodes objet
Objet = abstraction des entits du monde rel
aide visualiser les objets tel quils sont ou tels quon le souhaite
permet de spcifier la structure ou le comportement dun objet
fournit un guide pour la construction du systme
documente les dcisions prises lors de la construction dun systme
Quelques mthodes orientes-objet
OOA : Object Oriented Analysis, Schlaer/Mellor (1988,91,93)
OOD : Object Oriented Design, Booch (1991,93)
OMT : Object Modelling Technique, Rumbaugh (1991,95)
OOSE : Object Oriented Software Engineering, Jacobson (1992)

5/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Unification des mthodes


Unified Method
auteurs : Booch, Rumbaugh et Jacobson
rapprochement de leurs mthodes + cas dutilisation

Historique de la cration dUML


1995 Dbut du travail sur la mthode unifie
1996 Cration dun consortium de partenaires pour travailler sur la dfinition dUML
dans lOMG
1997 UML 1.1 (normalis par lOMG)
1998 UML 1.2
1999 UML 1.3
2001 UML 1.4
2003 UML 1.5
2005 UML 2.0
6/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Unification des mthodes


Unified Method
auteurs : Booch, Rumbaugh et Jacobson
rapprochement de leurs mthodes + cas dutilisation

Object Management Group OMG


Organisation internationale cre en 1989
Plus de 800 membres (informaticiens et utilisateurs)
Vise promouvoir la thorie et la pratique de la technologie objet dans le
dveloppement logiciel
Egalement la base des standards Meta-Object Facility (MOF), COmmon
Request Broker Architecture (CORBA) et Interface Definition Language (IDL)

6/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

UML : Unified Modeling Language


Notation graphique de modlisation objets
Permet de visualiser, spcifier, construire et documenter les diffrentes parties
dun systme logiciel
Langage graphique, bas sur des diagrammes (9 pour UML 1.5, 13 pour UML
2.0)
Pas une mthode ! mais utilisable dans tout le cycle de dveloppement dun
logiciel

7/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

UML : Unified Modeling Language


Notation graphique de modlisation objets
Permet de visualiser, spcifier, construire et documenter les diffrentes parties
dun systme logiciel
Langage graphique, bas sur des diagrammes (9 pour UML 1.5, 13 pour UML
2.0)
Pas une mthode ! mais utilisable dans tout le cycle de dveloppement dun
logiciel
Buts initiaux des concepteurs dUML
reprsenter des systmes entiers (pas uniquement logiciels) par des concepts
objets ;
lier explicitement des concepts et le code qui les implantent ;
pouvoir modliser des systmes diffrents niveaux de granularit (pour
permettre dapprhender des systmes complexes) ;
crer un langage de modlisation utilisable la fois par les humains et les
machines.
7/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Lobjet
Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.
Objet = Identit + Etat + Comportement

8/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Lobjet
Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.
Objet = Identit + Etat + Comportement
Identit dun objet
Proprit qui permet de distinguer un objet par rapport aux autres sans ambiguts.
Distingue deux objets dont les valeurs des diffrents attributs sont identiques.

8/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Lobjet
Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.
Objet = Identit + Etat + Comportement
Identit dun objet
Proprit qui permet de distinguer un objet par rapport aux autres sans ambiguts.
Distingue deux objets dont les valeurs des diffrents attributs sont identiques.
Etat dun objet
Valeur de tous ses attributs un tat donn.
Un attribut est une information qui qualifie lobjet qui la contient.

8/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Lobjet
Entit du monde rel (ou virtuel) centralisant les donnes et les traitements associs.
Objet = Identit + Etat + Comportement
Identit dun objet
Proprit qui permet de distinguer un objet par rapport aux autres sans ambiguts.
Distingue deux objets dont les valeurs des diffrents attributs sont identiques.
Etat dun objet
Valeur de tous ses attributs un tat donn.
Un attribut est une information qui qualifie lobjet qui la contient.
Comportement dun objet
Dfinit lensemble des oprations que lobjet peut excuter en raction aux messages
envoys par les autres objets.
Ltat et le comportement sont lis.
8/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

La notion de classe
Une classe est une abstraction qui reprsente un ensemble dobjets de mme nature,
cest--dire possdant la mme structure statique (attributs) et le mme
comportement (mthodes).
Exemple : classe Point2D avec les attributs x et y.
Relation entre objet et classe
Tout objet appartient une classe et connat de faon implicite la classe
laquelle il appartient.
Tout objet est une instance de sa classe.
Un objet est une instance dune et une seule classe.
Classe abstraite
Classe conue sans instances.

9/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Relations entre classes


Association
Relation entre plusieurs classes.
Elles reprsentent une abstraction des diffrents liens qui peuvent exister entre les
diffrents objets.
Agrgation et composition
Forme particulire dassociation entre deux classes.
Exprime le fait quune classe est compose dune ou plusieurs autres classes.
Spcialisation et gnralisation
Le mcanisme dhritage permet de dfinir de nouvelles classes partir de classes dj
existantes.
Gnralisation : factorisation dans une classe (appelle super-classe) de
proprits de plusieurs classes
Spcialisation : inverse de le gnralisation, consiste crer partir dune classe
plusieurs classes spcialises.
10/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Notions relatives aux composants des classes

Encapsulation
Possibilit de masquer certains dtails de limplantation. Peut-tre ralis en
particuliers par des constituants privs des objets.
Polymorphisme
Poly = plusieurs, morphisme = forme
Caractristique dun lment qui peut se prsenter sous plusieurs formes.
Capacit donne une mme opration de seffectuer diffremment suivant le
contexte de la classe o elle se trouve.

11/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Les diagrammes dUML


Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler des
lments de modlisation.
UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dun
systme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.
2 catgories de diagrammes UML
Aspects statiques (structure logicielle et physique) 5 diagrammes
Aspects dynamiques (comportements) 4 diagrammes

12/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Les diagrammes dUML


Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler des
lments de modlisation.
UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dun
systme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.
Diagrammes des aspects statiques
1 Diagramme de cas dutilisation : reprsente les fonctions du systme du point
de vue de lutilisateur.
2 Diagramme de classes : dfinit les classes et les relations entre les classes.
3 Diagramme dobjets : dfinit les instances des classes, ainsi que les liens entre
ces instances.
4 Diagramme de composants : permet de dcrire les composants (ou modules)
dun systme (fichiers sources, fichiers objets, librairies excutables).
5 Diagramme de dploiement : dcrit la disposition physique du matriel et la
rpartition des composants sur le matriel.

12/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Les diagrammes dUML


Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler des
lments de modlisation.
UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dun
systme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.
Diagrammes des aspects dynamiques
6 Diagramme de squences : reprsente les interactions dun point de vue
chronologique ; dune part, les interactions entre le systme et les acteurs et,
dautre part, les interactions entre les objets lintrieur du systme.
7 Diagramme de collaboration : reprsente les interactions entre objets dun point
de vue spacial.
8 Diagramme dtats-transitions : automates hirarchiques permettant reprsenter
les comportements dun acteur, dun systme ou dun objet dune certaine classe.
9 Diagramme dactivits : permet de modliser le comportement dune mthode
en reprsentant un enchanement dactivits.

12/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.

Les diagrammes dUML


Un diagramme donne lutilisateur la possibilit de visualiser et de manipuler des
lments de modlisation.
UML 2.0 comporte 13 diagrammes permettant de modliser diffrents aspects dun
systme. On se focalisera dans ce cours sur les 9 diagrammes issus dUML 1.5.
4 diagrammes UML 2.0 (non traits en cours)
Diagramme de paquetages : permet de dcrire les interactions entre les
paquetages (paquetage = structure logique de regroupement et dorganisation
des lments du modle UML).
Diagramme de structure composite : dcrit sous la forme dune bote blanche
les relations entre les composants dune classe.
Diagramme global dinteraction : permet de dcrire les enchanements possibles
entre les scnarios pralablement identifis sous forme de diagrammes de
squences.
Diagramme de temps : permet de dcrire les variations dune donne au cours
du temps.

12/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les aspects statiques

Les diagrammes de cas dutilisation


Les diagrammes de classes et dobjets
Les diagrammes de composants
Les diagrammes de dploiement

13/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Diagramme des cas dutilisation

Les cas dutilisation permettent de dcrire le systme du point de vue de lutilisateur.


Ils permettent de dfinir les limites du systme et les relations entre le systme et son
environnement.
Identification des acteurs
Un acteur reprsente un rle jou par une personne ou une chose qui interagit avec le
systme.
N.B. : Une mme personne physique peut correspondre plusieurs acteurs si celle-ci
peut jouer plusieurs rles.

14/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Acteurs et cas dutilisation


Cas dutilisation : fonctionnalit du systme utilise par un acteur.
Un acteur qui interagit avec le systme pour utiliser une fonctionnalit est reprsent
par une relation entre cet acteur et le cas dutilisation reprsentant cette
fonctionnalit.
On dit que lacteur dclenche le cas dutilisation auquel il est li.

15/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple de cas dutilisation


Distributeur de billets
Un premier acteur : client, consulte le solde de son compte, ou retire de
largent.
Un second acteur : technicien, allume, teint ou ravitaille le distributeur.

On note quun rectangle symbolise les limites du systme.

16/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Inclusion entre deux cas dutilisation

Un cas dutilisation, nomm source, inclut un cas dutilisation nomm destination, si


les comportements dcrits par le cas source contiennent les comportements dcrits par
le cas destination.
Notation de linclusion

Utilis en particulier pour factoriser une fonctionnalit partage par plusieurs cas
dutilisation.

17/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Extension dun cas dutilisation

Un cas dutilisation, nomm source, tend un cas dutilisation nomm destination, si


les comportements dcrits par le cas source tendent les comportements dcrits par le
cas destination.
Notation de lextension

Lextension peut tre soumise une condition.

18/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple dinclusion et dextension


Systme de virements par internet
Client local : virements (incluant une identification)
Client distant : virements par internet (tendant le virement standard)

19/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Petit exercice

Enonc
On souhaite modliser les interactions de diffrents utilisateurs avec un systme de
validation de cartes de crdit (basiquement un terminal avec un lecteur de cartes).
Les cartes de crdit sont dtenues par des clients, pouvant tre soit des personnes
individuelles ou une entreprise, et sont utilises sous la supervision dune institution.
Une institution commerciale supervise les transactions et le traitement de factures des
clients.
Une institution financire supervise galement ces factures, mais soccupe aussi de
grer le compte du client, avec son accord.

20/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Petit exercice

Une solution possible

Cette solution fait apparatre un hritage entre acteurs : les comportements de chacun
des deux sous-acteurs sont factoriss dans le super-acteur.

20/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les aspects statiques

Les diagrammes de cas dutilisation


Les diagrammes de classes et dobjets
Les diagrammes de composants
Les diagrammes de dploiement

21/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les diagrammes de classes et dobjets

Le diagramme de classes
Il se prsente sous la forme dun rseau :
de classes, dcrivant un ensemble dobjets, et
dassociations, decrivant un ensemble de liens.
Il donne les informations sur les liens dun objet vers les autres objets.
Le but est de dcrire ce quil faut raliser, et non pas comment le raliser.
Le diagramme dobjets
Cest une instanciation dun diagramme de classe. Il se prsente sous la forme dun
rseau :
dobjets, instances des classes du diagramme associ, et
de liens, dcrivant les interactions existantes entre les objets

22/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

2.1. Les classes

23/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

La notion de classe

Dfinition
Une classe est une abstraction qui reprsente un ensemble dobjets, ayant une
structure et un comportement commun.
Par exemple : Etudiant est une classe dobjets.
Un objet est une instance de sa classe ; une classe est dite instancie lorsquelle
contient au moins un objet.
Concrtement ...
Une classe contient :
un nom
des attributs
des oprations

24/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple et reprsentation
Classes Compte et Personne
Reprsentation des classes Compte et Personne

25/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les attributs
Un attribut est une proprit dun objet de la classe qui comporte :
un nom (unique dans sa classe)
un type (facultatif, mais conseill)
une valeur initiale (facultative)
Un attribut est dit driv si sa valeur peut tre calcule partir dattributs
non-drivs. Leurs noms sont prcds par /.
Attribut driv

Chaque attribut une valeur pour chaque instance de classe. Les instances de classe
peuvent avoir des valeurs identiques ou diffrentes pour un attribut donn.

26/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les oprations et les mthodes

Une opration est un service offert par les objets de la classe.


En UML, on distingue opration et mthodes :
une opration spcifie un service
une mthode implante une opration
Syntaxe dune opration
Opration (mode1 arg1 : Type1 = Val1 , . . ., modeN argN : TypeN = ValN ) : TypeR
Le mode peut tre : in (paramtre dentre), out (paramtre de sortie), inout
(paramtre dentre et de sortie). Le mode par dfaut est in.
Les paramtres, le type et la valeur initiale sont optionnels.

27/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Visibilit des attributs et des oprations

Il y a 4 niveau de visibilit qui peuvent sappliquer aux attributs et aux oprations.


Le niveau public (+), qui indique quun lment est visible par tous les clients
de la classe.
Le niveau protg (#), qui indique quun lment nest accessible que pour les
sous-classes de la classe o il apparat.
Le niveau paquetage (), qui indique quun lment est visible uniquement pour
les classes dfinies dans le mme paquetage.
Le niveau priv (-), qui indique que seule la classe o est dfini cet lment peut
y accder.

28/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Nombres complexes, sans prciser limplantation

Nombres complexes, implantation laide du module et de largument

Nombres complexes, implantation laide de la partie relle et de la partie imaginaire

29/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classes utilitaires

Une classe utilitaire permet de regrouper un ensemble de valeurs (valeurs dattributs)


et doprations. Elle ne peut tre instancie et ne comporte que des attributs ou
oprations de classe.
Classe utilitaire Math

30/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Strotypes sur les classes


Une classe peut admettre un strotype, crit entre chevrons au dessus du nom de la
classe. Similairement, les strotypes peuvent sappliquer certaines oprations des
classes.
Les strotypes permettent dtendre la smantique des lments de modlisation. Ils
permettent de dfinir de nouvelles classes dlments de modlisation, en plus du
noyau prdfini par UML. UML propose de nombreux strotypes standards mais
dautres plus spcifiques peuvent tre crs pour des besoins de modlisation.
Quelques strotypes standards
thread , appliqu une classe, qui indique que cette classe reprsente un
processus lger
utility , appliqu une classe, qui indique que cette classe est une classe
utilitaire
constructor , getter , setter , appliqus des oprations.

31/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

2.2. Les associations

32/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Dfinition dune association

Une association est une relation n-aire entre n classes dobjets. Les relations les plus
utilises sont les relations binaires, entre deux classes.
Exemple dassociation informel
Relation de possession entre une personne et un compte courant.

Classes : Personne et Compte


Association : relation possde

33/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Dfinition dune association

Une association est une relation n-aire entre n classes dobjets. Les relations les plus
utilises sont les relations binaires, entre deux classes.
On appelle lien linstanciation dune association entre deux objets.
Exemple de lien informel
Pierre Dupont possde le compte dont le solde est -400.

33/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Reprsentation graphique dune association


Une association compte au moins deux extrmits. Elle peut tre binaire, ternaire, ou
dun autre ordre.
Reprsentation dune association binaire

Reprsentation dune association ternaire

34/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les multiplicits

La multiplicit prcise combien dinstances dune classe peuvent se rattacher une


seule instance dune classe associe.
Valeurs de multiplicit
1 un et un seul
0..1 cas optionnel
N si on connat la valeur, on la prcise
M..N intervalle de valeurs (de M N N N)
0 ou plusieurs (identique 0..)
1.. au moins un
Graphiquement, la multiplicit se place du ct de la classe quelle dcrit.

35/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Dun point de vue mathmatique


Les associations
Une association entre deux classes A et B est une relation binaire, au sens
mathmatique, cest--dire un sous-ensemble de A B.
(1)

R AB

Il est donc impossible davoir deux liens diffrents symbolisant une mme association
entre deux objets identiques.
Les relations
Soit R une relation entre deux classes A et B, avec les multiplicits MA , associe A,
et MB , associe B. Les multiplicits MA et MB imposent les contraintes suivantes :
Pour chaque objet b de la classe B, le nombre dobjets de la classe A lis b
appartient MA .
b B, card{(a, b) R; a A} MA

(2)

Pour chaque objet a de la classe A, le nombre dobjets de la classe B lis a


appartient MB .
a A, card{(a, b) R; b B} MB
36/131

Frdric Dadeau

(3)

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Un exemple : compte et personne


Diagramme de classes

Ceci signifie :
Une personne peut ouvrir un nombre quelconque de comptes
Un compte est ouvert pour une ou deux personnes

37/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Un exemple : compte et personne


Diagramme de classes

Un diagramme dobjets correct

37/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Un exemple : compte et personne


Diagramme de classes

Un diagramme dobjets incorrect

37/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Navigabilit dune association


Par dfaut, une association est navigable dans les deux sens.
Diagramme de classes

partir dune personne, on peut retrouver les comptes qui lui sont associs ;
partir dun compte on peut retrouver son (ou ses deux) propritaire(s)
Pour spcifier quun seul sens de navigation est autoris, on peut orienter la relation.
Association oriente

A partir dun objet de la classe A, on peut accder aux objets de la classe B qui lui
sont lis. Linverse nest pas autoris.

38/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

La notion de rles
Les rles dsignent les extrmits dune association. Ils peuvent tre nomms.
Exemple de rles

une personne joue le rle dun employ


une entreprise joue le rle dun employeur
Principalement utiliss dans les associations rflexives :
Deux exemples dassociations rflexives

39/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classe-associations
Une classe-association est une entit qui combine les proprits dune classe et les
proprits dune association.
Une association R entre deux classes A et B permet dassocier tout lien entre un
objet de la classe A et un objet de la classe B un objet de la classe R.
Exemple de classe-association

40/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classe-associations et multiplicits
Une classe-association entre deux classes peut se simuler par lintermdiaire dune classe
et de deux associations.
Simulation dune classe association

Se simule par :

41/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classe-associations et multiplicits
Simulation dune classe association

Lecture des multiplicits


Chaque objet de la classe Z est associ un objet de la classe X et un objet de
la classe Y
Chaque objet de la classe X est associ n objets de la classe Z, avec n MY
Chaque objet de la classe Y est associ n objets de la classe Z, avec n MX

41/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classes-associations et objets
Classe-association

42/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classes-associations et objets
Classe-association simule

42/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

2.3. Les associations plus complexes

43/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Agrgation et composition (1/2)

44/131

Lagrgation est un association binaire particulire qui modlise une relation entre un
tout et une partie, autrement dit, une relation dappartenance.
Notation de lagrgation

Un objet de la classe B, appel agrgat contient un certain nombre dobjets de la


classe A, appels composants.

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple dagrgation
Diagramme de classes

Diagramme dobjets

45/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Remarque sur lagrgation


La relation dagrgation interdit les cycles dans les diagrammes dobjets.
Par contre, dans le diagramme de classes, on peut dfinir une classe A en agrgation
avec elle-mme.
Diagramme de classes et diagramme dobjet

Dans une agrgation, certaines parties peuvent tre partages. Par dfaut, il ny a pas
de contrainte de multiplicit sur lagrgat.

46/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Agrgation et composition (2/2)

La composition est une agrgation particulire pour laquelle une partie ne peut pas
tre partage entre plusieurs agrgats. Autrement dit, la multiplicit du ct de
lagrgat est 0 ou 1.
Notation de la composition, quivalence avec lagrgation

Les cycles de vies des composants et de lagrgat sont lis : si lagrgat est dtruit, ses
composants le sont aussi.

47/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple de composition
Diagramme de classes

Diagramme dobjets

48/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Remarque sur la composition


Il est galement possible de reprsenter les composants dun objet lintrieur de
lobjet lui-mme.
Reprsentation

Attention : ceci nest possible que pour les compositions car deux objets ne peuvent
pas partager un mme composant.

49/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Associations n-aires

50/131

Une association n-aire est une relation entre n classes.


Mathmatiquement parlant ...
Une association n-aire entre les classes A1 ,A2 , . . ., An est un sous-ensemble R de
A1 A2 . . . An , donc un ensemble de n-uplets de la forme (a1 , a2 , . . . , an ) avec
i 1, 2, . . . , n, ai Ai .

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Associations n-aires, multiplicits


La multiplicit associe une classe pose une contrainte sur le nombre de n-uplets de
la relation lorsque les n 1 autres valeurs sont fixes.
Notation

y0 Y , z0 Z , card((x, y0 , z0 ) R; x X ) MX
x0 X , z0 Z , card((x0 , y , z0 ) R; y Y ) MY
x0 X , y0 Y , card((x0 , y0 , z) R; z Z ) MZ

51/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple dassociation n-aire


Association ternaire

un enseignant peut faire un mme cours plusieurs classes


(multiplicit * associe la classe Classe)

52/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple dassociation n-aire


Association ternaire

dans une classe, un cours est effectu par un seul enseignant


(multiplicit 1 associe la classe Enseignant)

52/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple dassociation n-aire


Association ternaire

un enseignant peut faire plusieurs cours dans une mme classe


(multiplicit * associe la classe Cours)
Un enseignant peut donc enseigner plusieurs matires.

52/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Lextension
Une classe Y tend ou spcialise une classe X si tout objet de la classe Y est, ou peut
tre considr comme, un objet de la classe X.
A linverse, on dira que la classe X gnralise la classe Y.
Notation de lextension

53/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les proprits de lextension

Proprit dhritage
Les attributs et les oprations dfinis dans X, qui ne sont pas privs, et qui ne sont
redfinis dans Y, sont hrits dans Y.
Proprit de substitution
La proprit de substitution exprime que tout objet de la classe Y est ou peut tre
considr comme un objet de la classe X.
Chaque fois quon a besoin dune instance de X, on peut utiliser la place une
instance de Y.

54/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Un exemple dextension
Exemple avec des points

55/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Hirarchie des classes


Lextension permet dexprimer la notion de hirarchie entre diffrentes classes.
Hirarchie de vhicules
On considre diffrents types de vhicules :
Les vhicules ariens : les avions
Les vhicules aquatiques : les bateaux et les sous-marins
Les vhicules terrestres : les chars et les voitures
On prcise :
quun hydravion est la fois un avion et un bateau,
quun char amphibie est la fois un sous-marin et un char
quun avion est compos dailes
quun char est compos de chenilles
quune voiture est compose de roues

56/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Hirarchie des classes


Lextension permet dexprimer la notion de hirarchie entre diffrentes classes.
Hirarchie de vhicules (diagramme)

56/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Hritage de relation

Relation hrite

Dans lexemple prcdent : un hydravion est, en tant quavion, galement compos


dailes, et un char amphibie est, en tant que char, galement compos de chenilles.

57/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Classe abstraite
Une classe abstraite est une classe qui ne peut tre instancie, et qui peut contenir des
oprations abstraites.
Une opration abstraite est une opration sans implantation, cest--dire laquelle ne
correspond aucun code. Une classe abstraite peut aussi contenir des oprations
concrtes (= non-abstraites).
Les classes abstraites servent notamment dans les hirarchies de classes, o elles
permettent de regrouper des attributs et des oprations communs plusieurs classes.
En programmation objet (par exemple, en Java) une classe concrte doit implanter les
oprations abstraites dont elle hrite.
Notation

58/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exercice

Description
On souhaite modliser des uvres, qui sont soit des bandes dessines, des romans, ou
des films. Ces uvres ont un titre et un auteur. Les livres ont un certain nombre de
pages, et une bande dessine possde en plus un dessinateur. Les films, eux, ont une
dure bien dfinie.
Raliser le diagramme de classes correspondant.

59/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exercice

Une solution possible

59/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les interfaces

Une interface spcifie un ensemble doprations qui constituent un ensemble cohrent.


Elle contient uniquement des oprations abstraites, sans implantation.
Une interface est quivalente une classe abstraite qui ne contient que des oprations
abstraites.
Une classe implante (ou implmente ou ralise) une interface lorsquelle fournit toutes
les oprations de linterface.

60/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Exemple dinterfaces
Les collections en Java

On note un lien dutilisation entre les deux interfaces, et deux liens de ralisation
(HashSet implante Set et Vector implante List).
61/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

2.3. Object Constraint Language

62/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Quelques notions dOCL


UML formalise lexpression des contraintes avec OCL (Object Constraint Language).
OCL est une contribution dIBM UML 1.1.
Ce langage formel est volontairement simple daccs et possde une grammaire
lmentaire (OCL peut tre interprt par des outils).
OCL permet ainsi de limiter les ambiguts du langage naturel, tout en restant
accessible.
OCL permet de dcrire des invariants dans un modle, sous forme de
pseudo-code :
pr et post-conditions pour une opration,
expressions de navigation,
expressions boolennes, etc...
OCL permet denrichir ce diagramme, en dcrivant toutes les contraintes et tous les
invariants du modle prsent, de manire normalise et explicite ( lintrieur dune
note rattache un lment de modlisation du diagramme).

63/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Syntaxe des contraintes OCL (1/5)


Contexte dune contrainte

Une contrainte sapplique sur tous les objets de la classe considre.


Le contexte dfinit la porte de la contrainte. Il peut sagir :
dune classe : la contrainte devra alors tre un invariant, prcis par inv
context MaClasse
inv : . . .
dune opration : la contrainte pourra alors tre une prcondition (pre) ou une
postcondition (post).
context MaClasse :: MonOperation(i : Integer )
pre : . . .
post : . . .

Les dcoupages sont possible lintrieur dun mme contexte. La conjonction des
contraintes proposes sera alors considre.

64/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Syntaxe des contraintes OCL (2/5)


Les expressions

Les invariants, prconditions et postconditions expriment des contraintes qui sont des
prdicats de logique du premier ordre portant sur :
linstance courante de la classe, self
les attributs dune instance, instance.att (self.att peut scrire att)
les collections dobjets associs aux classes instance.role
les valeurs ltat avant lopration dans les postconditions uniquement, attpre
les paramtres dentre ou de sortie des oprations, pour les pr- et
postconditions
la valeur de retour dune opration, result

65/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Syntaxe des contraintes OCL (2/5)


Les expressions

Quelques oprateurs de manipulation des donnes :


entiers, rels : =, <>, <=, >=, +, -, *, /, x.div(y), x.mod(y)
chaines : s.concat(t), s.size(), s.subString(debut,fin)
boolens : and, or, not, xor, =, implies, if ... then ... else ... endif
objets : obj.isOclUndefined() (eq. obj = null),
obj.isOclInstance(Classe), obj.isOclNew()

65/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Syntaxe des contraintes OCL (3/5)


Collections et accs aux objets associs dune classe

On compte quatre type de collections :


Set : pas de doublons, pas dordre
Bag : doublons possibles, pas dordre
OrderedSet : pas de doublons, ordonn
Sequence : doublons possibles, pas dordre

Lexpression instance.role renverra diffrents types en fonction des multiplicits du


ct du role :
multiplicit 0 ou 1, instance.role est un objet (ventuellement la valeur null
si aucun objet nest associ instance)
multiplicit N (> 1) ou M..N, instance.role est un Set.

66/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Syntaxe des contraintes OCL (4/5)


Oprations de manipulation des collections

Ces oprations sappliquent en utilisant loprateur -> suite au nom de la collection.


Quelques oprations utiles :
coll->size : compte le nombre dobjets dune collection (renvoie un entier)
coll->isEmpty : quivalent coll->size = 0)
coll->notEmpty : quivalent coll->size <> 0)
coll->count(obj) : compte le nombre doccurrences de obj dans coll
coll->includes(obj) : quivalent coll->count(obj) > 0)
coll->excludes(obj) : quivalent coll->count(obj) = 0)
coll->includesAll(coll2) : vrifie si tous les lments de coll2 sont inclus
dans coll

67/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Syntaxe des contraintes OCL (5/5)


Oprations collectives et simplification dcriture
Ces oprations permettent deffectuer des requtes sur les collections.
Quelques oprations utiles :
coll->collect(role) : renvoie un Bag contenant les objets lis ceux de coll
par le rle role
coll->exists(expr) : vrifie si expr est satisfait pour au moins un lment de
la collection
coll->forAll(expr) : vrifie si expr est satisfait pour tous les lments de la
collection
coll->select(expr) : renvoie la collection compose des lments de coll qui
satisfont expr
Il est possible de dfinir des attributs ou des oprations temporaires afin de simplifier
et compacter les expressions. context MaClasse
inv : let val1 :Boolean = self.att1 >= 1 and self.att1 <= 140
let majeur(age : Integer) :Boolean = age >= 18 in
val1 and (self.attr2 = 42 or majeur(self.attr3)
68/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Quelques exemples de spcifications en OCL


Diagramme de classes dun htel

Un htel ne contient jamais dtage numro 13 (superstition oblige)


context Chambre inv :
self.etage <> 13

69/131

context SalleDeBain inv :


self.etage <> 13

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Quelques exemples de spcifications en OCL


Diagramme de classes dun htel

Ltage de chaque chambre est compris entre le premier et le dernier tage de lhtel.
context Htel inv :
self.chambre->forAll(c : Chambre | c.etage <= self.etageMax and
c.etage >= self.etageMin)

69/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Quelques exemples de spcifications en OCL


Diagramme de classes dun htel

On ne peut repeindre une chambre que si elle nest pas loue. Une fois repeinte, une
chambre cote 10% de plus.
context Chambre : :repeindre(c : Couleur)
pre : client->isEmpty
post : prix = prixpre * 1.1
69/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Quelques exemples de spcifications en OCL


Diagramme de classes dun htel

Le loyer de lhtel est gal la somme du prix de toutes les chambres loues.
context Htel : : calculerLoyer() : rel
pre :
post : result = self.chambre->select(client->notEmpty).prix->sum

69/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les aspects statiques

Les diagrammes de cas dutilisation


Les diagrammes de classes et dobjets
Les diagrammes de composants
Les diagrammes de dploiement

70/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les diagrammes de composants

Les diagrammes de composants permettent de dcrire larchitecture physique dune


application en termes de modules.
Diagramme de composants
Composants dun serveur Oracle utilisant une base de donnes servant de catalogue.

71/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Diagrammes de composants
Composants
Application construite partir de deux fichiers source et dune bibliothque
mathmatiques.

72/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les aspects statiques

Les diagrammes de cas dutilisation


Les diagrammes de classes et dobjets
Les diagrammes de composants
Les diagrammes de dploiement

73/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les diagrammes de dploiement

Les diagrammes de dploiement dcrivent la disposition physique des matriels et la


rpartition des composants sur ces matriels.

74/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de
de
de
de

cas dutilisation
classes et dobjets
composants
dploiement

Les diagrammes de dploiement


Diagramme de dploiement

75/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les aspects dynamiques

Les diagrammes de squence


Les diagrammes de collaboration
Les diagrammes dtats-transitions
Les diagrammes dactivit

76/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les diagrammes de squence

Les diagrammes de squence permettent de reprsenter les interactions entre objets


dun point de vue chronologique.
Ils se concentrent sur la squence des interactions dun point de vue temporel.
Ils font partie des diagrammes dits dinteraction, avec les diagrammes de collaboration.

77/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les diagrammes de squence

Les interactions se traduisent par des envois de messages entre les objets.
Les diagrammes de squences peuvent sappliquer
la documentation des cas dutilisation, en reprsentant les interactions entre
les acteurs et le systme. Les tiquettes des messages sont des vnements qui se
produisent dans le systme.
la reprsentation des interactions informatiques et la rpartition des flots de
contrle. Les messages changs unifient les diffrentes formes de
communication entre les objets (appels de procdure, mission de signaux, etc.).

78/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les objets des diagrammes de squence


Ce sont des entits appartenant au systme (instance dune classe), ou se trouvant
ses limites (les acteurs), ou le systme lui-mme.
Ils reprsentent :
Soit des concepts abstraits, ou des acteurs (documentation des cas dutilisations)
Soit des objets dimplantation (interactions informatiques)
Les objets sont identifis par lintermdiaire des diagrammes de cas dutilisation ou des
diagrammes de classes. Ils sont dnots classiquement.

79/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

La ligne de vie des objets

Elle reprsente la priode de temps durant


laquelle lobjet existe.
La priode dactivation correspond un
intervalle de temps durant lequel lobjet effectue
une actions, soit directement, soit par
lintermdiaire dun autre objet qui lui sert de
sous-traitant (appel de procdure).
La vie de lobjet commence par lobjet lui-mme
et se termine la fin de la ligne de vie,
ventuellement marque par une croix indiquant
la destruction de lobjet.

80/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les types de messages

On distingue 3 types de messages.

1. Message synchrone : correspond un appel de procdure ou flot de contrle imbriqu. La squence imbrique est entirement faite avant que lappelant ne continue :
lappelant est bloqu jusqu ce que lappel termine.

81/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les types de messages

On distingue 3 types de messages.

2. Message asynchrone : correspond un message " plat", non imbriqu. Lappelant


nest pas bloqu jusqu ce que lappel termine.

81/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les types de messages

On distingue 3 types de messages.

3. Retour de procdure : correspond la terminaison dune procdure avec le retour


ventuel dune valeur. Ces messages peuvent ne pas tre dessins, ils sont alors implicites.

81/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Un premier exemple
Exemple dun systme de communication tlphonique

Illustration dun diagramme de cas dutilisation, avec messages asynchrones.

82/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Un second exemple

Contrle de flot dexcution

83/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Cration et destruction dun objet


Crer et dtruire des objets
Deux types de messages particuliers permettent de crer et de dtruire des objets.
La cration se symbolise par un message << create >>
La destruction se symbolise par un message << destroy >>

84/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes des messages

Syntaxe gnrale
La syntaxe des tiquettes de message est la suivante :
[Garde]

Iteration

resultat :=

nom_message(arguments)

o
[Garde]

est la condition denvoi du message (facultatif)

Iteration
resultat :=

dcrit une ventuelle itration sur lenvoi du message (facultatif)


est laffectation dune valeur de retour (facultatif)

nom_message

est le nom du message

arguments sont les arguments du message (facultatif)

85/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : messages gards


Les gardes permettent de spcifier des conditions pour lenvoi des messages. Les
messages ne sont envoys que si la condition est satisfaite.
Messages conditionnels

86/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : messages gards


Les gardes permettent de spcifier des conditions pour lenvoi des messages. Les
messages ne sont envoys que si la condition est satisfaite.
La ligne de vie dun objet peut tre ddouble pour indiquer des actions qui sont effectues suite un message conditionnel (UML 1.5).
Ddoublement de la ligne de vie

86/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : messages gards


Les gardes permettent de spcifier des conditions pour lenvoi des messages. Les
messages ne sont envoys que si la condition est satisfaite.
UML 2.0 ajoute la possibilit dutiliser des fragments, plus lisibles.
Utilisation dun fragment dalternative

86/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : messages gards


Les gardes permettent de spcifier des conditions pour lenvoi des messages. Les
messages ne sont envoys que si la condition est satisfaite.
UML 2.0 ajoute la possibilit dutiliser des fragments, plus lisibles.
Notamment pour les actions optionnelles.
Utilisation dun fragment optionnel

86/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : itrations
Deux types ditrations
On distingue deux types ditrations :
Itration squentielle : envoi squentiel de plusieurs instances du mme message,
dnot par [clause ditration]
Itration parallle : envoi en parallle de plusieurs instances du mme message,
dnot par k [clause ditration]

Envoi squentiel

87/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : itrations
Deux types ditrations
On distingue deux types ditrations :
Itration squentielle : envoi squentiel de plusieurs instances du mme message,
dnot par [clause ditration]
Itration parallle : envoi en parallle de plusieurs instances du mme message,
dnot par k [clause ditration]

Envoi squentiel, avec un fragment

87/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes : valeur de retour

Le rsultat est constitu dune liste de valeurs retournes par le message.


Ces valeurs peuvent tre utilises comme paramtres dautres messages.
Deux notations possibles

88/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Contraintes temporelles
On peut nommer linstant dmission dun message, ainsi que linstant de sa rception.
Cela permet de poser des contraintes de temps sur lenvoi et sur la rception de
messages.
Par convention, si linstant dmission est dnot par x, linstant de rception de ce
mme message est dnot par x .
Utilisation de contraintes temporelles

89/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Objets actifs

Dfinition
Un objet actif est un objet qui a son propre flot dexcution.
Quelques exemples dobjets actifs
les processus et les threads
les objets sources dvnements, comme les boutons dans les interfaces
graphiques
les minuteries, comme les timers en Java
Ces objets permettent dexcuter une opration soit une seule fois, aprs un certain
intervalle de temps, soit de faon rpte intervalles de temps donnes.

90/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Objets actifs (suite)


Un objet actif peut, le temps dune opration, activer un objet passif qui peut alors
activer dautres objets passifs. Lorsque lopration est termine lobjet passif redonne
le contrle lobjet qui la activ.
Illustration

Un objet actif est reprsent par des contours plus pais.


Dans un environnement multi-tches, plusieurs objets peuvent tre actifs
simultanment.
91/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les aspects dynamiques

Les diagrammes de squence


Les diagrammes de collaboration
Les diagrammes dtats-transitions
Les diagrammes dactivit

92/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les diagrammes de collaboration

Les diagrammes de collaboration permettent de reprsenter les interactions entre des


objets (et ventuellement des acteurs).
Par opposition aux diagrammes de squences, les contextes sont explicitements
reprsents, en prcisant les tats des objets qui interagissent. Pour mettre en vidence
la dimension temporelle, les messages envoys par les diffrents objets peuvent tre
numrots.
Ils font partie des diagrammes dits dinteraction, avec les diagrammes de sequence.
Le passage dun diagramme de collaboration un diagramme de squence (et
inversement) est simple.

93/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les collaborations
Les collaborations dfinissent les lments utiles pour obtenir un rsultat en spcifiant
leurs rles dans le contexte de la collaboration.
Une collaboration est compose de deux descriptions.
Description gnrale au niveau de la spcification
Celle-ci reprsente les rles des cas dutilisation, des classes, des mthodes et des
associations. Une interaction sera alors une squence de messages changs entre les
rles.
Description spcifique au niveau instance
Celle-ci reprsente une instance particulire dune interaction compose dobjets et de
liens respectants les rles, et de stimulus qui sont des instances de messages changs
entre ces objets.

94/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les rles
Chaque lment dune collaboration joue un rle.
Chacun des classificateurs (classe, cas dutilisation, etc.) est reprsent par un symbole
de classe.
Notation des rles

Les rles des associations sont reprsents classiquement par rapport aux diagrammes
de classes.
95/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Collaboration au niveau spcification


La collaboration forme un graphe de rles lis par des rles dassociations.
En gnral, une collaboration au niveau spcification reprsente un contexte.
Un contexte

96/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Collaboration au niveau instance

La collaboration niveau instance est un diagramme reprsentant une instance au


niveau spcification avec des stimulus.
Un stimulus est une instance dun message envoy dun objet vers un autre.
Exemple illustratif

97/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les messages
Les objets communiquent en changeant des messages reprsents sous forme de
flche. Les messages sont tiquets par le nom de lopration ou du signal invoqu.
Lenvoi dun message ncessite que le rcepteur puisse raliser lopration.
Trois types de messages
On distingue 3 types de messages :

Lappel de procdure ou flot de contrle embot : la squence emboite doit se terminer pour que la squence englobante reprenne le contrle.

98/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les messages
Les objets communiquent en changeant des messages reprsents sous forme de
flche. Les messages sont tiquets par le nom de lopration ou du signal invoqu.
Lenvoi dun message ncessite que le rcepteur puisse raliser lopration.
Trois types de messages
On distingue 3 types de messages :

Le flot de contrle asynchrone : pas de messages englobant, il ny a donc pas dobligation de terminaison dautres messages pour poursuivre la squence.

98/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les messages
Les objets communiquent en changeant des messages reprsents sous forme de
flche. Les messages sont tiquets par le nom de lopration ou du signal invoqu.
Lenvoi dun message ncessite que le rcepteur puisse raliser lopration.
Trois types de messages
On distingue 3 types de messages :

Le flot de contrle plat : cas particulier des messages asynchrones, il modlise une
progression non procdurale souvent utilise pour les messages entre un acteur et le
systme.

98/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etiquettes des messages

Syntaxe des messages


La syntaxe des tiquettes de message est la suivante :
Synchronisation

[Garde]

Iteration

resultat :=

nom_message(arguments)

o
Synchronisation
[Garde]

permet de synchroniser le message avec dautres (facultatif)

est la condition denvoi du message (facultatif)

Iteration
resultat :=

dcrit une ventuelle itration sur lenvoi du message (facultatif)


est laffectation dune valeur de retour (facultatif)

nom_message

est le nom du message

arguments sont les arguments du message (facultatif)

99/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Synchronisation des messages


La synchronisation de messages permet denvoyer un message si et seulement si
dautres messages ont dj t envoys.
Ceci se dnote par : M1, M2, .../M o M1, M2 sont les messages dont dpend M.
Synchronisation

100/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Squencement
On prfixe le message par une numrotation de manire indiquer lordre denvoi des
messages.
La numrotation est englobante dans le cas des appels de procdure : N (appel
initial), N.1 (premier appel imbriqu), N.2 (deuxime appel imbriqu, N + 1 (au mme
niveau que N).
Squence de messages

101/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exercice

Soit le diagramme de classes suivant :

Donner les diagrammes de collaboration reprsentant laffichage dune figure demand


par un utilisateur.

102/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exercice - Solution
Diagramme de squence reprsentant laffichage dune figure demand par un
utilisateur.

103/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les aspects dynamiques

Les diagrammes de squence


Les diagrammes de collaboration
Les diagrammes dtats-transitions
Les diagrammes dactivit

104/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les diagrammes dtats-transitions

Les diagrammes dtats-transitions permettent principalement de dcrire le


comportement des objets dune classe.
Ils peuvent galement dcrire les aspects dynamique dun cas dutilisation, dun
acteur, dun systme, ou dun sous-systme.
Les diagrammes dtats-transitions UML sont inspirs des Statecharts de David Harel.
Il sagit dautomates hirarchiques, qui peuvent tre mis en parallle.

105/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les tats

Etat dun objet


Ltat dun objet correspond lensemble des valeurs de ses attributs et lensemble
des liens quil entretient avec dautres objets.
Un tat est une condition ou une situation, dans la vie dun objet, qui dure un certain
temps pendant lequel cet objet satisfait une condition, effectue une activit, ou attend
un vnement.

106/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les tats : un premier exemple

Personnes employes dans une entreprise

Une personne peut avoir un des trois tats suivants :


en activit,

107/131

la retraite,

Frdric Dadeau

sans emploi

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les tats : tat initial et tat final

Etat initial
Un tat initial est un pseudo-tat qui permet de
montrer ltat dans lequel un objet se trouve au
moment de sa cration.
Etat final
Un tat final est un pseudo-tat qui permet de montrer
la fin du comportement dun objet, en particulier au
moment de sa destruction.

108/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Transitions

Les transitions permettent un objet de changer dtat, en fonction des vnements


quil reoit.
Contenu dune transition
Une transition comporte :
un tat source
un tat destination
un vnement
une condition, appele garde
une action

109/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Transitions (suite)

Notation dune transition

Smantique
Si :
lobjet est dans ltat A et lvnement se produit et la condition est vraie
alors lobjet effectue laction et passe dans ltat B.
Si aucune transition partant de ltat courant nest tiquete par lvnement reu,
alors rien ne se passe ; en particulier, lobjet ne change pas dtat.
Remarque : Le passage dun tat un autre est considr comme instantan.

110/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Evnements
On distingue 4 sortes dvnements en UML :
Un vnement dappel ("call event") est un vnement caus par lappel dune
opration. Dans ce cas, lvnement est de la forme op(x1 , x2 , ..., xN ) o op est
une opration de la classe.

111/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Evnements
On distingue 4 sortes dvnements en UML :
Un vnement dappel ("call event") est un vnement caus par lappel dune
opration. Dans ce cas, lvnement est de la forme op(x1 , x2 , ..., xN ) o op est
une opration de la classe.
Un vnement modification ("change event") est un vnement caus par le
passage dune condition de la valeur faux la valeur vrai, suite un changement
de valeur dun attribut ou dun lien.

111/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Evnements
On distingue 4 sortes dvnements en UML :
Un vnement dappel ("call event") est un vnement caus par lappel dune
opration. Dans ce cas, lvnement est de la forme op(x1 , x2 , ..., xN ) o op est
une opration de la classe.
Un vnement modification ("change event") est un vnement caus par le
passage dune condition de la valeur faux la valeur vrai, suite un changement
de valeur dun attribut ou dun lien.
Un vnement temporel ("time event") est un vnement qui survient quand une
temporisation arrive expiration. Une temporisation peut tre relative (dlai), ou
absolue (spcification de lheure laquelle la transition doit tre effectue).

111/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Evnements
On distingue 4 sortes dvnements en UML :
Un vnement dappel ("call event") est un vnement caus par lappel dune
opration. Dans ce cas, lvnement est de la forme op(x1 , x2 , ..., xN ) o op est
une opration de la classe.
Un vnement modification ("change event") est un vnement caus par le
passage dune condition de la valeur faux la valeur vrai, suite un changement
de valeur dun attribut ou dun lien.
Un vnement temporel ("time event") est un vnement qui survient quand une
temporisation arrive expiration. Une temporisation peut tre relative (dlai), ou
absolue (spcification de lheure laquelle la transition doit tre effectue).
Un vnement signal ("signal event") est un stimulus asynchrone entre deux
objets. Par exemple, un clic de souris est un signal.

111/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exemple 1 : activit dune personne

Diagramme de classe

112/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exemple 1 : activit dune personne

Diagramme dtats-transitions associ la classe "Personne"

112/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exemple 2 : deux boutons et 1 voyant


On considre une machine avec deux boutons permettant de mettre une machine sous
tension (signal "on") ou de lteindre (signal "off"). Le voyant indique si la machine
est sous tension ou hors tension. Aprs une minute sans utilisation, la machine se met
automatiquement hors tension.
Diagramme de classe

113/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exemple 2 : deux boutons et 1 voyant


On considre une machine avec deux boutons permettant de mettre une machine sous
tension (signal "on") ou de lteindre (signal "off"). Le voyant indique si la machine
est sous tension ou hors tension. Aprs une minute sans utilisation, la machine se met
automatiquement hors tension.
Diagramme dtats-transitions associ la classe "Voyant"

113/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Exemple 2 : deux boutons et 1 voyant


On considre une machine avec deux boutons permettant de mettre une machine sous
tension (signal "on") ou de lteindre (signal "off"). Le voyant indique si la machine
est sous tension ou hors tension. Aprs une minute sans utilisation, la machine se met
automatiquement hors tension.
Diagramme dtats-transitions associ la classe "Machine"

113/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Remarque

Les automates considrs en UML sont a priori non-dterministes.


On peut donc avoir deux transitions tiquetes par le mme vnement qui partent du
mme tat.
Nanmoins, dun point de vue mthodologique, il est souvent prfrable dutiliser des
automates dterministes pour plus de clart.

114/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Gardes
Une garde est une condition boolenne, note entre crochets [ ].
La garde de la transition est value quand un vnement se produit.
Gardes et dterminisme
Supposons que plusieurs transitions partant du mme tat A soient dclenches par le
mme vnement.

Pour que lautomate soit dterministe, il faut que les gardes c1, c2 et c3 soient
mutuellement exclusives.

115/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Gardes (suite)

Smantique
Si aucune condition nest vrifie, alors rien ne se passe et lobjet ne change pas dtat.
Remarque : Il ne faut pas confondre un vnement de dclenchement et une garde :
Un vnement de changement est un vnement qui dclenche une transition
lorsque la condition passe vrai ;
Une garde est une condition boolenne value lorsque lvnement se produit.

116/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Action et activit

Action
Une action consiste en la gnration dun signal ou linvocation dune opration. Une
action est considre comme instantane (ie. le temps dexcution est ngligeable) et
atomique (ie. non interruptible).
Activit
Une activit correspond une opration qui prend un temps non ngligeable et peut
tre interrompue.

117/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Actions associes aux tats

Les actions sont gnralement associes aux transitions, mais on peut galement les
associer aux tats. On peut en particulier :
spcifier une action effectuer lorsquon entre dans un tat :
entry/ action
spcifier une action effectuer si un vnement survient :
on vnement / action (lvnement est "interne")
spcifier une action effectuer lorsquon sort dun tat :
exit / action
spcifier une activit effectuer lorsquon est dans ltat :
do/ activit

118/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Actions associes aux tats (suite)


Remarque : le dclenchement dun vnement interne nentrane pas lexcution des
actions dentre et de sortie.
Illustration
On suppose quon entre dans lun des deux tats E1 ou E2 et quon reoit une
succession dvnements e.

a1 a2* a3

119/131

a1 (a3 a2 a1)* a3

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etats composites
Dfinition
Un tat composite est un tat qui se dcompose en plusieurs sous tats. Les tats
composites permettent de structurer les automates pour les rendre plus lisibles.
Ils permettent en particulier de factoriser des transitions similaires qui partent de
plusieurs tats.
Activits dune personne

120/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etats composites

120/131

Dfinition
Un tat composite est un tat qui se dcompose en plusieurs sous tats. Les tats
composites permettent de structurer les automates pour les rendre plus lisibles.
Ils permettent en particulier de factoriser des transitions similaires qui partent de
plusieurs tats.
Remarque : Il peut exister des transitions entre diffrents niveaux de lautomate, mais
il est prfrable de limiter leur nombre.

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Etats composites (suite)

Lorsque deux transitions peuvent tre effectues, lune sur un sous-tat, et lautre sur
ltat englobant, cest la transition sur le sous-tat (la plus "spcialise") qui est
effectue.
Priorit des transitions

121/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Indicateurs dhistorique
Lindicateur dhistorique not H est un pseudo tat qui permet de mmoriser le dernier
tat visit dun automate pour y retourner ultrieurement.
Indicateur dhistorique

Si une interruption survient, suite la reprise, ltat du systme retournera celui


avant linterruption.
122/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Indicateurs dhistorique
Lindicateur dhistorique niveau quelconque not H* est un pseudo tat qui permet de
mmoriser le dernier tat visit, un tat dimbrication quelconque, pour y retourner
ultrieurement.
Indicateur dhistorique niveau quelconque

Si une interruption survient, suite la reprise, ltat du systme retournera celui


avant linterruption, cest--dire dans ltat A, B ou C.
122/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Automates en parallle

A lintrieur dun tat, plusieurs automates peuvent sexcuter en parallle. Chaque


sous-automate a un tat initial et un certain nombre dtats finaux.
Lactivit dun tel tat se termine lorsque tous les sous-automates arrivent un tat
final.
Lorsquun vnement se produit, toutes les transitions qui peuvent tre excutes sont
effectues.

123/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Automates en parallle (suite)

Excution dautomates en parallles

Il est possible daplatir lautomate pour obtenir un comportement quivalent.


Typiquement, les automates en parallle sutilisent lorsquun objet est form de la
composition ou lagrgation dautres objets, en particulier si le comportement de
lobjet composite correpond la mise en parallle des comportements des composants.

124/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les aspects dynamiques

Les diagrammes de squence


Les diagrammes de collaboration
Les diagrammes dtats-transitions
Les diagrammes dactivit

125/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Les diagrammes dactivit

Les diagrammes dactivit permettent de modliser le comportement dune mthode


ou le droulement dun cas dutilisation, en reprenant un enchanement dactivits.
Activit et transition

126/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Transitions conditionnelles
Il est possible de donner des conditions pour le franchissement de transitions.
Transitions conditionnelles

127/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Synchronisation

Barre de synchronisation
Il est possible de synchroniser des transitions
laide dune barre de synchronisation. Celle-ci
permet douvrir et de fermer des branches
parallles au sein dun flt dexcution :
Les transitions qui partent dune barre de
synchronisation ont lieu en mme temps.
On ne franchit une barre de
synchronisation quaprs ralisation de
toutes les transitions qui sy rattachent.

128/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Couloirs dactivits
Couloirs dactivits

Afin dorganiser un diagramme


dactivits selon les diffrents
responsables des actions reprsentes, il
est possible de dfinir des "couloirs
dactivits".

129/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Bilan du cours

Cours : apprentissage de la notation UML comme support de lanalyse objet


TD : dmarche de modlisation UML :

diagrammes de classes, diagrammes dobjet, OCL (4 sances + colle)


diagramme de squences (1 sance)
diagrammes dtats-transitions (3 sances)
diagrammes dactivits (1 sance)
TP : travail sur une tude de cas

130/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet

Prsentation du module MCOO


Les diagrammes des aspects statiques
Les diagrammes des aspects dynamiques

Diagrammes
Diagrammes
Diagrammes
Diagrammes

de squence
de collaboration
dtats-transition
dactivit

Bibliographie

UML par la pratique, P. Roques, Edition Eyrolles


UML 2 par la pratique, P. Roques, Edition Eyrolles
Cours Analyse Conception et Validation de Logiciels, C. Oriat
(catherine.oriat@imag.fr), ENSIMAG Grenoble.
Site web de lOMG : http ://www.omg.org
Un site complet sur UML en franais : http ://uml.free.fr

131/131

Frdric Dadeau

Modlisation et Conception Oriente-Objet