Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel - 30.03.17.

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

EPITECH 2009 UML EPITECH 2009
Langage de modélisation objet unifié
Génie Logiciel 2 Julie Dugdale
Julie Dugdale Génie Logiciel 2 Julie Dugdale
ModelEdition SA. Tous droits réservés. Tel : TétrAèdre de modelEdition SA Présentation des principales vues de tétrAèdre.
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Les cas d’utilisation (use cases)
Diagram-Based Techniques
UML - Présentation.
Les diagrammes d’interactions
Architecture de réseaux
INTRODUCTION.
UML (Unified Modeling Langage)
Diagrammes de communication
Diagramme d’activité.
Modélisation orientée objet UML
Langage SysML.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
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.
dsi- assistance Numéros utiles Notice Simplifiée
UML : GENERALITES Rappel Diagrammes Niveaux de visions
dsi- assistance Numéros utiles Notice Simplifiée
Les Cas d’utilisation.
Analyse et Conception des Systèmes d’Informations
Les Systèmes Multi-Agents pour la Gestion de Production
Réalisée par :Samira RAHALI
MONITEUR AIDE MEMOIRE TELEPHONE Modèle 4020 Premium.
Initiation aux bases de données et à la programmation événementielle
Modélisation des bases de données avec UML
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
Outils pour la modélisation des systèmes distribués
Etude globale de système.
Académie de Besançon Journées collège Evaluation par compétence, prise d'initiative, différenciation.
Unified Modeling Langage
Module 2 : Préparation de l'analyse des performances du serveur
Le diagramme de séquences
Le diagramme d’activités
Le diagramme de collaboration
UML (2) Modèle dynamique le diagramme de séquence
Diagrammes d’interaction
Sensibilisation a la modelisation
Patrons de conceptions de créations
Langage de modélisation graphique de systèmes
Interoperabilité des SI - Urbanisation
Rappel sur les diagrammes de collaboration
Evaluation au baccalauréat
MONITEUR AIDE MEMOIRE TELEPHONE Modèle 4035 Advanced.
MONITEUR AIDE MEMOIRE TELEPHONE Modèle 4010 EASY.
Le diagramme d’états-transitions
Programmation objet La base.
GENIE LOGICIEL Détermination du périmètre cible d’une application
Algorithmes et Programmation
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Unified Modeling Langage
Nouvelles Technologies Internet & Mobile
IUT Dijon – Année Spéciale Sébastien PARFAIT
Modélisation des flux Introduction et définition
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Le Téléphone. la ligne le jeton 814 l’indicatif de la ville 814.
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Les concepts d’UML - Le Processus Unifié -
Introduction à la Programmation Orientée Objet
TP D’UML Groupe N° 3.
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
Transcription de la présentation:

Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel - 30.03.17

Le Modèle Dynamique : Plan du chapitre Définition Message, événement Vue globale sur les interactions du système cas d’utilisation, scénario diagramme de séquence diagramme de collaboration Diagramme d'états Synthèse du modèle dynamique et du modèle objet Diagramme d ’activités 2. EADS Matra Datavision - Confidentiel - 30.03.17

Le Modèle Dynamique : Définition Décrit l'évolution au cours du temps du logiciel Description de la vie de chaque objet dans le temps Changement d'états des objets Modification des valeurs des attributs qui caractérise l'objet Modification des liens entre objets Montre le flux de contrôle dans le temps Séquences d'opérations à exécuter en réponse à des événements extérieurs Interactions dans le temps entre objets Envois de messages et réponses aux événements Appels d'opérations 3. EADS Matra Datavision - Confidentiel - 30.03.17

Le Modèle Dynamique : Les diagrammes Le modèle dynamique repose sur un ensemble de diagrammes Diagrammes de séquence ou Diagramme de collaboration pour chaque scénario Modéliser la collaboration de plusieurs objets dans un cas d ’utilisation (mais pas la définition de son comportement) Un diagramme d'états pour certaines classes Modéliser le comportement d ’un objet Les diagrammes d'états sont reliés par des événements "partagés" Diagrammes d ’activités pour la description des traitements ou les synoptiques de tâches (workflow) 4. EADS Matra Datavision - Confidentiel - 30.03.17

