uml : diagramme de communication...ligne de vie uml ligne de vie exactement comme une ligne de vie...

22
UML : diagramme de communication Achref El Mouelhi Docteur de l’universit ´ e d’Aix-Marseille Chercheur en programmation par contrainte (IA) Ing ´ enieur en g ´ enie logiciel [email protected] H & H: Research and Training 1 / 18

Upload: others

Post on 10-Oct-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

UML : diagramme de communication

Achref El Mouelhi

Docteur de l’universite d’Aix-MarseilleChercheur en programmation par contrainte (IA)

Ingenieur en genie logiciel

[email protected]

H & H: Research and Training 1 / 18

Page 2: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

Plan

1 Introduction

2 Ligne de vie

3 Connecteur

4 Message

H & H: Research and Training 2 / 18

Page 3: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 4: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© Achref EL MOUELHI ©

Introduction

UML

Mots-cles associes

Ligne de vie

Connecteur

Message

H & H: Research and Training 4 / 18

Page 5: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 6: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 7: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 8: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 9: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© Achref EL MOUELHI ©

Connecteur

UML

Voici comment modeliser les connecteurs en UML?

:User :Computer :Printer

connecteur

H & H: Research and Training 8 / 18

Page 10: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 11: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 12: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 13: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 14: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 15: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 16: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 17: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 18: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 19: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 20: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 21: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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

Page 22: UML : diagramme de communication...Ligne de vie UML Ligne de vie Exactement comme une ligne de vie dans un diagramme de sequence´ Rectangle au sommet contenant le nom de type (objet,

© 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