Cedric Dumoulin Compilation de présentations de : Julie Vachon Jeanine Leguy Yannick Prié 1
Les diagrammes dynamiques Diagrammes d interactions Séquences Communication (uml1 == Collaboration) Diagrammes d états transitions ii Diagrammes d activités 2
Diagramme de séquence Diagramme de communication 3
Diagrammes d interactions Les diagrammes d interactions Ce sont des diagrammes d objets 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 Met en exergue le déroulement séquentiel Diagramme de communication Met en exergue les échanges de messages (communication) 4
Diagrammes d interactions Permet de décrire (entre autres) les cas d utilisation met en évidence les interactions entre les instances des classes (objets) du logiciel Un cas d utilisation i est réalisé élié par une collaboration Collaboration = Ensemble d objets dobjets qui s échangent séchangent des messages et travaillent ensemble pour accomplir une tâche. Interaction = Échange d un message entre deux objets du logiciel. 5
Diagrammes d interactions UML propose deux type de diagrammes d interaction Diagramme de séquence interactions projetées sur une ligne de temps Diagramme de communication interactions projetées sur un diagramme d objets 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. Conception : diagrammes de séquence ou de communication. 6
Utilisation des interactions Etudier/spécifier /p le comportement 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 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 dobjets diagramme de séquence de fonctionnement conseil : concevoir diagrammes de classes et d'interaction en même temps Illustrer/étudier un fonctionnement diagramme qui traverse les couches : de l'ihm aux données rétro ingénierie é i i 7
8
Diagrammes de séquence Montre, sous la forme de séquences ordonnées dans le temps, les interactions entre objets Permet de décrire un comportement 10
Les diagrammes de séquence Utilisation Utilisés dans différents contextes: description des cas d utilisation modélisation d une dune 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). 11
Les diagrammes de séquence
Messages dans les diagrammes de séquences res = message(arguments) Eh Echange de messages flèches d'appel synchrone blocage de l'émetteur en attendant la réponse flèche d'appel asynchrone pas d'attente t du retour, poursuite de la tâche Retour Message de création éti Message de destruction ti 13
Caractéristiques Diagramme de séquence 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 importance 15
Caractéristiques Éléments (graphiques) de base Les objets qui interagissent dans le scénario Représentation ti graphique de la ligne de vie de chaque objet et de ses activations 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, associations, opérations Liens associations Messages Opérations Dépendances? Exercice : dessiner le diagramme de classes correspondant 17
Interactions, classes, associations, opérations Liens associations Messages Opérations Dépendances? Exercice : dessiner le diagramme de classes correspondant 18
Option et Alternatives Boucle 19
Les cadres d interactions Permettent d exprimer dans les diagrammes de séquences: des alternatives (opt[cond] et alt) Des boucles (loop[min, max, cond] 20
L alternative optionnelle opt[condition] Eé 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 classes et des interactions Les objets utilisés dans les interactions pour réaliser les scénarios proviennent 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) nouvelles classes etc. On essaye de réaliser tous les scénarios en convergeant vers un diagramme de classes stables Diagramme de classes Diagramme de classes Diagramme de classes Diagramme d interactions Diagramme d interactions 25
Les diagrammes de séquence Utilisation Les diagrammes de séquence permettent de dé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ème Par de la description d un scénario Fait un diagramme de séquence avec Le/les acteurs Le système Ce diagramme s appel le DSS (Diagram Sequence System) Puis, on décompose chaque message En appel de message sur d autre objets introduction de nouveau objets et de nouvelle opération 1. Déclenchement él à un moment défini. i 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 offre 4. le système soumet au service de crédit le paiement des charges 5. le système envoie un message à l acheteur pour lui dire qu il a gagné l enchère 6. 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 28
Introduction des diagrammes de séquence à partir des scénario Recherche de nouvelles classes et opérations 29
Exemple : CloreEnchere 1. 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 offre 4. le système soumet au service de crédit le paiement des charges 5. le système envoie un message à l acheteur pour lui dire qu il a gagné l enchère 6. 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 Prend en charge le CU CloreEnchere, nommons l objet et sa classe CloreEnchereCTR
Exemple : CloreEnchere Diagrammes de séquence 31
Exemple : CloreEnchere Diagramme de classes après
Exemple : CloreEnchere Raffinement 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 Diagramme de classes après
Exemple : CloreEnchere Diagramme de classes après
Structuration en paquetage Les classes se multiplient => il faut structurer!
(ex uml1.x Collaboration) 39
Diagrammes a de communication cat o Diagramme illustrant les interactions entre les instances d un dun logiciel en mettant l accent sur l organisation structurelle 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, ie i.e., décrire la conception d un dun scénario d un dun cas d utilisation communication Ensemble d instances qui interagissent ensemble pour réaliser une tâche commune Ensemble de liens (pertinents) existant entre ces instances 40
Diagrammes de communication Un diagrammes de communication est un diagrammes d objets communicants. Il est composé : d objets de liens entre objets avec message <<stéréotypé>> et typé de Notes, contraintes, Les messages peuvent être numérotés.
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 Illustre les interactions ti (les messages envoyés par les instances) nécessaires pour réaliser la tâche décrite par la communication 44
Communication Partie statique du diagramme (i.e., sans interactions) Éléments composant une communication Objets : instance d une classe Rectangle avec étiquette de la forme nomobjet:nomclasse ou :nomclasse Uniquement les instances pertinentes, i.e., interagissant dans le cas d utilisation ou le scénario Liens : instances d associations du diagramme de classes Uniquement les instances d associations pertinentes pour la communication Acteurs : acteurs participant ii au cas d utilisation i ou scénario L acteur initiant un cas d utilisation est appelé initiateur 45
Communication Partie dynamique du diagramme Ajout des messages sur les liens 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 association i 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 interactions Numéro du message : en mode procédural, lorsqu un objet O reçoit un message, le numéro de ce message est utilisé comme 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 pas explicitement dans les diagrammes de communication Types de messages Synchrone Asynchrone Aussi : garde, itération, etc. 47
Représentation des interactions Remarques Comme le diagramme de séquence, le diagramme de communication permet de découvrir de nouvelles propriétés aux classes. Il peut aider à compléter et développer le diagramme de classes Ajout d opérations, d associations, etc. Le diagramme de classes doit être mis à jour pour demeurer «correct» et «cohérent» avec les diagrammes de séquence et de communication 48
Création et destruction dynamiques Ajout d une contrainte ({new} ou {destroyed} ) après l étiquette lé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 instance : new, destroy 49
Création et destruction dynamiques Exemple 50
Notation utilisée On peut utiliser (comme pour les diagrammes de séquence) Messages avec garde (condition) Ex. : [i=0] 1: a(), [i=1] 1: b() Messages avec clause itérative Ex. : 1: *[i:=1..n] a() 51
Notation utilisée Exemple Message avec garde 52
54
Diagrammes d états transitions Introduction Permet de décrire le comportement d une instance d une classe (ou d un ensemble d objets) en fonction des messages reçus Peut également être utilisé pour décrire l exécution d une opération, d un cas d utilisation, etc. Diagramme d état détat dun d un billet de spectacle à vendre sur Internet 55
Principaux concepts État Transition Marqueur d état initial 56
Principaux 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 nom 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é 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 concepts Transition 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 événement é / action Événement : tout ce qui survient et peut affecter une instance (élément déclencheur de la transition) Action : opération réalisée lorsqu une transition est réalisée Diagramme d état pour la classe Exemplaire_de_livre l 58
Principaux concepts Types d événements Un événement é peut être paramétré é Type d événement Appel / Signal Changement Temps Description Réception d un message synchrone (pour lequel l émetteur attend une réponse), invocation d une opération Changement de valeur d une condition when(exp) booléenne, satisfaction soudaine de cette condition, condition fausse qui devient vraie Temps absolu atteint ou passage d un certain after(time) intervalle de temps, peut signaler le temps écoulé depuis l entrée dans un état donné Syntaxe op(p1:type, p2:type, ) when(exp) after(time) 59
Principaux concepts Types d actions Les actions peuvent prendre des arguments Type d action Description Syntaxe Affectation Assigne une valeur à une variable cible := expression Appel / Envoi de Invocation (synchrone) d une opération opname(arg1, arg2, ) message d un objet, peut retourner une valeur object.opname(arg1, arg2, ) Création Création d une nouvelle instance new Cname(arg1, arg2, ) Destruction ti Destruction ti d une instance object.destroy() t Divers Action décrite dans un autre langage [ description ] Séquence Séquence d action action1; action2; 60
Actions d entrée et de sortie Certaines actions peuvent être rattachées à un état au lieu d une transition Action d entrée : exécutée chaque fois qu on entre dans l état Notation : entry / action Action de sortie : exécutée chaque fois qu on sort de l état Notation : exit / action Ordre d exécution des actions? Diagramme d état détat d un dun exemplaire de livre 61
Actions d entrée et de sortie 62
Gardes Une transition peut être conditionnelle à l évaluation d une dune garde Si la garde est vraie, la transition est réalisée Si la garde est fausse, la transition n a na pas lieu Notation : événement [garde] Diagramme d état d un livre 63
Gardes Garde 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 événement associé Lorsqu un même événement est associé à plusieurs 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 transitions 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) 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) 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 composite État «spécialisé» composé de plusieurs sous états Sous états t séquentiels Sous états concurrents 66
État composite séquentiel Description interne? 67
État composite 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é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) Diagramme d état d un cours 69
État composite concurrent Autre notation possible Diagramme d état t d un cours 70
Représentation des comportements valides Un diagramme d états doit représenter tous et seulement les états et les transitions valides des instances d une classe Si un diagramme d état, t pour un état t 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 objets dobjets. On les utilise pour décrire le comportement d un dun ensemble d objets dobjets c'est à dire cest décrire l enchaînement des états par lesquels ces objets peuvent passer durant leur durée de vie en ré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é: on peut mettre l alarme l «on» ou «off» ; quand l heure courante devient égale à l heure d alarme, le réveil sonne sans s arrêter sarrêter ; on peut interrompre la sonnerie. http://fr.scribd.com/doc/25046623/etudes de Cas Et Exercices Corriges i P8 P181 79
Réveille matin simplifié 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és Introduction Utilisé pour décrire les séquences d activités Un cas d utilisation i (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 Exemples Système de vente en ligne Cas d utilisation : commander ordinateur (à configurer) 83
Principaux éléments de notation Activité Transition Marqueur d état initial Barre de synchronisation i Branchement Condition 84
Diagrammes d activités Exemples Cas d utilisation: Traiter une commande de billet de théâtre 85
Diagrammes d activités Description Il est composé de : Etat d entrée, de sortie Etats d activité, Etat d action Objets avec états Transitions 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 Construire Documenter Pour décrire l enchainement des CUs Pour montrer l évolution lévolution dun d un ensemble dobjets d objets (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és Couloirs (swimlane) :Etudiant :Prof :Jury travailler enseigne :Etudiant [inscrit] passer examen corriger examen [pas OK] [OK] refuser Valide ObjectFlowState:Etudiant [enechec] ObjectFlowState:Etudiant [recu]
Diagrammes d activités Desc. de processus (workflow) 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é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 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 logicielle. 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és Exemple: suivi commande client client: service commercial: service comptable: service livraison: passercommande prendre en charge commande rassembler produits émettre facture Effectuer Commande envoyerfacture receptionner Commande payer commande
Activité Faire le diagramme d activité du processus «payer l addition»: Demander l'addition puis si le prix demandé est inférieur à la somme dont on dispose payer l'addition addition, sinon faire la vaisselle. http://anubis.polytech.unice.fr/iut/2010_2011/s2/omgl /mod si/td/activities ti iti 95
Ex: payer py l addition 96
Activité Faire le diagramme d activité du processus «passer une vitesse»: Desserrer le frein à main puis en même temps appuyer sur l'embrayage lembrayage 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 /mod si/td/activities ti iti 97
Ex: passer une vitesse Desserrer le frein à main puis en même temps appuyer sur l'embrayage lembrayage et passer la première, ensuite en même temps appuyer sur l'accélérateur et relâcher l'embrayage 98