Scénario : Définition Une séquence de messages qui correspond à une utilisation du système Les scénarios sont créés pour des cas d ’utilisation du système Les scénarios montrent comment est utilisé le système ce qu'il va faire en réaction à ces messages Eviter les alternatives (séquences conditionnelles) dans un scénario si besoin d'une alternative : faire plutôt deux scénarios 5. EADS Matra Datavision - Confidentiel - 30.03.17

Exemples de scénarios Appel téléphonique Scénario : le numéro appelé est occupé L'appelant décroche le téléphone L'appelant commence à composer le numéro L'appelant termine de composer le numéro La tonalité "occupée" commence à sonner L'appelant raccroche le téléphone Scénario : le numéro appelé n'est pas occupé L'appelant commence à taper le numéro L'appelant termine de taper le numéro Le téléphone commence à sonner L'appelé décroche La conversation se déroule L'appelé raccroche le téléphone 6. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de séquence Représentation graphique du scénario montrant le séquencement des messages (opération, signal) entre objets dans le scénario Modéliser la collaboration de plusieurs objets dans un cas d ’utilisation (mais pas la définition de son comportement) Met en évidence les messages concurrents du scénario L ’envoie d ’un message est atomique insécable la durée de l ’envoie est considérée nulle comparée à la granularité de l ’interaction Un objet est représenté par sa ligne de vie une ligne de vie peut être la vue abstraite d ’un ensemble d ’objets 7. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de séquence: représentation Un système téléphonique décrocher débuter tonalité composer chiffre(n) débuter tonalité sonnerie sonner arrêter tonalité ... arrêter tonalité sonnerie arrêter sonnerie appelant:Personne :Ligne appelé:Personne connecter raccrocher déconnecter ligne de vie temps L ’envoie d ’un message est toujours horizontal 8. EADS Matra Datavision - Confidentiel - 30.03.17

obj1:C1 obj2:C2 obj4:C4 obj3:C3 obj5:C5 Période d ’activité. Permet de définir quel objet "à la main" créer mes3(w) mesA(z) [x>0] mes1(x) [x<=0] mes2 mes4 branchement récursion création destruction Met en évidence les processus parallèles 9. EADS Matra Datavision - Confidentiel - 30.03.17

Définir les contraintes temporelles d'exécution appelant:Personne :Ligne appelé:Personne {b - a < 1 sec.} signifie {b.receiveTime - a.sendTime < 1 sec.} a: décrocher b: débuter tonalité c: composer chiffre(n) arrêter tonalité {c - b < 10 sec.} composer chiffre(n) ... d: composer chiffre(n) L ’appel est « routé » à travers le réseau. {e - d < 5 sec.} e: débuter tonalité sonnerie sonner décrocher arrêter tonalité sonnerie arrêter sonnerie connecter connecter raccrocher déconnecter déconnecter raccrocher 10. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de séquence : options de présentation Numérotation des messages Utilisé surtout quand il y a des activités concurrentes Message asynchrone Invocation d ’une procédure obj1:C1 obj2:C2 obj1 garde son activité après l ’envoie du message mes obj1:C1 obj2:C2 l ’activité passe de C1 à C2 jusqu ’à la terminaison de l ’activité de C2 mes 11. EADS Matra Datavision - Confidentiel - 30.03.17

Message avec délai de propagation quelque chose peut se produire (un message dans le sens opposé) Itération appelant:Personne :Ligne composer chiffre(n) router flèche oblique descendante débuter tonalité sonnerie obj1:C1 obj2:C2 mes condition d ’itération [x<10] 12. EADS Matra Datavision - Confidentiel - 30.03.17

