Vous êtes sur la page 1sur 97

Cours STIM P8 TD 1

Gnie Logiciel
Complments sur UML
Intervenant : Anil CASSAM CHENAI
Date : 02/02/2012

Objectifs du complment
Ce complment sera approfondi en parallle de plusieurs

TD/Cours.
Rappels sur UML dans un cadre de gestion de projet, plutt que
dans une simple vision de modle
Apporter des complments la gestion de projet, plus adapt un
projet de dveloppement logiciel.
On utilise ici un outils de modlisation UML gratuit et opensource (ici StarUML) pour illustrer le cours, mais on pourra en
utiliser dautres plus rcents.
On introduira aussi les architecture MDA qui permettent de la
gnration de code bas sur des modles et qui est de plus en plus
dactualit

Documents de rfrence
[1] UML Superstructure Specification V2 OMG (object

management group)
[2] Cours UML de Rational Software (IBM)
[3] Livre de Craig Larman : Applying UML and Patterns : an
introduction to Object-Oriented Analysis

Organisation des exercices


Prsentation des concepts
Ralisation immdiate dun exercice dapplication du

concept
A la fin dun chapitre ralisation dun exercice plus global
mettant en jeux diffrents concepts et leurs articulations

Historique
Anne 70 et 80 : guerre des mthodologies
Annes 90 : unification des trois principales

mthodologies sous UML 1.0 1.1


OMT (Object Modeling Technique)
Booch
OOSE (Object Oriented Sofware Engineering)

XXX : sortie de UML 2.0


Annes 2000 : dveloppement des mthodologies MDA

UML et Gestion de projet (1)


Rappel des phases de gestion de projet
Phase dadministration
Analyse du CDC/Rdaction de spcification gnrale
Evaluation/Organisation/Planification

Phase de ralisation/pilotage
Phase de terminaison

On peut utiliser UML trs tt pour structurer la phase

dadministration :
Afin de dgrossir le projet en sous lments
Les bons outils sont alors :
Les diagrammes de cas dutilisation de haut niveau

Les diagrammes de classes utilisant un vue de niveau package par exemple

UML et Gestion de projet (2)


Ensuite on affinera/compltera les diagrammes :
Dans la phase de ralisation : un premire partie de la phase de ralisation

correspondra la conception UML avant de commencer le codage proprement dit.


On peut avoir quelque chose comme :
Complter le modle UML

Gnrer (cas MDA) et crire le code


Tester le code
Documenter

Mais aussi plus globalement lors de cycles complets Projets/Sous Projets

lments de gestion de projet (1) :

Planification
et
laboration

1. Dfinition de lbauche du
plan

2. Cration du rapport
prliminaire dinvestigation

3. Dfinition des conditions

4. Enregistrement des termes


dans un glossaire

5. Implmentation dun
prototype

6. Dfinition des cas dutilisation


(haut niveau et essentiel)

7. Dfinition dune bauche de


modle conceptuel

8. Dfinition de lbauche de
larchitecture systmique

9. Raffinement du plan

lments de gestion de projet (2)


Raffinement du
plan

Dveloppement
Cycle 1

Synchronisation
des objets

1. Dfinition des Cas


dutilisation essentiels

2. Raffinement des diagrammes


de cas dutilisation

3. Raffinement du modle
conceptuel

4. Raffinement du glossaire

5. Dfinition des diagrammes


systmiques

6. Dfinition des contrats


dopration

Analyse

7. Dfinition Diagrammes de
classe

Conception

1. Dfinition des cas rels


dutilisation

2. Dfinition des rapports, des


Interfaces utilisateur et des
storyboard

3. Raffinement de larchitecture
du systme

4. Dfinition des diagrammes


dinteraction

5. Dfinition des diagrammes


de classes dimplmentation

6. Dfinition du schma de la
base de donnes

Dveloppement
Cycle 2

...

Implmentation

Test

lments de gestion de projet (3)


