Anda di halaman 1dari 82

Modélisation avec UML

Modélisation avec UML 1

Modélisation avec UML

© Robert Ogor

Modélisation avec UML 2

Vue générale du cours


1) Introduction au langage de modélisation UML
• points de vue et diagrammes
• cas d'utilisation, analyse, conception, implémentation
2) Le diagramme des cas d’utilisations
• acteur
• cas d'utilisation et scénario
3) Notion de classes et objets et leur diagramme
• introduction aux classes, aux objets
• notion de relation, de composition et d'héritage
• recherche d'un diagramme de classes à partir du cahier des charges
4) Modèle dynamique
• diagramme de séquences, de collaboration, d' état et d'
activité
• réalisation des cas d' utilisation par les diagrammes de séquences
• réalisation des cas d' utilisation par les diagrammes de collaboration
5) Conception
• diagramme de déploiement et de composants
6) Le langage de contrainte OCL

© Robert Ogor

1 mai 2003
Modélisation avec UML

Modélisation avec UML 3

1) Introduction au langage de
modélisation UML

© Robert Ogor

Modélisation avec UML 4

Unified Modeling language


OMT-2
Booch’93 OOSE
James
Grady Booch Ivar Jacobson
Rumbaugh

OOPSLA 95 UML 0.8 Partenaires Divers


Task Force
WWW Juin96 UML 0.9
UML 1.2
Proposé à un standard OMG fin1997 UML 1.0 1998 UML 1.3
2001 UML 1.4
Standard OMG, ADTF fin1997 UML 1.1 2003 UML 1.5
2005 UML 2.0
© Robert Ogor

2 mai 2003
Modélisation avec UML

Modélisation avec UML 5

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

Modélisation avec UML 6

Les principes de la
modélisation
1) Le modèle doit être connecté au monde réel

2) Un modèle peut être exprimé avec différents


niveaux de précision

3) Un simple modèle n' est pas suffisant, il y a


plusieurs façons de voir un système.
ƒ plan de masse
ƒ vue de face, de coté, …
ƒ plan des niveaux
ƒ plan électrique
ƒ plan de plomberie
ƒ plan des calculs de construction

© Robert Ogor

3 mai 2003
Modélisation avec UML

Modélisation avec UML 7

Qu’apporte la modélisation
objet

ƒ Plus grande indépendance du modèle par


rapport aux fonctionnalités demandées.

ƒ Des fonctionnalités peuvent être rajoutées ou


modifiées, le modèle objet ne change pas.

ƒ Plus proche du monde réel.

© Robert Ogor

Modélisation avec UML 8

Les objectifs d’UML


• Représenter des systèmes entiers
• Etablir un couplage explicite entre les concepts et les
artefacts exécutables
• Prendre en compte les facteurs d’échelle
• Créer un langage de modélisation utilisable à la fois
par les humains et les machines

Recherche d’un langage commun :


ƒ Utilisable par toutes les méthodes
ƒ Adapté à toutes les phases du développement
ƒ Compatible avec toutes les techniques de réalisation
© Robert Ogor

4 mai 2003
Modélisation avec UML

Modélisation avec UML 9

UML un langage

ƒ UML n ’est pas une méthode

ƒ UML est un langage de modélisation objet


ƒ UML a été adopté par toutes les méthodes
objet

ƒ UML est dans le domaine public, c’est une


norme

© Robert Ogor

Modélisation avec UML 10

UML un langage pour

ƒ 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

Modélisation avec UML 11

UML et les domaines


d’utilisation

ƒ Systèmes d'information des entreprises


ƒ Les Banques et les services financiers
ƒ Télécommunications
ƒ Transport
ƒ Défense et aérospatiale
ƒ Scientifique
ƒ Applications distribuées par le WEB

© Robert Ogor

Modélisation avec UML 12

Les trois éléments de base en


UML
1) les blocs de base pour construire Entités structurelles
ƒ les entités utilisées Entités de comportement
ƒ la notion de relation Entités de regroupement
ƒ les diagrammes Entité d'annotation

2) les règles à observer pour utiliser ces blocs de base


ƒ règles sémantiques
ƒ règles de présentation

3) les mécanismes communs


ƒ spécification
ƒ présentation
ƒ extension des modèles

© Robert Ogor

6 mai 2003
Modélisation avec UML

Modélisation avec UML 13

Les entités structurelles


Chien
observateur emprunte
race Comparable
age Cas d’utilisation
couleur Interface Collaboration

aboyer()
mordre ()
obéir ()

Classe
Noyau Serveur
Producteur

suspend()
run() Nœud
Composant
Classe Active

© Robert Ogor

Modélisation avec UML 14

Les entités de comportement

appel emprunté

Message Etat

Les entités de groupement

Accès BD Le livre a été


emprunté
Note
Paquetage
Les entités de notation
© Robert Ogor

7 mai 2003
Modélisation avec UML

Modélisation avec UML 15

Les relations

dépendance

association

héritage

réalisation

© Robert Ogor

Modélisation avec UML 16

Stéréotypes et icônes associées


<<contrôle>>
Gestion Commande
gestion Commande

<<entité>>
Stockage Commande
stockage Commande

<<frontière>>
Réception Commande
réception Commande

© Robert Ogor

8 mai 2003
Modélisation avec UML

Modélisation avec UML 17

Les 9 diagrammes en UML


Diagrammes

Cas Classes Etats- Activité Déploiement


d'utilisation Transitions

Objets Séquences Collaboration Composants

© Robert Ogor

Modélisation avec UML 18


5 façons de voir un système
(4+1 vues de Kruchten)
Aspect dynamique : Aspect statique :
Aspect statique :
d'
interaction les paquetages
classes et objets
(séquences, collaboration), les méthodes
paquetages
d'états-transitions et d'
activité les threads

Vue logique Vue implantation

Vue des cas


d'utilisation

Vue des processus Vue de déploiement

Aspect parallélisme : Aspect fonctionnel :


Cas d' utilisations Aspect répartition :
threads
acteurs diagramme de
processus
classes déploiement
tâches
collaboration nœuds, modules
interactions

© Robert Ogor

9 mai 2003
Modélisation avec UML

Modélisation avec UML 19

Point de vue des


cas d’utilisation
ƒ Vue du système par ses utilisateurs finaux
ƒ Regroupe le comportement du système selon
ƒ Priorité: critique, important, accessoire
ƒ Risques à circonscrire
ƒ Options disponibles
ƒ Couverture de l’architecture
ƒ Autres objectifs tactiques et contraintes

© Robert Ogor

Modélisation avec UML 20

Point de vue logique

ƒ 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

Modélisation avec UML 21

Point de vue processus

ƒ Décomposition en tâches et processus


ƒ Regroupement des groupes de processus
ƒ Communication
ƒ Information sur les caractéristiques suivantes
ƒ Disponibilité, fiabilité
ƒ Intégrité, performance
ƒ Contrôle

© Robert Ogor

Modélisation avec UML 22

Point de vue implantation


