Vous êtes sur la page 1sur 80

Modélisation dynamique

Prof. Dr. Saint-Jean DJUNGU


Plan
• Modélisation des états

• Modélisation des interactions


Modélisation des états
• Le modèle d’état décrit la séquence des
opérations réalisées en réponse à des stimuli
externes

• Le modèle d’états est constitué de plusieurs


diagrammes d'états/transition
Événements
• Un événement est une occurrence ou un fait qui a
lieu à un moment donné; il s’agit d’une
modification intervenue dans l’environnement
– Par exemple, l’utilisateur appuie sur le bouton de
gauche ou le vol 123 part de Bukavu

• Les événements correspondent souvent:


– à des participes passés (électricité allumée, alarme
enclenchée) ou
– au moment où une condition commence à être vérifiée
(la corbeille à papiers devient vide, la température
passe en dessous de zéro)
Événements
• Par définition, un événement se produit
instantanément par rapport à l’échelle
temporelle de l’application

• Le terme événement est souvent employé


de façon ambiguë
– Un événement désigne parfois une instance,
d’autres fois une classe
Types d’événements
• Il existe:
• Les événements de signal
• Les événements de changement
• Les événements temporels
Événements de signal
• Un signal est une transmission d’information explicite et
unidirectionnelle d’un objet à un autre

• Un événement de signal est un événement qui consiste à émettre ou à


recevoir un signal
– Par exemple, le départ du vol 123 de LAC de Boma le 10 janvier 2008 est
une instance de la classe de signaux DépartDeVol
« signal »
DépartDeVol
compagnie
numéroDeVol
ville
date
Événements de changement
• Un événement de changement est causé par la satisfaction d’une
expression booléenne

• L’objectif d’un événement de changement est que l’expression


booléenne correspondante soit testée en permanence:
– chaque fois que l’expression passe de faux à vrai, l’événement se
produit

Exemples:
1. when (température de la pièce < température de déclenchement du
chauffage)
2. when (pression du pneu < pression minimale)
Événements temporels
• Un événement temporel est causé par
l’occurrence d’un temps absolu ou par
l’écoulement d’une durée

• Exemples:
1. when (date = 01/01/2009)
2. after (10 secondes)
États
• Un état est une abstraction des valeurs et des liens d’un
objet
– Par exemple, l’état d’une banque est solvable ou insolvable, selon
que ses actifs excèdent ou non ses dettes

• Les états correspondent souvent à des participes présents


(Attendant, Numérotant) ou à la stabilité d’une condition
(Allumé, InférieurAZéro)
Solvable Insolvable
Événements vs État
• Les événements représentent des moments précis
dans le temps et les états représentent des
intervalles de temps

électricité allumée électricité éteinte électricité allumée

Alimenté Non alimenté


• Dans la pratique, on se contente généralement d’associer des états à
des objets
Transitions et conditions
• Une transition est le passage instantané
d’un état à un autre
– Par exemple, lorsque vous prenez un appel, la
ligne effectue une transition: elle passe de l’état
Sonnant à l’état Connecté

• On dit que la transition est franchie lors du


passage de l’état source à l’état cible
Transitions et conditions
• L’origine et la cible d’une transition sont
généralement deux états différents, mais il peut
s’agir du même état

• Une condition de franchissement est une


expression booléenne qui doit être vraie pour que
la transition soit franchie
– Par exemple, quand vous sortez le matin (événement),
si la température est inférieure à zéro (condition),
mettez des gants (état suivant)
Diagramme d’états
• Un diagramme d’états est un graphe
orienté dont les nœuds sont des états et les
arcs des transitions entre les états
– Il spécifie les successions d’états provoqués
par des successions d’événements
Diagramme d’états d’une ligne téléphonique
LigneTéléphonique
Inexploité

décroché Timeout
TonalitéLibre
chiffre(n) timeout
chiffre(n) Avertissement
Numérotant
timeout
TonalitéOccupé
numéroOccupé numéroInvalide
numéroValide
Message
Connexion Enregistré
TonalitéOccupé
Rapide acheminé
réseauSaturé
Sonnant
messageTerminé
posteAppeléRépond
Connecté
posteAppeléRaccroche
Déconnecté
Diagrammes d’états irréversibles
• Les diagrammes d’états peuvent représenter des
cycles de vie en boucle infinie ou irréversibles
– Le diagramme de la ligne téléphonique est une boucle
infinie

