0% ont trouvé ce document utile (0 vote)
23 vues161 pages

Uml B3

Transféré par

AmelBenabbou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues161 pages

Uml B3

Transféré par

AmelBenabbou
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

TITRE

UML dans une


approche DEVOPS
Objectifs
Introduction
• Cycle Projet Informatique = Ensemble de phases par lesquelles passe un
projet informatique:
L’idée initiale  la mise en production et maintenance

• Il peut varier selon les méthodes de gestion de projet:

 En cascade

 Cycle en V,

 Agile

 etc
1. En Cascade:
2. Cycle en V:
3. Agile :
Les grandes étapes d’un cycle classique d’un projet
informatique
Formalisation structurée du besoin Expression des besoins
et spécification
Etudier les besoins spécifiés, identifier
les contraintes, proposer une Analyse
modélisation fonctionnelle.

Architecture du système : traduction Conception


technique des résultats de l’analyse

Implémentation

Tests et validation

Déploiement et mise en
production

Maintenance et
Evolution
Étape Objectif Porté par format
Expression Client /
Quoi ? Pourquoi ? Naturel / fonctionnel
des besoins Utilisateur

Fonctionnel formalisé, peut inclure cas


Spécification Quoi MOA / d’utilisation, règles métiers, maquettes,
des besoins précisément ? AMOA etc ( produire un cahier des charges
fonctionnel)

Modélisation : diagrammes UML (cas


Comment Analyste / d’utilisation, diagrammes de classes,
Analyse
répondre ? Architecte etc.), analyse des flux, choix de
technologies, etc.

Technique (Architecture): Diagrammes


Comment Architecte / de classes détaillés, architectures
Conception
construire ? Dev logicielles (MVC, microservices…), API à
développer, choix des frameworks
Exemple 1 : Projet dev « service de vente en ligne »
Expression de besoin: " je veux que mes clients puissent
commander des produits directement sur mon site internet.

Spécification : "Le client peut passer une commande en ligne"

Analyse : Identification des entités: Client, Commande, Produit,


relations, règles métier (ex. : un client ne peut commander que
des produits en stock).

Conception : Création d’une base de données avec les tables


clients, commandes, produits, définition de l’API POST
/commande.
Projet DEV?, INFRA ? Ou DEVOPS ??
Points communs entre projet Dev et projet Infra
Étape Description commune
Le client exprime ce qu’il attend (en langage
Expression de besoin
naturel, métier)
Les besoins sont formalisés, listés, détaillés, avec
Spécification des besoins
des contraintes fonctionnelles
Étude des composants, contraintes techniques,
Analyse
logique globale
Modélisation technique de la solution :
Conception
architecture, composants, interactions
Exemple 2 : Projet infra« »
Expression de besoin (langage métier) :"Je veux que les utilisateurs de mon
entreprise puissent accéder aux fichiers partagés, même en cas de panne
serveur. Et je veux que les données soient sécurisées avec un accès réservé
selon les services."

Spécification fonctionnelle :
• Disponibilité des partages de fichiers ≥ 99,9%
• Accès authentifié via Active Directory
• Redondance sur deux sites
• Données chiffrées en transit et au repos

Analyse :Étude des sites physiques, bande passante, volume de données


Risques (panne, cyberattaque)Identification des composants : NAS, AD, VPN,

Conception :Architecture cible avec serveurs, topologie réseau, Diagramme


de déploiement UML : serveurs, services, connexions, Plan d'adressage IP,
règles firewall
Projet Développement vs projet Infrastructure

Aspect Projet Développement Projet Infrastructure


Créer une application ou
Mettre en place une
Finalité une fonctionnalité
infrastructure technique
logicielle
Réseau, serveurs,
Code, base de données,
Livrables machines virtuelles, pare-
API, interface
feu, stockage
Utilisateur de l’appli, Administrateur système,
Acteurs métiers
responsable métier DSI, RSSI
Diagrammes d’activités,
Cas d’utilisation, états, déploiement,
Diagrammes UML
séquence, classes, etc. composants (UML +
SysML)
Projets DEVOPS