ƒ Décomposition en modules et niveaux
ƒ Regroupement de modules en paquetages
ƒ Organisation des sous-systèmes en niveaux pour :
ƒ Réduire le couplage et la visibilité
ƒ Augmenter la robustesse
ƒ Information sur les caractéristiques suivantes :
ƒ Facilité de développement
ƒ Potentiel de réutilisation
ƒ Gestion de configuration

© Robert Ogor

11 mai 2003
Modélisation avec UML

Modélisation avec UML 23

Point de vue déploiement

ƒ Décomposition en nœuds d’exécution


ƒ Rôle d’un nœud
ƒ Inter-connectivité, topologie
ƒ Information sur les caractéristiques suivantes :
ƒ Performance, disponibilité
ƒ Installation, maintenance

© Robert Ogor

Modélisation avec UML 24

Les trois composantes d’une


modélisation

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

Modélisation avec UML 25

Phases de la modélisation Cahier des


charges

S ’accorder sur ce qui doit être fait dans le système


Expression des besoins

Analyse Comprendre les besoins et les décrire dans le système

Conception S ’accorder sur la manière dont le système doit être construit

Implémentation Codage du résultat de la conception

Test Le système est-il conforme au cahier des charges ?

Code
exécutable
© Robert Ogor

Modélisation avec UML 26

Rôle de l'
expression des
besoins
ƒ Permettre une meilleure compréhension du
système

ƒ Comprendre et structurer les besoins du client


ƒ clarifier, filtrer et organiser les besoins, ne pas chercher l’exhaustivité

ƒ Une fois identifiés et structurés, ces besoins :


ƒ définissent le contour du système à modéliser (ils précisent le but à
atteindre),
ƒ permettent d'identifier les fonctionnalités principales (critiques) du
système.

© Robert Ogor

13 mai 2003
Modélisation avec UML

Modélisation avec UML 27

Expression des besoins

ƒ Comprendre le contexte du système en


définissant un modèle du domaine et du métier
ƒ Recenser les besoins fonctionnels et les définir
par des cas d'utilisations
ƒ Noter les contraintes, exigences non
fonctionnelles.

Le modèle du domaine regroupe les objets qui se situent


dans le contexte du système :
- entités existantes ou événements qui s'
y produisent.

© Robert Ogor

Modélisation avec UML 28

Exigences non fonctionnelles

ƒ 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

Modélisation avec UML 30

Dépendances entre phases de


modélisation
modèle cas vérifié par
d'
utilisation Modèle
de test
spécifié par
implémenté par

réalisé par
Modèle
d'
analyse Modèle
d'
implémentation

Modèle de
conception
© Robert Ogor

Modélisation avec UML 31

L’analyse

ƒ Le but de l’analyse est de traduire dans un langage proche de celui des


informaticiens les modèles exprimés dans l'
expression des besoins.

ƒ Cependant pour rester compréhensible par les clients ou utilisateurs, il


n'
intervient que des entités du domaine (métier) considéré.

ƒ Elle sert d'interface, avec l'expression des besoins, aux dialogues et


aux contrats avec les clients et les utilisateurs.

ƒ L'analyse doit servir de support pour la conception, l'implémentation et


la maintenance.

© Robert Ogor

15 mai 2003
Modélisation avec UML

Modélisation avec UML 32

Expression des besoins :


vue orientée utilisateur

Cahier des Dialogue clients et


charges futurs utilisateurs

Cas
d’utilisation
Système

Définition
Scénarios des
d'
utilisation fonctionnalités
du système

© Robert Ogor

Modélisation avec UML 33

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

Modélisation avec UML 34

La notation graphique

BUT :

ƒ Modéliser les objets, les relations entre objets,


les interactions avec le système.

ƒ Servir de support de communication entre


l'
analyste, le client, et les utilisateurs.

© Robert Ogor

Modélisation avec UML 35

Cahier des charges : gestion de


bibliothèque
ƒ Un gérant de bibliothèque désire automatiser la gestion des prêts.
ƒ Il commande un logiciel permettant aux utilisateurs de connaître les livres
présents, d' en réserver jusqu'
à 2. L'
adhérent peut connaître la liste des
livres qu'
il a empruntés ou réservés.
ƒ L'adhérent possède un mot de passe qui lui est donné à son inscription.
ƒ L'emprunt est toujours réalisé par les employés qui travaillent à la
bibliothèque. Après avoir identifié l'
emprunteur, ils savent si le prêt est
possible (nombre max de prêts = 5), et s' il a la priorité (il est celui qui a
réservé le livre).
ƒ Ce sont les employés qui mettent en bibliothèque les livres rendus et les
nouveaux livres. Il leur est possible de connaître l'
ensemble des prêts
réalisés dans la bibliothèque.

© Robert Ogor

17 mai 2003
Modélisation avec UML

Modélisation avec UML 36

2) Le diagramme des Use Cases


ou des cas d ’utilisation

Ce que doit faire le système


sans spécifier comment il le fait

© Robert Ogor

Modélisation avec UML 37

But des Use Cases


Les cas d'utilisation représentent les
fonctionnalités que le système doit savoir faire.
Système
Chaque cas d' utilisation peut être complèté par
un ensemble d' interactions successives d' une
entité en dehors du système (l’utilisateur) avec le
système lui même.

Les Uses Cases permettent :


• De connaître le comportement du système sans spécifier comment ce
comportement sera réalisé.
• De définir les limites précises du système
• Au développeur de bien comprendre l' attente des utilisateurs et les
experts du domaine.

De plus les Use Cases sont :


• Des instruments de validation et de test du système en cours et en fin
de construction.
© Robert Ogor

18 mai 2003
Modélisation avec UML

Modélisation avec UML 38

Modèle des cas d'


utilisations
ƒ Un diagramme de cas d’utilisation définit :
ƒ le système
ƒ les acteurs
ƒ les cas d'utilisations
ƒ les liens entre acteurs et cas d'utilisations

ƒ Un modèle de cas d'utilisation se définit par :


ƒ des diagrammes de cas d’utilisation
ƒ une description textuelle des scénarios d'utilisation
ƒ une description de ces scénarios par :
ƒ les diagrammes de séquences
ƒ les diagrammes de collaboration

© Robert Ogor

Modélisation avec UML 39

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

Modélisation avec UML 40

Les cas d’utilisation (use-case)


ƒ Un cas d’utilisation est un moyen de représenter les différentes possibilités
d' utiliser un système.
ƒ Il exprime toujours une suite d' interactions entre un acteur et l'
application.
ƒ Il définit une fonctionnalité utilisable par un acteur.

Emprunter

Regarder la liste
des livres
Réserver

© Robert Ogor

Modélisation avec UML 41

Organisation des Use Cases :


include
ƒ La relation "include" précise qu'un cas d’utilisation contient
le comportement défini dans un autre cas d’utilisation.

ƒ Cette relation permet de mettre en commun des


comportements communs à plusieurs cas d'
utilisation..

Emprunt
<<include>>

Identification
abonné

<<include>>
Réservation

© Robert Ogor

20 mai 2003
Modélisation avec UML

Modélisation avec UML 42

Organisation des Use Cases :