Exercice UML MD0 13. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration Représenter du point de vue structurel et dynamique les objets impliqués dans la mise en oeuvre “d’un but” Modèle expliquant la coopération entre les objets utilisés pour la réalisation d’une opération ou d’un cas d’utilisation Contient Collaboration Contexte structurel des participants: objets, classes, liens, associations, attributs Interaction Séquence de messages échangés entre les objets Numérotés Informations de contrôle du diagramme de séquence sont applicables 14. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration:numérotation simple objet :Passager message 1: appuyer() 2: mémoriser requête() réquisition pilote :Bouton étage :Contrôleur ascenseur 3: allumer() pilote pilote rôle 7: éteindre() lien 4: déplacer() 9: fermer() 8: ouvrir() 5: étage atteint() 6: immobiliser() séquencement :Ascenseur :Porte Collaboration en réponse à l ’appuie sur le bouton de réquisition d ’un ascenseur 15. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration: numérotation décimale :Passager 1: appuyer() 1.1: mémoriser requête() variante de notation du rôle b/réquisition:Bouton étage ctrl/pilote:Contrôleur ascenseur 1.1.1: allumer() 1.1.4: éteindre() 1.1.2: déplacer() 1.1.6: fermer() 1.1.5: ouvrir() 1.1.2.1: étage atteint() 1.1.3: immobiliser() séquencement :Ascenseur :Porte 16. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration: objet multiple, valeur retournée Ensemble d ’objets du coté 0..* d ’une association Montrer qu ’un message concerne tous les objets de l ’ensemble 1: punir() :Elève Instituteur Elève :Instituteur * valeur retournée 1: unServeur := trouver(specs) :Serveur :Client serveurs 2: traiter(requête) unServeur :Serveur 17. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration: objet actif Objet possédant son propre flot de contrôle Peut initier des activités de contrôle Exemple: un processus ou une tâche Un objet passif encapsule des données mais ne peut initier un flot de contrôle objet actif {local} travail :Gestionnaire Usine tâcheCourante:PassageTâche travail le message « achevé » est envoyé lorsque les envois A2 et B2 ont été satisfaits :ProgrammeurUsine 1: débuter(travail) A2,B2 / 2: achevé(travail) :GestionnaireTâches 1 / B1: débuter(travail) B2: achevé 1 / A1: débuter(travail) A2: achevé Collaboration lors du processus de travail dans une usine :Robot :Four 18. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration: flot de messages Envoi d ’un message d ’un objet à l ’autre Implémentation appel de procédure, signal entre threads actifs, l ’occurence d ’un événement Notation du type de flot appel de procédure ou imbrication : flot plat indiquant le séquencement - normalement asynchrone - : flot asynchrone; pour montrer explicitement l ’asynchronisme entre deux objets dans une séquence synchrone : 19. EADS Matra Datavision - Confidentiel - 30.03.17

3: pression := calculer(température) message simple 4: afficher(x, y) message imbriqué 1.2.1: afficher(x, y,z) message simple avec valeur retournée 3: pression := calculer(température) message conditionnel [âge >= 18ans] 2.1: voter() synchronisation avec d ’autres flots 4.A,B.6 / C.1: allumer() itération simple 1*: laver() itération avec clause d ’itération 1*[i:=1..n]: laver() envoi parallèle - diffusion - A2,A1 /1 *||[i:=1..n]: éteindre() 20. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme de collaboration vs Diagramme de séquence Emphase sur le séquencement : ordre évident des messages Simplicité Mais si ajout de conditions/alternatives/boucles perd sa lisibilité Collaboration Emphase sur la structure : indique comment les objets sont liés Lequel ? dépend du goût du développeur A propos des comportements conditionnels Intégrer les conditions dans le même diagramme ? ou Un diagramme séparé pour chaque conditions (chaque scénarios) ? Les diagrammes de séquence sont optimums quand le comportement est simple 21. EADS Matra Datavision - Confidentiel - 30.03.17

Synthèse des messages Consolide l'ensemble des messages entre objets Ne montre pas le séquencement Intègre tous les scénarios Synthèse des dépendances dynamiques entre objets. décrocher composer chiffre(n) raccrocher appelant:Personne :Ligne débuter tonalité arrêter tonalité débuter tonalité sonnerie arrêter tonalité sonnerie connecter débuter sonnerie occupée sonner arrêter sonnerie connecter déconnecter décrocher raccrocher appelé:Personne 22. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d'Etats Un diagramme d'états est associé à une classe Il est valable pour tous les objets de cette classe toutes les instances se comporteront de la même façon Il contient tous les scénarios possibles dans lesquels la classe est considérée Un scénario correspond à un chemin dans un diagramme d'état 23. EADS Matra Datavision - Confidentiel - 30.03.17

