1. UML
Unified Modeling Language
Réalisé par :
mohammed.zaoui11@gmail.com
https://www.facebook.com/groups/ISP.2011/
Créé le : mercredi 1 ars 009
1 m 2
2. UML : Introduction
UML offre une manière élégante de représenter le système
selon différentes vues complémentaires grâce aux diagrammes.
Lorsqu'une entreprise désire un logiciel, elle le réalise parfois
en interne, mais le fait plus généralement réaliser par une
société de services. Dans un cas comme dans l'autre il est
nécessaire de définir l'ensemble des fonctionnalités que le
logiciel doit possèder. Le demandeur du logiciel n'a parfois pas
de compétences particulières en informatique et exprime donc
ses souhaits sous forme d'un CdCF (Cahier des Charges
Fonctionnelles), c'est-à-dire un document décrivant sous forme
textuelle l'ensemble des particularités que le logiciel doit
possèder, les conditions qu'il doit remplir (système(s)
d'exploitation visé(s)), les écueils à éviter, ainsi que les délais
impartis, éventuellement des clauses sur le coût, les langages à
utiliser, ...
3. UML : Introduction (suite)
Le CdCF est ainsi distribué à différentes sociétés de
services (dans le cas d'une sous-traitance) sous forme
d'un appel d'offre, auquel les sociétés vont répondre
par un coût, un délai, ...
Lorsqu'une société obtient le marché et qu'elle décide
(si elle a le choix) d'opter pour un langage orienté
objet, il lui faut dans un premier temps créer un
modèle (c'est là qu'intervient UML) à fin:
• de présenter au client la façon de laquelle elle
compte développer le logiciel.
• d'accorder tous les acteurs du projet.
5. UML : Caractéristiques
UML (Unified Modeling Language, que l'on peut traduire par
"langage de modélisation unifié) est une notation permettant
de modéliser un problème de façon standard. Ce langage est
né de la fusion de plusieurs méthodes existant auparavant,
et est devenu désormais la référence en terme de
modélisation objet, à un tel point que sa connaissance est
souvent nécessaire pour obtenir un poste de développeur
objet.
UML n‟est pas une méthode: UML est un langage qui permet
de représenter des modèles, mais il ne définit pas le
processus d'élaboration des modèles. Qualifier UML de
"méthode objet" n'est donc pas tout à fait approprié.
6. UML : Caractéristiques (suite)
UML est un support de communication: UML est avant tout
un support de communication performant, qui facilite la
représentation et la compréhension de solutions objet.
UML est basé sur un méta-modèle: UML est un moyen
d'exprimer des modèles objet en faisant abstraction de
leur implémentation, c'est-à-dire que le modèle fourni par
UML est valable pour n'importe quel langage de
programmation. UML est un langage qui s'appuie sur un
méta-modèle, un modèle de plus haut niveau qui définit les
éléments d'UML (les concepts utilisables) et leur
sémantique (leur signification et leur mode d'utilisation).
7. UML : Diagrammes (définition)
Un diagramme UML est une représentation graphique, qui
s'intéresse à un aspect précis du modèle. C'est une
perspective du modèle, pas "le modèle".
Chaque type de diagramme UML possède une structure (les
types des éléments de modélisation qui le composent sont
prédéfinis).
Un type de diagramme UML véhicule une sémantique précise
(un type de diagramme offre toujours la même vue d'un
système).
Combinés, les différents types de diagrammes UML offrent
une vue complète des aspects statiques et dynamiques d'un
système.
Par extension et abus de langage, un diagramme UML est
aussi un modèle (un diagramme modélise un aspect du modèle
global).
8. UML : Diagrammes (types)
Il existe 2 types de vues du système qui comportent chacune
leurs propres diagrammes :
- les vues statiques :
o diagrammes de cas d'utilisation
o diagrammes d'objets
o diagrammes de classes
o diagrammes de composants
o diagrammes de déploiement
- les vues dynamiques :
o diagrammes de collaboration
o diagrammes de séquence
o diagrammes d'états-transitions
o diagrammes d'activités
9. UML : Unified Modeling Language
Diagramme
des cas d’utilisation
10. Diagramme des cas d’utilisation: Définition
Les cas d‟utilisation(use cases)permettent de structurer les
besoins des utilisateurs et les objectifs correspondants d'un
système. Ils centrent l'expression des exigences du système
sur ses utilisateurs : ils partent du principe que les objectifs
du système sont tous motivés.
Description de l‟interaction entre l‟utilisateur et le système
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.
11. Diagramme des cas d’utilisation: Acteur
L’acteur: Un acteur représente un rôle joué par une personne
ou une chose qui interagit avec le système. (la même personne
physique peut donc être représentée par plusieurs acteurs en
fonction des rôles qu‟elle joue).
un acteur n‟est pas nécessairement une personne physique : il
peut être un service, une société, un système informatique …
Il existe 4 catégories d‟acteurs :
- les acteurs principaux : les personnes qui utilisent les
fonctions principales du système
- les acteurs secondaires : les personnes qui effectuent des
tâches administratives ou de maintenance.
- le matériel externe : les dispositifs matériels
incontournables qui font partie du domaine de l‟application et
qui doivent être utilisés.
- les autres systèmes : les systèmes avec lesquels le système
doit interagir.
12. Diagramme des cas d’utilisation: Acteur (suite)
Un acteur se représente par un petit bonhomme avec son nom
(son rôle) inscrit au dessous.
Il est également possible de représenter un acteur sous la
forme d‟un classeur stéréotypé << actor >>
13. Diagramme des cas d’utilisation: Le cas d’utilisation
Le cas d’utilisation: Le cas d‟utilisation (ou use case) correspond
à un objectif du système, motivé par un besoin d‟un ou plusieurs
acteurs. L'ensemble des use cases décrit les objectifs (le but) du
système.
Un cas d‟utilisation se représente par une ellipse contenant le
nom (un verbe à l‟infinitif) et optionnellement, au dessous du nom
un stéréotype .
Dans le cas ou l‟on désire présenter les attributs ou les
opérations du cas d‟utilisation,il est préférable de le représenter
sous la forme d‟un classeur stéréotypé <<use case>>.Nous
reviendrons sur les notions d‟attributs et d‟opérations lorsque
nous traiterons les diagrammes de classes et d‟objets.
16. Diagramme des cas d’utilisation: La relation
Elle exprime l‟interaction existant entre un acteur et un cas
d‟utilisation.
Il existe 3 types de relations entre cas d‟utilisation :
- la relation de généralisation
- la relation d‟extension
- la relation d‟inclusion
1. La 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.
17. Diagramme des cas d’utilisation: La relation (suite)
NB : un acteur peut également participer à des relations de
généralisation avec d‟autres acteurs. Les acteurs « enfant »
seront alors capables de communiquer avec les mêmes cas
d‟utilisation que les acteurs « parents ».
18. Diagramme des cas d’utilisation: La relation (suite)
2. La relation d’inclusion:
Elle indique que le cas d‟utilisation source contient aussi le
comportement décrit dans le cas d‟utilisation destination. Cette
relation permet ainsi de décomposer des comportements et de
définir des comportements partageables entre plusieurs cas
d‟utilisation.
Cette dépendance est symbolisée par le stéréotype <<include>>
Pour réaliser l‟objectif
<<virement», on utilise
obligatoirement
«identification ».
19. Diagramme des cas d’utilisation: La relation (suite)
3. La 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. Cette relation permet de modéliser les variantes
de comportement d‟un cas d‟utilisation (selon les interactions
des acteurs et l‟environnement du système).
Cette dépendance est symbolisée par le stéréotype <<extend>>
21. Diagramme des cas d’utilisation: Les 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 ».
Chaque fois qu‟une instance d‟un acteur déclenche un cas
d‟utilisation, un scénario est créé (le cas d‟utilisation est
instancié). Ce scénario suivra un chemin particulier dans le cas
d‟utilisation.
Les scénarios peuvent être classés en :
- scénarios principaux : il correspond à 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 : il peut être un cas alternatif (un
choix), un cas exceptionnel ou une erreur.
22. UML : Unified Modeling Language
Diagramme
de classes
23. Diagramme de classes : Définition
Le diagramme de classes exprime la structure statique du
système en termes de classes et de relations entre ces
classes.
L‟intérêt du diagramme de classe est de modéliser les
entités du système d‟information.
CLASSE OBJETS
Maison 234 Des érables
$180 000
Adresse
1986 50 Laurier
Valeur
$150 000
Date construction
1959 765 Bellevue
$210 000
1996
...
24. Diagramme de classes : La notion de classe
une classe est une description abstraite (condensée) d‟un ensemble
d‟objets du domaine de l‟application : elle définit leur structure,
leur comportement et leurs relations.
Représentée par un rectangle comprenant 3 compartiments: le
nom, les attributs et les opérations.
Les compartiments non pertinents peuvent ne pas être affichés
Nom de classe Nom de classe Nom de classe
Attribut 1 Attribut 1
Attribut 2 Attribut 2
Opération 1
Opération 2
25. Diagramme de classes : Stéréotypes
UML définit les stéréotypes de classe suivants :
- « classe implémentation » : il s’agit de l’implémentation d’une
classe dans un langage de programmation.
- « énumération » : il s’agit d’une classe qui définit un ensemble
d’identificateurs formant le domaine de la valeur.
- « métaclasse » : il s’agit de la classe d’une classe, comme en
Smalltalk.
- « powertype » : une classe est un métatype : ses instances sont
toutes des sous-types d’un type donné.
- « processus » : il s’agit d’une classe active qui représente un
flot de contrôles lourd.
- « thread » : il s’agit d’une classe active qui représente un flot
de contrôles léger.
- « type » : il s’agit d’une classe qui définit un domaine d’objets
et les opérations applicables à ces objets.
- « utilitaire » : il s’agit d’une classe réduite au concept de
module et qui ne peut être instanciée.
26. Diagramme de Classes : La notion d’attribut
Une classe correspond à un concept global d‟information et se
compose d‟un ensemble d‟informations élémentaires, appelées
attributs de classe.
Un attribut représente la modélisation d‟une information
élémentaire représentée par son nom et son format.
Caractéristique d‟une classe d‟objets.
Syntaxe: Visibilité Nom_attribut : Type_Attribut = Valeur_Initiale
Visibilité: définie en trois niveaux:
+ :public, visible par toutes les classes;
# :protégé, visible par les classes amies et classes dérivées;
- :privé, visible seulement par les classes amies;
Dérivé (/): attribut obtenu par le traitement d‟autres attributs.
Rectangle
+ longueur : /Surface = longueur * largeur
entier
+ largeur: entier
27. Diagramme de Classes : La notion d’opération
L‟opération représente un élément de comportement des objets,
défini de manière globale dans la classe.
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.
Syntaxe:
Visibilité Nom_Opération.
La classe rectangle contient les
Rectangle attributs longueur et largeur et
+ Longueur: entier l’opération surface qui
+ Largeur: entier encapsule le calcul de surface
obtenu avec la longueur et la
+ Surface largeur du rectangle.
(longeur:entier * largeur:entier)
: entier
28. Diagramme de Classes : Association
Représente des relations structurelles entre classes d‟objets.
Représentée par une forme verbale, active ou passive, en italique au milieu
de la ligne qui symbolise l‟association.
Le sens de lecture du nom est indiqué par un petit triangle dirigé vers la
classe désignée par la forme verbale.
29. Peut être représentée < habite
par des traits
est habitée par >
Maison Personne
rectilignes ou obliques. < possède
est possédée par >
Il peut y avoir deux ou
plusieurs associations
de nature différente
entre les deux mêmes
classes.
< est mariée à
est mariée à >
Peut être récursive,
i.e. qui affecte une Personne
seule classe.
30. Diagramme de Classes : Le rôle
Le rôle est l’extrémité d’une association qui décrit comment une
classe en voit une autre à travers une association.
Il est placé à l’extrémité d’une association sans être en italique.
< habite habitant
Maison habitation est habitée par > Personne
parent
Personne
enfant
31. Diagramme de Classes : Classe-association
On ajoute une classe-association à une association lorsqu‟elle a
des attributs ou des opérations.
Une classe de ce type est une classe comme les autres et peut
participer à d‟autres relations dans le modèle.
32. Diagramme de Classes : Association n-aire
•Relations entre plus de 2 classes (à éviter si possible)
33. Diagramme de Classes : La multiplicité des associations
La multiplicité définit le nombre d‟instances de l‟association
pour une instance de la classe. La multiplicité est définie par
un nombre entier ou un intervalle de valeurs. La multiplicité
est notée sur le rôle (elle est notée à l‟envers de la notation
MERISE).
Indique le nombre minimum et maximum d‟objets de la classe
qui peuvent être liés à un objet de l‟autre classe.
Une association possède deux cardinalités.
34. Exemple:
Une personne travaille pour 0 à plusieurs sociétés (*) et une
société est employeur de 1 à plusieurs personnes (1..*).
Pour un emploi donné, un patron dirige de zéro à plusieurs
travailleurs (0 ..*) et un travailleur est dirigé par zéro à un
patron (0..1).
Société < Travaille pour 1..*
Personne
*
employeur employé
Emploi patron
Salaire 0..1
travailleur 0..* <Dirige
35. Diagramme de Classes : Contraintes sur les associations
Peut affecter une relation ou un groupe de relations.
Chaîne de caractères entre accolades { } positionnée sur
l‟association affectée ou entre les associations affectées.
36. Diagramme de Classes : Agrégation
Association non symétrique dans laquelle une des extrémités joue
un rôle prédominant par rapport à l‟autre extrémité (agrégat).
Les deux classes existent indépendamment, c‟est-à-dire qu‟elles
“survivent” à la “destruction” de l‟autre classe.
Ne concerne qu‟un seul rôle de l‟association.
Symbolisé par un losange vide du côté de l‟agrégat.
Symbole d’agrégation
37. Diagramme de Classes : Composition
La composition est un cas particulier de l‟agrégation dans
laquelle la vie des composants est liée à celle des agrégats.
Association symétrique entre deux classes dont une classe
(partie) compose l‟autre (composite). Les deux classes sont
dépendantes, c‟est-à-dire que la partie “ne survit pas” à la
“destruction” du composite.
Symbolisée par un losange plein du coté du composite.
Symbole de composition
38. Diagramme de Classes : Agrégation/Composition
Exemple 1:
< fait partie de 1,1 < compose de 0,N
Livre Page Mot
comprend de 1,N > comprend de 1,N >
Exemple 2:
39. Diagramme de Classes : Généralisation/Spécialisation
Le principe de généralisation / spécialisation permet d‟identifier
parmi les objets d‟une classe (générique) des sous-ensembles d‟objets
(des classes spécialisées) ayant des définitions spécifiques. La classe
plus spécifique (appelée aussi classe fille, classe dérivée, classe
spécialisée, classe descendante …) est cohérente avec la classe plus
générale (appelée aussi classe mère, classe générale …), c‟est-à-dire
qu‟elle contient par héritage tous les attributs, les membres, les
relations de la classe générale, et peut contenir d‟autres.
- La généralisation : il s‟agit de prendre des classes existantes déjà
mises en évidences) et de créer de nouvelles classes qui regroupent
leurs parties communes ; il faut aller du plus spécifique au plus
général.
- La spécialisation : il s‟agit de sélectionner des classes existantes
(déjà identifiées) et d‟en dériver des nouvelles classes plus
spécialisées, en spécifiant simplement les différences.
40.
41. Diagramme de Classes : Généralisation multiple
Les classes peuvent avoir plusieurs superclasses ; dans ce
cas, la généralisation est dite multiple et plusieurs flèches
partent de la sous-classe vers les différentes superclasses.
La généralisation multiple consiste à fusionner plusieurs
classes en une seule classe.
44. Diagramme de Classes : Classe abstraite
Classe sans instance immédiate
Super-classe non instanciable directement, i.e. qui ne
donne pas naissance à des objets mais sert de concept
plus général pour les sous-classes.
Elle s‟applique uniquement pour la généralisation et jamais
pour la spécialisation.
45. Diagramme de Classes : Dépendance
Les relations de dépendance sont utilisées lorsqu‟il existe une
relation sémantique entre plusieurs éléments qui n‟est pas de
nature structurelle. Une relation de dépendance définit une
relation unidirectionnelle entre un élément source et un
élément cible.
Une dépendance est une relation entre deux éléments de
modélisation dans laquelle toute modification effectuée sur un
élément de modélisation (l'élément influent) affecte l'autre
élément (élément dépendant).
UML définit 4 types de relation de dépendance. Pour chaque
type de dépendance, un mot clé ou stéréotype entre guillemets
peut être ajouté à la relation de dépendance pour préciser sa
nature.
46. Diagramme de Classes : Dépendance (suite)
Les 4 types de relation sont :
Abstraction :Il s‟agit d‟une relation de dépendance entre éléments qui représentent
un même concept à différents niveaux d‟abstraction ou selon des points de vue
distincts.
Les mots-clés sont :
o « « dérive » » : représente un élément défini ou calculé à partir d‟un autre. Par
exemple, un attribut ou un rôle peut dériver d‟autres attributs ou rôles.
o « « raffine » » : représente une relation de dépendance entre des éléments
sémantiques différents (analyse et conception par exemple).
o « « réalise » » : représente une relation de dépendance entre une spécification
(cible) et l‟élément qui implémente cette spécification (source).
o « « trace » » : représente l‟historique des constructions présentes dans les
différents modèles.
Liaison : Les paramètres formels d‟une classe ou collaboration paramétrables
doivent être liés à des valeurs.
Le mot clé est :
o « « lie » »
47. Diagramme de Classes : Dépendance (suite)
Permission: Un élément (source) a le droit d‟accéder à un espace de
nommage (cible)
o « « ami » »: Représente un élément source (paquetage, classe, opération …)
qui a accès à l‟élément destination (paquetage, classe, opération …) quelle
que soit la spécification de visibilité de ce dernier.
Utilisation: Un élément (source) requiert la présence d‟un autre élément
(cible) pour son bon fonctionnement ou son implémentation.
o « « utilise » »
o « « appelle » »
Représente une relation de dépendance entre une opération
qui invoque une opération d‟une autre classe. Cette relation
est représentée en connectant les opérations ou les classes
qui possèdent ces opérations.
o « « crée » »: Représente le classificateur source qui crée
une instance du classificateur cible.
o « « instancie » »: Représente une relation de dépendance
entre classificateurs due à la création d‟une instance du
classificateur cible par une opération du classificateur source.
Exemple
48. Diagramme de Classes : L’interface
Une interface définit le comportement visible d‟une classe. Ce
comportement est défini par une liste d‟opérations ayant une
visibilité « public ». Aucun attribut ou association n‟est défini pour
une interface.
Une interface est en fait une classe particulière (avec le
stéréotype « « interface » »).
UML représente les interfaces :
- soit au moyen de petits cercles reliés par un trait à l‟élément qui
fournit les services décrits par l‟interface
- soit au moyen de classes avec le mot clé « « interface » ». Cette
notation permet de faire figurer dans le compartiment des
opérations la liste des services de l‟interface.
L’exemple illustre la modélisation
de 2 interfaces crédit et
assurance d’une classe banque.
Une relation de réalisation
indique que la classe banque
réalise l’interface assurance.
49. Diagramme de Classes : Package
Mécanisme général pour la
partition des modèles et le
regroupement des éléments de
modélisation
Est représenté graphiquement Nom du
par un dossier package
Correspond à un sous-ensemble
du modèle
50. Diagramme de Classes : Package (suite)
Peut contenir entre autre des classes, des objets, des
relations et d‟autres paquetages, sans limite du niveau
d‟emboîtement.
Les relations possibles entre paquetages sont les
dépendances et les généralisations.
Paquetage racine
Classe
Dépendance
Généralisation
Sous-paquetage
51. Diagramme de Classes : Package (suite)
Une classe contenue par un paquetage peut également
apparaître dans un autre paquetage sous la forme d‟un
élément importé. Cela crée une relation de dépendance
indiquée par le sens de la flèche.
Limites Administratives Socio-économique
<<import>>
Ville LA::Ville
classe importée
53. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
54. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
55. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
56. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
57. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
58. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
59. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
6° Unvolaunaéroportdedépartetunaéroportd’arrivée.
60. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
6° Unvolaunaéroportdedépartetunaéroportd’arrivée.
7° Unvolaunjouretuneheurededépartetunjouretuneheured’arrivée.
61. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
6° Unvolaunaéroportdedépartetunaéroportd’arrivée.
7° Unvolaunjouretuneheurededépartetunjouretuneheured’arrivée.
8° Un vol peut comporter des escales dans des aéroports.
62. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
6° Unvolaunaéroportdedépartetunaéroportd’arrivée.
7° Unvolaunjouretuneheurededépartetunjouretuneheured’arrivée.
8° Un vol peut comporter des escales dans des aéroports.
9° Uneescaleauneheured’arrivéeetuneheurededépart.
63. Diagramme de classes : Étude de cas
Soit le cas ’’Réservation de vols dans une agence de voyage’’
1° Des compagnies aériennes proposent différents vols.
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
6° Unvolaunaéroportdedépartetunaéroportd’arrivée.
7° Unvolaunjouretuneheurededépartetunjouretuneheured’arrivée.
8° Un vol peut comporter des escales dans des aéroports.
9° Uneescaleauneheured’arrivéeetuneheurededépart.
10° Chaque aéroport dessert une ou plusieurs villes.
64.
65. Modélisation de la phrase :
1° Des compagnies aériennes proposent différents vols.
66. Modélisation de la phrase :
1° Des compagnies aériennes proposent différents vols.
CompagnieAerienne et Vols sont 2 objets métiers : 2 classes
67. Modélisation de la phrase :
1° Des compagnies aériennes proposent différents vols.
CompagnieAerienne et Vols sont 2 objets métiers : 2 classes
CompagnieAerinne Propose Vol
1..*
68. Modélisation de la phrase :
1° Des compagnies aériennes proposent différents vols.
CompagnieAerienne et Vols sont 2 objets métiers : 2 classes
CompagnieAerinne Propose Vol
1..*
• Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs
69. Modélisation de la phrase :
1° Des compagnies aériennes proposent différents vols.
CompagnieAerienne et Vols sont 2 objets métiers : 2 classes
CompagnieAerinne Propose Vol
1..*
• Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs
CompagnieAerinne Propose Vol
1..* 1..*
affréteur
70.
71. Modélisation de la phrase :
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
72. Modélisation de la phrase :
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
CompagnieAerinne Propose Vol
1..* 1..*
état (ouvert, fermé)
affréteur
73. Modélisation de la phrase :
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
CompagnieAerinne Propose Vol
1..* 1..*
état (ouvert, fermé)
affréteur
Tout objet peut avoir un état (diagramme d‟états).
Dans un diagramme de classes tout concept dynamique est modélisé en opération.
Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )
Dans quelle classe ? Responsabilité d‟une classe
74. Modélisation de la phrase :
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
CompagnieAerinne Propose Vol
1..* 1..*
état (ouvert, fermé)
affréteur
Tout objet peut avoir un état (diagramme d‟états).
Dans un diagramme de classes tout concept dynamique est modélisé en opération.
Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )
Dans quelle classe ? Responsabilité d‟une classe
CompagnieAerinne Propose Vol
1..* 1..*
affréteur
ouvrirVol( )
fermerVol( )
75. Modélisation de la phrase :
2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie.
CompagnieAerinne Propose Vol
1..* 1..*
état (ouvert, fermé)
affréteur
Tout objet peut avoir un état (diagramme d‟états).
Dans un diagramme de classes tout concept dynamique est modélisé en opération.
Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( )
Dans quelle classe ? Responsabilité d‟une classe
CompagnieAerinne Propose Vol
1..* 1..*
affréteur
ouvrirVol( )
fermerVol( )
Les opérations sont déclarées dans l‟objet dans lequel elles doivent s‟exécuter
Les autres pourront déclencher ces opérations par envoi de messages
Le classe CompagnieAerienne a une association avec la classe vol.
76. Modélisation des phrases :
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
Réservation
Client 1 a effectué 0..*
concerne Vol
Annuler( ) 0..* 1
Confirmer( )
0..*
concerne
1
Passager
77. Modélisation des phrases :
3° Un client peut réserver un ou plusieurs vols, pour des passagers différents.
Il faut discerner un client d‟un passager
Réservation
Client 1 a effectué 0..*
concerne Vol
Annuler( ) 0..* 1
Confirmer( )
0..*
concerne
1
Passager
78. Modélisation des phrases :
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
79. Modélisation des phrases :
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
La réservation et le passager sont 2 concepts métier : 2 classes d‟objets
Un réservation concerne un seul vol et un seul passager: donc 2 associations entre „‟Vol’’ et
‟‟Réservation’’ et entre ’’Réservation’’ et „‟Passager’’.
La 5° phrase se traduit par l‟ajout de 2 opérations annuler( ) et confirmer( ) dans ‘’Reservation’’.
80. Modélisation des phrases :
4° Une réservation concerne un seul vol, et un seul passager.
5° Une réservation peut être annulée ou confirmée.
La réservation et le passager sont 2 concepts métier : 2 classes d‟objets
Un réservation concerne un seul vol et un seul passager: donc 2 associations entre „‟Vol’’ et
‟‟Réservation’’ et entre ’’Réservation’’ et „‟Passager’’.
La 5° phrase se traduit par l‟ajout de 2 opérations annuler( ) et confirmer( ) dans ‘’Reservation’’.
Réservation Vol
concerne dateDepart
heureDepart
Annuler( ) 1 dateArrivee
Confirmer( ) heureArrivee
ouvrirVol( )
fermerVol( )
concerne
1
Passager
81. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
82. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
Par quoi peut-on représenter l‟élément „‟Aéroport‟‟ ?
3 réponses sont envisageables :
83. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
Par quoi peut-on représenter l‟élément „‟Aéroport‟‟ ?
3 réponses sont envisageables :
1. Soit avec une classe et une association de multiplicité 2
84. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
Par quoi peut-on représenter l‟élément „‟Aéroport‟‟ ?
3 réponses sont envisageables :
1. Soit avec une classe et une association de multiplicité 2
Vol
dateDepart Aéroport
heureDepart 2
dateArrivee nom
{ ordered}
heureArrivee
aeroportDepart
aeroportArivvee
ouvrirVol( )
fermerVol( )
Modélisation peu parlante.
85. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
86. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
2. Soit avec 2 classes
87. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
2. Soit avec 2 classes
Vols
dateDepart 1 AeroportDepart
heureDepart
dateArrivee Aéroport
heureArrivee
nom
aeroportDepartr 1
aeroportArivvee AeroportArrivee
ouvrirReservation( )
fermerReservation( )
Modélisation non correcte. Tout aéroport peut être de départ et d‟arrivée.
88. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
89. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
2. Soit avec 2 associations
90. Modélisation des phrases :
6° Un vol a un aéroport de départ et un aéroport d’arrivée.
2. Soit avec 2 associations
Vol
dateDepart Départ
Aéroport
heureDepart
dateArrivee 1 Nom
heureArrivee …
Arrivée
1
ouvrirVol( )
fermerVol( )
Le rôle de chaque association précise son sens.
91. Modélisation des phrases :
7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.
92. Modélisation des phrases :
7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.
Les dates et les heures de départ et d‟arrivée ne représentent que des valeurs : attributs.
93. Modélisation des phrases :
7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.
Les dates et les heures de départ et d‟arrivée ne représentent que des valeurs : attributs.
CompagnieAerinne Propose Vol
1..* 1..*
dateDepart
affréteur heureDepart
dateArrivee
heureArrivee
ouvrirVol( )
fermerVol( )
94. Modélisation des phrases :
7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée.
Les dates et les heures de départ et d‟arrivée ne représentent que des valeurs : attributs.
CompagnieAerinne Propose Vol
1..* 1..*
dateDepart
affréteur heureDepart
dateArrivee
heureArrivee
ouvrirVol( )
fermerVol( )
Pour savoir si un élément doit être représenté en attribut ou en objet :
S‟il n‟ y a que sa valeur qui est intéressante : c‟est plutôt un attribut.
Si plusieurs questions peuvent concerner l‟élément, alors il faut le représenter en objet.
95. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
96. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.
97. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.
Vol
dateDepart Depart Aéroport
heureDepart
dateArrivee 1 nom
heureArrivee
Arrivee
ouvrirVol( )
fermerVol( ) 1
Escale
heureArrivee
heureDepart
0..*
98. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.
Vol
dateDepart Depart Aéroport
heureDepart
dateArrivee 1 nom
heureArrivee
Arrivee
ouvrirVol( )
fermerVol( ) 1
Quelles sont alors les multiplicités entre Escale
„’Vols’’ et „’Escale’’, entre „’Escale’’ et heureArrivee
‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ? heureDepart
0..*
99. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
Une escale a les propriétés heure d‟arrivée et heure de départ, c‟est donc un objet.
Vol
dateDepart Depart Aéroport
heureDepart
dateArrivee 0..* 1 nom
heureArrivee
Arrivee
ouvrirVol( )
fermerVol( ) 0..* 1
1
1..*
Quelles sont alors les multiplicités entre Escale
„’Vols’’ et „’Escale’’, entre „’Escale’’ et heureArrivee
‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ? heureDepart
0..* 0..*
100. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
101. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .
102. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .
On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n‟est pas totalement un aéroport.
103. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .
On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n‟est pas totalement un aéroport.
La meilleure solution serait de la modéliser comme une classe d‟association entre et ’Vols’’ et ‘’Aéroport’’.
104. Modélisation des phrases :
8° Un vol peut comporter des escales dans des aéroports.
9° Une escale a une heure d’arrivée et une heure de départ.
„’Escale’’ a peu d‟informations propres. Elle n‟est qu‟une partie de ’’Vol’’ .
On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n‟est pas totalement un aéroport.
La meilleure solution serait de la modéliser comme une classe d‟association entre et ’Vols’’ et ‘’Aéroport’’.
Vol Départ
dateDepart Aéroport
heureDepart 0..* 1
dateArrivee Arrivée nom
heureArrivee
0..* 1
ouvrirVol( )
fermerVol( ) Escale
0..* 0..*
{Ordered}
Escale
heureArrivee
heureDepart
105. Modélisation des phrases :
10° Chaque aéroport dessert une ou plusieurs villes.
106. Modélisation des phrases :
10° Chaque aéroport dessert une ou plusieurs villes.
On ne peut pas savoir la multiplicité de „’Aéroport’’
107. Modélisation des phrases :
10° Chaque aéroport dessert une ou plusieurs villes.
On ne peut pas savoir la multiplicité de „’Aéroport’’
Aéroport dessert Ville
1..*
108. Modélisation des phrases :
10° Chaque aéroport dessert une ou plusieurs villes.
On ne peut pas savoir la multiplicité de „’Aéroport’’
Aéroport dessert Ville
0..* 1..*
109. Modélisation des phrases :
10° Chaque aéroport dessert une ou plusieurs villes.
On ne peut pas savoir la multiplicité de „’Aéroport’’
Aéroport dessert Ville
0..* 1..*
Si on considère que desservir une ville signifie l‟aéroport le plus proche, il n‟ en y a qu‟un :
la multiplicité est de 1
Si on considère que desservir une ville signifie les aéroports dans un rayon de 35 km :
la multiplicité est de 0..*
110. Client
nom Prénom CompagnieAerinne
adresse
nom
téléphone
e-mail
1..*
Propose
1
a effectué
0..* 1..*
départ
Réservation Vol Aéroport
dateDepart 0..* 1
date concerne heureDepart nom
arrivée
numéro dateArrivee
0..* 1
Annuler( ) heureArrivee 0..* 1
Confirmer( )
ouvrirVol( ) escale
0..* fermerVol( )
0..* 0..*
concerne
{ordered}
1 InfosEscale
Passager heureArrivee Ville
heureDepart nom
nom Prénom
111. Le diagramme des classe complet est :
Client
nom Prénom CompagnieAerinne
adresse
nom
téléphone
e-mail
1..*
Propose
1
a effectué
0..* 1..*
départ
Réservation Vol Aéroport
dateDepart 0..* 1
date concerne heureDepart nom
arrivée
numéro dateArrivee
0..* 1
Annuler( ) heureArrivee 0..* 1
Confirmer( )
ouvrirVol( ) escale
0..* fermerVol( )
0..* 0..*
concerne
{ordered}
1 InfosEscale
Passager heureArrivee Ville
heureDepart nom
nom Prénom
112. Client
nom Prénom CompagnieAerinne
adresse nom
tél
e-mail
numéro
1..*
{frozen} 1 Propose
a effectué
0..* 0..1
départ
Réservation Vol Aéroport
dateDepart 0..* 1
date concerne heureDepart nom
arrivée
numéro dateArrivee
0..* 1
heureArrivee 0..* 1
Annuler( ) {frozen}
Confirmer( ) ouvrirVol( ) escale
0..* fermerVol( )
0..* 0..*
concerne
{ordered}
1 InfosEscale
Passager heureArrivee Ville
heureDepart nom
nom Prénom
113. Diagramme des classe complet et annoté:
Client
nom Prénom CompagnieAerinne
adresse nom
tél
e-mail
numéro
1..*
{frozen} 1 Propose
a effectué
0..* 0..1
départ
Réservation Vol Aéroport
dateDepart 0..* 1
date concerne heureDepart nom
arrivée
numéro dateArrivee
0..* 1
heureArrivee 0..* 1
Annuler( ) {frozen}
Confirmer( ) ouvrirVol( ) escale
0..* fermerVol( )
0..* 0..*
concerne
{ordered}
1 InfosEscale
Passager heureArrivee Ville
heureDepart nom
nom Prénom
114. Client
CompagnieAérienne
nom Prénom 1..*
nom
adresse Affréteur
téléphone
e-mail numéro
1
{frozen} 1 propose Propose
a effectué 0..1
0..* ‘’ métaclasse ‘’
départ
VolGenerique
Aéroport
Réservation 0..* jour 0..* 1
date concerne heureDépart arrivée nom
Vol heureArrivée
numéro
0..* 1 dateDépart /durée 0..* 1
périodevalidité
Annuler( ) {frozen} dateArrivée escale
Confirmer( ) ouvrirVol( )
ouvrirVol( ) fermerVol( )
0..* 0..*
0..* fermerVol( )
{ordered}
concerne {AddOnly} 0..* {frozen} 1
1 InfosEscale
Passager décrit heureArrivée Ville
heureDépart nom
nom Prénom
115. Le diagramme des classe complet devient :
Client
CompagnieAérienne
nom Prénom 1..*
nom
adresse Affréteur
téléphone
e-mail numéro
1
{frozen} 1 propose Propose
a effectué 0..1
0..* ‘’ métaclasse ‘’
départ
VolGenerique
Aéroport
Réservation 0..* jour 0..* 1
date concerne heureDépart arrivée nom
Vol heureArrivée
numéro
0..* 1 dateDépart /durée 0..* 1
périodevalidité
Annuler( ) {frozen} dateArrivée escale
Confirmer( ) ouvrirVol( )
ouvrirVol( ) fermerVol( )
0..* 0..*
0..* fermerVol( )
{ordered}
concerne {AddOnly} 0..* {frozen} 1
1 InfosEscale
Passager décrit heureArrivée Ville
heureDépart nom
nom Prénom
116.
117. Le diagramme des classes peut être réorganisé en packages:
118. Le diagramme des classes peut être réorganisé en packages:
Client
nom Prénom CompagnieAerinne
1..*
nom
adresse Affréteur
tééphonel
e-mail numéro
1..*
{frozen} 1 propose Propose
a effectué 0..1
0..* ‘’ metaclasse „‟
départ
VolGenerique
Aéroport
Réservation 0..* jour 0..* 1
date concerne heureDepart arrivée nom
Vol heureArrivee
numero
0..* 1 dateDepart /durée 0..* 1
periodevalidite
Annuler( ) {frozen} dateArrivee escale
Confirmer( ) ouvrirVol( )
ouvrirVol( ) fermerVol( )
0..* 0..*
0..* fermerVol( )
{ordered}
concerne {AddOnly} 0..* {frozen} 1
InfosEscale
1
décrit heureArrivee Ville
Passager heureDepart nom
nom Prénom
119. Le diagramme des classes peut être réorganisé en packages:
Client
nom Prénom CompagnieAerinne
1..*
nom
adresse Affréteur
tééphonel
e-mail numéro
1..*
{frozen} 1 propose Propose
a effectué 0..1
0..* ‘’ metaclasse „‟
départ
VolGenerique
Aéroport
Réservation 0..* jour 0..* 1
date concerne heureDepart arrivée nom
Vol heureArrivee
numero
0..* 1 dateDepart /durée 0..* 1
periodevalidite
Annuler( ) {frozen} dateArrivee escale
Confirmer( ) ouvrirVol( )
ouvrirVol( ) fermerVol( )
0..* 0..*
0..* fermerVol( )
{ordered}
concerne {AddOnly} 0..* {frozen} 1
InfosEscale
1
décrit heureArrivee Ville
Passager heureDepart nom
nom Prénom
120. Le diagramme des classes peut être réorganisé en packages:
Client
nom Prénom CompagnieAerinne
1..*
nom
adresse Affréteur
tééphonel
e-mail numéro
1..*
{frozen} 1 propose Propose
a effectué 0..1
0..* ‘’ metaclasse „‟
départ
VolGenerique
Aéroport
Réservation 0..* jour 0..* 1
date concerne heureDepart arrivée nom
Vol heureArrivee
numero
0..* 1 dateDepart /durée 0..* 1
periodevalidite
Annuler( ) {frozen} dateArrivee escale
Confirmer( ) ouvrirVol( )
ouvrirVol( ) fermerVol( )
0..* 0..*
0..* fermerVol( )
{ordered}
concerne {AddOnly} 0..* {frozen} 1
InfosEscale
1
décrit heureArrivee Ville
Passager heureDepart nom
nom Prénom
129. Généralisation et réutilisation
On veut élargir ce domaine aux voyages par bus que des transporteurs assurent.
Un voyage en bus à une ville de départ et un ville d‟arrivée avec des dates et
des heures associées.
Un trajet peut comporter des arrêts dans des villes intermédiaires.
Un client peut réserver un ou plusieurs voyages pour un ou plusieurs passagers
130. Généralisation et réutilisation
On veut élargir ce domaine aux voyages par bus que des transporteurs assurent.
Un voyage en bus à une ville de départ et un ville d‟arrivée avec des dates et
des heures associées.
Un trajet peut comporter des arrêts dans des villes intermédiaires.
Un client peut réserver un ou plusieurs voyages pour un ou plusieurs passagers
ReservationsBus
VoyagesBus
ReservationBus
VoyageEnBus
date
numéro
concerne dateDepart
dateArrivee
0..* 1
Annuler( )
Confirmer( ) {frozen} OuvrirVoyage( )
fermerVoyage( )
131. ReservationsBus VoyagesBus
Client
Voyagiste
nom Prénom
nom
adresse
téléphone
e-mail référence
1
{frozen} 1 Propose
a effectué 0..1
0..* VoyageEnBus départ
ReservationBus concerne dateDepart 0..* 1 Ville
date heureDepart arrivée
dateArrivee nom
numéro {frozen} heureArrivee 0..* 1
Annuler( ) /durée
ouvrirVoyage( ) arrêt
Confirmer( )
fermerVoyage( ) 0..* 0..*
0..*
{ordered}
concerne
InfosArret
1..*
heureArrivee
Passager heureDepart
nom Prénom
132. ReservationsBus VoyagesBus
Client
Voyagiste
nom Prénom
nom
adresse
téléphone
e-mail référence
1
{frozen} 1 Propose
a effectué 0..1
0..* VoyageEnBus départ
ReservationBus concerne dateDepart 0..* 1 Ville
date heureDepart arrivée
dateArrivee nom
numéro {frozen} heureArrivee 0..* 1
Annuler( ) /durée
ouvrirVoyage( ) arrêt
Confirmer( )
fermerVoyage( ) 0..* 0..*
0..*
{ordered}
concerne
InfosArret
1..*
heureArrivee
Passager heureDepart
nom Prénom
134. Fusion des 2 modèles
1. Il faut isoler les classes communes dans des packages
2. Il faut factoriser les propriétés communes
135. Fusion des 2 modèles
1. Il faut isoler les classes communes dans des packages
2. Il faut factoriser les propriétés communes
136. Fusion des 2 modèles
1. Il faut isoler les classes communes dans des packages
2. Il faut factoriser les propriétés communes
AVION BUS
ReservationBus
ReservationVols
Vols VoyagesBus
Lieux
137. Il faut isoler les classes communes dans des packages
138. Il faut isoler les classes communes dans des packages
Classe
Réservations abstraite
Client Réservation concerne
nom Prénom a effectué Passager
date 0..* 1
adresse numéro
1 0..* nom Prénom
tél
Annuler( )
e-mail
{frozen} Confirmer( )
ReservationVol ReservationBus
(from ReservationsVols)
(from ReservationsBus)
concerne concerne
1 {frozen} 1 {frozen}
Vol VoyageEnBus
(from Vols) (from VoyagesBus)
144. Diagramme d’objets : Objectif
Le diagramme d‟objets permet de mettre en évidence
des liens entre les objets. Les objets, instances de
classes, sont reliés par des liens, instances
d‟associations.
A l‟exception de la multiplicité, qui est explicitement
indiquée, le diagramme d‟objets utilise les mêmes
concepts que le diagramme de classes. Ils sont
essentiellement utilisés pour comprendre ou illustrer
des parties complexes d‟un diagramme de classes.
145. Diagramme d’objets : Objet
Notiond’Objet
Une abstraction du monde réel c.-à-d. des données
informatiques regroupant des caractéristiques du
monde réel.
Un objet est une instance d'une classe.
Exemple
une personne, une voiture, une maison, ...
146. Diagramme d’objets : Objet
Chaque objet est unique et a un identifiant qui le
distingue des autres objets.
Les objets peuvent avoir un nom suivi de deux points et
du nom de la classe.
Trois représentations possibles des instances :
148. UML : Unified Modeling Language
Diagramme
de composants
149. Diagramme de composants : Objectif
Les diagrammes de composants décrivent les composants et
leurs dépendances dans l‟environnement de réalisation.
En général, ils ne sont utilisés que pour des systèmes
complexes.
Les diagrammes de composants permettent de décrire
l'architecture physique et statique d'une application en
terme de modules : fichiers sources, librairies, exécutables,
etc. Ils montrent la mise en œuvre physique des modèles de
la vue logique avec l'environnement de développement.
150. Diagramme de composants : Le composant
Un composant est un élément physique qui représente une
partie implémentée d‟un système. Un composant peut être
du code (source, binaire ou exécutable), un script, un fichier
de commandes, un fichier de données, une table, etc. Il peut
réaliser un ensemble d‟interfaces qui définissent alors le
comportement offert à d‟autres composants.
151. Diagramme de composants : La relation
Les relations de dépendance sont utilisées dans les
diagrammes de composants pour indiquer qu‟un élément
d‟implémentation d‟un composant fait appel aux services
offerts par les éléments d‟implémentation d‟un autre
composant.
152. Diagramme de composants : Stéréotypes
UML définit 5 stéréotypes aux composants :
- «« document »» : un document quelconque
- «« exécutable »» : un programme qui peut s‟exécuter
- «« fichier »» : un document contenant un code source ou
des données
- «« bibliothèque »» : une bibliothèque statique ou
dynamique
- «« table »» : une table de base de données relationnelle
154. UML : Unified Modeling Language
Diagramme
de déploiement
155. Diagramme de déploiement : Objectif
Les diagrammes de déploiement montrent la disposition
physique des différents matériels (les noeuds) qui entrent
dans la composition d‟un système et la répartition des
instances de composants, processus et objets qui « vivent »
sur ces matériels.
Le diagramme de déploiement modélise les composants
matériels utilisés pour implémenter un système et
l'association entre ces composants.
Les diagrammes de déploiement sont donc très utiles pour
modéliser l‟architecture physique d‟un système.
156. Diagramme de déploiement : Le composant
Un composant représente une entité logicielle du système.
(fichier de code source, programmes, documents, fichiers de
ressource .etc.). Sur un diagramme de déploiement, les
composants sont placés dans des noeuds pour identifier
l'endroit de leur déploiement.
157. Diagramme de déploiement : Le nœud
Un noeud représente un ensemble d'éléments matériels du
système. Cette entité est représentée par un cube
tridimensionnel.