Deux cas de figure en fonction de l'importance relative de


l'infrastructure.

Type de projet DevOps Gestion de l’infrastructure


Spécialistes infra intégrés, analyse et
Infra critique, scalable, sécurisée
conception détaillées
Gestion minimale, automatisation,
Infra légère, support au déploiement
monitoring de base
Diagrammes UML utilisés dans un projet DevOps

Diagramme UML Utilité dans DevOps Partie concernée


Identifier les fonctions métier
Diagramme de cas d'utilisation Dev (fonctionnel)
attendues par les utilisateurs

Modéliser les entités métier et leur


Diagramme de classes relation (base de données, objets Dev (backend, data)
métier)

Décrire les interactions entre objets


Diagramme de séquence Dev & Infra (API, flux)
ou composants sur un scénario

Représenter un processus
Diagramme d’activités automatisé (ex : pipeline CI/CD, flux Dev & Infra
métier)
Montrer la structure logicielle
Diagramme de composants Dev & Infra
modulaire (microservices, modules)

Représenter la topologie
Diagramme de déploiement d’hébergement : VM, containers, Infra (IaC, Cloud)
load balancer, etc.
Introduction à la Modélisation UML

• UML (Unified Modeling Language) : un langage standard pour modéliser,


documenter et concevoir des systèmes et leurs architectures.

• Une démarche orientée objet, née de la fusion de trois méthodes


orientées objet OMT , OOSE et OOD.

• En 1997: la norme UML un standard de modélisation objet par l’OMG


(Object Management Group)

• Diagrammes permettant d’analyser les aspects structurels,


comportementaux et d’interaction d’un système.
Qu'est-ce que les diagrammes UML?

Des plans visuels utilisés pour illustrer la structure


et le comportement des systèmes, en particulier
dans le cadre du développement de logiciels et de
la gestion de projet.
Pourquoi utiliser UML en entreprise ?
Pour la spécification analyse et conception

Facilite la communication (langage commun entre équipes techniques


et métiers).

S’adapte aux et méthodologies de gestion de projet ( DevOps et


Agile ): UML aide à structurer les systèmes tout en restant flexible aux
évolutions.
Diagrammes d’UML 2.5.1
Différence entre Langage – Méthode
 Langage de modélisation = notations, grammaire,

sémantique
 Méthode : comment utiliser le langage de modélisation

(recueil des besoins, analyse, conception, mise en


œuvre, validation…)
Exemples :
1) Aspect statique : diagrammes structurels

Diagramme de classe-
Représenter la structure
du système sous forme
de classes
Diagramme de
composants

représenter les relations


entre les différents
composants (modules) du
système
Un diagramme de déploiement-
montrer comment et où le
système doit être déployé ( son
architecture d'exécution)
2) Aspect dynamique : Diagrammes comportementaux

Diagramme de cas d'utilisation :


représenter les besoins fonctionnels et les interactions entre acteurs
et système.
Diagramme de
séquence : montre
le flux dynamique
des interactions
entre objets au fil du
temps.
Spécification et analyse de besoins
Les cas d’utilisation (Use case)

• Une démarche qui consiste à décrire le système du


point de vue de ses utilisateurs.

• Le principe est de décrire un scénario des interactions


entre les utilisateurs et le système pour un objectif fonctionnel

• Le cas d’utilisation est une unité


d’organisation du projet: un cas d’utilisation est
une fonctionnalité métier complète -> planification autour des
cas d’utilisation

• Deux formes: graphique( diagramme) et textuel


(scénario)

• La documentation des cas d’utilisation formant


Diagramme de cas d’utilisation (Use case)

• Le diagramme de cas d’utilisation permet de modéliser une


interaction entre le système à développer et un utilisateur (acteur)
interagissant avec ce système.