• Les diagrammes d’états irréversibles représentent


les objets dont la durée de vie est finie
– L’objet entre dans un état initial à sa création; l’entrée
dans l’état final implique la destruction de l’objet
Résumé de la notation de base des
diagrammes d’états
Nom du diagramme

Etat1 Etat2
event (attributs) [condition] / effet
Do / activité …
Event / effet

• État. Un état est représenté par une boite aux coins


arrondis contenant optionnellement un nom
– UML dispose d’une notation spéciale pour les états initiaux (un
cercle plein) et les états finaux (un cercle contenant un point ou un
x)
Résumé de la notation de base des
diagrammes d’états
• Transition. Une transition est représentée par une ligne
allant de l’état d’origine à l’état cible. Une flèche pointe
vers l’état cible. La ligne est composée d’un ou de
plusieurs segments

• Événement
– Un événement de signal est représenté sous forme d’étiquette
accolée à une transition, et peut être suivi d’attributs entre
parenthèses
– Un événement de changement est représenté par le mot-clé when
(quand) suivi d’une expression booléenne entre parenthèses
Résumé de la notation de base des
diagrammes d’états
– Un événement temporel est représenté par le mot-clé
when suivi d’une expression entre parenthèses
indiquant un moment précis ou par le mot-clé after
(après) suivi d’une expression entre parenthèses
exprimant une durée

• Diagramme d’états. Un diagramme d’états est


contenu dans un cadre rectangulaire, le nom du
diagramme figurant dans une petite étiquette
pentagonale située dans le coin supérieur gauche
Résumé de la notation de base des
diagrammes d’états
• Condition de franchissement. Une condition de
franchissement est listée optionnellement entre
crochets après un nom d’événement

• Effet (voir point suivant). Les effets peuvent être


attachés à une transition ou à un état et sont listés
après une barre oblique (/)
– Les effets multiples sont séparés par des virgules et
exécutés simultanément
Effets et activités
• Un effet est une référence à un comportement
exécuté en réponse à un événement

• Une activité est le comportement réel qui peut être


invoqué par un nombre quelconque d’effets
– Par exemple, déconnecterLigne pourrait être une
activité effectuée en réponse à un événement raccroché
Diagramme d’états d’un menu
contextuel sur une station de travail
• La notation d’une activité est une barre
oblique (/) suivie du nom (description) de
l’activité, le tout placé après le nom de
l’événement qui provoque l’activité

bouton droit enfoncé / afficher menu contextuel


EnAttente Menu visible
bouton droit relâché / effacer menu contextuel

curseur déplacé / mettre élément en surbrillance


Activités associées au mot-clé do
• Une activité associée au mot-clé do (activité-do) a lieu
pendant une durée significative
– Par définition, une telle activité ne peut se produire que dans un
état et ne peut être attachée à une transition

– Par exemple, une alarme peut clignoter tant qu’une


photocopieuse est dans l’état Bourrage papier

Bourrage papier
do / clignotement avertissement
Activités d’entrée et de sortie
• Au lieu de représenter des activités sur des
transitions, vous pouvez les lier à l’entrée ou à la
sortie d’un état
bouton appuyé/
Ouvrant
porte ouverte / moteur arrêté
moteur en position montée

bouton appuyé /
Fermé Ouvert
moteur en position montée

porte fermée / moteur arrêté


bouton appuyé /

Fermant moteur en position descente


Activités liées à l’entrée dans un
état
• La figure représente le même modèle avec des
activités à l’entrée dans les états
Ouvrant
entry / montée
bouton appuyé porte ouverte

bouton appuyé
Fermé Ouvert
entry / moteur arrêté entry / moteur arrêté

porte fermée
bouton appuyé
Fermant
entry / descente
Transitions d’achèvement
• Une transition non nommée est appelée
transition d’achèvement
Envoi de signaux
• Un objet peut exécuter une activité consistant à
envoyer un signal à un autre objet

