Informatique S4-POO
Programmation Orientee Objet— UML —
Cedric Buche
Ecole Nationale d’Ingenieurs de Brest (ENIB)
20 novembre 2013
Cedric Buche (ENIB) POO 20 novembre 2013 1 / 135
Introduction Objectifs du cours – prerequis
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 2 / 135
Introduction Objectifs du cours – prerequis
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 3 / 135
Introduction Objectifs du cours – prerequis
Objectifs du cours – prerequis
Objectifs :
Connaıtre le langage de modelisation UML
Comprendre la semantique des principaux elements des differentsmodeles
Prerequis :
Maıtriser les principes de la programmation orientee–objet
Cedric Buche (ENIB) POO 20 novembre 2013 4 / 135
Introduction Importance de la modelisation
Importance de la modelisation
La niche, la maison familiale et l’immeuble
: quelques planches, des clous, un marteau et quelques outils.
: plans generaux, plans d’execution detailles (pieces, electricite,plomberie, chauffage)
: planification detaillee, nombreux plans et etudes
Cedric Buche (ENIB) POO 20 novembre 2013 5 / 135
Introduction Importance de la modelisation
Importance de la modelisation
La niche, la maison familiale et l’immeuble
: quelques planches, des clous, un marteau et quelques outils.
: plans generaux, plans d’execution detailles (pieces,electricite, plomberie, chauffage)
: planification detaillee, nombreux plans et etudes
Cedric Buche (ENIB) POO 20 novembre 2013 5 / 135
Introduction Importance de la modelisation
Importance de la modelisation
La niche, la maison familiale et l’immeuble
: quelques planches, des clous, un marteau et quelques outils.
: plans generaux, plans d’execution detailles (pieces,electricite, plomberie, chauffage)
: planification detaillee, nombreux plans et etudes
Cedric Buche (ENIB) POO 20 novembre 2013 5 / 135
Introduction Pourquoi modeliser ?
Pourquoi modeliser ?
Mieux comprendre le systeme en developpement
Apprehender ces systemes dans leur entierete → modeles desystemes complexes
Cedric Buche (ENIB) POO 20 novembre 2013 6 / 135
Introduction Pourquoi modeliser ?
Pourquoi modeliser ?
Mieux comprendre le systeme en developpement
Apprehender ces systemes dans leur entierete → modeles desystemes complexes
Cedric Buche (ENIB) POO 20 novembre 2013 6 / 135
Introduction Pourquoi modeliser ?
Pourquoi modeliser ?
Mieux comprendre le systeme en developpement
Apprehender ces systemes dans leur entierete → modeles desystemes complexes
Cedric Buche (ENIB) POO 20 novembre 2013 6 / 135
Introduction Pourquoi modeliser ?
Pourquoi modeliser ?
Mieux comprendre le systeme en developpement
Apprehender ces systemes dans leur entierete → modeles desystemes complexes
Cedric Buche (ENIB) POO 20 novembre 2013 6 / 135
IntroductionModelisation informatique : des logiciels au genie
logiciel
Des logiciels au genie logiciel
Etude projet informatique
16 % conformes
53 % depassements
31 % abandon
⇒ Genie Logiciel
Cedric Buche (ENIB) POO 20 novembre 2013 7 / 135
IntroductionModelisation informatique : des logiciels au genie
logiciel
Des logiciels au genie logiciel
Etude projet informatique
16 % conformes
53 % depassements
31 % abandon
⇒ Genie Logiciel
Cedric Buche (ENIB) POO 20 novembre 2013 7 / 135
IntroductionModelisation informatique : des logiciels au genie
logiciel
Des logiciels au genie logiciel
Etude projet informatique
16 % conformes
53 % depassements
31 % abandon
⇒ Genie Logiciel
Cedric Buche (ENIB) POO 20 novembre 2013 7 / 135
IntroductionModelisation informatique : des logiciels au genie
logiciel
Des logiciels au genie logiciel
Etude projet informatique
16 % conformes
53 % depassements
31 % abandon
⇒ Genie Logiciel
Cedric Buche (ENIB) POO 20 novembre 2013 7 / 135
Introduction Introduction a UML
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 8 / 135
Introduction Introduction a UML
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 9 / 135
Introduction Introduction a UML
UML : Unified Modeling Language
Langage graphique de modelisation pour
specifier,concevoir,construire,et documenterdes applications informatiques
Synthese des bonnes pratiques de l’ingenierie informatique
Unification de modeles
Standardisation par l’OMG (Object Management Group)
Cedric Buche (ENIB) POO 20 novembre 2013 10 / 135
Introduction Introduction a UML
Objectifs
Fournir un langage visuel et expressif
Fournir des mecanismes d’extension
Etre independant des technologies et langages d’implementation
Fournir une base formelle pour la modelisation
Cedric Buche (ENIB) POO 20 novembre 2013 11 / 135
Introduction Introduction a UML
3 axes de modelisation
Approche classique - projet
1 Fonctionnel
Cahier des charges : diag. cas d’utilisation → scenarios ecritsScenarios formels : diag. seq / comm → objets/classes
2 Statique
classes : diag. classes
3 Dynamique
dynamique chaque objet : diag. etats/transitionsdynamique globale : diag. activites
Cedric Buche (ENIB) POO 20 novembre 2013 12 / 135
Introduction Introduction a UML
Pour quelles taches ?
Conception (� forward engineering �)
→ →
Retro conception (� reverse engineering �)
→
Documentation d’un systeme
→
Cedric Buche (ENIB) POO 20 novembre 2013 13 / 135
Diagramme de classes (4 UC)
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 14 / 135
Diagramme de classes (4 UC)
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 15 / 135
Diagramme de classes (4 UC) Classes
Classe, attribut et operation : notations
nommés
Compartiment
identification, propriétésNom
attribut1attribut2
Compartiment
des attributs
operationB
operationA
operationC
Compartiment
des opérations
nomElement1
nomCompartiment
nomElement2
Compartiment(s) optionnels
Cedric Buche (ENIB) POO 20 novembre 2013 16 / 135
Diagramme de classes (4 UC) Classes
Attribut : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 17 / 135
Diagramme de classes (4 UC) Classes
Attribut : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 17 / 135
Diagramme de classes (4 UC) Classes
Attribut : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 17 / 135
Diagramme de classes (4 UC) Classes
Attribut : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 17 / 135
Diagramme de classes (4 UC) Classes
Attribut : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 17 / 135
Diagramme de classes (4 UC) Classes
Attribut : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 17 / 135
Diagramme de classes (4 UC) Classes
Attribut : visibilite
Accessibilite : quels elements peuvent le referencer ?
+ public tout element qui accede a la classe
# protected seul un element de la classe ou de ses des-cendants
- private seul un element de la classe
∼ package seul un element du meme package que laclasse
element : une classe qui reference la classe consideree
Cedric Buche (ENIB) POO 20 novembre 2013 18 / 135
Diagramme de classes (4 UC) Classes
Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 19 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : syntaxe
Cedric Buche (ENIB) POO 20 novembre 2013 20 / 135
Diagramme de classes (4 UC) Classes
Operation : direction des parametres
information que l’objet serveur ne possede pas, mais qui estnecessaire a la realisation de l’operation : direction = in
information necessaire a la realisation de l’operation ettransformee par celle-ci : direction = inout
information produite par l’execution de l’operation, doncinexistante avant ; direction = out ou return
Cedric Buche (ENIB) POO 20 novembre 2013 21 / 135
Diagramme de classes (4 UC) Classes
Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 22 / 135
Diagramme de classes (4 UC) Classes
Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 23 / 135
Diagramme de classes (4 UC) Relations entre classes
Types
Réalisation
Association
Généralisation
Dépendance
Cedric Buche (ENIB) POO 20 novembre 2013 24 / 135
Diagramme de classes (4 UC) Relations entre classes
Relation de dependance entre classes (classifier)
<<use>>A B
client serveur (fournisseur)
Indique une dependance entre les proprietesd’une classe (le client) et une autre classe (le serveur, supplier)
En consequence, une modification du serveur peut affecter lecomportement du client
Exemples :
une operation de la classe A fait appel a une operation de la classe B
une operation de A a comme parametre un objet B
Cedric Buche (ENIB) POO 20 novembre 2013 25 / 135
Diagramme de classes (4 UC) Relations entre classes
Exemple de dependance entre classes
Cedric Buche (ENIB) POO 20 novembre 2013 26 / 135
Diagramme de classes (4 UC) Relations entre classes
Stereotypes de dependance entre classes
access import du contenu d’un autre package
create la classe cree des instances d’une autreclasse
instantiate la methode d’une classe cree des instancesd’une autre
permit donne acces aux elements prives
use un element requiert un autre element
Cedric Buche (ENIB) POO 20 novembre 2013 27 / 135
Diagramme de classes (4 UC) Relations entre classes
Generalisation – specialisation
Généralisation
+ operation1(in arg1: integer)
CA
CB
Spécialisation
+ operation1(in arg1: integer)
redéfinition
d’une opération
A
AA AB
ABA ABB ABC
Héritage
Dérivation
Sous−classe
classe dérivée
Super−classe
Cedric Buche (ENIB) POO 20 novembre 2013 28 / 135
Diagramme de classes (4 UC) Relations entre classes
Generalisation – specialisation : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 29 / 135
Diagramme de classes (4 UC) Relations entre classes
Generalisation : vocabulaire
A est une specialisation de BA est une sous-classe de BA derive de BA herite de B
B est une generalisation de AB est une super-classe de A
Cedric Buche (ENIB) POO 20 novembre 2013 30 / 135
Diagramme de classes (4 UC) Relations entre classes
Association : principe
Cedric Buche (ENIB) POO 20 novembre 2013 31 / 135
Diagramme de classes (4 UC) Relations entre classes
Association : roles
nomRoleBA B
R
nomRoleA
nomRole : indique ce que represente l’ensemble des instances associeesa une instance de la classe par la relation R.L’acces peut etre +, # ou -
nomRoleB nom de l’ensemble des instances de la classe B
qui sont en relation avec 1 instance de la classeA par la relation R.
nomRoleA nom de l’ensemble des instances de la classe A
qui sont en relation avec 1 instance de la classeB par la relation R.
Cedric Buche (ENIB) POO 20 novembre 2013 32 / 135
Diagramme de classes (4 UC) Relations entre classes
Association : multiplicites
multBA B
R
multA
valeurs possibles du cardinal de l’ensemble des instances associees aune instance de la classe par la relation R.
multB cardinal de l’ensemble des instances de la classeB qui sont en relation avec 1 instance de la classeA par la relation R.
multA cardinal de l’ensemble des instances de la classeA qui sont en relation avec 1 instance de la classeB par la relation R.
Cedric Buche (ENIB) POO 20 novembre 2013 33 / 135
Diagramme de classes (4 UC) Relations entre classes
Multiplicite : notation
notation : min .. max
abreg. signification
1..1 1 exactement 10..1 – zero ou un (optionnel)0..* * aucun ou plusieurs1..* – au moins 1
n..m, p – entre n et m ou exactement p
Cedric Buche (ENIB) POO 20 novembre 2013 34 / 135
Diagramme de classes (4 UC) Relations entre classes
Association unidirectionnelle
Cedric Buche (ENIB) POO 20 novembre 2013 35 / 135
Diagramme de classes (4 UC) Relations entre classes
Contraintes sur une association
enseignants
CA CBR
0..1 0..*
collection
{ordered}
Promotion Personne
0..1 2..*
{subset}
delegues
eleves
20..1
Etablissement Personne
*
{or}eleves
*
0..1
ecole
1
residenceAdministrative
Cedric Buche (ENIB) POO 20 novembre 2013 36 / 135
Diagramme de classes (4 UC) Relations entre classes
Types d’association
R1
AgrégationB2A2R2
Agrégat élément
CompositionB3A3 R3
ComposantComposite
AssociationB1A1
Cedric Buche (ENIB) POO 20 novembre 2013 37 / 135
Diagramme de classes (4 UC) Relations entre classes
Agregation
Agregation : association simple
+ contraintes d’integrite
+ graphe acyclique
+ elements partageables
Cedric Buche (ENIB) POO 20 novembre 2013 38 / 135
Diagramme de classes (4 UC) Relations entre classes
Composition
Composition : agregation
+ contrainte de duree de vie
+ composants non partageables
Cedric Buche (ENIB) POO 20 novembre 2013 39 / 135
Diagramme de classes (4 UC) Relations entre classes
Agregation/composition : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 40 / 135
Diagramme de classes (4 UC) Relations entre classes
Agregation/composition : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 41 / 135
Diagramme de classes (4 UC) Relations entre classes
Package
grouper dans des ensembles coherents.
structurer les diagrammes et donnent une vision globale plus claire.
Cedric Buche (ENIB) POO 20 novembre 2013 42 / 135
Diagramme de classes (4 UC) Relations entre classes
Navigation
pkg1
AA
AB
BB
CC
+c10..1 0..1
+op1()#op2()-op3()
#b2
0..1
+b1
0..1
-b3
0..1
#c2
Cedric Buche (ENIB) POO 20 novembre 2013 43 / 135
Diagramme de classes (4 UC) Concepts avances
Classe abstraitePropriete optionnelle d’une classe
Definition :
classe non instanciableensemble de proprietes communes a differentes classesmais partiellement definies.donc, seuls des objets d’une classe derivee sont instanciables
Deux raisons :1 bien que l’instanciation d’un tel objet serait possible cela n’aurait
pas de sensex. Personne – Eleve – Prof
2 au moins une des proprietes de la classe n’est pas definieex. Shape operation draw
Notation :
<< abstract >> : tagged-value placee apres le nom de la classeNomClass : en italique
Cedric Buche (ENIB) POO 20 novembre 2013 44 / 135
Diagramme de classes (4 UC) Concepts avances
Attribut derive
sa valeur se calcule a partir d’autres proprietes de la classe(attributs ou autres)
symbolises par l’ajout d’un � / � devant leur nom
Cedric Buche (ENIB) POO 20 novembre 2013 45 / 135
Diagramme de classes (4 UC) Concepts avances
Interface
+ operationB
+ attribut1+ attribut2
être maintenues
signal1
reception
signal2
éventuellement un protocole+ description de services
<<interface>>Nom
Variables d’état devant
Services+ operationA
Cedric Buche (ENIB) POO 20 novembre 2013 46 / 135
Diagramme de classes (4 UC) Concepts avances
Relation de realisation : entre classes et interfaces
realisation
CAIB
<<interface>>
service1service2
service2service1
operationA
attr1
Cedric Buche (ENIB) POO 20 novembre 2013 47 / 135
Diagramme de classes (4 UC) Concepts avances
Interface : Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 48 / 135
Diagramme de classes (4 UC) Concepts avances
Relations avec une interface
I7
<<interface>>I1
I2<<interface>>
<<interface>>
<<interface>>
<<interface>>
<<interface>>
I2
<<interface>>I3 I4
CA I5 CA I5
<<interface>>
I3I4
I1
CB CBI6 I6
I7 CDCC CD CC
Cedric Buche (ENIB) POO 20 novembre 2013 49 / 135
Diagramme de classes (4 UC) Concepts avances
Interface : exemple
saisie mot de passe
<< uses >>
Password
Ilog
description symbolique de l’interface
source de l’interface
symbole de l’interface
lien d’utilisation
Cedric Buche (ENIB) POO 20 novembre 2013 50 / 135
Diagramme de classes (4 UC) Concepts avances
Classe–associationcas particuliers d’association
Classe−association
AmB
B
RmA
rA rB
C
L’association entre les classes A et B est realisee par un objet de laclasse C (sous sa responsabilite)
la classe C a des proprietes qui lui sont propres(attributs, operations...)
Cedric Buche (ENIB) POO 20 novembre 2013 51 / 135
Diagramme de classes (4 UC) Concepts avances
Classe–associationexemple
Cedric Buche (ENIB) POO 20 novembre 2013 52 / 135
Diagramme de classes (4 UC) Concepts avances
Association qualifiee
R
A
mA
rA
BvaleurClé: TypeClémB
rB
Cle : attribut de la relation R permettant de definir (qualifier) lesous-ensemble des instances de la classe B (role rB) associees a 1
instance de la classe A
le couple (Instance de A, valeur Cle) identifie lesous-ensemble rB.
Multiplicite : mB = cardinal de rB
Exemple : annuaire inverse
Cedric Buche (ENIB) POO 20 novembre 2013 53 / 135
Diagramme de classes (4 UC) Concepts avances
Association qualifiee : exemple
Entreprise
Personne
emploie
1 .. *
1 .. *
sans qualifiant
Personne
emploie
1 .. *
avec qualifiant
1 .. *
fonction
Entreprise
Fichier
Repertoire
Fichier
contient
1
avec qualifiant
Repertoire
contient
1 .. *
*
sans qualifiant
nom fich
*
Cedric Buche (ENIB) POO 20 novembre 2013 54 / 135
Diagramme de classes (4 UC) Concepts avances
Association qualifieeexemple
Cedric Buche (ENIB) POO 20 novembre 2013 55 / 135
Diagramme de classes (4 UC) Concepts avances
Association qualifieeexemple
Cedric Buche (ENIB) POO 20 novembre 2013 56 / 135
Diagramme de classes (4 UC) Elaboration
Demarche pour batir une diagramme de classes (1/2)
1 Trouver les classes du domaine etudie
En collaboration avec un expert du domaine.Les classes correspondent generalement a des concepts ou dessubstantifs du domaine.
2 Trouver les associations entre classes
Les associations correspondent souvent a des verbes, ou desconstructions verbales, mettant en relation plusieurs classes, comme� est compose de �, � pilote �, � travaille pour �.Attention, mefiez vous de certains attributs qui sont en realite desrelations entre classes.
Cedric Buche (ENIB) POO 20 novembre 2013 57 / 135
Diagramme de classes (4 UC) Elaboration
Demarche pour batir une diagramme de classes (2/2)
3 Trouver les attributs des classes
Les attributs correspondent souvent a des substantifs, ou desgroupes nominaux, tels que � la masse d’une voiture � ou� le montant d’une transaction �.Les adjectifs et les valeurs correspondent souvent a des valeursd’attributs.
4 Organiser et simplifier le modele
En eliminant les classes redondantes et en utilisant l’heritage.
5 Verifier les chemins d’acces aux classes
6 Iterer et raffiner le modele
Un modele est rarement correct des sa premiere construction.
Cedric Buche (ENIB) POO 20 novembre 2013 58 / 135
Diagramme de cas d’utilisation (1 UC)
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 59 / 135
Diagramme de cas d’utilisation (1 UC)
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 60 / 135
Diagramme de cas d’utilisation (1 UC) Introduction
Exprimer les besoins
Comment donner un moyen simple d’exprimer les besoinsd’utilisateurs non informaticiens ?
Premiere etape UML d’analyse d’un systeme
Cedric Buche (ENIB) POO 20 novembre 2013 61 / 135
Diagramme de cas d’utilisation (1 UC) Introduction
Exigences fonctionnelles
Modele construit en phase de definition des exigences fonctionnelleset enrichi pendant la phase d’analyse en utilisant d’autres modeles(entre-autres les modeles d’interaction)
Objectifs :
1 identifier les fonctionnalites du logiciel
2 en definir le perimetre
3 identifier les elements externes en interaction directe
Cedric Buche (ENIB) POO 20 novembre 2013 62 / 135
Diagramme de cas d’utilisation (1 UC) Elements des diagrammes
Acteur
Definition :
role joue par une entite externe qui interagit avec le systemeil peut consulter et/ou modifier l’etat du systeme par messages
Comment les identifier ?
utilisateurs humainssystemes connexes qui interagissent egalement avec le systeme
Comment les representer ?
Acteur3
<<actor>>Acteur3
symbole
Acteur1
stick man
mot−clef
Exemple : Client, Conseiller financier, SI Banque ...Cedric Buche (ENIB) POO 20 novembre 2013 63 / 135
Diagramme de cas d’utilisation (1 UC) Elements des diagrammes
Cas d’utilisation
Definition :
Sequences d’actions realisees par le systeme (resultat observablepour un acteur)Comportement attendu (6= mode de realisation) :
ce que le futur devra fairepas comment il le fera
Cedric Buche (ENIB) POO 20 novembre 2013 64 / 135
Diagramme de cas d’utilisation (1 UC) Elements des diagrammes
Cas d’utilisation
Comment les identifier ?
Ensemble des cas utilisation == exigences fonctionnelles du systemeUn cas == fonction metier selon le point de vue des acteursPour chaque acteur :
rechercher ses utilisations metiersdeterminer dans le cahier des charges les services attendus
Nommez les cas d’utilisation (point de vue acteur) :verbe a l’infinitif + complement
Comment les representer ?
Exemple : Consulter un compte, Retirer de l’argent, Deposer un cheque...
Cedric Buche (ENIB) POO 20 novembre 2013 65 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre acteurs et cas d’utilisation
Cas d’utilisation et acteurs
Nom_sujet
Nom_acteur_1 Nom_acteur_2
Nom_cas_utilisation_1
Nom_cas_utilisation_2
Acteur :element externe en interaction directe avec le sujet
Cas d’utilisation :ensemble fonctionnel coherent, identifiable exterieurementet fourni par un classeur (le sujet)
Association Acteur – Cas :chemin de communication indiquant la participation de l’acteura la realisation du cas
Cedric Buche (ENIB) POO 20 novembre 2013 66 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre acteurs et cas d’utilisation
Association : Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 67 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre acteurs et cas d’utilisation
Acteurs principaux et secondaires
Un acteur est qualifie de principal pour un cas d’utilisationlorsque ce cas rend service a cet acteur.
Les autres acteurs sont alors qualifies de secondaires.
Un cas d’utilisation a au plus un acteur principal.
Le stereotype � primary � vient orner l’association reliant un casd’utilisation a son acteur principal
Le stereotype � secondary � est utilise pour les acteurs secondaires
Cedric Buche (ENIB) POO 20 novembre 2013 68 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre acteurs et cas d’utilisation
Acteurs principaux et secondaires : Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 69 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Types et representation
CB3
CA1 CB1<<include>>
CA2 CB2<<extend>>
CA3
CA1 inclut CB11 realisation de CA1
⇒ 1 realisation de CB1
CA2 etend CB2
dans un certain contexteSelon le contexte,on realise soit CA2, soit CB2
CA3 specialise CB3
Selon le contexte,on realise soit CA3, soit CB3
Cedric Buche (ENIB) POO 20 novembre 2013 70 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Exemple relation d’inclusion
Le cas inclus est ajoute obligatoirement au cas de base
Cedric Buche (ENIB) POO 20 novembre 2013 71 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Exemple relation d’inclusion
Identifier une partie commune aux differents cas d’utilisation et de lafactoriser dans un nouveau cas inclus dans ces derniers.
Cedric Buche (ENIB) POO 20 novembre 2013 72 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Exemple relation d’extension
Enrichir un cas d’utilisation par un autre, cependant, cetenrichissement est optionnel.
Cedric Buche (ENIB) POO 20 novembre 2013 73 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Exemple relation d’extension
L’extension se fait dans le cas d’utilisation de base, en un point precisappele point d’extension
Cedric Buche (ENIB) POO 20 novembre 2013 74 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Exemple relation Generalisation/Specialisation
Formaliser les variations importantes sur le meme cas d’utilisation
Cedric Buche (ENIB) POO 20 novembre 2013 75 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre cas d’utilisation
Exemple complet
Cedric Buche (ENIB) POO 20 novembre 2013 76 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre acteurs
Generalisation
La seule relation possible entre deux acteurs est la generalisation
un acteur A est une generalisation d’un acteur B si l’acteur A peutetre substitue par l’acteur B
tous les cas d’utilisation accessibles a A le sont aussi a B, maisl’inverse n’est pas vrai.
Cedric Buche (ENIB) POO 20 novembre 2013 77 / 135
Diagramme de cas d’utilisation (1 UC) Relations entre acteurs
Generalisation : Exemple
Cedric Buche (ENIB) POO 20 novembre 2013 78 / 135
Diagramme de cas d’utilisation (1 UC) Scenarios : description textuelle
Scenario
Definition :succession particuliere d’enchaınements s’executant du debut a lafin du cas
Un cas d’utilisation contient :
un scenario nominalplusieurs scenarios alternatifs (qui se terminent normalement)plusieurs scenarios d’erreur (qui se terminent par un echec)
Cedric Buche (ENIB) POO 20 novembre 2013 79 / 135
Diagramme de cas d’utilisation (1 UC) Scenarios : description textuelle
En pratique ...
La fiche de description textuelle d’un cas d’utilisation n’est pasnormalisee...
Cependant, on peut utiliser la structuration suivante :
Sommaire d’identifica-tion (obligatoire)
Inclut titre, resume, dates decreation et de modification, version,responsable, acteurs ...
Description desscenarios (obligatoire)
Decrit le scenario nominal, lesscenarios d’erreur, les pre/post-conditions
Exigences non-fonctionnelles (op-tionel)
Ajoute, si c’est pertinent, les infor-mations suivantes : frequence ; dis-ponibilte, fiabilite, confidentialite ...
Cedric Buche (ENIB) POO 20 novembre 2013 80 / 135
Diagramme de cas d’utilisation (1 UC) Scenarios : description textuelle
Exemple scenario
Sommaire Scenario nominal � Reserver un vehicule �
Description 1. Le client saisit son code et son login d’identification2. Le systeme verifie le code et le login d’identification3. Le systeme demande au client de saisir les informations surla reservation4. Le client saisit les informations sur la reservation5. Le systeme interroge l’acteur systeme bancaire pour verifierl’acompte6. Le systeme bancaire donne une reponse favorable7. Le systeme envoie au client, un message de confirmation dela demande
Cedric Buche (ENIB) POO 20 novembre 2013 81 / 135
Diagramme de cas d’utilisation (1 UC) Scenarios : description textuelle
Exemple scenario
Sommaire Scenario alternatif � Reserver un vehicule �
Description SA1 : code d’identification errone pour la premiere ou ladeuxieme foisSA1 demarre au point 2 du scenario nominal
3. Le systeme indique au client que le code est errone, pour lapremiere ou la deuxieme fois.
Le scenario nominal reprend au point 1.
Cedric Buche (ENIB) POO 20 novembre 2013 82 / 135
Diagramme de cas d’utilisation (1 UC) Scenarios : description textuelle
Exemple scenario
Sommaire Scenario d’erreur � Reserver un vehicule �
Description SE1 : code d’identification errone pour la troisieme foisSE1 demarre au point 2 du scenario nominal
3. Le systeme indique au client que le code est errone pour latroisieme fois.
Le cas d’utilisation se termine en echec (l’objectif n’est pas at-teint).
Cedric Buche (ENIB) POO 20 novembre 2013 83 / 135
Diagramme de cas d’utilisation (1 UC) Utilisation
Quand utiliser les cas d’utilisation ?
En phase d’elaboration
En discutant avec les utilisateurs
Remarque : Un projet de 10 annees-hommes devrait comprendreenviron 12 cas d’utilisation 1
1. Resulat issu d’une commission de l’OOPSLACedric Buche (ENIB) POO 20 novembre 2013 84 / 135
Diagrammes d’interaction (2 UC)
Plan
1 Introduction
2 Diagramme de classes (4 UC)
3 Diagramme de cas d’utilisation (1 UC)
4 Diagrammes d’interaction (2 UC)
Cedric Buche (ENIB) POO 20 novembre 2013 85 / 135
Diagrammes d’interaction (2 UC)
Plan
Cedric Buche (ENIB) POO 20 novembre 2013 86 / 135
Diagrammes d’interaction (2 UC) Introduction
Du diag. de cas d’utilisation au diag. d’interactions
diag. cas d’utilisation → scenarios
scenario → diag. seq/comm
Cedric Buche (ENIB) POO 20 novembre 2013 87 / 135
Diagrammes d’interaction (2 UC) Introduction
Cas d’utilisation Piloter
scenario nominal pourrait etre : un pilote demarre une voiture cequi allume un moteur.
Comment formaliser les communications entre instances(demarrer, allumer) ? → diag. de communication.
Comment formaliser le sequencement des interactions (1 :demarrer ; 2 : allumer) ? → diag. sequence.
Avant cela, il faut representer les instances (objets) (un pilote, unevoiture, un moteur)
Cedric Buche (ENIB) POO 20 novembre 2013 88 / 135
Diagrammes d’interaction (2 UC) Introduction
Objet : instance de classifier
nom d’instance : nom de classe
Exemple
jean : Personne
pierre : Personne
Cedric Buche (ENIB) POO 20 novembre 2013 89 / 135
Diagrammes d’interaction (2 UC) Introduction
Objets : instances de classifier
:NomActeur
nomObjet:nomClasse
attr1 = valeur1
nomObjet: :NomClasse
<<stereotype>>
:NomClasse
nomObjet:NomClasse
nomObjet:nomClasse
[etat]
Cedric Buche (ENIB) POO 20 novembre 2013 90 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : duree de vie et flots
lignes de vie
message
objets
flots d’exécution
objet1: objet2:
tem
ps
(logiq
ue)
: s
équen
cem
ent
Cedric Buche (ENIB) POO 20 novembre 2013 91 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Messages
l’envoi d’un signal ;
l’invocation d’une operation ;
la creation ou la destruction d’une instance.
Cedric Buche (ENIB) POO 20 novembre 2013 92 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Messages asynchrones
Cedric Buche (ENIB) POO 20 novembre 2013 93 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Messages synchrones
Cedric Buche (ENIB) POO 20 novembre 2013 94 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Messages de creation et destruction d’instance
Cedric Buche (ENIB) POO 20 novembre 2013 95 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Evenements et messages
Cedric Buche (ENIB) POO 20 novembre 2013 96 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Syntaxe des messages et des reponses
Cedric Buche (ENIB) POO 20 novembre 2013 97 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Syntaxe des messages et des reponses
Cedric Buche (ENIB) POO 20 novembre 2013 98 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Execution de methode et objet actif
Cedric Buche (ENIB) POO 20 novembre 2013 99 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Execution de methode et objet actif
Cedric Buche (ENIB) POO 20 novembre 2013 100 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : fragements d’interactioncombines
Articulation d’interactions par des operateurs :
choix et boucle : alternative, option, break, loop
controle d’envoi en parallele de messages : parallel, criticalregion
controle d’envoi de messages : ignore, consider, assertion,negative
ordre d’envoi des messages : weak sequencing, strict sequencing
Cedric Buche (ENIB) POO 20 novembre 2013 101 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : structures de controle
[else]
sd nom seq
ref seqA
alt
ref
ref
[condition]
Cedric Buche (ENIB) POO 20 novembre 2013 102 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : structures de controle(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 103 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : structures de controle(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 104 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : structures de controle(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 105 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : structures de controle(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 106 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : structures de controle(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 107 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : parallelisme et sequencement
strict
sd nom seq
par
Cedric Buche (ENIB) POO 20 novembre 2013 108 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : parallelisme et sequencement
Cedric Buche (ENIB) POO 20 novembre 2013 109 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : parallelisme et sequencement(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 110 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : parallelisme et sequencement(exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 111 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : section critique (exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 112 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : Ignorer (exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 113 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : Considerer (exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 114 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : Negatif (exemple)
Cedric Buche (ENIB) POO 20 novembre 2013 115 / 135
Diagrammes d’interaction (2 UC) Diagramme de sequence
Diagramme de sequence : invariants d’etat
msg2
obj1 obj3obj2
msg1
sd nom seq
etat2
etat1
Cedric Buche (ENIB) POO 20 novembre 2013 116 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : Lignes de vie
Les lignes de vie sont representees par des rectangles contenantune etiquette dont la syntaxe est :
[<nom du role>] : [<Nom du type>]
Cedric Buche (ENIB) POO 20 novembre 2013 117 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : Connecteurs
Les relations entre les lignes de vie sont appelees connecteurs
se represente par un trait plein reliant deux lignes de viesles extremites peuvent etre ornees de multiplicites.
Cedric Buche (ENIB) POO 20 novembre 2013 118 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Communication : interactions entre objets par messages
struct. controle
message
(arguments)
arg1, arg2
évaluable dans
prédécesseur condition séquence valeur_retour := nom
seq1, seq2/
liste labels séquence /
expression logique
récurrencelabel
nombre (séq.)
nom (parall.)
*[iteration]
*[condition] contexte courant
Cedric Buche (ENIB) POO 20 novembre 2013 119 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Messages : structures de controle — exemples
condition recur. message
[x > 0] : msg()
∗ : msg()
∗ [x > 0] : msg()
[x > 0] ∗ [i := 1..n] : msg()
Cedric Buche (ENIB) POO 20 novembre 2013 120 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 121 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 122 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 123 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 124 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 125 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 126 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 127 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 128 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 129 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 130 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 131 / 135
Diagrammes d’interaction (2 UC) Diagramme de communication
Diagramme de communication : exemple
Cedric Buche (ENIB) POO 20 novembre 2013 132 / 135
Diagrammes d’interaction (2 UC) Lien avec le diagramme de classes
Lien avec le diagramme de classes
diag. cas d’utilisation → scenarios
scenario → diag. seq/comm
diag. seq/comm → diag. classe
Cedric Buche (ENIB) POO 20 novembre 2013 133 / 135
Diagrammes d’interaction (2 UC) Utilisation
Quand utiliser le modele d’interaction ?
Lorsque vous souhaitez visualiser le comportement de plusieursobjets dans un seul cas d’utilisation
Attention
Si vous souhaitez visualisez le comportement d’un meme objetdans plusieurs cas d’utilisation : utiliser le diagrammed’etats-transitions
Si vous souhaitez visualisez un comportement reparti sur plusieurscas d’utilisation : utiliser le diagramme d’activite
Cedric Buche (ENIB) POO 20 novembre 2013 134 / 135
Diagramme d’interactions
Informatique S4-POO
Programmation Orientee Objet— UML —
Cedric Buche
Ecole Nationale d’Ingenieurs de Brest (ENIB)
20 novembre 2013
Cedric Buche (ENIB) POO 20 novembre 2013 135 / 135