UML : Vue fonctionnelle - Diagramme de collaboration et diagramme de séquence - 2003/2004 Cours d'UML.

Slides:



Advertisements
Présentations similaires
Génie Logiciel 2 Julie Dugdale
Advertisements

Julie Dugdale Génie Logiciel 2 Julie Dugdale
TP 7.1 synchronized et join Écrire un programme Java qui crée 1000 threads et maintient un compteur nb du nombre de threads créés jusque-là. Le thread.
Urbanisation des Systèmes d'Information - Henry Boccon-Gibod1 Urbanisation de système d'information PLM 4 (Product Lifecycle Management) Préoccupation.
Les cas d’utilisation (use cases)
Les diagrammes d’interactions
UML (2) Rappel sur le modèle statique : classe / objet
Système de gestion de bases de données. Modélisation des traitements
Diagrammes de communication
Modélisation orientée objet UML
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
UML (2) Rappel sur le modèle statique : classe / objet
INITIATION AU GRAFCET E. HELLOT lycée P. Duez.
Présentation SysML (Systems Modeling Language ) est basé sur UML et remplace la modélisation de classes et d'objets par la modélisation de blocs pour un.
Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel
UML : GENERALITES Rappel Diagrammes Niveaux de visions
GRAFCET.
1 Cours MSI, modélisation de SI : livraison journaux version 1 du 8 février 2005 Modélisation de S.I. Livraison de journaux ENSGI – MSI 2ème année Michel.
Diagrammes d’activités
UML : DIAGRAMME D’ACTIVITES
ManageEngine ADManager Plus 6
Les Cas d’utilisation.
Analyse et Conception des Systèmes d’Informations
Modélisation des bases de données avec UML
Auto Exterior Scoop SQP PROCESSUS 24 juillet 2006 Version validée V01.
Discussion sur la plate-forme MIMOSA Jean-Pierre Müller, CIRAD-TERA Équipe "Dynamique et usage des ressources et modélisation des systèmes complexes"
1 Introduction : Management des systèmes dinformation version 1.1 du 13 Novembre 2001 Introduction : Management des systèmes dinformation ENSGI Cours MSI.
Vers la conception objet
Modèle, Méthode et Conception
Outils pour la modélisation des systèmes distribués
Complément Le diagramme des classes
Unified Modeling Langage
INSCRIPTION AUX ELEMENTS
Statecharts Décrit les changements d’état d’un objet en réponse à des événements Point focal : l’objet et ses changements d’états Inventeur: David Harel.
Module 2 : Préparation de l'analyse des performances du serveur
Initiation aux bases de données et à la programmation événementielle
Le diagramme de séquences
Le diagramme d’activités
Le diagramme de collaboration
UML : Unified Modelling Language
UML (2) Modèle dynamique le diagramme de séquence
Diagrammes d’interaction
Sensibilisation a la modelisation
UML Séquence 3 : (Diagramme d’activités)
Le diagramme d’états-transitions
Diagrammes D’activités UML
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
Unified Modeling Langage
J. Cardoso — C. Sibertin-Blanc — C
INVEST'ESI. Le passage d’ordre Généralités.
Nouvelles Technologies Internet & Mobile
ENSTA : cours IN204 Introduction à JAVA et UML
Modélisation objet : Le langage UML
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Machines à états finis.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Nouvelles Technologies Internet & Mobile
Éléments de présentation
LE COURRIER ELECTRONIQUE
TP D’UML Groupe N° 3.
Diagramme de classe Classe Objet Associations Diagramme de classe.
Initiation aux bases de données et à la programmation événementielle
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
UML Unified Modeling Language. UML : 8 diagrammes 1.Classes 2.Activités 3.Séquences 4.Collaboration 5.Etats transition 6.Cas d’utilisation 7.Composants.
Formation SGA Module Saisie des Demandes d’achat Durée : 0,5 jour.
Transcription de la présentation:

UML : Vue fonctionnelle - Diagramme de collaboration et diagramme de séquence - 2003/2004 Cours d'UML

Objectifs Description de scénarios particuliers Représente le fonctionnement du système du point de vue du concepteur Mise en valeur des passages de messages (flots de données ou de contrôles, évènements) entre acteur et objet, ou entre objets, de manière chronologique On représente le fonctionnement au niveau des instances 2003/2004 Cours d'UML

Diagramme de collaboration Comporte : des objets dans une situation donnée les liens qui relient les objets qui se connaissent les messages échangés entre les objets, représentés le long de ces liens L'ordre d'envoi des messages est matérialisé par un numéro de séquence 2003/2004 Cours d'UML

