Académique Documents
Professionnel Documents
Culture Documents
UFR SAT/UGB
Plan 2
1 Introduction
Plan 3
1 Introduction
démarrer() allumer()
Diagramme de communication
1 : démarrer() 1.1 : allumer()
c : Conducteur v : Voiture m : Moteur
Diagramme de séquence
c : Conducteur v : Voiture m : Moteur
démarrer()
allumer()
Objectif
Décrire la réalisation des cas d’utilisation sur le système décrit par
le diagramme de classes
Plan 9
1 Introduction
Diagramme Diagramme
De structure comportemental
Diagramme Diagramme de
De séquence communication
Diagramme Diagramme
Vue d'ensemble De timing
Des interactions
Système
Classe A Classe B
utiliser
Acteur
Objectif
Description de la réalisation d’un cas d’utilisation sur le système
décrit par le diagramme de classes
Problème
Communication entre les acteurs et le système vu comme un
ensemble d’objets
Système
Classe A Classe B
utiliser
Acteur
Acteur
Acteur utiliser()
operation(args) classeB()
objetB : classeB
objetB
retour
detruire()
affichage X
Diagramme de séquence du cas utiliser
objets
operation1() Instance d'une classe
appel d'une du diagramme de
opération operation2(args)
classe
retour2
temps
ligne de vie
d'un objet retour1
barre d’activité :
l’objet est actif,
il effectue quelque
chose(barre facultative)
Valeur renvoyée
}
messageUn() messageDeux()
messageTrois()
Éléments de base
Un message n’est pas forcément une opération d’une classe.
Mais dans la plupart des cas, un message est
« implémenté »par une opération d’une classe qui, elle-même,
est « implementée »par une méthode.
La création d’un nouvel objet (création d’une nouvelle
instance) se fait :
par l’appel du constructeur
Par l’utilisation d’un message create ou new
En terme d’analyse et conception orientées objet, on parle de
message,
En programmation, on parle plutôt d’ appel de méthodes.
objet1: Classse1
objet1: Classse1
flèche pleine
exécution bloquée
vérifi erSolde(compte)
soldeOK
: Ascenseur : Voyant
flèche ouverte
allumer()
Types de messages
Problème de la réponse ;
comment recevoir le résultat/la réponse du message(asynchrone) ?
a: A b:B c: C
messageAsynchrone()
Le traitement
continue
en parallèle
messageAsynchrone()
continueTraitement()
attendreFinTraitement()
messageAsynchrone()
continueTraitement()
reponseTraitement
TraitementReponse()
Types de messages
NB : l’interruption peut survenir à n’importe quel moment.
On peut donc mettre le message de retour directement après
le traitement asynchrone
messageAsynchrone()
Traitement
asynchrone
ReponseTraitement Traitement
TraitementReponse() de la réponse
continueTraitement() Traitement
parallèle
Balking(dérobant)
N’interrompt pas l’exécution de l’expéditeur et ne déclenche une
opération chez le récepteur que s’il s’est préalablement mis en
attente de ce message.
Timeout(message minuté )
Bloque l’expéditeur pendant un temps donné en attendant la prise
en compte du message par le récepteur. L’expéditeur est libéré si la
prise en compte n’a pas eu lieu pendant le délai spécifié
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration
session()
NouvSession : session
nouvSession exécution du
retour obligatoire constructeur
de l'instance créée
destroy()
X
Durée de vie
destruction de l'objet
(pas nécessairement à de l’objet
la suite d'un message)
chercher(acteur)
ListeFilmsActeurTriee
message1()
message1()
Contrôle centralisé
1
2
Contrôle décentralisé
Types de cadres
Z Alt
Alternative (if-then-else) entre deux parties selon une garde
Z Loop :
Boucle
Z Opt
Partie optionnelle (if-then) selon une garde
Z Par
Deux parties en parallèle
Z Region
Partie en exécution mutuelle (processus / thread)
David Célestin FAYE Modélisation avec UML
Introduction
Les diagrammes séquence
Les diagrammes de collaboration
si la condition
n'est pas vérifi ée
alt
fermer()
[portes ouvertes]
déplacer(étage)
[portes fermées]
acteur
acteur
par
op1()
op2()
op3()
ref
Vérification du solde
ref
Prélèvement carte bancaire et notification au client
:Client : GAB
carte
demanderCode
alt [codeValide]
code
veification
OK
[else]
ref
codeInvalide
:Client : GAB
Loop[3] [codeNonValide]
code
vérification
demanderCode
Enchaînements alternatifs : :
A1 Numéro de compte non valide : En (1) , Le système central
indique que le compte n’est pas valide Le scénario nominal
reprend au point 1.
A2 Compte non suffisamment approvisionné :En (6) Le système
central indique que le montant demandé est supérieur au solde
du compte. Le scénario nominal reprend au point 4.
Postconditions : : :
montant demandé délivré & fin du retrait.
Compte valide
Vérification identité
Voir A1 : compte non valide
Demande du montant du retrait
Demande de 50 000FCA
Demande de vérification du solde du compte
compose(numero)
Tonalité
Appel
afficheNuméro
SonneriePersonalisée
Décroche
AckAppel
FinTonalité
Bonjour
Message('Bonjour')
Hello
val:-calcul()
Ou encore :
a: A b:B
calcul()
val
Plan 57
1 Introduction
Diagramme Diagramme
De structure comportemental
Diagramme Diagramme de
De séquence communication
Diagramme Diagramme
Vue d'ensemble De timing
Des interactions
(7) Autorisation
délivrance
(5) vérification
(3) Demande type solde compte
opération (2) validation compte
Syntaxe
[pré "/"][["["cond"]"] [séq] ["*"["||"]["["iter"]"]] " :"] [r " :="]
msg"("[par]")"
3 / 5 : fermer() :
Représente l’envoi du message numéro 5. Ce messages ne sera
envoyé qu’après l’envoi du message 3.
2.1 : lecture()
: Lecteur CD
2.1.1 : demarrer()
*[i:=1.n]Message
B
:A B
2 : p=Message2(p)
:C
2.1 : lecture()
: Lecteur CD
2.1.1 : demarrer()
msg10()