Dveloppement itratif
Affiner le modle sur diffrents cycles

Time-boxing des cycles


Entre 2 semaines 2 mois

Lordre de cration des artefacts (Use Case, etc nest pas

forcment linaire et peut tre fait en parallle)

Exigences/Conception/Implmentation
Durant tout le projet, il faut sparer les exigences de la
conception et de limplmentation
Exigences
Primtre du problme
Ce qui est exig
Contexte de lApplication
Hypothses
Besoins de performances

Conception
Approche gnrale
Algorithmes
Structures de donnes
Architecture
Optimisation
Planification des
ressources

Implmentation
Plates-formes
Spcifications matrielles
Bibliothques logicielles
Standard dinterface

Dmarrer avec StarUML (1)


Dmarrage de StarUML et slection dune approche

Les approches correspondent une mthodologie

danalyse prdfinie

Dmarrer avec StarUML (2)


Par exemple lapproche 4+1 :

Dmarrer avec StarUML (3)


On dispose de 3 structures de rangement
Les modles
Les sous-systmes
Les packages

Dmarrer avec StarUML (4)


Les packages sont des dossiers de rangement des objets

UML. Ils sont arborescents


Les modles sont en fait un type de package particulier

Les diffrentes dpendances de


packages

Dfinition du sous-systme
Un Sous-systme est :
Ensemble de classes, doprations, dvnements et de contraintes
Tous relis
Avec des interfaces bien dfinies et prfrablement restreintes vers
lextrieur
Pas de trace des sous-systmes dans UML 2 sauf via un

stroptype. <<subsystem>>
Donc Sous-Systme=Package avec icne particulire permettant
de mieux identifier leur dlimitation a utiliser le strotype
subsystem
Un service est un ensemble de fonctionnalits apparentes qui
servent les mmes buts. On peut utiliser des sous-systmes pour
implmenter des services

Dmarrer avec StarUML (3)


Cration des objets

Dmarrer avec StarUML (4)


Cration des diagrammes

Dmarrer avec StarUML (5)


Lexplorateur de diagrammes
Permet de voir dun seul coup dil des diagrammes rpartis

dans larborescence des packages rangs par catgories

Dmarrer avec StarUML (6)


Lexplorateur de proprits
Permet de modifier les proprits de lobjet de manire
structure

Les diagrammes ou dautres outils permettent cependant aussi

dagir sur les proprits des objets

Organisation
Nous allons :
Apprendre a crer et manipuler les diffrents objets
Les tudier dans le cadres des vues que sont les diagrammes.

Il est important de comprendre quun objets et unique dans


loutil de modlisation, mais quil peut apparatre dans
diffrentes vues
Apprendre les diffrents moyens dagir sur les proprits des
objets avec StarUML

Manipulation de loutil StarUML


StarUML est un outil trs riche est trs structur
Il est fourni avec un guide utilisateur comprenant des

apprentissages dtailles des diffrentes fonctions de loutil


en fonction du type de diagramme considr
Nous utiliserons ce tutorial pour structurer nos
apprentissages aprs avoir prsent les concepts

Exemple de tutorial

Diffrentes vision des modles


Modle de classe
Structure statique des objets dun systme

Modle dtat
Dcrit les aspects temporels dun objet

Modle dinteraction
Dcrit la faon dont les objets collaborent pour obtenir des

rsultats

Mcanismes dextension
UML 2.0 contient des mcanismes dextension
Strotypes : chane qui compltent linformation sur un

lment du mta modle UML


Proprits : caractrisent un lment de modle
Contraintes : spcifient des conditions qui doivent tre vrai sur
des lments de modle
tiquettes (Tag) : paire nom/valeur donnant des informations
complmentaires

Analyse des fonctions du systme


Mme si ce nest pas de lUML traditionnel , lanalyse des

fonctions fournies par le systme et leur rangement en