Notation Un objet A envoie un message X à un objet B, puis l’objet B envoie un message Y à un objet C, et enfin C s’envoie un message Z. 2003/2004 Cours d'UML

Diagramme de classes de la CBM 3ème version saLibrairie 1 Commande numéro date commande (libr) ajouterLivre (livre) Librairie nom adresse solvabilité isSolvable () sesCommandes * sesLibrairies * sesLdC * LigneDeCommande quantité putQuantité (qt) Cbm * sesEditeurs sesLivres * Livre ISBN Titre getTitre () Editeur nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML

Exemple : Computer Books by Mail Enregistre une commande de livres Co:Commande L:Librairie 2. commande (libr) 6. ligneDeCommande () 7. putQuantité(qt) 5. ajouterLivre (livre) 1. isSolvable () Li:LigneDeCommande C:CBM 3. getLivre (titre) :livre 4. getTitre () L:Livre E:Editeur 2003/2004 Cours d'UML

Diagramme de séquence Comme les D. de collaboration, comporte : des objets dans une situation donnée (instances) les messages échangés entre les objets A la différence des D. de collaboration : l'accent est mis sur la communication, au détriment de la structure spatiale chaque objet est représenté par une barre verticale le temps s'écoule de haut en bas, de sorte que la numérotation des messages est optionnelle 2003/2004 Cours d'UML

Comparaison D.Collaboration/D. Séquence 2003/2004 Cours d'UML

D. Séquence en détail Ligne de vie d’un objet unA:ClasseA Ligne de vie d’un objet unA:ClasseA Exécution d’une occurrence unA:ClasseA Destruction de l’instance 2003/2004 Cours d'UML

D. Séquence en détail Création d’un instance unA:ClasseA Création d’un instance Frame: compartimenter le diagramme de séquence 2003/2004 Cours d'UML

Notation : principes généraux acteur objet du diagramme de classes nom de l'instance nom de la classe unA:ClasseA unB:ClasseB toto:Acteur1 meth1(…) message meth2 (…) boolean SonTruc retour type nom d'une instance activation ligne de vie (durée de l’interaction) 2003/2004 Cours d'UML

Notation : messages synchrone/asynchrone message asynchrone : émetteur non bloqué, continue ses traitements message synchrone : émetteur bloqué, attend retour appl erreur alarme inconnu alarme 2003/2004 Cours d'UML

Notation : création, destruction unA : ClasseA toto:Acteur meth1 (…) ClasseB (…) : ClasseB unB Création Arrive sur la classe Pas de nom d'instance au début renvoie tj l'instance créée Suppression 2003/2004 Cours d'UML

Notation : message réflexif Un objet peut s’envoyer un message à lui-même unA : ClasseA toto:Acteur meth1 (…) meth2 (…) Exemple: appel d’une méthode privée! 2003/2004 Cours d'UML

Notation : alternative 1 : C : A : B alternative [cond] meth1 () [non cond] meth2 () meth3 () condition On peut aussi faire deux diagrammes de séquences correspondant aux deux scénarios  meilleure lisibilité 2003/2004 Cours d'UML

Notation : alternative 2 : B : C [cond] meth1 () Cas cond : [non cond] meth2 () meth3 () Cas non cond : Deux diagrammes de séquences correspondant aux deux scénarios 2003/2004 Cours d'UML

Pour telles et telles instances Notation : répétition envoie du même message n fois au même objet : A : B : C *[cond] meth1 () Pour telles et telles instances meth2 () envoie du même message 1 fois à plusieurs objets 2003/2004 Cours d'UML

Exemple de la CBM : Le Diag. de Classes saLibrairie 1 COMMANDE numéro date commande (libr) ajouterLivre (livre) LIBRAIRIE nom adresse solvabilité isSolvable () sesCommandes * sesLibrairies * sesLdC * LIGNE DE COMMANDE quantité putQuantité (qt) CBM 1 * sesEditeurs sonLivre LIVRE ISBN titre EDITEUR nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML

Un cas d'utilisation "Communiquer les détails de toutes les commandes d'une librairie donnée" Méthode getDétailCommandes() de la classe LIBRAIRIE 2003/2004 Cours d'UML

Le DCO correspondant COMMANDE LIBRAIRIE LIGNE DE COMMANDE CBM LIVRE 1. getDate() 2. getInfosLdC COMMANDE LIBRAIRIE 3. getQuantité() LIGNE DE COMMANDE CBM 4. getTitre() LIVRE EDITEUR 2003/2004 Cours d'UML

