Vous êtes sur la page 1sur 38

Diagramme dactivits

Introduction au formalisme Activit et Transition Nud excutable Nud de contrle Nud dobjet Partitions Exceptions
1

Introduction au formalisme
Prsentation Utilisation courante

Prsentation
- mettent laccent sur les traitements - bien adapts la modlisation du cheminement de flots de contrle et de flots de donnes. - reprsentent graphiquement le comportement dune mthode ou le droulement dun cas dutilisation (famille de scnarios). - proches graphiquement des diagrammes dtats-transitions - interprtation trs diffrente (risque de confusion!) - pas spcifiquement rattachs un classificateur

Utilisation courante
- particulirement adapts la description de familles de scnarios de cas dutilisation - illustrent et consolident les descriptions textuelles - la forme dorganigrammes les rend facilement intelligibles (relation client) - on parle de modlisation de workflow - permettent de spcifier des traitements a priori squentiels - offrent une vision trs proche de celle des langages de programmation impratifs

Activit et Transition
Action (action) Activit (activity) Groupe dactivits (activity group) Nud dactivit (activity node) Transition

Action (action)
- plus petit traitement qui puisse tre exprim en UML - tapes discrtes partir desquelles se construisent les comportements - daction = instruction lmentaire dun langage de programmation - exemples : affectation de valeur des attributs accs la valeur dune proprit structurelle (attribut ou terminaison dassociation) cration dun nouvel objet ou lien calcul simple mission dun signal rception dun signal

Types dactions prdfinis UML.

Action appeler (call operation) invocation dune opration sur un objet de manire synchrone ou asynchrone. Action comportement (call behavior) variante de laction call operation ( invoque directement une activit) Action envoyer (send) cre un message et le transmet un objet cible Action accepter vnement (accept event) bloque lexcution en cours jusqu la rception du type dvnement spcifi Action accepter appel (accept call) variante de laction accept event pour les appels synchrones Action rpondre (reply) message en rponse la rception dune action de type accept call Action crer (create) instancier un objet Action dtruire (destroy) dtruire un objet. Action lever exception (raise exception) lever explicitement une exception
7

Activit (activity)
- Une activit dfinit un comportement dcrit par un squencement organis dunits dont les lments simples sont les actions. - Le flot dexcution est modlis par des nuds relis par des arcs (transitions). - Le flot de contrle reste dans lactivit jusqu ce que les traitements soient termins. - Une activit est un comportement (behavior en anglais) et ce titre peut tre associe des paramtres.

Groupe dactivits (activity group)


- Cest une activit regroupant des nuds et des arcs. - Les nuds et les arcs peuvent appartenir plus dun groupe. - Un diagramme dactivits est lui-mme un groupe dactivits

Nud dactivit (activity node)


Un nud dactivit est un type dlment abstrait permettant de reprsenter les tapes le long du flot dune activit. Il existe trois familles de nuds dactivits : les nuds dexcutions (executable node en anglais) ; les nuds objets (object node en anglais) ; les nuds de contrle (control nodes en anglais).

10

Nud dactivit (activity node)

nud reprsentant une action, qui est une varit de nud excutable, nud objet, nud de dcision ou de fusion, nud de bifurcation ou dunion, nud initial, nud final nud final de flot.

11

Exemple de diagramme dactivits

12

Transition
- Transition: matrialisation du passage dune activit vers une autre - spcifie lenchanement des traitements et dfinit le flot de contrle. - reprsente par une flche en trait plein - dclenche ds que lactivit source est termine - provoque automatiquement et immdiatement le dbut lactivit cible. - franchie de manire atomique sans dure perceptible.

13

Nud excutable
Nud daction Nud dactivit structure (structured activity node)

14

Nud excutable
- Un nud excutable est un nud dactivit quon peut excuter (i.e. une activit). - Il possde un gestionnaire dexception qui peut capturer les exceptions leves par le nud, ou un de ses nuds imbriqus.