• Un système d’objets interagit en échangeant des


signaux
• L’activité send cible.S(attributs) envoie le signal S
avec le ou les attributs indiqués à l’objet (ou aux
objets)
– Par exemple, la ligne téléphonique envoie un signal
connecter(numéro) au commutateur quand un numéro
de téléphone complet a été composé
Envoi de signaux
• Si le signal est toujours dirigé vers le même objet,
la cible peut être omise dans le diagramme (mais
elle doit, bien entendu, être fournie dans
l’implémentation)

• Si un objet peut recevoir des signaux de plusieurs


objets, l’ordre dans lequel les signaux concurrents
sont reçus peut affecter l’état final
– C’est ce que l’on nomme condition de concurrence
critique (race condition)
Exemple de diagramme d’états avec activités
LigneTéléphonique
raccroché /déconnecterLigne
Inexploité raccroché / déconnecterLigne

décroché Timeout
TonalitéLibre do / bipFort
do / tonalitéLibre

chiffre(n) timeout
chiffre(n) Avertissement
do / passerMessage
Numérotant
TonalitéOccupé
timeout
Do / tonalitéOccupé
Lente numéroOccupé numéroValide
numéroInvalide
Message Enregistré
Connexion do / passerMessage
do / établirConnexion
TonalitéOccupéRapide
do / tonalité acheminé
occupéRapide réseauSaturé
Sonnant
do / sonner
messageTerminé

posteAppeléRépond / connecterLigne
Connecté
posteAppeléRaccroche / déconnecterLigne
Déconnecté
Problèmes des diagrammes d’états
non structurés
• Les diagrammes d’états ont souvent été critiqués
pour être prétendument malcommodes dans le cas
de problèmes de grande taille
– Ces reproches sont fondés dans le cas des diagrammes
d’états non structurés, à plat

• Une possibilité pour structurer un modèle consiste


à tracer un diagramme de haut niveau avec des
sous-diagrammes qui développent certains états
Diagramme d’états d’un distributeur automatique
DistributeurAutomatique

pièces insérées(montant)
/ initialiser total
EnAttente Encaissement
pièces insérées(montant) / ajouter au total
annulation / rembourser

[article absent] sélection(article) [solde < 0]

do / tester présence article et calculer le solde

[solde=0] [solde>0]

distribution:DistribuerArticle do / rendre la monnaie


Sous-automate DistribuerArticle d’un distributeur
automatique
DistribuerArticle

do / placer le bras à la bonne bras prêt do / placer le bras à la bonne colonne


rangée

tombé bras prêt


do / faire tomber l’article de son étagère
États imbriqués
• Vous pouvez vous contenter de remplacer
un état par un sous-automate, mais vous
pouvez aussi structurer les états de manière
approfondie
– Vous pouvez imbriquer des états pour montrer
leurs points communs et les comportements
qu’ils partagent
États imbriqués d’une transmission
automatique
Transmission

passer Arrière
PointMort MarcheArrière
passer PointMort

passer PointMort passer Avant

MarcheAvant
stop monter monter
Première Seconde Troisième
rétrograder rétrograder
Concurrence d’agrégation
• Le diagramme d’états d’un assemblage est
une collection de diagrammes d’états – un
diagramme par sous-partie

• L’état de l’agrégat correspond à la


combinaison des états de l’ensemble de ses
parties
• L’agrégation exprime la « relation-et »
Concurrence d’agrégation
• L’état agrégé est un état du premier diagramme et un état
du deuxième diagramme et un état de tout autre
diagramme de la collection

• Dans les cas les plus intéressants, les états des sous-parties
interagissent

• Les transitions d’un objet peuvent dépendre de l’état d’un


autre objet
– Cela permet une interaction entre les diagrammes d’états, tout en
préservant leur modularité
Une agrégation et ses diagrammes d’états concurrents

Voiture
1
1 1 1 1

Contact Transmission Accélérateur Frein

Contact
tourner clé pour démarrer
[Transmission au PointMort] lâcher clé
Arrêt Démarrant Marche
tourner clé pour couper le moteur

Accélérateur appuyer sur Frein


