SlideShare une entreprise Scribd logo
1  sur  157
Télécharger pour lire hors ligne
UML
Par Dr. CHAIBI Hasna
2021/2022
Introduction
▪ UML, « Unified Modeling Language ». En français « Langage de modélisation
unifié ».
▪ Utilisé lorsqu’on prévoit de développer des applications avec une démarche objet
(développement en Java, en C++,python.. etc.).
▪ UML nous aide à faire la description du fonctionnement de l’application de façon
graphique et devient alors un excellent moyen pour « visualiser » la future
application.
▪ Langage visuel constitué d’un ensemble de schémas, appelés des diagrammes, qui
donnent chacun une vision différente du projet à traiter. Réaliser ces diagrammes
revient donc à modéliser les besoins du logiciel à développer.
Introduction
Différents types de projets
Projet de mise en production (cycle de vie)
• Objectif: développer et assurer la mise en
production
• Démarre dès l’expression du besoin
• Termine lorsque l’utilisateur peut utiliser le logiciel
Projet de développement (cycle de dev)
• Objectif: livrer la première version utilisable par
l’utilisateur
• Démarre à partir de l’expression de besoin par le
propriétaire
• Termine lors de la livraison par le développeur
Introduction
Cycle de vie d’un logiciel
Introduction
Les 3 grandes phases du cycle de développement
Analyse
Expression, recueil et formalisation des
besoins du demandeur (le client) et de
l'ensemble des contraintes.
Conception
Organiser le développement, c’est-à-dire
précise les gros modules à développer et
précise les tâches
Développement
Développer les composants définis dans la
conception et en fin livre le résultat.
Introduction
Méthode d'analyse et de conception: est un procédé qui a pour objectif
de permettre de formaliser les étapes préliminaires du développement
d'un système afin de rendre ce développement plus fidèle aux besoins
du client.
Merise Méthode Booch OOSE
OMT
UML: Langage de modélisation unifié
… …..
Jams Rumbaugh
Grady Booch Ivar Jacobson
Présentation de l’UML
▪ UML est une démarche qui se base sur une approche objet.
▪ L’approche objet nécessite une démarche itérative et incrémentale, c-à-d que le
concepteur doit faire des allers-retours entre les diagrammes initiaux et, les
besoins du client. Et des utilisateurs perçus au fur et à mesure de la conception
du logiciel afin de le modifier si nécessaire.
▪ L’approche objet est guidée par les besoins du client.
▪ L’approche objet est centrée sur le diagramme de classes qui décrit aussi bien
des actions que des informations dans une même entité. Les autres diagrammes
nous aident à voir clair dans les besoins et dans la solution qui est à développer.
Présentation de l’UML
Modélisation et Modèle
La Modélisation objet consiste à créer une représentation abstraite, sous forme
d'objets, d'entités ayant une existence physique ou non(personne, téléphone,
compte...)
• La Modélisation consiste à créer une représentation virtuelle de la
réalité. Elle comporte deux composantes:
➢L'analyse, c'est-à-dire l'étude du problème;
➢La conception, soit la mise au point d'une solution au problème.
• Un Modèle est une simplification de la réalité (abstraction de la
réalité). Grâce au modèle il est possible de représenter simplement
un problème, un concept et le simuler.
Présentation de l’UML
Modélisation et Modèle
Les différents types de diagrammes
• À ce jour, il existe 13 diagrammes « officiels », qui peuvent être
regroupés selon les deux aspects suivants :
Aspects fonctionnels
Qui utilisera le logiciel et pour quoi faire ?
Comment les actions devront-elles se
dérouler ?
Quelles informations seront utilisées pour
cela ?
Aspects liés à l’architecture
Quels seront les différents composants
logiciels à utiliser (base de données,
librairies, interfaces, etc.)?
Sur quel matériel chacun des composants
sera installé ?
Les différents types de diagrammes
• Une première décomposition d’une problématique ou système peut donc être faite à
l’aide de 4+1 vues. Le schéma ci-dessous montre les différentes vues permettant de
répondre au mieux aux besoins des utilisateurs.
• Chacune des vues est constituée de diagrammes.
• Diagramme de Classe
• Diagramme d’objet
• Diagramme de Séquence
• Diagramme d’activité
• Diagramme de collaboration
• Diagramme d’état de transition
• Diagramme de temps
• Diagramme de Structure
composite
• Diagramme de composants
• Diagramme de déploiement
• Digramme de packages
• Diagramme de cas d’utilisation
Les besoins des utilisateurs
Cette partie représente le cœur de l’analyse. On y décrit le contexte, les
acteurs ou utilisateurs du projet logiciel, les fonctionnalités du logiciel
et les interactions entre ces acteurs et ces fonctionnalités.
Le besoin des utilisateurs peut être décrit à l’aide de deux diagrammes.
1. Le diagramme de cas d’utilisation
1. Le diagramme de packages
Diagramme de cas d’utilisation
Diagramme de cas d’utilisation
• C’est souvent le premier diagramme construit lors du développement d’un
projet.
• Il va clarifier, filtrer et structurer les besoins des utilisateurs, et donc les
objectifs à atteindre par le système.
• Ce diagramme insiste uniquement sur ce que fait le système et non sur
comment il va le faire.
• Cette démarche simplificatrice permet une meilleure compréhension du
système à développer, et permet de vérifier tout au long de la conception
que les besoins des utilisateurs sont satisfaits.
Diagramme de cas d’utilisation
• Objectif: Comprendre les besoins du client pour rédiger le cahier des
charges fonctionnel.
• Trois questions:
1. Définir les utilisations principales du système: à quoi sert-il? (cas
d’utilisation)
2. Définir l’environnement du système: qui va l’utiliser ou interagir
avec lui? (acteurs)
3. Définir les limites du système: où s’arrête sa responsabilité?
Diagramme de cas d’utilisation
Diagramme de cas d’utilisation
Acteurs et cas d’utilisation
Acteur : Entité externe au système qui interagit directement avec lui.
• Personne, chose, logiciel extérieure au système…
• Représente un rôle (plusieurs rôles possibles pour une même entité)
Identifié par le nom de rôle.
Cas d’ utilisation :Fonctionnalité visible de l’extérieur
• Action déclenchée par un acteur
• Identifié par une action ( verbe à l’infinitif)
Diagramme de cas d’utilisation
Association
• Lien d’association : Relations entre acteurs et cas d’utilisation
→marque la participation d’un acteur à un cas d’utilisation.
• Représentation :
Association
Diagramme de cas d’utilisation
• Exemple: Retirer de
l’argent
Consulter les
comptes
Déposer les
chèques
Effectuer un
virement
Client
Propriétaire
du compte
Guichet automatique bancaire
Diagramme de cas d’utilisation
Généralisation de rôle
Situation: Y peut faire tout ce que fait X Modélisation: Faire apparaître Y comme un cas
particulier de X (autrement dit X généralisation de Y)
Y
X
X
Y
Diagramme de cas d’utilisation
Généralisation de rôle (Exemple 1)
Diagramme de cas d’utilisation
Généralisation de rôle (Exemple 2)
Deux acteurs ont des cas communs mais chacun a ses cas spécifiques, donc aucun n'est un cas particulier de l'autre.
Dans ce cas, on utilise l'héritage en créant un acteur intermédiaires qui va rassembler et hériter les cas communs.
Généralisation: X est un cas particulier de Y
Tout ou partie du scénario de Y est spécifique à X
Diagramme de cas d’utilisation
Relations entre les cas d’utilisation
y
x2
x1
Extension : X « extends » Y
• Cas d’utilisation X peut être déclenché au cours du scénario de Y
• X est optionnel pour Y
Diagramme de cas d’utilisation
Relations entre les cas d’utilisation
y
x
Diagramme de cas d’utilisation
Relations entre les cas d’utilisation
Inclusion: X « includes » Y
Scénario de Y inclus dans le scénario de X Y est nécessaire pour X
Cas d’utilisation Y déclenché au cours du scénario de X
x
y
Diagramme de cas d’utilisation
• À partir du schéma suivant, dite quelle est la signification d’une relation de
type « include » ?
❑Le cas d’utilisation A est réalisé avant le cas d’utilisation B.
❑Le cas d’utilisation A toujours besoin du cas d’utilisation B.
❑Le cas d’utilisation A peut éventuellement avoir besoin du cas d’utilisation B.
❑Le cas d’utilisation B peut éventuellement avoir besoin du cas d’utilisation A.
Use case B
Use case A
« include »
• À partir du schéma suivant, dite quelle est la signification d’une relation de
type « extend » ?
• Le cas d’utilisation A toujours besoin du cas d’utilisation B.
• Le cas d’utilisation A est réalisé avant le cas d’utilisation B.
• Le cas d’utilisation A peut éventuellement avoir besoin du cas d’utilisation B.
• Le cas d’utilisation B peut éventuellement avoir besoin du cas d’utilisation A.
Use case B
Use case A
« extend »
1. Parmi les cas d’utilisation suivants, lequel un cas d’utilisation optionnel ?
Inscrire étudiant
Consulter
statistique
Ajouter Nv filière
Gérer filières
Supprimer filière
Secrétaire
Administrateur
S’authentifier
Imprimer fiche
étudiant
2. Pour quelle raison l’acteur « Administrateur» est-il utile dans le diagramme ?
❑Cet acteur pourra utiliser uniquement la fonctionnalité « gérer filières».
❑Cet acteur pourra utiliser les mêmes fonctionnalités que les autres personnes,
mais il a également besoin d’une fonctionnalité supplémentaire : « gérer filières».
❑Cet acteur est consulté par les autres personnes concernant la gestion des filières.
3. Pourquoi le cas d’utilisation « s’authentifier» est-il lié à deux autres cas
d’utilisation avec une relation « include » ?
❑Lorsqu’une personne souhaite « inscrire un étudiant » ou « consulter les
statistiques », il faut obligatoirement s’authentifier.
❑Lorsqu’une personne souhaite «inscrire un étudiant » ou «consulter les statistiques
», elle peut s’authentifier.
❑La s’authentification oblige la personne à inscrire un « étudiant » et à consulter les
statistiques
Exercice: Donner le diagramme des cas d'utilisation de ce système
Dans un établissement scolaire, on désire gérer la réservation des salles
de cours ainsi que du matériel pédagogique (ordinateur portable ou
vidéo projecteur).
• Seuls les enseignants sont habilités à effectuer des réservations (sous
réserve de disponibilité de la salle ou du matériel).
• Le planning des salles peut quant à lui être consulté par tout le monde
(enseignants et étudiants).
• Par contre, le récapitulatif horaire par enseignant (calculé à partir du
planning des salles) ne peut être consulté que par les enseignants.
• Enfin, il existe pour chaque formation un enseignant responsable qui
seul peut éditer le récapitulatif horaire pour l’ensemble de formation.
Exercice:
Travail demandé : Réaliser le diagramme de cas d’utilisation
Une bibliothèque universitaire souhaite automatiser sa gestion. Cette bibliothèque est
gérée par un gestionnaire chargé des inscriptions et des relances des lecteurs quand ceux-
ci n’ont pas rendu leurs ouvrages au-delà du délai autorisé. Les bibliothécaires sont
chargés de gérer les emprunts et la restitution des ouvrages ainsi que l’acquisition de
nouveaux ouvrages. Il existe trois catégories d’abonné. Tout d’abord les étudiants qui
doivent seulement s’acquitter d’une somme forfaitaire pour une année afin d’avoir droit à
tous les services de la bibliothèque (Consulter du catalogue, emprunter ouvrage,
demander nouvel ouvrage). L’accès aux services de la bibliothèque est libre pour tous les
enseignants après l’authentification. Enfin, il est possible d’autoriser des étudiants d’une
autre université à s’inscrire exceptionnellement comme abonné moyennant le versement
d’une cotisation.
Exercice:
Travail demandé : Réaliser le diagramme de cas d’utilisation
Une bibliothèque universitaire souhaite automatiser sa gestion. Cette bibliothèque est
gérée par un gestionnaire chargé des inscriptions et des relances des lecteurs quand ceux-
ci n’ont pas rendu leurs ouvrages au-delà du délai autorisé. Les bibliothécaires sont
chargés de gérer les emprunts et la restitution des ouvrages ainsi que l’acquisition de
nouveaux ouvrages. Il existe trois catégories d’abonné. Tout d’abord les étudiants qui
doivent seulement s’acquitter d’une somme forfaitaire pour une année afin d’avoir droit à
tous les services de la bibliothèque( Consulter du catalogue, emprunter ouvrage,
demander nouvel ouvrage). L’accès aux services de la bibliothèque est libre pour tous les
enseignants après l’authentification. Enfin, il est possible d’autoriser des étudiants d’une
autre université à s’inscrire exceptionnellement comme abonné moyennant le versement
d’une cotisation.
Diagramme de classes
Diagramme d’objets
Diagramme de classe
Conception orientée objet: Représentation du système comme un ensemble d’objets
interagissant
Diagramme de classes
• Représentation da la structure interne du logiciel
• Utilisé surtout en conception
Diagramme d’objets
• Représentation de l’état du logiciel (objets + relation)
• Digramme évoluant avec l’exécution du logiciel
• Création et suppression d’objets
• Modification de l’état des objets (valeurs des attributs)
• Modification des relations entre objets
Approche Objet
Objet: entité identifiable du monde réel pouvant avoir ou pas une
existence physique. Exemples : chien, table, personne, compteB…
• Un objet possède trois composantes :
+ identité (adresse mémoire),
+ état (attributs),
+ comportement (Méthodes)
Approche Classe
• Des objets ayant des
propriétés communes
(attributs et méthodes) sont
alors regroupés dans une
structure abstraite appelée
classe.
• Les valeurs sont différentes
pour chaque objet
Approche Classe et Objet
• Classe:
Regroupement d’objets de même nature (mêmes attributs + mêmes
opérations)
• Objet
A partir d’une classe on peut créer un ou plusieurs objets par instanciation ;
Chaque objet est une instance d’une seule classe.
Objet= instance d’une classe
Approche Objet
• Un objet possède trois composantes :
+ identité (adresse mémoire), état (attributs), comportement (opérations)
Approche Classe et Objet
L’instanciation est l’opération qui consiste à créer un objet à partir d’une classe
Approche Classe et Objet
Attributs
• Caractéristique partagée par tous les objets de la classe
• Associe à chaque objet une valeur
• Type associé simple (int, …), primitif (Date) ou énuméré
Approche Classe et Objet
Attributs
Objets différents (identités différentes) peuvent avoir mêmes attributs
Jean1 et jean2 sont deux personnes différentes dans la mémoire.
Approche Classe et Objet
• En particulier, pas d'attribut dont le type est une classe du diagramme
Approche Classe et Objet
• En particulier, pas d'attribut dont le type est une classe du diagramme
Mais association vers cette classe
Approche Classe et Objet
Opérations
• Une tâche dont tous les objets de la classe doivent pouvoir effectuer
• Comportement commun à tous les objets de la classe
Exercice
On cherche à développer un système qui gère les empreintes et les retours dans une
bibliothèque.
La bibliothèque gère des ouvrages ( des livres et des revues). Un livre est caractérisé par
son titre, son auteur et son code ISBN. Une revue est caractérisée par le titre de la revue,
un numéro volume et sa date de parution.
Chaque exemplaire d'un ouvrage est caractérisé par un code barre au sein de la
bibliothèque et sa date de retour.
Pour emprunter un ouvrage un utilisateur doit d'être enregistré. Il s'enregistre auprès du
bibliothécaire en donnant son nom et une caution. Chaque ouvrage a une caution.
Un utilisateur ne peut emprunter un ouvrage que si la caution qui lui reste son compte
est supérieure à la caution de l’ouvrage. La durée de l'emprunt est fixé à 15 jours.
On ne peut pas emprunter plus d'un exemplaire d'un même ouvrage ni emprunter un
nouvel ouvrage si on est en retard pour rendre un ouvrage.
l'emplacement de stockage d'un ouvrage dans la bibliothèque est représenté par un
numéro de travée, un numéro d'étagères dans la travée, et un niveau. Différents
ouvrages peuvent être rangés au même emplacement mais tous les exemplaires du
même ouvrage sont stockés au même endroit.
Exercice
On cherche à développer un système qui gère les empreintes et les retours dans une
bibliothèque.
La bibliothèque gère des ouvrages ( des livres et des revues). Un livre est caractérisé par
son titre, son auteur et son code ISBN. Une revue est caractérisée par le titre de la
revue, un numéro volume et sa date de parution.
Chaque exemplaire d'un ouvrage est caractérisé par un code barre au sein de la
bibliothèque et sa date de retour.
Pour emprunter un ouvrage un utilisateur doit d'être enregistré. Il s'enregistre auprès
du bibliothécaire en donnant son nom et une caution. Chaque ouvrage a une caution.
Un utilisateur ne peut emprunter un ouvrage que si la caution qui lui reste son compte
est supérieure à la caution de l’ouvrage. La durée de l'emprunt est fixé à 15 jours.
On ne peut pas emprunter plus d'un exemplaire d'un même ouvrage ni emprunter un
nouvel ouvrage si on est en retard pour rendre un ouvrage.
l'emplacement de stockage d'un ouvrage dans la bibliothèque est représenté par un
numéro de travée, un numéro d'étagères dans la travée, et un niveau. Différents
ouvrages peuvent être rangés au même emplacement mais tous les exemplaires du
même ouvrage sont stockés au même endroit.
Relation entre objets
Lien entre objets: Un lien représente une relation entre objets à un
instant donné.
La relation nous montre que les comptes sont possédés par des clients et que les personnes sont propriétaire des comptes
Relation entre objets
Relations entre classes
1. Association:
• Relation sémantique durable entre deux classes.
• Représente les liens qui existent entre les instances des classes.
• Chaque association peut être identifié par son nom
Relations entre classes
2. Rôle:
• Définit la manière dont une classe intervient dans une relation, est placé à une
extrémité du lien d’association,
• Toute association possède 2 rôles.
➢ On peut accéder à partir d'un compte à son propriétaire et à partir d'une personne à ses comptes
Relations entre classes
3. Multiplicité:
• Contraint le nombre d'objets liés par l'association
• Une information portée par le rôle, qui quantifie le nombre de fois où un objet
participe à une instance de relation
Exactement un objet personne peut être relier à un objet compte par l’association possède
Et une personne peut être relier à plusieurs compte et compris 0
Relations entre classes
• Il est possible de préciser le rôle joué par une ou plusieurs des classes
composant une association afin d'en faciliter la compréhension. On
ajoute pour cela ce rôle à côté de la classe concernée.
• Mais afin de ne pas alourdir le modèle, il est conseillé de ne pas
nommer l’association, cela est lorsque son nom est trivial:
"appartient", "concerne" etc ...
Multiplicité
• Nombre d'objets de la classe B associés à un objet de la classe A
Multiplicité
• Nombre d'objets de la classe B associés à un objet de la classe A
Association réflexive
Diagramme de Classes
• Une association est un lien entre deux classes mais pas forcément deux classes
différentes,
• On peut donc exprimer un lien entre une classe et elle-même
• Un objet de la classe personne va toujours être relier à deux autres objets de la
classe personne qui sont désignées comme ses parents et peut être relier à
d’autres objets personne qui sont désignées comme ses enfants
Association réflexive
Exemple de diagramme d’objets
JeanDupont a deux parents (Anne et Michel) ce qui respecte les multiplicité de diagramme de classe
Association réflexive
Exemple de diagramme d’objets
Il peut avoir des frères et des sœurs qui seront relier chacun aux deux mêmes parents que Jean,
Association réflexive
Exemple de diagramme d’objets
Il peut aussi avoir un enfant avec Marie,
Association multiple
Diagramme de Classes
• On peut avoir besoin de représenter plusieurs relations entre deux classes par exemple entre une personne et
un appartement à louer
• On peut avoir une relation locataire et une relation propriétaire,
• Une personne peut posséder plusieurs appartements et peut être locataire de plusieurs appartements
• un appartement a un unique propriétaire mais peut être loué par plusieurs personnes en cas de colocataire
Association multiple
Exemple de diagramme d’objets
- Jean loue l’appartement qui est proposé par Alain et Alain peut lui-même louer un autre appartement,
- Évidement le fait de lier deux associations entre ces deux classes n’ implique pas du tout de trouver deux liens loue
et propose entre chaque couple d’objet personne et appartement
Classe-association
• Permet de paramétrer une association entre deux classes par une classe
Par fois on veut mettre plus d’information dans une association par exemple ici, on veut pas simplement représenter le
fait qu’une personne est employée dans une entreprise, mais occupe un poste qui a un nom, un début et un fin. On
ajoute cette information en paramétrant l’association par une classe, ce qu’on appelle une classe association
- Une personne peut occuper plusieurs emploies et une entreprise propose au moins un emploie
- la multiplicité * de personne vers entreprise ne se comprend pas comme une contrainte sur le nombre d’objet
entreprise différents, auquel une personne est reliée mais sur un nombre de lien entre elle et les entreprises
Classe-association
Exemple de diagramme d’objets
Association n-aire
• Association reliant plus de deux classes
Par exemple ici trois classes sont
reliées entre elles pour signifier
qu’un cours, un enseignant et un
étudiant forment une relation à
trois composantes.
➢ Cet étudiant a cet enseignant
pour ce cours.
On relie les trois branches de
l ’association par un losange pour
faire apparaitre l’association
clairement.
Association n-aire
• Instance d'une association n-aire = lien entre n objets
Association n-aire
• Multiplicités : pour chaque (n-1)-uplet d'objets, contraint le nombre
d'objets qui lui sont associés
Pour un enseignant et un cours il y a
au moins un étudiant
Pour un cours et un étudiant il y a
un unique enseignant
Pour un enseignant et un étudiant
il y a un unique cours
Association n-aire
• Pour chaque tournée, on peut associer plusieurs
chauffeurs et plusieurs camions
• Chaque camion peut être affecté à plusieurs
tournées et plusieurs chauffeurs.
Relations entre classes
Pour chacun des énoncés suivants, donnez un diagramme de classes.
• Tout écrivain a écrit au moins une œuvre.
• Les personnes peuvent être associées à des universités en tant
qu’étudiants aussi bien qu’en tant que professeurs.
• Les cinémas sont composés de plusieurs salles. Les films sont projetés
dans des salles. Les projections correspondantes ont lieu à chacune à
une heure déterminée.
• Relations entre classes
• Un facteur est affecté à une seule zone géographique. Les habitants
sont aussi associés à une zone géographique. Les recommandés
distribués par les facteurs sont de deux sortes : lettres ou colis.
Comme plusieurs facteurs peuvent intervenir sur la même zone, on
souhaite, pour chaque recommandé, le facteur qui l'a distribué, en
plus du destinataire (l’habitant). Un facteur distribue pour un habitant
plusieurs recommandés alors un habitant reçoie des recommandés
plusieurs facteurs.
Relations entre classes
• Un rectangle peut se construire par exactement quatre points et un
vecteur est construit par deux points.
• Un pays possède une capitale.
• Une route connecte deux villes.
• Une personne peut être associé à un comité comme président ou
membre du comité.
• Des personnes utilisent un langage pour un projet.
Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des opérations et les
organiser en arborescence
Hiérarchie de classes
• Les éléments spécialisés héritent de la structure et du comportement
des éléments plus généraux
• Spécialisation : raffinement d'une classe en une sous-classe
• Généralisation : abstraction d'un ensemble de classes en super-classe
Héritage
Les deux visions de l’héritage :
• Spécialisation : on étend les propriétés d’une classe à des sous-
classes plus spécifiques. Cela permet donc la réutilisation de modèles
déjà existants.
• Généralisation : on factorise les propriétés communes d’un
ensemble de classes dans une super-classe plus abstraite. Cela
permet de gagner en généricité.
Héritage
Deux intérêts majeurs :
1. On construit une hiérarchie de classes. On évite ainsi des
répétitions dans le code, en encourageant la réutilisation de
classes déjà existantes.
2. Cela permet de simplifier la conception de la modélisation.
Héritage
Comment savoir s'il y a un héritage à faire ou pas?
• Il y a héritage quand on peut dire : « A est un B ».
Exemple:
Un magicien est une personne,
Un étudiant est une personne
Un enseignant est une personne
Donc Magicien, Etudiant et Enseignant hérite de la classe Personne
Hiérarchie de classes
• Héritage : est l'association entre deux classes permettant d'exprimer
que l'une est plus générale que l'autre et implique une transmission
automatique des propriétés (attributs et méthodes) d'une super-
classe à une sous-classe .
Héritage
La classe D dérive de la classe B ou D est une sous-classe de B.
On dit aussi:
La classe B est la super classe, la classe de base, ou la classe mère de la classe dérivée D.
• D va hériter l’ensemble
➢ Des attributs de B
➢ Des méthodes de B
• les attributs et les méthodes de B vont être
disponibles pour D sans que l’on ait besoin
de redéfinir explicitement dans D.
• Aussi les méthodes héritées de B peuvent
être redéfinies dans D ( enrichissement et
spécialisation)
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 ≫)
Classe abstraite
▪Les classes abstraites sont à utiliser lorsqu'une classe mère
ne doit pas être instanciée.
▪Une classe abstraite ne peut donc pas être instanciée.
▪Une classe abstraite n'est pas obligée de contenir de
méthode abstraite.
▪Si une classe contient une méthode abstraite, cette classe
doit alors être déclarée abstraite.
▪Une méthode abstraite n'a pas de corps.
Hiérarchie de classes
Diagramme de classes Exemples d'objets
Hiérarchie de classes
Diagramme de classes Exemples d'objets
Hiérarchie de classes
Diagramme de classes Exemples d'objets
Héritage d'opération
Opération commune aux sous-classes :Définition dans la super-classe
Redéfinition d'opération
• Possibilité de redéfinition locale de l'opération dans une sous-classe
pour étendre le comportement de l'opération
Opération abstraite
• Opération non définie pour une classe abstraite, car impossible de la
définir pour tous les objets de la classe (opération en italique)
• Opération abstraite implique classe abstraite
• Exemple : On ne peut pas calculer la surface d'une forme sans savoir
de quelle forme il s'agit
Polymorphisme
Contexte : Définition d'une opération abstraite dans les classes héritant
d'une classe abstraite
➢c’est un mécanisme qui permet à une sous classe de redéfinir une
méthode dont elle a hérité tout en gardant la même signature.
Polymorphisme
Héritage multiple
• l’héritage multiple: une classe peut hériter les comportements et les fonctionnalités de plus
d'une super-classe.
• L'héritage multiple génère parfois des erreurs de compilation .
• Le principal problème rencontré est la présence de différentes implémentations par les super-
classes d'une certaine classe pour une même déclaration.
• Lorsqu'une méthode polymorphique est appelée, il faut déduire la bonne implémentation à
exécuter. elle a alors plusieurs implémentations possibles.
Héritage multiple
• Avec l'héritage multiple, une classe peut hériter en même temps de
plusieurs super-classes. Ce mécanisme n'existe pas en Java. Les
interfaces permettent de mettre en œuvre un mécanisme de
remplacement.
Interface
Qu’est-ce qu’une interface ?
• Classe sans attribut dont toutes les opérations sont abstraites ;
• Ne peut être instanciée (une classe 100 % abstraite);
• Doit être réalisée (implémentée) par des classes non abstraites ;
• Peut hériter d’une autre interface
Pourquoi des interfaces ?
• Utilisation similaire aux classes abstraites
• En Java : une classe ne peut hériter de plus d’une classe, mais elle
peut réaliser plusieurs interfaces.
Interface
• Aucune méthode d'une interface n'a de corps.
• Une interface sert à utiliser le polymorphisme.
• Possibilité implémenter autant d'interfaces que vous voulez dans les
classes.
• Possibilité de redéfinir toutes les méthodes de l'interface dans la
classe.
Interface
Exemple
Agrégation
• L'agrégation est une association particulière utilisée pour préciser
une relation tout/partie (ou ensemble /élément),
• La multiplicité, peut être exprimée librement, en particulier les
instances de la classe Élément peuvent être associées à plusieurs
instances de la classe Ensemble.
Agrégation
• Agrégation : C'est une relation particulière qui attribut à l'une des
classes le rôle d'agrégat et à l'autre classe le rôle d'agrégé.
L'agrégation peut être assimilée à une appartenance - faible -.
• Est une association non symétrique : l’une des extrémités joue un rôle
prédominant par rapport à l’autre.
• L'agrégation se modélise par un losange côté agrégat.
Agrégation
• L'appartenance est dite faible car l'agrégé pourra participer à d'autres
agrégats et son cycle de vie n'est pas subordonné à celui de son agrégat.
• La disparition de l’université n'entraîne pas la disparition de l’étudiant.
L'agrégation traduit une relation d'appartenance de l'agrégé dans l'agrégat;
Agrégé Agrégat
Agrégation
Exemple
Une page peut contenir des images mais celles-ci peuvent appartenir à
d'autres pages.
- la destruction d'une page n'entraîne pas celle de l'image mais
seulement la suppression du lien.
Composition
On appelle composition une association particulière qui possède les
propriétés suivantes :
• La composition associe une classe composite et des classes parties,
tel que tout objet partie appartient à un et un seul objet composite.
C'est donc une association 1..*.
• La composition n'est pas partageable, donc un objet partie ne peut
appartenir qu'à un seul objet composite à la fois.
Composition
• Le cycle de vie des objets parties est lié à celui de l'objet composite,
donc un objet partie disparaît quand l'objet composite auquel il est
associé disparaît.
• La multiplicité côté composite est toujours de exactement 1.
• Côté partie la multiplicité est libre, elle peut être 0..1, 1,* ou bien 1..*
• La composition se modélise par un losange noir côté composé.
Composition
• Exemple 1 :
• Le composite contient réellement ce composant
• Une université est déterminé par des salles et n’existe pas sans elles est
une salle n'existe pas au dehors de l'université
• La disparition de l’université entraîne alors à la disparition de la salle
Composition
Exemple 2 :
• Une application contient de 0 à n fenêtres qui contiennent de 0 à n
boutons.
• La fermeture de l'application entraîne la destruction des fenêtres qui
entraîne la destruction des boutons.
• La non-présence des valeurs de multiplicités est synonyme de 1..1
Composition
• Un composant ne peut appartenir à un moment donné qu'à un seul
composé.
• La cardinalité ne peut être que de 1 maximum coté composite.
• La suppression du composé entraîne celle du composant.
Navigabilité
• Association à navigabilité restreinte : par défaut une association est navigable dans les
deux sens. Mais on peut aussi indiquer que les instances d’une classe ne connaissent
pas les instances d’une autre
• Depuis un A, on a accès aux objets de B qui lui associés, mais pas l’inverse.
• Un électeur peut savoir le candidat qui veut voter pour lui mais un candidat ne peut
pas connaitre l’électeur qui a voté pour lui
Visibilité des attributs et méthodes
• Un attribut ou une méthode sont dits publics si leur utilisation est
autorisée en dehors de la classe.
• Un attribut ou une méthode sont dits protégés si leur utilisation est
limitée à la classe et ses descendantes (sous classes).
• Un attribut ou une méthode sont dits privés si leur utilisation est
interdite en dehors de la classe.
Visibilité des attributs et méthodes
• Public (+) : accès à partir de toute entité interne ou externe à la classe
• Protégé (#) : accès à partir de la classe ou des sous-classes
• Privé (-) : accès à partir des opérations de la classe
• Exemple
Attributs dérivés
• Attributs dérivés : attributs dont la valeur peut être calculée à partir
d’autres attributs et de formules de calcul.
Représentation : avec un « / » devant le nom.
Exemple
Relations entre classes
• Un dessin est soit du texte, soit une forme géométrique, soit un groupe
de dessins.
• Une équipe est composée de plusieurs personnes.
• Les étudiants et les enseignants sont deux sortes de personnes. Et Un
doctorant est un étudiant qui assure des enseignements. Les doctorants
et les étudiants doivent s'inscrire au début de l'année et éventuellement
modifier leur inscription. On connaît le nom et le prénom de toutes les
personnes. On doit pouvoir calculer le salaire des doctorants aussi bien
que celui des enseignants.
Relations entre classes
• Les modems et les claviers sont des périphériques d’entrées/sorties
• Une transaction boursière est un achat ou une vente
• L'université comporte des personnels administratifs et techniques,
des enseignants, des étudiants et des chercheurs (qui sont tous des
personnes).
Les enseignants chercheurs sont à la fois chercheurs et enseignants
Les doctorants sont à la fois chercheurs et étudiants
les assistants enseignants sont enseignants et étudiants
Les doctorants enseignants peuvent être doctorants et assistants
enseignants.
Exercice
• Les conducteurs sont des personnes qui ont un permis
caractérisé par le type et la date d’obtention de permis ;
• Toute voiture est possédée par une unique personne (qui
peut en posséder plusieurs) ; que les voitures peuvent être
conduites par des conducteurs et que les conducteurs
peuvent conduire plusieurs voitures.
• Une personne porte un nom, un prénom et une date de
naissance et on peut calculer l'âge de chaque personne.
• Une voiture est caractérisée par un nombre de portes, le
nombre de kilométrage, une marque et son type.
Question: Réaliser le diagramme de classe
Opérations
• Service qui peut être demandé à tout objet de la classe
• Comportement commun à tous les objets de la classe
Opérations
Effets possibles d'une opération
● Renvoyer le résultat d'un calcul
Opérations
Effets possibles d'une opération
● Renvoyer le résultat d'un calcul
● Modifier l'état du système
- modification de la valeur des attributs
Opérations
Effets possibles d'une opération
Renvoyer le résultat d'un calcul
● Modifier l'état du système
- modification de la valeur des attributs
- ajout/suppressions de liens entre objets
Opérations
Effets possibles d'une opération
Renvoyer le résultat d'un calcul
● Modifier l'état du système
- modification de la valeur des attributs
- ajout/suppressions de liens entre objets
- création/destruction d'objets
Diagramme d’objets
Diagramme d’objets
• Représentation d’un ensemble d’objets et de liens, exprimant la
structure statique.
• Un diagramme d’objets est une instance d’un diagramme de classes
et illustre l’état d’un système à un moment donné.
• Un diagramme d’objets est composé :
o d’objets (instances de classes),
o de liens (instances d’associations).
• La notation des diagrammes d’objets est dérivée de celle des
diagrammes de classes.
Diagramme d’objets
• Un objet est une instance d’une classe : il représente “l’état” d’une
classe à un instant précis.
Représentation UML :
• Un message envoyé vers un groupe d’objets (instances d’une même
classe) est reçu par tous les objets du groupe.
Diagramme d’objets
• L’état d’un objet est déterminé par les valeurs de ses attributs : il est
possible de nommer un état afin d’indiquer clairement dans quel état
se trouve un objet.
• Les représentations des objets peuvent contenir des attributs
significatifs.
Diagramme d’objets
• Possibilité de modéliser les changements d’états des objets:
• Possibilité d’utiliser des liens stéréotypes (exemple : la copie d’objets)
Objet composite
• Représentation UML :
Lien
• Les objets sont relies par des instances d’associations : les liens.
• Un lien représente une relation entre objets à un instant donné.
• ATTENTION : la multiplicité des extrémités des liens est toujours de 1.
• Exemple : représentation de la structure générale d’une voiture
Réaliser le diagramme d’objets
pour ce diagramme de classes en
se basant sur les informations
suivante:
Le système gère un seul bâtiment
contenant trois portes.
• Le système peut être géré par
une personne nommée Tolkien.
•Deux utilisateurs peuvent
accéder au bâtiment :
• Gandalf a accès à la première
(8h-18h) et seconde porte
(12h-24h)
• Bilbon a accès à la troisième
porte toute la journée.
Exercice
Diagramme de package
Diagramme de package
• Un package est une collection d’éléments du modèle: il peut contenir
les collections des cas d’utilisation ou des classes, et les relations qui
les lient entre eux.
• Il peut exister des dépendances entre les packages, des dépendances
entre éléments contenus dans les package.
• Les packages peuvent être utilisés dans n’importe quelle vue ou
diagramme UML.
Diagramme de package
• Notion de paquetage : 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).
• Un paquetage est donc un regroupement de différents éléments d’un
système (regroupement de classes, diagrammes, fonctions,
interfaces…). Cela permet de clarifier le modèle en l’organisant. Il est
représenté par un dossier avec son nom à l’intérieur :
Diagramme de package
• Il est possible de représenter les éléments du système appartenant au
paquetage
➢à l’intérieur de celui-ci :
➢ou à l’extérieur :
Diagramme de package
• Pour faire appel à un élément d’un paquetage, nous indiquons le nom
du paquetage suivi de deux fois deux points (::) puis du nom de
l’élément.
Diagramme de package
Dépendances entre paquetages:
• Visibilité : Chaque éléments d’un paquetage est soit :
-privé: Encapsulé dans le paquetage et invisible à l’extérieur de celui-ci.
-public: Visible et accessible de l’extérieur du paquetage.
Par défaut, les éléments d’un paquetage sont publics.
Diagramme de package
Dépendance de type « import » :
Elle 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).
- seront accessibles au paquetage B sans avoir à utiliser explicitement le nom du paquetage A. La
dépendance de type « import » est représentée par une flèche pointillée muni du stéréotype <>.
Le paquetage B importe
Classe1 et Classe2 (pas
Classe3 qui a une visibilité
de type privée). Classe1
et Classe2 ont une
visibilité de type public
dans paquetage B. Le
paquetage C importe
Classe1, Classe2 et
Classe4.
Diagramme de package
Dépendance de type « access » :
• Elle correspond à l’accès par un paquetage B de 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é).
• La dépendance de type « access » est représentée par une flèche pointillée muni
du stéréotype <<access>>.
Le paquetage B a accès à Classe1
et Classe2 (pas à Classe3 qui a
une visibilité de type privée).
Classe1 et Classe2 ont une
visibilité de type privé dans
paquetage B. Le paquetage C a
accès à Classe4 (pas à Classe1 et
Classe2 qui ont une visibilité de
type privée dans paquetage B).
Diagramme de package
Dépendance de type « merge » :
• Elle correspond à la fusion de 2 paquetages en un seul.
• La dépendance de type « merge » est représentée par une flèche
pointillée muni du stéréotype <<merge>>.
Le paquetage A est fusionné dans le paquetage B (le paquetage A n’est pas modifié alors que le
paquetage B est écrasé pour accueillir la fusion des 2 paquetages).
Diagramme de séquence
Diagrammes de séquence
• Donne une description dynamique du système.
• Permet d’établir un lien entre le diagramme de cas d’utilisation et le
diagramme de classes.
• Représente les interactions entre objets en précisant la chronologie
des échanges de messages.
• Permet de représenter les scénarios d’un cas d’utilisation donné
▪ un scénario est une instance d’un cas d’utilisation
▪ Un message reçu par un objet déclenche l’exécution d’une
opération, et en général renvoie un message qui correspond au
résultat de l’opération.
Diagramme de classes
Diagramme de séquence
Diag. de cas d’utilisation
Vérifier l’identifiant
Récupérer l’objet client
Chercher le num compte
Effectuer le virement et
Modifier le solde de deux
compte
Créer l’objet virement
Diagrammes de séquence
❑Le cœur d’un diagramme de séquence est la description des
échanges de messages entre les éléments du système et les acteurs
extérieurs.
❑Les messages les plus courants sont :
• Des opérations liées au cas d’utilisation
• Des opérations internes qui appartiennent aux classes de système.
Diagrammes de séquence
Éléments du diagramme de séquence
▪ Acteurs
▪ Objets (instances)
▪ Messages (cas d'utilisation, appels d’opération)
Principes de base : Représentation graphique de la chronologie des échanges de
messages avec le système ou au sein du système
▪ « Vie » de chaque entité (le Temps) représentée verticalement
▪ Échanges de messages représentés horizontalement
Diagrammes de séquence
Éléments de base
Les instances de la classe est noté : nom de la classe et souligné; même chose pour les acteurs
Diagrammes de séquence
Éléments de base
Appel d’une opération: représenté par une flèche pleine
Valeur renvoyée ou message de réponse : représentée par une flèche pointillé
Diagrammes de séquence
Éléments de base
Ligne de vie : représente un participant à une interaction. C’est par exemple un des
objets du système ou un acteur extérieur.
Diagrammes de séquence
Éléments de base
Période d’activité (exécution) : marque le fait qu’un élément soit actif. Cette période
commence généralement à la réception d’un message et peut se clôturer par l’envoi d’une
réponse.
Diagrammes de séquence
Éléments de base
Diagrammes de séquence
Types de messages
• Message synchrone : Émetteur bloqué en attente du retour
• Message asynchrone : Émetteur non bloqué, continue son exécution
Diagrammes de séquence
Création et destruction d'objet
• Un message peut également commander la création ou la destruction d’un
objet.
• La destruction d’un objet, se représente par « X »
Diagrammes de séquence
Message réflexif
• Un message réflexif ne représente pas l'envoi d'un message, il
représente une activité interne à l'objet (qui peut être détaillée dans
un diagramme d'activités).
Exercice
Rédigez un diagramme de séquence basé sur l’énoncé suivant:
• Le guichetier ouvre une session
• Le guichetier saisit le numéro de compte du client.
• Le système guichet valide le compte auprès du système central.
• Le système guichet demande le type d’opération au guichetier
• Le guichetier sélectionne le montant du retrait
• Le système guichet interroge le système central pour s’assurer que le
compte est suffisamment approvisionné
• Le système guichet demande au système central de débiter le compte
• Le système notifie au guichetier qu’il peut délivrer le montant demandé
Diagrammes de séquence
fragment de séquence
• UML propose une notion de bloc appelé « fragment de séquence »
permettant d’inclure dans un rectangle des sous-parties de
diagrammes de séquence.
• Un fragment de séquence indique dans le cartouche situé dans le coin
haut à gauche le nom de l’opérateur du fragment. Une autre raison de
l’intérêt des fragments est la possibilité d’exprimer les instructions de
choix, les itérations... des algorithmes classiques
Diagrammes de séquence
Alternative
• Opérateur alt : permet de modéliser une alternative entre plusieurs
scénarios.
• Représentation
Diagrammes de séquence
Alternative
Parfois on a besoin de décrire les algorithmes avec des conditions. par exemple ici on a besoin de décrire ce qui fait
l'ascenseur dans le cas où l'étage demandé est un étage courant et dans le cas inverse on fixe un message de condition
entre crochet pour préciser le contexte dans lequel le message et envoyer. Si l'étage demandé est l'étage courant on
demande la porte de s'ouvrir sinon on demande à la cabine de se déplacer jusqu'à l'étage demandé.
Diagrammes de séquence
Alternative
Donc pour montrer que les deux condition sont en relation on fait apparaitre un bloc appelé Alt on le sépare par
un trait pointillé
Diagrammes de séquence
Boucle
• Opérateur loop : Répéter un enchaînement de messages. permet de
modéliser des itérations.
Notation :
Note
bloc de boucle loop
On peut avoir besoin de représenter des boucles grâce à une note ou bien on peut utiliser un bloc appelé loop pour
encadrer les messages qui doivent être répéter en précisant dans loop les objets qu'il faut parcourir
ici par exemple pour tous les livres du catalogue on va appeler l'opération PremierAuteur()
Diagrammes de séquence
Référence à un autre diagramme
Le fragment de séquence ref: permet d’inclure une sous-séquence du
diagramme de séquence, la sous-séquence étant décrite dans un autre
diagramme de séquence.
Exercice: Etude d’une caisse de supermarché
Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en
compte que le cas du paiement en liquide. Le déroulement normal d’utilisation d’une
caisse de supermarché est le suivant :
1. Un client arrive à la caisse avec ses articles à payer
2. Le caissier enregistre le numéro d’identification de chaque article, ainsi que la
quantité si elle est supérieure à 1
3. La caisse affiche le prix de chaque article et son libellé
4. Lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente
5. La caisse affiche le total des achats
6. Le caissier annonce au client le montant total à payer
7. Le client choisit son mode de paiement: liquide : le caissier encaisse l’argent, la
caisse indique le montant à rendre au client. chèque : le caissier note le numéro
de pièce d’identité du client. carte de crédit : la demande d’autorisation est
envoyée avant la saisie
8. La caisse enregistre la vente et l’imprime
9. Le caissier donne le ticket de caisse au client

Contenu connexe

Similaire à Unified Modeling Language Intro 2021-2022 VF

Rapport de projet symphony
Rapport de projet symphonyRapport de projet symphony
Rapport de projet symphonyTonySARR1
 
03GL-diagramme de cas dutilisation (1).ppsx
03GL-diagramme de cas dutilisation (1).ppsx03GL-diagramme de cas dutilisation (1).ppsx
03GL-diagramme de cas dutilisation (1).ppsxssuser9d2f89
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapportInes Ouaz
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalAhmed Mekkaoui
 
Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Anne-Marie Pinna-Dery
 
7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciellauraty3204
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Ardesi Midi-Pyrénées
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5YounessLaaouane
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetAmine Chkr
 
Introduction à NetLogo
Introduction à NetLogoIntroduction à NetLogo
Introduction à NetLogoAlvaro Gil
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)Pascal Roques
 