15

Nud daction
- cest un nud dactivit excutable - constitue lunit fondamentale de fonctionnalit excutable dans une activit. - reprsente une transformation dans le systme modlis. - doit avoir au moins un arc entrant. - reprsent 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.

16

Nud daction
Certaines actions de communication ont une notation spciale

17

Nud dactivit structure (structured activity node)


-Cest un nud dactivit excutable qui reprsente une portion structure dune activit donne qui nest partage avec aucun autre nud structur, lexception dune imbrication ventuelle. - Les transitions dune activit structure doivent avoir leurs nuds source et cible dans le mme nud dactivit structure. - Les nuds et les arcs contenus par nud dactivit structur ne peuvent pas tre contenus dans un autre nud dactivit structur. - Un nud structur est dnot par le strotype structured et identifi par un nom unique dcrivant le comportement modlis dans lactivit structure. - Graphiquement, le contour dun nud dactivit structure est en pointill. - Une ligne horizontale en trait continu spare le compartiment contenant le strotype structured et le nom de lactivit structure du corps de lactivit structure.

18

Nud dactivit structure


Exemple:

19

Nud de contrle
Nud initial Nud final Nud de dcision et de fusion Nud de bifurcation et dunion

20

Nud de contrle
Un nud de contrle est un nud dactivit abstrait utilis pour coordonner les flots entre les nuds dune activit.
Il existe plusieurs types de nuds de contrle :

nud initial (initial node en anglais) ; nud de fin dactivit (final node en anglais) nud de fin de flot (flow final en anglais) ; nud de dcision (decision node en anglais) ; nud de fusion (merge node en anglais) ; nud de bifurcation (fork node en anglais) ; nud dunion (join node en anglais).

21

Nud initial, Nud final

- Un nud initial est un nud de contrle partir duquel le flot dbute lorsque lactivit enveloppante est invoque. Une activit peut avoir plusieurs nuds initiaux. Un nud initial possde un arc sortant et pas darc entrant. - Un nud final est un nud de contrle possdant un ou plusieurs arcs entrants et aucun arc sortant. On distingue: Nud de fin dactivit Lorsque lun des arcs dun nud de fin dactivit est activ lexcution de lactivit enveloppante sachve et tout nud ou flot actif au sein de lactivit enveloppante est abandonn. Si lactivit a t invoque par un appel synchrone, un message (reply) contenant les valeurs sortantes est transmis en retour lappelant. Graphiquement, un nud de fin dactivit est reprsent par un cercle vide contenant un petit cercle plein. Nud de fin de flot Lorsquun flot dexcution atteint un nud 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 nud de fin de flot est reprsent par un cercle vide barr dun X.
22

Nud de dcision
Nud de dcision (decision node) Cest un nud de contrle qui permet de faire un choix entre plusieurs flots sortants. Il possde un arc entrant et plusieurs arcs sortants. Ces arcs sont gnralement accompagns de conditions de garde pour conditionner le choix. Si, quand le nud de dcision est atteint, aucun arc en aval nest franchissable cest que le modle est mal form. (Voir Else)

23

Nud de dcision et de fusion


Nud de fusion (merge node) Un nud de fusion est un nud de contrle qui rassemble plusieurs flots alternatifs entrants en un seul flot sortant. Il nest pas utilis pour synchroniser des flots concurrents (cest le rle du nud dunion) mais pour accepter un flot parmi plusieurs. Graphiquement, on reprsente un nud de fusion, comme un nud de dcision, par un losange.

24

Nud de bifurcation et dunion


Nud de bifurcation ou de dbranchement (fork node) Nud dunion ou de jointure (join node)

25

Nud de bifurcation (fork node)