catgories est un des complments essentiel de lanalyse en
cas dutilisation que nous allons voir plus loin.
Dans une premire tape, aprs avoir faire les interviews du
client, on :
Liste des fonctions en leur donnant un rfrence
On cr des catgories de fonctions
On range cela dans un tableau auquel on fera rfrence dans le

reste de lanalyse

Diagrammes de Use Case


Un cas dutilisation est une description textuelle dune fonction

que doit raliser le futur systme. Il dcrit ce que le systme doit


faire, mais pas comment implmenter ce comportement souhait.
Un diagramme de cas dutilisation est une reprsentation visuelle
complmentaire de ces recettes .
Il permet de visualiser un systme et ses limites, les utilisateurs,
les cas dutilisations autour desquels ils interagissent et les liens
(spcialisation, inclusion) entre ces cas dutilisateur
Cest un outil de communication avec des non informaticiens

Exemple
Nous allons raliser un modle pour un systme

informatique de gestion dun htel.


Systme de gestion de l'hotel
System
Rserver chambre
extension points
Avec enfant(s)

Receptionniste

Occuper chambre

Librer chambre
Femme de chambre

Client
Nettoyer chambre

Grer rclamations
Manager

Exemples de cas dutilisation textuel


Rserver chambre
Le rceptionniste reoit un appel ou reoit un client la

rception
Il prend le nom, la date, la dure sur sjour et le nombre de
personne
Il propose un type de chambre disponible et son prix
Si le client accepte, il bloque la ou les chambres et le matriel
complmentaire (lit bb)

Deuxime exemple
Occuper chambre :
Le client se rend la rception.
Il demande avoir les cls de sa chambre.
Le rceptionniste vrifie :
que la chambre a bien t rserve
que le nombre de personnes correspond bien
que les quipements supplmentaires (lit bb) sont bien disponibles

Si tout se passe bien il donne initialise un badge magntique, le donne au

client avec son numro de chambre et lui indique le chemin vers celle-ci
Le client se rend sa chambre et vrifie :
qu'il peut bien y accder
que la chambre lui convient bien. Dans le cas contraire il passe en phase

rclamation

Niveau de dtail des Use Case


Ce cas dutilisation est un cas dutilisation de haut niveau. On

dbute sans surcharger le cas dutilisation avec des dtails


Lors de cycles de modlisation, on va enrichir les cas dutilisation
et traiter les variantes
Mettre des rfrences aux fonctions dans la fiche dun use case.
Quand un use case utilise une fonctionnalit, lindiquer en la mettant en

rfrence dans la fiche du UseCase


Un fonctionnalit va donc tre implmente par cycle, en travaillant sur les
use cases qui lutilisent
Dtecter les fonctionnalits sans cas dutilisation ce qui traduit un
manque dans les spcifications

Acteurs et systme
Un acteur nest pas une partie du systme. Il correspond un

rle.

System

Un acteur

Un utilisateur peut avoir plusieurs rles et donc correspondre un

acteur.
Un acteur peut tre un humain,une machine ou un autre systme.
Le systme peut tre un systme informatique mais aussi un
systme plus vaste (exemple lentreprise) dans quel cas certains
acteurs disparaissent dans le systme.

Vision utilisateur du Use Case


Un cas dutilisation
dcrit une interaction dun (ou de plusieurs) acteur(s) avec le

systme. Une interaction est une squence dactions.


doit donner un effet tangible pour lutilisateur.

Usage de gnralisations
Permet de clarifier les dpendances entres rles et packages

par exemple (annonce lhritages des classes)


Exemple sur les acteurs :

Flches de gnralisation. Equivalentes celles


utilises dans l'hritage.
Client

Nouveau Client

Client enregistr

Utilisation et Spcialisation des Use


Case
Un cas dutilisation peut faire rfrence dautres cas

dutilisation
On a vu <<extends>> pour la spcialisation
On a <<include>> pour lutilisation
<<include>>
Librer chambre

Rgler chambre

Points dextension
Un point dextension est une location dans un cas

dutilisation o des squences dun autre use-case