projet fédéré projet pour matiere projet federe
projet fédéré projet pour matiere projet federeprojet fédéré projet pour matiere projet federe
projet fédéré projet pour matiere projet federeMoetezJlassi
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logicielguest0032c8
 

Similaire à Unified Modeling Language Intro 2021-2022 VF (20)

Rapport de projet symphony
Rapport de projet symphonyRapport de projet symphony
Rapport de projet symphony
 
03GL-diagramme de cas dutilisation (1).ppsx
03GL-diagramme de cas dutilisation (1).ppsx03GL-diagramme de cas dutilisation (1).ppsx
03GL-diagramme de cas dutilisation (1).ppsx
 
Prototype rapport
Prototype rapportPrototype rapport
Prototype rapport
 
CoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-TotalCoursUML-SlimMesfar-Total
CoursUML-SlimMesfar-Total
 
Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3Introduction module IHM Polytech Sophia Dept Info SI3
Introduction module IHM Polytech Sophia Dept Info SI3
 
CM CU-cockburn
CM CU-cockburnCM CU-cockburn
CM CU-cockburn
 
AGL.pdf
AGL.pdfAGL.pdf
AGL.pdf
 
7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel7-Cours de Géniel Logiciel
7-Cours de Géniel Logiciel
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
 
Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5Application web Gestion RH ASP.NET MVC5
Application web Gestion RH ASP.NET MVC5
 
