© Robert Ogor
© Robert Ogor
1 mai 2003
Modélisation avec UML
1) Introduction au langage de
modélisation UML
© Robert Ogor
2 mai 2003
Modélisation avec UML
Pourquoi modéliser
Un modèle est une simplification de la réalité qui permet de
mieux comprendre le système à développer.
Il permet
- De visualiser le système comme il est ou comme il devrait
l'être.
- De valider le modèle vis à vis des clients
- De spécifier les structures de données et le comportement du
système.
- De fournir un guide pour la construction du système.
- De documenter le système et les décisions prises.
© Robert Ogor
Les principes de la
modélisation
1) Le modèle doit être connecté au monde réel
© Robert Ogor
3 mai 2003
Modélisation avec UML
Qu’apporte la modélisation
objet
© Robert Ogor
4 mai 2003
Modélisation avec UML
UML un langage
© Robert Ogor
visualiser
chaque symbole graphique a une sémantique
spécifier
de manière précise et complète, sans ambiguïté,
construire
les classes, les relations SQL peuvent être générées
automatiquement
documenter
les différents diagrammes, notes, contraintes,
exigences seront présentés dans un document.
© Robert Ogor
5 mai 2003
Modélisation avec UML
© Robert Ogor
© Robert Ogor
6 mai 2003
Modélisation avec UML
aboyer()
mordre ()
obéir ()
Classe
Noyau Serveur
Producteur
suspend()
run() Nœud
Composant
Classe Active
© Robert Ogor
appel emprunté
Message Etat
7 mai 2003
Modélisation avec UML
Les relations
dépendance
association
héritage
réalisation
© Robert Ogor
<<entité>>
Stockage Commande
stockage Commande
<<frontière>>
Réception Commande
réception Commande
© Robert Ogor
8 mai 2003
Modélisation avec UML
© Robert Ogor
© Robert Ogor
9 mai 2003
Modélisation avec UML
© Robert Ogor
Décomposition orientée-objet
Décomposition en objets et classes
Regroupement en paquetages.
Connexions par héritage, association, etc.
Accent sur l’abstraction, l’encapsulation, l’uniformité.
Réalisation des scénarios des cas d'utilisation.
© Robert Ogor
10 mai 2003
Modélisation avec UML
© Robert Ogor
© Robert Ogor
11 mai 2003
Modélisation avec UML
© Robert Ogor
Modèle Fonctionnel
Que fait le système
Aspect fonctionnel :
Aspect dynamique :
diagrammes des cas d'
utilisation
diagrammes d' interaction
(séquences, collaboration),
d'états-transitions et d' activité
Séquencement des actions
dans le système
Modèle structurel (objet)
Sur quoi le système agit
Modèle temporel
Aspect statique :
diagramme de
classes et d'objets
© Robert Ogor
12 mai 2003
Modélisation avec UML
Code
exécutable
© Robert Ogor
Rôle de l'
expression des
besoins
Permettre une meilleure compréhension du
système
© Robert Ogor
13 mai 2003
Modélisation avec UML
© Robert Ogor
Contraintes de concurrence
Contraintes de temps de réponse
Contraintes de distribution
Contraintes de performance
Contraintes de répartition
© Robert Ogor
14 mai 2003
Modélisation avec UML
réalisé par
Modèle
d'
analyse Modèle
d'
implémentation
Modèle de
conception
© Robert Ogor
L’analyse
© Robert Ogor
15 mai 2003
Modélisation avec UML
Cas
d’utilisation
Système
Définition
Scénarios des
d'
utilisation fonctionnalités
du système
© Robert Ogor
Analyse du système
Cahier des
Système charges
Cas
d’utilisation Diagramme
de
classes
Propagation des
événements
dans le système Diagramme de collaboration ou de séquences
Diagramme
d'états-transitions
© Robert Ogor
16 mai 2003
Modélisation avec UML
La notation graphique
BUT :
© Robert Ogor
© Robert Ogor
17 mai 2003
Modélisation avec UML
© Robert Ogor
18 mai 2003
Modélisation avec UML
© Robert Ogor
Les Acteurs
Un acteur représente une personne ou un périphérique qui joue un
rôle (interagit) avec le système.
Relation entre acteurs : généralisation (héritage)
Héritage
relation entre acteurs
un bibliothécaire est un abonné
abonné
abonné bibliothécaire
un administrateur est un bibliothécaire
un administrateur est un abonné
Acteur administrateur
bibliothécaire
© Robert Ogor
19 mai 2003
Modélisation avec UML
Emprunter
Regarder la liste
des livres
Réserver
© Robert Ogor
Emprunt
<<include>>
Identification
abonné
<<include>>
Réservation
© Robert Ogor
20 mai 2003
Modélisation avec UML
Réservation
Regarder liste des
Extensionpoints livres
avant le choix du livre <<extend>>
avant le choix du livre
Vérification par
mot passe
Identification
abonné
Vérification par
carte
© Robert Ogor
21 mai 2003
Modélisation avec UML
© Robert Ogor
Le système
Le système définit l'application informatique, il ne contient
donc pas les acteurs, mais les cas d'
utilisation et leur
associations
Gestion de bibliothèque
Réserver un livre
Remettre un livre
Réaliser un emprunt
© Robert Ogor
22 mai 2003
Modélisation avec UML
Réserver un livre
Cas
Client Connaître les livres empruntés d ’utilisation
Remettre un livre
Employé
Réaliser un emprunt
© Robert Ogor
Identification
Ajouter de nouveaux livres par mot de passe
Remettre un livre
Employé
Réaliser un emprunt
© Robert Ogor
23 mai 2003
Modélisation avec UML
Scénarios d'
un cas d'
utilisation
© Robert Ogor
Scénarios d'
un cas d'
utilisation
Réservation d'
un livre
description simplifiée
Le client se présente devant un terminal:
• (1) Le système affiche un message d ’accueil.
• (2) Le client choisit l’opération réservation parmi les différentes opérations
proposées.
• (3) Le système lui demande de s' authentifier.
• (4) Le client donne son identification (nom, mot de passe).
• (5) Le système lui demande de choisir un livre.
• (6) Le client précise le livre qu'il désire.
• (7) Le système lui précise si un exemplaire du livre lui est réservé.
© Robert Ogor
24 mai 2003
Modélisation avec UML
Scénarios d'
un cas d'
utilisation
Réservation d'
un livre description détaillée
© Robert Ogor
Scénarios d'
un cas d'
utilisation
Réservation d'
un livre Cas normal description détaillée
1. (1) Le système affiche un message d ’accueil sur le terminal avec un choix d' opérations
2. (2) Le client choisit l’opération réservation parmi les différentes opérations proposées.
3. (3) Le système lui demande de s' authentifier.
4. (4) Le client donne son identification (nom, mot de passe).
5. (5) Le système demande le titre du livre en donnant la possibilité de choisir dans une
liste.
6. (6) Le client précise le livre qu'
il désire.
7. (7) Le système lui précise que un exemplaire du livre lui est réservé.
variante 1 en (6) le client demande à connaître les livres présents
25 mai 2003
Modélisation avec UML
© Robert Ogor
Variation du scénario
:Système de prêts
Client
Afficher message d ’accueil
Choix de l ’opération réservation
Demande d ’identification du client
Identification du client
© Robert Ogor
26 mai 2003
Modélisation avec UML
Cas d ’utilisation:
Distributeur de billets Cas
d’utilisation
Distributeur de billets
Effectuer un virement
Consulter un compte
Acteur Acteurs
client Gérer le distributeur
gestionnaires
Effectuer la Maintenance
Employé
© Robert Ogor
27 mai 2003
Modélisation avec UML
3) Concepts objets et
diagrammes de classes
© Robert Ogor
La classe
Caractéristiques
attributs
CLASSE
données membres
informations
Personne propriétés
nom
age Famille d'
objets ayant
adresse mêmes caractéristiques
mot de passe et même comportement
nbre livres empruntés
changerAdresse() CLASSE
Comportement
donnerAge() opérations
donnerAdresse() méthodes Personne
vérifierMotDePasse() fonctions
procédures
messages
services
© Robert Ogor
28 mai 2003
Modélisation avec UML
nom : String
âge : Integer
adresse : String
mot de passe : String
nbre livres empruntés : Integer 0<= nbre livres empruntés <=5
<<constructeur>>
Personne(nom:String, âge : Integer
adresse:String, motDePasse:String)
<<caractéristiques>>
changerAdresse (String)
<<authentification>>
vérifierMotDePasse(String) : Boolean
changerMotDePasse(old:String,
new:String)
© Robert Ogor
CLASSE
:Personne
Personne
nom = Alain Dupont
nom age = 45
age adresse = France
Attributs
adresse mot de passe = 4RSA67
mot de passe nbre livres empruntés = 4
nbre livres empruntés
© Robert Ogor
29 mai 2003
Modélisation avec UML
30 mai 2003
Modélisation avec UML
Personne
+ : attribut public
- nom # : attribut protected
- âge - : attribut private
- adresse
# changerAdresse()
# obtenirRue() + : opération public
+ obtenirAge() # : opération protected
- : opération private
© Robert Ogor
31 mai 2003
Modélisation avec UML
Personne
+ : attribut public
- nom # : attribut protected
- âge - : attribut private
- adresse : attribut de classe
- nombrePersonne
# changerAdresse()
# obtenirRue() + : opération public
+ obtenirAge() # : opération protected
+obtenirNombrePersonne() - : opération private
: opération de classe
© Robert Ogor
La réification
Chien Mariage
race époux
age épouse
couleur événement date
entité physique
aboyer() seMarier ()
mordre () divorcer ()
obéir ()
Appartenir Cours
propriétaire professeur
date salle
voiture situation élèves
relation
vendre () assister ()
acheter () quitter ()
prêter ()
© Robert Ogor
32 mai 2003
Modélisation avec UML
PileEntier
- contenu
- hauteur
- taille
© Robert Ogor
Surcharge et polymorphisme
Personne Fichier
nom : String nom : String
age : Integer taille : Integer
adresse : String propriétaire : String
notions : polymorphisme
surcharge
signature
© Robert Ogor
33 mai 2003
Modélisation avec UML
Classes paramétrables
Element
taille : Integer
Pile
+Pile()
+empiler(valeur : Element)
+dépiler () : Element
+nombreElements() : Integer
+estVide (): Boolean return
+estPleine() : Boolean nombreElements() ==taille
<<bind>>(Personne, 100)
Pile Pile
<Integer,34> <Point,20> Guichet
© Robert Ogor
Livre
aPourAuteur Auteur
titre
nom
© Robert Ogor
34 mai 2003
Modélisation avec UML
1
1 (par défaut)
1 (explicite)
ouvrier
*
3 3
dirige
0..1 0 ou 1
multiplicité nom d’association
0 ou plusieurs
*
1..* 1 ou plusieurs
6..28 intervalle
© Robert Ogor
© Robert Ogor
35 mai 2003
Modélisation avec UML
estEmployée
constructeur : emploie
patron
Société leDirecteur : Personne
Nom : Peugeot
employeur
adresse : Sochaux nom = Madec
d
e
i
m
r
p i
l unContremaître : Personne
g
o nom = Simon e
i
e ouvrier
unCadre : Personne
ouvrier
nom = Dupont
© Robert Ogor
Classe d’association
Société
Personne
emploie
Nom Nom
0..1
adresse
* adresse
grade
salaire
Emploi
grade
salaire
Classe d’association
© Robert Ogor
36 mai 2003
Modélisation avec UML
Qualificateurs : restriction de la
cardinalité
gère CompteBancaire
1
Banque * numéroCompte
gère 1
numéroCompte CompteBancaire
Banque
1
gère Fichier
Répertoire 1 * nom
gère 1
1 Fichier
Répertoire nom
© Robert Ogor
appartient
* 1 Personne
CompteChèque
{or}
Société
*
assiste
1 *
Conférence {sous-ensemble} Personne
1
organise *
© Robert Ogor
37 mai 2003
Modélisation avec UML
Attribut dérivé
Personne
Nom
adresse
grade
dateNaissance
{Contexte Personne /age
Inv : age = dateCourante - dateNaissance }
Attribut dérivé
© Robert Ogor
Cours
Enseignant
Salle
Elève
© Robert Ogor
38 mai 2003
Modélisation avec UML
Agrégation Polygone
3..*
Point
{ordonnés}
C'est une association qui exprime un
couplage fort lié à une relation de 1 Titre
subordination, elle est asymétrique du
type ensemble/élément.
1..* Destinataire
Règles permettant de choisir une agrégation : 1
•Est ce une partie de?
*
E-mail
•Les opérations appliquées à l' ensemble sont
elles appliquées à l'
élément? 1 Texte
•Les changements d' états sont-ils liés ? 1..*
1
attaché
Mais Fichier
• un élément agrégé peut être lié à d'
autres classes *
• la suppression de l'
ensemble n' entraîne pas celle de l'
élément *
*
Polycopié
© Robert Ogor
4
Voiture Roue
1 2-5
Carrosserie Porte
1 Moteur 1 Habitacle
© Robert Ogor
39 mai 2003
Modélisation avec UML
Association, agrégation ou
composition ?
1. Règles obligatoires pour l'
agrégation :
• Est ce une partie de?
• Les opérations appliquées au composé sont elles appliquées au composant?
• Les changements d' états sont-ils liés ?
Composition
Fenêtre
scollbar
2 1 contrôle 1 contenu
Ascenceur Bordure Panel
Fenêtre
contrôle : Bordure
contenu : Panel
© Robert Ogor
40 mai 2003
Modélisation avec UML
Navigabilité
Par défaut une association est bidirectionnelle.
Il est possible de réduire la portée en la rendant unidirectionnelle.
En général, ce choix se fait dans la phase de conception.
Agenda Réunion
*
aLieu
TrancheHoraire
fin début
Flèche de navigabilité :
Association unidirectionnelle Date
© Robert Ogor
1 {ordered} 3..*
rôle Polygone Point
+contenu 1
1
nom d’association
agrégation
montre
qualificateur composition
numéro
1
- support 1 Présentation
{frozen}
visibilité Canevas
couleur
texture
changeable densité
© Robert Ogor
41 mai 2003
Modélisation avec UML
Héritage
© Robert Ogor
PRINCIPE
Ne pas modifier les classes déjà écrites cela modifierait
l'
utilisation qui en est faite.
ne pas hésiter à créer des classes, extensions d'autres déjà
validées
© Robert Ogor
42 mai 2003
Modélisation avec UML
Héritage : adaptation
Hérite
MoyenTransport
vitesseLimite
est un désignation
est une sorte de prixHT
annéeConstruction
prixTTC()
obtenirVitesse()
changerPrix()
obtenirAge()
VoitureEssence VoitureDiesel
redéfinition
nombreBougies typeInjecteur
© Robert Ogor
BUT 2
Permettre une factorisation des caractéristiques et des
comportements communs à plusieurs classes
mise en commun des structure des données
mise en commun du code des services
PRINCIPE
Lorsque plusieurs classes ont des caractéristiques et des
comportements communs la création d' une classe
ancêtre permet de regrouper ce qui est commun.
Cette classe ancêtre peut correspondre à une classe
concrète ou à une classe abstraite
© Robert Ogor
43 mai 2003
Modélisation avec UML
Héritage : généralisation
Factorisation des propriétés
Permanent Vacataire
numéroBureau
spécialité nombreVacation
nombreCours nombreCours
nom spécialité
numéroSécu nom
numéroSécu
© Robert Ogor
Héritage : généralisation
Factorisation des propriétés
Enseignant
nombreCours
Spécialité
nom
numéroSécu
Permanent Vacataire
numéroBureau
nombreVacation
© Robert Ogor
44 mai 2003
Modélisation avec UML
Héritage : généralisation
Factorisation des propriétés
Permanent Vacataire
numéroBureau
nombreVacation
© Robert Ogor
Héritage : généralisation
Factorisation des propriétés
Personne
nom
numéroSecu
{disjoint,incomplete}
{disjoint,complete}
Permanent Vacataire
numéroBureau
nombreVacation
© Robert Ogor
45 mai 2003
Modélisation avec UML
{overlapping}
Véhicule
© Robert Ogor
Il n'
y a pas d'
instance de la
classe média . Livre Graphique Vidéo
Un média n’existe qu’en Chanson
durée
tant que livre, chanson, durée largeur
graphique ou vidéo. afficher() hauteur afficher()
afficher()
afficher()
© Robert Ogor
46 mai 2003
Modélisation avec UML
PRINCIPE
Un objet d'
une classe donnée pourra toujours faire
référence à des objets de ses sous classes
(polymorphisme ).
© Robert Ogor
47 mai 2003
Modélisation avec UML
Redéfinition et
liaison dynamique
Personne
nom
numéroSecu
changerAdresse()
Permanent Vacataire
numéroBureau
Redéfinition nombreVacation
© Robert Ogor
48 mai 2003
Modélisation avec UML
Conformante
Première définition :
Se dit d’une classe plus spécialisée
Exemple
Un Enseignant est conformant à une Personne
Utilisation
Un objet conformant à un autre peut être utilisé à sa
place sans pour autant déclencher d'
erreur de type
© Robert Ogor
Exemple de conformante
void acheterMaison(Personne acheteur)
{… Le paramètre peut être
acheteur.changerAdresse(); abstrait ou concret
};
Personne jean;
Avocat pierre;
Vacataire paul;
acheterMaison(jean) ; // licite car jean est une Personne
acheterMaison(pierre) ; // licite car pierre est conformant à Personne
acheterMaison(paul) ; // licite car paul est conformant à Personne
© Robert Ogor
49 mai 2003
Modélisation avec UML
© Robert Ogor
© Robert Ogor
50 mai 2003
Modélisation avec UML
Les Interfaces
© Robert Ogor
Interface
<<interface>>
Déplaçable
opération, saPlace ()
méthode, avancer ()
service reculer ()
sans corps monter ()
descendre ()
Une interface n’est PAS une classe Elle ne peut pas servir à créer
C’est une liste de services un objet
51 mai 2003
Modélisation avec UML
Implémentation d'
interface
<<interface>>
Savoir Faire
Déplaçable
défini
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()
Implémentation et dépendance
Polygone Transporteur
sommets
saPlace ()
avancer ()
reculer ()
monter () Déplaçable
descendre ()
périmètre ()
Savoir Faire
© Robert Ogor
52 mai 2003
Modélisation avec UML
Interface •Exemple :
• Une table de hascode exige que ses éléments
soient "comparables" et soient "hashables", c'
est à
<<interface>>
Comparable
dire que l'
élément connaisse une fonction de
hascode.
estEgal()
<<uses>> Exige ce comportement
estDifférent()
estPlusPetit()
estPlusGrand()
<<interface>>
Hashable
TableHashCode
implémente hashcode()
1
String contient
estEgal()
hashcode()
*
…
© Robert Ogor
<<interface>>
Comparable <<interface>>
Hashable
estEgal()
estDifférent() hashcode()
estPlusPetit() Exige ce comportement
estPlusGrand()
Hashable
String
* contient
TableHashCode
estEgal()
hashcode() Comparable
…
© Robert Ogor
53 mai 2003
Modélisation avec UML
Les Paquetages
© Robert Ogor
54 mai 2003
Modélisation avec UML
<<import>>
partie Motif
Motif
Partie Microsoft
Window Window
<<import>>
© Robert Ogor
paquetage : import et
java
access
Editeur
awt
event
Simulateur
ActionEvent <<import>>
event :
ActionEvent
© Robert Ogor
55 mai 2003
Modélisation avec UML
Diagrammes de classes de la
gestion de bibliothèque,
recherche à partir du cahier des
charges.
© Robert Ogor
© Robert Ogor
56 mai 2003
Modélisation avec UML
© Robert Ogor
57 mai 2003
Modélisation avec UML
© Robert Ogor
58 mai 2003
Modélisation avec UML
Les associations
1 1.*
Bibliothèque
employeur prêteur
1 1
est inscrit
emploie contient
connaît
1..* employé 1..* 1.* emprunteur
0..2 a réservé 1
Bibiothécaire Livre
0..5 a emprunté 1 Adhérent
1
livreEmprunté lecteur
1..*
a réalisé 0..*
Prêt
© Robert Ogor
© Robert Ogor
59 mai 2003
Modélisation avec UML
1 Prêt
a réalisé 0..* dateDebut
dateFin
Personne
nom
adresse
© Robert Ogor
4) Modèle dynamique
Diagramme de séquence
Diagramme de collaboration
Diagramme d’états
© Robert Ogor
60 mai 2003
Modélisation avec UML
Modèle dynamique :
Le modèle dynamique montre le comportement Système
du système et l'évolution des objets dans le
temps.
événement :
Quelque chose qui se produit à un moment donné dans le temps, et qui n'a
pas de durée.
© Robert Ogor
© Robert Ogor
61 mai 2003
Modélisation avec UML
Scénarios
d'utilisation
Diagramme
de
classes
Diagramme de
Conception
collaboration
Diagramme de Diagramme
séquences d'états
© Robert Ogor
événement
synchrone asynchrone
© Robert Ogor
62 mai 2003
Modélisation avec UML
retour d'
appel Un message synchrone peut être un appel de
procédure, le retour peut être représenté (optionnel, le
retour est implicite)
asynchrone L'expéditeur continue son exécution pendant le
<=UML1.3 traitement du message
>=UML1.4
© Robert Ogor
© Robert Ogor
63 mai 2003
Modélisation avec UML
Diagramme de séquence
© Robert Ogor
Synchro de retour
contrôle
concurrent
Mélange de
onRefait ( ) Destruction de l'
objet contrôle
© Robert Ogor
64 mai 2003
Modélisation avec UML
Diagramme de séquence :
Réserver un livre
Réserver un Livre
Client
:Système de prêts :Bibliothèque l:Livre a:Adhérent
reserverLivre(nom,
motPasse,nomLivre)
a=authentifierAdherent(nom, motPasse)
a=trouverAdherent(nom)
b=authentifier(motPasse)
[a] b2=peutReserver()
[b2] l=trouverLivre(nomLivre)
[l]b3=reserver(l,a)
b3=reserver(a) reserver(l)
© Robert Ogor
authentifierAdherent()
trouverAdherent()
est inscrit
trouverLivre()
reserver() 1..* emprunteur
1 contient
1..* 0..2 a réservé 1 Adhérent
Livre livresRéservés
numéro
titre 0..5 a emprunté 1
livresEmpruntés lecteur authentifier()
numero peutReserver()
reserver()
reserver()
SystèmePrêt *
reserverLivre()
Personne
nom
adresse
© Robert Ogor
65 mai 2003
Modélisation avec UML
Les Diagrammes de
collaborations entre classes
© Robert Ogor
Diagramme de collaborations
Le diagramme de collaborations sous une forme distincte du diagramme de
séquences représente les interactions entre classes en mettant moins en
évidence l'
aspect temporel.
L'aspect temporel n'est pas complètement caché car chaque message est
numéroté.
Système
1 2
Le flot de données intervenant
5 3
dans ces interactions peut 4
être précisé.
6
© Robert Ogor
66 mai 2003
Modélisation avec UML
Diagramme de collaboration
Réserver un livre
4.1 : reserver(a)
a: Adhérent
l: Livre
4.1.1 : reserver(l)
© Robert Ogor
Diagrammes de classes de la
gestion de bibliothèque,
recherche à partir des cas
d'utilisation
© Robert Ogor
67 mai 2003
Modélisation avec UML
classe frontière
La classe qui permet au système de communiquer avec le monde réel,
elle est à la frontière du système, elle se conçoit en général par une
réception Commande
interface graphique, nous la représentons par l' icône suivante
classe entité
La classe qui mémorise et gère des données, par exemples
les livres présents, les prêts effectuées, nous la représentons
par par l'icône suivante stockage Commande
classe contrôle
La classe qui réalise le contrôle nécessaire pour interpréter le
scénario décrivant un cas d' utilisation gestion Commande
© Robert Ogor
abonné IU réservation
Livres
© Robert Ogor
68 mai 2003
Modélisation avec UML
Livre Livre
estPrêté libre
estRéservé emprunt
Livre Livre
réservé prêté
Un objet passe dans un état donné par l' événement qui modifie
ses variables, et quitte cet état par un autre événement qui les
modifie à nouveau. Ce sont des transitions d' états.
© Robert Ogor
Livre Livre
réservé prêté
emprunt
© Robert Ogor
69 mai 2003
Modélisation avec UML
Occupé
do : jouer tonalité occupé
© Robert Ogor
action
Déconnecté transition
© Robert Ogor
70 mai 2003
Modélisation avec UML
ETAT n
© Robert Ogor
Garde
garde
premier chiffre
chiffre[!dernier]
Composant chiffre [dernier && faux numéro] Message enregistré
do : jouer message
Connectant raccroche
do : trouver connexion
71 mai 2003
Modélisation avec UML
réservation[nbreRéservation =1]
Emprunt
[nbreEmprunt =4]
Rendre un livre
Annulation [nbreRéservation <2]
réservation
Emprunt[nbreEmprunt =4]
Adhérent max réservation Adhérent max prêt
Rendre un livre
[nbreRéservation =2]
© Robert Ogor
5) Conception
composants et déploiement
© Robert Ogor
72 mai 2003
Modélisation avec UML
La notion de composant
Dans le monde du bâtiment, le modèle de l ’architecte (logique) permet de
visualiser, spécifier et documenter sur papier les caractéristiques de la future
construction :
place des murs, des fenêtres, etc…
Lors de la construction, on utilise des composants fenêtres, portes, murs. Ce
sont des choses physiques qui existent dans le monde réel.
Ils rendent des services mais définissent leurs exigences (taille, espace, etc.).
De même, dans un système informatique, le modèle logique dans une
application permet de visualiser, spécifier et documenter la structure et le
comportement des entités qui collaborent.
La construction va s ’appuyer sur des composants qui existent dans le monde
des ordinateurs : librairies, fichiers, tables, documents exécutables, etc
© Robert Ogor
Hello.class
Hello.java
Hello.html
Hello.jpg
dépendance
© Robert Ogor
73 mai 2003
Modélisation avec UML
Interface et composant
Un composant offre une interface, mais exige la
disposition de certains services
imageUpdate(): Boolean
dépendance réalisation
Image.java Component.java
ImageObserver
Component.java
© Robert Ogor
Les diagrammes de
composants
© Robert Ogor
74 mai 2003
Modélisation avec UML
© Robert Ogor
Les diagrammes de
composants
<<base donnée>>
lecteurCartes
tickets
Vendeur
ticket
InterfacedeContrôle
venteIndividuel venteGroupe
InterfaceUsager
InterfaceEmployé
administrateur
usager
employé
© Robert Ogor
75 mai 2003
Modélisation avec UML
Les diagrammes de
déploiement
© Robert Ogor
© Robert Ogor
76 mai 2003
Modélisation avec UML
Les diagrammes de
déploiement
processeur processeur
distributeur Liaison TCP/IP ordinateur
central
Liaison parallèle
Liaison USB
processeur
Distributeur banque
lecteur de billets
de carte
© Robert Ogor
Les diagrammes de
déploiement de l'
application
Serveur Liaison TCP/IP Serveur
stockage gestion Personnes
documents
Liaison TCP/IP
Liaison série
protocole HTTP
lecteur
Client internet
de carte
© Robert Ogor
77 mai 2003
Modélisation avec UML
Les diagrammes de
déploiement de l'
application
document
Livre Revues
BandeDessinées
Résumé
© Robert Ogor
Conception
78 mai 2003
Modélisation avec UML
Conception système
conception
système
Structure du
logiciel
Diagramme
des
Modèle composants
structurel
Diagramme
de Structure du
classes matériel
Diagramme
de
déploiement
© Robert Ogor
Ajoute,complète ou modifie
Conception objet les méthodes
les classes
les attributs
conception
objet Traduit les différentes associations
Modèle
structurel Transpose le modèle dynamique
Diagramme de dans le corps des méthodes
classes
analyse
Modèle Diagramme de
dynamique classes conception
Diagramme
d’état
Transformation
ou adaptation
© Robert Ogor
79 mai 2003
Modélisation avec UML
Conception
1 Gestion Utilisateurs
Gestion réservations 1 1
+1 1 1 1
+*
Utilisateurs
* #adresse
Réservations #age
1 1
#nbreReservation
Gestion LIvres #nbrePret
IU réservation
#motPasse
abonné 1
1
*
Échéancier Livres
© Robert Ogor
Conception du diagramme de
classes
1
Bibliothèque
1 1 1 1
*
Utilisateurs
*
Réservations
1
IU réservation 1
*
Livres
abonné
Échéancier
Les différentes classes de contrôle sont regroupées dans une seule que l' on
appelle Bibliothèque.
Cette solution n'est pas possible si les livres et les utilisateurs sont sur des
serveurs différents
Classe frontière (interface utilisateur).
Classe entité (base des livres, base des utilisateurs … )
© Robert Ogor
80 mai 2003
Modélisation avec UML
Utilisateurs est une table dans une Ou bien, il est défini, par exemple en
base de données Java, par une liste d' utilisateurs, au
Ce choix est guidé par la persistance. programmeur d' assurer la persistance
par des fichiers.
*
Utilisateurs
© Robert Ogor
Conclusions
© Robert Ogor
81 mai 2003
Modélisation avec UML
Bibliographie
Livres
© Robert Ogor
82 mai 2003