View
232
Download
0
Category
Preview:
Citation preview
Les diagrammes d’activités permettent de modéliser
les traitements (adaptés à la modélisation des flots de
contrôle et des flots de données).
Permettent de représenter graphiquement le
comportement d’une méthode ou l’exécution d’un
scénario de cas d’utilisation.
La représentation des diagrammes d’activités est
proche de celle des diagrammes d’états-transitions, mais
leur sémantique diffère.
2
Les diagrammes d’états-transitions : adaptés aux
systèmes réactifs et chaque diagramme est relatif à une
classe (ou objet). Les diagrammes d’activités ne sont pas
rattachés à une classe particulière. On peut attacher un
diagramme d’activités à n’importe quel élément de
modélisation afin de visualiser ou de décrire son
comportement.
Différence principale entre diagramme
d’interaction et diagramme d’activités est que les
premiers mettent l’accent sur le flot de contrôle d’un
objet à l’autre; les seconds modélisent sur le flot de
contrôle entre activités.3
Les diagrammes d’activité ont un pouvoir
d’expression proches des langages de programmation
objet. Par exemple, la spécification des actions de base
comme l’affectation, les structures conditionnelles, les
boucles, ainsi que des instructions particulières
spécifiques à la programmation objet (appel de
méthodes, exception,…).
Les diagrammes d’activités peuvent être bien
adaptés pour la phase de spécifications détaillées des
traitements.
4
Action, activité et Transition = éléments principaux
d’un diagramme d’activité.
- Action (action) = plus petit traitement qui peut être
exprimé en UML, en agissant sur le système. Une action
peut être rapprochée de la notion d’instruction
élémentaire d’un langage de programmation (comme
Java).
Par exemple : une affectation de valeur à un attribut, un
accès à la valeur d’une propriété, un calcul arithmétique
simple, l’émission ou réception d’un signal ;
6
Quelques types d’actions utilisées en UML
Action appeler (call operation) : invocation d’une
méthode sur un objet (de manière synchrone ou
asynchrone).
Lorsque l’action est exécutée, les paramètres sont
transmis à l’objet appelé.
appel asynchrone : l’action est terminée et les
éventuelles valeurs de retour seront ignorées.
appel synchrone : l’appelant est bloqué pendant
l’exécution de l’action jusqu’à la fin d’exécution et, le
cas échéant, les valeurs de retour pourront être
réceptionnées.7
Action envoyer (send) : crée un message et le transmet à
un objet appelé.
C’est un appel asynchrone (ne bloque pas l’objet
appelant). Bien adapté à l’envoi de signaux (send signal).
Action créer (create) ou détruire (destroy) : permet
d’instancier (resp. de détruire) un objet.
8
Activité (activity) : définit un comportement
représenté par une séquence d’actions. Le flot
d’exécution est modélisé par des nœuds reliés par des
arcs (les transitions).
Une activité est un comportement (behavior) et
peuvent lui être associés des paramètres.
9
Un nœud d’activité permet de représenter les étapes
le long du flot d’une activité. Il existe trois types :
1. les nœuds d’exécution (executable node)
2. les nœuds d’objets (object node)
3. les nœuds de contrôle (control nodess).
Différents types de nœuds d’activités
10
nœud de bifurcation (fourche)
ou d’union (synhronisation)
nœud initial
nœud final
nœud final de flot
nœud de décision ou de fusion,
13
Nœud de décision (decision node) = un nœud de contrôle
qui permet d’effectuer un choix entre plusieurs flots sortants.
- Un arc entrant et plusieurs arcs sortants. Ces derniers sont
généralement dotés de conditions, appelées gardes.
L’utilisation d’une garde [else] est recommandée après un
nœud de décision. Dans le cas où plusieurs arcs sont
franchissables (i.e. plusieurs conditions de garde sont
vraies), seul l’un d’entre eux est retenu et ce choix est non
déterministe.
Graphiquement :
14
Nœud de fusion (merge node) = nœud de contrôle qui
rassemble plusieurs flots entrants en un seul flot sortant.
Il n’est pas utilisé pour synchroniser des flots concurrents
(rôle du nœud d’union), mais pour choisir un flot parmi
plusieurs.
Graphiquement : idem qu’un nœud de décision :
15
Nœud de bifurcation ou de débranchement (fork
node) = nœud de contrôle qui sépare un flot en
plusieurs flots concurrents. : il possède un arc entrant
et plusieurs arcs sortants.
Graphiquement :
16
Nœud d’union ou de jointure (join node) = nœud de
contrôle qui synchronise plusieurs flots entrants : il possède
plusieurs arcs entrants et un seul arc sortant. Lorsque tous
les arcs entrants sont activés, l’arc sortant es activé.
Graphiquement, représenté
comme un nœud de bifurcation :
Remarque
Il est possible de fusionner un nœud de bifurcation et un
nœud d’union : trait plein avec plusieurs arcs entrants et
plusieurs arcs sortants :
17
Nœud initial = nœud de contrôle à partir duquel le flot
débute lorsque l’activité est invoquée.
Une activité peut avoir plusieurs nœuds initiaux. Un nœud
initial possède un arc sortant et pas d’arc entrant.
Nœud final = un nœud de contrôle possédant un ou
plusieurs arcs entrants et aucun arc sortant.
2 sortes :
18
Nœud de fin d’activité : l’exécution de l’activité
enveloppante s’achève et tout nœud ou flot actif au sein de
l’activité enveloppante est abandonné.
Si l’activité a été invoquée par un appel synchrone, un
message (reply) contenant les valeurs des paramètres de
sortie est retourné à l’appelant.
Nœud de fin de flot
Lorsqu’un flot d’exécution atteint ce nœud, il se termine,
mais n’influe pas sur sur les autres flots actifs de l’activité
enveloppante.
19
2020
Desserrer frein à
main
Passer 1ère vitesseAppuyer sur pédale
d’embrayage
Relâcher pédale
d’embrayage
Nœud initial
Nœud final
Nœud de bifurcation
(fork)
Nœud d‘union
(jointure)
21
Réceptionner
marchandise
Contrôler quantitéContrôler qualité
enregistrer
Nœud de bifurcation
(fork)
Nœud d‘union
(jointure)
synchronisations Nœud initial
Nœud final
22
DemanderTarif
PayerLePrixDemanderDélai
[sommeDisp < tarif] [ELSE]
Branchement conditionnel
Garde = expression conditionnelle
Exemple de branchement conditionnel IF – THEN – ELSE
(Nœud de décision)
23
réceptionnerArticle
vérifierArticle
commanderArticle
* (pour chaque Article)
réceptionnerArticle
vérifierArticle
commanderArticle
[il reste des articles]
[il n’a plus d’articles]
Schémas équivalents : itération
= nœud d’activité qu’on peut exécuter (i.e. une activité). Il
gère également les exceptions.
Nœud d’exécution
Enter un code
nœud d’action = nœud d’exécution = l’unité
fondamentale de fonctionnalité exécutable dans une
activité.
Exécution d’une action = transformation ou calcul dans
le système modélisé. Les actions sont généralement liées
à des opérations qui sont directement invoquées. Un
nœud d’action doit avoir au moins un arc entrant.
Graphiquement :
24
Nœud d’objet (object node) : on a vu la modélisation
des flot de contrôle dans un diagramme d’activités. Les
flots de données sont un élément essentiel des
traitements dans un diagramme d’activités :
représentent les arguments des opérations, les valeurs de
retour, par exemple.
Un nœud d’objet permet de définir un flot d’objet (les
données) dans un diagramme d’activités. Ce nœud
représente l’existence d’un objet généré par une action
dans une activité et utilisé par d’autres actions.
Nœud d’objets
25
- Les Pins d’entrée ou de sortie : les nœuds d’objets sont pour
spécifier les valeurs passées en argument à une activité et ses
valeurs de retour. On les appelle les pins (d’entrée ou de
sortie).
- L’activité ne peut débuter que si l’on affecte une valeur aux
différents pins d’entrée. Quand l’activité se termine, une
valeur est à chacun des pins de sortie.
- Le passage des paramètres se fair par valeurs, c-à-d que la
modification des valeurs d’entrée au cours du traitement de
l’action est visible seulement à l’intérieur de l’activité.
- Graphiquement :
26
Une transition matérialise le passage d’une activité vers une
autre. Graphiquement, les transitions sont représentées par
des flèches en traits pleins qui lient les activités entre elles.
Une transition est déclenchée dès que l’activité source est
terminée et provoque immédiatement le début de la
prochaine activité.
Les transitions sont franchies de manière atomique (durée
négligeable), ce qui n’est pas le cas des activités.
Les transitions
27
Exemple :
Graphiquement :
28
Activité-1 Activité-2
Transition automatique
établirFacture envoyerFacture
29
insererCarte
saisirCode
[codeInvalide et essais<4]
[codeValide]
choisirOperation
[retrait]
[depot]
saisirMontant
choisirCompteAcrediter
insererCheque/Liquide
restituerCarte
saisirMontant
choisirCompteAcrediter
afficherLesOffres vérifierProvisionCompte
[nonAutorisé]
[autorisé]
distribuerBillets
[codeInvalide et essais >3]
Exemple de diagramme d’activités : utiliser un DAB
30
client
commanderProduit
gererCommande
expedierProduitrecevoirProduit
reglerFacture encaisserFacture
commande
commande
[passée]
[reglée]
Etat de l’objet
Couloirs d’activités (swimlanes)départ
fin
fournisseur
Flot d’objets
Couloirs d’activités ou swimlanes :
Ils représentent les acteurs qui
exécutent les activités.
31
passerCommande verifierDisponibilité
consulterTarif
devis
evaluerDevis
[valider]
[modifier]
[annuler]
établirFacture
préparerCommande
Facture
[émise]
Facture
[réglée]
réglerFacture
validePaiement
expédierCommandeclôturerDossier
client serviceComptabilité serviceLivraison
établirDevis
Autre exemple
GérerCommande
32
enregisterCommande
envoyerFacture
enregisterPaiement
payerFacture
Service comptable client
Exemple Simplifié:
Swimlanes (couloirs d’activités)
33
Nœud d’action :
« Accept event »
« Send signal »
« Accept time event »
détecterArrivéeTrain
faireClignoterFeux
abaisserBarrière
Attendre 5 sec
Représentation de
certaines actions de
communication
qui ont une notation
spéciale
Partie d’un diagramme d’activités
• Un diagramme états-transitions est un automate à états finis, qui décrit les
différents états par lesquels passe un objet (instance quelconque d’une
classe) en réponse à des événements
•permet de décrire les changements d'états d'un objet, en réaction aux
interactions avec d'autres objets ou avec des acteurs.
• représente les interactions asynchrones dans le système.
• détermine les états stables par lesquels passe le système : parmi beaucoup
d’états caractérisant un système, seuls quelques uns sont significatifs pour
le problème donné
• caractéristique d’un état : sa durée et sa stabilité, il représente une conjonction
des valeurs des attributs d'un objet.
• une transition représente le passage d'un état vers un autre.
37
38
État initial État final
État-1 État-n
CREATE DESTROY
Un objet est caractérisé par un ensemble d’attributs, qui changent
de valeur au cours du temps.
Les valeurs des attributs = l’état de l’objet
• Une transition est déclenchée par un événement :
l'arrivée d'un événement conditionne la transition
(la transition est automatique lorsqu'on ne spécifie pas
l'événement qui la déclenche)
• On peut conditionner le franchissement d’une transition,
à l'aide de «gardes», qui sont des expressions booléennes,
exprimées en langage naturel et encadrées par des
crochets.
39
On peut associer une action à un événement qui va déclenche
une transition :
La syntaxe est la suivante :
Evénement / Action
Evénement/action
A l’arrivée d’un événement, l’action est déclenchée
41
Les 3 notions sur lesquelles est basé un
diagramme d’états :
1. état d’un objet (situation d’un objet définie par
ses propriétés)
2. événement
3. comportement des objets (leurs actions et leurs
activités).
42
Rmq : la dynamique du système est modélisée par plusieurs
diagrammes d’états-transitions.
On construit un diagramme d’états-transitions pour chaque
classe (ou classeur, en général), qui possède un comportement
dynamique important.
Un diagramme d’états-transitions ne peut être associé qu’à
une seule classe.
État initial (à sa création, un objet entre dans un pseudo-état : l’état initial)
(Comme dans un diagramme d’activités)
État final est un pseudo-état qui indique la fin d’un diagramme d’états.
(Comme dans un diagramme d’activités)
43
Événement
Un événement se produit pendant l’exécution du système modélisé. Les
diagrammes d’états-transitions permettent de spécifier les réactions d’un
système à des événements discrets (comme les signaux). Un événement a une
durée négligeable.
Quand un événement est reçu, une transition peut être déclenchée et faire passer
l’objet dans un autre état.
Plusieurs types d’événements explicites et implicites : signal, appel de
méthode, …
Syntaxe :
<nom_evenement> ( [ <param1> : <type> [; <param2> : <type> ... ] ] )
1. Événement Signal :
Un signal matérialise une communication
asynchrone à sens unique entre deux
objets.
Un même objet peut être à la fois
expéditeur et destinataire.
44
Interruption d’E/S
<<signal>>
<<signal>> <<signal>>souris
clavier
+ Periph : int
+ abs : int+ ord : int + caract : int
2. Événement d’appel : call event
Il représente la réception d’un appel d’une opération (méthode) par un objet.
Paramètres de l’opération = paramètres de événement appelant.
Syntaxe d’un événement d’appel = syntaxe d’un signal.
Les événements appelants sont des méthodes déclarées au niveau du diagramme de
classes.
3. Événement de changement : change
généré quand une condition (sur des valeurs d’attributs) devient VRAIE.
syntaxe : when ( <condition_booléenne> )
Les événements de création et de destruction d’objets («create» et «destroy»)
sont deux cas spéciaux d’événements d’appel.
La création d’un objet débute par l’envoi d’un événement de création
(«create») à sa classe. L’objet commence à exister dans son état initial et finit à
son arrivée dans l’état final (sa disparition, «destroy»).
45
4. Événement temporel : after ou when
générés par le passage du temps,
Spécifiés de manière absolue (date précise), ou relative (durée).
syntaxe événement temporel spécifié de manière relative : after ( <durée> )
Syntaxe événement temporel spécifié de manière absolue : when ( date = <date> )
46
Elle définit la réponse d’un objet à l’occurrence d’un événement.
Souvent, elle relie deux états.
Elle indique qu’un objet dans un état E1 peut entrer dans l’état E2 et exécuter certaines
activités, si un événement déclencheur se produit et que la condition de garde est
vérifiée.
Syntaxe : [ <événement> ][ '[' <garde> ']' ] [ '/' <activité> ]
où « garde » est une expression booléenne sur les attributs de l’objet ou sur lesparamètres des événements déclencheurs
Transition
Lorsqu’une transition se déclenche (tir d’une transition), son effet (l’activité
spécifiée après ’/’ ) s’exécute. Elle peut être :
•une opération simple (comme une assignation)
•l’envoi d’un signal ;
•l’appel d’une opération ;
•une liste d’activités, etc.
47
Transition interne
Sont déclenchées par des règles similaires à celles des transitions externe,
mais une transition interne ne possède pas d’état cible et l’état reste le même
à la suite du déclenchement.
Syntaxe = la même que celle d’une transition classique. Mais, les transitions
internes ne sont pas représentées par des arcs, elles sont spécifiées dans un
compartiment. Exemple :
48
S
SaisieMotDePasse
entry / set echo Invisible
exit / set echo normal
character / traiterCaractère
help / afficherAide
clear / remise à zéro chrono et password après 30 sec / exit
Les transitions internes ont des noms prédéfinis : entry, exit, do et include :
entry : permet de spécifier une activité qui s’exécute quand on entre dans l’état.
exit : permet de spécifier une activité qui s’exécute quand on sort de l’état.
do : commence dès que l’activité entry est terminée. Si une transition se
déclenche pendant que l’activité do est en cours, cette dernière est
interrompue et l’activité exit de l’état s’exécute.
include : permet d’invoquer un sous-diagramme d’états-transitions.
49
51
saisirFormulaire demanderConfirmation
afficherProblème
go/testerEntrée[valide]
[else]
Point de décision (comme dans un diagramme d’activités)
H*lavage
séchage
lustrageattente
reprise
arretD’urgence
after(5 mn)
after(5 mn)
after(3 mn)
after(3 mn)
arretD’urgence
État historique : est un pseudo-état
qui mémorise le dernier sous-état actif d’un
état composite.
Graphiquement : cercle contenant un H.
H* : pour représenter un état historique
imbriqué.
Notation abrégée : pour indiquer qu’un état est composite et
que sa définition est donnée sur un autre diagramme.
État composite = état décomposé en régions contenant chacune un ou
plusieurs sous-état(s).
Associer un fournisseur aux
produits fournis
52
Recommended