Exemple simple de diagramme d'états Diagramme d'états d'un Menu Fantôme (popup) bouton droit enfoncé menu inactif menu visible déplacement curseur bouton droit levé 24. EADS Matra Datavision - Confidentiel - 30.03.17

Evénement : Définition Représente un moyen pour transmettre de l'information Se produit à un instant donné N'a pas de durée (par rapport à la durée de l'état) Peut être : Le déclenchement d'une action du système Un signal externe: l'envoi d'un message par un objet Une condition sur un ou plusieurs attributs 25. EADS Matra Datavision - Confidentiel - 30.03.17

Evénement : Exemples Actions sur le système "Sauvegarder", "Copier", "Coller" ... Signal externe "time-out", "bouton appuyé", "bouton levé"... Condition "Seuil dépassé", "valeur illégale"... Diagramme d'états d'un réveil-matin veille heure atteinte désactiver time-out alarme sommeil 26. EADS Matra Datavision - Confidentiel - 30.03.17

Etat d'un objet Contexte pendant lequel l'objet est susceptible de traiter des événements reçus Un état est caractérisé par des valeurs d'attributs et/ou de liens Un objet répond ou non à un événement en fonction de son état Diagramme d'états d'une porte automatique Etat s'ouvrant porte ouverte bouton ouverture Etat initial fermée ouverte bouton ouverture bouton fermeture porte fermée se fermant 27. EADS Matra Datavision - Confidentiel - 30.03.17

Transition entre états Un événement est instantané, un état a une durée L'objet passe d'un état à un autre en réponse à un événement Diagramme d'états d'un Menu Fantôme (popup) menu inactif menu visible bouton droit enfoncé bouton droit levé déplacement curseur Evénement Transition quitter Etat final 28. EADS Matra Datavision - Confidentiel - 30.03.17

Transition conditionnelle Nord Sud Ouest Est Transition accompagnée d'une condition s'effectue si condition vraie time-out [N/S occupé] Axe Nord/Sud ouvert Nord/Sud gauche ouvert Feux N/S : Vert Flèches gauche N/S : Rouge Feux E/O : Rouge Flèches gauche E/O : Rouge Feux N/S : Rouge Flèches gauche N/S : Vert Feux E/O : Rouge Flèches gauche E/O : Rouge time-out [N/S libre] Diagramme d'états d'un système de feux de carrefour avec détection d'occupation time-out time-out Est/Ouest gauche ouvert time-out [E/O libre] Axe Est/Ouest ouvert Feux N/S : Rouge Flèches gauche N/S : Rouge Feux E/O : Rouge Flèches gauche E/O : Vert Feux N/S : Rouge Flèches gauche N/S : Rouge Feux E/O : Vert Flèches gauche E/O : Rouge time-out [E/O occupé] 29. EADS Matra Datavision - Confidentiel - 30.03.17

entry/ positionnerDébut Action Traitement instantané et non interruptible sa durée n'est pas significative Associée à un événement et exécutée lors de la transition (formalisme de Mealy issu de SA/RT) Associée à un état et exécutée en entrant ou en sortant afficherMenu est l'action qui s'exécute pendant cette transition positionnerDebut est l'action qui s'exécute en entrant dans cet état bouton droit enfoncé / afficherMenu menu inactif menu visible entry/ positionnerDébut bouton droit levé / effacerMenu déplacement curseur / positionnerItem 30. EADS Matra Datavision - Confidentiel - 30.03.17

Activité Traitement de durée finie ou non Interruptible par un événement Exécutée durant un état (formalisme de Moore issu de OOA de Shlaer/Mellor) Diagramme d'états d'une ligne téléphonique (partiel) Connexion en cours do/ trouverConnexion composition du numéro numéro valide connexion faite faireSonner est l'activité qui s'exécute pendant cet état sonnerie do/ faireSonner connecté l'appelé décroche 31. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d'états : notations classe externe concernée par l'état de l'objet Agence Transporteur événement généré par l'activité événement généré pendant la transition envoyerHoraire réserverOption Proposition Réservation do/ imprimerContrat do/ trouverHoraire entry / débuterTrans exit / finirTrans proposer( horaire, trajet) [prix accepté] / emettreOption Evénement avec paramètres, condition et action Action en fin et en début d'état. Autre syntaxe possible : - proposer(horaire, trajet)[prix accepté] ^réserverOption : Transporteur / emettreOption Evénement avec paramètres, condition, événement généré et action Vue partielle d ’une borne interactive de réservation 32. EADS Matra Datavision - Confidentiel - 30.03.17

Variables d'états Attributs manipulés dans un diagramme d'états Leurs valeurs déterminent chaque état du diagramme Paramètres du diagramme d'états Les opérations (actions et activités) du diagramme d'états ont pour variables et arguments : Les variables d'états Les arguments des événements Axe Nord/Sud ouvert Description des états du système de feux de carrefour avec 4 variables d'état. Feux N/S : Vert Flèches gauche N/S : Rouge Feux E/O : Rouge Flèches gauche E/O : Rouge 33. EADS Matra Datavision - Confidentiel - 30.03.17

Exercice UML/MD1 34. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d'états structuré : objectifs Structurer les diagrammes d'états dans un système complexe Eviter l'explosion combinatoire des transitions Assemblage d'états Décomposition en sous-diagrammes Généralisation d'états regroupement des états au comportement commun, dans un super-état Possibilité d'y associer une généralisation d'événements. 35. EADS Matra Datavision - Confidentiel - 30.03.17

Assemblage d'états Assemblage d'états ou diagrammes imbriqués Structurer le diagramme en sous-diagrammes avec un minimum de communication entre eux A partir d'un diagramme de haut niveau, chaque état peut être redétaillé par un sous-diagramme Un sous-diagramme est nommé possède obligatoirement un état initial et un état final son événement de sortie est le seul visible à niveau supérieur. 36. EADS Matra Datavision - Confidentiel - 30.03.17

Exemple d'un assemblage d'états Diagramme d'états de niveau supérieur inactif décrocher composition Numéro numéro composé connexion Sous-Diagramme pour l'état composition Numéro composition Numéro nom du sous-diagramme Evénement généré [numéro valide] ^numéro composé tonalité do/jouer composer chiffre(n) do/ EnregisterNuméro entrée du sous-diagramme composer chiffre(n) 37. EADS Matra Datavision - Confidentiel - 30.03.17

Généralisation d'états Généralisation d'états en un super-état Généralisation d'états aux caractéristiques communes L'état de l'objet peut être l'un des sous-états du super-état Les sous-états héritent des transitions du super-état Un super-état peut avoir un état initial et/ou un état final 38. EADS Matra Datavision - Confidentiel - 30.03.17

Exemple d'une généralisation d'états Diagramme d'états d'une boîte de transmission automatique passer marche-arrière point-mort arrière passer point-mort passer point-mort passer marche-avant Transitions généralisées à tous les états dérivés Super-état "avant" avant plus plus première seconde troisième stop moins moins Transition généralisée Bilan des transitions généralisées passer marche-avant depuis l'état "point mort" fait transiter dans le super-état "avant", sous-état "première". stop fait transiter tous les sous-états de l'état "avant" dans le sous-état "première". passer point-mort fait transiter tous les sous-états de l'état "avant" dans l'état "point-mort" 39. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d'états et agrégat L'état d'un objet agrégat est l'union des états de ses composants Les composants concurrents changent d'état indépendamment les uns des autres Diagramme d'états et agrégat de classes Un diagramme d'état pour un objet agrégat est l'ensemble des diagrammes d'états de ses composants Un état de l'objet assemblé est un assemblage d'états de ses "parties". Les états composants ne sont plus concurrents lorsqu'une transition s'exprime par une condition dépendante d'un autre composant Agrégat Voiture Relation d'agrégat du modèle objet Composant Transmission Allumage Accélération 40. EADS Matra Datavision - Confidentiel - 30.03.17

Exemple d'un diagramme d'états assemblés Un état de Voiture est composée d'un état de Accélération d'un état de Transmission d'un état d'allumage Accélération Off appuyée levée On Transmission passer marche-arrière Allumage point-mort arrière Off passer point-mort tourner clé [transmission au point mort] passer point-mort passer marche-avant avant tourner clé pour arrêter plus plus première seconde troisième On Démarrage stop moins moins lâcher clé 41. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d'état et généralisation de classe Un diagramme d'états est hérité Héritage des états, des transitions, de la réponse aux événements Diagramme d'états supplémentaire d'une classe dérivée Utilisent des attributs différents de la super-classe Surcharge du diagramme d'états Permet d'exprimer une spécialisation par restriction 42. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d'états et concurrence intra-objet Concurrence à l'intérieur d'un état d'un objet Divisions des attributs et des liens en sous-ensembles Chaque sous-ensemble a un comportement dynamique propre Un sous-diagramme d'états par sous-ensemble L'état de l'objet est composé d'un état de chaque sous-diagramme Un même événement peut provoquer des transitions dans plusieurs sous-diagrammes 43. EADS Matra Datavision - Confidentiel - 30.03.17

Exemple d'un diagramme de concurrence intra-objet Affichage de l'heure, de la température et de la température cible par un thermostat Un état du thermostat est composé des états 1) "affichage heure" ou "affichage température" 2) "affichage température cible" Les états 1 et 2 sont concurrents Sous-diagramme d'états Interface utilisateur d'un thermostat En fonctionnement 2 seconde do/ Afficher Heure do/ Afficher Température 2 seconde concurrence démarrer édition( température) / changerTempératureCible Affichage Température cible do/ Afficher Température cible 44. EADS Matra Datavision - Confidentiel - 30.03.17