• Les éléments de base :


 les acteurs (personnes, services, systèmes externes)
 les cas d'utilisation du système(les fonctionnalité).
 les associations (relations) entre acteurs et cas d'utilisation
 Scénario d’utilisation et sa documentation
Notation standard UML
1. Cas d’utilisation
•Un cas d'utilisation représente une fonctionnalité
fournie par le système, typiquement décrite sous la
forme Verbe .
•Les cas d'utilisation sont représentés par une ovale
ellipse contenant leur nom.
Nom du cas
2. Le système

• Le système est vu comme une boîte noire dont on ne


connait pas les détails d’implémentation.

• Le système est représenté par un rectangle nommé


par le nom du système.
Nom du système
2. Acteurs
Personne ou Système qui interagit avec le système

 Il possède un rôle par rapport au système,


 Il peut consulter ou modifier l’état d’un système.

Nom Acteur
4 catégories d’acteurs:
Acteur PRINCIPAL: Les personnes qui utilisent la fonction principale du
système.
Acteur SECONDAIRE: Les personnes qui ’effectuent des tâches
administratives ou maintenance du système.

Matériels Externes: Les périphériques qui doivent être utilisés


(imprimante...)

Autre Systèmes: Les systèmes avec lesquels le système doit être


interagit.
Nom du cas

Nom Acteur
Exemple
Exemple : Diagramme de cas d’utilisation d’un site de Vente
en Ligne
Comment identifier les cas
d’utilisation ?
 Chaque cas d’utilisation correspond à une fonction du système
(besoins des utilisateurs).
 Chaque cas d’utilisation doit décrire une exigence
fonctionnelle du système.

 il faut chercher pour chaque acteur :

• Les différentes intentions métier avec lesquelles il utilise le


système,
• Déterminer les services fonctionnels attendus du système.
Diagramme de Classes : Définition et Utilité

• Le diagramme de classes est un diagramme structurel qui représente


les entités d’un système sous forme de CLASSES , leurs attributs, leurs
méthodes et leurs relations.

• Il est essentiel dans l’analyse et la conception orientée objet pour


modéliser les classes et leurs interactions.
Le diagramme de classes dans le processus de développement :

[Link] de l’architecture logicielle : vue d’ensemble des composants du


système  simplifier le travail en donnant un cadre structuré à suivre.

2.Réduction des erreurs et incohérences – En identifiant les dépendances et les


relations entre les classes dès la conceptiondétecter et corriger les problèmes
en évitant les erreurs coûteuses.

[Link] des évolutions et mises à jour – Grâce à une documentation


visuelle claire  modifier/ajouter des fonctionnalités sans perturber l’ensemble
du logiciel
Types de diagramme de classes
1. Diagramme de classes d'analyse

Utilisé en phase d'analyse pour


représenter les concepts clés et les
relations du domaine métier, sans se
préoccuper des détails techniques.
Diagramme de classes de
conception
•Ajoute des détails sur les attributs,
méthodes et associations, traduisant le
modèle conceptuel en une architecture
logicielle concrète.

Diagramme de classes
d'implémentation
•Approfondit les aspects techniques
(types de données, visibilité,
contraintes, etc.) pour se rapprocher
du code source et faciliter le
développement.
Conception orientée objet :

Représentation du système comme un ensemble d'objets


interagissant

 Une approche basée sur une représentation abstraite des


entités du monde réel.

 Une approche qui regroupe les données et les traitements sur


ces données au sein d’une entité unique : OBJET
Objet
● Entité concrète ou abstraite du domaine d'application

● Décrit par :

 identité (adresse mémoire)


 + état (attributs)
 + comportement (opérations)

68
Exemple: l’objet fenêtre
• propriétés d’une fenêtre
• ouverte/fermée
• cassée/intacte
• taille
• sens d’ouverture
• type de verre
• coefficient de réflexion de chaleur
• Pour une fenêtre concrète, ces propriétés ont des valeurs.

• opérations avec une fenêtre donnée


