Upload
others
View
14
Download
0
Embed Size (px)
Citation preview
UML : diagramme de communication
Achref El Mouelhi
Docteur de l’universite d’Aix-MarseilleChercheur en programmation par contrainte (IA)
Ingenieur en genie logiciel
H & H: Research and Training 1 / 18
Plan
1 Introduction
2 Ligne de vie
3 Connecteur
4 Message
H & H: Research and Training 2 / 18
© Achref EL MOUELHI ©
Introduction
UML
Diagramme de communication?
Un diagramme dynamique d’UML
Appelee diagramme de collaboration dans UML 1
Version simplifiee d’un diagramme de sequence
Permettant aussi de representer les echanges entre les objets(les acteurs)
Un graphe dont
les sommets : les objets
les aretes : les messages echanges
H & H: Research and Training 3 / 18
© Achref EL MOUELHI ©
Introduction
UML
Mots-cles associes
Ligne de vie
Connecteur
Message
H & H: Research and Training 4 / 18
© Achref EL MOUELHI ©
Ligne de vie
UML
Ligne de vie
Exactement comme une ligne de vie dans un diagramme desequence
Rectangle au sommet contenant le nom de type (objet, acteur...)mais sans la ligne verticale pointillee
H & H: Research and Training 5 / 18
© Achref EL MOUELHI ©
Ligne de vie
UML
Plusieurs representations possibles en UML
:TypeActeur nomObjet:NomType :NomType nomObjet:
Exemple
:User :Computer :Printer
L’acteur Vendeur peut etre represente comme un objet.
H & H: Research and Training 6 / 18
© Achref EL MOUELHI ©
Ligne de vie
UML
Plusieurs representations possibles en UML
:TypeActeur nomObjet:NomType :NomType nomObjet:
Exemple
:User :Computer :Printer
L’acteur Vendeur peut etre represente comme un objet.
H & H: Research and Training 6 / 18
© Achref EL MOUELHI ©
Connecteur
UML
Connecteur
Represente par une ligne continue
Definit une communication entre deux lignes de vie
Pouvant etre ornes de multiplicite
H & H: Research and Training 7 / 18
© Achref EL MOUELHI ©
Connecteur
UML
Voici comment modeliser les connecteurs en UML?
:User :Computer :Printer
connecteur
H & H: Research and Training 8 / 18
© Achref EL MOUELHI ©
Message
UML
Message
Associe a un connecteur
Represente par une fleche
en traits pleins et a l’extremite ouverte pour les messagesasynchrones
en traits pleins et a l’extremite pleine pour les messagessynchrones
Pouvant etre accompagne de plusieurs informations
ordre
condition de franchissement
boucle
valeur de retour
H & H: Research and Training 9 / 18
© Achref EL MOUELHI ©
Message
UML
Voici comment modeliser un message dans un diagramme decommunication
:User :Computer :Printer
file=choose()
Explication
file est le fichier choisi par l’utilisateur (la valeur de retour del’operation choose
H & H: Research and Training 10 / 18
© Achref EL MOUELHI ©
Message
UML
Voici comment modeliser un message dans un diagramme decommunication
:User :Computer :Printer
file=choose()
Explication
file est le fichier choisi par l’utilisateur (la valeur de retour del’operation choose
H & H: Research and Training 10 / 18
© Achref EL MOUELHI ©
Message
UML
La valeur de retour est optionnelle et peut etre utilisee par unautre message
:User :Computer :Printer
file=choose() print(file)
Question
Comment connaıtre l’ordre?
choose ensuite print, ou
print puis choose
H & H: Research and Training 11 / 18
© Achref EL MOUELHI ©
Message
UML
La valeur de retour est optionnelle et peut etre utilisee par unautre message
:User :Computer :Printer
file=choose() print(file)
Question
Comment connaıtre l’ordre?
choose ensuite print, ou
print puis choose
H & H: Research and Training 11 / 18
© Achref EL MOUELHI ©
Message
UML
On peut aussi ordonner les messages
:User :Computer :Printer
1: file=choose() 2: print(file)
Et si l’imprimante est non disponible?
Il faut definir une condition de franchissement
H & H: Research and Training 12 / 18
© Achref EL MOUELHI ©
Message
UML
On peut aussi ordonner les messages
:User :Computer :Printer
1: file=choose() 2: print(file)
Et si l’imprimante est non disponible?
Il faut definir une condition de franchissement
H & H: Research and Training 12 / 18
© Achref EL MOUELHI ©
Message
UML
voici comment on definit les conditions de franchissement
:User :Computer :Printer
:Queue
1: file=choose()
[available printer]
3: print(file)
2:ad
d(file)
H & H: Research and Training 13 / 18
© Achref EL MOUELHI ©
Message
UML
Un objet peut envoyer un message a lui meme
:User :Computer :Printer
:Queue
1: file=choose()
[available printer]
3: print(file)
2:ad
d(file)
4: start()
H & H: Research and Training 14 / 18
© Achref EL MOUELHI ©
Message
UML
Il est possible d’envoyer deux messages simultanement
:User :Computer :Printer
:Queue
1: file=choose()
[available printer]
3: print(file)
5.a: remove(file)
5.b: inform()
2:ad
d(file)
4: start()
H & H: Research and Training 15 / 18
© Achref EL MOUELHI ©
Message
UML
Remarques
deux messages simultanes doivent avoir le meme numero desequence (dans notre exemple 5) suffixes de deux lettresdifferentes
un message avec une fleche en pointille est utilisee pour lesmessages de retour
H & H: Research and Training 16 / 18
© Achref EL MOUELHI ©
Message
Il est possible de preciser le nombre de repetition d’un message
:User :Computer :Printer
:Queue
1 * : file=choose()
[available printer]
3: print(file)
5.a: remove(file)
5.b: inform()
2:ad
d(file)
4: start()
Remarques
* : plusieurs fois
* [i=1..3] : repete trois fois (une boucle allant de 1 a trois)
H & H: Research and Training 17 / 18
© Achref EL MOUELHI ©
Message
UML
On peut aussi definir un contexte
Systeme d’impression
:User :Computer :Printer
:Queue
1: file=choose()
[available printer]
3: print(file)
5.a: remove(file)
5.b: inform()
2:ad
d(file)
4: start()
H & H: Research and Training 18 / 18