l’accélérateur appuyer sur le frein
Relâché Appuyé Relâché Appuyé
relâcher Relâcher le frein
l’accélérateur
Une agrégation et ses diagrammes d’états
concurrents
Transmission

passer Arrière
PointMort MarcheArrière
passer PointMort

passer PointMort passer Avant

MarcheAvant
stop monter monter
Première Seconde Troisième
rétrograder rétrograder
Concurrence à l’intérieur d’un objet
• Il est possible de partitionner des objets en sous-
ensembles d’attributs ou de liens, chacun d’eux ayant
son propre sous-diagramme

• Les sous-diagrammes ne sont pas nécessairement


indépendants; même événement peut provoquer des
transitions dans plus d’un sous-diagramme

• UML représente la concurrence à l’intérieur d’un


objet en partitionnant l’état composite en différentes
régions séparées par des lignes pointillées.
Synchronisation des activités concurrentes
• Parfois, un objet doit exécuter deux (ou plusieurs)
activités concurremment
– Les étapes internes de ces activités ne sont pas
synchronisées, mais les deux activités doivent être
achevées avant que l’objet ne puisse passer dans l’état
suivant
• Par exemple, un distributeur automatique remet des billets à un
utilisateur et lui rend sa carte à la fin de la transaction. Le
distributeur ne doit pas se réinitialiser tant que l’utilisateur n’a pas
pris sa carte et ses billets, mais celui-ci peut les prendre dans un
ordre quelconque, voir simultanément
• C’est un exemple de division du contrôle en activités concurrentes
et de synchronisation du contrôle
Synchronisation du contrôle
DistributeurDeBillets
Émission

do / distribuer billets
PointMort
prêt Prêt pour réinitialiser
Initialisation

do / éjecter carte
Conseils pratiques
• Diagrammes d’états structurés. Employez-les pour des
modèles ayant plus de 10 à 15 états

• États imbriqués. Employez l’imbrication d’états lorsque la


même transition s’applique à plusieurs états

• Super-signaux concrets. De même que pour la


généralisation des classes, il est préférable d’éviter les
super-signaux concrets
– Il est toujours possible de supprimer les super-signaux concrets en
introduisant un signal Autre
Modélisation des interactions
• Le modèle de classes représente les objets et leurs
relations

• Le modèle d’états décrit le cycle de vie des objets

• Le modèle d’interactions, quant à lui, exprime la


façon dont les objets interagissent pour produire
des résultats utiles à l’application
Niveaux d’abstraction des
interactions
• Les cas d’utilisation décrivent comment un
système interagit avec les acteurs extérieurs
– Chaque cas d’utilisation représente une partie des
fonctionnalités que le système fournit à ses utilisateurs

• Les diagrammes de séquence fournissent plus de


détails et représente les messages que s’échange
un ensemble d’objets au fil du temps
– Les messages comportent à la fois les signaux
asynchrones et les appels de procédures
Niveaux d’abstraction des
interactions
• Les diagrammes d’activités fournissent des détails
supplémentaires et représentent le flux de contrôle
entre les étapes d’un traitement
– Ils montrent aussi bien des flux de données que des flux
de contrôle
– Ils décrivent également les étapes nécessaires à
l’implémentation d’une opération ou d’un processus
métier référencé dans un diagramme de séquence
Définition d’un acteur
• Définition
– Un acteur est un utilisateur externe direct du système:
un objet ou un ensemble d’objets qui communique
directement avec le système sans en faire partie

• Exemples
– Un client et un technicien de maintenance sont des
acteurs différents d’un distributeur automatique
– Les acteurs d’une agence de voyage sont voyageur,
agent, compagnie aérienne, etc
Cas d’utilisation
• Un cas d’utilisation est une partie cohérente des
fonctionnalités qu’un système peut fournir en
interagissant avec les acteurs

• Par exemple, un client peut acheter une boisson à


un distributeur automatique
– Le client insère de la monnaie dans le distributeur,
effectue une sélection et reçoit par la suite une boisson
Cas d’utilisation
• Un cas d’utilisation comprend une séquence de
messages échangés entre le système et ses acteurs

• Par exemple, dans le cas d’utilisation acheter une