extend
ƒ La relation "extend" précise qu'un cas d’utilisation peut dans certains
cas augmenter le comportement d'
un autre cas d'
utilisation.
ƒ Une condition devra valider cette augmentation.
ƒ Le point d'utilisation de cette augmentation peut être défini dans
un "point d'
extension".

Réservation
Regarder liste des
Extensionpoints livres
avant le choix du livre <<extend>>
avant le choix du livre

ƒ Dans cet exemple, le cas d'utilisation "Regarder la liste des livres"


augmente le cas d' utilisation d'
une réservation, avant le choix du livre,
si l'
utilisateur en fait la demande.
© Robert Ogor

Modélisation avec UML 43

Organisation des Use Cases :


généralisation
ƒ Cette relation "est un" introduit la notion d’héritage.
ƒ Les cas d'utilisation "Vérification par mot passe" et "Vérification par
carte" sont des spécialisations du cas d' utilisation "Identification
abonné".
ƒ Autrement dit : si l'
on dit que l'
on fait une "Identification abonné", ce
peut être une "Vérification par carte" ou une "Vérification par mot
passe". héritage

Vérification par
mot passe
Identification
abonné
Vérification par
carte

© Robert Ogor

21 mai 2003
Modélisation avec UML

Modélisation avec UML 44

Modélisation d’un système:


obtenir les cas d' utilisation
ƒ Identifier les acteurs qui utilisent, qui gèrent, qui
exécutent des fonctions spécifiques.
ƒ Organiser les acteurs par relation d’héritage.
ƒ Pour chaque acteur, rechercher les cas d’utilisation
avec le système. En particulier, ceux qui modifient
l’état du système ou qui attendent une réponse du
système.
ƒ Ne pas oublier les variantes d’interactions (cas
d’erreur, cas interdits).
ƒ Organiser ces interactions par héritage, par
utilisation et par extension.

© Robert Ogor

Modélisation avec UML 45

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

Connaître les livres empruntés

Connaître les livres présents

Ajouter de nouveaux livres

Remettre un livre

Réaliser un emprunt

© Robert Ogor

22 mai 2003
Modélisation avec UML

Modélisation avec UML 46

Les diagrammes de cas d’utilisation


Bibliothèque

Réserver un livre
Cas
Client Connaître les livres empruntés d ’utilisation

Acteurs Connaître les livres présents

Ajouter de nouveaux livres

Remettre un livre
Employé
Réaliser un emprunt

© Robert Ogor

Modélisation avec UML 47

Les diagrammes de cas d’utilisation


Bibliothèque

Connaître les livres empruntés

<< include >>


Réserver un livre <<include>>
Extension point
avant la réservation Identification
Client
<<extends>>
Identification
Connaître les livres présents par carte

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

Modélisation avec UML 48

Scénarios d'
un cas d'
utilisation

ƒ La description d’un cas d’utilisation se fait par des scénarios


qui définissent la suite logique des interactions qui
constituent ce cas.
ƒ On peut définir des scénarios simples ou des scénarios plus
détaillés faisant intervenir les variantes, les cas d'erreurs,
etc.
ƒ Cette description se fait de manière simple, par un texte
compréhensible par les personnes du domaine de
l'
application.
ƒ Elle précise ce que fait l'acteur et ce que fait le système
ƒ La description détaillée pourra préciser les contraintes de
l'
acteur et celles du système.

© Robert Ogor

Modélisation avec UML 49

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

Modélisation avec UML 50

Scénarios d'
un cas d'
utilisation
Réservation d'
un livre description détaillée

Pré-conditions: Le client doit être inscrit à la bibliothèque


Le client ne doit pas avoir atteint le nombre maximum de
réservation
Un exemplaire du livre doit être enregistré

Post-conditions: (Si l'


opération s'est bien déroulée)
Le client a une réservation supplémentaire
Le nombre d' exemplaires disponibles du livre est
décrémenté de 1

© Robert Ogor

Modélisation avec UML 51

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

variante 2 en (4) le client n'


est pas reconnu, dans ce cas, tant qu'
il n'
est pas
reconnu, on lui redemande de s' authentifier
variante 3 en (4) le client est reconnu, mais le mot de passe est incorrect,
il peut avoir 5 essais, par la suite le client sera interdit pendant 1 heure.
variante 4 en (4) le client n'
a plus le droit de réserver

variante 5 en (7) le livre n'


est pas libre
© Robert Ogor

25 mai 2003
Modélisation avec UML

Modélisation avec UML 52

Scénario par diagramme de


séquences
ƒ Suite aux descriptions textuelles, le scénario peut être
représenté en utilisant un diagramme de séquences.
Le diagramme de séquences permet :
ƒ de visualiser l’aspect temporel des interactions
ƒ de connaître le sens des interactions (acteur vers système ou contraire)

Client :Système de prêts

Afficher message d ’accueil


Choix de l ’opération réservation
Demande d ’identification du client
Identification du client temps
Demande identification du livre
Réserver un livre
Identification du livre
Message « le livre est réservé »

© Robert Ogor

Modélisation avec UML 53

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

Refus trop de livres réservés


Réserver un livre

© Robert Ogor

26 mai 2003
Modélisation avec UML

Modélisation avec UML 54

Cas d ’utilisation:
Distributeur de billets Cas
d’utilisation
Distributeur de billets

Effectuer un virement

Client Retirer l ’argent


Banque

Consulter un compte
Acteur Acteurs
client Gérer le distributeur
gestionnaires

Effectuer la Maintenance
Employé

© Robert Ogor

Modélisation avec UML 55

Diagramme de séquences Use


Case Retirer de l'
argent
Afficher message d ’accueil :Distributeur de billets
Client Insère la carte
Demande de mot de passe
Entre mot de passe
Retirer Demande type opération
l ’argent Entre demande retrait
Demande somme
Entre somme
Distribue l'
argent
Demande prendre les billets
Prendre les billets
Imprimer le reçu
Ejecter la carte
Demande de prendre la carte
Prendre la carte
Afficher message d ’accueil
© Robert Ogor

27 mai 2003
Modélisation avec UML

Modélisation avec UML 56

3) Concepts objets et
diagrammes de classes

© Robert Ogor

Modélisation avec UML 57

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

Modélisation avec UML 58

La classe et ses membres


Personne

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

Modélisation avec UML 59


instance de
La classe et l’objet
un objet

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

changerAdresse() Comportement : Personne


obtenirAge()
obtenirAdresse() André Roué
vérifierMotDePasse() 25
France
6FT34
0
:Personne

© Robert Ogor

29 mai 2003
Modélisation avec UML

Modélisation avec UML 60

Protection des attributs et des


opérations : principe de l' encapsulation
ƒ Peut-on accéder à tous les attributs ou à toutes les
méthodes d' un objet ? NON
ƒ La classe définit ce qui est accessible.
C'est le principe de l'
encapsulation.
Un objet complexe ne peut être utilisé qu' au travers de ce
qui est accessible.
Exemple :
ƒ On ne peut utiliser une voiture qu'à travers son volant,
son frein, son accélérateur, etc.
ƒ L’accès au carburateur est impossible sauf par les
méthodes qui le font de manière cohérente (méthode
accélérer de l’accélérateur).
© Robert Ogor