- Un nud de bifurcation, galement appel nud de dbranchement est un nud de contrle qui spare un flot en plusieurs flots concurrents. - Il possde donc un arc entrant et plusieurs arcs sortants. - On apparie gnralement un nud de bifurcation avec un nud dunion pour quilibrer la concurrence. - Graphiquement, on reprsente un nud de bifurcation par un trait plein

26

Nud dunion (join node)


- Un nud dunion, galement appel nud de jointure est un nud de contrle qui synchronise des flots multiples. - Un tel nud possde donc plusieurs arcs entrants et un seul arc sortant. Lorsque tous les arcs entrants sont activs, larc sortant lest galement. Graphiquement, on reprsente un nud de union, comme un nud de bifurcation, par un trait plein

27

Nud dobjet
Introduction Pin dentre ou de sortie Pin de valeur (value pin) Flot dobjet Nud tampon central (central buffer node) Nud de stockage des donnes (data store node)
28

Introduction
- Diagramme dactivits = comment modliser le comportement du flot de contrle - les flots de donnes napparaissent pas! - cest un lment essentiel des traitements (arguments des oprations, valeurs de retour, ). - un nud dobjet permet de dfinir un flot dobjet (i.e. un flot de donnes) - reprsente lexistence dun objet gnr par une action dans une activit et utilis par dautres actions.

29

Pin dentre ou de sortie


Graphiquement, un pin est reprsent par un petit carr attach la bordure dune activit. Il est typ et ventuellement nomm. Il peut contenir des flches indiquant sa direction (entre ou sortie)

30

Pin dentre ou de sortie


Les pins permettent de: - spcifier les valeurs passes en argument une activit et les valeurs de retour - lactivit ne peut dbuter que si lon affecte une valeur chacun de ses pins dentre - quand lactivit se termine, une valeur doit tre affecte une valeur doit tre affecte chacun de ses pins de sortie - les valeurs sont passes par copie : une modification des valeurs dentre au cours du traitement de laction nest visible qu lintrieur de lactivit.

31

Pin de valeur (value pin)


- Un pin valeur est un pin dentre 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 spcifique.

Graphiquement, un pin de valeur se reprsente comme un pin dentre avec la valeur associe crite proximit.

32

Flot dobjet
- Un flot dobjets permet de passer des donnes dune activit une autre. - Un arc reliant un pin de sortie un pin dentre est, par dfinition un flot dobjets - Le type du pin rcepteur doit tre identique ou parent du type du pin metteur. - Il existe une autre reprsentation possible dun flot dobjets, plus axe sur les donnes - Elle fait intervenir un nud dobjet dtach dune activit particulire

33

Nud tampon central (central buffer node)


- Un nud tampon central est un nud dobjet qui accepte les entres de plusieurs nuds dobjets ou produit des sorties vers plusieurs nuds dobjets. - Les flots en provenance dun nud tampon central ne sont pas directement connects des actions. -Ce nud modlise donc un tampon traditionnel qui peut contenir des valeurs en provenance de diverses sources et livrer des valeurs vers diffrentes destinations.

34

Nud de stockage des donnes (data store node)


- Un nud de stockage des donnes est un nud tampon central particulier qui assure la persistance des donnes. - Lorsquune information est slectionne par un flux sortant, linformation est duplique et ne disparat pas du nud de stockage des donnes comme ce serait le cas dans un nud tampon central. - Lorsquun flux entrant vhicule une donne dj stocke par le nud de stockage des donnes, cette dernire est crase par la nouvelle.

35

Partitions
- Souvent appeles couloirs ou lignes deau (swimlane) du fait de leur notation, - Permettent dorganiser les nuds dactivits dans un diagramme en oprant des regroupements. - Elles nont pas de signification bien arrte, mais correspondent souvent des units dorganisation du modle. - Graphiquement, les partitions sont dlimites par des lignes continues. - Les nuds dactivits appartiennent forcment une et une seule partition. - Les transitions peuvent traverser les frontires des partitions.

36

Partitions

37

Exceptions

38