diagramme d'activité

77
Les diagrammes d’activité d’UML2.5 Réalisé par : Marwa Baich Encadrée par: M.Belangour Master SII

Transcript of diagramme d'activité

Page 1: diagramme d'activité

Les diagrammes d’activité d’UML2.5

Réalisé par :

Marwa Baich Encadrée par: M.Belangour

Master SII

Page 2: diagramme d'activité

Plan:

Introduction Diagramme d’activité Activité Les nœud Nœud de control Nœud d’objet Nœud exécutable Activity Edges Activity Groups

Page 3: diagramme d'activité

introduction générale

Page 4: diagramme d'activité

introduction générale

le méta-modèle de diagramme d’activité

Page 5: 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 comportementaux

Page 6: diagramme d'activité

Les Diagrammes UML

La hiérarchie des diagrammes UML

Page 7: diagramme d'activité

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

Page 8: diagramme d'activité

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

Page 9: diagramme d'activité

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

Page 10: diagramme d'activité

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

Page 11: diagramme d'activité

Les nœudsnœ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

Page 12: diagramme d'activité

Les nœudsnœ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

Page 13: diagramme d'activité

Les nœudsnœ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.

Page 14: diagramme d'activité

Control Nodes

Page 15: diagramme d'activité

Control NodesUn 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.

Page 16: diagramme d'activité

Control NodesNoeud 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

Page 17: diagramme d'activité

Control NodesNoeud 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

Page 18: diagramme d'activité

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

Page 19: diagramme d'activité

Control Nodes

Page 20: diagramme d'activité

Noeud final (final node)Exemple

lLe noeud final d’activité (activity final node)

Control Nodes

Page 21: diagramme d'activité

Noeud final (final node)Exemple

lLe noeud final de fluxt (flow final node)

Control Nodes

Page 22: diagramme d'activité

Control NodesNoeud 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

Page 23: diagramme d'activité

Control NodesNoeud 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éeNotation

Merge node with flow

Page 24: diagramme d'activité

Control NodesNoeud 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

Page 25: diagramme d'activité

Control NodesNoeud de bifurcation (fork node)

Exemple

Page 26: diagramme d'activité

Control NodesNoeud 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

Page 27: diagramme d'activité

Control NodesNoeud 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

Page 28: diagramme d'activité

Control NodesNoeud d’union (join node)Exemple

Page 29: diagramme d'activité

Object node

Page 30: diagramme d'activité

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

Page 31: diagramme d'activité

object nodeAbstract Syntaxe

Page 32: diagramme d'activité

Object node notations

Un nœud d’objet est noté par un rectangle contenant le nom du nœud.

name

Object node

object node

Page 33: diagramme d'activité

Object node notationsobject 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…]

Page 34: diagramme d'activité

Exemple

remplirimprimer Formulaire[vide]

Formulaire[rempli]

object node

Page 35: diagramme d'activité

Object node notationsobject 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

Page 36: diagramme d'activité

Formulaire[vide]imprimer

{UpperBound=10}

Object node notationsobject node

Le nœud Formulaire ne peut accepter plus de 10 exemplaires

Page 37: diagramme d'activité

Object node notationsobject 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.

Page 38: diagramme d'activité

Formulaire[vide]imprimer

Le nœud Formulaire ne peut accepter plus de 10 exemplaires

{ordering=FIFO}

Object node notationsobject node

Page 39: diagramme d'activité

Object node notationsobject 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

Uniquementceux qui correspond

aux inscriptions

« selection »Formulaire.type=Inscription

Contrainte de sélection sur un

nœud objet

Page 40: diagramme d'activité

object nodeNœ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.

Page 41: diagramme d'activité

object nodeNœud paramètre d’activité (activity parameter node)

Page 42: diagramme d'activité

object nodeNœ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»

Page 43: diagramme d'activité

« centralBufer»Formulaire imprimerremplir

Formulaire

object nodeNœud central de mémoire tampon (central buffer node)

objet

Page 44: diagramme d'activité

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 »

Page 45: diagramme d'activité

embaucher des employés

« datastore »base de données du personnel

examen employé

object nodeNœud de stockage des données (data store node)

« selection »Formulaire.type=Inscription

Assigner employé

Page 46: diagramme d'activité

Executable Nodes

Page 47: diagramme d'activité

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.

Page 48: diagramme d'activité

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

Page 49: diagramme d'activité

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.

Page 50: diagramme d'activité

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

45

56

6

7

7

Page 51: diagramme d'activité

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

Page 52: diagramme d'activité

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.

Page 53: diagramme d'activité

Activity Edges

Page 54: diagramme d'activité

Activity EdgesArc 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.

Page 55: diagramme d'activité

Activity EdgesArc 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.

Page 56: diagramme d'activité

Activity EdgesActivity 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.

Page 57: diagramme d'activité

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

Page 58: diagramme d'activité

Activity Edges

Page 59: diagramme d'activité

Activity Edges

Nœud de décision

Nœud de fusionFlux de contrôle

CommentaireExemple

Page 60: diagramme d'activité

3

2

75

4

Page 61: diagramme d'activité

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.

Page 62: diagramme d'activité

Diagramme d’activité de la recette de mousse au chocolat

1

1

2

2

3

3

Page 63: diagramme d'activité

• 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

Page 64: diagramme d'activité

représentations d’un arc de flot d'objets

Page 65: diagramme d'activité

1

1

2 2

3

3

Page 66: diagramme d'activité

Activity Groups

Page 67: diagramme d'activité

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

Page 68: diagramme d'activité

Activity Groups

Page 69: diagramme d'activité

Activity GroupsActivity PartitionsUne 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é.

Nom

de

la p

artit

ion

Nom

de

la p

artit

ion

Nom

de

la

Part

ition

1N

om d

e la

Pa

rtiti

on 2

Nom de la Partition 3

Nom de la Partition 4

Page 70: diagramme d'activité

Nom

de

la

Part

ition

1N

om d

e la

Pa

rtiti

on 2

Nom de la Partition 4

Nom de la Partition 3

Activity GroupsActivity Partitions

Nom

de

la p

artit

ion

Nom

de

la p

artit

ion

Page 71: diagramme d'activité

Activity GroupslActivity PartitionsExemple

Page 72: diagramme d'activité

Activity GroupslActivity PartitionsDans 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

Page 73: diagramme d'activité

Activity GroupslActivity PartitionslExemple

Page 74: diagramme d'activité

Activity GroupsActivity PartitionsLes 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é.

Page 75: diagramme d'activité

Activity GroupsRé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.

Page 76: diagramme d'activité

Activity GroupsRégions d'activité interruptible(Interruptible Activity Regions)Exemple

Page 77: diagramme d'activité

Merci de votre attention Et de votre engagement