• ouvrir
• fermer
• casser
• réparer
• changer le verre
Exemple: l’objet livre
• propriétés d’un livre dans une bibliothèque
• état (emprunté / disponible / perdu)
• date de la fin de l’emprunt
• titre
• auteur
• nombre de pages

• Pour un livre donné, ces propriétés ont des valeurs!

• opérations sur un livre d’une bibliothèque


• emprunter
• rendre
• perdre
• voler
Exemple: MonLivretA

• propriétés d’un livret pour une banque


numéro
devise
solde

Pour un livre donné, ces propriétés ont des valeurs!

opérations sur un livre d’une bibliothèque


déposer
retirer
solde
Classe
• Description abstraite d’un ensemble d’objets de même structure
et même comportement.
• Un objet = instance d’une classe.
En UML

Classe
A2
A2 Attribut : donnée élémentaire servant à caractériser
..
An
Attributs les classes et les relations.
Méthodes / Opération : opérations programmées
M1
M2
sur les objets d’une classe.
..
Mn
méthodes
Attributs

● Caractéristique partagée par tous les objets de la classe

● Associe à chaque objet une valeur

● Type associé simple (int, bool...), primitif (Date) ou énuméré


Opérations

● Service qui peut être demandé à tout objet de la classe

● Comportement commun à tous les objets de la classe


livre: Ouvrage
– état = emprunté
– date de la fin de l’emprunt = 2017/03/20
– titre = Concepts of object-oriented programming
– auteur = David N. Smith
– nombre de pages = 189

Emprunter ()
Rendre ()
Perdre ()
Ouvrage
Voler () état (emprunté / disponible / perdu)
date de la fin de l’emprunt
titre
BDess: Ouvrage auteur
nombre de pages
– état = disponible
– date de la fin de l’emprunt = -
– titre = TinTIN Emprunter ()
– auteur = Herger Rendre ()
– nombre de pages = 80 Perdre ()
Voler ()
Emprunter ()
Rendre ()
Perdre ()
Voler ()
twingo : VoiturePeugot

Voiture Peugeot marque : Renaut


couleur : grise
immatriculation : 1023321102
marque
couleur
immatriculation

208 :VoiturePeugeot
démarrer
conduire
arrêter
marque : Peugeot
couleur : rouge
immatriculation : 23658745152

class Voiture { Voiture twingo = new Voiture( );


// attributs
String marque; Voiture 208 = new Voiture( );
String couleur;
String immatriculation;
//méthodes
void démarrer( ){ } 78
void conduire( ){ }
void arrêter( ){ }
}
Objet Vs classe
Un objet est un ensemble de Une classe est un ensemble de
propriétés ayant des valeurs et propriétés et des méthodes.
des méthodes agissant sur les
valeurs de ces propriétés.

Exemplaire, cas, instance modèle (modélisation, subjective)

dynamique (est créé, modifié, statique


détruit)
Lien entre objets
● relation binaire (en général)

● au plus un lien entre deux objets (pour une association)


Notion d’association
• Association entre classes : Relation binaire (en général)

• Rôle : Nomme l'extrémité d'une association, permet d'accéder aux


objets liés par l'association à un objet donné

• Multiplicité : Contraint le nombre d'objets liés par l'association


Association binaire
• est matérialisée par un trait plein entre deux classes.
• Peut être dotée d’un nom, avec éventuellement un sens de lecture
• (--▸ ou ◂--).
Association n-aire

• Une association n-aire lie plus de deux classes.


• Représentée par un grand losange avec un chemin partant vers chaque
classe participante .
• Le nom de l’association, le cas échéant, apparaît à proximité du losange.
Association réflexive
• Une association binaire ou n-aire qui fait intervenir au
moins deux fois la même classe.
Classe association
• Parfois, une association doit posséder des propriétés.
• Possède les caractéristiques des associations et des classes.
• Se connecte à deux ou plusieurs classes et possède également des
attributs et des opérations.
• Est caractérisée par un trait discontinu entre la classe et
l’association qu’elle représente
Exemple de diagramme de classe