boisson, le client commence par insérer une pièce
et le distributeur affiche le montant inséré. Cette
séquence peut se répéter plusieurs fois. Puis, le
client appuie sur un bouton pour sélectionner sa
boisson. Le distributeur délivre alors la boisson
choisie et il rend la monnaie si cela s’avère
nécessaire
Résumé des cas d’utilisation d’un
distributeur automatique
• Acheter une boisson. Le distributeur délivre une boisson après que le
client l’a sélectionnée et payée

• Effectuer une maintenance de routine. Un technicien de maintenance


effectue sur le distributeur l’entretien périodique nécessaire pour le
maintenir en bon état de fonctionnement

• Effectuer une réparation. Un technicien de maintenance effectue sur


le distributeur le service ponctuel nécessaire pour réparer un
dysfonctionnement

• Recharger des articles. Un employé au stock ajoute dans le


distributeur des articles pour réapprovisionner son stock de boissons
Description de cas d’utilisation
Cas d’utilisation: Acheter une boisson
Résumé: Le distributeur délivre une boisson après que le client
l’a sélectionnée et payée
Acteurs: Client
Préconditions: Le distributeur est en attente de l’insertion de
pièces
Description: Le distributeur commence dans l’état « en attente »
dans lequel il affiche le message « Insérez de la monnaie ». Un
client insère des pièces dans le distributeur. Le distributeur
affiche le montant total inséré et allume les boutons
correspondant aux articles pouvant être achetés avec ce
montant. Le client appuie sur un bouton. Le distributeur
délivre l’article correspondant et rend la monnaie si le coût de
la boisson est inférieur au montant inséré.
Description de cas d’utilisation
Exceptions:
Annulation: Si le client appuie sur le bouton
Annulation avant de sélectionner un article, le
montant qu’il a inséré lui est rendu et le
distributeur se remet dans l’état « en attente »

Épuisé: Si le client appuie sur le bouton d’un article


épuisé, le message « Article momentanément
indisponible » est affiché. Le distributeur continue
à accepter des pièces ou une sélection.
Description de cas d’utilisation
Somme insuffisante: Si le client appuie sur le bouton d’un article
dont le montant est plus élevé que la somme insérée, le
distributeur affiche le message « Vous devez insérer nn,nn €
de plus », où nn,nn est le montant manquant. Le distributeur
continue à accepter des pièces ou une sélection.

Pas de monnaie: Si le client a inséré suffisamment de pièces


pour acheter l’article et que la machine ne soit pas en mesure
de rendre la monnaie correcte, le message « Impossible de
rendre la monnaie » est affiché et le distributeur continue à
accepter des pièces ou une sélection.

Postconditions: Le distributeur est en attente de l’insertion de pièces


Diagramme du cas d’utilisation d’un
distributeur automatique
Distributeur
acheter
une boisson
Client

effectuer
une maintenance
de routine

effectuer
Technicien de
une maintenance
réparation

recharger
des articles
Employé au stock
Conseils pratiques
• Limites du système à déterminer avant tout. Il est impossible
d’identifier les acteurs ou les cas d’utilisation si les limites du système
ne sont pas clairement fixées

• Identification des acteurs. Chaque acteur doit avoir un objectif unique


et cohérent
– Si un objet du monde réel a plusieurs objectifs, capturez-les dans des
acteurs séparés

• Cas d’utilisation complet. Un cas d’utilisation doit représenter une


transaction complète, qui apporte une valeur aux utilisateurs. Il ne doit
pas être défini trop étroitement
Modèles de séquence
• Un modèle de séquence précise les thèmes
fonctionnels introduits par les cas
d’utilisation

• Deux types de modèles de séquence


existent: les scénarios et un format plus
structuré nommé diagramme de séquence
Scénarios
• Définition
– Un scénario est une séquence d’événements qui ont lieu lors du
fonctionnement du système, par exemple l’exécution d’un cas
d’utilisation

• La portée d’un scénario peut varier: soit il comprend tous


les événements du système, soit il n’inclut que ceux qui
affectent certains objets ou qui sont générés par eux

• Un scénario peut correspondre à l’historique de


