Vous êtes sur la page 1sur 37

M22- GENIE LOGICIEL ET CONCEPTION

ORIENTEE OBJETS (UML)

Lotfi NAJDI
Année Universitaire 2022 / 2023
Génie Informatique
FPT Taroudant
Diagramme de séquence
Diagramme de séquence

• Généralement, un diagramme de séquence illustre le déroulement d'un seul scénario.

• Le diagramme représente un certain nombre d'objets et les messages échangés entre ces

objets par rapport au cas d'utilisation.

• L'objectif principal d'un diagramme de séquence est de définir la séquence d'événements

qui aboutissent à un résultat souhaité.

• L'accent est mise sur chronologie des envois de message


Diagramme de séquence

• Le diagramme permet de visualiser cette séquence

Progression dans le temps 


d'événements selon les dimensions horizontale et verticale.
• la dimension verticale (axe temps) représente, de haut en bas, la
séquence temporelle des messages/appels au fur et à mesure
qu'ils se produisent

• la dimension horizontale montre, de gauche à droite, les instances


d'objets qui collabore et échangent les messages

• Les objets, intervenant dans l’interaction, sont matérialisés


par une « ligne de vie », et les messages échangés au
cours du temps sont mentionnés sous une forme textuelle.

• Les lignes horizontales indiquent les actions instantanées.

• Si « message 1 » a lieu avant « message 2 » alors


« message 1 » doit être placé au-dessus du « message 2 ».
Ligne de vie (Lifeline)

• Le diagramme de séquence représente les échanges entre les objets et les acteurs
(considérés également comme des objets) qui participent à la séquence modélisée.

• À chaque objet ou composant (participant) du système est attachée une ligne de vie (ligne
verticale en pointillé) qui représente sa durée de vie.
Bande d’activation

• Dans un diagramme de séquence, une interaction entre deux


Exécution
objets se produit lorsqu'un objet envoie un message à un autre.

• Le rectangle vertical placé sur une ligne de vie représente la


période pendant laquelle un élément effectue une opération.

• Cette bande rectangulaire permet de visualiser l’activité d’une


instance sur sa ligne de vie

• Représente un objet actif qui initie et contrôle le flux d'activités


ou bien l’exécution d’une méthode sur un objet passif.

La boîte est optionnelle, mais communément utilisée par les


praticiens UML.
Messages

• Dans un diagramme de séquence, une interaction entre deux


objets se produit lorsqu'un objet envoie un message à un autre.

• Le nom du message/méthode est placé au-dessus de la ligne

fléchée.

• Le message qui est envoyé à l'objet récepteur représente une

opération/méthode que la classe met en œuvre.

• Type les plus communs des messages:


• Invocation d'une opération
• Création ou destruction d'une instance.
• Envoi d'un signal ( interruption , événement)
Message de retour

• Le message de retour est un type de message qui représente la