Modélisation avec UML 61

Protection des attributs et des


opérations : usage et notation
ƒ Les attributs sont en général inaccessibles (secret).
ƒ Ils sont alors qualifiés de :
ƒ "protected" (notation UML : # )
ƒ ou "private" (notation UML: - )
ƒ Leur lecture ou modification n'est possible qu'au travers de
certaines opérations (accesseurs : changerAdresse(),
obtenirAge(), etc.)
ƒ Les opérations sont en général accessibles
(publiques) :
ƒ Elles sont alors qualifiées de :
ƒ "public" (notation UML: + )
ƒ Certaines opérations peuvent cependant être privées
et certains attributs peuvent être publics (non
souhaitable / principe d’encapsulation)
© Robert Ogor

30 mai 2003
Modélisation avec UML

Modélisation avec UML 62

Protection des attributs et des


opérations : notation UML
CLASSE

Personne
+ : attribut public
- nom # : attribut protected
- âge - : attribut private
- adresse

# changerAdresse()
# obtenirRue() + : opération public
+ obtenirAge() # : opération protected
- : opération private

© Robert Ogor

Modélisation avec UML 63

Attributs et opérations de classe


Personne Le nombre de livres empruntables n' est pas
- nom une caractéristique d'Alain Dupont (objet).
- age C'est une caractéristique valable pour
- adresse l'
ensemble des personnes (la classe).
- mot de passe
- nbreLivresEmpruntés
- nbreLivresEmpruntables = 5
une_personne:Personne
+ changerAdresse()
+ obtenirAge() nom = Alain Dupont
+ obtenirAdresse() age = 45
+ vérifierMotDePasse() adresse = France
+ getNbLivresEmpruntables() mot de passe = 4RSA67
nbreLivresEmpruntés= 4

La méthode getNbLivresEmpruntables() utilise la valeur


nbreLivresEmpruntables connue par la classe. Cette méthode peut être
appliquée directement à la classe Personne et bien sûr aussi aux objets
instances de Personne.
© Robert Ogor

31 mai 2003
Modélisation avec UML

Modélisation avec UML 64

Attributs et opérations de classe


Notation UML
CLASSE

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

Modélisation avec UML 65

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

Modélisation avec UML 66

Modèle du type abstrait Pile

PileEntier
- contenu
- hauteur
- taille

+empiler (valeur : Integer)


+dépiler ()
+elementSommet () : Integer
+nombreElements : Integer
+estVide : Boolean

© Robert Ogor

Modélisation avec UML 67

Surcharge et polymorphisme

Personne Fichier
nom : String nom : String
age : Integer taille : Integer
adresse : String propriétaire : String

changerAdresse(sonAdresse : String) imprimer()


obtenirAge() : entier
imprimer(nombreLignes : entier)
obtenirAdresse() : String
imprimer()

notions : polymorphisme
surcharge
signature
© Robert Ogor

33 mai 2003
Modélisation avec UML

Modélisation avec UML 68

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

Modélisation avec UML 69


Association entre classes
Sens de lecture
Nom d’association du nom d’association

Livre
aPourAuteur Auteur
titre
nom

unLivre : Livre aPourAuteur unHomme : Auteur


titre = La peste nom = Camus

© Robert Ogor

34 mai 2003
Modélisation avec UML

Modélisation avec UML 70

Multiplicité, nom d’association, nom


de rôle
nom de rôle
Société
Personne
nom employeur employé patron
patron
nom
adresse 0..1 emploie
estEmployée
* adresse
grade
0..1

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

Modélisation avec UML 71

Lien entre objets

constructeur : Société emploie


nom : Peugeot contremaître : Personne
adresse : Sochaux employeur employé
nom = Dupont

© Robert Ogor

35 mai 2003
Modélisation avec UML

Modélisation avec UML 72

Lien entre objets

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

Modélisation avec UML 73

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

Modélisation avec UML 74

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

Modélisation avec UML 75

Contraintes sur les associations

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

Modélisation avec UML 77

Attribut dérivé

Personne
Nom
adresse
grade
dateNaissance
{Contexte Personne /age
Inv : age = dateCourante - dateNaissance }

Attribut dérivé

© Robert Ogor

Modélisation avec UML 78

Les associations ternaires


Cours

Cours

Enseignant
Salle

Elève

© Robert Ogor

38 mai 2003
Modélisation avec UML

Modélisation avec UML 79

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

Modélisation avec UML 80

Composition : agrégation forte


La composition est une agrégation forte qui lie les cycles de vie
entre le composé (ensemble) et les composants (élements).

Le choix entre composition et agrégation peut être laissé à la phase


de conception.

Document * Paragraphe * Phrase

4
Voiture Roue

1 2-5
Carrosserie Porte

1 Moteur 1 Habitacle

© Robert Ogor

39 mai 2003
Modélisation avec UML

Modélisation avec UML 81

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 ?

2. Règles obligatoires pour la composition :


• La suppression du composé entraîne t-elle la suppression des composants ?
• Les attributs du composé sont-ils utilisés dans les composants ?
• Les composants sont des instances du composé ?
• Un composant ne peut pas être en relation avec d' autres classes externes au
composé.
gère
??? Magasin * Client
gère
Magasin * Client
gère
Magasin * Client
© Robert Ogor

Modélisation avec UML 82

Composition

Fenêtre

scollbar
2 1 contrôle 1 contenu
Ascenceur Bordure Panel

Fenêtre

scollbar [2]: Ascenceur

contrôle : Bordure

contenu : Panel

© Robert Ogor

40 mai 2003
Modélisation avec UML

Modélisation avec UML 83

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

Modélisation avec UML 84

Eléments sur une association navigabilité


cardinalité
ordonnancement

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

Modélisation avec UML 85

3) Concepts objets et diagrammes


de classes

Héritage

© Robert Ogor

Modélisation avec UML 86

Héritage : buts et principes 1/3


Nouvelles classes dérivées de
classes existantes
BUT
Permettre une réutilisation optimale des classes déjà
écrites, utilisées et validées
ƒ réutilisation de la structure des données héritées
ƒ réutilisation du code des services hérités

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

Modélisation avec UML 87

Héritage : adaptation
Hérite
MoyenTransport
vitesseLimite
est un désignation
est une sorte de prixHT
annéeConstruction
prixTTC()
obtenirVitesse()
changerPrix()
obtenirAge()

Camion Voiture Tramway


nombreEssieux nombrePortes nombrePassagers
capacité couleur niveauBruit
charge nombrePassagers()
estPlein() prixTTC()

VoitureEssence VoitureDiesel
redéfinition
nombreBougies typeInjecteur

© Robert Ogor

Modélisation avec UML 88

Héritage : buts et principes 2/3


Ajout d’une classe de base (analyse)

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

Modélisation avec UML 89

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

Modélisation avec UML 90

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

Modélisation avec UML 91

Héritage : généralisation
Factorisation des propriétés

Avocat Vendeur Enseignant


nombreAffaires ancienneté nombreCours
adresseCabinet nomDuStand Spécialité
nom nom nom
numéroSécu numéroSécu numéroSécu

Permanent Vacataire
numéroBureau
nombreVacation