1 1..
*
Exercices
Donner les diagrammes de classes correspondant aux situations suivantes :

[Link] France est frontalière de l’Espagne. L’Algérie est frontalière du Maroc.

2. La France est un pays voisin de l’Italie.

[Link] polygone est constitué de points. Un point possède une abscisse et une ordonnée.

4. Une médiathèque possède des médias, empruntables par les abonnés de la médiathèque.

[Link] client demande une réparation. Une réparation est effectuée par un mécanicien. Elle
nécessite des compétences. Un mécanicien possède des compétences.

[Link] galerie expose des œuvres, faites par des artistes, et représentant des thèmes. Des
clients, accueillis par la galerie, achètent des œuvres.
Exercice de diagramme de classe: processus métier gestion
hôtellerie

Concevoir le diagramme de classe d’une application de gestion d’hôtel. Voici ce que vous devez
modéliser :

• Un hôtel est constitué d'un certain nombre de chambres. Un responsable de l'hôtel gère la location
des chambres. Chaque chambre se loue à un prix donné.
• L'accès aux salles de bain est compris dans le prix de la location d'une chambre. Certaines
chambres comportent une salle de bain, mais pas toutes. Les hôtes de chambres sans salle de bain
peuvent utiliser une salle de bain sur le palier. Ces dernières peuvent être utilisées par plusieurs
hôtes.
• Les pièces de l'hôtel qui ne sont ni des chambres, ni des salles de bain (hall d'accueil, cuisine...) ne
font pas partie de l'étude (hors sujet).
• Des personnes peuvent louer une ou plusieurs chambres de l'hôtel, afin d'y résider. En d'autre
termes : l'hôtel héberge un certain nombre de personnes, ses hôtes (il s'agit des personnes qui
louent au moins une chambre de l'hôtel...).
Les types de relations entre les
classes
Agrégation
• Modéliser une relation de type tout/partie où une classe constitue un
élément plus grand (tout) composé d’éléments plus petit (partie)

• Traduit la relation « est une partie de… » ou « a … »

• La partie peut exister indépendamment du tout.

• Exemple: une équipe (tout) est composée de membres (parties) qui


peuvent exister en dehors de cette équipe.
Agrégation

 Toute agrégation est caractérisée par une cardinalité:


Combien définit la classe composite d’instances de la classe
composant?
À combien de classes peut appartenir un objet?

 Avantage
Partir d’objets de base pour construire des objets complexes
- Graphiquement, on ajoute un losange vide du côté de
l’agrégat.
Relation d’agrégation Roue
4

Voiture 1
Moteur
1
1

Cardinalité
Composition
- Appelée aussi agrégation composite.

- La composition décrit une contenance structurelle entre instances.

- Le composite ne peut pas exister sans ses composants.

- La destruction de l’objet composite implique la destruction de ses


composants.

Exemple: un chapitre dans un livre, si le livre est détruit, ses chapitres le sont
aussi.
Composition

- Une instance de la partie composante appartient toujours à au plus


une instance de l’élément Composite.

- La multiplicité du côté composite ne doit pas être supérieure à 1.

Graphiquement, on ajoute un losange plein du côté de la composite.


Composition : exemples composant

composite
Agrégation/Composition : exemples
Exercices1

• Un livre est constitué d’une seule couverture et de plusieurs pages .

Exercices2 processus métier

 Elaborez le diagramme de classes correspondant.