Un DSE : getDetailsCommandes V1 version 1 : délégation (propagation des messages) LIBRAIRIE SesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDE SonLivre:LIVRE Dupond:Responsable getDétailCommandes() getSesCommandes() sesCommandes getDétailCommande() getDate() date Pour chaque commande getSesLignes() sesLdC getDétailLigne() getLivre() sonLivre getTitre() Pour chaque ligne de com. titre getQuantité() {titre,quantité} date +{titre,quantité} quantité {date +{titre,quantité}} 2003/2004 Cours d'UML

Le DCL : nouvelle version (délégation) sesCommandes * saLibrairie 1 COMMANDE numéro date commande (libr) ajouterLivre (livre) getDetailCommande() LIBRAIRIE nom adresse solvabilité isSolvable () getDetailCommandes() sesCommandes * sesLibrairies * sesLdC * LIGNE DE COMMANDE quantité putQuantité (qt) getDétailLigne() CBM * sesEditeurs 1 sonLivre LIVRE ISBN titre EDITEUR nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML

Un DSE : getDetailsCommandes V2 version 2 : supervision (un objet envoie tous les messages) LIBRAIRIE SesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDE SonLivre:LIVRE Dupond:Responsable getDétailCommandes() getSesCommandes() getDate() date getSesLignes() Pour chaque commande sesLdC getQuantité() quantité Pour chaque ldc de chaque com. getLivre() sonLivre getTitre() titre {date +{titre,quantité}} 2003/2004 Cours d'UML

Le DCL : nouvelle version (supervision) sesCommandes * saLibrairie 1 COMMANDE numéro date commande (libr) ajouterLivre (livre) LIBRAIRIE nom adresse solvabilité isSolvable () getDetailCommandes() sesCommandes * sesLibrairies * sesLdC * LIGNE DE COMMANDE quantité putQuantité (qt) CBM * sesEditeurs 1 sonLivre LIVRE ISBN titre EDITEUR nom adresse getLivre (titre) : LIVRE sesLivres * 2003/2004 Cours d'UML

UML : Vue dynamique - Diagramme d’états-transitions - 2003/2004 Cours d'UML

Diagramme états/transitions Rôle : Vue synthétique du fonctionnement dynamique d'un objet Décrit le comportement d'un objet tout au long de son cycle de vie Décrit tous les états possibles d'un unique objet à travers l'ensemble des cas d'utilisation dans lequel il est impliqué On ne s'intéresse qu'aux objets qui ont un comportement complexe Exemple - DET d'un citoyen : Mineur Majeur anniversaire[age=18] naissance mort 2003/2004 Cours d'UML

Composition Comporte 2 types d'informations : des états : initial final intermédiaires - ex : mineur et majeur des transitions induisant un changement d'état ex : naissance, anniversaire… 2003/2004 Cours d'UML

État (1) Un état correspond à la manière d’être d’un objet pendant un intervalle de temps plus ou moins long. Un état se compose de plusieurs parties : le nom l'activité attachée à cet état les actions réalisées pendant cet état Exemple : En alerte entry/allumer lampe alerte do/sonnerie toutes les 5 '' 4ème sonnerie/appel poste de garde exit/éteindre lampe alerte 2003/2004 Cours d'UML

État (2) DET : Automate déterministe  3 types d'états état initial (1 et 1 seul) état intermédiaire (plusieurs possibles) état final (aucun ou plusieurs possibles) Nom état 2003/2004 Cours d'UML

Action opération instantanée (durée négligeable) toujours intégralement réalisée  méthode de la classe exécutée : lors d'une transition eventi / actioni à l'entrée dans un état entry / actioni à la sortie d'un état exit / actioni interne, sans changer d'état eventi / actioni Action à l'entrée En alerte entry/allumer lampe alerte do/sonnerie toutes les 5 '' 4ème sonnerie/appel poste de garde exit/éteindre lampe alerte Action interne Action à la sortie 2003/2004 Cours d'UML

Activité opération qui nécessite un certain temps d’exécution peut être interrompue à chaque instant associée à un état (étati  "en train de faire ceci") exécutée : entre l'entrée et la sortie de l'état do : activitéi événement EN-VEILLE do : détecteur sous tension EN-ALERTE do : sonnerie détectionPb / envoyer message poste de surveillance activité action activité 2003/2004 Cours d'UML