Synchronisation d'activités intra-objet concurrentes Plusieurs événements sont pris en compte à partir d'un même état L'ordre d'arrivée de ces événements est quelconque (simultané ou séquentiel) Le changement d'état n'a lieu que lorsque tous les événements sont pris en compte L'objet doit avoir des activités simultanées Sous-diagramme d'états pour un Distributeur de monnaie Accordé Emission do/ émettre carte do/ émettre argent prêt do/ fermerPanneau carte prise argent pris ^fin finir Transaction synchronisation: la carte et l'argent doivent être pris pour activer fermerPanneau Les 2 activités sont concurrentes (donc indépendantes) 45. EADS Matra Datavision - Confidentiel - 30.03.17

Synthèse du modèle dynamique et du modèle objet Diagramme d'états = comportement des instances Actions et activités = opérations Transitions peuvent correspondre à des opérations Nom de l'événement = nom de l'opération Arguments de l'événement = signature Un diagramme d'états par classe Variables d'états = attributs ou liens 46. EADS Matra Datavision - Confidentiel - 30.03.17

Synthèse entre modèle objet et modèle dynamique : Exemple bouton droit enfoncé / afficher menu inactif menu visible entry / positionnerDébut bouton droit levé / effacer déplacement curseur / positionnerItem positionItem : integer actif : boolean afficher effacer positionnerDebut positionnerItem( dc : DeplacementCurseur) Menu Variables d'état Opérations du diagramme d'états 47. EADS Matra Datavision - Confidentiel - 30.03.17

