Vous êtes sur la page 1sur 55

Méthodes d’Analyse et de Conception Orientée

Objet

Elaboré par Mme Emna HKIRI


Emna.hkiri@gmail.com

Polytech de Monastir 2022-2023


Plan
 Concepts de l’approche objets et présentation d’UML2
 Modélisation des besoins
 Diagrammes de cas d’utilisation
 Modélisation de la structure statique
 Diagramme de classes
 Diagramme d’objets
 Modélisation du comportement dynamique
 Diagrammes d’interaction
 Diagramme de séquence
 Diagramme de collaboration
 Diagramme d’états-transition
 Diagramme d’activités

2
Diagramme de séquences
 Représente les interactions entre objets en précisant la chronologie des échanges de
messages
 Représente une instance d’un cas d’utilisation (les scénarios possibles d’un cas d’utilisation
donné)
 Montre sous forme de scénarios, la chronologie des envoies de messages issus d’un cas
d’utilisation

 Le diagramme de séquence fait ressortir :


o Les acteurs
o Les objets
o Les messages

3
Exemple :
 Cas d'utilisation : Classe Article
 Opérations nécessaires dans le D.Classes

 Diagramme de séquences correspondant :

4
Diagramme de séquences : exemple
 Le client demande un service (retirer de l’argent) à l’objet Compte
Le compte reçoit le message et déclenche l’opération de même nom
Le compte retourne le résultat (le solde actuel)

:
:

5
Objectif des diagrammes de séquence
 Les diagrammes de cas d'utilisation modélisent à QUOI sert le système, en
organisant les interactions possibles avec les acteurs.

 Les diagrammes de classes permettent de spécifier la structure et les liens


entre les objets dont le système est composé : ils spécifie QUI sera à l'œuvre
dans le système pour réaliser les fonctionnalités décrites par les diagrammes
de cas d'utilisation.

 Les diagrammes de séquences permettent de décrire COMMENT les éléments


du système interagissent entre eux et avec les acteurs.
 Les objets au cœur d'un système interagissent en s'échangent des messages.
 Les acteurs interagissent avec le système au moyen d'IHM (Interfaces
Homme-Machine).

6
Représentation de diagramme de séquences
 Un objet est représenté par un rectangle et une ligne verticale (ligne de vie de l’objet)

 Les objets communiquent en échangeant des messages représentés par des flèches orientées
de l’émetteur au récepteur

 L’ordonnancement vertical des messages indique la chronologie

7
D. Séquences :distribuer le comportement des cas
d’utilisation sur les classes d’analyse

8
Ligne de vie
 Une ligne de vie représente un participant à une interaction (objet ou acteur).
nomLigneDeVie [ selecteur ]: nomClasseOuActeur
 Dans le cas d'une collection de participants, un sélecteur permet de choisir un objet parmi n.

Exemple:

9
Plusieurs concepts additionnels :
Période d’activité

Types de messages

Création et destruction d’objets


Structures de contrôles
et répétitives

10
Période d’activité
 Correspond au temps pendant lequel un objet fait une action
 Représentée par une bande rectangulaire superposée à la ligne de vie de l’objet

Représentation
 Exemple:

Période d’activité

11
Les Messages
 Traduisent les interactions (échange d’informations) entre objets

 Représentés par des flèches orientées de l’émetteur au récepteur

 Un message reçu par un objet déclenche l’exécution d’une opération

 Un message envoyé par objet correspond :


 Demander un service d’un autre objet
 Renvoyer le résultat d’une opération

12
Traduction des messages
 Envoyer un message c’est demander un service d’un autre objet (sauf le cas d’un message de
retour).
 Les messages sont traduits par des opérations dans la classe de l’objet ayant reçu le message

13
Concepts – Message (Exemple)

14
Les Messages
 Un message reçu par un objet déclenche l’exécution d’une opération

 Un message envoyé par objet correspond :


 Demander un service d’un autre objet
 Renvoyer le résultat d’une opération
 Plusieurs types :
Message simple

Message minuté (Timeout)

Message synchrone

Message asynchrone

Message récursif

15
Message simple
 Message pour lequel on ne spécifie aucune information d’envoi ou de réception

Représentation

16
Message minuté (Timeout)
 Bloque l’expéditeur pendant un temps donné, en attendant la prise en compte du message par
le récepteur.
 Après le délai, l’expéditeur est libéré et peut envoyer
Représentation Exemple : La porte d’un ascenseur s’ouvre pendant un certain
délai avant d’être refermée. :

: :

17
Message synchrone
 Les messages synchrones correspondent à des opérations dans le
diagramme de classes.
Envoyer un message et attendre la réponse pour poursuivre son
activité revient à invoquer une méthode et attendre le retour pour
poursuivre ses traitements.
Représentation

