Académique Documents
Professionnel Documents
Culture Documents
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
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
Etat1 Etat2
event (attributs) [condition] / effet
Do / activité …
Event / effet
• É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
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
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
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
pièces insérées(montant)
/ initialiser total
EnAttente Encaissement
pièces insérées(montant) / ajouter au total
annulation / rembourser
[solde=0] [solde>0]
passer Arrière
PointMort MarcheArrière
passer PointMort
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
• Dans les cas les plus intéressants, les états des sous-parties
interagissent
Voiture
1
1 1 1 1
Contact
tourner clé pour démarrer
[Transmission au PointMort] lâcher clé
Arrêt Démarrant Marche
tourner clé pour couper le moteur
passer Arrière
PointMort MarcheArrière
passer PointMort
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
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
• 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
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
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
sécuriser session
«include»
«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
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
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
niveau
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ésultatV
Diagramme d’activités avec signaux
exécuter séquence
de démarrage
accepter connexion
de l’utilisateur
demander validation
recevoir confirmation
prêt
Couloirs d’activités
• Les couloirs d’activités représentent les
responsables organisationnels de chaque
activité
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