Exercice UML/MD2 48. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: diagramme d ’états, traitement Représenter l ’état de l ’exécution d ’un mécanisme déroulement d ’étapes regroupées séquentiellement dans des branches parallèles de flot de contrôle Diagramme d ’états particulier la majorité des états représentent un traitement la majorité des transitions sont tirées à la terminaison du traitement de l ’état source Traitement action traitement atomique; typiquement l ’invocation d ’une opération activité traitement qui a une durée constitué d ’un ensemble de traitements auxquels on peut associer un sous-diagramme d ’activités 49. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités:transitions, modèle tirées par les événements suivants: terminaison du traitement de l ’état précédent, ou disposition d ’un objet dans un certain état, ou l ’occurence d ’un signal, ou la satisfaction d ’une condition Un modèle d ’activités peut décrire principalement un cas d ’utilisation, une opération mais aussi un acteur, un noeud, un paquetage une classe un composant 50. EADS Matra Datavision - Confidentiel - 30.03.17

Personne::préparer boisson chercher boisson [café non trouvé] [soda non trouvé] synchronisation: ouverture branche parallèle décision: plusieurs transitions possibles dépendantes de conditions [soda trouvé] [café trouvé] mettre café dans filtre ajouter eau dans réservoir prendre tasse prendre canette soda mettre filtre dans machine synchronisation : fusion branche parallèle - pas de transition interne - pas de transition de sortie étiquetée par un événement allumer cafetière filtrer café verser café boire Personne::préparer boisson au moins une transition de sortie sur la complétude de l ’activité 51. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: classes Couloir d ’activité Distribution des activités sur des classes montrer les différentes responsabilités au sein d ’un traitement ou d ’une organisation Dans le business modeling, correspond à des départements différents Client Service ventes Réserve demander service équivalent à la ligne de vie dans le diagramme de séquence prendre commande payer remplir commande livrer commande percevoir commande 52. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: relation traitement et objet Les activités s ’opèrent sur des objets ou par des objets objets responsables d ’un traitement objets dont les valeurs sont utilisées ou déterminées par le traitement Catégories d ’objets responsable d ’un traitement possède un couloir correspondant à sa ligne de vie chaque couloir représente un objet distinct flot objet en entrée ou sortie d ’un traitement en état fréquemment, le même objet est manipulé par plusieurs activités apparaît plusieurs fois: chaque apparition dénotant un point différent de sa vie 53. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: exemple relation traitement et objet Client Service ventes Réserve demander service objet flot :Commande [passée] objet en sortie état de l ’objet (notation aussi utilisable dans diagramme de collaboration) prendre commande :Commande [enregistrée] payer objet en entrée remplir commande :Commande [remplie] livrer commande :Commande [livrée] percevoir commande 54. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: icônes de contrôle Spécifier des informations sur les transitions Pas nécessaire mais peu aider allumer cafetière récepteur du signal signal envoyé :Cafetière allumée envoyeur du signal filtrer café signal reçu lumière éteinte verser café 55. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: événement différé Evénement différé pour utilisation ultérieure normalement un événement non capté est perdu Revient à avoir une transition interne qui capte l ’événement le met dans une file d ’attente jusqu’à ce qu ’il soit captable ou détruit Une liste d’événement à différer par état Si une transition dépend de cet événement est tirée immédiatement s’il est encore dans la file d ’attente Si plusieurs transitions sont possibles, le premier événement arrivé est prioritaire allumer cafetière verser café allumée lumière éteinte filtrer café lumière éteinte/ defer prendre tasse 56. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: utilisation Utile pour le workflow les traitements parallèles Interprétation dépend de la perspective Conception c ’est une tâche qui doit être faite (par un humain ou un ordinateur) Analyse/Implémentation c ’est une méthode de classe Permet de choisir l ’ordre des choses spécifier les règles de séquencement Business modeling encourage le parallélisme Concurrence spécifie graphiquement le thread courant et quand la synchronisation à lieu 57. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: points forts et points faibles Force Supporte et encourage le parallélisme bon outil pour le workflow et multithreading Faiblesse Ne fait pas le lien direct entre activités et objets Indique ce qu ’il se passe mais ne dit pas qui le fait le couloir de vie est là pour empêcher ça Quand Analyser un cas d ’utilisation comprendre les actions qui doivent être prises Etude du workflow entre cas d ’utilisation lorsque les cas d ’usage interagissent ensemble Gérer du multithreading 58. EADS Matra Datavision - Confidentiel - 30.03.17

Diagramme d ’activités: points forts et points faibles Ne pas utiliser pour Modéliser la collaboration entre les objets utiliser un diagramme d ’interaction (séquence ou collaboration) Modéliser comment un objet se comporte au cours de sa vie utiliser un diagramme d ’états 59. EADS Matra Datavision - Confidentiel - 30.03.17