peuvent tre insrs.
Chaque point dextension doit avoir un nom unique
lintrieur du cas dutilisation.
Rserver chambre

Rserver chambre
extension points
Prsence d'enfant(s)

extension points
Avec enfant(s)
<<extend>>
<<extend>>

Rserver chambre avec bb

Reserver bungalow

Diagrammes de classes
Permettent de modliser
Les classes
Leurs relations
Leurs attributs et oprations
Les contraintes
Ils correspondent une statique du modles

Au dbut modle conceptuel pour modliser les

concepts du problme
Ensuite dans un deuxime temps reprise sous forme de
diagrammes de conception (Design)

Classes et objets
Les diagramme de classes permettent de manipuler des classes ou

des instances de classe (appeles aussi des objets)


MaClasse
+a: int

Object1 : MaClasse
a = 17
Deux instances avec des valeurs diffrentes.
Les valeurs sont ajoute via un AttributeLink
Object2 : MaClasse
a = 38

Une classe

Les instances se reconnaissent facilement au fait que leur nom est

soulign et que : prcde le nom de la classe, que linstance


soit nomme ou non.

Hritage
Les diagrammes de classes permettent de dfinir facilement

lhritage entre deux classes


Chambre

Chambre simple

Chambre simple avec balcon

Chambre simple sans balcon

Chambre double

Chambre double avec balcon

Chambre double sans balcon

Attributs dune classe


Une classe htel
Avec un tableau de visibilit prive(signe -) de personnes
Avec un nombre total de lit qui est un entier de type protg