U M L Analyse Et Conception Objet
U M L Analyse Et Conception ObjetU M L Analyse Et Conception Objet
U M L Analyse Et Conception Objet
 
Uml
UmlUml
Uml
 
Intro ihm
Intro ihmIntro ihm
Intro ihm
 
Introduction à NetLogo
Introduction à NetLogoIntroduction à NetLogo
Introduction à NetLogo
 
CM uml-intro
CM uml-introCM uml-intro
CM uml-intro
 
SysML (Valtech Days 2008)
SysML (Valtech Days 2008)SysML (Valtech Days 2008)
SysML (Valtech Days 2008)
 
Uml Cas Utilisation introduction
Uml Cas Utilisation introductionUml Cas Utilisation introduction
Uml Cas Utilisation introduction
 
projet fédéré projet pour matiere projet federe
projet fédéré projet pour matiere projet federeprojet fédéré projet pour matiere projet federe
projet fédéré projet pour matiere projet federe
 
Introduction au Génie Logiciel
Introduction au Génie LogicielIntroduction au Génie Logiciel
Introduction au Génie Logiciel
 
Tp3 - UML
Tp3 - UMLTp3 - UML
Tp3 - UML
 

Unified Modeling Language Intro 2021-2022 VF

  • 1. UML Par Dr. CHAIBI Hasna 2021/2022
  • 2. Introduction ▪ UML, « Unified Modeling Language ». En français « Langage de modélisation unifié ». ▪ Utilisé lorsqu’on prévoit de développer des applications avec une démarche objet (développement en Java, en C++,python.. etc.). ▪ UML nous aide à faire la description du fonctionnement de l’application de façon graphique et devient alors un excellent moyen pour « visualiser » la future application. ▪ Langage visuel constitué d’un ensemble de schémas, appelés des diagrammes, qui donnent chacun une vision différente du projet à traiter. Réaliser ces diagrammes revient donc à modéliser les besoins du logiciel à développer.
  • 3. Introduction Différents types de projets Projet de mise en production (cycle de vie) • Objectif: développer et assurer la mise en production • Démarre dès l’expression du besoin • Termine lorsque l’utilisateur peut utiliser le logiciel Projet de développement (cycle de dev) • Objectif: livrer la première version utilisable par l’utilisateur • Démarre à partir de l’expression de besoin par le propriétaire • Termine lors de la livraison par le développeur
  • 4. Introduction Cycle de vie d’un logiciel
  • 5. Introduction Les 3 grandes phases du cycle de développement Analyse Expression, recueil et formalisation des besoins du demandeur (le client) et de l'ensemble des contraintes. Conception Organiser le développement, c’est-à-dire précise les gros modules à développer et précise les tâches Développement Développer les composants définis dans la conception et en fin livre le résultat.
  • 6. Introduction Méthode d'analyse et de conception: est un procédé qui a pour objectif de permettre de formaliser les étapes préliminaires du développement d'un système afin de rendre ce développement plus fidèle aux besoins du client. Merise Méthode Booch OOSE OMT UML: Langage de modélisation unifié … ….. Jams Rumbaugh Grady Booch Ivar Jacobson
  • 7. Présentation de l’UML ▪ UML est une démarche qui se base sur une approche objet. ▪ L’approche objet nécessite une démarche itérative et incrémentale, c-à-d que le concepteur doit faire des allers-retours entre les diagrammes initiaux et, les besoins du client. Et des utilisateurs perçus au fur et à mesure de la conception du logiciel afin de le modifier si nécessaire. ▪ L’approche objet est guidée par les besoins du client. ▪ L’approche objet est centrée sur le diagramme de classes qui décrit aussi bien des actions que des informations dans une même entité. Les autres diagrammes nous aident à voir clair dans les besoins et dans la solution qui est à développer.
  • 8. Présentation de l’UML Modélisation et Modèle La Modélisation objet consiste à créer une représentation abstraite, sous forme d'objets, d'entités ayant une existence physique ou non(personne, téléphone, compte...)
  • 9. • La Modélisation consiste à créer une représentation virtuelle de la réalité. Elle comporte deux composantes: ➢L'analyse, c'est-à-dire l'étude du problème; ➢La conception, soit la mise au point d'une solution au problème. • Un Modèle est une simplification de la réalité (abstraction de la réalité). Grâce au modèle il est possible de représenter simplement un problème, un concept et le simuler. Présentation de l’UML Modélisation et Modèle
  • 10. Les différents types de diagrammes • À ce jour, il existe 13 diagrammes « officiels », qui peuvent être regroupés selon les deux aspects suivants : Aspects fonctionnels Qui utilisera le logiciel et pour quoi faire ? Comment les actions devront-elles se dérouler ? Quelles informations seront utilisées pour cela ? Aspects liés à l’architecture Quels seront les différents composants logiciels à utiliser (base de données, librairies, interfaces, etc.)? Sur quel matériel chacun des composants sera installé ?
  • 11. Les différents types de diagrammes • Une première décomposition d’une problématique ou système peut donc être faite à l’aide de 4+1 vues. Le schéma ci-dessous montre les différentes vues permettant de répondre au mieux aux besoins des utilisateurs. • Chacune des vues est constituée de diagrammes. • Diagramme de Classe • Diagramme d’objet • Diagramme de Séquence • Diagramme d’activité • Diagramme de collaboration • Diagramme d’état de transition • Diagramme de temps • Diagramme de Structure composite • Diagramme de composants • Diagramme de déploiement • Digramme de packages • Diagramme de cas d’utilisation
  • 12. Les besoins des utilisateurs Cette partie représente le cœur de l’analyse. On y décrit le contexte, les acteurs ou utilisateurs du projet logiciel, les fonctionnalités du logiciel et les interactions entre ces acteurs et ces fonctionnalités. Le besoin des utilisateurs peut être décrit à l’aide de deux diagrammes. 1. Le diagramme de cas d’utilisation 1. Le diagramme de packages
  • 13. Diagramme de cas d’utilisation
  • 14. Diagramme de cas d’utilisation • C’est souvent le premier diagramme construit lors du développement d’un projet. • Il va clarifier, filtrer et structurer les besoins des utilisateurs, et donc les objectifs à atteindre par le système. • Ce diagramme insiste uniquement sur ce que fait le système et non sur comment il va le faire. • Cette démarche simplificatrice permet une meilleure compréhension du système à développer, et permet de vérifier tout au long de la conception que les besoins des utilisateurs sont satisfaits.
  • 15. Diagramme de cas d’utilisation • Objectif: Comprendre les besoins du client pour rédiger le cahier des charges fonctionnel. • Trois questions: 1. Définir les utilisations principales du système: à quoi sert-il? (cas d’utilisation) 2. Définir l’environnement du système: qui va l’utiliser ou interagir avec lui? (acteurs) 3. Définir les limites du système: où s’arrête sa responsabilité?
  • 16. Diagramme de cas d’utilisation
  • 17. Diagramme de cas d’utilisation Acteurs et cas d’utilisation Acteur : Entité externe au système qui interagit directement avec lui. • Personne, chose, logiciel extérieure au système… • Représente un rôle (plusieurs rôles possibles pour une même entité) Identifié par le nom de rôle. Cas d’ utilisation :Fonctionnalité visible de l’extérieur • Action déclenchée par un acteur • Identifié par une action ( verbe à l’infinitif)
  • 18. Diagramme de cas d’utilisation Association • Lien d’association : Relations entre acteurs et cas d’utilisation →marque la participation d’un acteur à un cas d’utilisation. • Représentation : Association
  • 19. Diagramme de cas d’utilisation • Exemple: Retirer de l’argent Consulter les comptes Déposer les chèques Effectuer un virement Client Propriétaire du compte Guichet automatique bancaire
  • 20. Diagramme de cas d’utilisation Généralisation de rôle Situation: Y peut faire tout ce que fait X Modélisation: Faire apparaître Y comme un cas particulier de X (autrement dit X généralisation de Y) Y X X Y
  • 21. Diagramme de cas d’utilisation Généralisation de rôle (Exemple 1)
  • 22. Diagramme de cas d’utilisation Généralisation de rôle (Exemple 2) Deux acteurs ont des cas communs mais chacun a ses cas spécifiques, donc aucun n'est un cas particulier de l'autre. Dans ce cas, on utilise l'héritage en créant un acteur intermédiaires qui va rassembler et hériter les cas communs.
  • 23. Généralisation: X est un cas particulier de Y Tout ou partie du scénario de Y est spécifique à X Diagramme de cas d’utilisation Relations entre les cas d’utilisation y x2 x1
  • 24. Extension : X « extends » Y • Cas d’utilisation X peut être déclenché au cours du scénario de Y • X est optionnel pour Y Diagramme de cas d’utilisation Relations entre les cas d’utilisation y x
  • 25. Diagramme de cas d’utilisation Relations entre les cas d’utilisation Inclusion: X « includes » Y Scénario de Y inclus dans le scénario de X Y est nécessaire pour X Cas d’utilisation Y déclenché au cours du scénario de X x y
  • 26. Diagramme de cas d’utilisation
  • 27. • À partir du schéma suivant, dite quelle est la signification d’une relation de type « include » ? ❑Le cas d’utilisation A est réalisé avant le cas d’utilisation B. ❑Le cas d’utilisation A toujours besoin du cas d’utilisation B. ❑Le cas d’utilisation A peut éventuellement avoir besoin du cas d’utilisation B. ❑Le cas d’utilisation B peut éventuellement avoir besoin du cas d’utilisation A. Use case B Use case A « include »
  • 28. • À partir du schéma suivant, dite quelle est la signification d’une relation de type « extend » ? • Le cas d’utilisation A toujours besoin du cas d’utilisation B. • Le cas d’utilisation A est réalisé avant le cas d’utilisation B. • Le cas d’utilisation A peut éventuellement avoir besoin du cas d’utilisation B. • Le cas d’utilisation B peut éventuellement avoir besoin du cas d’utilisation A. Use case B Use case A « extend »
  • 29. 1. Parmi les cas d’utilisation suivants, lequel un cas d’utilisation optionnel ? Inscrire étudiant Consulter statistique Ajouter Nv filière Gérer filières Supprimer filière Secrétaire Administrateur S’authentifier Imprimer fiche étudiant
  • 30. 2. Pour quelle raison l’acteur « Administrateur» est-il utile dans le diagramme ? ❑Cet acteur pourra utiliser uniquement la fonctionnalité « gérer filières». ❑Cet acteur pourra utiliser les mêmes fonctionnalités que les autres personnes, mais il a également besoin d’une fonctionnalité supplémentaire : « gérer filières». ❑Cet acteur est consulté par les autres personnes concernant la gestion des filières. 3. Pourquoi le cas d’utilisation « s’authentifier» est-il lié à deux autres cas d’utilisation avec une relation « include » ? ❑Lorsqu’une personne souhaite « inscrire un étudiant » ou « consulter les statistiques », il faut obligatoirement s’authentifier. ❑Lorsqu’une personne souhaite «inscrire un étudiant » ou «consulter les statistiques », elle peut s’authentifier. ❑La s’authentification oblige la personne à inscrire un « étudiant » et à consulter les statistiques
  • 31. Exercice: Donner le diagramme des cas d'utilisation de ce système Dans un établissement scolaire, on désire gérer la réservation des salles de cours ainsi que du matériel pédagogique (ordinateur portable ou vidéo projecteur). • Seuls les enseignants sont habilités à effectuer des réservations (sous réserve de disponibilité de la salle ou du matériel). • Le planning des salles peut quant à lui être consulté par tout le monde (enseignants et étudiants). • Par contre, le récapitulatif horaire par enseignant (calculé à partir du planning des salles) ne peut être consulté que par les enseignants. • Enfin, il existe pour chaque formation un enseignant responsable qui seul peut éditer le récapitulatif horaire pour l’ensemble de formation.
  • 32. Exercice: Travail demandé : Réaliser le diagramme de cas d’utilisation Une bibliothèque universitaire souhaite automatiser sa gestion. Cette bibliothèque est gérée par un gestionnaire chargé des inscriptions et des relances des lecteurs quand ceux- ci n’ont pas rendu leurs ouvrages au-delà du délai autorisé. Les bibliothécaires sont chargés de gérer les emprunts et la restitution des ouvrages ainsi que l’acquisition de nouveaux ouvrages. Il existe trois catégories d’abonné. Tout d’abord les étudiants qui doivent seulement s’acquitter d’une somme forfaitaire pour une année afin d’avoir droit à tous les services de la bibliothèque (Consulter du catalogue, emprunter ouvrage, demander nouvel ouvrage). L’accès aux services de la bibliothèque est libre pour tous les enseignants après l’authentification. Enfin, il est possible d’autoriser des étudiants d’une autre université à s’inscrire exceptionnellement comme abonné moyennant le versement d’une cotisation.
  • 33. Exercice: Travail demandé : Réaliser le diagramme de cas d’utilisation Une bibliothèque universitaire souhaite automatiser sa gestion. Cette bibliothèque est gérée par un gestionnaire chargé des inscriptions et des relances des lecteurs quand ceux- ci n’ont pas rendu leurs ouvrages au-delà du délai autorisé. Les bibliothécaires sont chargés de gérer les emprunts et la restitution des ouvrages ainsi que l’acquisition de nouveaux ouvrages. Il existe trois catégories d’abonné. Tout d’abord les étudiants qui doivent seulement s’acquitter d’une somme forfaitaire pour une année afin d’avoir droit à tous les services de la bibliothèque( Consulter du catalogue, emprunter ouvrage, demander nouvel ouvrage). L’accès aux services de la bibliothèque est libre pour tous les enseignants après l’authentification. Enfin, il est possible d’autoriser des étudiants d’une autre université à s’inscrire exceptionnellement comme abonné moyennant le versement d’une cotisation.
  • 35. Diagramme de classe Conception orientée objet: Représentation du système comme un ensemble d’objets interagissant Diagramme de classes • Représentation da la structure interne du logiciel • Utilisé surtout en conception Diagramme d’objets • Représentation de l’état du logiciel (objets + relation) • Digramme évoluant avec l’exécution du logiciel • Création et suppression d’objets • Modification de l’état des objets (valeurs des attributs) • Modification des relations entre objets
  • 36. Approche Objet Objet: entité identifiable du monde réel pouvant avoir ou pas une existence physique. Exemples : chien, table, personne, compteB… • Un objet possède trois composantes : + identité (adresse mémoire), + état (attributs), + comportement (Méthodes)
  • 37. Approche Classe • Des objets ayant des propriétés communes (attributs et méthodes) sont alors regroupés dans une structure abstraite appelée classe. • Les valeurs sont différentes pour chaque objet
  • 38. Approche Classe et Objet • Classe: Regroupement d’objets de même nature (mêmes attributs + mêmes opérations) • Objet A partir d’une classe on peut créer un ou plusieurs objets par instanciation ; Chaque objet est une instance d’une seule classe. Objet= instance d’une classe
  • 39. Approche Objet • Un objet possède trois composantes : + identité (adresse mémoire), état (attributs), comportement (opérations)
  • 40. Approche Classe et Objet L’instanciation est l’opération qui consiste à créer un objet à partir d’une classe
  • 41. Approche Classe et Objet Attributs • Caractéristique partagée par tous les objets de la classe • Associe à chaque objet une valeur • Type associé simple (int, …), primitif (Date) ou énuméré
  • 42. Approche Classe et Objet Attributs Objets différents (identités différentes) peuvent avoir mêmes attributs Jean1 et jean2 sont deux personnes différentes dans la mémoire.
  • 43. Approche Classe et Objet • En particulier, pas d'attribut dont le type est une classe du diagramme
  • 44. Approche Classe et Objet • En particulier, pas d'attribut dont le type est une classe du diagramme Mais association vers cette classe
  • 45. Approche Classe et Objet Opérations • Une tâche dont tous les objets de la classe doivent pouvoir effectuer • Comportement commun à tous les objets de la classe
  • 46. Exercice On cherche à développer un système qui gère les empreintes et les retours dans une bibliothèque. La bibliothèque gère des ouvrages ( des livres et des revues). Un livre est caractérisé par son titre, son auteur et son code ISBN. Une revue est caractérisée par le titre de la revue, un numéro volume et sa date de parution. Chaque exemplaire d'un ouvrage est caractérisé par un code barre au sein de la bibliothèque et sa date de retour. Pour emprunter un ouvrage un utilisateur doit d'être enregistré. Il s'enregistre auprès du bibliothécaire en donnant son nom et une caution. Chaque ouvrage a une caution. Un utilisateur ne peut emprunter un ouvrage que si la caution qui lui reste son compte est supérieure à la caution de l’ouvrage. La durée de l'emprunt est fixé à 15 jours. On ne peut pas emprunter plus d'un exemplaire d'un même ouvrage ni emprunter un nouvel ouvrage si on est en retard pour rendre un ouvrage. l'emplacement de stockage d'un ouvrage dans la bibliothèque est représenté par un numéro de travée, un numéro d'étagères dans la travée, et un niveau. Différents ouvrages peuvent être rangés au même emplacement mais tous les exemplaires du même ouvrage sont stockés au même endroit.
  • 47. Exercice On cherche à développer un système qui gère les empreintes et les retours dans une bibliothèque. La bibliothèque gère des ouvrages ( des livres et des revues). Un livre est caractérisé par son titre, son auteur et son code ISBN. Une revue est caractérisée par le titre de la revue, un numéro volume et sa date de parution. Chaque exemplaire d'un ouvrage est caractérisé par un code barre au sein de la bibliothèque et sa date de retour. Pour emprunter un ouvrage un utilisateur doit d'être enregistré. Il s'enregistre auprès du bibliothécaire en donnant son nom et une caution. Chaque ouvrage a une caution. Un utilisateur ne peut emprunter un ouvrage que si la caution qui lui reste son compte est supérieure à la caution de l’ouvrage. La durée de l'emprunt est fixé à 15 jours. On ne peut pas emprunter plus d'un exemplaire d'un même ouvrage ni emprunter un nouvel ouvrage si on est en retard pour rendre un ouvrage. l'emplacement de stockage d'un ouvrage dans la bibliothèque est représenté par un numéro de travée, un numéro d'étagères dans la travée, et un niveau. Différents ouvrages peuvent être rangés au même emplacement mais tous les exemplaires du même ouvrage sont stockés au même endroit.
  • 48. Relation entre objets Lien entre objets: Un lien représente une relation entre objets à un instant donné. La relation nous montre que les comptes sont possédés par des clients et que les personnes sont propriétaire des comptes
  • 50. Relations entre classes 1. Association: • Relation sémantique durable entre deux classes. • Représente les liens qui existent entre les instances des classes. • Chaque association peut être identifié par son nom
  • 51. Relations entre classes 2. Rôle: • Définit la manière dont une classe intervient dans une relation, est placé à une extrémité du lien d’association, • Toute association possède 2 rôles. ➢ On peut accéder à partir d'un compte à son propriétaire et à partir d'une personne à ses comptes
  • 52. Relations entre classes 3. Multiplicité: • Contraint le nombre d'objets liés par l'association • Une information portée par le rôle, qui quantifie le nombre de fois où un objet participe à une instance de relation Exactement un objet personne peut être relier à un objet compte par l’association possède Et une personne peut être relier à plusieurs compte et compris 0
  • 53. Relations entre classes • Il est possible de préciser le rôle joué par une ou plusieurs des classes composant une association afin d'en faciliter la compréhension. On ajoute pour cela ce rôle à côté de la classe concernée. • Mais afin de ne pas alourdir le modèle, il est conseillé de ne pas nommer l’association, cela est lorsque son nom est trivial: "appartient", "concerne" etc ...
  • 54. Multiplicité • Nombre d'objets de la classe B associés à un objet de la classe A
  • 55. Multiplicité • Nombre d'objets de la classe B associés à un objet de la classe A
  • 56. Association réflexive Diagramme de Classes • Une association est un lien entre deux classes mais pas forcément deux classes différentes, • On peut donc exprimer un lien entre une classe et elle-même • Un objet de la classe personne va toujours être relier à deux autres objets de la classe personne qui sont désignées comme ses parents et peut être relier à d’autres objets personne qui sont désignées comme ses enfants
  • 57. Association réflexive Exemple de diagramme d’objets JeanDupont a deux parents (Anne et Michel) ce qui respecte les multiplicité de diagramme de classe
  • 58. Association réflexive Exemple de diagramme d’objets Il peut avoir des frères et des sœurs qui seront relier chacun aux deux mêmes parents que Jean,
  • 59. Association réflexive Exemple de diagramme d’objets Il peut aussi avoir un enfant avec Marie,
  • 60. Association multiple Diagramme de Classes • On peut avoir besoin de représenter plusieurs relations entre deux classes par exemple entre une personne et un appartement à louer • On peut avoir une relation locataire et une relation propriétaire, • Une personne peut posséder plusieurs appartements et peut être locataire de plusieurs appartements • un appartement a un unique propriétaire mais peut être loué par plusieurs personnes en cas de colocataire
  • 61. Association multiple Exemple de diagramme d’objets - Jean loue l’appartement qui est proposé par Alain et Alain peut lui-même louer un autre appartement, - Évidement le fait de lier deux associations entre ces deux classes n’ implique pas du tout de trouver deux liens loue et propose entre chaque couple d’objet personne et appartement
  • 62. Classe-association • Permet de paramétrer une association entre deux classes par une classe Par fois on veut mettre plus d’information dans une association par exemple ici, on veut pas simplement représenter le fait qu’une personne est employée dans une entreprise, mais occupe un poste qui a un nom, un début et un fin. On ajoute cette information en paramétrant l’association par une classe, ce qu’on appelle une classe association - Une personne peut occuper plusieurs emploies et une entreprise propose au moins un emploie - la multiplicité * de personne vers entreprise ne se comprend pas comme une contrainte sur le nombre d’objet entreprise différents, auquel une personne est reliée mais sur un nombre de lien entre elle et les entreprises
  • 64. Association n-aire • Association reliant plus de deux classes Par exemple ici trois classes sont reliées entre elles pour signifier qu’un cours, un enseignant et un étudiant forment une relation à trois composantes. ➢ Cet étudiant a cet enseignant pour ce cours. On relie les trois branches de l ’association par un losange pour faire apparaitre l’association clairement.
  • 65. Association n-aire • Instance d'une association n-aire = lien entre n objets
  • 66. Association n-aire • Multiplicités : pour chaque (n-1)-uplet d'objets, contraint le nombre d'objets qui lui sont associés Pour un enseignant et un cours il y a au moins un étudiant Pour un cours et un étudiant il y a un unique enseignant Pour un enseignant et un étudiant il y a un unique cours
  • 67. Association n-aire • Pour chaque tournée, on peut associer plusieurs chauffeurs et plusieurs camions • Chaque camion peut être affecté à plusieurs tournées et plusieurs chauffeurs.
  • 68. Relations entre classes Pour chacun des énoncés suivants, donnez un diagramme de classes. • Tout écrivain a écrit au moins une œuvre. • Les personnes peuvent être associées à des universités en tant qu’étudiants aussi bien qu’en tant que professeurs. • Les cinémas sont composés de plusieurs salles. Les films sont projetés dans des salles. Les projections correspondantes ont lieu à chacune à une heure déterminée.
  • 69. • Relations entre classes • Un facteur est affecté à une seule zone géographique. Les habitants sont aussi associés à une zone géographique. Les recommandés distribués par les facteurs sont de deux sortes : lettres ou colis. Comme plusieurs facteurs peuvent intervenir sur la même zone, on souhaite, pour chaque recommandé, le facteur qui l'a distribué, en plus du destinataire (l’habitant). Un facteur distribue pour un habitant plusieurs recommandés alors un habitant reçoie des recommandés plusieurs facteurs.
  • 70. Relations entre classes • Un rectangle peut se construire par exactement quatre points et un vecteur est construit par deux points. • Un pays possède une capitale. • Une route connecte deux villes. • Une personne peut être associé à un comité comme président ou membre du comité. • Des personnes utilisent un langage pour un projet.
  • 71. Hiérarchie de classes Principe : Regrouper les classes partageant des attributs et des opérations et les organiser en arborescence
  • 72. Hiérarchie de classes • Les éléments spécialisés héritent de la structure et du comportement des éléments plus généraux • Spécialisation : raffinement d'une classe en une sous-classe • Généralisation : abstraction d'un ensemble de classes en super-classe
  • 73. Héritage Les deux visions de l’héritage : • Spécialisation : on étend les propriétés d’une classe à des sous- classes plus spécifiques. Cela permet donc la réutilisation de modèles déjà existants. • Généralisation : on factorise les propriétés communes d’un ensemble de classes dans une super-classe plus abstraite. Cela permet de gagner en généricité.
  • 74. Héritage Deux intérêts majeurs : 1. On construit une hiérarchie de classes. On évite ainsi des répétitions dans le code, en encourageant la réutilisation de classes déjà existantes. 2. Cela permet de simplifier la conception de la modélisation.
  • 75. Héritage Comment savoir s'il y a un héritage à faire ou pas? • Il y a héritage quand on peut dire : « A est un B ». Exemple: Un magicien est une personne, Un étudiant est une personne Un enseignant est une personne Donc Magicien, Etudiant et Enseignant hérite de la classe Personne
  • 76. Hiérarchie de classes • Héritage : est l'association entre deux classes permettant d'exprimer que l'une est plus générale que l'autre et implique une transmission automatique des propriétés (attributs et méthodes) d'une super- classe à une sous-classe .
  • 77. Héritage La classe D dérive de la classe B ou D est une sous-classe de B. On dit aussi: La classe B est la super classe, la classe de base, ou la classe mère de la classe dérivée D. • D va hériter l’ensemble ➢ Des attributs de B ➢ Des méthodes de B • les attributs et les méthodes de B vont être disponibles pour D sans que l’on ait besoin de redéfinir explicitement dans D. • Aussi les méthodes héritées de B peuvent être redéfinies dans D ( enrichissement et spécialisation)
  • 78. 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 ≫)
  • 79. Classe abstraite ▪Les classes abstraites sont à utiliser lorsqu'une classe mère ne doit pas être instanciée. ▪Une classe abstraite ne peut donc pas être instanciée. ▪Une classe abstraite n'est pas obligée de contenir de méthode abstraite. ▪Si une classe contient une méthode abstraite, cette classe doit alors être déclarée abstraite. ▪Une méthode abstraite n'a pas de corps.
  • 80. Hiérarchie de classes Diagramme de classes Exemples d'objets
  • 81. Hiérarchie de classes Diagramme de classes Exemples d'objets
  • 82. Hiérarchie de classes Diagramme de classes Exemples d'objets
  • 83. Héritage d'opération Opération commune aux sous-classes :Définition dans la super-classe
  • 84. Redéfinition d'opération • Possibilité de redéfinition locale de l'opération dans une sous-classe pour étendre le comportement de l'opération
  • 85. Opération abstraite • Opération non définie pour une classe abstraite, car impossible de la définir pour tous les objets de la classe (opération en italique) • Opération abstraite implique classe abstraite • Exemple : On ne peut pas calculer la surface d'une forme sans savoir de quelle forme il s'agit
  • 86. Polymorphisme Contexte : Définition d'une opération abstraite dans les classes héritant d'une classe abstraite ➢c’est un mécanisme qui permet à une sous classe de redéfinir une méthode dont elle a hérité tout en gardant la même signature.
  • 88. Héritage multiple • l’héritage multiple: une classe peut hériter les comportements et les fonctionnalités de plus d'une super-classe. • L'héritage multiple génère parfois des erreurs de compilation . • Le principal problème rencontré est la présence de différentes implémentations par les super- classes d'une certaine classe pour une même déclaration. • Lorsqu'une méthode polymorphique est appelée, il faut déduire la bonne implémentation à exécuter. elle a alors plusieurs implémentations possibles.
  • 89. Héritage multiple • Avec l'héritage multiple, une classe peut hériter en même temps de plusieurs super-classes. Ce mécanisme n'existe pas en Java. Les interfaces permettent de mettre en œuvre un mécanisme de remplacement.
  • 90. Interface Qu’est-ce qu’une interface ? • Classe sans attribut dont toutes les opérations sont abstraites ; • Ne peut être instanciée (une classe 100 % abstraite); • Doit être réalisée (implémentée) par des classes non abstraites ; • Peut hériter d’une autre interface Pourquoi des interfaces ? • Utilisation similaire aux classes abstraites • En Java : une classe ne peut hériter de plus d’une classe, mais elle peut réaliser plusieurs interfaces.
  • 91. Interface • Aucune méthode d'une interface n'a de corps. • Une interface sert à utiliser le polymorphisme. • Possibilité implémenter autant d'interfaces que vous voulez dans les classes. • Possibilité de redéfinir toutes les méthodes de l'interface dans la classe.
  • 93. Agrégation • L'agrégation est une association particulière utilisée pour préciser une relation tout/partie (ou ensemble /élément), • La multiplicité, peut être exprimée librement, en particulier les instances de la classe Élément peuvent être associées à plusieurs instances de la classe Ensemble.
  • 94. Agrégation • Agrégation : C'est une relation particulière qui attribut à l'une des classes le rôle d'agrégat et à l'autre classe le rôle d'agrégé. L'agrégation peut être assimilée à une appartenance - faible -. • Est une association non symétrique : l’une des extrémités joue un rôle prédominant par rapport à l’autre. • L'agrégation se modélise par un losange côté agrégat.
  • 95. Agrégation • L'appartenance est dite faible car l'agrégé pourra participer à d'autres agrégats et son cycle de vie n'est pas subordonné à celui de son agrégat. • La disparition de l’université n'entraîne pas la disparition de l’étudiant. L'agrégation traduit une relation d'appartenance de l'agrégé dans l'agrégat; Agrégé Agrégat
  • 96. Agrégation Exemple Une page peut contenir des images mais celles-ci peuvent appartenir à d'autres pages. - la destruction d'une page n'entraîne pas celle de l'image mais seulement la suppression du lien.
  • 97. Composition On appelle composition une association particulière qui possède les propriétés suivantes : • La composition associe une classe composite et des classes parties, tel que tout objet partie appartient à un et un seul objet composite. C'est donc une association 1..*. • La composition n'est pas partageable, donc un objet partie ne peut appartenir qu'à un seul objet composite à la fois.
  • 98. Composition • Le cycle de vie des objets parties est lié à celui de l'objet composite, donc un objet partie disparaît quand l'objet composite auquel il est associé disparaît. • La multiplicité côté composite est toujours de exactement 1. • Côté partie la multiplicité est libre, elle peut être 0..1, 1,* ou bien 1..* • La composition se modélise par un losange noir côté composé.
  • 99. Composition • Exemple 1 : • Le composite contient réellement ce composant • Une université est déterminé par des salles et n’existe pas sans elles est une salle n'existe pas au dehors de l'université • La disparition de l’université entraîne alors à la disparition de la salle
  • 100. Composition Exemple 2 : • Une application contient de 0 à n fenêtres qui contiennent de 0 à n boutons. • La fermeture de l'application entraîne la destruction des fenêtres qui entraîne la destruction des boutons. • La non-présence des valeurs de multiplicités est synonyme de 1..1
  • 101. Composition • Un composant ne peut appartenir à un moment donné qu'à un seul composé. • La cardinalité ne peut être que de 1 maximum coté composite. • La suppression du composé entraîne celle du composant.
  • 102. Navigabilité • Association à navigabilité restreinte : par défaut une association est navigable dans les deux sens. Mais on peut aussi indiquer que les instances d’une classe ne connaissent pas les instances d’une autre • Depuis un A, on a accès aux objets de B qui lui associés, mais pas l’inverse. • Un électeur peut savoir le candidat qui veut voter pour lui mais un candidat ne peut pas connaitre l’électeur qui a voté pour lui
  • 103. Visibilité des attributs et méthodes • Un attribut ou une méthode sont dits publics si leur utilisation est autorisée en dehors de la classe. • Un attribut ou une méthode sont dits protégés si leur utilisation est limitée à la classe et ses descendantes (sous classes). • Un attribut ou une méthode sont dits privés si leur utilisation est interdite en dehors de la classe.
  • 104. Visibilité des attributs et méthodes • Public (+) : accès à partir de toute entité interne ou externe à la classe • Protégé (#) : accès à partir de la classe ou des sous-classes • Privé (-) : accès à partir des opérations de la classe • Exemple
  • 105. Attributs dérivés • Attributs dérivés : attributs dont la valeur peut être calculée à partir d’autres attributs et de formules de calcul. Représentation : avec un « / » devant le nom. Exemple
  • 106. Relations entre classes • Un dessin est soit du texte, soit une forme géométrique, soit un groupe de dessins. • Une équipe est composée de plusieurs personnes. • Les étudiants et les enseignants sont deux sortes de personnes. Et Un doctorant est un étudiant qui assure des enseignements. Les doctorants et les étudiants doivent s'inscrire au début de l'année et éventuellement modifier leur inscription. On connaît le nom et le prénom de toutes les personnes. On doit pouvoir calculer le salaire des doctorants aussi bien que celui des enseignants.
  • 107.
  • 108.
  • 109. Relations entre classes • Les modems et les claviers sont des périphériques d’entrées/sorties • Une transaction boursière est un achat ou une vente • L'université comporte des personnels administratifs et techniques, des enseignants, des étudiants et des chercheurs (qui sont tous des personnes). Les enseignants chercheurs sont à la fois chercheurs et enseignants Les doctorants sont à la fois chercheurs et étudiants les assistants enseignants sont enseignants et étudiants Les doctorants enseignants peuvent être doctorants et assistants enseignants.
  • 110.
  • 111.
  • 112. Exercice • Les conducteurs sont des personnes qui ont un permis caractérisé par le type et la date d’obtention de permis ; • Toute voiture est possédée par une unique personne (qui peut en posséder plusieurs) ; que les voitures peuvent être conduites par des conducteurs et que les conducteurs peuvent conduire plusieurs voitures. • Une personne porte un nom, un prénom et une date de naissance et on peut calculer l'âge de chaque personne. • Une voiture est caractérisée par un nombre de portes, le nombre de kilométrage, une marque et son type. Question: Réaliser le diagramme de classe
  • 113. Opérations • Service qui peut être demandé à tout objet de la classe • Comportement commun à tous les objets de la classe
  • 114. Opérations Effets possibles d'une opération ● Renvoyer le résultat d'un calcul
  • 115. Opérations Effets possibles d'une opération ● Renvoyer le résultat d'un calcul ● Modifier l'état du système - modification de la valeur des attributs
  • 116. Opérations Effets possibles d'une opération Renvoyer le résultat d'un calcul ● Modifier l'état du système - modification de la valeur des attributs - ajout/suppressions de liens entre objets
  • 117. Opérations Effets possibles d'une opération Renvoyer le résultat d'un calcul ● Modifier l'état du système - modification de la valeur des attributs - ajout/suppressions de liens entre objets - création/destruction d'objets
  • 119. Diagramme d’objets • Représentation d’un ensemble d’objets et de liens, exprimant la structure statique. • Un diagramme d’objets est une instance d’un diagramme de classes et illustre l’état d’un système à un moment donné. • Un diagramme d’objets est composé : o d’objets (instances de classes), o de liens (instances d’associations). • La notation des diagrammes d’objets est dérivée de celle des diagrammes de classes.
  • 120. Diagramme d’objets • Un objet est une instance d’une classe : il représente “l’état” d’une classe à un instant précis. Représentation UML : • Un message envoyé vers un groupe d’objets (instances d’une même classe) est reçu par tous les objets du groupe.
  • 121. Diagramme d’objets • L’état d’un objet est déterminé par les valeurs de ses attributs : il est possible de nommer un état afin d’indiquer clairement dans quel état se trouve un objet. • Les représentations des objets peuvent contenir des attributs significatifs.
  • 122. Diagramme d’objets • Possibilité de modéliser les changements d’états des objets: • Possibilité d’utiliser des liens stéréotypes (exemple : la copie d’objets)
  • 124. Lien • Les objets sont relies par des instances d’associations : les liens. • Un lien représente une relation entre objets à un instant donné. • ATTENTION : la multiplicité des extrémités des liens est toujours de 1. • Exemple : représentation de la structure générale d’une voiture
  • 125. Réaliser le diagramme d’objets pour ce diagramme de classes en se basant sur les informations suivante: Le système gère un seul bâtiment contenant trois portes. • Le système peut être géré par une personne nommée Tolkien. •Deux utilisateurs peuvent accéder au bâtiment : • Gandalf a accès à la première (8h-18h) et seconde porte (12h-24h) • Bilbon a accès à la troisième porte toute la journée. Exercice
  • 126.
  • 128. Diagramme de package • Un package est une collection d’éléments du modèle: il peut contenir les collections des cas d’utilisation ou des classes, et les relations qui les lient entre eux. • Il peut exister des dépendances entre les packages, des dépendances entre éléments contenus dans les package. • Les packages peuvent être utilisés dans n’importe quelle vue ou diagramme UML.
  • 129. Diagramme de package • Notion de paquetage : 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). • Un paquetage est donc un regroupement de différents éléments d’un système (regroupement de classes, diagrammes, fonctions, interfaces…). Cela permet de clarifier le modèle en l’organisant. Il est représenté par un dossier avec son nom à l’intérieur :
  • 130. Diagramme de package • Il est possible de représenter les éléments du système appartenant au paquetage ➢à l’intérieur de celui-ci : ➢ou à l’extérieur :
  • 131. Diagramme de package • Pour faire appel à un élément d’un paquetage, nous indiquons le nom du paquetage suivi de deux fois deux points (::) puis du nom de l’élément.
  • 132. Diagramme de package Dépendances entre paquetages: • Visibilité : Chaque éléments d’un paquetage est soit : -privé: Encapsulé dans le paquetage et invisible à l’extérieur de celui-ci. -public: Visible et accessible de l’extérieur du paquetage. Par défaut, les éléments d’un paquetage sont publics.
  • 133. Diagramme de package Dépendance de type « import » : Elle 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). - seront accessibles au paquetage B sans avoir à utiliser explicitement le nom du paquetage A. La dépendance de type « import » est représentée par une flèche pointillée muni du stéréotype <>. Le paquetage B importe Classe1 et Classe2 (pas Classe3 qui a une visibilité de type privée). Classe1 et Classe2 ont une visibilité de type public dans paquetage B. Le paquetage C importe Classe1, Classe2 et Classe4.
  • 134. Diagramme de package Dépendance de type « access » : • Elle correspond à l’accès par un paquetage B de 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é). • La dépendance de type « access » est représentée par une flèche pointillée muni du stéréotype <<access>>. Le paquetage B a accès à Classe1 et Classe2 (pas à Classe3 qui a une visibilité de type privée). Classe1 et Classe2 ont une visibilité de type privé dans paquetage B. Le paquetage C a accès à Classe4 (pas à Classe1 et Classe2 qui ont une visibilité de type privée dans paquetage B).
  • 135. Diagramme de package Dépendance de type « merge » : • Elle correspond à la fusion de 2 paquetages en un seul. • La dépendance de type « merge » est représentée par une flèche pointillée muni du stéréotype <<merge>>. Le paquetage A est fusionné dans le paquetage B (le paquetage A n’est pas modifié alors que le paquetage B est écrasé pour accueillir la fusion des 2 paquetages).
  • 137. Diagrammes de séquence • Donne une description dynamique du système. • Permet d’établir un lien entre le diagramme de cas d’utilisation et le diagramme de classes. • Représente les interactions entre objets en précisant la chronologie des échanges de messages. • Permet de représenter les scénarios d’un cas d’utilisation donné ▪ un scénario est une instance d’un cas d’utilisation ▪ Un message reçu par un objet déclenche l’exécution d’une opération, et en général renvoie un message qui correspond au résultat de l’opération.
  • 138. Diagramme de classes Diagramme de séquence Diag. de cas d’utilisation Vérifier l’identifiant Récupérer l’objet client Chercher le num compte Effectuer le virement et Modifier le solde de deux compte Créer l’objet virement
  • 139. Diagrammes de séquence ❑Le cœur d’un diagramme de séquence est la description des échanges de messages entre les éléments du système et les acteurs extérieurs. ❑Les messages les plus courants sont : • Des opérations liées au cas d’utilisation • Des opérations internes qui appartiennent aux classes de système.
  • 140. Diagrammes de séquence Éléments du diagramme de séquence ▪ Acteurs ▪ Objets (instances) ▪ Messages (cas d'utilisation, appels d’opération) Principes de base : Représentation graphique de la chronologie des échanges de messages avec le système ou au sein du système ▪ « Vie » de chaque entité (le Temps) représentée verticalement ▪ Échanges de messages représentés horizontalement
  • 141. Diagrammes de séquence Éléments de base Les instances de la classe est noté : nom de la classe et souligné; même chose pour les acteurs
  • 142. Diagrammes de séquence Éléments de base Appel d’une opération: représenté par une flèche pleine Valeur renvoyée ou message de réponse : représentée par une flèche pointillé
  • 143. Diagrammes de séquence Éléments de base Ligne de vie : représente un participant à une interaction. C’est par exemple un des objets du système ou un acteur extérieur.
  • 144. Diagrammes de séquence Éléments de base Période d’activité (exécution) : marque le fait qu’un élément soit actif. Cette période commence généralement à la réception d’un message et peut se clôturer par l’envoi d’une réponse.
  • 146. Diagrammes de séquence Types de messages • Message synchrone : Émetteur bloqué en attente du retour • Message asynchrone : Émetteur non bloqué, continue son exécution
  • 147. Diagrammes de séquence Création et destruction d'objet • Un message peut également commander la création ou la destruction d’un objet. • La destruction d’un objet, se représente par « X »
  • 148. Diagrammes de séquence Message réflexif • Un message réflexif ne représente pas l'envoi d'un message, il représente une activité interne à l'objet (qui peut être détaillée dans un diagramme d'activités).
  • 149. Exercice Rédigez un diagramme de séquence basé sur l’énoncé suivant: • Le guichetier ouvre une session • Le guichetier saisit le numéro de compte du client. • Le système guichet valide le compte auprès du système central. • Le système guichet demande le type d’opération au guichetier • Le guichetier sélectionne le montant du retrait • Le système guichet interroge le système central pour s’assurer que le compte est suffisamment approvisionné • Le système guichet demande au système central de débiter le compte • Le système notifie au guichetier qu’il peut délivrer le montant demandé
  • 150.
  • 151. Diagrammes de séquence fragment de séquence • UML propose une notion de bloc appelé « fragment de séquence » permettant d’inclure dans un rectangle des sous-parties de diagrammes de séquence. • Un fragment de séquence indique dans le cartouche situé dans le coin haut à gauche le nom de l’opérateur du fragment. Une autre raison de l’intérêt des fragments est la possibilité d’exprimer les instructions de choix, les itérations... des algorithmes classiques
  • 152. Diagrammes de séquence Alternative • Opérateur alt : permet de modéliser une alternative entre plusieurs scénarios. • Représentation
  • 153. Diagrammes de séquence Alternative Parfois on a besoin de décrire les algorithmes avec des conditions. par exemple ici on a besoin de décrire ce qui fait l'ascenseur dans le cas où l'étage demandé est un étage courant et dans le cas inverse on fixe un message de condition entre crochet pour préciser le contexte dans lequel le message et envoyer. Si l'étage demandé est l'étage courant on demande la porte de s'ouvrir sinon on demande à la cabine de se déplacer jusqu'à l'étage demandé.
  • 154. Diagrammes de séquence Alternative Donc pour montrer que les deux condition sont en relation on fait apparaitre un bloc appelé Alt on le sépare par un trait pointillé
  • 155. Diagrammes de séquence Boucle • Opérateur loop : Répéter un enchaînement de messages. permet de modéliser des itérations. Notation : Note bloc de boucle loop On peut avoir besoin de représenter des boucles grâce à une note ou bien on peut utiliser un bloc appelé loop pour encadrer les messages qui doivent être répéter en précisant dans loop les objets qu'il faut parcourir ici par exemple pour tous les livres du catalogue on va appeler l'opération PremierAuteur()
  • 156. Diagrammes de séquence Référence à un autre diagramme Le fragment de séquence ref: permet d’inclure une sous-séquence du diagramme de séquence, la sous-séquence étant décrite dans un autre diagramme de séquence.
  • 157. Exercice: Etude d’une caisse de supermarché Modéliser cette situation à l’aide d’un diagramme de séquence en ne prenant en compte que le cas du paiement en liquide. Le déroulement normal d’utilisation d’une caisse de supermarché est le suivant : 1. Un client arrive à la caisse avec ses articles à payer 2. Le caissier enregistre le numéro d’identification de chaque article, ainsi que la quantité si elle est supérieure à 1 3. La caisse affiche le prix de chaque article et son libellé 4. Lorsque tous les achats sont enregistrés, le caissier signale la fin de la vente 5. La caisse affiche le total des achats 6. Le caissier annonce au client le montant total à payer 7. Le client choisit son mode de paiement: liquide : le caissier encaisse l’argent, la caisse indique le montant à rendre au client. chèque : le caissier note le numéro de pièce d’identité du client. carte de crédit : la demande d’autorisation est envoyée avant la saisie 8. La caisse enregistre la vente et l’imprime 9. Le caissier donne le ticket de caisse au client