Académique Documents
Professionnel Documents
Culture Documents
Jean-Philippe Domenger
Université Bordeaux I & LaBRI
Objectifs de ce cours
JP Domenger 2
Historique
JP Domenger 4
Constat sur l ’objet
JP Domenger 5
Que faut il !
❚ Un langage
❙ définitions non ambiguë des concepts
❙ extensible et générique
❙ Couverture complète des aspects du
développement allant de l ’analyse jusqu’au
déploiement.
❘ Stabilisation par convergence
❙ Indépendant des langages de programmation
objet
JP Domenger 6
Que faudrait-il ?
JP Domenger 7
Convergence des notations
JP Domenger 9
L’ Emergence d’ UML
JP Domenger 10
Emergence d’UML
JP Domenger 11
UML: une convergence
❚ Les contributions
Booch Catégories et sous-systèmes
Embley Classes singletons et objets composites
Fusion Description des opérations, numérotation des messages
Gamma, et al. Frameworks, patterns, et notes
Harel Automates (Statecharts)
Jacobson Cas d’utilisation (use cases)
Meyer Pré- et post-conditions
Odell Classification dynamique, éclairage sur les événements
OMT Associations
Shlaer-MellorCycle de vie des objets
Wirfs-Brock Responsabilités (CRC)
JP Domenger 12
Le consortium UML
JP Domenger 13
Motivation
JP Domenger 15
UML: fédère l ’approche objet
JP Domenger 16
UML:fédère l ’approche objet
JP Domenger 18
UML:fédère l ’approche objet
JP Domenger 19
UML et le processus de
développement
JP Domenger 20
En résumé
JP Domenger 21
UML
JP Domenger 23
Les diagrammes d ’UML
JP Domenger 24
Les Vues d’UML
JP Domenger 26
Les cas d ’utilisation (1)
JP Domenger 27
Les cas d ’utilisation (2)
JP Domenger 28
Les cas d ’utilisation (3)
❚ L ’acteur et le système:
❙ L'acteur consulte ou modifie l'état du système.
❘ Quelles informations communiquées au système.
❙ Le système répond à une action de l ’acteur.
❘ Quelles sont les actions de l ’acteur
❘ Quelles informations sont communiquées par le
système.
JP Domenger 29
Les cas d ’utilisation (4)
Nous ne
pouvons
pas afficher
cette image
pour
l’instant.
Définition des limites de couverture
Nous ne
pouvons
Vendeur pour
Conclusion du marché
l’instant.
Système de validation
<<extend>>
JP Domenger 30
Les cas d ’utilisation (5)
❚ Relation d ’utilisation: Un cas d’utilisation contient
le comportement d’un autre (sous fonction).
JP Domenger 31
Les cas d ’utilisation (6)
Retrait
client
<<extend>>
<<extend>>
<<include>>
Conversion
JP Domenger 32
Les cas d’utilisations (7)
JP Domenger 33
Les cas d’utilisations(8)
❚ Le nom du cas d’utilisation
❚ L’acteur primaire du cas d’utilisation
❚ Le système concerné par le cas d’utilisation
❙ Le niveau du cas d’utilisation
❙ Objectif utilisateur
❙ Sous-fonction (pour les cas d’utilisation étendant un autre
ou destinés à être inclus)
❚ Les opérations
❚ Les points d’extension (afin de programmer les
conditions)
JP Domenger 34
Les cas
d’utilisations (9)
JP Domenger 35
Démarche guidée par les besoins
Cas d'utilisation
Réalise
Conçoit Vérifie
Programmeur Testeur
Architecte
JP Domenger 36
Diagramme d ’objet (1)
❚ Ce diagramme présente
❙ l ’identité des objets
❙ leur classe (qui peut être indéfinie)
❙ leur état (pas nécessairement la valeur de leur
variable d ’instance)
❙ les liens entre les objets
❙ une qualification des liens
JP Domenger 37
Diagramme d ’objet (2): exemple
unePorte unAutreObjet
maVoiture : Twingo
: Fenêtre
objet anonyme
JP Domenger 38
Diagramme d ’objet (3): exemple
Conduit
couleur = bleu
vitesse = 20
encoreUneAutre : Voiture
[ Voiture en Panne]
JP Domenger 39
Diagramme d’objet (4)
uneMaison:Maison
uneChambre:Piece se couche
[Chauffée]
Paul:Personne
JP Domenger 40
JP Domenger 41
Diagramme d’objets (5)
JP Domenger 42
De l ’objet à la classe
JP Domenger 43
Diagramme de classe (1)
JP Domenger 44
Diagramme de classe(2)
JP Domenger 45
Diagramme de classe (3)
Classe
attributs
$variableDeClasse
variableInstance
+méthodePublique( )
#méthodeProtégée( )
-méthodePrivée( )
+$méthodeDeClasse( )
Radio
Tasse
quantité: Decimal allumer( )
quantitéMax: Decimal éteindre( )
+estVide( ): Boolean monterLeSon( )
+estPleine( ): Boolean changerDeStation( )
+verser(quantité: Decimal)
+boire(quantité: Decimal)
JP Domenger 46
Diagramme de classe (4)
JP Domenger 47
Diagramme de classe (5)
JP Domenger 48
Diagramme de classe (6)
JP Domenger 49
Diagramme de classe (7)
association
Personne Entreprise
1..* *
employé employeur
+assigner(unProjet: Projet)
assigner(nouveauJeu)
lien
JP Domenger 50
Diagramme de classe (7)
Enseigne à >
Université Etudiant
JP Domenger 51
Diagramme de classe (8)
Université Personne
Employeur Employé
JP Domenger 52
Diagramme de classe (9)
JP Domenger 53
Diagramme de classe (10)
1 Un et un seul
0..1 Zéro ou un
M .. N De M à N (entiers
naturels)
* Plusieurs
0 .. * De zéro à plusieurs
1 .. * D'un à plusieurs
JP Domenger 54
Diagramme de classe (11)
JP Domenger 55
Diagramme de classe (12)
Dépendance
JP Domenger 56
Diagramme de classe (13)
Aggrégation
❚ Raffinement de l ’association
❚ Correspond à une relation : partie-de ou
composant-composé
❙ La classe A fait partie de la classe B
❙ L’état d’une instance de la classe B contient
temporairement une instance de la classe A
❙ une voiture a 4 roues
❚ La relation est orientée (navigation)
JP Domenger 57
Diagramme de classe (14)
Composition
JP Domenger 58
Diagramme de classe (15)
composition
3..*
Point 1
Cercle
rayon
Polygone
*
Style
1 couleur 1
estRempli
aggrégation
JP Domenger 59
Diagramme de classe (16)
Généralisation/Spécialisation
❚ La relation Généralisation/spécialisation se traduit par
« est une sorte de ». Elle implique le partage de code et
le sous-typage
JP Domenger 60
Diagramme de classe (17)
Interface
❚ L’interface est la définition d’un rôle (type abstrait). Elle
matérialise une partie du comportement d ’un objet.Elle
définit un ensemble de signature.
JP Domenger 61
Diagramme de classe (18)
Interface
<<interface>>
<<interface>>
Animal
Mobile
+Manger()
+Reproduction() +Deplace()
Cochon
AnimalMobile
CochonMobile
+Deplace()
JP Domenger 62
Correspondances entre diagrammes
1..* 1..*
* *
* *
Relation 1 *
Lien
* *
* * * *
Diagramme de classes Diagramme d'objets
* *
JP Domenger 63
Comportement
JP Domenger 64
Diagramme de séquence
JP Domenger 65
Diagramme de séquence
unObjet unAutre
unMessage
«création» unNouvelObjet
messageSurLuiMême demande
retour
notifie
«détruit»
JP Domenger 66
Diagramme de séquence
JP Domenger 67
Diagramme de séquence
JP Domenger 68
Diagramme de séquence
JP Domenger 69
Diagramme de séquence
JP Domenger 70
Diagramme de séquence
JP Domenger 71
Diagramme de séquence
❚ Appels récursifs
JP Domenger 72
Diagramme de séquence
❚ Boucles et branchements
JP Domenger 73
Diagramme de séquence
❚ Branchement conditionnel
JP Domenger 74
Un exemple
unObjet unAutre
condition
[estFermé]: ouvrir
retour := demande(indice)
Itération
JP Domenger 75
JP Domenger 76
Le diagramme état/transition
JP Domenger 77
Le diagramme état/transition
JP Domenger 78
Action et activité
JP Domenger 79
Action et activité
JP Domenger 80
Action de transition
JP Domenger 81
Action de transition
JP Domenger 82
Exemple d’état.
JP Domenger 83
Autres Exemples.
JP Domenger 84
Résumé d’un élément du
diagramme état/transition
E3[cond Y]/a5
JP Domenger 85
Hiérarchie d’états
E1 Etat père E2
do/A
E1 E3 E2
do/A1 do/A2
JP Domenger 86
Hiérarchie d’états
Transmission
R
Point mort Marche arrière
S
S F
Marche avant
U U
Première D Seconde D Troisième
JP Domenger 87
Hiérarchie d’états
Ici, l’état ‘état4’ est un sur-état des états ‘état1’, ‘état2’, ‘état3’. Les deux
transitions qui rentrent dans l’état ‘état4’ spécifient dans quel sous-état on arrive.
La transition sortante de l’état ‘état4’ exprime que, quel que soit le sous-état
dans lequel l’objet se trouve, si l’événement ‘ev3’ arrive, alors l’objet sort de
l’état ‘état4’.
JP Domenger 88
Parallélisme et synchronisation.
Etat composite
do/ A1 do/ A2
do/ A3 do/ A4
do/ A5 do/ A6
JP Domenger 89
Quel est la signification ?
Eveillé
Endormi
Réveil sonne [heure=en retard] Pause !!!
En cours
[durée>10mn]
Eveillé Endormi
Prof crie
JP Domenger 90
Dernier exemple de uml.free.fr
JP Domenger 91
JP Domenger 92