Introduction à la Conception Orientée Objet
Introduction à la Conception Orientée Objet
- UML -
Filière SMI – S5
Pr. Anas EL ANSARI
[Link]@[Link]
2023/2024
Plan
Chapitre 1. Introduction à la conception orientée objet.
➢ Génie logiciel
➢ Conception / modélisation.
➢ Langage UML.
3
Introduction à la conception orientée objets
➢ Système d’information :
Système
opérant
Entreprise / Organisation
4
Introduction à la conception orientée objets
➢ Système d’information :
5
Introduction à la conception orientée objets
➢ Génie logiciel :
6
Introduction à la conception orientée objets
➢ Génie logiciel :
• Le développement des logiciels dans un contexte professionnel suit souvent des règles strictes
encadrant la conception et permettant le travail en groupe et la maintenance du code.
7
Introduction à la conception orientée objets
➢ Génie logiciel :
L’ objectif est de produire des logiciels de qualité, répondant aux besoins exprimés, de
prévoir et réduire les coûts et les délais, et faciliter la maintenance.
8
Introduction à la conception orientée objets
➢ Conception / modélisation :
• Un modèle est une représentation abstraite et simplifiée d'une entité (système, processus, etc.)
du monde réel en vue de la décrire ou de l'expliquer.
9
Introduction à la conception orientée objets
• L'approche fonctionnelle/structurée :
10
Introduction à la conception orientée objets
• L'approche Objet :
o Utilisée avec les langages de programmation orientée objet (C++, Java, etc.)
11
Introduction à la conception orientée objets
o Un support de communication.
12
Introduction à la conception orientée objets
o Les vues : ce sont les observables du système. Elles décrivent le système d'un point de vue
donné, qui peut être organisationnel, dynamique, temporel, architectural, logique, etc. En
combinant toutes ces vues, il est possible de définir (ou retrouver) le système complet.
o Les diagrammes : ce sont des ensembles d'éléments graphiques. Ils décrivent le contenu des
vues, qui sont des notions abstraites. Ils peuvent faire partie de plusieurs vues.
13
Introduction à la conception orientée objets
• Cinq façons de voir un système, chacune présentant le système selon un point de vue différent.
• L’utilisation de vues permet de traiter séparément les intérêts des divers groupes d’intervenants
(utilisateurs, développeurs, chefs de projets, etc.)
14
Introduction à la conception orientée objets
• La vue « logique » décrit les aspects statiques et dynamiques d’un système en termes de
classes, d’objets, de connexions et de communications.
15
Introduction à la conception orientée objets
16
Introduction à la conception orientée objets
17
Introduction à la conception orientée objets
• Un diagramme UML est une représentation visuelle d'un aspect d'un système.
• Les diagrammes UML illustrent les aspects quantifiables d'un système qui peuvent être décrits
visuellement, tels que les relations, le comportement, la structure ou la fonctionnalité.
18
Introduction à la conception orientée objets
19
Introduction à la conception orientée objets
• Diagramme des paquets : représentation des dépendances entre les paquets (un paquet étant
un conteneur logique permettant de regrouper des éléments dans le modèle UML).
• Diagramme de structure composite : représentation sous forme de boîte blanche des relations
entre composants d'une classe.
20
Introduction à la conception orientée objets
• Diagramme des cas d’utilisation : représentation des possibilités d'interaction entre le système
et les acteurs (intervenants extérieurs au système), c'est-à-dire de toutes les fonctionnalités
que doit fournir le système.
21
Introduction à la conception orientée objets
• Diagramme de temps : représentation des variations d'une donnée au fil du temps (UML 2.3).
22
Introduction à la conception orientée objets
• Logiciels libres;
o ArgoUML
o Umbrello
o BoUML
• Logiciels propriétaires :
o EclipseUML
o StarUML
o Rational rose
23
Plan
Chapitre 2. Diagramme de cas d’utilisation.
➢ Rôle et Objectifs
25
Diagramme de cas d’utilisation
➢ Rôle et Objectifs :
26
Diagramme de cas d’utilisation
• Acteurs
• Cas d'utilisation
27
Diagramme de cas d’utilisation
• Acteurs :
o Le terme acteur ne désigne pas seulement des utilisateurs humains mais également les
autres systèmes (machines, programmes, …)
o Un acteur représente un rôle joué par une personne externe, un processus ou une chose
qui interagit avec le système;
o Représentation :
<<acteur>>
Client
Client
28
Diagramme de cas d’utilisation
• Acteurs :
o Un acteur peut être une spécialisation d'un autre acteur déjà défini;
Acteur général
o Dans ce cas, on utilise la relation de généralisation/spécialisation (héritage)
o Exemple :
Client
Acteur spécialisé
Client fidèle
29
Diagramme de cas d’utilisation
o Suite d’événements, initiée par des acteurs, qui correspond à une utilisation du système.
o Représentation :
Nom du cas d’utilisation
30
Diagramme de cas d’utilisation
o Comportements partagés
o Généralisations/spécialisations.
31
Diagramme de cas d’utilisation
32
Diagramme de cas d’utilisation
o A inclut B : le cas A inclut obligatoirement le comportement définit par le cas B, cela permet
de factoriser des fonctionnalités partagées.
o Le cas d'utilisation pointé par la flèche (dans notre cas B) est une sous partie de l'autre cas
d'utilisation (A, dans notre exemple).
A
o Exemple : B
33
Diagramme de cas d’utilisation
o Le cas d’utilisation (CU) source (B) ajoute, sous certaines conditions, son comportement
au CU destination (A)
34
Diagramme de cas d’utilisation
• La relation d'héritage :
o Exemple:
Payer la facture
35
Diagramme de cas d’utilisation
o Pour trouver les acteurs d'un système, il faut identifier les différents rôles que vont devoir
jouer ses utilisateurs (exemple :administrateur, client, responsable clientèle,…).
o Identifier les autres systèmes avec lesquels le système va devoir communiquer comme :
▪ des systèmes informatiques externes au système, mais qui interagissent avec lui, etc.
36
Diagramme de cas d’utilisation
o Pour identifier les cas d'utilisation, il faut se placer du point de vue de chaque acteur et
déterminer comment et surtout pourquoi il se sert du système.
o Il faut éviter les redondances et limiter le nombre de cas avec un bon niveau d'abstraction.
o Nommez les cas d'utilisation avec un verbe à l'infinitif suivi d'un complément en vous
plaçant du point de vue de l'acteur et non pas de celui du système.
37
Diagramme de cas d’utilisation
❑ Exercice 1:
L'authentification d'une personne dans un système se fait par un login correct et un mot de passe
correct.
Q2 - Modifier le modèle précédent pour prendre en compte la saisie du nom et du mot de passe;
Q3- Après la saisie du mot de passe, on peut saisir un code supplémentaire qui n'est pas
obligatoire. Modifier le modèle précédent.
38
Diagramme de cas d’utilisation
❑ Exercice 1
39
Diagramme de cas d’utilisation
❑ Exercice 2:
Dans un guichet automatique bancaire, un client peut retirer de l'argent s'il possède
suffisamment de fond. Il peut aussi consulter son compte ou payer ses factures. S'il retire de
l'argent ou s'il paye ses facture il est possible de consulter son compte.
40
Diagramme de cas d’utilisation
❑ Exercice 2
41
Diagramme de cas d’utilisation
❑ Exercice 3:
On souhaite gérer la réservation des salles de cours et les matériaux pédagogiques (ordinateur
portable et/ou Vidéo projecteur) dans une école privée. Dans cette école on peut trouver des
enseignant et des étudiants, la réservation peut se faire uniquement par des enseignants selon
la disponibilité de la salle ou du matériel. L'école affiche un planning des salles qui peut être
consulté par les enseignants et les étudiants. Le récapitulatif horaire par enseignant, édité par
un professeur responsable, n'est consulté que par les professeurs.
42
Diagramme de cas d’utilisation
❑ Exercice 3
43
Diagramme de cas d’utilisation
❑ Exercice 4:
On souhaite qu’un client se connecte à un serveur (le système étudié) par des protocoles
comme FTP ou telnet...
▪ Le protocole telnet sert pour exécuter les commandes, nécessite une identification.
❑ Exercice 4
45
Diagramme de cas d’utilisation
❑ Exercice 4
46
Plan
Chapitre 3. Diagramme de classes.
➢ Introduction
➢ Les classes.
48
Diagramme de classes
➢ Le diagramme de classes :
• Sert à modéliser les classes du système (organisation des données et des traitements) et leurs
relations.
49
Diagramme de classes
• Classe : C’est un type de données abstrait qui précise des caractéristiques (attributs et
méthodes) communes à toute une famille d'objets et qui permet de créer (instancier) des objets
possédant ces caractéristiques.
50
Diagramme de classes
• Objet : C’est une instance d'une classe. C'est une entité discrète dotée d'une identité, d'un état
et d'un comportement que l'on peut invoquer. Les objets sont des éléments individuels d'un
système en cours d'exécution.
51
Diagramme de classes
• Abstraction : C’est le processus qui consiste à représenter des objets qui appartiennent au
monde réel dans le monde du programme que l’on écrit. Il consiste à extraire des variables
pertinentes attachées aux objets, et à gérer la complexité en masquant les détails inutiles.
52
Diagramme de classes
53
Diagramme de classes
• L'héritage : C’est un mécanisme de transmission des caractéristiques d'une classe (ses attributs
et méthodes) vers une sous-classe afin d'y ajouter des caractéristiques spécifiques ou d'en
adapter certaines. L'héritage évite la duplication et encourage la réutilisation.
54
Diagramme de classes
55
Diagramme de classes
• L’agrégation : Il s'agit d'une relation entre deux classes, spécifiant que les objets d'une classe
sont des composants de l'autre classe. Une relation d'agrégation permet donc de définir des
objets composés d'autres objets. L'agrégation permet donc d'assembler des objets de base, afin
de construire des objets plus complexes.
56
Diagramme de classes
• La composition : Il s'agit d'une agrégation forte. L’existence de l'objet composant est liée a celle
de son composé.
Professeur
Faculté
Département
57
Diagramme de classes
➢ Les classes :
58
Diagramme de classes
➢ Les classes :
• Les attributs :
o Un attribut est une propriété (caractéristique) d’un objet;
o Exemple : un client a un nom, un prénom, une adresse, …
o Un attribut doit (généralement) avoir une valeur;
o Syntaxe (entre accolades, les mentions optionnelles) : Nom_de_la_classe
59
Diagramme de classes
➢ Les classes :
60
Diagramme de classes
➢ Les classes :
61
Diagramme de classes
➢ Les classes :
62
Diagramme de classes
➢ Les classes :
• Les opérations :
o Un service offert par la classe;
o Une fonction ou une transformation qui peut être appliquée aux
objets d’une classe;
o Permet de décrire le comportement d’un objet. Nom_de_la_classe
o Syntaxe (entre accolades, les mentions optionnelles) : - attribut_1 : Type1
- attribut_2 : Type2
{-,#,+,~} nomOpération ({LISTE_PARAMS}) {:TypeRetour}
…
o LISTE_PARAMS : les paramètres séparés par des virgules. + operation1() : Type2
+ opération2() : Type1
o Chaque paramètre s’écrit comme suit :
+ opération3()
nomParamètre : TypeParamètre{=valeur_initiale} …
63
Diagramme de classes
➢ Les classes :
• Une classe abstraite est toujours héritée, on ne peut pas l’instancier. En effet sa fonction étant de
généraliser, elle n'a de sens que si des classes en héritent.
• Une classe est dite abstraite lorsqu'elle définit au moins une méthode abstraite ou lorsqu'une
classe parent contient une méthode abstraite non encore réalisée.
65
Diagramme de classes
• Associations :
66
Diagramme de classes
• Associations :
▪ Rôle d’une association : Décrit le rôle d’une classe dans une association
67
Diagramme de classes
• Associations :
▪ min, max = 0, 1, *
68
Diagramme de classes
• Associations :
▪ Notation abrégée des multiplicités :
1 => 1..1 (exactement 1)
* => 0..* (0 ou plusieurs)
n => n .. n (exactement n)
1..* => 1 ou plusieurs (1 ou plus)
0..1 => 0 ou 1 (au plus un)
1..100 => entre 1 et 100
2,4,5 => 2, 4 ou 5
69
Diagramme de classes
• Associations :
70
Diagramme de classes
• Classe-Association :
71
Diagramme de classes
• Classe-Association :
▪ Les classes-association sont utiles quand il y a des attributs qui sont pertinents à
l’association, mais à aucune des classes impliquées.
Personne Entreprise
1..*
0..1
Emploi
- période : int
- salaire : float
72
Diagramme de classes
• Agrégation :
Agrégat Agrégée
73
Diagramme de classes
• Agrégation :
▪ La suppression d’une équipe n’implique pas la suppression des personnes qui la composent.
74
Diagramme de classes
• Composition :
▪ C’est un cas particulier d’une agrégation dans lequel la vie des composants (élément) est liée à
celle de l’agrégat (composé) : si l’agrégat est détruit / déplacé, ses composants le sont aussi.
▪ D’un autre côté, et contrairement à l’agrégation, une instance de composant ne peut être liée
qu’a un seul agrégat.
Professeur
Faculté
Département
75
Diagramme de classes
▪ L’héritage est la relation entre une classe et une ou plusieurs de ses versions raffinées.
76
Diagramme de classes
▪ Une sous-classe hérite des attributs et opérations de sa super-classe (classe mère), et peut
ajouter ses propres attributs et méthodes ou redéfinir le comportement d’une méthode.
77
Diagramme de classes
78
Diagramme de classes
❑ Exercice 1 :
79
Diagramme de classes
❑ Exercice 1
3 4
1 2
5
80
Diagramme de classes
❑ Exercice 2 :
Chaque personne possède un nom, un prénom, le sexe et l'âge. On peut calculer les revenus et
les charges de chaque personne. Les attributs de la classe sont privés ; Les opérations de la classe
personne sont publiques.
81
Diagramme de classes
❑ Exercice 2
Personne
- nom : String
- prénom : String
- sexe : String
- age : Integer
+ calculer_revenue() : Float
+ calculer_charge() : Float
82
Diagramme de classes
❑ Exercice 3 :
Soit un système d'information qui concerne le suivi des personnels d'un ensemble d'agences
locales. Chaque agence se trouve dans une région, chaque région est pilotée par une direction
régionale. La direction régionale se charge d'un ensemble d'agences locales. Une direction
régionale est caractérisée par un code et un libellé.
83
Diagramme de classes
❑ Exercice 3
84
Diagramme de classes
❑ Exercice 4 :
Soit un document composé d'un ou plusieurs feuillets. Le feuillet comporte des objets graphiques
et des texte. Les objets graphiques supportent des opérations de type : sélectionner, copier,
couper, coller et déplacer. On suppose les deux objets graphiques suivants: cercle et rectangle.
85
Diagramme de classes
❑ Exercice 4
86
Plan
Chapitre 4. Diagramme d’objets.
➢ Introduction
➢ Les objets.
➢ Les liens.
88
Diagramme d’objets
➢ Le diagramme d’objets :
• Est une instance d’un diagramme de classes et représente les objets d’un système à un moment
donné, exprimant la structure statique;
89
Diagramme d’objets
IAM:Entreprise PDG:Personne
- nom = ‘‘Ahizoune’’
Diagramme d’objets - nom : ‘‘Maroc Télécom’’
- prénom = ‘‘Abdeslam’’
:Personne DRH:Personne
- nom = ‘‘X’’ - nom = ‘‘Hamani’’
- prénom = ‘‘Y’’ - prénom = ‘‘Naïma’’
90
Diagramme d’objets
➢ Le diagramme d’objets :
• La notation des diagrammes d’objets est dérivée de celle des diagrammes de classes;
IAM:Entreprise PDG:Personne
- nom = ‘‘Ahizoune’’
- nom : ‘‘Maroc Télécom’’
- prénom = ‘‘Abdeslam’’
:Personne DRH:Personne
- nom = ‘‘X’’ - nom = ‘‘Hamani’’
- prénom = ‘‘Y’’ - prénom = ‘‘Naïma’’
91
Diagramme d’objets
➢ Les objets :
• Représentation:
Nom de l'objet Nom de l'objet : Classe : Classe
• L’état d’un objet est déterminé par les valeurs de ses attributs;
• Un groupe d’objets (instances d’une même classe) est représenté comme suit:
: Classe
92
Diagramme d’objets
➢ Les objets :
«devient»
: Télévision [allumée] : Télévision [éteinte]
93
Diagramme d’objets
➢ Les liens :
• Les objets sont reliés par des instances d’associations : les liens.
• Exemple 1 : : Client
Acheter * : Produit
Client * Produit : Client
: Produit
: Client
Diagramme d’objets
94
Diagramme d’objets
➢ Les liens :
• Les objets sont reliés par des instances d’associations : les liens.
• Exemple 2 :
Passager
* : Personne
Bus Personne : Bus
1
Conducteur
: Personne
Diagramme de classes
Diagramme d’objets
95
Diagramme d’objets
➢ Les liens :
• Les objets sont reliés par des instances d’associations : les liens.
• Exemple 3 :
Professeur : Professeur
1..*
Salle 1..* 1..* Etudiant : Salle : Etudiant
96
Diagramme d’objets
Patron
Collaborateur jean-Luc: Personne pierre: Personne
Personne *
1
Patron
Patron
denis: Personne
97
Diagramme d’objets
Diagramme de classes
98
Diagramme d’objets
❑ Exercice 1:
Un objet nommé b747 de classe Avion et en état « détresse » est en relation avec luna, une tour
de contrôle. Un ensemble d'autres avions anonymes dont l'état est « à terre » sont aussi liés à
luna. La tour de contrôle communique avec p123, une caserne de pompiers.
99
Diagramme d’objets
❑ Exercice 1
luna : Tour
p123 : Caserne
100
Diagramme d’objets
❑ Exercice 2 :
Professeur
1..*
1..* 1..*
Salle Etudiant
101
Diagramme d’objets
❑ Exercice 2
elAnsari : Professeur
102
Plan
Chapitre 5. Diagramme de séquences.
➢ Diagramme de séquences : Définition et utilité
➢ Acteurs et Objets
➢ Ligne de vie
➢ Messages
➢ Structures de contrôle
104
Diagramme de séquences
➢ Diagramme de séquences?
105
Diagramme de séquences
o Les étiquettes des messages correspondent à des événements se produisant dans le système;
• Décrire la réalisation des cas d'utilisation sur le système décrit par le diagramme de classes.
106
Diagramme de séquences
107
Diagramme de séquences
➢ Le diagramme de séquences :
108
Diagramme de séquences
➢ Acteurs et Objets :
• Le nom de l’objet est compose de son rôle (rôle ou nom) et/ou du nom de la classe instanciée;
109
Diagramme de séquences
➢ Ligne de vie :
• Destruction d’un objet : sa ligne de vie se termine par une croix en trait épais (×).
110
Diagramme de séquences
➢ Messages :
• Les objets communiquent en échangeant des messages représentés sous forme de flèches.
111
Diagramme de séquences
• Une période d’activité correspond au temps d’exécution d’une action par un objet.
112
Diagramme de séquences
113
Diagramme de séquences
114
Diagramme de séquences
115
Diagramme de séquences
116
Diagramme de séquences
117
Diagramme de séquences
❑ Exercice 1
118
Diagramme de séquences
❑ Exercice 1
119
Diagramme de séquences
❑ Exercice 2
120
Diagramme de séquences
❑ Exercice 2
121
Mini-Projets UML
1. Choix du projet :
▪ Système de gestion des locations pour une agence de location des voitures.
▪ Site Web pour la gestion des inscriptions en PFE pour les étudiants de la FPN.
▪ Votre PFE.
123
Mini-Projets UML
2. Travail à faire :
▪ Proposer le diagramme des cas d’utilisation avec une description de chaque cas.
▪ Élaborer le diagramme des classes pour ce système avec une description de chaque classe
(ses attributs et ses opérations).
124
Plan
Chapitre 6. Diagramme de paquetages.
➢ Diagramme de paquetages : Définition et utilité
➢ Notion de paquetage
126
Diagramme de paquetages
➢ Diagramme de paquetages?
• Lorsque nous sommes en présence d’un système de grande taille, il peut être intéressant de le
décomposer en plusieurs parties (appelées paquetage)
• Le diagramme de paquetages est un diagramme structurel (statique) d’UML qui représente les
paquetages (ou espaces de noms) composant un système, ainsi que les relations qui lient ces
différents paquetages.
127
Diagramme de paquetages
➢ Notion de paquetage
• Cela permet de clarifier le modèle en l’organisant. Il est représenté par un dossier avec son
nom à l’intérieur.
128
Diagramme de paquetages
➢ Notion de paquetage
▪ à l’intérieur de celui-ci :
▪ ou à l’extérieur
129
Diagramme de paquetages
➢ Notion de paquetage
• Pour faire appel à un élément d’un paquetage, nous indiquons le nom du paquetage
(espace de nommage) suivi de deux fois deux points (::) puis du nom de l’élément.
Personne::Client
Véhicule::Voiture::Roue
130
Diagramme de paquetages
➢ Notion de paquetage
131
Diagramme de paquetages
132
Diagramme de paquetages
• La relation de dépendance entre deux paquetages signifie qu’au moins un élément d’un
paquetage a besoin d’utiliser au moins un élément d’un autre paquetage.
133
Diagramme de paquetages
• Correspond à l’importation par un paquetage B de tous les éléments publics d’un paquetage A.
Ces éléments :
▪ auront la visibilité « public » dans le paquetage B (et seraient donc aussi transmis à un
paquetage C qui ferait une importation du paquetage B).
134
Diagramme de paquetages
• Ce type de dépendance est représenté par une flèche pointillée muni du stéréotype «import».
• Le paquetage B importe Classe1 et Classe2 (pas Classe3 qui a une visibilité de type privée).
135
Diagramme de paquetages
• Correspond à l’accès par un paquetage B à tous les éléments publics d’un paquetage A.
• Ces éléments auront la visibilité privé dans le paquetage B, ils ne peuvent donc pas être transmis
à un paquetage C qui ferait une importation ou un accès au paquetage B (pas de transitivité).
• Ce type de dépendance est représenté par une flèche pointillée muni du stéréotype «access»
136
Diagramme de paquetages
• Le paquetage B a accès à Classe1 et Classe2 (pas à Classe3 qui a une visibilité de type privée).
• Le paquetage C a accès à Classe4 (pas à Classe1 et Classe2 qui ont une visibilité de type privée
dans le paquetage B).
137
Diagramme de paquetages
• La dépendance de type «merge» est représentée par une flèche pointillée muni du stéréotype
«merge»
138
Diagramme de paquetages
• Le paquetage A n’est pas modifié alors que le paquetage B est écrasé pour accueillir la fusion
des 2 paquetages.
139
Diagramme de paquetages
❑ Exercice :
140
Diagramme de paquetages
❑ Exercice :
141
Plan
Chapitre 7. Diagramme des composants.
➢ Introduction
➢ Notion d’interface
➢ Les Ports
143
Diagramme des composants
➢ Introduction :
• Le diagramme des composants fait parti des diagrammes structuraux (statiques) d’UML;
144
Diagramme des composants
• En UML, un composant est un élément logiciel remplaçable et réutilisable qui fourni ou reçoit
un service bien précis. Il peut être vu comme une pièce détachée du logiciel.
• Les plugins, les drivers, les codecs, les bibliothèques sont aussi des composants.
145
Diagramme des composants
• Un composant peut être remplacé par n’importe quel autre composant compatible c'est-à-dire
ayant les mêmes interfaces.
• Un composant peut évoluer indépendamment des applications ou des autres composants qui
l’utilise à partir du moment ou les interfaces sont respectées.
146
Diagramme des composants
➢ Notion d’interface :
• Il s'agit donc d'un ensemble de méthodes accessibles depuis l'extérieur d'une classe, par
lesquelles on peut modifier un objet, ou plus généralement communiquer avec lui.
147
Diagramme des composants
➢ Notion d’interface :
public class CompteBancaire implements Compte {
• Exemple :
private final String numero;
private int balance;
public interface Compte { public CompteBancaire(String numero) { [Link] = numero; }
@Override
void deposer(int montant); public void deposer(int montant) { [Link] += montant; }
@Override
int retirer(int montant); public int retirer(int montant) throws OperationInterrompueException {
if (balance < montant) {
int getBalance(); throw new OperationInterrompueException();
}
} return [Link] -= montant;
}
@Override
public int getBalance() { return [Link]; }
148
Diagramme des composants
➢ Notion d’interface :
▪ Les interfaces requises : Ce sont des interfaces qui fournissent un service au composant et
dont il a besoin pour fonctionner.
▪ Les interfaces fournies : Ce sont des interfaces par lesquels le composant fourni lui-même
un service.
149
Diagramme des composants
➢ Notion d’interface :
150
Diagramme des composants
➢ Notion d’interface :
▪ Dans un classeur séparé du composant dans lequel sont listés les différents services;
151
Diagramme des composants
➢ Notion d’interface :
152
Diagramme des composants
➢ Notion d’interface :
153
Diagramme des composants
➢ Notion d’interface :
154
Diagramme des composants
➢ Les Ports :
155
Diagramme des composants
▪ Comme une boite noire dont nous ne connaissons pas le contenu et auquel nous accédons
via les interfaces qui sont la seule partie visible.
156
Diagramme des composants
▪ Comme une boite blanche en spécifiant les objets qui constituent le composant et en
indiquant leurs relations.
157
Diagramme des composants
❑ Exercice 1 :
158
Diagramme des composants
❑ Exercice 1 :
[Link] [Link]
ImageObserver
159
Diagramme des composants
▪ Un logiciel de messagerie repose sur 3 modules : Le module ‘gestion des emails’ est le centre de
contrôle qui interagit avec l’utilisateur et les autres modules via des interfaces et ports de service. Les
autres modules sont ‘envoi des e-mails’ et ‘réception des e-mails’, liés au premier via des interfaces.
▪ L’interface « Récupérer les e-mails », du module ‘réception des e-mails’, offre des fonctionnalités et les
données nécessaires au système pour accéder à la liste des e-mails.
▪ L’interface « Envoyer des e-mails », du module principal, offre des fonctionnalités et les données
nécessaires au module ‘envoi des e-mails’ pour son fonctionnement.
▪ L’utilisateur dispose d’une interface et d’un port de gestion pour l’administration du système.
160
Diagramme des composants
❑ Exercice 2 : Administration
Utilisateur
161
Plan
Chapitre 8. Diagramme d’états-transitions.
➢ Introduction
➢ Notion d’ État
➢ Les événements
➢ États particuliers :
▪ État composite
▪ État orthogonal
▪ État historique
➢ TD (Étude des cas). 163
Diagramme d’états-transitions
➢ Introduction :
• Il représente les différents états (situations) dans lesquels peut se trouver l’entité,
ainsi que la façon dont elle passe d’un état à l’autre en réponse à des événements.
• Son rôle, est de décrire le fonctionnement d’une entité (objet, composant, logiciel…) ayant un
comportement séquentiel.
164
Diagramme d’états-transitions
➢ Notion d’État :
• Une situation stable qui possède une certaine durée pendant laquelle un objet exécute une
activité ou attend un événement.
• Types d’états :
165
Diagramme d’états-transitions
➢ Les événements :
• Un événement est un fait instantané qui déclenche le changement d'état, qui fait donc passer
un objet d’un état à un autre état.
• Quand un événement est reçu, une transition peut être déclenchée et changer l’état de l'objet.
166
Diagramme d’états-transitions
• Changement : à la satisfaction d’une condition évaluée continuellement jusqu’à ce qu’elle soit vraie.
when(cond)
• Temporel :
167
Diagramme d’états-transitions
• Une action consiste à envoyer un signal, à faire appel à une méthode, à affecter une valeur à
un attribut...
168
Diagramme d’états-transitions
evt-in [cond. in] / act. in État avec événements evt-out [cond. out] / act. out
➢ États particuliers :
170
Diagramme d’états-transitions
➢ États particuliers :
171
Diagramme d’états-transitions
➢ États particuliers :
• État orthogonal : État composite dans lequel plusieurs états sont actifs simultanément.
172
Diagramme d’états-transitions
➢ États particuliers :
• État historique : Pseudoétat qui mémorise le dernier sous-état actif d'un état composite.
Etat historique plat : reprendre au début du sous-état du plus haut niveau dans lequel
H
nous nous étions arrêté.
H* Etat historique profond : reprendre au début du sous état dans lequel nous nous étions
arrêté, quelque soit son niveau d’imbrication.
173
Diagramme d’états-transitions
➢ États particuliers :
• État historique : Pseudoétat qui mémorise le dernier sous-état actif d'un état composite.
174
Diagramme d’états-transitions
❑ Exercice 1 :
On considère une boîte de vitesses automatique de voiture. La boîte au démarrage est au
point mort. La marche arrière ainsi que la position parking peuvent être enclenchées à partir
du point mort. La première marche avant peut également être enclenchée à partir du point
mort. En revanche, les autres marches avant, la seconde et la troisième, sont enclenchées en
séquence: 1-2-3 pour une accélération, et 3-2-1 pour une décélération. Seules la marche
arrière, la position parking et la première marche avant peuvent être ramenées directement
au point mort.
175
Diagramme d’états-transitions
❑ Exercice 1
176
Diagramme d’états-transitions
❑ Exercice 2 :
Une montre digitale simple possède deux boutons, que l’on nommera A et B, pour la mettre à
l’heure. La montre a deux modes d’opérations, affichage de l’heure et mise à l’heure. En mode
d’affichage, les heures et les minutes sont affichées, séparées par un signe « deux points »
intermittent. Le mode de mise à l’heure a deux sous-modes, heures et minutes. Le bouton A
s’utilise pour les modes. A chaque fois que l’on appuie dessus, le mode change suivant la séquence:
affichage, configurer heures, configurer minutes, affichage, etc. Dans une sous-mode, le bouton B
s’emploie pour avancer les heures ou les minutes à chaque fois que l’on appuie dessus. Les boutons
doivent être relâchés avant de produire un autre événement.
177
Diagramme d’états-transitions
❑ Exercice 2
Réglage
A [!B]
Affichage Réglage Heures
do / Afficher Heures : Minutes A [!B] B [!A] / Heures++
A [!B]
Réglage Minutes
B [!A] / Minutes++
178
Plan
Chapitre 9. Diagramme d’activités.
➢ Introduction
➢ Les actions
➢ Les activités
➢ Les transitions
➢ Les nœuds :
▪ Nœud d’action
▪ Nœud d’objet
▪ Nœud de contrôle
➢ Les partitions / couloirs d’activités :
➢ Introduction :
• Permet de décrire le flux de travail d'un point de départ à un point d'arrivée en détaillant les
chemins de décision existant dans la progression des événements contenus dans l'activité.
• Représentation des opérations d’un processus et leurs conséquences sur les objets.
• Peut être utilisée pour décrire le déroulement d'un cas d'utilisation ou d'une méthode.
181
Diagramme d’activités
➢ Introduction :
182
Diagramme d’activités
➢ Les actions :
• Une action est le plus petit traitement qui puisse être exprimé en UML.
• Les actions sont des étapes discrètes à partir desquelles se construisent les comportements.
183
Diagramme d’activités
➢ Les activités :
• Une activité définit un comportement décrit par un séquencement organisé d'unités dont les
éléments simples sont les actions.
• Le flot d'exécution est modélisé par des nœuds reliés par des arcs (transitions).
• Une activité est un traitement complexe et décomposable en actions. Elle peut être interrompue
par un événement.
• Une action est un traitement simple et non décomposable. Elle ne peut pas être interrompue.
184
Diagramme d’activités
➢ Les transitions :
• Elles sont déclenchées dès que l'activité source est terminée et provoquent automatiquement et
immédiatement le début de la prochaine activité à déclencher (l'activité cible).
• Graphiquement les transitions sont représentées par des flèches interconnectant les activités.
Insérer carte
transition
Saisir code
185
Diagramme d’activités
➢ Les nœuds :
186
Diagramme d’activités
• Un nœud d'action est un nœud d'activité exécutable qui constitue l'unité fondamentale de
fonctionnalité exécutable dans une activité.
• Les actions sont généralement liées à des opérations qui sont directement invoquées.
187
Diagramme d’activités
• Les nœuds d'objet permettent de définir un flot d'objets dans un diagramme d'activités.
• Graphiquement, un nœud d'objet est représenté par un rectangle dans lequel est mentionné le
type de l'objet. Ce nœud d'objet est relié à des activités sources et cibles par des arcs.
: Livre : Livre
Acheter livre Enregistrer emprunt
[disponible] [emprunté]
• Les actions sont généralement liées à des opérations qui sont directement invoquées.
• Le nom d'un état de l'objet peut être précisé entre crochets après ou sous le type de l'objet.
188
Diagramme d’activités
• Un nœud abstrait utilisé pour coordonner les flots entre les nœuds d'une activité.
189
Diagramme d’activités
• Un nœud abstrait utilisé pour coordonner les flots entre les nœuds d'une activité.
190
Diagramme d’activités
• Un nœud abstrait utilisé pour coordonner les flots entre les nœuds d'une activité.
[cond1] [cond2]
191
Diagramme d’activités
• Un nœud abstrait utilisé pour coordonner les flots entre les nœuds d'une activité.
192
Diagramme d’activités
• Un nœud abstrait utilisé pour coordonner les flots entre les nœuds d'une activité.
193
Diagramme d’activités
• Un nœud abstrait utilisé pour coordonner les flots entre les nœuds d'une activité.
194
Diagramme d’activités
• Chaque partition montre ainsi quelles actions sont exécutées par une classe ou une unité.
• Les transitions peuvent, bien entendu, traverser les frontières des partitions.
195
Diagramme d’activités
196
Diagramme d’activités
❑ Exercice 1:
Construire un diagramme d’activité pour modéliser le processus de commander d’un produit.
197
Diagramme d’activités
❑ Exercice 1
Commander
Traiter
produit Sortir
commande
articles
Expédier
Facturer
Payer commande
client
Encaisser facture
198
Série TD N°1
❑ EXERCICE 1:
3. Quelle est la différence entre les diagrammes statiques et les diagrammes dynamiques?
200
Série TD N°1
❑ EXERCICE 2:
201
Série TD N°1
❑ EXERCICE 3:
L’hôtel « perla », dont le gérant est Mr « alex », possède 35 chambres. L’une des chambres
est louée à Mr « bernard ».
202
Série TD N°1
❑ EXERCICE 4:
▪ Introduire, dans le diagramme des cas d’utilisation, la saisie du nom et celle du mot de passe
ainsi que la vérification de ces données ;
▪ Ajouter la saisie d’un code complémentaire après celle du mot de passe. Ce code
complémentaire est optionnel pour les utilisateurs ayant besoin d’une sécurité accrue.
203
Série TD N°1
❑ EXERCICE 5:
▪ Quand l’heure courante devient égale à l’heure d’alarme, le réveil sonne sans s’arrêter ;
204
Série TD N°2
❑ EXERCICE 1:
3. C’est quoi la différence entre une composition et une agrégation ? Donner un exemple.
6. Quel est le rapport entre le diagramme de séquence et les diagrammes de cas d’utilisation
et de classes ?
206
Série TD N°2
❑ EXERCICE 2:
Le directeur d’une école a besoin d’une application pour gérer la réservation des salles de cours.
Dans cette école on peut trouver des enseignants, des étudiants, et des salles. La réservation peut
se faire uniquement par des enseignants selon la disponibilité de la salle. Le directeur de l’école
affiche un planning des salles qui peut être consulté par les enseignants et les étudiants. Le
récapitulatif horaire par enseignant, édité par le directeur, n'est consulté que par les enseignants
et le directeur.
❑ EXERCICE 3:
Le processus des examens dans un établissement scolaire concerne les acteurs suivants :
▪ Professeur : propose l’énoncé de l’examen, corrige les copies des élèves, et fournit les notes à
l’administration.
208
Étude de cas : SGB
210