18
Message synchrone :exemple

19
Message synchrone: Exemple
 Bloque l’expéditeur jusqu’à la prise en compte du message par le récepteur
 Le contrôle est passé de l’émetteur au récepteur qui devient à son tour émetteur (actif)

Exemple

20
Message asynchrone
 N’interrompt pas l’exécution de l’expéditeur.
 L’expéditeur peut émettre sans attendre la réponse du récepteur

21
Message asynchrone : exemple

22
Message synchrone /asynchrone :exemple
 Message Asynchrone
-N'attend pas de réponse
-Ne bloque pas l'émetteur
-Exemple : signal (interruption,
évènement)

 Message Synchrone
-Emetteur bloqué jusqu'à la
réponse du récepteur
-Exemple : invocation d'une
opération

23
Message récursif
 Appelé aussi message réflexif : Message envoyé d’un objet vers lui-même.

Représentation Exemple : Lorsque le client introduit sa carte de guichet, ce


dernier vérifie la validité de la carte avant de demander le
code d’accès

24
Exemple :

25
Message de Création et destruction d’objets
 La création d'un objet est matérialisée par une flèche qui pointe sur le
sommet d'une ligne de vie.
 On peut aussi utiliser un message asynchrone ordinaire portant le nom
« create » .

 La destruction d'un objet est matérialisée par une croix qui marque la fin
de la ligne de vie de l'objet.

26
Création et destruction d’objets: exemple
 Un message peut créer ou détruire un objet

27
Message de construction :Exemple:

28
Message de destruction: exemple

29
Exemple construction & destruction:

30
Messages: Perdu et trouvé : exemple
 La plupart du temps, un ordinateur contaminé ne connaît pas la source
du virus et l’auteur du virus ne souhaite pas être connu, d’où l’utilisation
de messages perdu et trouvé.

31
Les messages de retour
 La syntaxe des messages de retour est :
attributCible = nomOperation ( params ): valeurRetour
 La syntaxe des paramètres est :
nomParam = valeurParam
ou
nomParam : valeurParam
 Les messages de retour sont représentés en pointillés.

32
Message de réponse : exemple

33
Principaux types de messages

34
Exercice 1
 La rubrique enchaînement nominal du cas d'utilisation retrait d'espèces contient les éléments
suivants :
 Le guichetier saisit le numéro de compte du client ;
 Le système guichet vérifie le compte auprès du système central ;
 Le système guichet demande le type d’opérations au guichetier
 Le guichetier choisit l’opération de retrait de 100 dinars ;
 Le système guichet interroge le système central pour s'assurer que le compte est suffisamment
approvisionné ;
 Le système central effectue le débit du compte ;
 En retour, le système notifie au guichetier qu'il peut délivrer le montant demandé.

 Question : Donner le diagramme de séquences associé à cette description textuelle. L’acteur


guichetier communique avec les objets système guichet et le système central

35
Corrigé
 La rubrique enchaînement nominal du cas d'utilisation
retrait d'espèces contient les éléments suivants :
 Le guichetier saisit le numéro de compte du client ;
 Le système guichet vérifie le compte auprès du
système central ;
 Le système guichet demande le type d’opérations au
guichetier
 Le guichetier choisit l’opération de retrait de 100
dinars ;
 Le système guichet interroge le système central pour
s'assurer que le compte est suffisamment
approvisionné ;
 Le système central effectue le débit du compte ;
 En retour, le système notifie au guichetier qu'il peut
délivrer le montant demandé.

 Question : Donner le diagramme de séquences associé à


cette description textuelle. L’acteur guichetier
communique avec les objets système guichet et le
système central
36
Structures de contrôle
Le diagramme de séquences peut inclure un certain nombre de structures

 Branchements (tests)

 Répétitions (itérations, boucles)

37
Les test (branchements)
La condition précédée le message et elle est délimitée par des crochets

38
Les test (branchements) : Exemple
 Pour accéder au centre de recherche, l’utilisateur doit présenter son badge.
 S’il a droit d’accès, un voyant vert est allumé et la porte s’ouvre

: :

39
Branchement conditionnel: exemple

40
Les boucles (répétitions)
 La boucle se note comme le test, mais la condition est précédée d’un astérisque

41
Syntaxe de l'opérateur loop
 Itération (loop) : le fragment peut s’exécuter plusieurs fois selon les conditions de la
garde
 Syntaxe d'une boucle :
loop ( minNbIterations , maxNbIterations )
 La boucle est répétée au moins minNbItérations fois avant qu'une
éventuelle condition booléenne ne soit testée (la condition est placée
entre crochets dans le fragment)
 Tant que la condition est vraie, la boucle continue, au plus
maxNbItérations fois.
 Notations :
 loop(valeur) est équivalent à loop(valeur,valeur).
 loop est équivalent à loop(0,*), où * signifie illimité .

