Les diagrammes d’activité d’UML2.5
Réalisé par :
Marwa Baich
Encadrée par:
M.Belangour
Master SII
 Introduction
 Diagramme d’activité
 Activité
 Les nœud
 Nœud de control
 Nœud d’objet
 Nœud exécutable
 Activity Edges
 Activity Groups
introduction générale
introduction générale
le méta-modèle de diagramme d’activité
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
Les Diagrammes UML
La hiérarchie des diagrammes UML
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.
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
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.
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
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
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.
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.
Control Nodes
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.
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
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.
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
Control Nodes
Noeud final (final node)
Exemple
lLe noeud final d’activité (activity final node)
Control Nodes
Noeud final (final node)
Exemple
lLe noeud final de fluxt (flow final
node)
Control Nodes
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
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
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
Control Nodes
Noeud de bifurcation (fork node)
Exemple
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).
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
Control Nodes
Noeud d’union (join node)
Exemple
Object node
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
object node
Abstract Syntaxe
Object node notations
Un nœud d’objet est noté par un rectangle contenant le nom du nœud.
name
Object node
object node
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…]
Exemple
remplirimprimer
Formulaire
[vide]
Formulaire
[rempli]
object node
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.
Formulaire
[vide]
imprimer
{UpperBound=10}
Object node notations
object node
Le nœud Formulaire ne peut accepter
plus de
10 exemplaires
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.
Formulaire
[vide]
imprimer
Le nœud Formulaire ne peut accepter plus de
10 exemplaires
{ordering=FIFO}
Object node notations
object node
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
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.
object node
Nœud paramètre d’activité (activity parameter node)
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»
« centralBufer»
Formulaire
imprimerremplir
Formulaire
object node
Nœud central de mémoire tampon (central buffer node)
objet
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 »
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é
Executable Nodes
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.
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
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.
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
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
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.
Activity Edges
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.
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.
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.
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
Activity Edges
Activity Edges
Nœud de
décision
Nœud de fusion
Flux de contrôle
Commentaire
Exemple
3
2
75
4
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.
Diagramme d’activité de la recette
de mousse au chocolat
1
1
2
2
3
3
• 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
représentations d’un arc de flot d'objets
1
1
2 2
3
3
Activity Groups
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
Activity Groups
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é.
Nomdela
Partition1
Nomdela
Partition2
Nom de la
Partition 4
Nom de la
Partition 3
Activity Groups
Activity Partitions
Activity Groups
lActivity Partitions
Exemple
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
Activity Groups
lActivity Partitions
lExemple
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é.
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.
Activity Groups
Régions d'activité interruptible(Interruptible Activity
Regions)
Exemple
diagramme d'activité

diagramme d'activité

  • 1.
    Les diagrammes d’activitéd’UML2.5 Réalisé par : Marwa Baich Encadrée par: M.Belangour Master SII
  • 2.
     Introduction  Diagrammed’activité  Activité  Les nœud  Nœud de control  Nœud d’objet  Nœud exécutable  Activity Edges  Activity Groups
  • 3.
  • 4.
    introduction générale le méta-modèlede diagramme d’activité
  • 5.
    Les Diagrammes UML UML2.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.
    Les Diagrammes UML Lahiérarchie des diagrammes UML
  • 7.
    Diagramme d’activité  Undiagramme 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.
    Intérêts des diagrammesd’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.
    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.
    Composition d’un diagrammed’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.
    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.
    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.
    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.
  • 15.
    Control Nodes Un noeudde 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.
    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.
    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.
    Noeud final (finalnode) 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.
  • 20.
    Noeud final (finalnode) Exemple lLe noeud final d’activité (activity final node) Control Nodes
  • 21.
    Noeud final (finalnode) Exemple lLe noeud final de fluxt (flow final node) Control Nodes
  • 22.
    Control Nodes Noeud defusion (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.
    Control Nodes Noeud dedé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.
    Control Nodes Noeud debifurcation (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.
    Control Nodes Noeud debifurcation (fork node) Exemple
  • 26.
    Control Nodes Noeud debifurcation (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.
    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.
    Control Nodes Noeud d’union(join node) Exemple
  • 29.
  • 30.
    Un Nœud d’objetest 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.
  • 32.
    Object node notations Unnœud d’objet est noté par un rectangle contenant le nom du nœud. name Object node object node
  • 33.
    Object node notations objectnode  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.
  • 35.
    Object node notations objectnode  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.
    Formulaire [vide] imprimer {UpperBound=10} Object node notations objectnode Le nœud Formulaire ne peut accepter plus de 10 exemplaires
  • 37.
    Object node notations objectnode 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.
    Formulaire [vide] imprimer Le nœud Formulairene peut accepter plus de 10 exemplaires {ordering=FIFO} Object node notations object node
  • 39.
    Object node notations objectnode 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.
    object node Nœud paramètred’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.
    object node Nœud paramètred’activité (activity parameter node)
  • 42.
    object node Nœud centralde 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.
    « centralBufer» Formulaire imprimerremplir Formulaire object node Nœudcentral de mémoire tampon (central buffer node) objet
  • 44.
    object node  Unnœ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.
    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.
  • 47.
    Executable Nodes  Unnœ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.
    Executable Nodes  Généréequand 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.
    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.
    Executable Nodes  Sinous 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.
    Executable Nodes • Lecorps 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.
    Executable Nodes  Quandl'exécution du gestionnaire se termine, l'exécution se poursuit comme si l'activité protégée s'était terminé normalement.
  • 53.
  • 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.
    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.
    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.
    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.
  • 59.
    Activity Edges Nœud de décision Nœudde fusion Flux de contrôle Commentaire Exemple
  • 60.
  • 61.
    Flux d’objet (ObjectFlow):  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.
    Diagramme d’activité dela recette de mousse au chocolat 1 1 2 2 3 3
  • 63.
    • Un flotd’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.
  • 65.
  • 66.
  • 67.
    Activity Groups Les groupesd '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.
  • 69.
    Activity Groups Activity Partitions Unepartition 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.
    Nomdela Partition1 Nomdela Partition2 Nom de la Partition4 Nom de la Partition 3 Activity Groups Activity Partitions
  • 71.
  • 72.
    Activity Groups lActivity Partitions Danscertaines 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.
  • 74.
    Activity Groups Activity Partitions Lestype 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.
    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.
    Activity Groups Régions d'activitéinterruptible(Interruptible Activity Regions) Exemple

Notes de l'éditeur

  • #42 Une carte de circuit imprimé
  • #62 Il existe deux types de ActivityEdge :