Transition (1) Transition : passage unidirectionnel et instantané d’un état (source) dans un autre état (cible) Déclenchée : par un événement automatiquement à la fin d'une activité (transition automatique) Syntaxe : <NomÉvénement> [<Garde (ou contrainte)>]/<NomAction> Garde : condition booléenne qui valide ou non le déclenchement d'une transition lors de l'occurrence d'un évènement Événement : provoque le changement d'état (il existe aussi des événements internes à un état, dont l'action associée ne provoque pas de changement d'état) Action : opération réalisée lors du changement d'état 2003/2004 Cours d'UML

événement 1 [condition] Transition (2) Transition automatique lorsque qu'il n'y a pas de nom d'événement sur une transition, il est sous-entendu que la transition aura lieu dès la fin de l'activité. Auto-transition : transition d'un état vers lui-même événement 2/action état 1 état 2 événement 1 [condition] état 3 2003/2004 Cours d'UML

Exemple : Le réveil matin Heure d'alarme : on suppose que l'heure est fixée quand on met l'alarme sur on Trois boutons : alarm on/off, arrêt sonnerie, réglage alarme (événement interne) Événements : Appuis sur un bouton alarm on [heure = H alarme] désarmé armé do/sonner alarm off arrêt sonnerie alarm off 2003/2004 Cours d'UML

Forme générale d’un état Nom d'état entry[cond entry]/action-entry do/activité év-1/action-1 … év-n/action-n exit[cond exit]/action-exit év-in[cond in]/action-in év-out[cond out]/action-out év-i[cond y]/action-i 2003/2004 Cours d'UML

Ordonnancement des actions En entrée Action sur la transition d'entrée Action d'entrée Activité associée à l'état En interne Interruption de l'activité en cours (contexte sauvé) Action interne Reprise de l'activité En sortie Interruption de l'activité en cours (contexte perdu) Action de sortie Action sur la transition de sortie Auto-transition Action sur l'auto-transition 2003/2004 Cours d'UML

Auto-transition / Action interne Action interne, le contexte de l'activité est préservé (on ne sort pas de l'état) Auto-transition : le contexte est réinitialisé (on sort et on re-rentre dans l'état) event1 / action1 Nom de l'état entry / actionentry event1 / action1 … exit / actionexit Nom de l'état entry / actionentry … exit / actionexit  2003/2004 Cours d'UML

Diagrammes hiérarchisés Permettent de structurer les DET complexes Factorisation des actions et activités Exemple : Transmission point mort marche arrière Marche avant première seconde troisième 2003/2004 Cours d'UML

Parallélisme et synchronisation État composite do/a1 do/a2 do/a3 do/a4 do/a5 do/a6 a1//a3//a5 - a2 après a1 - a4 après a3 - a6 après a5 - état final après a2, a4 et a6 2003/2004 Cours d'UML

UML : Vue dynamique - Diagramme d’activité - 2003/2004 Cours d'UML

Remplir le réservoir d'eau Diagramme d'activité Cas particulier de DET, dans lequel à chaque état correspond une activité constituant un élément d'une tâche globale à réaliser Mise en évidence des contraintes de séquentialité et de parallélisme. Exemple - Faire un café : Chercher le café parallélisme Mettre un filtre Remplir le réservoir d'eau Mettre du café Prendre une tasse Allumer la cafetière Synchronisation Le café passe servir 2003/2004 Cours d'UML

D. Activité :Condition <<Comment>> Cafetière éteinte? condition [oui] [non] commentaire Allumer la cafetière Le café passe Servir Dans cette exemple, il n’y a pas de parallélisme!! 2003/2004 Cours d'UML

Diagramme d’activité Peut être utiliser pour ordonner des diagrammes de séquence OpenDoor CloseDoor 2003/2004 Cours d'UML

Les concepts d’UML - Les Composants - 2003/2004 Cours d'UML

Qu’est ce qu’un composant : exemple simple <<interface>> ProvidedInterface <<interface>> RequiredInterface Job 2003/2004 Cours d'UML

Boite blanche (modèle associé) Composant Boite blanche (modèle associé) 2003/2004 Cours d'UML

Boite noire (pas de modèle) Composant Boite noire (pas de modèle) 2003/2004 Cours d'UML

Assemblage 2003/2004 Cours d'UML

Diagramme de déploiement Indication de l’artefact 2003/2004 Cours d'UML

Cas d’étude: Bourse en ligne Administration d’une bourse en ligne Créer un utilisateur avec un por²tefeuille Supprimer un utilisateur Créer /supprimer des actions Ajouter et retirer des actions à un portefeuille. Un portefeuille contient un ensemble d’actions Action= nom+ prix. Connaître la liste de toutes les actions Visualiser les actions dans un portefeuille 2003/2004 Cours d'UML