l’exécution d’un système réel ou représenter un prototype
d’exécution d’un système envisagé
Scénario d’une session d’un système
de courtage en ligne
Donel se connecte.
Le système établit une connexion sécurisée.
Le système affiche les informations concernant le portefeuille.
Donel saisit un ordre d’achat pour 100 actions de Crimade au prix du marché.
Le système vérifie que les fonds sont suffisants pour la réalisation de la
transaction.
Le système affiche un écran de confirmation avec le coût estimé.
Donel confirme l’achat.
Le système passe l’ordre de la transaction.
Donel se déconnecte.
Le système établit une connexion non sécurisée.
Le système affiche un écran de remerciement
Un compte–rendu de la transaction est réalisé et transmis au système de courtage
en ligne.
Diagramme de séquence
• Définition
– Un diagramme de séquence représente les participants
à une interaction et la séquence des messages qu’ils
échangent.
• Il montre comment un système et ses acteurs interagissent afin
d’exécuter tout ou partie d’un cas d’utilisation

• La description du comportement de chaque cas


d’utilisation nécessite plusieurs diagrammes de
séquence
• Chacun d’eux représente une séquence de comportements
particulière du cas d’utilisation
Diagramme de séquence d’une session d’un
système de courtage en ligne
:Client :SystèmeDeCourtage :Bourse
connexion
sécuriser communication {vérifier client}
afficher portefeuille

saisir données achat


demander confirmation {vérifier fonds}

confirmer achat
afficher numéro d’ordre passer ordre

déconnexion
{exécuter
revenir à une communication ordre}
non sécurisée
afficher remerciements réaliser et transmettre un
compte-rendu de la transaction
Conseils pratiques
• Au moins un scénario par cas d’utilisation. Les
étapes d’un scénario doivent être des commandes
logiques, non de simples clics sur un bouton
– Plus tard, lors de l’implémentation, vous pourrez
spécifier la syntaxe exacte d’entrée
– Commencez par l’interaction principale la plus
simple: pas de répétition, une activité principale et des
valeurs types pour tous les paramètres
– Si des interactions principales substantiellement
différentes existent, écrivez un scénario pour chacune
d’entre elles
Conseils pratiques
• Scénarios synthétisés sous forme de
diagrammes de séquence. Il est
important de séparer la contribution de
chaque acteur et de la représenter sous
forme de diagramme de séquence car
c’est le prélude à l’organisation du
comportement des objets
Modèles d’activités
• Définition
– Un diagramme d’activités représente la suite
d’étapes qui constituent un processus
complexe, par exemple un algorithme ou un
workflow (flux de travaux).
• Il exprime le flux de contrôle, comme un
diagramme de séquence, mais en se concentrant sur
les opérations plutôt que sur les objets
• Les diagrammes d’activités sont particulièrement
utiles durant les premiers stades de la conception
des algorithmes et des workflows
Diagramme d’activités du traitement
d’un ordre de transaction
vérifier ordre

exécuter ordre

débuter compte
envoyer mettre à jour envoyer
confirmation portefeuille notification
conclure d’échec
en ligne
transaction

clôturer ordre
Relation include
• La relation include insère un cas d’utilisation dans la
séquence de comportements d’un autre cas d’utilisation

• Un cas d’utilisation inclus est comparable à une sous-


routine: il représente un comportement qu’il faudrait sinon
décrire à plusieurs reprises

• La notation UML d’une relation include est une flèche


pointillée partant du cas d’utilisation source (incluant) et
pointant vers le cas d’utilisation cible (inclus)
Inclusion d’un cas d’utilisation

sécuriser session
«include» 

valider code secret

«include» 
réaliser transaction
Relation extend
• La relation extend ajoute un comportement
incrémental à un cas d’utilisation
– Elle est comparable à une relation include du
côté opposé, dans laquelle l’extension s’ajoute
à la base au lieu que la base incorpore
explicitement l’extension
Extension d’un cas d’utilisation

négocier négocier
des actions des options

« extend »
« extend » « extend » « extend »

