Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

diagramme d'activité

1,008 views

Published on

Les diagrammes d'activité d'UML 2.5

Published in: Technology
  • Be the first to comment

  • Be the first to like this

diagramme d'activité

  1. 1. Les diagrammes d’activité d’UML2.5 Réalisé par : Marwa Baich Encadrée par: M.Belangour Master SII
  2. 2.  Introduction  Diagramme d’activité  Activité  Les nœud  Nœud de control  Nœud d’objet  Nœud exécutable  Activity Edges  Activity Groups
  3. 3. introduction générale
  4. 4. introduction générale le méta-modèle de diagramme d’activité
  5. 5. Les Diagrammes UML UML 2.5 propose treize types de diagrammes pour représenter les différents points de vue de modélisation. Ils se répartissent en deux grands groupes: Diagrammes structurels Diagrammes comportementaux
  6. 6. Les Diagrammes UML La hiérarchie des diagrammes UML
  7. 7. Diagramme d’activité  Un diagramme d’activité est une variante des diagrammes d’états-transitions, dans lequel les états correspondent à l’exécution d’actions ou d’activités, et les transitions sont automatiques .  Un diagramme d’activité peut être attaché à n’importe quel élément de modélisation afin de visualiser, spécifier, construire ou documenter le comportement de cet élément.  Les diagrammes d’activité d’UML constituent un outil de modélisation des systèmes workflows, des modèles orientés service et des processus métiers.  Une activité peut varier d’une tâche humaine à une tâche complètement automatisée.
  8. 8. Intérêts des diagrammes d’activité  Représenter graphiquement le comportement interne d’une opération.  Utiliser le mécanisme de synchronisation pour représenter les successions d’états synchrones  Utiliser des transitions automatiques évite la nécessité d’existence d’évènement de transition pour avoir un changement d’états.  Le diagramme d’activité est le plus approprié pour modéliser la dynamique d’une tâche ou d’un cas d’utilisation
  9. 9. Activité(activity)  Une activité est la spécification du comportement paramétré par un séquencement organisé d’unités subordonnées, dont les éléments simples sont les actions.  flot d’exécution est modélisé par des noeuds reliés par des arcs.  - Le flot de contrôle reste dans l’activité jusqu’à ce que les traitements soient terminés.  Une activité est un comportement, et à ce titre peut être associée à des paramètres. Une activité regroupant des noeuds et des arcs est appelée un groupe d’activités.
  10. 10. Composition d’un diagramme d’activité Les nœuds Noeud d’activité Une région d’expansion Une partition d’activité Une région d’activité interruptible Une pré-condition ou post-condition locale Un ensemble de paramètres
  11. 11. Les nœuds nœud d’activité : Nœud d’objet  Broche (Pin) est un noeud objet connecté en entrée ou en sortie d’une activité.  Nœud paramètre d’activité, l’un des nœuds objet, il décrit les entrées ou les sorties des activités.  Nœud central de mémoire tampon, destiné pour la gestion des flux provenant de multiples sources.  Noeud d’expansion, est un noeud d’objet qui peut être utilisé pour indiquer un flux à travers les limites d’une région d’expansion
  12. 12. Les nœuds nœud d’activité : Nœud de contrôle  Nœud initial est un nœud de contrôle à partir duquel le flot débute.  Noeud final est un noeud de contrôle dans lequel le flux d’activité s’arrête  Noeud de fusion ou interclassement, il permet de faire un choix entre plusieurs flux sortants. Les flux sortants sont sélectionnés en fonction de la condition de garde.  Noeud de décision est un noeud de contrôle qui sépare un flux d’entrée en plusieurs flots concurrents en sortie.  Noeud de bifurcation est un noeud de contrôle qui synchronise des flots multiples. Il possède plusieurs arcs entrants et un seul arc sortant.
  13. 13. Les nœuds nœud d’activité : Nœud exécutable Un noeud exécutable est une classe abstraite pour les noeuds d’activité qui peuvent être exécutés. Il possède un gestionnaire d’exception qui peut capturer les exceptions levées par le nœud, ou par l’un de ses nœuds imbriqués.
  14. 14. Control Nodes
  15. 15. Control Nodes Un noeud de contrôle est un noeud d’activités abstrait utilisé pour coordonner les flux entre les noeuds d’une activité. La figure ci-dessous présente le méta-modele.
  16. 16. Control Nodes Noeud initial (initial node) Un noeud initial est un noeud de contrôle à partir duquel le flot débute. Il possède un arc sortant et pas d’arc entrant. Dans une activité on peut avoir plusieurs noeuds initiaux. Si une activité a plus d'un InitialNode, puis en appelant l'activité commence multiples flux de contrôles simultanés, un pour chaque InitialNode. Notation
  17. 17. Control Nodes Noeud initial (initial node) • Un noeud initial ne doit avoir aucun Arc d’activité entrants, ce qui signifie les noeud initiales appartenant à une activité toujours être activé lorsque l'activité commence l'exécution et un seul jeton de contrôle est placé sur chacun de ces noeuds initiales lorsque l'exécution de l'activité commence. • Les Arcs d’activité sortants d'un noeud initiale doivent tous être Flux de contrôle Le jeton de contrôle placé sur un oeud initial est offert en même temps sur tous les Flux de contrôle sortants. • Les noeuds initiales sont une exception à la règle selon laquelle ControlNodes ne peuvent pas "maintenir" des jetons, mais seulement gérer leurs flux.
  18. 18. Noeud final (final node) Un noeud final est un noeud de contrôle dans lequel le flux d’activité s’arrête. Un nœud final peut avoir un ou plusieurs arcs entrants et aucun arc sortant. On peut distinguer deux types de noeuds finaux :  Les noeuds finaux d’activité (activity final node) : Dans un nœud final d’activité, Lorsque l’un de ses arcs entrants est activé, l’exécution de l’activité en cour s’achève, et tout nœud ou flux actif au sein de cette activité est abandonné.  Les noeuds finaux de fluxt (flow final node) : L’arrivé du flux d’exécution à un nœud final de flux, implique la terminaison du flux de ce dernier. Mais cette fin n’a aucun effet sur les autres flux actifs de l’activité.. Control Nodes
  19. 19. Control Nodes
  20. 20. Noeud final (final node) Exemple lLe noeud final d’activité (activity final node) Control Nodes
  21. 21. Noeud final (final node) Exemple lLe noeud final de fluxt (flow final node) Control Nodes
  22. 22. Control Nodes Noeud de fusion (merge node) Un noeud de fusion est un noeud de contrôle, il rassemble plusieurs flots alternatifs entrants en un seul flot sortant. L’utilité de ce nœud n’est pas pour synchroniser des flux concurrents mais pour accepter un flux (en sortie) parmi plusieurs flux entrants. Notation Merge node with flow
  23. 23. Control Nodes Noeud de décision (decision node) Un noeud de décision est un noeud de contrôle, il permet de faire un choix entre plusieurs flux sortants. Les flux sortants sont sélectionnés en fonction de la condition de garde qui est associée à chaque arc sortant. (Possibilité d’existence du problème du choix indéterministe). Si aucun arc en sortie n’est franchissable, le modèle est mal formé, et l’utilisation d’une garde [else] est recommandée. Notation Merge node with flow
  24. 24. Control Nodes Noeud de bifurcation (fork node) Un noeud de bifurcation est un noeud de contrôle qui sépare un flux d’entrée en plusieurs flots concurrents en sortie. Notation Fork node
  25. 25. Control Nodes Noeud de bifurcation (fork node) Exemple
  26. 26. Control Nodes Noeud de bifurcation (fork node)  Un ForkNode doit avoir exactement un ActivityEdge entrant.  Jetons offerts à un ForkNode sont offerts à tous les bords d'activité sortants du nœud.  Si au moins une de ces offres est acceptée, les jetons offerts sont retirés de leur source d'origine et l'accepteur reçoit une copie des jetons. Toute autre offre qui n'a pas été accepté sur un bord sortant en raison de l'échec de la cible de l'accepter reste en attente à partir du bord et peut être acceptée par la cible à une date ultérieure.  Ces bords acceptent effectivement des copies séparées des jetons offerts, et les offres faites aux bords doivent se tenir à leurs objectifs dans l'ordre dans lequel elles ont été acceptées par le bord (premier entré, premier sorti).
  27. 27. Control Nodes Noeud d’union (join node)  Un noeud d’union (noeud de jointure) est un noeud de contrôle qui synchronise des flots multiples. Il possède plusieurs arcs entrants et un seul arc sortant. Ce dernier ne peut être activé que lorsque tous les arcs entrants sont activés. Notation join node
  28. 28. Control Nodes Noeud d’union (join node) Exemple
  29. 29. Object node
  30. 30. Un Nœud d’objet est une sorte de Nœud d’activité C’est une méta-classe abstraite permettant de définir les flux d’objets dans les diagrammes d’activité. Il représente l’existence d’un objet généré par une action dans une activité et utilisé par d’autres actions. object node
  31. 31. object node Abstract Syntaxe
  32. 32. Object node notations Un nœud d’objet est noté par un rectangle contenant le nom du nœud. name Object node object node
  33. 33. Object node notations object node  On représente un objet dans un diagramme d’activités comme un élément d’entrée en lui affectant une flèche dirigée vers une action  La production d’un objet en sortie d’une action se représente par une flèche dirigée vers cet objet.  La direction de la flèche indique le sens du flux d’objets.  Lorsqu’une action traite un objet ,il a la capacité de modifier l’état de ce dernier.  La spécification du langage UML propose de décrire l’état courant de l’objet en ajoutant à son libellé l’état entre crochets . Name [state,state…]
  34. 34. Exemple remplirimprimer Formulaire [vide] Formulaire [rempli] object node
  35. 35. Object node notations object node  Par défaut, chaque nœud détient un nombre infini d’objets. Cependant, il est parfois nécessaire de déterminer qu’un nœud ne peut détenir qu’un nombre fini d’éléments.  Pour cela, la contrainte de type upperBound est ajoutée avec une valeur définie indiquant le nombre maximum d’objets.  Cette limite impose au nœud d’accepter les objets entrants tant que la valeur maximum n’est pas atteinte.  La valeur par défaut est *. Cela signifie qu'il n'existe aucune limite.
  36. 36. Formulaire [vide] imprimer {UpperBound=10} Object node notations object node Le nœud Formulaire ne peut accepter plus de 10 exemplaires
  37. 37. Object node notations object node Vous pouvez spécifier le stockage des éléments dans une mémoire tampon en définissant les propriétés du nœud d'objet : Définissez la propriété Ordering :  Non ordonné pour spécifier un ordre aléatoire ou non spécifié. (valeur par défaut).  Ordonné pour spécifier un ordre d'après une clé spécifique.  Fifo pour spécifier l'ordre du premier entré, premier sorti.  Lifo pour spécifier l'ordre du dernier entré, premier sorti.
  38. 38. Formulaire [vide] imprimer Le nœud Formulaire ne peut accepter plus de 10 exemplaires {ordering=FIFO} Object node notations object node
  39. 39. Object node notations object node Un filtre est défini en ajoutant une contrainte de sélection directement sur les flèches représentant les flux d’objets limitant le passage d’élément ,la figure illustre la représentation de la contrainte sur le flux d’objets en ajoutant une annotation sur l’objet de type « selection». imprimer remplir formulaire Tous les Formulaires Uniquement ceux qui correspond aux inscriptions « selection » Formulaire.type=Inscription Contrainte de sélection sur un nœud objet
  40. 40. object node Nœud paramètre d’activité (activity parameter node) • C’est l’un des noeuds objet, il décrit les entrées ou les sorties des activités. • Il est toujours associé avec un paramètre de l’activité. • Nœud d'objet via lequel des données peuvent être reçues ou produites par l'activité. • Utilisé quand l'activité représentée par le diagramme est appelée à partir d'une autre activité ou quand le diagramme décrit une opération ou une fonction.
  41. 41. object node Nœud paramètre d’activité (activity parameter node)
  42. 42. object node Nœud central de mémoire tampon (central buffer node) • Le nœud de mémoire tampon centralisé décrit un nœud fournissant emplacement de destiné à mémoriser les objets entrants et sortants des flux d’objets .Plus précisément ,cette mémoire est capable de retenir les valeurs de différentes sources et fournir ces valeurs à différentes cible. • L’ordre des objets suit la même règle que le nœud d’objet simple. • La spécification du langage UML symbolise cette mémoire tampon sous la forme d’un rectangle placé directement sur le flux de contrôle . « centralBufer»
  43. 43. « centralBufer» Formulaire imprimerremplir Formulaire object node Nœud central de mémoire tampon (central buffer node) objet
  44. 44. object node  Un nœud de stockage de données est un nœud acceptant des données de différentes sources transmissibles à plusieurs cible.  Au contraire du nœud de mémoire tampon, les informations traversant un nœud de stockage sont copiées.  Ces données sont réutilisables par d’autre actions tant que le flux de contrôle n’atteint pas un nœud final.  Lorsque le nœud final est atteint ,les informations contenues dans le nœud de stockage sont détruites. Nœud de stockage des données (data store node) « datastore »
  45. 45. embaucher des employés « datastore » base de données du personnel examen employé object node Nœud de stockage des données (data store node) « selection » Formulaire.type=Inscription Assigner employé
  46. 46. Executable Nodes
  47. 47. Executable Nodes  Un nœud exécutable est une classe abstraite pour les nœuds d’activité qui peuvent être exécutés. Il possède un gestionnaire d’exception qui peut capturer les exceptions levées par le nœud, ou par l’un de ses nœuds imbriqués.
  48. 48. Executable Nodes  Générée quand une situation anormale entrave le déroulement nominal d’une tâche o générée automatiquement pour signaler une erreur d'exécution (débordement d’indice de tableau, division par zéro, . . . ) o soulevée explicitement par une action pour signaler une situation problématique. o Une exception peut être récupérée par un gestionnaire d’exception (exception Handler) Exceptions  Un gestionnaire d’exception est une activité possédant une broche d’entrée du type de l’exception qu’il gère et lié à l’activité qu’il protège par un arc en zigzag ou un arc classique orné d’une petite flèche en zigzag. Le gestionnaire d’exception doit avoir les mêmes broches de sortie que le bloc qu’il protège
  49. 49. Executable Nodes  Activité avec un pin d’entrée du type de l’exception gérée.  Lié `a l’activité qu’il protégé par un arc en zigzag.  Possède les mêmes pins de sortie que le bloc qu’il protège.
  50. 50. Executable Nodes  Si nous voulons ajouter l’exception possible consistant à laisser brûler le chocolat pendant qu’on s’occupe des œufs, il faut introduire le concept de région interruptible et de flot d’exception. 1 1 2 2 3 3 4 4 5 5 6 6 7 7
  51. 51. Executable Nodes • Le corps de l’exception ne doit avoir aucun arc entrant ou sortant explicite. • Les broches du corps du gestionnaire d’exception doivent correspondre en nombre et en type aux broches de sortie du nœud protégé. • Seule une activité structurée peut avoir des gestionnaires d’exception. • Le nœud protégé et le gestionnaire d’exception doivent se trouver au même niveau d’emboîtement. • Tout corps d’exception a un nœud objet d’entrée. Règles
  52. 52. Executable Nodes  Quand l'exécution du gestionnaire se termine, l'exécution se poursuit comme si l'activité protégée s'était terminé normalement.
  53. 53. Activity Edges
  54. 54. Activity Edges Arc d’activité (ActivityEdge)  Un arc d’activité (activity Edge) est une classe abstraite pour les connexions dirigées entre deux nœuds d’activités Nous détaillons deux types particuliers d’arcs d’activités  Un arc d’activités possède exactement un nœud d’activité source et un nœud d’activité cible.
  55. 55. Activity Edges Arc d’activité (ActivityEdge)  Un arc d’activité (activity Edge) est une classe abstraite pour les connexions dirigées entre deux nœuds d’activités Nous détaillons deux types particuliers d’arcs d’activités  Un arc d’activités possède exactement un nœud d’activité source et un nœud d’activité cible.
  56. 56. Activity Edges Activity Edge ObjectFlow +isMulticast : Boolean = false + isMultireceive : Boolean = false ControlFlow Arc d’activité (ActivityEdge)  Un arc d’activité est une connexion dirigée entre deux nœuds d’activité. Si l’arc a un nom, il est noté près de la flèche.
  57. 57. Flux de contrôle (Control Flow) Notation flux de contrôle. Flux de contrôle (Control Flow)  Un flux de contrôle est un arc qui permet de décrire le séquencement de deux noeuds d’activité  un flux de contrôle démarre un nœud d’activité, après la terminaison d’une activité précédente  Il ne transmet pas des données.  Connecteur qui montre le flux de contrôle entre des actions. Pour interpréter le diagramme, imaginez qu'un jeton s'écoule d'une action à la suivante.  connectent des actions pour indiquer que l’action pointée par la flèche ne peut pas démarrer tant que l’action source n’est pas terminée. • Un arc de flot de contrôle ne peut pas être relié à un nœud objet. • Les arcs de flot de contrôle étant un type d’arc d’activité, ceux-ci doivent respecter les contraintes de ces derniers. Règles Activity Edges
  58. 58. Activity Edges
  59. 59. Activity Edges Nœud de décision Nœud de fusion Flux de contrôle Commentaire Exemple
  60. 60. 3 2 75 4
  61. 61. Flux d’objet (Object Flow):  Un flot d’objets permet de passer des données d’une activité à une autre.  Un arc de flux d’objets est un arc qui permet de transmettre des données entre des nœuds d’objet.  est un trajet le long duquel des objets peuvent passer  Un objet est représentée par un rectangle.  Autre façon pour montrer la même chose Lorsqu'une activité met un objet dans un état et que cet objet est immédiatement réutilisé par une autre activité, cela dénote une transition entre deux activités avec un échange de données, et le nœud d'objet représente cet échange de données.
  62. 62. Diagramme d’activité de la recette de mousse au chocolat 1 1 2 2 3 3
  63. 63. • Un flot d’objet doit avoir une action à au plus une de ses fins . • Les nœuds d’objet connectés par un flot d’objet, avec l’intervention optionnelle de nœuds de contrôle, doivent avoir des types compatibles. • Les nœuds d’objet connectés par un flot d’objet, • Un flot d’objets peut avoir un comportement de sélection seulement s’il a un nœud objet comme source. Règles
  64. 64. représentations d’un arc de flot d'objets
  65. 65. 1 1 2 2 3 3
  66. 66. Activity Groups
  67. 67. Activity Groups Les groupes d 'activité (ActivityGoups) sont un groupement construit pour ActivityNodes et ActivityEdges. Nœuds et arêtes peuvent appartenir à plus d'un groupe. Les groupes d 'activité décrit deux types concrets de groupes d'activité, des partitions d'activité et Régions d'activité interruptible. Les types des groupes d'activité :  Activity Partitions  nterruptible Activity Regions
  68. 68. Activity Groups
  69. 69. Activity Groups Activity Partitions Une partition d'activité est une sorte de ActivityGroup pour identifier ActivityNodes qui ont certaines caractéristiques en commun. Les partitions d'activité peuvent partager le contenu. Ils correspondent souvent à des unités d'organisation dans un modèle d'affaires. Ils peuvent être utilisés pour allouer des ressources ou des caractéristiques parmi les noeuds d'une activité.
  70. 70. Nomdela Partition1 Nomdela Partition2 Nom de la Partition 4 Nom de la Partition 3 Activity Groups Activity Partitions
  71. 71. Activity Groups lActivity Partitions Exemple
  72. 72. Activity Groups lActivity Partitions Dans certaines situations, de diagrammes, l'utilisation des lignes parallèles pour délimiter Activité partitions n'est pas pratique.donc on place le nom de la partition entre parenthèses ci-dessus le nom de nœud activité (Nom de le partition) action_1
  73. 73. Activity Groups lActivity Partitions lExemple
  74. 74. Activity Groups Activity Partitions Les type d'élément qui représente la partition : Classificateur :Comportements invoqués dans la partition sont de la responsabilité des instances du classificateur que la partition représente.  Le contexte de tous les comportements invoquées est le classificateur. Spécification d'instance : Comportements invoqués dans la partition sont de la responsabilité de l'instance modélisé par la spécification d'instance que la partition représente.  Le contexte de tous les comportements invoquées doit être un classificateur de l'InstanceSpecification. Propriété :Comportements invoqués dans la partition sont la responsabilité de l'instance ou les instances tenue par la propriété que la partition représente.  Le contexte de tous les comportements invoquées est le type de la propriété.
  75. 75. Activity Groups Régions d'activité interruptible(Interruptible Activity Regions) Une activité Région interruptible est un ActivityGroup qui prend en charge la résiliation d'une partie d'une activité. Une activité Région interruptible ne contient que ActivityNodes. Il identifie également comme une interruption de certaines Bords Bords d'activité qui ont leur source au sein de la région et leur cible en dehors de la région. Quand un jeton offert le long d'un interruptingEdge est acceptée et traverse ce bord, puis l'exécution de toutes containedNodes de la région est terminée et tous les jetons sont éliminés d'eux.
  76. 76. Activity Groups Régions d'activité interruptible(Interruptible Activity Regions) Exemple

×