(signe #) avec une valeur initiale de 40


Avec une adresse qui est une chane de caractres publique
(signe +)

Hotel
-personnel: Personnel[0..*]
#NombreMaxLits: int
+Adresse: String

Oprations dune classe


En plus des attributs les classes peuvent disposer doprations
Les oprations contiennent optionnellement des valeurs en

entre, en sortie, en entre sortie ainsi quune valeur de


retour

Personnel
La fonction prend une date d'entre, une date de sortie
+PrendreVacances(debut: DateTime, fin: DateTime): int

et retourne un nombre de jours total comptabiliss en congs

Les associations
Plutt que dutiliser un tableau, on met des associations

entre objets
Avec des noms de rles aux extrmits
Et une cardinalit

Hotel
#NombreMaxLits: int = 40
+Adresse: String

+employeur
0..1

+employes
0..*

Personnel
+PrendreVacances(debut: DateTime, fin: DateTime): int

Exercices
Exercice 1 :Crer un diagramme de classe
Mettre un attribut a:string dans cette classe
Crer deux instances de cette classe
Leur ajouter deux AttributeLink afin que la premire instance

ait pour valeur de a hello et la deuxime world .

Exercices
Exercice 2
Crer un diagramme de classe sous StarUML
Un ajouter une classe MaClasse au diagramme
Ajouter un objet au mme diagramme Objet1 instanciant
MaClasse
Exercice 3
Crer une classe btiment qui contient un champ numro de
btiment. Modifier les visibilits et types dattribut.
Crer un objet chambre.
Crer une association entre le btiments et des chambres

Multiplicit
Permet de prciser le nombre dlments contribuant une

relation
On peut avoir deux faons les reprsenter
Au niveau dun attribut
Au niveau dune extrmit dassociation

Contraintes (1)
On a trois faons de noter les

contraintes sous UML

Attaches un attribut
A cot dune ligne pointille

liant deux relations ayant une


contrainte
Comme une note

Contraintes (2)

Grammaire (BNF) de la multiplicit


<multiplicity> ::= <multiplicity-range> [ { <order-designator> [,

<uniqueness-designator>] } ]
<multiplicity-range> ::= [ <lower> .. ] <upper>
<lower> ::= <integer> | <value-specification>
<upper> ::= * | <value-specification>
<order-designator> ::= ordered | unordered
<uniqueness-designator> ::= unique | nonunique

Exercices
Crer une contrainte de chaque type list plus haut sous

StarUML
Une contrainte attache un attribut (utiliser lditeur de

collection Ctrl+F5)
Une contrainte rattache deux relations
Une contrainte signale par une simple note
Quel est lavantage dune contrainte attache un attribut

par rapport une simple note ?

Agrgation et composition
Une association peut tre une agrgation quand les objets

associs ont une liaison forte avec la source. On utilise une


reprsentation avec un losange vide au niveau de la source
Une agrgation est une composition si quand on dtruit la
source on dtruit tous les objets lis. On utilise une notation
avec un losange plein

Les qualificateurs
On peut prciser et rduire la cardinalit dune

association en utilisant un qualificateur


Train

Siege
+rangee
1

+Numero: int

Partitionne ensemble des instances et suggre les cls

primaire du Mappage OR
Dmo : ajout dun qualificateur une relation

Structure composites
Les diagrammes de classes peuvent dtailler la structure

interne des classes et les lments accessibles depuis


lextrieur.
On dispose pour cela
Des Ports
Des Part
Des Interfaces

Les Parts de classes


Cette structure permet de dcrire une sous partie dun

composant ou classe

Exercice : rajouter une Part une classe dans un diagramme

de classe et la connecter une autre classe

Les Ports
Les Ports dcrive des sous lments de classes accessibles

depuis lextrieur

Exercice : rajouter un Port une classe dans un diagramme

de classe et la connecter une autre classe

Interfaces (1)
Les interfaces et leurs arborescences peuvent tre obtenues

par un strotype <<interface>>


Un objet peut soit :
Avoir une relation de dpendance avec une interface (utiliser

linterface)
tre une ralisation dune interface (implmenter linterface)

Interfaces (2)
Deux notations mappes
La notation cercl
Ou lusage du strotype <<interface>> sur une classe

Interfaces (2)
Ralisation
Dpendance
Autre notation possible :

Exercice
Dans un diagramme de classes de StarUML
Crer une classe et deux interfaces
Crer une ralisation de la classe par rapport la premire

interface
Crer une dpendance de la classe par rapport la deuxime
interface
Dans quel cas de notation sommes nous ?

Les diagrammes dynamiques (1)


Les diagrammes de classe sont une extension objets de

mthodologies comme Merise


Il leur manque tous les aspects dynamiques
Diffrents tats des objets
Transition entre tats suite des stimulis
Rponse a des vnements et change de messages entre objets

Les diagrammes dynamiques (1)


Les diffrents diagrammes dynamiques sont :
Diagrammes dtats
Diagrammes dinteractions
Diagrammes de squences
Diagrammes de collaboration

Diagrammes dactivit

Notes : Sous StarUML les diagrammes dinteraction

(squence et collaboration) sont regroups dans des


instances densemble de collaboration
(CollaborationInstanceSet)

Diagrammes dtats (1)


Ces diagrammes se focalisent sur une classe donne
Un classe peut avoir diffrents tats caractriss par

diffrentes valeurs de ses paramtres (vision ensembliste,


partition des classes)
Des transitions relient ces tats

Diagrammes dtats (2)


Exemple - Cas de lobjet chambre :
On identifie trois tats : inoccupe, occupe et en nettoyage
On identifie les transitions entre ces tats (flches orientes)

Inoccupe

En nettoyage

Occupe

Diagrammes dtats (3)


Les transitions :
Les transition permettent la migration entre tats.
Elles rsultent dun vnement.
Elles portent le nom et les paramtres de lvnement associ

Diagrammes dtats (4)


Quatre catgories dvnements peuvent dclencher de

transitions
Un vnement de type signal : SignalEvent (par exemple le

callback dun appel asynchrone)


Un appel direct de mthode : CallEvent
Le dclenchement dun timer : TimerEvent
Le changement dune valeur : ChangeEvent
SignalEvent1, CallEvent1, TimeEvent1, ChangeEvent1
Inoccupe

Occupe

Diagrammes dtats (5)


Les transitions, lors de leur dclenchement peuvent raliser

des actions (courtes dans le temps) appeles effects.


Elle peuvent aussi navoir lieu que sous certaines conditions
(GuardConditions)

Diagrammes dtats (6)


Les tats peuvent eux aussi dclencher des actions courtes :
Entry action, Do Actions, Edit Actions

Diagrammes dtats (7)


Les tats peuvent tre hirarchiques et contenir des sous-

tats.
Les diagrammes dtats dun sous-tats peuvent tre
rfrencs dans le diagramme principal via :

SubmachineState1

Exercices
1) Reproduire le diagramme de changements dtats pour

