Vous êtes sur la page 1sur 84

Unified Modeling language

Conception des Systèmes d’information


3ème année IIR
Pr. L. Demraoui

2019/2020
C’est quoi modéliser?

Conception Orientée Objet Pr. L. Demraoui 2


POURQUOI ET COMMENT MODÉLISER EN ORIENTÉ OBJET

Relier le modèle au monde réel par la notion d’objet


▪ Orienté objet = abstraire et décomposer le système informatique en objets
▪ Le monde réel est constitué d’objets physiques ou immatériels
▪ Tracer les objets virtuels de modélisation depuis les objets du monde réel
▪ Relier les objets (réels) du problème et les objets (virtuels) de la solution

▪ Favoriser les abstractions naturelles du monde réel utilisables en modélisation


▪ Objets vus comme des « boîtes noires » : seules les propriétés visibles de l’extérieur
intéressent
▪ Objets possédant un nom, qualifiables, classables, dé-/composables, interagissant avec
d’autres objets, etc.

▪ Objectifs supplémentaire lors de la modélisation orientée objet


▪ Meilleure indépendance du modèle par rapport aux fonctions demandées
▪ Meilleure capacité d’adaptation et d’évolution du modèle lorsque des
fonctionnalités sont modifiées ou ajoutées
Conception Orientée Objet Pr. L. Demraoui 3
BREF HISTORIQUE
Il faut qu'on sache que UML est connoté programmation objet. Attention !
Ce n’est pas une méthode !

▪ Au début des années 1980 , on commença à réfléchir à des langages de modélisation ou


conception graphique.
▪ L'UML est le résultat des démarches ou méthodes de plusieurs langages de modélisation
orientées objet, tels que :

1. PETER HOOD : Méthode OOD « object Oriented Design » la


traduction en français « Modélisation Orientée Objet ». Méthode Méthode
OOAD Méthode OOD
2. GRADY BOOCH : Méthode OOAD « object Oriented Analysis OOSE
and Design » la traduction en français « Analyse de
modélisation Orientée Objet ». Méthode
OMT
3. JAMES RUMBAUGH : Méthode OMT « object Modeling
Technic » la traduction en français « Technique de
modélisation Objet ».
4. IVAR JACOBSON : Méthode OOSE « Oriented Object
Software Engineering
Conception Orientée Objet » la traduction en français « Génie UMLPr. L. Demraoui 4

Logiciel Orienté Objet ».


VERSION UML

UML 2.5.1 UML 2.5 Bêta 2


2017 2013

Conception Orientée Objet Pr. L. Demraoui 5


C'EST QUOI UML ?

▪ UML est l’acronyme anglais pour « Unified Modeling Language ». On


le traduit en français par « Langage de Modélisation Unifié ».

▪ UML est un langage de modélisation graphique, permet d’expliquer


les modèles objets à travers un ensemble de diagrammes.

▪ Un diagramme d’UML est une représentation graphique, qui offre 14


types de diagrammes et chaque type de diagramme offre une vue
d’un système.

Conception Orientée Objet Pr. L. Demraoui 6


DIAGRAMMES UML

Diagramme de profils

Les 14 diagrammes UML sont dépendants


hiérarchiquement et se complètent, de façon à
permettre laOrientée
Conception modélisation
Objet d'un projet tout au Pr. L. Demraoui 7
long de son cycle de vie.
▪ Diagramme de classes (Class diagram) : il représente les classes intervenant dans
le système
▪ Diagramme d'objets (Object diagram) : il sert à représenter les instances de
Diagrammes structurels ou

classes (objets) utilisées dans le système.


▪ Diagramme de composants (Component diagram) : il permet de montrer les
composants du système d'un point de vue physique, tels qu'ils sont mis en
œuvre (fichiers, bibliothèques, bases de données…)
statiques:

▪ Diagramme de déploiement (Deployment diagram) : il sert à représenter les