© Robert Ogor

Modélisation avec UML 92

Héritage : généralisation
Factorisation des propriétés

Personne
nom
numéroSecu
{disjoint,incomplete}

Avocat Vendeur Enseignant


nombreAffaires ancienneté nombreCours
adresseCabinet nomDuStand spécialité

{disjoint,complete}
Permanent Vacataire
numéroBureau
nombreVacation

© Robert Ogor

45 mai 2003
Modélisation avec UML

Modélisation avec UML 93

Héritage multiple et répété


Véhicule

{overlapping}

Véhicule terrestre Véhicule marin

Voiture Voiture amphibie Bateau

Véhicule

Véhicule marin Véhicule terrestre


Voiture amphibie
Bateau Voiture

© Robert Ogor

Modélisation avec UML 94


Notation UML :
Classe abstraite nom de classe italique
ou stéréotype <<abstract>>
Un média peut être transporté, dupliqué, affiché.
Le transport et la duplication sont indépendants Média
du type du média (copie de fichiers). auteur
Par contre, tout média peut être affiché et ce n'est titre
pas la même chose pour l' audio, la vidéo, le date création
graphisme, le texte. transporter()
Un média ne peut pas définir comment s' afficher dupliquer()
tant qu'
il ne sait pas ce qu'
il est. afficher()

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

Modélisation avec UML 95

Classe abstraite Figure


couleur
position
trait
bouger
tourner
afficher

0_dimension 1_dimension 2_dimensions


orientation remplissage
orientation
agrandir agrandir
afficher afficher remplir
afficher

Point Ligne Arc Polygone


rayon Courbe
angleArc
afficher afficher angleDépart afficher afficher
afficher
© Robert Ogor

Modélisation avec UML 96

Héritage : buts et principes 3/3


Polymorphisme
BUT 3
Créer des sous-types (sous-classes). Une sous-classe
sera du même type que la classe dont elle hérite
(super-classe).
Ceci permet de mettre en œ uvre le polymorphisme et la
liaison dynamique

PRINCIPE
Un objet d'
une classe donnée pourra toujours faire
référence à des objets de ses sous classes
(polymorphisme ).

Une opération exécutée par un objet sera celle que


connaît l'
objet dont il fait référence (liaison dynamique).

© Robert Ogor

47 mai 2003
Modélisation avec UML

Modélisation avec UML 97

Redéfinition et
liaison dynamique
Personne
nom
numéroSecu

changerAdresse()

Avocat Vendeur Enseignant


nombreAffaires ancienneté nombreCours
adresse nomDuStand spécialité
cabinet
changerAdresse() changerAdresse()

Permanent Vacataire
numéroBureau
Redéfinition nombreVacation

© Robert Ogor

Modélisation avec UML 98

Héritage et sous typage


Personne
Vendeur Enseignant
Avocat Permanent
Vacataire

Un objet Enseignant peut désigner


une instance des classes :
Un objet Personne peut désigner Conformante Enseignant
une instance des classes : Vacataire
Personne Permanent
Avocat Il ne peut pas désigner une instance
Vendeur des classes :
Enseignant Personne
Vacataire Avocat
Permanent Vendeur
© Robert Ogor

48 mai 2003
Modélisation avec UML

Modélisation avec UML 99

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

ƒ étant plus spécialisé, il hérite de tous les services


fournis par sa super-classe...

© Robert Ogor

Modélisation avec UML 100

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

Modélisation avec UML 101

Conformante et liaison dynamique


void acheterMaison(Personne acheteur) Personne
{… nom
acheteur.changerAdresse(); numéroSecu
}; changerAdresse()
Personne jean;
Avocat pierre;
Vacataire paul;
Avocat
nombreAffaires
adresseCabinet Enseignant
changerAdresse()
nombre_cours
spécialité
acheterMaison(jean) ; changerAdresse()
acheterMaison(pierre) ;
acheterMaison(paul) ;
Vacataire
Quelle méthode ? nombreVacation

© Robert Ogor

Modélisation avec UML 102

Liaison dynamique et classe


abstraite
void acheterŒuvre ( Media achat ) Media
{…
auteur
achat.afficher(); titre
}; date création
transporter()
Vidéo lesVisiteurs; dupliquer()
afficher()
Chanson letItBe;
Livre laPeste;

Livre Chanson Graphique Vidéo


acheterŒuvre (lesVisiteurs); durée
durée largeur
acheterŒuvre (letItBe); afficher() hauteur afficher()
afficher()
acheterŒuvre (laPeste);
afficher()

© Robert Ogor

50 mai 2003
Modélisation avec UML

Modélisation avec UML 103

Les Interfaces

ƒ Une interface permet de décrire le comportement d'une entité


(classe, paquetage ou composant ), c'
est à dire un savoir faire sous
la forme d’une liste d’opérations.
ƒ Une interface ne peut donner lieu à aucune implémentation.
ƒ Une interface est équivalente à une classe abstraite sans attributs où
toutes les méthodes sont abstraites.

ƒ Une classe peut déclarer qu'elle implémente une interface. Elle


doit alors implémenter toutes les opérations de cette interface. Elle
peut ensuite être utilisée partout où ce comportement est exigé.

© Robert Ogor

Modélisation avec UML 104

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

Une interface exprime un savoir faire

TYPE = CLASSE + INTERFACE


© Robert Ogor

51 mai 2003
Modélisation avec UML

Modélisation avec UML 105

Implémentation d'
interface
<<interface>>
Savoir Faire
Déplaçable
défini
saPlace ()
avancer ()
reculer ()
monter ()
descendre ()

Polygone Implémente Personne


= nom
sommets numeroSécu
obligation de programmation
saPlace () saPlace ()
avancer () avancer ()
reculer () Sait Faire reculer ()
monter () monter ()
descendre () fourni descendre ()
périmètre () sonNom()
sonNumero()
© Robert Ogor

Modélisation avec UML 106

Implémentation et dépendance

Polygone Transporteur

sommets
saPlace ()
avancer ()
reculer ()
monter () Déplaçable
descendre ()
périmètre ()

Savoir Faire

implémente exige (dépendance)

© Robert Ogor

52 mai 2003
Modélisation avec UML

Modélisation avec UML 107

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

Modélisation avec UML 108

Interface : autre représentation

<<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

Modélisation avec UML 109

Utilisation d’interface Une interface s’utilise pour


désigner un objet.
Il définit l'
ensemble des
services que doit savoir cet
void manipuler(Déplaçable element) objet.
{… <<interface>>
Déplaçable
element.avancer(8);
element.monter(4);
… }; Polygone Personne

Personne jean; Personne et Polygone


Polygone poly; savent faire les opérations
définies dans Déplaçable
obj. manipuler(jean) ; // licite car Personne implémente Déplaçable

obj. manipuler(poly) ; // licite car Polygone implémente Déplaçable


© Robert Ogor

Modélisation avec UML 110

Les Paquetages

ƒ Une application est constituée de plusieurs classes, des dizaines


ou des centaines. Il est important de les organiser en groupes (en
fonction de certains critères surtout logiques).
ƒ C'est le paquetage (package) qui permet ce regroupement.

