Beruflich Dokumente
Kultur Dokumente
Licence 3 Informatique
1/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Plan du cours
2/131
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Modlisation et
Conception
Orient
Objet
3/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Modlisation et
tablir un modle
Conception
laborer, se reprsenter quelque chose
Orient
Objet
vers lobjet
3/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
4/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
5/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
6/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
7/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Frdric Dadeau
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
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
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
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
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
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
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
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
12/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
12/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
12/131
Frdric Dadeau
M.C.O.O.
Mthodes de dveloppement
Concepts objet
U.M.L.
12/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
13/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
14/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
15/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
16/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Utilis en particulier pour factoriser une fonctionnalit partage par plusieurs cas
dutilisation.
17/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
18/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
19/131
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Petit exercice
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
21/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
23/131
Frdric Dadeau
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
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
27/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
28/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
29/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Classes utilitaires
30/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
31/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
32/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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.
33/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
34/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Les multiplicits
35/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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)
Frdric Dadeau
(3)
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Ceci signifie :
Une personne peut ouvrir un nombre quelconque de comptes
Un compte est ouvert pour une ou deux personnes
37/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
37/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
37/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
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
39/131
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Classe-associations et multiplicits
Simulation dune classe association
41/131
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
43/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Dans une agrgation, certaines parties peuvent tre partages. Par dfaut, il ny a pas
de contrainte de multiplicit sur lagrgat.
46/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Attention : ceci nest possible que pour les compositions car deux objets ne peuvent
pas partager un mme composant.
49/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Associations n-aires
50/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
52/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
52/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
52/131
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
56/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
56/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Hritage de relation
Relation hrite
57/131
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Exercice
59/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Les interfaces
60/131
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
62/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
63/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Les dcoupages sont possible lintrieur dun mme contexte. La conjonction des
contraintes proposes sera alors considre.
64/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
65/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
66/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
67/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
69/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
70/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
71/131
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
73/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
74/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de
de
de
de
cas dutilisation
classes et dobjets
composants
dploiement
75/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
76/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
77/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
79/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
80/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
81/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
81/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Un premier exemple
Exemple dun systme de communication tlphonique
82/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Un second exemple
83/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
84/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Syntaxe gnrale
La syntaxe des tiquettes de message est la suivante :
[Garde]
Iteration
resultat :=
nom_message(arguments)
o
[Garde]
Iteration
resultat :=
nom_message
85/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
86/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
86/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
86/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
86/131
Frdric Dadeau
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
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]
87/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
88/131
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
92/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
93/131
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
96/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
97/131
Frdric Dadeau
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
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
[Garde]
Iteration
resultat :=
nom_message(arguments)
o
Synchronisation
[Garde]
Iteration
resultat :=
nom_message
99/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
100/131
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Exercice
102/131
Frdric Dadeau
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
104/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
105/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Les tats
106/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
107/131
la retraite,
Frdric Dadeau
sans emploi
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Transitions
109/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Transitions (suite)
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
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
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
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Diagramme de classe
112/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
112/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
113/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
113/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
113/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Remarque
114/131
Frdric Dadeau
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
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
a1 a2* a3
119/131
a1 (a3 a2 a1)* a3
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
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
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
Frdric Dadeau
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
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Automates en parallle
123/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
124/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
125/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
126/131
Frdric Dadeau
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
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
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Couloirs dactivits
Couloirs dactivits
129/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Bilan du cours
130/131
Frdric Dadeau
Diagrammes
Diagrammes
Diagrammes
Diagrammes
de squence
de collaboration
dtats-transition
dactivit
Bibliographie
131/131
Frdric Dadeau