opération vente à
sur marge limiter
découvert
un ordre
Généralisation
• La généralisation permet de représenter les variantes
spécifiques d’un cas d’utilisation général, de façon
analogue à la généralisation de classes
– Un cas d’utilisation parent représente une séquence de
comportements générale
– Les cas d’utilisation enfants spécialisent le parent en insérant des
étapes supplémentaires ou en affinant certaines étapes

• Les cas d’utilisation peuvent également illustrer le


polymorphisme – un cas d’utilisation enfant peut se
substituer à un parent, par exemple en tant qu’inclusion
dans un autre cas d’utilisation
Généralisation de cas d’utilisation
réaliser une
transaction

négocier négocier négocier


des obligations des actions des options
Relations entre cas d’utilisation
Client Bourse

Système de courtage
sécuriser
session
« include » « include »
« include »
« include »
gérer compte réaliser une valider code secret
transaction
« include » ordre à
négocier des cours limite
négocier négocier
obligations des actions des options

« extend » « extend » « extend »

négociation vente à
sur marge découvert
Conseils pratiques
• Généralisation. Si un cas d’utilisation présente plusieurs variantes,
modélisez le comportement commun dans un cas d’utilisation
abstrait puis spécialisez-le en créant des variantes. N’utilisez pas la
généralisation uniquement pour partager un fragment de
comportement; en ce cas, employez une relation include

• Inclusion. Si un cas d’utilisation comprend un fragment de


comportement bien défini susceptible d’être utile dans d’autres
situations, définissez un cas d’utilisation pour ce fragment de
comportement et incluez-le dans le cas d’utilisation d’origine.
Dans la plupart des cas, vous devez considérer le cas d’utilisation
inclus comme une activité significative, non comme une fin en soi.
– Par exemple, la validation d’un code secret est significative pour un
utilisateur mais n’a de finalité que dans un contexte plus large
Diagrammes de séquence avec
objets passifs
• Un objet demeure actif après avoir envoyé un
message et peut répondre à d’autres messages sans
attendre de réponse
– Cette représentation est appropriée pour les modèles de
haut niveau
– En revanche, la plupart des implémentations sont
procédurales et limitent le nombre d’objets qui peuvent
effectuer des tâches simultanément

• La syntaxe UML des diagrammes de séquence


dispose d’une notation dédiée qui permet d’illustrer
des appels de procédures
Diagrammes de séquence avec
objets passifs
• La période pendant laquelle un objet existe mais
n’est pas actif est indiquée par une ligne
pointillée

• La période entière durant laquelle l’objet existe


est appelée ligne de vie, puisqu’elle montre la
durée de vie de l’objet

• Les diagrammes de séquence peuvent


représenter des implémentations d’opérations
Diagramme de séquence avec
objets passifs
:Transaction :TableClients :TableTaux
Calculer
commission ( )
niveau de service (client)

niveau

commissioncalculer commission(niveau, transaction)

commission
Diagramme de séquence avec des
objets temporaires
• De nombreuses applications contiennent des objets actifs
et passifs. Elles créent et détruisent des objets
objetA objetB
opérationE (c, d)

créerC (arg)
objetC
opérationE (m, n)

résultatT {exécuter ordre}

résultatV
Diagramme d’activités avec signaux
exécuter séquence
de démarrage

accepter connexion
de l’utilisateur

demander validation

attente réponse réseau

recevoir confirmation

prêt
Couloirs d’activités
• Les couloirs d’activités représentent les
responsables organisationnels de chaque
activité

• Placer une activité dans un couloir


d’activité particulier indique qu’elle est
effectuée par une ou plusieurs personnes de
l’organisation
Diagramme d’activités avec
couloirs d’activités
Personnel de bord Personnel de bord Service de restauration

Réapprovisionner
nettoyer nourriture
faire le plein
et boissons
Flux d’objets
• Il est parfois utile de visualiser les relations
entre une opération et les objets qui sont les
valeurs de ses arguments ou ses résultats

• Un diagramme d’activités peut représenter


les objets qui constituent les entrées ou les
sorties d’une activité
Diagramme d’activités avec flux
d’objets
:Avion :Avion
:Avion quitter parking décollage
[roulant] [en vol]
[au parking]

:Avion se garer :Avion atterrissage


[au parking] au parking [roulant]

Vous aimerez peut-être aussi