ƒ Un paquetage regroupe des classes, des interfaces, des


paquetages.

ƒ Il permet d'encapsuler certains éléments de la modélisation. Un


élément du paquetage peut être inaccessible de l'extérieur du
paquetage, il n'est alors connu que par les éléments du même
paquetage.
ƒ Il met en œ uvre un espace de nommage

© Robert Ogor

54 mai 2003
Modélisation avec UML

Modélisation avec UML 112


Association entre
paquetage
Editeur access : accès aux éléments
publics en appelant l'élément par
son espace de nommage
Controller
import : accès aux éléments
<<import>> <<access>> publics en permettant de nommer
<<access>> l'élément lui même sans utiliser
Diagram l'espace de nommage
Elements
<<import>> <<import>>
Domain Gestion
Element Partie Graphique
Graphique

<<import>>
partie Motif
Motif
Partie Microsoft
Window Window
<<import>>
© Robert Ogor

Modélisation avec UML 113

paquetage : import et
java
access
Editeur

<<access>> event : java::awt::ActionEvent

awt

event
Simulateur

ActionEvent <<import>>
event :
ActionEvent

© Robert Ogor

55 mai 2003
Modélisation avec UML

Modélisation avec UML 115

Diagrammes de classes de la
gestion de bibliothèque,
recherche à partir du cahier des
charges.

Recherche par responsabilité

© Robert Ogor

Modélisation avec UML 116

Phases de la modélisation objet

- Identifier les classes candidates.


- Préparer le dictionnaire de données : classes retenues.
- Identifier les associations entre classes (en incluant les agrégations).
- Identifier les attributs.
- Organiser et simplifier les classes en utilisant l'
héritage.
- Supprimer les associations inutiles
- Vérifier que le diagramme inclut toutes les demandes du cahier des
charges.
- Itérer et affiner le modèle.
- Grouper les classes en modules (paquetages).

© Robert Ogor

56 mai 2003
Modélisation avec UML

Modélisation avec UML 117

Identifier les classes : les classes candidates


ƒ Un gérant de bibliothèque désire automatiser la gestion des prêts.
ƒ Il commande un logiciel permettant aux utilisateurs de connaître les livres
présents, d' en réserver jusqu'à 2. L'
adhérent peut connaître la liste des
livres qu'
il a empruntés ou réservés.
ƒ L'adhérent possède un mot de passe qui lui est donné à son inscription.
ƒ L'emprunt est toujours réalisé par les employés qui travaillent à la
bibliothèque. Après avoir identifié l'
emprunteur, ils savent si le prêt est
possible (nombre max de prêts = 5), et s' il a la priorité (il est celui qui a
réservé le livre).
ƒ Ce sont les employés qui mettent en bibliothèque les livres rendus et les
ensemble des prêts
nouveaux livres. Il leur est possible de connaître l'
réalisés dans la bibliothèque
Gérant bibliothèque gestion prêts logiciel utilisateurs
livres
adhérent liste mot de passe inscription emprunt
employés emprunteur ensemble
© Robert Ogor

Modélisation avec UML 118

Les classes retenues


ƒ Gérant non pertinente, n'
intervient pas
ƒ bibliothèque oui responsabilité : gérer les livres, adhérents, prêts
ƒ gestion non vague
ƒ prêts oui responsabilité : contenir les infos et actions sur
les prêts
ƒ logiciel non vague
ƒ utilisateurs (choix entre utilisateur, adhérent, emprunteur )
ƒ livres oui responsabilité : permettre de connaître son état
ƒ adhérent oui responsabilité : permettre à la personne d' être
identifiée
ƒ liste non implémentation ou conception
ƒ mot de passe non attribut
ƒ Inscription non action
ƒ emprunt non action
ƒ employés oui responsabilité : reconnaître qui a fait un prêt, etc..
ƒ emprunteur (choix entre utilisateur, adhérent, emprunteur )
ƒ Ensemble non implémentation ou conception

© Robert Ogor

57 mai 2003
Modélisation avec UML

Modélisation avec UML 119

Dictionnaire des données

ƒbibliothèque : organisme gérant une collection de


livres qui peuvent être empruntés par ses
adhérents. Une bibliothèque est gérée par ses
employés.
ƒprêt : un prêt est caractérisé par le numéro du
livre, la date, la durée. Il ne peut être fait que par
un adhérent.
ƒlivre ouvrage pouvant être emprunté.
ƒadhérent personne inscrite à la bibliothèque.
ƒemployé personne travaillant à la bibliothèque.

© Robert Ogor

Modélisation avec UML 120

Chercher les associations


ƒ Un gérant de bibliothèque désire automatiser la gestion des prêts.
ƒ Il commande un logiciel permettant aux utilisateurs de connaître les livres
présents, d' en réserver jusqu’à 2. L'
adhérent peut connaître la liste des
livres qu'
il a empruntés ou réservés.
ƒ L’adhérent possède un mot de passe qui lui est donné à son inscription.
ƒ L'emprunt est toujours réalisé par les employés qui travaillent à la
bibliothèque. Après avoir identifié l'
emprunteur, ils savent si le prêt est
possible (nombre max de prêts = 5), et s' il a la priorité (il est celui qui a
réservé le livre).
ƒ Ce sont les employés qui mettent en bibliothèque les livres rendus et les
nouveaux livres. Il leur est possible de connaître l'
ensemble des prêts
réalisés dans la bibliothèque
Associations sous entendues
Une adhérent est inscrit à la bibliothèque.
La bibliothèque contient des livres
© Robert Ogor

58 mai 2003
Modélisation avec UML

Modélisation avec UML 121

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

Modélisation avec UML 122

Chercher les attributs


1 1.*
Bibliothèque
employeur prêteur
1 1
emploie est inscrit
contient
1..* connait
employé
1..* 1.* emprunteur
Bibiothécaire 0..2 a réservé 1
adresse Livre
Adhérent
nom titre 0..5 a emprunté 1
ancienneté numero nom
livreEmprunté lecteur numéro
adresse
1 1..*
a réalisé 0..*
Prêt
dateDebut
dateFin

© Robert Ogor

59 mai 2003
Modélisation avec UML

Modélisation avec UML 123

Généraliser par héritage


1 1.*
Bibliothèque
employeur prêteur
1 1
emploie est inscrit
1..* contient
employé 1..* 1.* emprunteur
Bibiothécaire connait 0..2 a réservé 1
Livre
ancienneté Adhérent
titre 0..5 a emprunté 1
numero livreEmprunté
lecteur numéro
1..*

1 Prêt
a réalisé 0..* dateDebut
dateFin

Personne
nom
adresse

© Robert Ogor

Modélisation avec UML 127

4) Modèle dynamique

Diagramme de séquence
Diagramme de collaboration
Diagramme d’états

© Robert Ogor

60 mai 2003
Modélisation avec UML

Modélisation avec UML 128

Modèle dynamique :
Le modèle dynamique montre le comportement Système
du système et l'évolution des objets dans le
temps.

Le modèle dynamique va identifier les différents événements venant du


monde externe et montrer l'enchaînement dans le système que provoquent
ces événements externes.