éléments matériels (ordinateurs, périphériques, réseaux, systèmes de stockage…)
et la manière dont les composants du système sont répartis sur ces éléments
matériels et interagissent entre eux.
▪ Diagramme des paquetages (Package diagram) : un paquetage étant un
conteneur logique permettant de regrouper et d'organiser les éléments dans le
modèle UML, le diagramme de paquetage sert à représenter les dépendances
entre paquetages, c’est-à-dire les dépendances entre ensembles de définitions.
▪ Diagramme de structure composite (Composite Structure Diagram) : depuis UML
2.x, permet de décrire sous forme de boîte blanche les relations entre
composants d'une classe.
▪ Diagramme de profils (Profile diagram) : depuis UML 2.2, permet de spécialiser,
de personnaliser pour un domaine particulier un meta-modèle de référence
Conception Orientée Objet Pr. L. Demraoui 8
d'UML.
▪ Diagramme des cas d'utilisation (use-cases ou Use Case Diagram) : il permet
d'identifier les possibilités d'interaction entre le système et les acteurs
(intervenants extérieurs au système), c'est-à-dire toutes les fonctionnalités que
doit fournir le système.
Diagrammes de comportement:

▪ Diagramme états-transitions (State Machine Diagram) : permet de décrire sous


forme de machine à états finis le comportement du système ou de ses
composants.
▪ Diagramme d'activité (Activity Diagram) : permet de décrire sous forme de flux
ou d'enchaînement d'activités le comportement du système ou de ses
composants.
▪ Diagramme de séquence (Sequence Diagram) : représentation séquentielle du
déroulement des traitements et des interactions entre les éléments du système
et/ou de ses acteurs.
▪ Diagramme de communication (Communication Diagram) : depuis UML 2.x,
représentation simplifiée d'un diagramme de séquence se concentrant sur les
échanges de messages entre les objets.
▪ Diagramme global d'interaction (Interaction Overview Diagram) : depuis UML 2.x,
permet de décrire les enchaînements possibles entre les scénarios préalablement
identifiés sous forme de diagrammes de séquences (variante du diagramme
d'activité).
▪ Diagramme de temps (Timing Diagram) : depuis UML 2.3, permet de décrire les
variations
Conception Orientée Objetd'une donnée au cours du temps. Pr. L. Demraoui 9
DIAGRAMME DE CAS D’UTILISATION

Conception Orientée Objet Pr. L. Demraoui 10


DIAGRAMME DE CAS D’UTILISATION

▪ Fournit une vision du système en terme d’acteurs et leurs

objectifs.

But: Déterminer les fonctions effectuées par


chaque acteurs

Conception Orientée Objet Pr. L. Demraoui 11


DIAGRAMME DE CAS D’UTILISATION

▪ Acteur
Un acteur représente une personne, un périphérique ou un autre système
qui joue un rôle (interagit) avec le système
Un acteur est une « entité » externe au système qui interagit avec le
système.

▪ Formalisme et exemple
Un acteur peut se représenter
symboliquement par un « bonhomme »
et être identifié par son nom.
Il peut aussi être formalisé par une classe
Représentations d’un acteur
stéréotypée « acteur ».

Conception Orientée Objet Pr. L. Demraoui 12


DIAGRAMME DE CAS D’UTILISATION

Relation de généralisation spécialisation entre acteurs

▪ La généralisation spécialisation est aussi appelée

héritage (EST-UN)

▪ « L’organisatrice participe au scrutin qu’elle gère. »

▪ Une organisatrice est une participante

Conception Orientée Objet Pr. L. Demraoui 13


DIAGRAMME DE CAS D’UTILISATION

Conception Orientée Objet Pr. L. Demraoui 14


DIAGRAMME DE CAS D’UTILISATION

Cas d’utilisation, lien de communication et système

▪ Un cas d’utilisation est un moyen de représenter les différentes possibilités

d’un système.

▪ Il correspond à une suite d’interactions entre un acteur et le système

▪ Il définit une fonctionnalité utilisable par un acteur

Conception Orientée Objet Pr. L. Demraoui 15


DIAGRAMME DE CAS D’UTILISATION

▪ Cas d’utilisation et interaction

Un cas d’utilisation correspond à un certain nombre d’actions que


le système devra exécuter en réponse à un besoin d’un acteur. Un
cas d’utilisation doit produire un résultat observable pour un ou
plusieurs acteurs ou parties prenantes du système.

Conception Orientée Objet Pr. L. Demraoui 16


DIAGRAMME DE CAS D’UTILISATION
▪ Cas d’utilisation et interaction

▪ Une interaction permet de décrire les échanges entre un acteur et un


cas d’utilisation.
▪ L’interaction entre un acteur et un cas d’utilisation se représente comme
une association.
▪ Elle peut comporter des multiplicités comme toute association entre
classes.

Chaque cas d’utilisation doit être décrit sous forme textuelle afin de
bien identifier les traitements à réaliser par le système en vue de la
Conception Orientée Objet Pr. L. Demraoui 17
satisfaction du besoin exprimé par l’acteur.
DIAGRAMME DE CAS D’UTILISATION

Le nom du
système

La frontière du
système

Conception Orientée Objet Pr. L. Demraoui 18


DIAGRAMME DE CAS D’UTILISATION
Description textuelle d’un cas d’utilisation
La description textuelle d’un cas d’utilisation est articulée en six points :
• Objectif – Décrire le contexte et les résultats attendus du cas d’utilisation.
• Acteurs concernés – les acteurs concernés par le cas doivent être identifiés en précisant leur
rôle.

• Pré conditions – Si certaines conditions particulières sont requises avant l’exécution du cas, elles
sont à exprimer à ce niveau.

• Post conditions – Par symétrie, si certaines conditions particulières doivent être réunies après
l’exécution du cas, elles sont à exprimer à ce niveau.

• Scénario nominal – Il s’agit là du scénario principal qui doit se dérouler sans incident et qui
permet d’aboutir au résultat souhaité.

• Scénarios alternatifs – Les autres scénarios, secondaires ou correspondant à la résolution


d’anomalies, sont à décrire à ce niveau. Le lien avec le scénario principal se fait à l’aide d’une
numérotation hiérarchisée (1.1a, 1.1b…) rappelant le numéro de l’action concernée.
Conception Orientée Objet Pr. L. Demraoui 19
Conception Orientée Objet Pr. L. Demraoui 20
Conception Orientée Objet Pr. L. Demraoui 21
Conception Orientée Objet Pr. L. Demraoui 22
Conception Orientée Objet Pr. L. Demraoui 23
DIAGRAMME DE CAS D’UTILISATION

▪ Relations entre les cas d’utilisation

▪ Relation d’inclusion = réutilisation complète sans changement «include»

▪ Relation de généralisation/spécialisation ou héritage = spécialisation de

certaines actions du cas d’utilisation d’origine,

▪ Relation d’extension= ajout de fonctionnalité facultative. «extend»

Conception Orientée Objet Pr. L. Demraoui 24


DIAGRAMME DE CAS D’UTILISATION

La relation d’inclusion:
Un cas A est inclus dans un cas B si le
comportement décrit par le cas A est inclus
dans le comportement du cas B : on dit alors
que le cas B dépend de A.

▪ Cette dépendance est symbolisée par le

stéréotype « inclut » .
▪ Par exemple, l’accès aux informations d’un
compte bancaire inclut nécessairement une
phase d’authentification avec un mot de passe

Conception Orientée Objet Pr. L. Demraoui 25


DIAGRAMME DE CAS D’UTILISATION

Conception Orientée Objet Pr. L. Demraoui 26


DIAGRAMME DE CAS D’UTILISATION

Relation d’extension
Si le comportement de B peut être étendu par le comportement de A, on dit
alors que A étend B.
▪ Deux caractéristiques sont à noter :
• le caractère optionnel de l’extension dans le déroulement du cas d’utilisation
standard (A) ;
• la mention explicite du point d’extension dans le cas d’utilisation standard.

▪ Une extension est souvent soumise à condition.

▪ Graphiquement, la condition est exprimée sous la forme d’une note.

Conception Orientée Objet Pr. L. Demraoui 27


DIAGRAMME DE CAS D’UTILISATION

Conception Orientée Objet Pr. L. Demraoui 28


DIAGRAMME DE CAS D’UTILISATION

Remarque

Attention à l’orientation des flèches :


• si le cas A inclut B on trace la flèche de A vers B
• si B étend A, la flèche est dirigée de B vers A

Conception Orientée Objet Pr. L. Demraoui 29


DIAGRAMME DE CAS D’UTILISATION

Relation de généralisation
Une relation de généralisation de cas d’utilisation peut être définie
conformément au principe de la spécialisation-généralisation.

Conception Orientée Objet Pr. L. Demraoui 30


DIAGRAMME DE CLASSE

Conception Orientée Objet Pr. L. Demraoui 31


DIAGRAMME DE CLASSE

▪ Les diagrammes de cas d'utilisation modélisent à QUOI sert


le système.
▪ Le système est composé d'objets qui interagissent entre eux
et avec les acteurs pour réaliser ces cas d'utilisation.
▪ Les diagrammes de classes permettent de spécifier la
structure et les liens entre les objets dont le système est
composé.

Conception Orientée Objet Pr. L. Demraoui 32


DIAGRAMME DE CLASSE
CLASSE, ATTRIBUT ET OPÉRATION

Classe
▪ Une classe décrit un groupe d’objets ayant les mêmes propriétés

(attributs), un même comportement (opérations), et une sémantique


commune (domaine de définition).

▪ Un objet est une instance d’une classe.

▪ La classe représente l’abstraction de ses objets.

Conception Orientée Objet Pr. L. Demraoui 33


DIAGRAMME DE CLASSE

▪ Une classe est composée d'un nom, d'attributs et d'opérations. Selon


l'avancement de la modélisation, ces informations ne sont pas
forcement toutes connues.
▪ Un compartiment des exceptions peut également être ajouté pour
énumérer les situations exceptionnelles devant être gérées par la
classe.

Conception Orientée Objet Pr. L. Demraoui 34


DIAGRAMME DE CLASSE

Formalisme général d’une classe et exemples

Conception Orientée Objet Pr. L. Demraoui 35


DIAGRAMME DE CLASSE

▪ Une classe est composée d’un nom, d’attributs et d’opérations.

▪ Le nom d’une classe commence par une majuscule

▪ Le nom d’une propriété commence par une minuscule

▪ Les types de base (int, long, float, double, boolean) sont en minuscules

▪ Il n’a pas d’espace dans les noms de classes ou de propriétés

▪ Pour les noms composés, on fait commencer chaque mot par une
majuscule
Conception Orientée Objet Pr. L. Demraoui 36
DIAGRAMME DE CLASSE

▪ Attribut

Un attribut est une propriété élémentaire d’une classe. Pour chaque


objet d’une classe, l’attribut prend une valeur (sauf cas d’attributs
multivalués).

Conception Orientée Objet Pr. L. Demraoui 37


DIAGRAMME DE CLASSE

Les attributs de la classe


▪ La syntaxe :
<visibilite> [/] <nomAttribut> : <type> [ '['<multiplicite>']' [{<contrainte>}] ] [ =
<valeurParDefaut> ]
• visibilite : + public / # protected / - private
• / : signal un attribut dérivé. C'est à dire calculé à partir d'autres attributs.
• nomAttribut : nom de l'attribut
• type : type de l'attribut
• [multiplicite] : multiplicité pour définir des tableaux, des listes de valeurs
• {<contrainte>} : pour donner des contraintes OCL quand la multiplicité est
supérieure à 1
• valeurParDefaut : valeur d'initialisation

Conception Orientée Objet Pr. L. Demraoui 38


DIAGRAMME DE CLASSE

▪ Visibilité des attributs


Chaque attribut ou opération d’une classe peut être de type public, protégé, privé
ou paquetage.
Les symboles + (public), # (protégé), - (privé) et ~ (paquetage) sont indiqués
devant chaque attribut ou opération pour signifier le type de visibilité autorisé
pour les autres classes.
▪ Les droits associés à chaque niveau de confidentialité sont :
• Public (+) – Attribut ou opération visible par tous.
• Protégé (#) – Attribut ou opération visible seulement à l’intérieur de la
classe et pour toutes les sous-classes de la classe.
• Privé (-) – Attribut ou opération seulement visible à l’intérieur de la
classe.
• Paquetage (~) – Attribut ou opération ou classe seulement visible à
l’intérieur du paquetage où se trouve la classe.
Conception Orientée Objet Pr. L. Demraoui 39
DIAGRAMME DE CLASSE
Opération
▪ L’opération est une fonction applicable aux objets d’une classe. Une
opération permet de décrire le comportement d’un objet. Une
méthode est l’implémentation d’une opération.
▪ Chaque opération est désignée soit seulement par son nom soit par son
nom, sa liste de paramètres et son type de résultat.

Conception Orientée Objet Formalisme et exemple d’opérations de classe Pr. L. Demraoui 40


DIAGRAMME DE CLASSE

▪ La syntaxe des opérations :


<visibilite> <nomOperation> ([<param1>, ... , <paramN>]) :
[<typeRetour>] [{<proprietes>}]
▪ visibilite : + public / # protected / - private
▪ nomOperataion : nom de l'opération
▪ [<param1>, ... , <paramN>] : liste des paramètres respectant la
syntaxe ci-dessous.
▪ typeRetour : type de retour de l'opération
▪ {<propriete>} : contraintes OCL, indications ou mots clé comme
« abstract »

Conception Orientée Objet Pr. L. Demraoui 41


DIAGRAMME DE CLASSE

▪ Les contraintes

▪ Une contrainte est une condition écrite entre 2 accolades

elle peut être exprimée dans :


▪ Un langage naturel (description textuelle)

▪ note

▪ Un langage formel (OCL…).

Conception Orientée Objet


https://www.omg.org/spec/OCL/2.4/PDF Pr. L. Demraoui 42
DIAGRAMME DE CLASSE
Contraintes OCL:
▪ {readOnly} : si une telle contrainte est appliquée à un attribut, alors la valeur de celui-
ci ne peut plus être modifiée une fois la valeur initiale fixée (équivalent à un attribut
constant).
▪ {query} : une méthode peut être déclarée comme étant de type requête (query) si le
code implémentant celle-ci ne modifie nullement l’état de l’objet, donc aucun de ses
attributs .
▪ {ordered} {list} : lorsqu’une multiplicité supérieure à 1 est précisée, il est possible
d’ajouter une contrainte pour préciser si les valeurs sont ordonnées {ordered} ou pas
{list}. Très souvent, dans ce dernier cas, nous ne précisons même pas cette deuxième
contrainte, c’est le mode par défaut.
▪ {unique} : on demande cette fois-ci qu’il n’y ait aucun doublon dans les valeurs de la
collection.
▪ {not null} : L’attribut doit à tout prix être initialisé (utile dans le cas des pointeurs).

Conception Orientée Objet Pr. L. Demraoui


OCL (Object Contraint Language) est un langage spécialement conçu pour exprimer des contraintes. 43

https://www.omg.org/spec/OCL/2.4/PDF
Attributs et méthodes statiques
▪ Les attributs et méthodes statiques sont appliqués à la classe plutôt
qu’aux instances de cette classe. Ils sont dits “attributs et méthodes de
classe”.
▪ Tout invocation d’une méthode statique par l’intermédiaire d’un objet
se fait sur la classe de cet objet.
▪ La valeur d’un attribut statique est la même pour toutes les instances
de la classe.

Conception Orientée Objet Pr. L. Demraoui 44


DIAGRAMME DE CLASSE

Attribut et association
Rappel : Types des attributs simple, primitif ou énuméré
En particulier, pas d'attribut dont le type est une classe du diagramme
Mais association vers cette classe

Conception Orientée Objet Pr. L. Demraoui 45


DIAGRAMME DE CLASSE

Constructeur et destructeurs :
▪ Représentés par les stéréotypes:
▪ « create » pour les constructeurs
▪ « destroy » pour les destructeurs

Conception Orientée Objet Pr. L. Demraoui 46


DIAGRAMME DE CLASSE

Les énumérations
Une énumération est un type possédant un nombre fini et arbitraires de
valeurs possibles, construite sur mesure par le développeur.

Conception Orientée Objet Pr. L. Demraoui 47


DIAGRAMME DE CLASSE

Classe abstraite
▪ Classe sans instance, seulement une base pour classes héritées

▪ Notation : nom de la classe en italique (ou stéréotype « abstract »)

Conception Orientée Objet Pr. L. Demraoui 48


La relation d’association

▪ l’association signifie qu’une classe contiendra une référence

(ou un pointeur) de l'objet de la classe associée sous la


forme d’un attribut.

Conception Orientée Objet Pr. L. Demraoui 49


La relation d’association

▪ l’association signifie qu’une classe contiendra une référence de l'objet de

la classe associée sous la forme d’un attribut.

▪ L’association est représentée par un simple trait continu, reliant les deux

classes.

Conception Orientée Objet Pr. L. Demraoui 50


La relation d’association
Le rôle

▪ Chaque extrémité d’une association peut être nommée. Ce nom est appelé rôle et

indique la manière dont l’objet est vu de l’autre coté de l’association.

Lorsqu’un objet A est lié à un autre objet B par une association, cela se traduit souvent
par un attribut supplémentaire dans A qui portera le nom du rôle B. (et inversement).

Conception Orientée Objet Pr. L. Demraoui 51


La relation d’association
La cardinalité (ou multiplicité)
▪ La cardinalité indique le nombre d’instances de classe étant en relation
avec la classe situé à l’autre extrémité de l’association.
▪ En l’absence de spécification, la cardinalité vaut 1.

Conception Orientée Objet Pr. L. Demraoui 52


▪ La navigabilité

Une relation unidirectionnelle peut se représenter de 3 façons différentes :

▪ Une croix du coté de l’objet qui ne peut pas être sollicité

▪ Une flèche du coté de l’objet qui peut être sollicité

▪ Les 2 représentations précédentes à la fois

Conception Orientée Objet Pr. L. Demraoui 53


Les relations entre classes

▪ Association réflexives (ou récursive) :

Une association qui lie une classe avec elle-même est une association
réflexive.

Conception Orientée Objet Pr. L. Demraoui 54


▪ Association n-aire :

Conception Orientée Objet Pr. L. Demraoui 55


Classe association
▪ Une association peut apporter de nouvelles informations (attributs et
méthodes) qui n’appartiennent à aucune des deux classes qu’elle relie et
qui sont spécifiques à l’association.
▪ Ces nouvelles informations peuvent être représentées par une nouvelle
classe attachée à l’association via un trait en pointillés.

Conception Orientée Objet Pr. L. Demraoui 56


La composition

▪ La composition indique qu’un objet A (appelé conteneur) est


constitué d’un autre objet B. Cet objet A n’appartient qu’a l’objet
B et ne peut pas être partagé avec un autre objet

▪ C’est une relation très forte, si l’objet A disparaît, alors l’objet B


disparaît aussi.

A B

Conception Orientée Objet Pr. L. Demraoui 57


L’agrégation

▪ L’agrégation indique qu’un objet A possède un autre objet B, mais

contrairement à la composition, l’objet B peut exister indépendamment


de l’objet A.

▪ La suppression de l’objet A n’entraîne pas la suppression de l’objet B.

L’objet A est plutôt à la fois possesseur et utilisateur de l’objet B.

Elle se représente par un losange vide du coté de l’objet conteneur

A B
Conception Orientée Objet Pr. L. Demraoui 58
Le mécanisme d’héritage

▪ permet de mettre en relation des classes ayant des caractéristiques communes

(attributs et comportements) en respectant une certaine filiation.

Conception Orientée Objet Pr. L. Demraoui 59


contraintes standardisées sur les associations
▪ Inclusion {I}
Si l'association inclue est instanciée, l'autre doit l'être aussi, la contrainte
d'inclusion a un sens, représenté par une flèche (également notée {Subset} ou
{IN}).
▪ Simultanéité {S}
▪ Si une association est instanciée, l'autre doit l'être aussi (également notée
{=} ou {AND}).
▪ La simultanéité est équivalente à une double inclusion.
▪ Exclusion, {X}
Les deux associations ne peuvent être instanciées en même temps.
▪ Totalité {T}, également notée {OR}
Au moins une des deux associations doit être instanciée.
▪ Partition {XT}, également notée {+} ou {XOR} ou {P}
Exactement une des deux associations doit être instanciée.
Conception Orientée Objet Pr. L. Demraoui 60
▪ Une interface n’est pas une classe, c’est une liste d’opérations
▪ Une interface, comme une classe abstraite, ne peut pas servir à créer un objet

▪ Une interface exprime un savoir-faire, un contrat à respecter par les classes


qui « réalisent » cette interface
▪ L’interface est stéréotypée « interface »,

Conception Orientée Objet Pr. L. Demraoui 61


▪ L'objectif est de diminuer fortement le couplage entre deux classes. Une
interface ne dispose que de méthodes publiques abstraites (ou dit
autrement, non définies).
▪ La généralisation peut être utilisée entre interfaces, par contre, une
interface ne peut être instanciée (comme une classe abstraite).
▪ Le rôle d’une interface est de regrouper un ensemble d’opérations assurant
un service cohérent que des classes sont susceptibles d’offrir.
▪ Vous pouvez utiliser des interfaces dans les diagrammes de classes et les
diagrammes de composants pour spécifier un contrat entre l'interface et le
discriminant qui réalise l'interface.

Conception Orientée Objet Pr. L. Demraoui 62


▪ Il est recommandé de mettre dans des paquetages (packages) différents

les éléments du diagramme de classe qui ont un rapport plus étroit les uns
avec les autres.

Conception Orientée Objet Pr. L. Demraoui 63


Diagramme de Séquence

Conception Orientée Objet Pr. L. Demraoui 64


Diagramme de Séquence

▪ Le diagramme de séquence fait parties des diagrammes


comportementaux (dynamique) et plus précisément des diagrammes
d’interactions.

Il permet de représenter des échanges entre les différents


objets et acteurs du système en fonction du temps.

▪ On peut faire appel à un ensemble de diagrammes de séquences chacun

correspondant à une sous fonction du système.

Conception Orientée Objet Pr. L. Demraoui 65


Diagramme de Séquence
▪ L’Objet:

Conception Orientée Objet Pr. L. Demraoui 66


Diagramme de Séquence

La ligne de vie
• A chaque objet est associé une ligne de vie (le temps s’écoule du haut vers le bas).
Req: Dans ce genre de diagramme, la quantification du temps n’a pas d’importance.

• La ligne de vie indique les périodes d’activité de l’objet.


• Lorsque l’objet est détruit, la ligne de vie s’achève par un croix

Conception Orientée Objet 67

Pr. L. Demraoui
Diagramme de Séquence

Les messages
▪ Un message est une communication d’un objet vers un autre objet.

▪ Plusieurs types de messages existent, les plus communs sont :

▪ L’invocation d’une opération

▪ L’envoi d’un signal

▪ La création ou la destruction d’une instance de classe.

Conception Orientée Objet Pr. L. Demraoui 68


Diagramme de Séquence
Les messages synchrones

▪ La réception d’un message synchrone doit provoquer chez le destinataire

le lancement d’une de ses méthodes.

▪ L’expéditeur du message reste bloqué pendant toute l’exécution de la

méthode et attend la fin de celle-ci pour pouvoir lancer un nouveau


message.

C’est le message le plus fréquemment utilisé.

Conception Orientée Objet Pr. L. Demraoui 69


Diagramme de Séquence

Les messages asynchrones

▪ L’expéditeur n’attend pas la fin de l’activation de la méthode invoquée

chez le destinataire.

▪ Un message asynchrone peut être :

- Un appel de méthode.

- Un signal (cas le plus fréquent) : L’objet expéditeur transmet juste une

information à l’objet destinataire.

Conception Orientée Objet Pr. L. Demraoui 70


Diagramme de Séquence
▪ Les envois de messages

Représentés par des flèches horizontales de la ligne de vie de l’objet


émetteur vers la ligne de vie de l’objet récepteur du message.

Conception Orientée Objet Pr. L. Demraoui 71


Diagramme de Séquence

Création et destruction d’objets :


• La création d’un objet: matérialisée par un message spécifique, appel
d’un constructeur, généralement accompagné du stéréotype « create ».
• La destruction d’un objet est représentée par une croix à la fin de sa
ligne de vie.

Conception Orientée Objet Pr. L. Demraoui 72


Conception Orientée Objet Pr. L. Demraoui 73
Diagramme de Séquence

Syntaxe des messages synchrones et asynchrones


- Un nom: le nom de la méthode appelée ou du signal envoyé

On peut y ajouter:
- Une numérotation devant le nom message

- Les paramètres passés à la méthode ou au signal (entre parenthèses après le


nom du message).

Conception Orientée Objet Pr. L. Demraoui 74


Diagramme de Séquence
Syntaxe des réponses (messages retour) :

▪ Le msg de retour peut seulement porter un nom , ou bien on les caractériser en

utilisant la syntaxe suivante :


numéro : attribut = nomMessage (paramètres) : valeurDeRetour.

Conception Orientée Objet Pr. L. Demraoui 75


Diagramme de Séquence

Recouvrement des bandes d’activations

Lorsqu’un objet est déjà activé il peut quand même recevoir d’autres
messages (appel d’une autre de ses méthodes), cela se représente par un
dédoublement de la bande d’activation.

Conception Orientée Objet Pr. L. Demraoui 76


Diagramme de Séquence
Contraintes temporelles

▪ Un message avec un temps de propagation non négligeable peut être

représenté par une flèche oblique ou en l'écrivant explicitement.

Conception Orientée Objet Pr. L. Demraoui 77


Diagramme de Séquence
Messages perdus et trouvés :
▪ Le message perdu est un message dont nous connaissons l’émetteur mais
pas le récepteur.
▪ exemple: les scenario de pertes de message sur un réseau.
▪ Le message trouvé est un message dont nous connaissons le destinataire
mais pas l’émetteur.
▪ Exemple: modéliser le comportement d’un élément suite à la réception d’un
message d’exception.

Conception Orientée Objet Pr. L. Demraoui 78


Diagramme de Séquence
Fragments d’interactions
▪ Un fragment d’interactions est une partie du diagramme de séquence
(délimitée par un rectangle) associée à une étiquette (dans le coin
supérieur gauche).
▪ L’étiquette contient un opérateur d’interaction qui permet de décrire
des modalités d’exécution des messages à l’intérieur du cadre.

Conception Orientée Objet Pr. L. Demraoui 79


Diagramme de Séquence
Fragments d’interactions

L’opérateur option (opt) comporte un 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 le cas contraire.

Conception Orientée Objet Pr. L. Demraoui 80


Diagramme de Séquence
Fragments d’interactions

L’opérateur alternatives (alt) est un opérateur conditionnel possédant


plusieurs opérandes séparés par des pointillés.
▪ C’est l’équivalent d’une exécution à choix multiples. Chaque opérande détient
une condition de garde.
▪ La condition else est exécutée que si aucune autre condition n’est valide.

Conception Orientée Objet Pr. L. Demraoui 81


Diagramme de Séquence
Fragments d’interactions

▪ L’opérateur de boucle (loop) exécute une itérative dont la séquence qu’elle


contient est exécutée tant que la garde qui lui est associée est vraie.
▪ Exemple:
▪ loop[3]→La séquence s’exécute 3 fois.
▪ Loop[1, 3, code=faux] La séquence s’exécute 1 fois puis un maximum de 2 autres fois si
code=faux.

Conception Orientée Objet Pr. L. Demraoui 82


Diagramme de Séquence
Fragments d’interactions

l’opérateur de traitements parallèles « par »

▪ Contient au moins deux sous fragments (opérandes) séparés par des

pointillés qui s’exécutent simultanément (traitements concurrents).

Conception Orientée Objet Pr. L. Demraoui 83


EXEMPLE

Conception Orientée Objet Pr. L. Demraoui 84

Vous aimerez peut-être aussi