42
La boucle : exemple

43
Exercice :
 Un concepteur a effectué la partie analyse du projet de développement « mini-commerce ». Il a
remis un DSS (Diagramme de Séquences Système) et une ébauche du diagramme de classe.

 Le métier étudié dans le cadre de « mini-commerce » est celui des boutiques (Très Petits
Commerces)qui disposerai à terme d’une caisse sur un ordinateur commun (PC Compatible) et
s’affranchirait ainsi des point de ventes propriétaire actuellement répandus.

 Développer le diagramme de séquences système en un diagramme de séquences de conception,


qui fasse apparaître tout ou partie des classes identifiées dans le modèle d’analyse (d’éventuelles
classes non présentes dans le modèle du domaine peuvent être ajoutées).

44
Exercice:
Développer le diagramme de séquences système en un diagramme de séquences de conception,
Cette démarche devrait permettre d’identifier une bonne partie des
opérations de chaque classe.
Diagramme de Séquence système
-Le client commence par ajouter des articles au panier
-Le prix de chaque article est indiqué dans le catalogue correspondant

-Le montant total du panier est cumulé puis affiché

-Le client confirme la transaction en imprimant son ticket

Diagramme de classes – non complet

45
Corrigé

Cette démarche devrait permettre d’identifier


une bonne partie des opérations de chaque
classe.

-Le client commence par ajouter des articles


au panier

-Le prix de chaque article est indiqué dans le


catalogue correspondant

-Le montant total du panier est cumulé puis


affiché

-Le client confirme la transaction en


imprimant son ticket

46
Fragments
 Permet de décomposer une interaction complexe en fragments simples
 Représenté par un rectangle dont le coin supérieur gauche contient un pentagone
 Dans le pentagone figure le type du fragment
 loop : boucle

 alt : alternative

 ref : référence

…

47
Concepts – Fragments d’interaction
 Alternatif (alt) : plusieurs fragments possibles. Seul celui dont la condition est vraie
s’exécute
 Pourquoi ? :
 représenter l’articulation des interactions
 découper la description d’une interaction
 opérateur :
 conditionne la signification du fragment
 opérande : portion, d’un fragment d’interaction conditionnée par une garde

48
Fragments d’interaction (opérateur): exemple

: :

49
Concepts – Fragments d’interaction (opérateur)

Optionnel (opt) : ne s’exécute que si la Exemple :


condition est vraie

Option (ou opt):  Représente un


comportement qui peut se produire ou
pas.

 Équivalent à un alt à une seule branche


et sans else

50
Opérateur parallèle
 Parallèle (ou par): A au moins 2 sous fragments exécutés simultanément. L'opérateur par permet
d'envoyer des messages en parallèle.
 Ce qui se passe de part et d'autre de la ligne pointillée est indépendant.
Exemple :
Représentation :

51
Réutilisation d'une interaction
 Réutiliser une interaction consiste à placer un fragment portant la référence « ref » là où
l'interaction est utile.
 On spécifie le nom de l'interaction dans le fragment.

52
Réutilisation d'une interaction: exemple

53
Application
Alnajah est composée d’un certain nombre de personnels et d’étudiants. Tout étudiant est caractérisé par son
nom, son prénom, sa date de naissance, sa nationalité et un numéro. Du point de vue de l’application, toutes ces
informations seront contenues dans un serveur de stockage.
Les utilisateurs devront s’identifier grâce à un login et un mot de passe également stockés dans ce serveur.
L’accès à l’application se fait via un portail qui permet aux utilisateurs de s’authentifier et d’émettre des
requêtes. Les utilisateurs peuvent être des inspecteurs des études, des professeurs ou des élèves. Un scénario
d’entrée de notes pour un élève par un inspecteur des études est le suivant :
- l’inspecteur se connecte au portail et celui-ci lui demande son login et son mot de passe ;
- l’inspecteur envoie son login et son mot de passe ;
- le portail vérifie l’identité grâce au serveur de stockage ;
- le portail ouvre une session pour l’inspecteur ;
- celui-ci demande une visualisation de tableau de notes pour l’élève X ;
- le portail, après interrogation du serveur de stockage lui renvoie le tableau de notes ;
- l’inspecteur entre la note de 15 pour la matière XX200 pour l’élève X ;
- le portail appelle la méthode correspondante du serveur de stockage pour modifier les notes de l’élève.
- Ce dernier enregistre la modification réalisée et envoie un message de succès vers le portail.
 le portail visualise la modification à l’inspecteur
proposer un diagramme de séquence représentant le scénario précédent. Pour les méthodes pour lesquelles cela
est utile, représenter les paramètres et les valeurs de retour.
54
55

Vous aimerez peut-être aussi