événement :

Quelque chose qui se produit à un moment donné dans le temps, et qui n'a
pas de durée.

exemples : l’utilisateur décroche son téléphone,


le conducteur appuie sur un bouton.

© Robert Ogor

Modélisation avec UML 129

But du modèle dynamique

ƒ Trouver les relations temporelles et


événementielles entre les objets.

ƒ Définir les états des objets qui déterminent une


réaction différente face à un événement.

ƒ Trouver les actions effectuées par les objets suite


à la réception d’événements

© Robert Ogor

61 mai 2003
Modélisation avec UML

Modélisation avec UML 130

Place du modèle dynamique dans le


processus de modélisation
Cahier des
Cas charges
d'utilisation

Scénarios
d'utilisation

Diagramme
de
classes

Diagramme de
Conception
collaboration

Diagramme de Diagramme
séquences d'états

© Robert Ogor

Modélisation avec UML 131

Classification des événements

événement

synchrone asynchrone

appel méthode signal externe exception

par acteur horloge

© Robert Ogor

62 mai 2003
Modélisation avec UML

Modélisation avec UML 132

Les types de messages


synchrone L’expéditeur est bloqué pendant le traitement du
message par l'expéditeur.

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

minuté Comme le synchrone, mais un chien de garde est


positionné, c'
est à dire que l'expéditeur se réveille au
bout d'un certain temps s'il ne reçoit pas de réponse.

© Robert Ogor

Modélisation avec UML 133


Diagramme de collaboration ou
diagramme de séquences

ƒ Représente la collaboration entre objets pour


la réalisation d'
un cas d'utilisation ou la
réalisation d’une opération.
ƒ Met en évidence l'expéditeur et le récepteur de
l'
événement.
ƒ Chaque événement reçu par un objet devra se
traduire par une opération pour le gérer dans le
diagramme de classes.

© Robert Ogor

63 mai 2003
Modélisation avec UML

Modélisation avec UML 134

Diagramme de séquence

ƒ Met en évidence l'aspect temporel (haut vers le bas)


ƒ Un objet a une ligne de vie représentée par une ligne
verticale en pointillé.
ƒ Une flèche reçue par un objet se traduit par l’exécution
d’une opération.
ƒ La durée de vie de l’opération est symbolisée par un
rectangle.
ƒ Certains objets vivent pendant tout le diagramme, d' autres
sont activés et/ou meurent pendant la séquence.
ƒ Il est possible de définir des choix et des itérations.

© Robert Ogor

Modélisation avec UML 135

Contrôle et diagrammes de séquences


o1:C1 o2:C2 Objets existants o4:C4
Branche de
opération() Création de l'
objet contrôle
[x>0] création (x)
objet3:C3
[x<0] appel G (x) faire (z)
faire (w)
appel

Synchro de retour
contrôle
concurrent
Mélange de
onRefait ( ) Destruction de l'
objet contrôle

Appel au même objet L'


objet continue à vivre

© Robert Ogor

64 mai 2003
Modélisation avec UML

Modélisation avec UML 136

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

Modélisation avec UML 137

Ajout des opérations dans les classes


Bibliothèque prêteur

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

Modélisation avec UML 140

Les Diagrammes de
collaborations entre classes

© Robert Ogor

Modélisation avec UML 141

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.

ƒ Ce modèle explique la coopération entre objets pour la réalisation d'une


fonctionnalité, cette coopération implique les différents événements qui se
propagent d' un objet à l'
autre. Un objet doit avoir une méthode appropriée
pour traiter chaque événement qu' il reçoit (message).

ƒ 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

Modélisation avec UML 142

Diagramme de collaboration
Réserver un livre

ordre message paramètres


1 a := authentifierAdherent (nom, motPasse)
reserverLivre(nom,
3 [b2] l := trouverLivre(nomLivre)
motPasse, nomLivre)
4 [l] reserver(l,a) 1.1 a := trouverAdherent (nom,motPasse)
: Système
Prêt : Bibliothèque
sens de l'
appel

2 : [a] b2=peutReserver(motPasse) objet

4.1 : reserver(a)

1.2 b := authentifier (motPasse)

a: Adhérent
l: Livre
4.1.1 : reserver(l)

© Robert Ogor

Modélisation avec UML 144

Diagrammes de classes de la
gestion de bibliothèque,
recherche à partir des cas
d'utilisation

© Robert Ogor

67 mai 2003
Modélisation avec UML

Modélisation avec UML 145

Définition de classes d'


analyses
On s'aperçoit que dans l'
analyse d'
un problèmes trois types de classes apparaissent
couramment:

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

Modélisation avec UML 147

Réalisation analyse cas


d'
utilisation

gestion réservations Utilisateurs

abonné IU réservation

Livres

© Robert Ogor

68 mai 2003
Modélisation avec UML

Modélisation avec UML 151

Recherche des Etats


ƒ L’état d'un objet est lié aux valeurs de ses variables
d'
instances et des interactions avec les autres objets. Il
s'
agit de ne conserver que les états significatifs.
ƒ La réponse d'un objet à un événement dépend de l'état
dans lequel cet objet se trouve.

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

Modélisation avec UML 152

Diagramme de transitions d’états


État initial
État final
achat
ƒ Chaque transition est
Evénement

provoqué par un poubelle


événement. Etat Livre
ƒ Une transition n'a pas libre
de durée.
libération livre rendu
ƒ La durée d'un état est
l'
intervalle de temps qui emprunt
s'écoule entre
l'
événement d' entrée et
celui de départ. réservation

Livre Livre
réservé prêté
emprunt
© Robert Ogor

69 mai 2003
Modélisation avec UML

Modélisation avec UML 153

Activité liée à un état

Occupé
do : jouer tonalité occupé

Dans cet état, l'


activité de la ligne téléphonique est
d'
émettre une tonalité.

Une activité est une opération associée à un état.

Une activité « do » se répète tant qu’on est dans l’état.

© Robert Ogor

Modélisation avec UML 154

Action liée à un événement

état Connecté événement

raccroche /déconnecter la ligne

action

Déconnecté transition

La transition connecté vers déconnecté est déclenchée par l’événement


extérieur « le poste est raccroché », une action est réalisée avant d’entrer
dans l’état déconnecté : « la ligne est déconnectée ».

Une action n'


a pas de durée, elle est associée à un événement.
Le changement de valeur d'un attribut est un exemple d’action.

© Robert Ogor

70 mai 2003
Modélisation avec UML

Modélisation avec UML 155

Les opérations possibles dans


l'
état et les transitions

événement [garde] /action

ETAT n

entry / action en entrée de l'


état
do : activité pendant l' état
événement 1 / action1
événement 1 / action1
….
exit / action en sortie d'
état

© Robert Ogor

Modélisation avec UML 156

Garde
garde

premier chiffre
chiffre[!dernier]
Composant chiffre [dernier && faux numéro] Message enregistré
do : jouer message

chiffre [dernier && bon numéro]


raccroche

Connectant raccroche
do : trouver connexion

Une garde est une condition booléenne qui permet lors de


l’occurrence d’un événement d’accepter une transition ou
pas.
© Robert Ogor