une chambre
2) Crer un diagramme dtat pour un membre du
personnel, en considrant le cas dune personne non encore
embauche.

Solution

Diagrammes de squence (1)


Dcrit une dynamique dchange entre instance de classes
Jerome Dupuis : Receptioniste

Olivier Payet : Client

Pierre Hibon : Manager

1 : ReserverChambre()

Envoi d'un message entre deux instances de classe

2 : OccuperChambre()

3 : TraiterUneReclamation()

4 : FaireUneRemise()

Lors du traitement de la demande


On a un message envoy soi-mme,

d'autres messages peuvent tre mise. Cela correspond aux

ie c'est l'employ lui mme qui dcide ici

mthodes composant la fonction

de prendre des vacances

5 : PrendreVacances()

Diagrammes de squence (2)


Les diagrammes de squence permettent de capturer un

enchanement dvnements et lenvoi de messages


entre objets
Il permet de visualiser la responsabilit : qui est
responsable de dclencher une mthode (prendre des
vacances par exemple)
Il ne peuvent pas reprsenter des procdures complexes
Conditions et branchements

Diagrammes de squence (3)


On peut envoyer des message synchrones (ligne continue et flche

solide) et asynchrones (ligne continue et flche normale)

Message synchrone
Messages asynchrones

Le retour dun message asynchrone est reprsent avec des

pointills.

Diagrammes de squence (4)


Cration et destruction
On dispose aussi de deux autres types de messages : create et

destroy pour linstanciation et la libration dun objet


: Client

: Hotel

: Cuisinier

UnRepas : Repas

1 : UnRepas := CommanderRepas()
<<create>>
3

2 : UnRepas := CommanderRepas()

Diagrammes de squence (5)


On peut reprsenter des boucles en utilisant des

fragments combins (loop)

Les fragments combins permettent aussi de reprsenter

des alternatives (alt), des rgions (region), des assertions


(assert),

Les diffrents types de fragments combins sous StarUML

Diagrammes de squence (6)


Les oprandes dinteraction permettent de crer des

catgories de traitements dans les fragments


Par exemple :

Diagrammes de squence (7)


En fait les fragments permettent se saffranchir de

certaines limites des diagrammes de squence en


rajoutant

Les boucles
La logique conditionnelle
Break
Fonctionnement parallle

Mais ce sont les diagrammes de collaboration qui sont le

plus adapt au cas des procdures complexes.

Diagrammes de collaboration (1)


Appels aussi de manire plus moderne diagrammes de

communication
Les diagrammes de collaboration se focalisent en priorit sur
la relations entre objets (via les liens). Les stimulis sont alors
secondaires
On dessine ainsi diffrentes instances dobjets et on les relie
par des liens sur lesquels on pourra mettre un ou plusieurs
stimulis

Diagrammes de collaboration (2)


Exemple de diagramme de collaboration

Diagrammes de collaboration (3)


Comparaison palettes squence et de collaboration dans

StarUML
Apparition des liens (entre objets)
Les liens peuvent tre rcursifs
Un lien doit tre pos sur le
Diagramme.
On peut ensuite lui affecter un ou
plusieurs stimuli(s)
Pas de notion de fragments et d
oprandes dinteractions

Diagrammes de collaboration (4)


Les stimulis correspondent lappel dune mthode sur