Une académie souhaite gérer les cours dispensés dans plusieurs collèges.
Pour cela, on fait référence aux renseignements suivants :
• Chaque collège possède un site Internet.
• Chaque collège est structuré en départements, qui regroupent chacun des enseignants
spécifiques. Parmi ces enseignants, l’un d’eux est responsable du département.
• Un enseignant se définit par son nom, prénom, tél, mail, date de prise de fonction et son
indice.
• Chaque enseignant ne dispense qu’une seule matière.
• Les étudiants suivent quant à eux plusieurs matières et reçoivent une note pour chacune
d’elle.
• Pour chaque étudiant, on veut gérer son nom, prénom, tél, mail, ainsi que son année
d’entrée au collège.
• Une matière peut être enseigné par plusieurs enseignants, mais a toujours lieu dans la
même salle de cours (chacune ayant un nombre de places déterminées).
• On désire pouvoir calculer la moyenne par matière ainsi que par département
• On veut également calculer la moyenne générale d’un élève et pouvoir afficher les
matières dans lesquelles il n’a pas été noté
• Enfin, on doit pouvoir imprimer la fiche signalétique (prénom, tél, mail) d’un enseignant ou
d’un élève.
Héritage
• Un objet spécialisé (fils) hérite des caractéristiques de l’objet le
plus général(père).
• Deux orientations possibles:

• Généralisation : Regroupement des caractéristiques


communes
• Spécialisation : Ajout / adaptation des caractéristiques

• Création de nouvelles classes basées sur des classes existante.


• Transmission des propriétés (attributs et méthodes) de la
classe mère vers la classe fille

• Traduit la relation « est un … »

• Avantages
• Éviter la duplication du code
• Encourager la réutilisation du code
• Le symbole utilisé pour la relation d’héritage est une flèche
avec un trait plein dont la pointe est un triangle fermé
désignant le cas le plus général

• Deux types d’héritage entre les classes


1. Héritage simple

Une classe a une seule classe mère :


généralisation
Oeuvre
titre
auteur

Livre Opéra Film


ISBN genre_musical réalisateur
couverture compositeur bande_originale

Roman BD

nb_chapitres dessinateur
spécialisation
2. Héritage multiple
Une classe peut avoir plusieurs parents
Exercices:
Soient les phrases suivantes :
o Un répertoire contient des fichiers
o Une pièce contient des murs
o Les modems et claviers sont des périphériques d’entrée / sortie
o Une transaction boursière est un achat ou une vente
o Un compte bancaire peut appartenir à une personne physique ou
morale.

Elaborez les diagrammes de classe correspondants en choisissant le type de


relationapproprié
Exercice
On souhaite gérer les réservations de vols effectués dans une agence. D’après les interviews réalisées
avec les membres de l’agence, on sait que :
· Les compagnies aériennes proposent différents vols
· Un vol est ouvert à la réservation et refermé sur ordre de la compagnie
· Un client peut réserver un ou plusieurs vols, pour des passagers différents
· Une réservation concerne un seul vol et un seul passager
· Une réservation peut être confirmée ou annulée
· Un vol a un aéroport de départ et un aéroport d’arrivée
· Un vol a un jour et une heure de départ, et un jour et une heure d’arrivée
· Un vol peut comporter des escales dans un ou plusieurs aéroport(s)
· Une escale a une heure de départ et une heure d’arrivée
· Chaque aéroport dessert une ou plusieurs villes
A partir des éléments qui vous sont fournis ci-dessus, élaborez le diagramme de classes
(en y ajoutant tout attribut que vous jugez pertinent et qui n’a pas été décrit ci-dessus).
Classes abstraites
Opération abstraite
#113
• Une opération est dite abstraite lorsqu’on connaît sa signature mais pas son
implémentation dans une classe  son nom en italique ou suivi par {abstrait}
ou <<abstract>>) .

Une classe est dite abstraite

elle définit au moins une une classe mère contient une


méthode abstraite méthode abstraite non encore
réalisée
#114
•Une classe abstraite encapsule des attributs et méthodes
qui peuvent être utilisés par les classes qui en héritent.

 C’est aux classes filles de définir les opérations abstraites.

•L’intérêt :
Regrouper plusieurs classes sous un même nom de
classe par polymorphisme,
Polymorphisme

• Le polymorphisme représente la faculté d'une


méthode à pouvoir s'appliquer à des objets de
classes différentes.

• Le polymorphisme augmente la généricité du


code
• Il est impossible d’instancier directement une classe abstraite.

<<abstract>>
Humain

Classe concrète

Femme Homme

