Introduction à la modélisation UML
Introduction à la modélisation UML
Domaine de la solution
1
Modélisation UML: Introduction
Intérêt de la modélisation
2
Modélisation UML: Introduction
Une
MÉTHODE de
CONSTRUCTION
De systèmes
d’information
des OUTILS
- manuels
- automatisés (AGL)
3
Modélisation UML: Introduction
Processus de développement
Comprendre le problème
Analyse en terme de métier du client.
4
Modélisation UML: Introduction
L’unification des méthodes : Principales étapes de la définition d’UML
Livres:
Guide de l’utilisateur
1999 Standardisation par l’OMG UML 1.3 Manuel de référence
Guide du processus
1997 Soumission à l’OMG
UML 1.0 Spécification disponible sur Internet
OOPSLA’96
UML 0.9 Spécification disponible sur Internet
Booch’93 OMT-2
Intérêt
• définir le problème à haut niveau sans rentrer dans les spécificités du
langage
• définir un problème de façon graphique
• utiliser les services offertes par l’objet sans rentrer dans le détail de
programmation (Encapsulation)
• Réutilisation du code
6
UML: Utilisation de diagrammes
Définition d’un diagramme
Chaque type de diagramme UML possède une structure (les types des
éléments de modélisation qui le composent sont prédéfinis).
7
UML: Utilisation de diagrammes
Définition d’un diagramme
En résumé
8
UML: Utilisation de diagrammes
Les différents types de diagrammes UML
9
UML: Utilisation de diagrammes
Les différents types de diagrammes UML
diagramme de classes
diagramme d'états-transitions
diagramme d'objets
diagramme de collaboration
diagramme de composants
But:
Définition du contour du système à modéliser,
Identification des fonctionnalités principales (critiques) du système.
11
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Formalisme :
13
Nom_acteur
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Acteurs – Utilisateurs :
Un acteur représente un rôle joué par un utilisateur qui interagit
avec le système.
14
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Nom_use_case
15
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Relation :
Exprime l’interaction existant entre un acteur et un cas d’utilisation.
Formalisme :
Nom_use_case
Relation de généralisation :
Dans une relation de généralisation entre 2 cas d’utilisation, le cas
d’utilisation enfant est une spécialisation du cas d’utilisation parent.
Formalisme :
cas d'utilisation
parent
cas d'utilisation
enfant
17
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Relation d’inclusion :
Elle indique que le cas d’utilisation source contient aussi le
comportement décrit dans le cas d’utilisation destination.
Formalisme :
virement
<<Include>>
identification
18
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Relation d’extension:
Elle indique que le cas d’utilisation source ajoute son comportement
au cas d’utilisation destination.
L’extension peut être soumise à condition.
Le comportement ajouté est inséré au niveau d’un point d’extension
défini dans le cas d’utilisation destination.
Formalisme :
19
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Relation d’extension:
Vérification <<extend>>
virement
solde compte
Passer
commande <<extend>> Passer
urgente commande
Fixer priorité Fixer priorité
20
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
21
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
22
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Scénarios :
Un cas d’utilisation est une abstraction de plusieurs chemins
d’exécution. Une instance de cas d’utilisation est appelée : «scénario».
Les scénarios peuvent être classés en :
Scénarios principaux : ils correspondent à l’instance principal du
cas d’utilisation. C’est souvent le chemin « normal » d’exécution du
cas d’utilisation qui n’implique pas d’erreurs.
Scénarios secondaires : ils peuvent être des cas alternatifs (un
choix), un cas exceptionnel ou une erreur.
23
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Acteurs et cas d’utilisation:
Les cas d’utilisation représentent le dialogue entre l’acteur et le
système de manière abstraite
24
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
Conclusion
Un cas d’utilisation doit être avant tout:
simple,
intelligible et
décrit de manière claire et concise.
Le nombre d’acteurs qui interagissent avec le cas d’utilisation est
souvent limité. Il y a souvent un acteur par cas d’utilisation.
Un cas d’utilisation est une abstraction : il décrit de manière abstraite
une famille de scénarios.
Dans n’importe quels système, il y a relativement peu de cas
d’utilisation mais beaucoup de scénarios.
25
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
26
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de cas d'utilisation (use cases)
29
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Qu’est-ce qu’un Objet ?
Définition Générale:
« ce sur quoi porte notre connaissance »
Avantages:
capacité à :
Regrouper ce qui a été séparé,
Construire le complexe à partir de l’élémentaire,
Intégrer statiquement et dynamiquement les constituants d’un système.
31
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
attribut
Identifiant
Opération
Relation (Association)
généralisation / spécialisation 32
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion de classe
Une classe est une description abstraite (condensée) d’un ensemble
d’objets qui définit la structure (des données), leurs comportements et
leurs relations.
Nom de Classe
Attributs
Opérations () Moyen de transport
Type
Formalisme :
Poids
Couleur
Démarrer ()
Accélérer ()
Freiner ()
33
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion d’Objet
un objet est une instanciation (occurrence) d'une classe
Exemple
une personne, une voiture, une maison, ...
Méthodes Démarrer ()
Arrêter()
actions que l'objet est à même de réaliser Rouler()
34
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Voiture FIAT-UNO-17
Numéro de série : Int 233434 : Numéro de série
Poids : double 1500 kg : Poids
Immatriculation : String 8864 YF 17 : Immatriculation
Kilométrage : double 33 000 : kilométrage
Démarrer ()
Arrêter()
Rouler()
Renault-Clio-17 Peugeot-206-75
5323454 : Numéro de série 3434 : Numéro de série
1500 kg : Poids 1700 kg : Poids
64 YFT 17 : Immatriculation 8634 YGG 75 : Immatriculation
23 000 : kilométrage 15 000 : kilométrage
35
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion d’attribut
Un attribut représente la modélisation d’une information élémentaire
représentée par son nom et son format.
Formalisme :
36
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
public (+) : l’élément est visible pour tous les clients de la classe
privé (-) : l’élément n’est visible que par les objets de la classe dans
laquelle il est déclaré.
Formalisme :
37
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion d’ identifiant
L’identifiant est un attribut particulier, qui permet de repérer de façon
unique chaque objet (instance de la classe).
38
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion d’opération
Une opération est une fonctionnalité assurée par une classe. La
description des opérations peut préciser les paramètres d’entrée et de
sortie ainsi que les actions élémentaires à exécuter.
Formalisme :
39
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
40
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion de relation
Les liens entre les objets doivent être considérés comme des instances
de relations entre classes.
l’association
la généralisation/spécialisation
la dépendance:
Travaille pour
Personne société association
Travaille pour
Ahmed ONCF
Travaille pour liens
Med ONE
41
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Notion de relation – Exemple
42
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Documentation d’une association
Nom de l’association
lien sémantique entre les classes
La personne achète la voiture
La voiture est achetée
43
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
la navigabilité
44
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
45
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
1
Personne Société
1..*
* 0..*
0..1
1 Un et un seul
1..*
0..1 facultatif (au plus un)
2..4
N ou * N (entier naturel) (au moins N)
M..N De M à N (entiers naturels)
0..* ou * plusieurs (zéro ou plus)
1..* obligatoire (au moins 1)
47
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
48
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
50
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
51
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
52
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
53
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
54
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
56
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
57
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
58
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
59
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
L’héritage est la propriété qui fait bénéficier à une sous classe de la structure
et du comportement de sa surclasse.
60
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
Spécialisation Généralisation
étendre les propriétés factoriser les propriétés
d'une classe, sous groupe de classes sous
forme de sous-classes forme de super-classe
61
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
62
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
63
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
64
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
65
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
66
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
67
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes
68
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes - Exercice
Concevoir le diagramme de classe d’une application de gestion d’hôtel.
Voici ce que vous devez modéliser :
Un hôtel est constitué d'un certain nombre de chambres. Un
responsable de l'hôtel gère la location des chambres. Chaque chambre
se loue à un prix donné.
L'accès aux salles de bain est compris dans le prix de la location d'une
chambre. Certaines chambres comportent une salle de bain, mais pas
toutes. Les hôtes de chambres sans salle de bain peuvent utiliser une
salle de bain sur le palier. Ces dernières peuvent être utilisées par
plusieurs hôtes.
Les pièces de l'hôtel qui ne sont ni des chambres, ni des salles de bain
(hall d'accueil, cuisine...) ne font pas partie de l'étude (hors sujet).
Des personnes peuvent louer une ou plusieurs chambres de l'hôtel, afin
d'y résider. En d'autre termes : l'hôtel héberge un certain nombre de
personnes, ses hôtes (il s'agit des personnes qui louent au moins une
chambre de l'hôtel...). 69
UML: Utilisation de diagrammes
Vues statiques du système – Diagramme de classes - Exercice
73
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Interactions
L’interaction se traduit par l’envoi d’un message entre objets. Le
diagramme de séquence insiste sur la chronologie des objets en utilisant
la ligne de vie des objets.
Activations
Une période d’activité correspond au temps pendant lequel un objet
effectue une action, soit directement, soit par l’intermédiaire d’un autre
objet qui lui sert de sous-traitant.
74
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Interactions / Activations
75
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Catégories de message
flot de contrôle à plat
76
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Catégories de message
flot de contrôle à plat
77
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Catégories de message
appel de procédure (ou flot de contrôle emboîté)
78
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Catégories de message
Retour de procédure
79
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Contraintes temporelles
80
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Contraintes temporelles
81
UML: Utilisation de diagrammes
Vues dynamiques du système – Diagramme de séquences
Le déroulement normal d’utilisation d’un distributeur automatique de billets est le suivant
le client introduit sa carte bancaire
la machine vérifie alors la validité de la carte et demande le code au client
si le code est correct, elle envoie une demande d’autorisation de prélèvement au
groupement de banques. Ce dernier renvoie le solde autorisé à prélever.
le distributeur propose alors plusieurs montants à prélever
le client saisit le montant à retirer
après contrôle du montant par rapport au solde autorisé, le distributeur demande au
client s’il désire un ticket
Après la réponse du client, la carte est éjectée et récupérée par le client
les billets sont alors délivrés (ainsi que le ticket)
le client récupère enfin les billets et son ticket
83
Types de relation : Agrégation
A B
Type de relations
– A « contient » des instances de B,
Agrégat
Propriétés de l’agrégation
• La suppression de A n’implique pas la suppression de B
• L'élément agrégé peut être partagé
Exemples :
• L’enseignant est un composant
d’une (ou plusieurs) équipe de
recherche d’un seul département
84
Diagramme de classes
85
Diagramme de classes
Client
1..1
Paquet
1..* 0..*
Livraison
Lettre Colis 1..1
0..*
Peut contenir
0..*
Marchandise
86
Implémentation : Héritage
87
Implémentation : Associations
88
Implémentation : Agrégation