lobjet cible.
Il peuvent tre adapts pour :
Passer des paramtres qui sont des instances dobjets prsent

dans le diagramme
Retourne des valeurs nommes, utilisables elles aussi dans
dautres stimulis
tre rptes un certain nombre de fois
Sappliquer sous certaines conditions

Diagrammes de collaboration (5)


Proprits dun stimuli

Un stimuli avec comme nom monStimuli, valeur de

retour s, condition (branch) a>0, itration de 1 5 et


arguments (a,3) saffiche comme :
*[1..5][a>0] s := monStimuli(a,3)

Diagrammes de collaboration (6)


Dcomposition des messages en messages secondaires etc.
Object1
1
Ce message suit le message 1 et
est au mme niveau

Object2

1.1 et 1.2 sont des sous-messages gnrs par la


ralisation du message 1

2
1.1

Object5

Object3

Sous StarUML il faut dsactiver l'affichage de la squence qui


est toujours un nombre entier qui correspond l'ordre
de l'enfant dans l'InteractionInstanceSet. On peut alors mettre
les numros points avec des zones de texte

1.2

Object4

Diagrammes de collaboration (7)


Transposition du Use Case : Occuper chambre

Diagrammes de collaboration (8)


Exercice :
Reproduire le diagramme prcdent dans starUML
Note : pour faire apparatre le nom et le type dun stimuli jouer

sur la proprit MessageSignature du diagramme

Diagrammes dactivits (1)


Les diagrammes dactivits permettent de dcrire un

workflow, i.e. un enchanement de tches


Il sont proches des diagrammes dtats mais ils ont une
composante temporelle o les diagrammes dtats dcrivent
des transitions au sein dune ontologie

Diagrammes dactivits (2)


Un exemple de diagramme dactivit

Diagrammes dactivits (3)


Les activits sont reprsentes par des carrs au cots

arrondis
Elles sont relies entre elles par des transitions qui

correspondent une succession temporelle.

Diagrammes dactivits (4)


Nuds finaux :
Il y a deux types de nud finaux.
Un nud final li un parcours :
Un nud final gnral du workflow. Lorsquil est atteint le

workflow entier sarrte

Diagrammes dactivits (4)


Une activit est une opration longue qui se dcompose

en tches
Une ou plusieurs tches dentres (courtes)
Une ou plusieurs tches interne

(DoAction qui sont longues)


Une ou plusieurs tches
de sortie (courtes)

Diagrammes dactivits (5)


Nud de dcision (choix de branche suivant condition de

garde) et nud de regroupement (merge node)

Diagrammes dactivits (5)


Fork et Join : permettent un droulement parallle et une

synchronisation
Etat Initial : Unique
Activity1
Etat final : On peut en avoir plusieurs
dans le mme diagramme

Activity2

Zone de synchronisation

Zone de synchronisation

de type fork

de type join
Droulement parallle
des deux chemins

Diagrammes dactivits (4)


Contraintes sur les transitions : une transition peut tre

munie dune contrainte qui empche son parcours si elle


nest pas vrai ( proprit GuardCondition).
Une transition peut aussi dclencher une action (courte)
appele effect avant de passer sa cible condition que la
condition de garde soit vrifie.

Diagrammes dactivits (5)


Les transitions peuvent tre dclenches par diffrents

dclencheurs (triggers)
Des signaux
Un appel de fonction
Un vnement de

type timer
Un vnement de
modification

Diagrammes dactivits (6)


On peut dcomposer une diagramme dactivit sous

forme hirarchique en utilisant la notion de sous-activit

Une sous-activit fait appel un autre diagramme

dactivit dans un diagramme donn. On a une logique


de rutilisation de diagrammes

Diagrammes dactivits (7)


On peut indiquer des dclenchement asynchrones avec les

icnes denvoi (send) et de reception (accept) de signaux

Callback
Grer la commande

Demander le paiement

Revoir le paiment

Envoyer le colis
Envoi du signal