•Homme et Femme sont instanciables .


•la classe Humain est abstraite car un objet Humain n'existe pas en tant que
tel  manque l'information sur le sexe.
•la classe Humain sert à implémenter des méthodes qui sont utilisées
par Homme et pour Femme.
Deux catégories de salariés dans une banque
: ceux qui ont un compte dans la banque et
ceux qui sont clients d’une autre banque.

- Suivant le cas, la méthode verserSalaire() doit effectuer un traitement différent: un virement sur
le compte interne ou l’envoi d’un chèque
- Pour représenter les attributs et méthodes communs à ces deux classes faire hériter d’une
classe abstraite Salarié.
- Cette classe est abstraite > elle n’implémente pas la méthode verserSalaire mais la déclare
comme méthode abstraite.
Exercice

Dans un jeu d’échecs, un échéquier carré est composé de 64 cases,


alternativement noires et blanches.
Il ne peut y avoir qu’une pièce au maximum sur une case donnée.
Une pièce peut être : pion, roi, dame, fous, tour et cavalier.
Une pièce est caractérisée par une position dans les cases.
Sur une case donnée, il ne peut pas y avoir plus qu’une pièce à la
fois.
Le déplacement des pièces est typiquement polymorphe. Chaque
instance se déplace en fonction de l’algorithme déclaré au niveau
des sous-classes concrètes. Modéliser cette description textuelle.
Application: modéliser le système d’emprunt d’une
bibliothèque.

Dans la bibliothèque, il y a toutes sortes d’Ouvrages, qui sont des Livres et des
Bandes Dessinées. Les livres sont caractérisés par leur titre et leur auteur, et les
bandes dessinées par leur titre, auteur et dessinateur. Les Abonnés sont caractérisés
par leur nom et un identifiant numérique. Ils peuvent emprunter des ouvrages en
leur nom, et rendre des ouvrages empruntés. Lorsqu’un abonné emprunte un
ouvrage, on enregistre la date de cet emprunt pour l’ouvrage et l’abonne qui l’a
emprunté. On affiche alors la date à laquelle l’ouvrage devra être ramené. Si
l’ouvrage est déjà emprunté, un message d’erreur doit prévenir l’utilisateur du
programme. La date de retour des ouvrages diffère selon qu’il s’agit de bandes
dessinées ou de livres. Les bandes dessinées doivent être ramenées avant un mois et
les livres avant deux mois. Lorsqu’un abonné rend un ouvrage, on saisit la date du
jour, et si celle-ci dépasse le temps de l’emprunt autorisé, l’emprunteur aura une
amende.
Stéréotype UML
- Un mécanisme d’extension permettant d'ajouter de la sémantique
ou un rôle aux classes.

- Les stéréotypes sont écrits entre chevrons << >> et servent à


préciser la nature ou le comportement attendu d’un élément

- Stéréotypes standards ( fourni par UML) Stéréotypes spécifiques


( définis par utilisateur)
Enumera #121
tion
dataT
#124
ype
Exercice d’application :
-Une chambre dans un hôtel peut être individuelle, double ou
familiale.

- La date de naissance d’un une classe est de type Date de la


forme
jour, mois , année.

-Les classes Rectangle, cercle et losange sont proportionnellement


dessinable à partir d’une méthode abstraite.
Interface

• Une interface n’est pas une classe: une liste d’opérations  Le


comportement .

• Définir un ensemble de services offerts par une classe (fournisseur)


aux utilisateurs de l'objet (Clients).

• [Link] éléments qui utilisent l'interface peuvent exploiter tout ou partie


de l'interface.
Exemples:
•Une interface n’est pas instanciable  décrit des objets mais
uniquement en terme de méthodes abstraites.

•Une interface ne peut contenir ni attribut, ni méthode


implémentée.

•Une classe réalise (implémente)une interface si elle est


capable
d’exécuter toutes les opérations de l’interface.
• Une interface exprime le comportement d’une classe un contrat
à respecter par les classes qui « réalisent » cette interface.

