-
Cedric Dumoulin
Compilation de présentations de :J li V hJulie Vachon
Jeanine LeguyYannick PriéYannick Prié
1
-
Les diagrammes dynamiquesg y q Diagrammes d’interactions
Sé Séquences Communication (uml1 == Collaboration)Di d’é i i Diagrammes d’états transitions
Diagrammes d’activités
2
-
Diagramme de séquenceDiagramme de communicationg
3
-
Diagrammes d’interactions g Les diagrammes d’interactions
Ce sont des diagrammes d’objetsCe sont des diagrammes dobjets Ils communiquent par envoi de messages. Ils mettent l’accent sur les flots de contrôle d’un objet à
un autre.
Diagramme de séquence Diagramme de séquence Met en exergue le déroulement séquentiel
Diagramme de communication Met en exergue les échanges de messages
(communication)( )
4
-
Diagrammes d’interactionsg Permet de décrire (entre autres) les cas d’utilisationd utilisation met en évidence les interactions entre les instances des classes (objets) du logiciel
U d’ ili i é li é Un cas d’utilisation est réalisé par une collaboration Collaboration = Ensemble d’objets qui s’échangent des Collaboration = Ensemble dobjets qui s échangent des messages et travaillent ensemble pour accomplir une tâche.I i É h d’ d bj Interaction = Échange d’un message entre deux objets du logiciel.
5
-
Diagrammes d’interactionsg UML propose deux type de diagrammes d’interaction
Diagramme de séquence interactions projetées sur une ligne de temps
Diagramme de communication g interactions projetées sur un diagramme d’objets
Pour décrire les scénarios des cas d’utilisation on Pour décrire les scénarios des cas d utilisation on privilégiera Analyse : diagrammes de séquence (peu détaillé), d’activités, ou
d’états.d états. Conception : diagrammes de séquence ou de communication.
6
-
Utilisation des interactions • Etudier/spécifier le comportement / p p
du système dans sa globalité au sein d'un cas d'utilisation se concentrer sur les événements du système considéré comme boîte
noire noire diagramme de séquence système (DSS vue plus tard)
de plusieurs objets au sein d'un cas d'utilisation réalisations de CU comme des interactions dans une société d'objets réalisations de CU comme des interactions dans une société d objets
diagramme de séquence de fonctionnement conseil : concevoir diagrammes de classes et d'interaction en même temps même temps
Illustrer/étudier un fonctionnement diagramme qui traverse les couches : de l'IHM aux données
é i é i i rétro‐ingénierie
7
-
8
-
Diagrammes de séquenceg q Montre, sous la forme de séquences ordonnées dans le temps les interactions entre objetstemps, les interactions entre objets
Permet de décrire un comportement
10
-
Les diagrammes de séquenceLes diagrammes de séquenceUtilisation
Utilisés dans différents contextes: Utilisés dans différents contextes: description des cas d’utilisation modélisation d’une opération modélisation d une opération,
en particulier quand cette opération met en œuvre des messages asynchrones et des instances de classes actives (pas traité dans ce cours)traité dans ce cours).
11
-
Les diagrammes de séquence
-
Messages dans les diagrammes deMessages dans les diagrammes de séquencesq res = message(arguments) E h d Echange de messages flèches d'appel synchrone
bl d l'é d l é blocage de l'émetteur en attendant la réponse
flèche d'appel asynchrone d' tt t d t it d l tâ h pas d'attente du retour, poursuite de la tâche
Retour M d é ti Message de création
M d d t ti Message de destruction
13
-
Caractéristiquesq Diagramme de séquence
Montre la séquence dans le temps des interactions entre les Montre la séquence dans le temps des interactions entre les objets participant à un scénario.
Un diagramme de séquence a deux dimensions Verticale : le temps
L'ordre d'envoi d'un message est déterminé par sa position sur l'axe vertical du diagramme ; le temps s'écoule « de haut en bas »
Horizontale : les objets (et les acteurs) L’ordre de disposition des objets sur l'axe horizontal est sans
importancep
15
-
CaractéristiquesÉléments (graphiques) de baseÉléments (graphiques) de base
Les objets qui interagissent dans le scénario R é t ti hi d l li d i d h Représentation graphique de la ligne de vie de chaque objet et de ses activations
Les différents types de messages envoyés Les différents types de messages envoyés (simple, synchrone, asynchrone)
Les indications de contrôle (branchement conditionnel et itération, création et destruction
d’objets, délais de transmission, contraintes temporelles)
16
-
Interactions classes associationsInteractions, classes, associations, opérationsp
Liens associationsM Messages Opérations Dépendances
? Exercice : dessiner le
?Exercice : dessiner le diagramme de classes correspondant
17
-
Interactions classes associationsInteractions, classes, associations, opérationsp
Liens associationsM Messages Opérations Dépendances
? Exercice : dessiner le
?Exercice : dessiner le diagramme de classes correspondant
18
-
Option et AlternativesBoucle
19
-
Les cadres d’interactions Permettent d’exprimer dans les diagrammes de séquences:séquences: des alternatives (opt[cond] et alt) D b l (l [ i d] Des boucles (loop[min, max, cond]
20
-
L’alternative optionnellep opt[condition]
E é té d l diti t i Exécuté quand la condition est vraie
21
-
L’alternative Alt
[condition 1][ ] [condition 2] [else]
[condition 1]
[condition 1]
[else]
22
-
La boucle Loop[min, max, condition]
23
-
24
-
Co‐conception des classesCo‐conception des classes et des interactions Les objets utilisés dans les interactions pour réaliser les scénarios proviennent
d l déjà dé it d l di d l l l i éti des classes déjà décrites dans le diagramme de classes, le glossaire métier des besoins nouveaux en objets pour l'interaction spécifique
A partir des diagrammes d'interaction, on complète le diagramme de classes précisions (attribut méthodes) précisions (attribut, méthodes) nouvelles classes
etc. On essaye de réaliser tous les scénarios en convergeant vers un diagramme de y g g
classes stables
Diagrammede classes
Diagrammede classes
Diagrammede classes
Diagramme Diagramme
25
gd’interactions
gd’interactions
-
Les diagrammes de séquenceLes diagrammes de séquence UtilisationLes diagrammes de séquence permettent de g q pdécrire des scénarios. Ils sont axés sur les classes et leurs interactions Ils permettent de découvrir de nouvelles classes
26
-
Trouver les objets du systèmej y Par de la description d’un scénario Fait un diagramme de séquence avecg q
Le/les acteurs Le système C di ’ l l DSS (Di S S t ) Ce diagramme s’appel le DSS (Diagram Sequence System)
Puis, on décompose chaque message En appel de message sur d’autre objets pp g j introduction de nouveau objets et de nouvelle opération
é l h à défi i1. Déclenchement à un moment défini.2. Le système marque l’enchère « close » => aucune offre la
concernant ne peut plus être acceptée.3. Le système récupère la dernière offre4. le système soumet au service de crédit le paiement des charges5. le système envoie un message à l’acheteur pour lui dire qu’il a
28
gagné l’enchère6. le système envoie un message au vendeur pour lui dire que
l’enchère est close, à quel prix et que son compte va être débité.7. Fin du scénario
-
Introduction des diagrammes de séquence à partir des scénarioRecherche de nouvelles classes et opérationsp
29
-
Exemple : CloreEnchere1. Déclenchement à un moment défini.2. Le système marque l’enchère « close » =>
aucune offre la concernant ne peut plus être
p
acceptée.3. Le système récupère la dernière offre4. le système soumet au service de crédit le
paiement des chargesp g5. le système envoie un message à l’acheteur pour
lui dire qu’il a gagné l’enchère6. le système envoie un message au vendeur pour
lui dire que l’enchère est close, à quel prix et q , q pque son compte va être débité.
7. Fin du scénario
Prend en charge le CU CloreEnchere, nommons l’objet et sa classeCloreEnchereCTR
-
Exemple : CloreEnchereExemple : CloreEnchere Diagrammes de séquenceg q
31
-
Exemple : CloreEnchere pDiagramme de classes après
-
Exemple : CloreEncherepRaffinement du message● Raffinement du message « envoyerMail »
● scénario:● cloreEnchereCTR crée un texte formaté à trous● cloreEnchereCTR ajoute les infos spécifiques à l'enchère● cloreEnchereCTR recherche l'adresse mail du destinataire● cloreEnchereCTR envoie le texte au destinataire via le serveur de mail
•Approche plus objet:•Créer une classe se chargeant de la création et de l’envoi du message (a faire)
-
Exemple : CloreEnchere pDiagramme de classes après
-
Exemple : CloreEncherepDiagramme de classes après
-
Structuration en paquetage● Les classes se multiplient => il faut structurer!
-
(ex uml1.x Collaboration)
39
-
Diagrammes de communicationag a es de co u cat o Diagramme illustrant les interactions entre les instances d’un logiciel en mettant l’accent sur l’organisationd un logiciel en mettant l accent sur l organisationstructurelle des objets participants (et non pas sur l’ordre temporel des messages)
Diagramme généralement utilisé pour Décrire en détail le déroulement d’un cas d’utilisation,
i e décrire la conception d’un scénario d’un cas d’utilisationi.e., décrire la conception d un scénario d un cas d utilisation communication
Ensemble d’instances qui interagissent ensemble pour réaliser une tâche communetâche commune
Ensemble de liens (pertinents) existant entre ces instances
40
-
Diagrammes de communication Un diagrammes de communication est un d d’ bdiagrammes d’objets communicants.
Il est composé : d’objetsdobjets de liens entre objets avec message et typéyp
de Notes, contraintes,… Les messages peuvent être numérotés.g p
-
Communication Deux parties : statique et dynamique Partie statique
Illustre les instance (des classes) et les liens(instances d’associations) impliqués dans la réalisation d’une communication donnée.
43
-
Communication Partie dynamique
Ill t l i t ti (l é l Illustre les interactions (les messages envoyés par les instances) nécessaires pour réaliser la tâche décrite par la communicationla communication
44
-
CommunicationCommunicationPartie statique du diagrammeq g (i.e., sans interactions) Éléments composant une communication Éléments composant une communication
Objets : instance d’une classe Rectangle avec étiquette de la forme nomObjet:nomClasse ou
Cl:nomClasse Uniquement les instances pertinentes, i.e., interagissant dans le cas
d’utilisation ou le scénarioLi i t d’ i ti d di d l Liens : instances d’associations du diagramme de classes Uniquement les instances d’associations pertinentes pour la
communicationA i i d’ ili i é i Acteurs : acteurs participant au cas d’utilisation ou scénario L’acteur initiant un cas d’utilisation est appelé initiateur
45
-
CommunicationPartie dynamique du diagrammePartie dynamique du diagramme Ajout des messages sur les liens
Indique les messages à côté des liens appropriés sur le Indique les messages à côté des liens appropriés sur le diagramme de communication La flèche est issue de l’émetteur et pointe vers le destinataire
L’ i i d d l di d l d i ê L’association correspondante dans le diagramme de classes doit être navigable dans la même direction
Le destinataire doit pouvoir comprendre le message (opération )appropriée ?)
46
-
Représentation des interactionsp Numéro du message : en mode procédural, lorsqu’un objet O reçoit un message, le numéro de ce message est utilisé
f l lcomme préfixe pour tous les messages envoyés par O par la suite… jusqu’à ce que O réponde à ce message.
En général, les messages de retour n’apparaissent pasEn général, les messages de retour napparaissent pasexplicitement dans les diagrammes de communication
Types de messagesS h Synchrone
Asynchrone Aussi : garde, itération, etc.g
47
-
Représentation des interactionsRemarquesRemarques Comme le diagramme de séquence, le diagramme de communication permet de découvrir de de communication permet de découvrir de nouvelles propriétés aux classes. Il peut aider à compléter et développer le diagramme de classesp pp g Ajout d’opérations, d’associations, etc.
Le diagramme de classes doit être mis à jour pour Le diagramme de classes doit être mis à jour pour demeurer « correct » et « cohérent » avec les diagrammes de séquence et de communicationg q
48
-
Création et destructionCréation et destruction dynamiquesy q Ajout d’une contrainte ({new} ou {destroyed} ) après l’étiquette dans le rectangle représentant l’instancel étiquette dans le rectangle représentant l instance Si au cours des interactions représentées par le diagramme de communication, une instance est créée puis détruite, on utilise la contrainte {transient}
Utilisation des messages de création et de destruction d’i t d td’instance : new, destroy
49
-
Création et destruction dynamiques ExempleExemple
50
-
Notation utilisée On peut utiliser (comme pour les diagrammes de séquence)séquence) Messages avec garde (condition)
Ex : Ex. : [i=0] 1: a(), [i=1] 1: b()
Messages avec clause itérativeg Ex. :
1: *[i:=1..n] a()
51
-
Notation utiliséeExemple – Message avec gardeExemple Message avec garde
52
-
54
-
Diagrammes d’états transitions IntroductionIntroduction
Permet de décrire le comportement d’une instance d’une classe (ou d’un ensemble d’objets) en fonction des messages reçusP é l ê ili é dé i l’ é i d’ é i d’ Peut également être utilisé pour décrire l’exécution d’une opération, d’un cas d’utilisation, etc.
Diagramme d’état d’un billet de spectacle à vendre sur Internet Diagramme détat d un billet de spectacle à vendre sur Internet
55
-
Principaux conceptsp p État
Transition
Marqueur d’état initial
56
-
Principaux conceptsPrincipaux conceptsÉtat
Décrit un moment de la vie d’une instance
Une instance ne se trouve que dans un seul état à la fois Un état est généralement décrit par un nomg p Toutes les instances d’une classe qui se trouvent dans un même état
réagissent de façon identique aux événements Les instances qui se trouvent dans un état donné, à un moment donnéq
Ont des valeurs d’attributs similaires Attendent un événement particulier Exécutent une activité particulière
En UML, il existe différents types d’état : simple, concurrent,
57
-
Principaux conceptsPrincipaux conceptsTransition Une transition (sortante) définit la réponse d’une instance, dans
un état donné, à un événement donné Les transitions sont étiquetées par un événement et(optionnellement) par une action
é é t / ti Événement : tout ce qui survient et peut affecter une instance
(élément déclencheur de la transition)
événement / action
Action : opération réalisée lorsqu’une transition est réalisée
d’ l l l d lDiagramme d’état pour la classe Exemplaire_de_livre
58
-
Principaux conceptsp p Types d’événements
U é é ê é é Un événement peut être paramétréType
d’événementDescription Syntaxe
d événementAppel / Signal Réception d’un message synchrone (pour lequel
l’émetteur attend une réponse), invocation d’une é ti
op(p1:type, p2:type, …)
opération
Changement Changement de valeur d’une condition when(exp)booléenne, satisfaction soudaine de cette
when(exp),
condition, condition fausse qui devient vraie
Temps Temps absolu atteint ou passage d’un certain after(time) intervalle de temps peut signaler le
after(time)
59
after(time) intervalle de temps, peut signaler le temps écoulé depuis l’entrée dans un état donné
-
Principaux conceptsp p Types d’actions
Les actions peuvent prendre des argumentsType d’action Description Syntaxe
Affectation Assigne une valeur à une variable cible := expression
Appel / Envoi de Invocation (synchrone) d’une opération d’ bj t t t l
opname(arg1, arg2, …)bj t ( 1 2 )message d’un objet, peut retourner une valeur object.opname(arg1, arg2, …)
Création Création d’une nouvelle instance new Cname(arg1, arg2, …)
D t ti D t ti d’ i t bj t d t ()Destruction Destruction d’une instance object.destroy()
Divers Action décrite dans un autre langage [ description ]
Séquence Séquence d’action action1; action2;
60
Séquence Séquence d’action action1; action2; …
-
Actions d’entrée et de sortie Certaines actions peuvent être rattachées à un état au lieu d’une t ititransition Action d’entrée : exécutée chaque fois qu’on entre dans l’état
Notation : entry / actionNotation : entry / action Action de sortie : exécutée chaque fois qu’on sort de l’état
Notation : exit / actionOrdre d’exécution
des actions ?
Diagramme d’état d’un exemplaire de livreDiagramme détat d un exemplaire de livre
61
-
Actions d’entrée et de sortie
62
-
Gardes Une transition peut être conditionnelle à l’évaluation d’une garded une garde
Si la garde est vraie, la transition est réalisée Si la garde est fausse, la transition n’a pas lieuSi la garde est fausse, la transition na pas lieu Notation : événement [garde]
Diagramme d’état d’un livre63
-
Gardes Garde
Expression conditionnelle Expression conditionnelle Évaluée uniquement quand l’événement est déclenché Peut contenir des attributs de l’instance ou des paramètres de
l’l’événement associé Lorsqu’un même événement est associé à plusieurs transitions une garde (condition) peut être ajoutée pour transitions, une garde (condition) peut être ajoutée pour préciser le contexte et déterminer la transition à effectuer
Les gardes associées à un même événement sur les transitions sortantes d’un état donné, doivent être mutuellement exclusives
64
-
Types de transitionsyp Transition externe : transition standard qui engendre un changement d’état et
toutes les actions correspondantes (actions d’entrée et de sortie, ainsi que celles de la transition)celles de la transition)
Transition interne : transition qui n’engendre pas de changement d’état et ne déclenche que les actions associées à cette transition (pas les actions d’entrée et de sortie, cf. figure ci‐dessous)g
Transition de complétion : transition qui n’est pas activée par un événement; est implicitement activée lorsque est atteint la fin d’un flux d’activités
65
-
État compositep État « spécialisé » composé de plusieurs sous‐états
S ét t é ti l Sous‐états séquentiels
S é Sous‐états concurrents
66
-
État composite séquentielp q
Description interne ?
67
-
État compositep Lorsqu’un état composite est activé, un de ses sous états est nécessairement activé
Entrer et sortir d’un état composite Une transition entrant dans un état composite est implicitement
conduite vers son état initial Une transition vers l’état final d’un état composite active
implicitement une transition de complétion sortant de l’état composite
Lorsqu’une transition entre/sort en traversant un ou plusieurs états composites imbriqués, toutes les actions d’entrées/sortie sont exécutéesd entrées/sortie sont exécutées Actions de sortie de l’état le plus interne en premier Actions d’entrées de l’état le plus externe en premier
68
-
État composite (concurrent)p ( )Diagramme d’état d’un cours
69
-
État composite concurrentp Autre notation possible
Di d’ét t d’ Diagramme d’état d’un cours
70
-
Représentation desReprésentation des comportements validesp
Un diagramme d’états doit représenter tous et seulement les états et les transitions valides des seulement les états et les transitions valides des instances d’une classe
Si di d’ét t ét t d é E ’ d Si un diagramme d’état, pour un état donné E, n’a pas de transition étiquetée par un événement X, cela signifie que l’instance n’a pas à réagir à cet événement dans cet éétat.
71
-
Diagrammes d’états transitions Ils sont avant tout centrés sur les états pris par un ensemble d’objetsun ensemble dobjets.
On les utilise pour décrire le comportement d’un ensemble d’objets c'est‐à‐dire décrire d un ensemble dobjets c est à dire décrire l’enchaînement des états par lesquels ces objets peuvent passer durant leur durée de vie en é à d é é t tiréponse à des événements ou actions
Associés à une classe ils permettent de Associés à une classe, ils permettent de visualiser les états possibles que peut prendre une instance de cette classe.
-
Activité Considérons un réveille‐matin simplifié :
t tt l’ l ff on peut mettre l’alarme « on » ou « off » ; quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans s’arrêter ;le réveil sonne sans s arrêter ;
on peut interrompre la sonnerie.
http://fr.scribd.com/doc/25046623/Etudes‐de‐Cas‐Et‐E i C i P 8Exercices‐Corriges P181
79
-
Réveille‐matin simplifiép on peut mettre l’alarme « on » ou « off » deux etats ‘armé’ et ‘desarmé’
quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans s’arrêter ; Etat sonnerie avec transition sur condition
on peut interrompre la sonnerie. Evénement « arret sonnerie »
80
-
81
-
Diagrammes d’activitésDiagrammes d activitésIntroduction Utilisé pour décrire les séquences d’activités
U d’ ili i ( h d’ l ) Un cas d’utilisation (phase d’analyse) Un algorithme particulier (phase de conception)
Permet de décrire les activités d’un cas d’utilisation en restant à un haut niveau d’abstraction
Permet d’exprimer des activités séquentielles et concurrentes
82
-
Diagrammes d’activités Exemplesg pSystème de vente en ligne
Cas d’utilisation : commander ordinateur (à configurer)( g )
83
-
Principaux éléments de notationp Activité
Transition
Marqueur d’état initial
B d h i i Barre de synchronisation
Branchement Branchement
Condition
84
-
Diagrammes d’activités Exemplesg pCas d’utilisation: Traiter une commande de billet de théâtre
85
-
Diagrammes d’activitésgDescription Il est composé de :
Etat d’entrée, de sortie Etats d’activité, Etat d’action Objets avec états Transitions Barres de synchronisation Barres de synchronisation Décisions Gardes Couloirs On peut également y trouver des notes, des contraintes.
-
Utilisation Pour décrire des processus (workflows)
Visualiser Spécifier ConstruireD Documenter
Pour décrire l’enchainement des CUs Pour montrer l’évolution d’un ensemble d’objets Pour montrer l évolution d un ensemble dobjets (en terme d’états) à travers un processus (voir les diagrammes d’états transitions)
Modéliser le flot de contrôle d’une opération (Pas de couloirs)
-
Diagrammes d’activitésgCouloirs (swimlane)
:Etudiant :Prof :Jury
travailler enseigne
[inscrit]:Etudiant
passer examencorriger examen
[OK][pas OK]
Validerefuser
[recu]ObjectFlowState:Etudiant
[enEchec]ObjectFlowState:Etudiant
-
Diagrammes d’activitésDiagrammes d activitésDesc. de processus (workflow)p ( )
Un processus peut impliquer plusieurs personnes, il peut également se dérouler sur une période de temps plus ou moins longue qui nécessite de connaître des états intermédiaires des objets impliquésconnaître des états intermédiaires des objets impliqués.
En ingénierie du besoin on modélise des workflows encore appelés processus métier qui correspond au savoir faire de la structure qu’on processus métier qui correspond au savoir faire de la structure quon modélise.
La modélisation des processus métier permet de trouver les cas d’utilisation (métier) candidats à être des cas d’utilisation de l’application logiciellelogicielle.
Les diagrammes d'activités vont permettre de visualiser l'enchaînement des cas d'utilisation.
Un cas d'utilisation ne peut pas être "suspendu" puis repris. Un diagramme d'activités peut "attendre" entre activités.
-
Diagrammes d’activitésDiagrammes d activitésExemple: suivi commande client
service comptable: service livraison:client: service commercial:
passerCommande
prendre en charge commande
rassembler produits
Effectuer Commande
émettre facture
envoyerFacture
receptionner Commandep
payer commande
-
Activité Faire le diagramme d’activité du processus « payer l’addition »:l addition »: Demander l'addition puis si le prix demandé est inférieur à la somme dont on dispose payer l'addition inférieur à la somme dont on dispose payer l addition, sinon faire la vaisselle.
http://anubis.polytech.unice.fr/iut/2010_2011/s2/omgl/ d i/td/ ti iti /mod‐si/td/activities
95
-
Ex: payer l’additionp y
96
-
Activité Faire le diagramme d’activité du processus « passer une vitesse »:vitesse »: Desserrer le frein à main puis en même temps appuyer sur l'embrayage et passer la première ensuite en même sur l embrayage et passer la première, ensuite en même temps appuyer sur l'accélérateur et relâcher l'embrayage
http://anubis.polytech.unice.fr/iut/2010_2011/s2/omgl/ d i/td/ ti iti /mod‐si/td/activities
97
-
Ex: passer une vitessep Desserrer le frein à main puis en même temps appuyer sur l'embrayage et passer la première ensuite en même temps l embrayage et passer la première, ensuite en même temps appuyer sur l'accélérateur et relâcher l'embrayage
98