transmission d'informations de retour à l'objet ayant envoyé le message de
départ (l'appelant ).

• Les messages de retour sont optionnels.

• Un message de retour permet de préciser explicitement la valeur retour.

• Un message de retour est dessiné sous la forme d'une ligne pointillée avec
une flèche ouverte vers la ligne de vie d'origine, et au-dessus de cette ligne
pointillée, on place la valeur de retour de l'opération.

• L'application envoie un message au serveur pour demander une liste des


achats effectués dernièrement par l'utilisateur. Le serveur envoie un
message de retour contenant la liste des achats à l'application.
Message synchrone

• Un message synchrone est utilisé lorsque l'émetteur attend que le récepteur termine le
traitement du message avant de passer à un autre.

• Par exemple l'émetteur reste bloqué le temps que dure l'invocation de l'opération.

• une flèche en traits pleins et à l'extrémité pleine partant de la ligne de vie d'un objet
expéditeur et allant vers celle de l'objet cible est utilisée pour représenter un message
synchrone

• Lorsqu'un utilisateur clique sur le bouton "Login" de l'application, celle-ci envoie un message
synchrone au serveur pour authentifier ses informations de connexion.
Message asynchrones

• L’objet émetteur ne se bloque pas en attendant la réponse de l’objet récepteur du message


– asynchrone et continue son activité

• Un message asynchrone est représenté par une flèche en traits pleins et à l'extrémité
ouverte

• Un utilisateur prend une photo à partir de son application , et celle-ci envoie un message
asynchrone au serveur pour charger la photo sur le compte de l'utilisateur. L'utilisateur peut
continuer à utiliser l'application pendant que le transfert est en cours.
Message récursif

• Lorsqu'un objet envoie un message à soi-même, il s'agit d'un message


réflexif. Il est indiqué par une flèche de message qui commence et se
termine sur la même ligne de vie

• Sa cible pointe vers une activation au-dessus de l'activation à partir de


laquelle le message a été invoqué.

• Lorsqu'un utilisateur saisit des données dans un formulaire de


l'application, celle-ci envoie un message automatique pour valider la saisie
et afficher les éventuelles suggestions ou erreurs.
Message Create et Destroy

• Les objets ne sont pas nécessairement en vie pendant toute la


durée de la séquence d'événements. Les objets ou participants
peuvent être créés en fonction d’un message envoyé.

• Le message de création est un type de message qui représente


l'instanciation de la ligne de vie (cible).

• Par ailleurs, les participants qui ne sont plus nécessaires


peuvent également être supprimés d'un diagramme de
séquence.

• Le message de type Destroy est un type de message qui


représente la demande de destruction de la ligne de vie cible.
Fragment d’interaction

Opérateur
• Un fragment de séquence est représenté par une boîte, appelée
fragment combiné, qui renferme une partie des interactions dans un
Séquence d’ interactions
diagramme de séquence. encadré par le fragment

• Un fragment combiné est défini par :


• un opérateur (situé dans (dans le coin supérieur gauche du cadre) indiquant le
type du fragment comme opt, alt,loop..etc

• des opérandes d'interaction associées.

• Les fragments d'interaction facilitent la création et la visualisation des


interactions complexes telles que des flux et des boucles alternatifs
d’une manière plus structurée.
• Un fragment combiné peut également avoir des contraintes
d'interaction ou conditions de franchissement appelées guards.
Fragment d’interaction
« alt »

Le fragment alternatif permet de modéliser la logique Si ... Alors


... Sinon ... Garde
Opérandes d’interaction
Le fragment alternatif est représenté par un grand rectangle ou
un cadre

Pour montrer deux ou plusieurs alternatives, la boite du fragment


divisé en opérandes à l’aide d’une ligne pointillée :

• Chaque opérande dispose une condition de garde.

• Seul le sous-fragment dont la condition est vraie est exécuté.

• La condition else est exécutée si aucune autre condition n’est


valide.
Fragment d’interaction
« opt »

L’opérateur option (opt) comporte un seule opérande et une condition de garde associée.

Le sous fragment s’exécute si la condition de garde est vraie et ne s’exécute pas dans les cas
contraires.
Fragment d’interaction
Fragment d’interaction
Boucle

• Le fragment de boucle est utilisé pour modéliser une

séquence répétitive ainsi que des conditions de garde

pratiques pour contrôler une boucle.

• Les paramètres min et max et condition sont optionnels.

• Le contenu du cadre est exécuté min fois, puis continue à

s’exécuter tant que la condition et que le nombre

d’exécution de la boucle ne dépasse pas max fois.


Fragment d’interaction
Boucle
Fragment d’interaction
«par »

• Fragment parallèle « par » est utilisé pour


représenter des activités de traitement réalisées
en parallèle (traitements concurrents).

• Chaque fragment est exécuté en parallèle.

• Un fragment avec l’opérateur de traitements


« par » contient au moins deux sous fragments
(opérandes) séparés par des pointillés.

• Chaque opérande du fragment représente un


thread d'exécution effectué en parallèle.
Fragment d’interaction

• Le fragment de type référence « ref » permet de mieux représenter les diagrammes de

séquence de taille importantes :

• faire appel à un autre diagramme de séquence.

• référencer une partie d’un diagramme dans un autre diagramme

Il est possible de combiner plusieurs fragments d’interaction afin de définir, par exemple,

des boucles ou des branches.


Diagramme de séquence système

• Permet de décrire le comportement du système vu de

l’extérieur (par les acteurs)

• Au stade de l’analyse, il sert à exprimer les scénarios

d’utilisation du système.

• Le système est vu comme une « boîte noire » qui sera

ouverte (décrite) seulement en conception

• Un Diagramme de séquence système permet d’illustrer les

événements système pour un scénario d'un cas d'utilisation


Exemple
Exemple
Exemple
Exercice TPV

Réalisez un diagramme de séquence système qui décrit le scénario du cas d'utilisation « Traiter le passage
en caisse » en ne considérant que le paiement cash.

1. Ce cas d'utilisation commence quand un client arrive à la caisse avec


des articles qu'il souhaite acheter.
3. Le TPV valide le CPU et détermine le prix de l'article.
2. Le Caissier enregistre chaque article. S'il y a plus d'un exemplaire par Le TPV affiche la description et le prix de l'article en
article, le Caissier indique également la quantité. question.
4. Après avoir enregistré tous les articles, le Caissier indique que la vente
est terminée. 5. Le TPV calcule et affiche le montant total de la vente.
6. Le Caissier annonce le montant total au client.
7. Le Client choisit le type de paiement :
a. En cas de paiement cash, exécuter le cas d'utilisation « Traiter le
paiement en liquide ».
b. En cas de paiement par carte de crédit, exécuter le cas d'utilisation
« Traiter le paiement par carte de crédit ».
8. Le TPV enregistre la vente effectuée et imprime un
ticket.
Exercice TPV

Traiter le paiement en liquide

1. Ce cas d'utilisation commence quand un Client choisit de payer

en espèces, après avoir été informé du montant total de la vente.

2. Le Client donne en paiement une somme en espèces ; elle est

éventuellement plus élevée que le montant total de la vente.

4. Le TPV affiche la somme qui doit être rendue au

3. Le Caissier enregistre la somme donnée par le client. Client.

5. Le Caissier encaisse l'argent reçu et sort la monnaie qu'il doit

rendre.

6. Le Caissier rend la monnaie au Client.


Exercice TPV
Exercice TPV
Diagramme de séquence conception

• Les Diagramme de séquence système et les Diagramme de séquence

conception sont deux types de diagrammes de séquence qui permettent de

répondre à des objectifs et à des publics différents.

• Les SSD sont utilisés pour capturer les interactions entre le système et ses

acteurs externes à un haut niveau d'abstraction, tandis que les DSD sont utilisés

pour modéliser les interactions entre les composants ou les objets du système à

un niveau d'abstraction plus détaillé.


Diagramme de séquence conception

• Utilisé au stade de la conception

• Objets logiciels à l'intérieur du système.

• Enchaînements d’appels de méthodes entre les


objets qui contribuent à implanter une certaine
fonctionnalité complexe.

• Passage de l’analyse à la conception : ouvrir la «


boîte noire » pour « voir » les objets logiciels
interagir
Diagramme de séquence conception

• Utilisé au stade de la conception

• Objets logiciels â l'intérieur du système.

• Enchaînements d’appels de méthodes entre les


objets qui contribuent à implanter une certaine
fonctionnalité complexe.

• Passage de l’analyse à la conception : ouvrir la «


boîte noire » pour « voir » les objets logiciels
interagir
Diagramme de séquence conception
Diagramme états-transitions

Un diagramme d’états-transitions ou diagramme d’états (state diagram) permet de décrire un seul


objet ou un composant et d'illustrer son comportement dynamique en réponse à une série
d'événements qui se produisent dans le système.
• Illustrer les états possibles d’un objet et les transitions qui provoquent un changement d'état.
• Un état correspond à la situation d'un objet à un moment donné. L'état d'un objet est déterminé
par les valeurs de ses attributs.
• Une transition : changement d'état
Etat

• Un état correspond à une situation stable pendant laquelle un objet

exécute une activité ou attend un événement. Il est représenté par

un rectangle arrondi contenant le nom de l’état.

• L’état initial correspond à un marqueur pour le premier état du

processus, représenté par un cercle plein.

• L’état final se représente par un entouré d’un cercle.

• Un cercle plein entouré d’une cercle vide représente l’état final qui

processus est terminé.


Transition externe

• Objet à un «état 1» peut transiter vers un « état 2 » en exécutant éventuellement


certaines activités, suite à un événement déclencheur et éventuellement à la
vérification du condition de franchissement.
• Une transition externe modifie l’état actif et est représentée par une flèche allant d'un
état à un autre qui indique un changement d'état.
• Evénement qui déclenche le franchissement de la transition.
• Grade entre [] : condition de franchissement optionnelle

• / Activité : Expression des actions à réaliser suite au déclenchement


Exemple de diagramme états-transitions

1. A la réception d'une commande, on passe de l'état


initial à l'état de commande non traitée.

2. La commande non traitée est ensuite examinée. Si


la commande n'est pas acceptée, on passe à l'état
Commande refusée.

3. Si la commande est acceptée et que les articles


sont disponibles, nous passons à l'état de
commande accomplie.

4. Cependant, si les articles ne sont pas disponibles,


nous passons à l'état de commande en attente.

5. Après la réalisation de la commande, on passe à


l'état final. Dans cet exemple, nous fusionnons les
deux états, à savoir la commande accomplie et la
commande rejetée, en un seul état final.
Transition interne

• Une transition interne ne provoque pas la modification de l'état actif suite à son
déclenchement.
• Une transition interne n’est pas représentée par une flèche mais elle est définie dans le
compartiment de leur état associé.
• Possède la même syntaxe qu’une transition externe mais avec des événement prédéfinis :
• Entry : spécifie les actions qui se produisent lorsque l'on vient d'entrer dans un état à
partir d'un autre état.
• Do : actions qui se produisent une ou plusieurs fois lorsque l'objet se trouve dans un
certain état une fois l'activité entry est terminée.
• Exit : spécifie les actions qui se produisent lorsqu‘on quitte l'état et on passe à un autre.

Vous aimerez peut-être aussi