Title: Diagramme d
1Diagramme dactivités
- Introduction au formalisme
- Activité et Transition
- Nœud exécutable
- Nœud de contrôle
- Nœud dobjet
- Partitions
- Exceptions
2Introduction au formalisme
- Présentation
- Utilisation courante
3Présentation
- mettent laccent sur les traitements
- bien adaptés à la modélisation du cheminement de
flots de contrôle et de flots de
données. - représentent graphiquement le comportement dune
méthode ou le déroulement dun cas dutilisation
(famille de scénarios). - proches graphiquement des diagrammes
détats-transitions - interprétation très différente (risque de
confusion!) - pas spécifiquement rattachés à un classificateur
4Utilisation courante
- particulièrement adaptés à la description de
familles de scénarios de - cas dutilisation
- illustrent et consolident les descriptions
textuelles - la forme dorganigrammes les rend facilement
intelligibles (relation client) - on parle de modélisation de workflow
- permettent de spécifier des traitements a priori
séquentiels - offrent une vision très proche de celle des
langages de programmation impératifs
5Activité et Transition
- Action (action)
- Activité (activity)
- Groupe dactivités (activity group)
- Nœud dactivité (activity node)
- Transition
6Action (action)
- plus petit traitement qui puisse être exprimé en
UML - étapes discrètes à partir desquelles se
construisent les comportements - daction instruction élémentaire dun langage
de programmation - exemples
- affectation de valeur à des attributs
- accès à la valeur dune propriété structurelle
- (attribut ou terminaison
dassociation) - création dun nouvel objet ou lien
- calcul simple
- émission dun signal
- réception dun signal
7Types dactions prédéfinis UML.
Action appeler (call operation) invocation
dune opération sur un objet de manière synchrone
ou asynchrone. Action comportement (call
behavior) variante de laction call operation (
invoque directement une activité) Action envoyer
(send) crée un message et le transmet à un
objet cible Action accepter événement (accept
event) bloque lexécution en cours jusquà la
réception du type dévénement spécifié Action
accepter appel (accept call) variante de
laction accept event pour les appels synchrones
Action répondre (reply) message en réponse à
la réception dune action de type accept call
Action créer (create) instancier un
objet Action détruire (destroy) détruire un
objet. Action lever exception (raise exception)
lever explicitement une exception
8Activité (activity)
- Une activité définit un comportement décrit par
un séquencement organisé dunités dont les
éléments simples sont les actions. - Le flot
dexécution est modélisé par des nœuds reliés par
des arcs (transitions). - Le flot de contrôle
reste dans lactivité jusquà ce que les
traitements soient terminés. - Une activité est
un comportement (behavior en anglais) et à ce
titre peut être associée à des paramètres.
9Groupe dactivités (activity group)
- Cest une activité regroupant des nœuds et des
arcs. - Les nœuds et les arcs peuvent appartenir
à plus dun groupe. - Un diagramme dactivités
est lui-même un groupe dactivités
10Nœud dactivité (activity node)
- Un nœud dactivité est un type délément abstrait
permettant de représenter - les étapes le long du flot dune activité.
- Il existe trois familles de nœuds dactivités
- les nœuds dexécutions (executable node en
anglais) - les nœuds objets (object node en anglais)
- les nœuds de contrôle (control nodes en
anglais).
11Nœud dactivité (activity node)
- nœud représentant une action, qui est une
variété de nœud exécutable, - nœud objet,
- nœud de décision ou de fusion,
- nœud de bifurcation ou dunion,
- nœud initial,
- nœud final
- nœud final de flot.
12Exemple de diagramme dactivités
13Transition
- - Transition matérialisation du passage dune
activité vers une autre - spécifie lenchaînement des traitements et
définit le flot de contrôle. - représentée par une flèche en trait plein
- déclenchée dès que lactivité source est
terminée - provoque automatiquement et immédiatement le
début lactivité cible. - - franchie de manière atomique sans durée
perceptible.
14Nœud exécutable
- Nœud daction
- Nœud dactivité structurée (structured activity
node)
15Nœud exécutable
- Un nœud exécutable est un nœud dactivité quon
peut exécuter (i.e. une activité). - Il possède
un gestionnaire dexception qui peut capturer les
exceptions levées par le nœud, ou un de ses
nœuds imbriqués.
16Nœud daction
- - cest un nœud dactivité exécutable
- - constitue lunité fondamentale de
fonctionnalité exécutable dans une activité. - - représente une transformation dans le système
modélisé. - - doit avoir au moins un arc entrant.
- représenté par un rectangle aux coins arrondis
- contient sa description textuelle.
- UML nimpose aucune syntaxe on peut donc
utiliser une syntaxe proche de - celle dun langage de programmation particulier
ou du pseudo-code.
17Nœud daction
Certaines actions de communication ont une
notation spéciale
18Nœud dactivité structurée (structured activity
node)
- Cest un nœud dactivité exécutable qui
représente une portion structurée - dune activité donnée qui nest partagée avec
aucun autre nœud structuré, - à lexception dune imbrication éventuelle.
- - Les transitions dune activité structurée
doivent avoir leurs nœuds source et cible - dans le même nœud dactivité structurée.
- Les nœuds et les arcs contenus par nœud
dactivité structuré ne peuvent pas - être contenus dans un autre nœud dactivité
structuré. - - Un nœud structuré est dénoté par le stéréotype
structured et identifié par - un nom unique décrivant le comportement modélisé
dans lactivité structurée. - - Graphiquement, le contour dun nœud dactivité
structurée est en pointillé. - - Une ligne horizontale en trait continu sépare
le compartiment contenant - le stéréotype structured et le nom de
lactivité structurée du corps de lactivité - structurée.
19Nœud dactivité structurée
Exemple
20Nœud de contrôle
- Nœud initial
- Nœud final
- Nœud de décision et de fusion
- Nœud de bifurcation et dunion
21Nœud de contrôle
- Un nœud de contrôle est un nœud dactivité
abstrait utilisé pour coordonner - les flots entre les nœuds dune activité.
- Il existe plusieurs types de nœuds de contrôle
- nœud initial (initial node en anglais)
- nœud de fin dactivité (final node en anglais)
- nœud de fin de flot (flow final en anglais)
- nœud de décision (decision node en anglais)
- nœud de fusion (merge node en anglais)
- nœud de bifurcation (fork node en anglais)
- nœud dunion (join node en anglais).
22Nœud initial, Nœud final
- Un nœud initial est un nœud de contrôle à partir
duquel le flot débute lorsque - lactivité enveloppante est invoquée. Une
activité peut avoir plusieurs nœuds initiaux. - Un nœud initial possède un arc sortant et pas
darc entrant. - - Un nœud final est un nœud de contrôle possédant
un ou plusieurs arcs entrants et - aucun arc sortant. On distingue
- Nœud de fin dactivité
- Lorsque lun des arcs dun nœud de fin dactivité
est activé lexécution de lactivité - enveloppante sachève et tout nœud ou flot actif
au sein de lactivité enveloppante - est abandonné. Si lactivité a été invoquée par
un appel synchrone, un message (reply) - contenant les valeurs sortantes est transmis en
retour à lappelant. - Graphiquement, un nœud de fin dactivité est
représenté par un cercle vide contenant - un petit cercle plein.
- Nœud de fin de flot
- Lorsquun flot dexécution atteint un nœud de fin
de flot, le flot en question est terminé, - mais cette fin de flot na aucune incidence sur
les autres flots actifs de lactivité - enveloppante.
- Graphiquement, un nœud de fin de flot est
représenté par un cercle vide barré dun X.
23Nœud de décision
Nœud de décision (decision node) Cest un nœud de
contrôle qui permet de faire un choix entre
plusieurs flots sortants. Il possède un arc
entrant et plusieurs arcs sortants. Ces arcs
sont généralement accompagnés de conditions de
garde pour conditionner le choix. Si, quand le
nœud de décision est atteint, aucun arc en aval
nest franchissable cest que le modèle est mal
formé. (Voir Else)
24Nœud de décision et de fusion
Nœud de fusion (merge node) Un nœud de fusion est
un nœud de contrôle qui rassemble plusieurs flots
alternatifs entrants en un seul flot sortant. Il
nest pas utilisé pour synchroniser des flots
concurrents (cest le rôle du nœud dunion) mais
pour accepter un flot parmi plusieurs. Graphiqueme
nt, on représente un nœud de fusion, comme un
nœud de décision, par un losange.
25Nœud de bifurcation et dunion
- Nœud de bifurcation ou de débranchement (fork
node) - Nœud dunion ou de jointure (join node)
26Nœud de bifurcation (fork node)
- Un nœud de bifurcation, également appelé nœud
de débranchement est un nœud de contrôle qui
sépare un flot en plusieurs flots concurrents. -
Il possède donc un arc entrant et plusieurs arcs
sortants. - On apparie généralement un nœud de
bifurcation avec un nœud dunion pour équilibrer
la concurrence. - Graphiquement, on représente un
nœud de bifurcation par un trait plein
27Nœud dunion (join node)
- Un nœud dunion, également appelé nœud de
jointure est un nœud de contrôle qui
synchronise des flots multiples. - Un tel nœud
possède donc plusieurs arcs entrants et un seul
arc sortant. Lorsque tous les arcs entrants sont
activés, larc sortant lest également. Graphiquem
ent, on représente un nœud de union, comme un
nœud de bifurcation, par un trait plein
28Nœud dobjet
- Introduction
- Pin dentrée ou de sortie
- Pin de valeur (value pin)
- Flot dobjet
- Nœud tampon central (central buffer node)
- Nœud de stockage des données (data store node)
29Introduction
- Diagramme dactivités comment modéliser le
comportement du flot de contrôle - les flots de données napparaissent pas!
- cest un élément essentiel des traitements
(arguments des opérations, valeurs - de retour, ).
- un nœud dobjet permet de définir un flot
dobjet (i.e. un flot de données) - - représente lexistence dun objet généré par
une action dans une activité - et utilisé par dautres actions.
30Pin dentrée ou de sortie
Graphiquement, un pin est représenté par un petit
carré attaché à la bordure dune activité. Il
est typé et éventuellement nommé. Il peut
contenir des flèches indiquant sa direction
(entrée ou sortie)
31Pin dentrée ou de sortie
- Les pins permettent de
- - spécifier les valeurs passées en argument à une
activité et les valeurs de - retour
- lactivité ne peut débuter que si lon affecte
une valeur à chacun de ses pins - dentrée
- quand lactivité se termine, une valeur doit
être affectée à une valeur doit être - affectée à chacun de ses pins de sortie
- - les valeurs sont passées par copie une
modification des valeurs dentrée au - cours du traitement de laction nest visible
quà lintérieur de lactivité.
32Pin de valeur (value pin)
- - Un pin valeur est un pin dentrée qui fournit
une valeur à une action sans que - cette valeur ne provienne dun arc de flot
dobjets. - Un pin valeur est toujours associé à une valeur
spécifique. - Graphiquement, un pin de valeur se représente
comme un pin dentrée avec - la valeur associée écrite à proximité.
33 Flot dobjet
- - Un flot dobjets permet de passer des données
dune activité à une autre. - Un arc reliant un pin de sortie à un pin
dentrée est, par définition un flot dobjets - Le type du pin récepteur doit être identique ou
parent du type du pin émetteur. - - Il existe une autre représentation possible
dun flot dobjets, plus axée sur les - données
- Elle fait intervenir un nœud dobjet détaché
dune activité particulière
34 Nœud tampon central (central buffer node)
- - Un nœud tampon central est un nœud dobjet qui
accepte les entrées de plusieurs - nœuds dobjets ou produit des sorties vers
plusieurs nœuds dobjets. - - Les flots en provenance dun nœud tampon
central ne sont pas directement - connectés à des actions.
- Ce nœud modélise donc un tampon traditionnel qui
peut contenir des valeurs en - provenance de diverses sources et livrer des
valeurs vers différentes destinations.
35Nœud de stockage des données (data store node)
- - Un nœud de stockage des données est un nœud
tampon central particulier qui - assure la persistance des données.
- Lorsquune information est sélectionnée par un
flux sortant, linformation est - dupliquée et ne disparaît pas du nœud de
stockage des données comme ce - serait le cas dans un nœud tampon central.
- Lorsquun flux entrant véhicule une donnée déjà
stockée par le nœud de stockage - des données, cette dernière est écrasée par la
nouvelle.
36Partitions
- - Souvent appelées couloirs ou lignes deau
(swimlane) du fait de leur notation, - Permettent dorganiser les nœuds dactivités
dans un diagramme en opérant - des regroupements.
- - Elles nont pas de signification bien arrêtée,
mais correspondent souvent - à des unités dorganisation du modèle.
- Graphiquement, les partitions sont délimitées
par des lignes continues. - Les nœuds dactivités appartiennent forcément à
une et une seule partition. - - Les transitions peuvent traverser les
frontières des partitions.
37Partitions
38Exceptions