•On utilise une relation de dépendance pour exprimer le fait


qu’une classe est cliente d’une interface.

•Une interface peut hériter d’une autre interface.


Une classe réalisant une interface doit :

– soit implémenter les opérations de l’interface,


–soit définir les opérations de l’interface comme
des opérations abstraites (implémentables par les
classes filles).
Exemples:
mercredi 11 mars 2020
mercredi 11 mars 2020
Autre
notation
- Classe ayant le stéréotype <<interface>> ou
- Un cercle pour faire référence à l’interface utilisée dans la classe,
– Flèche d’héritage en pointillés pour la réalisation d’une interface
par une classe,
– Flèche de dépendance en pointillés pour l’utilisation
Exemple2

• Une classe Contrat dispose d'un service d'impression


(méthode impression), qui utilise une méthode (print), dont la
spécification est déclarée dans l'interface Printer.
#140
• Le lien entre un objet "contrat" et une "imprimante"
est momentané, il ne dure que le temps d'exécution de
la méthode impression.
• L’interface est implémenté par d’autres
classes

•On utilise une relation de


type réalisation entre une interface et une
classe qui l’implémente (flèche d’héritage
en pointillés).

JetAncrePrinter LazerPrinter •Les classes implémentant une interface


doivent implémenter toutes les opérations
décrites dans l’interface.
Exercice d’application:

-Modéliser la classe page qui a besoin des services de dessin lorsque l’on
veut que la page soit dessinable.

-On est concerné par dessiner des bordures à la page, changer la couleur et
remplir le fond.

-Les services des dessins sont réalisés à partir des classes suivantes: Texte,
DessinBitmap et DessinVectoriel.
Exercice d’application 2:
- Une banque peut réaliser l’ensembles des opération définies pour un
crédit (retirer, transférer) ou d’assurance (assurer , classer) .

- Deux autres classes Entreprise et Client utilisent les opérations définies


dans Crédit (utiliser la notation cercle)

- Client utilise aussi les opérations définies dans Assurance.


Classe, Attribut, Méthode, Objet : Définition et mise en œuvre en
C++

Association, Agrégation, Composition : Relations entre classes

Héritage, Classe Abstraite, Interface : Réutilisation du code

Polymorphisme : Capacité d'une méthode à se comporter


différemment selon l'objet
Classe, Attribut, Méthode et Objet
Association : une relation entre deux classes, où un objet d'une classe peut être lié
à un objet d'une autre classe.

Un objet connaît un
autre via un pointeur
ou une référence.

Utilisation dans un programme:

La méthode afficher() affiche:


Agrégation: une relation où une classe contient une autre classe comme un
composant, mais cette dernière peut exister indépendamment.

La classe Voiture possède un


pointeur vers un objet
Moteur (mais ne crée pas
directement l’objet).

Le constructeur prend un
pointeur Moteur *m en
paramètre et l’associe à
l’attribut moteur.

Utilisation dans un programme

Affichage :
Composition: une relation forte où la classe dépend complètement de l'autre. Si
l'objet contenant est détruit, l'objet contenu l'est aussi.

Pas de pointeur :le moteur


appartient totalement à la
voiture.

Utilisation dans un programme:

Affichage : si v1 est créé Affichage : si v1 est détruit


Héritage: permet à une classe d'hériter des attributs et méthodes d'une
autre classe.

Un objet a de type Animal est créé et appelle


emettreSon() → "Un animal fait du bruit".

Un objet c de type Chien est créé et appelle


emettreSon() → "Le chien aboie".
Classe Abstraite & Interface: Une classe abstraite contient au moins une méthode
pure virtuelle et ne peut pas être instanciée directement.

Une méthode
virtuelle.

Cercle hérite de Forme :Elle redéfinit la


méthode dessiner(), ce qui la rend
concrète. Un objet Cercle peut être
instancié et sa méthode dessiner() sera
appelée.
Différences entre classe abstraite et interface

Vous aimerez peut-être aussi