71 mai 2003
Modélisation avec UML

Modélisation avec UML 157

Diagramme d’états : adhérent


inscription Départ de la bibliothèque
garde
[nbreEmprunt =0]
adhérent

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]

Réservation[nbreRéservation =2] Emprunt [nbreEmprunt =4]

© Robert Ogor

Modélisation avec UML 173

5) Conception
composants et déploiement

© Robert Ogor

72 mai 2003
Modélisation avec UML

Modélisation avec UML 174

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

Un composant définit les services qu'


il rend et aussi les services dont il est en
attente pour pouvoir fonctionner.

© Robert Ogor

Modélisation avec UML 175

Définition des composants

ƒ Un composant est une partie physique et


remplaçable d’un système qui sait faire et fournit
la réalisation d’un ensemble d’interfaces.
Noyau composant
win32 COM+ beans
Java

Hello.class
Hello.java
Hello.html

Hello.jpg

dépendance

© Robert Ogor

73 mai 2003
Modélisation avec UML

Modélisation avec UML 176

Interface et composant
Un composant offre une interface, mais exige la
disposition de certains services

Image.java <<Interface>> Component.java


ImageObserver

imageUpdate(): Boolean
dépendance réalisation

Image.java Component.java

ImageObserver

Component.java

© Robert Ogor

Modélisation avec UML 177

Les diagrammes de
composants

© Robert Ogor

74 mai 2003
Modélisation avec UML

Modélisation avec UML 178


Les diagrammes de
composants
ƒ Ce modèle définit l'architecture logicielle du système dans un
environnement de développement donné.

ƒ Il est issu de la conception et permet de représenter le système


et les sous systèmes du modèle physique de l'
architecture
logicielle à réaliser.

ƒ Un système ou un sous système défini un espace de visibilité et


regroupe des classes.

ƒ Tout les langages ne supporte pas cette notion de système mais


elle existe sous forme de "package" en ADA.

© Robert Ogor

Modélisation avec UML 179

Les diagrammes de
composants
<<base donnée>>
lecteurCartes
tickets

Contrôle achat status

Vendeur
ticket
InterfacedeContrôle
venteIndividuel venteGroupe

InterfaceUsager
InterfaceEmployé
administrateur

usager
employé

© Robert Ogor

75 mai 2003
Modélisation avec UML

Modélisation avec UML 180

Les diagrammes de
déploiement

© Robert Ogor

Modélisation avec UML 181


Les diagrammes de
déploiement

ƒ Ce modèle définit le diagramme de l'architecture


matérielle du système ou de l'
application.

ƒ Il représente les différents processeurs,


périphériques et la répartition du système sur ces
différents éléments.

ƒ Il montre les liens de communication entre ces


différentes entités.

© Robert Ogor

76 mai 2003
Modélisation avec UML

Modélisation avec UML 182

Les diagrammes de
déploiement
processeur processeur
distributeur Liaison TCP/IP ordinateur
central

Liaison parallèle

imprimante Ecran Liaison TCP/IP

Liaison USB
processeur

Distributeur banque
lecteur de billets
de carte

© Robert Ogor

Modélisation avec UML 183

Les diagrammes de
déploiement de l'
application
Serveur Liaison TCP/IP Serveur
stockage gestion Personnes
documents

Liaison TCP/IP

Liaison parallèle Liaison TCP/IP


Serveur accès
imprimante
et application

Liaison série
protocole HTTP

lecteur
Client internet
de carte

© Robert Ogor

77 mai 2003
Modélisation avec UML

Modélisation avec UML 184

Les diagrammes de
déploiement de l'
application

Serveur stockage documents

document

Livre Revues

BandeDessinées

Résumé

© Robert Ogor

Modélisation avec UML 185

Conception

Conception conception conception


système objet

ƒ La phase de conception a pour objectif de rechercher comment le


système va être réalisé, contrairement à l'
analyse qui rechercher ce
qui doit être fait (quoi).

ƒ Elle élabore les différentes parties du système et leurs interactions


d'
abord à un niveau général puis à un niveau de plus en plus détaillé.

ƒ Elle tient compte des contraintes matérielles et logicielles : langages,


bases de données, processeurs, périphériques, etc..

ƒ C'est une étape où ne peuvent intervenir que des informaticiens


spécialisés dans les différentes technologies utilisées.
© Robert Ogor

78 mai 2003
Modélisation avec UML

Modélisation avec UML 186

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

Modélisation avec UML 187

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

Modélisation avec UML 188

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

Mise en œ uvre de la navigabilité, choix de qui accède à qui.


Mise en œ uvre de la protection des attributs et des relations

© Robert Ogor

Modélisation avec UML 189

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

Modélisation avec UML 190

Conception : choix de persistance


Gestion Utilisateurs Utilisateurs
1
*
Choix de conception :

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.

Gestion Utilisateurs Utilisateurs


* Gestion Utilisateurs Bibliothèque
1

*
Utilisateurs

© Robert Ogor

Modélisation avec UML 223

Conclusions

ƒ Méthode pour appréhender la réalisation d’un


système informatique
ƒ Diagrammes qui permettent d’aider à la réflexion,
de permettre la discussion (clients, développeurs)
ƒ Pas de solution unique mais un ensemble de
solutions plus ou moins acceptables suivant les
contraintes du client et les logiciels et matériels
disponibles
ƒ Une solution acceptable sera obtenue avec des
itérations successives.

© Robert Ogor

81 mai 2003
Modélisation avec UML

Modélisation avec UML 224

Bibliographie

Livres

ƒ Martin Fowler, Kendall Scott: UML Distilled, Addison-Wesley 2000


ƒ Grady Booch, et al: The Unified Modeling Language User Guide, Addison-Wesley
ƒ James Rumbaugh, et al: The Unified Modeling Language Reference Manual, Addison-
Wesley
ƒ Ivar Jacobson, et al: Unified Software Development Process, Addison-Wesley
ƒ Jos B. Warmer, Anneke G. Kleppe: The Object Constraint Language : Precise
Modeling With UML, Addison-Wesley
ƒ Pierre-Alain Muller, Nathalie Gaertner: Modélisation avec UML, Eyrolles

© Robert Ogor

Modélisation avec UML 225

Adresses utiles sur le WEB

ƒ OMG UML info: http://uml.systemhouse.mci.com


ƒ survey of analysis and design methods
http://www.awl.com/cp/awweb.htm
ƒ http://st-www.cs.uiuc.edu/users/patterns/patterns.html,
ƒ Patterns info: http://c2.com/ppr/index.html
ƒ Rational doc: http://www.rational.com/uml/documentation.html
ƒ Rational CASE tools: http://www.rational.com/products/rose/seed
ƒ UML 1.4 RTF: www.celigent.com/omg/umlrtf
ƒ OMG UML Tutorials: www.celigent.com/omg/umlrtf/tutorials.htm
ƒ UML 2.0 Working Group:
www.celigent.com/omg/adptf/wgs/uml2wg.htm
ƒ OMG UML Resources: www.omg.org/uml/
© Robert Ogor

82 mai 2003

Anda mungkin juga menyukai