1
Génie logiciel et méthodes de conception orientées objetp j
UMLModélisation statique
2012-2013
GL & MCOO A. Abdellatif
Sommaire
IntroductionDiagramme de classesDiagramme d’objetsDiagramme de composantsDiagramme de déploiement
UML : Modélisation statique 2
Synthèse
2
GL & MCOO A. Abdellatif
IntroductionLa modélisation statique d’un systèmeconsiste à décrire les composantes de ceconsiste à décrire les composantes de cedernier sans tenir compte de leur évolutiondans le temps.Elle se fait à l’aide des diagrammessuivants :
Diagramme de classesDiagramme d’objetsDiag amme de composants
UML : Modélisation statique 3
Diagramme de composantsDiagramme de déploiement
Diagramme de classesg
3
GL & MCOO A. Abdellatif
Diagramme de classes : Présentation
Représente les classes constituant le système et les associations entre ellessystème et les associations entre elles.C’est le diagramme le plus important de la modélisation orientée objet.Regroupe les classes du monde réel et les classes nécessaires à l’implémentation du système.
d é é l b d d é
UML : Modélisation statique 5
Permet de générer la base de données et les classes utilisées dans la programmation des applications.
GL & MCOO A. Abdellatif
Diagramme de classes : Concepts de base
Le diagramme de classes se base sur lesconcepts suivants :concepts suivants :
Classe : Description formelle d’un ensemble d’objetsayant une sémantique, des propriétés et uncomportement communs.Association : Relation sémantique entre deux ouplusieurs classes.Propriété (attribut) : élément permettant dedécrire une classe ou une association.
é é é é
UML : Modélisation statique 6
Méthode : Opération réalisée par les objets d’uneclasse.Paquetage : Décomposition du diagramme declasses
4
GL & MCOO A. Abdellatif
Diagramme de classes : Représentation d’une classe
Nom classe
Attributs
Personne
MatriculeNomPrenomDate naissance
UML : Modélisation statique 7
MéthodesDate_naissanceAge ()
Forme minimale
GL & MCOO A. Abdellatif
Diagramme de classes : Représentation détaillée d’une classe
Personne
+++-#
MatriculeNomPrenomDate_naissancePermanant
: int: char: char: date: boolean = vrai
+ Age () : intVisibilité :+ Public
Type de données
Valeur initiale
UML : Modélisation statique 8
+ Public- Privé# Protégé Type de
valeur de retour
5
GL & MCOO A. Abdellatif
Diagramme de classes : Représentation d’une association
Classe A Classe BClasse A Classe B
Avec possibilité de préciser :
•Un nom d’association
UML : Modélisation statique 9
•Une décoration
•Le rôle de chaque classe
•Des cardinalités
GL & MCOO A. Abdellatif
Diagramme de classes : Représentation d’une association
Tra va il le r d a n sE m p lo y é E n t re p ris e
Tra va i l le r d a n s >E m p lo y é E n t re p ris e
Travaille dansE m ploy é E ntrepris e
Nom d’association
Décoration
UML : Modélisation statique 10
Travaille dans
Fait t ravailler
E m ploy é E ntrepris e
Rôle
6
GL & MCOO A. Abdellatif
Cardinalités possibles :
Diagramme de classes : Cardinalités (multiplicité)
Employé
1 Un et un seul1..1 Un et un seul0..1 Zéro ou un (optionnel)m..n De m à n0..* Zéro ou plusieurs
0..*
1..1
UML : Modélisation statique 11
p* Zéro ou plusieurs1..* Un à plusieurs
Entreprise
GL & MCOO A. Abdellatif
Diagramme de classes : Navigabilité d’association
Chaque sens d’une association binaire peut être navigable ou non.La navigabilité est représentée pas une flèche.La non navigabilité est représentée par une croix.L’absence de ces deux symbole veut dire que l’association est navigable dan les deux sens.
0..* 1..*Commande Article
UML : Modélisation statique 12
Signification :Une occurrence de Commande stocke une liste des Articles.Une occurrence d’Article ne stocke pas une liste des commandes.
7
GL & MCOO A. Abdellatif
Diagramme de classes : Classe association
Si l’association est porteuse de données, elle est représentée par une classe association.Une classe association peut avoir des propriétés et des méthodes.
0..* 1..*Commande Article
UML : Modélisation statique 13
LigcoCommande
+ quantite : int
GL & MCOO A. Abdellatif
Diagramme de classes : Les contraintes
Lorsque les cardinalités ne sont pasffi t t d i l è l dsuffisantes pour traduire les règles de
gestion, un digramme de classe peutêtre complété par des contraintes.
{contrainte}
UML : Modélisation statique 14
Une contrainte concerne une ouplusieurs associations.
8
GL & MCOO A. Abdellatif
Diagramme de classes : Les contraintes
Toute règle peut être représentée sous f d iforme de contraintes.Contraintes couramment utilisée :
{ordonnée} : Signifie l’existence d’une relation d’ordre entre les objets de la classe indiquée par la contrainte.{Sous-ensemble} : Indique qu’une collection
UML : Modélisation statique 15
est incluse dans une autre.{Ou exclusif} : Signifie la participation exclusive d’un objet à l’une ou l’autre des associations.
GL & MCOO A. Abdellatif
Diagramme de classes : Les contraintes : exemples
1..1 0 *Livre Chapitre
1..1 0..{Ordonnée}
0..1
0..*
1..11..*
Inscrit dansSection Etudiant
{Sous-ensemble}
1..1 0 *
UML : Modélisation statique 16
Représente
1..1Se déplace 0..*
Reçoit 0..Equipe Match
{Ou exclusif}
9
GL & MCOO A. Abdellatif
Diagramme de classes : Association d’agrégation
Une agrégation est une association qui représente une relation d’inclusion structurelle ou comportementale d’un élément dans un ensemble.
0..1
Entreprise Véhicule
Agrégat Agrégé
UML : Modélisation statique 17
0..*
Entreprise
GL & MCOO A. Abdellatif
Diagramme de classes : Association de composition
Une composition est une association qui décrit une contenance structurelle entre instances. Composite
Composants 1..1
1..1
1..1
Vehicule
UML : Modélisation statique 18
Remarque :La destruction de l’objet composite entraîne la destruction des objets composants
4..41..11..1
Moteur BoiteVitesse Roue
10
GL & MCOO A. Abdellatif
Diagramme de classes : Association de qualification
Permet de partitionner les objets d’ l t à t i d’une classe par rapport à certaines propriétés de l’autre classe.
Class_1 Class_2Clé
UML : Modélisation statique 19
0..*Répertoire Fichier
Nom_repertoire
GL & MCOO A. Abdellatif
Diagramme de classes : Association n-aire
Association reliant plus que deux classes.
A B
UML : Modélisation statique 20
Remarque :Les associations n-airessont généralementremplacées par uneclasse.
Class_assocC
11
GL & MCOO A. Abdellatif
Diagramme de classes : Association n-aire (Exemple)
Section Module
0 *0 *
1..1
0..*
1..1
0..*
Section Module
Emploi du temps
++
H débutH fin
: int: int
Replacé par
SalleJour
Emploi du temps
+ H début : int
UML : Modélisation statique 21
1..1
0..
1..1
0..
SalleJour
+ H fin : int
GL & MCOO A. Abdellatif
Diagramme de classes : Association d’héritage
Représente une relation d’héritage entre super classes et sous classes.
A Personne
++++
CINNomPrénomDate naissance
+ Age () : int
UML : Modélisation statique 22
BCPilote
+ Date embauche
Passager
+ Numero billet
12
GL & MCOO A. Abdellatif
Diagramme de classes : Association d’héritage multiple
Moyen transport
Terrestre Aérien Maritime
UML : Modélisation statique 23
Voiture Avion BateauHydravion
GL & MCOO A. Abdellatif
Diagramme de classes : Association d’héritage exclusif
Client
{Exclusif}
UML : Modélisation statique 24
Particulier Exclusif
13
GL & MCOO A. Abdellatif
Diagramme de classes : Association d’héritage :règles
Une association d’héritage ne peut pas être :
Réflexive :
Symétrique :
Class_1A
B A
UML : Modélisation statique 25
Transitive : BA C
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:Système de réservation de vols
Source :UML par la pratique : études de cas et exercices corrigésPascal RoquesEyrolles
UML : Modélisation statique 26
y
14
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:Système de réservation de volsÉnoncé :1. Des compagnies aériennes proposent différents vols.p g p p2. Un vol est ouvert à la réservation et refermé 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. Un vol a un jour et une heure de départ , et un jour et une
heure d’arrivée.7 Un vol a un aéroport de départ et un aéroport d’arrivée
UML : Modélisation statique 27
7. Un vol a un aéroport de départ et un aéroport d’arrivée. 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.10. Chaque aéroport dessert une ou plusieurs villes.
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:Système de réservation de vols
CompagnieAerienne
nomCompagnieClient
codeClientnomClient
infoescale0..*escale
0..*
relier21..1arrivee
0..*
relier 11..1depart
0..*
<concerner
1..1 0..*
effectuer1..1
0..*
Propose
1..*
1..*
Vol
numeroVoldateDepartheureDeprtdateArriveeheureArriveeouvrirReservation ()fermerReservation ()
prenomClientadresseClientnumTelnumFax
Reservation
dateReservationnumeroReservationconfirmer ()annuler ()
Aeroprt
nomAeroprt
UML : Modélisation statique 28
dessert
0..*
0..*concerne
0..*
1..1
Passager
nomPassagerprenomPassager
Ville
nomVille
InfosEscale
heureArriveeheureDepart
{ordonnée}
15
GL & MCOO A. Abdellatif
Exemple de diagramme de classes:Système de réservation de vols
CompagnieAerienne
nomCompagnieClient
codeClientnomClient
infoescale0..*escale
0..*
relier21..1arrivee
0..*
relier 11..1depart
0..*
<concerner
1..1 0..*
effectuer1..1
0..*
Propose
1..*
1..*
Vol
numeroVoldateDepartheureDeprtdateArriveeheureArriveeouvrirReservation ()fermerReservation ()
prenomClientadresseClientnumTelnumFax
Reservation
dateReservationnumeroReservationconfirmer ()annuler ()
Aeroprt
nomAeroprt
ns
UML : Modélisation statique 29
dessert
0..*
0..*concerne
0..*
1..1
Passager
nomPassagerprenomPassager
Ville
nomVille
InfosEscale
heureArriveeheureDepart
{ordonnée}
Vo
ls
Rése
rvati
on
Diagramme d’objetsg j
16
GL & MCOO A. Abdellatif
Diagramme d’objets : Présentation
C’est un diagramme de classes appliqué è à l bjconcrètement à quelques objets.
Appelé aussi diagramme d’instances.Permet de préciser un diagramme de classes en l’illustrant par des exemplesPermet de vérifier l’adéquation du diagramme de classes à des cas
UML : Modélisation statique 31
diagramme de classes à des cas particuliers.
GL & MCOO A. Abdellatif
Diagramme d’objets : Concepts de base
Le diagramme de classes se base sur lesconcepts suivants :
Objet : Description d’un objet du monde réel(instance de classe).Lien : Relation sémantique entre deux ouplusieurs objets (instance d’association).
UML : Modélisation statique 32
Valeur : Valeur d’une propriété relative à unobjet.
17
GL & MCOO A. Abdellatif
Correspondance entre diagrammes de classes et diagrammes d’objets
1..* 0..*
10..* 0..*
1..*
1..*1..*
1..*
0..*1 *
1..*1..*
Diagramme classes Diagramme objets
LienAssociation
UML : Modélisation statique 33
1 0..*
1..*1..*
1..*1..*
ObjetClasse
GL & MCOO A. Abdellatif
Diagramme d’objets : Représentation d’un objet
N bj tTrois représentations possibles :
Nom objet Nom objet:Nom classe :Nom classe
Exemples :
Objet nomméObjet nommé avec sa classe Objet anonyme
UML : Modélisation statique 34
C250 C250:Modèle voiture :Modèle voiture
18
GL & MCOO A. Abdellatif
Diagramme d’objets : Représentation détaillée d’un objet
Nom objet:Nom classe
Nom propriété = valeur
Nom propriété de la classe
Valeur propriété pour l’objet
UML : Modélisation statique 35
C250:Modèle voiture
MarqueAnnée
= Mercedes = 2002
GL & MCOO A. Abdellatif
Diagramme d’objets : Représentation des liens
Objet 1 Objet 2
Remarques :
•Pas de cardinalités
j j
UML : Modélisation statique 36
•Possibilité de nommer le lien
19
GL & MCOO A. Abdellatif
Diagramme d’objets : Représentation des liens : exemple
Diagramme de classes :
Diagramme d’objets :
1..*1..4
1..11..1
Vehicule RoueMoteur
Voiture Moteur
UML : Modélisation statique 37
Roue AV D Roue AG Roue AR D Roue AR G
GL & MCOO A. Abdellatif
Diagramme d’objets : Représentation des liens : exemple
Diagramme de classes :
0..1Dirige
0..*Dirigé parEmployé
UML : Modélisation statique 38
Diagramme d’objets :DirigeMohamed:Employé Ali:Employé
20
GL & MCOO A. Abdellatif
Diagramme d’objets : Objets multiples
Lorsqu’un objet est lié à plusieurs autres objets, on peut :
Représenter explicitement tous ces objets :
Objet A
Objet B1
Objet B2
Objet B3
UML : Modélisation statique 39
Représenter ces objets par un objet multiple:Objet A :Classe C
GL & MCOO A. Abdellatif
Diagramme d’objets : Objets multiples : exemple
Diagramme de classes :
0..1Dirige
0..*Dirigé parEmployé
UML : Modélisation statique 40
Diagramme d’objets :DirigeMohamed:Employé :Employé
21
GL & MCOO A. Abdellatif
Diagramme d’objets : Objets composites
Un objet composite est une instance d’une classe ayant une association de composition.
0..1
Classe A:Classe A
1:Classe B 2:Classe B 3:Classe B
UML : Modélisation statique 41
0..*
Classe B
1:Classe B 2:Classe B 3:Classe B
GL & MCOO A. Abdellatif
Diagramme d’objets : Objets composites : exemple
Fenetre
me
s
1
1
1
2 1
1
Zone travailBarre défilement Palette d'outils
F t
Dia
gra
mm
de c
lass
es
e
UML : Modélisation statique 42
:Fenetre
:Palette d'outils1:Barre défilement :Zone travail2:Barre défilement
Dia
gra
mm
eD
’ob
jets
22
Diagramme de composantsg p
GL & MCOO A. Abdellatif
Diagramme de composants : Présentation
Un diagramme de composant décrit la façon selon laquelle les composantes logicielles seront réalisées.Il représente les choix de réalisation.Il est destiné aux réalisateurs (développeurs)
UML : Modélisation statique 44
(développeurs).
23
GL & MCOO A. Abdellatif
Diagramme de composants : Concepts de baseLe diagramme de composants se base sur lesconcepts suivants :concepts suivants :
Composant : Toute sorte d’élément physiquepermettant la réalisation d’un logiciel.Dépendance entre composants : Relation dedépendance entre deux ou plusieurs composants.Programme principal : Constitue le point d’entréedans une application.
UML : Modélisation statique 45
Sous-programme : Procédure ou fonction necontenant aucune classe.Sous-système : Regroupement d’un ensemble decomposants.
GL & MCOO A. Abdellatif
Diagramme de composants : Les composants
Les composants représentent toute sortes d’élémentsphysiques permettant la réalisation d’un logicielphysiques permettant la réalisation d un logiciel.Un composant est appelé aussi module.Un composant se présente sous forme de fichier.Dans l’approche objet, chaque classe constitue uncomposant.Chaque classe (composant) est représentée par deuxéléments : une spécification et un corps
UML : Modélisation statique 46
éléments : une spécification et un corps.
24
GL & MCOO A. Abdellatif
Diagramme de composants : Les composants: représentation
Trois représentations possibles :
Composant A
<<Composant>>
Composant A
UML : Modélisation statique 47
Composant Axx
GL & MCOO A. Abdellatif
Diagramme de composants : Les composants: Exemple
<<Composant>>
Vérificateur d’orthographe
Vérificateur d'orthographe
UML : Modélisation statique 48
Vérificateur d’orthographe
xx
25
GL & MCOO A. Abdellatif
Diagramme de composants : Dépendance entre composants
Dans un diagramme de composants, lal i d dé d ili érelation de dépendance est utilisée pour
indiquer qu’un composant fait référence auxservices offerts par un autre composant.Cette notion est utile pour représenter adépendance de compilation entrecomposants.
UML : Modélisation statique 49
composants.
GL & MCOO A. Abdellatif
Diagramme de composants : Dépendance: représentation
Composant A Composant B
Exemple :Editeur texte
UML : Modélisation statique 50
Vérificateur d'orthographe Vérificateur grammaire
26
GL & MCOO A. Abdellatif
Diagramme de composants : Programme principal
Chaque application a un point d’entréeappelé programme principal (main).
Main
UML : Modélisation statique 51
GL & MCOO A. Abdellatif
Diagramme de composants : Les sous-programmes
Les sous-programmes regroupent lesprocédures et les fonctions quin’appartiennent à aucune classe.
F1
UML : Modélisation statique 52
27
GL & MCOO A. Abdellatif
Diagramme de composants : Les sous-systèmes
Dans le cas de systèmes complexes, unensemble de composants peuvent êtreensemble de composants peuvent êtreregroupés dans un sous-système.Constitue la notion de bibliothèque.Utilise le formalisme de paquetage.
UML : Modélisation statique 53
Sous-système 1
Composant A Composant B
Diagramme de déploiementg p
28
GL & MCOO A. Abdellatif
Diagramme de déploiement : Présentation
Représente la structure physique duè i f i l é i i dsystème informatique et la répartition des
composantes logicielles sur ce système.Constitue un moyen pour représenter lesdifférentes architectures selon laquelle lenouveau logiciel peut être déployé :
Architecture centralisée
UML : Modélisation statique 55
Architecture centraliséeArchitecture client/serveur à deux niveauxArchitecture client/serveur à trois niveauxArchitecture client/serveur à n niveaux
GL & MCOO A. Abdellatif
Diagramme de déploiement : Concepts de base
Le diagramme de déploiement se basesur les concepts suivants :
Noeud : Description d’un dispositif matériel.Composant : Composante logicielle.Association de noeud : Relation entre deuxnoeuds.
UML : Modélisation statique 56
Instance de noeud : C’est une occurrenced’un dispositif matériel.
29
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les noeuds
Chaque dispositif matériel estreprésenté par un noeud.Un nœud est décrit par :
Un nom (obligatoire)Un stéréotype (serveur, client,imprimante, routeur, …)
UML : Modélisation statique 57
p , , )Une adresse réseauUne cardinalité
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les nœuds : représentation
<<Serveur de données>>SD
190.190.10.10Nom du noeud
Type de dispositif
UML : Modélisation statique 58
Adresse réseau
1Cardinalité
30
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les composants
Dans chaque nœud, on peut indiquerles composants logiciels qui vont y êtreinstallés.On utilise le même formalisme quecelui du diagramme de composants.
UML : Modélisation statique 59
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les composants: représentation
<<Serveur de données>>SD
190.190.10.10
UML : Modélisation statique 60
1SGBD Oracle
31
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les associations
Les nœuds sont inter reliés par desi iassociations.
Chaque association entre deux nœudsreprésente l’existence d’un support decommunication entre eux.Pour chaque association, on peut préciser :
Le nom
UML : Modélisation statique 61
Le nomLe rôle de chaque côtéLa cardinalité
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les associations:représentation
Nom association1..1
Rôle 1
1..*Rôle 2
Noeud 1 Noeud 2
UML : Modélisation statique 62
32
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les associations:exemple
OAS
TCP-IP1..3
1..1
Internet
1..1
Serveur Applications
Serveur de données
SGBD Oracle
IIS
CRM
UML : Modélisation statique 63
0..*
USBClient Imprimante
Navigateur
GL & MCOO A. Abdellatif
Diagramme de déploiement : Instances de noeud
Dans un diagramme de déploiement, on peuté l i d dreprésenter les instances des nœuds.
Cette possibilité est utilisée surtout pourreprésenter de façon exhaustive des partiesdu diagramme de déploiement.Les instances de nœuds se distinguent desnœuds par le fait que leurs noms sont
UML : Modélisation statique 64
nœuds par le fait que leurs noms sontsoulignés.
33
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les associations:représentation
Instance de nœud
UML : Modélisation statique 65
GL & MCOO A. Abdellatif
Diagramme de déploiement : Les associations:exemple
Serveur app 1
Serveur app 2 Serveur de données
UML : Modélisation statique 66
Serveur app 3
34
GL & MCOO A. Abdellatif
SynthèseUtiliser les diagrammes de classes pourdécrire des composantes structurelles d’undécrire des composantes structurelles d unSI.Utiliser les diagrammes d’objets pourillustrer et tester les diagrammes declasses.Utiliser les diagrammes de composantspour montrer la façon selon laquelle lelogiciel sera découpé en composantes
UML : Modélisation statique 67
logiciel sera découpé en composantes.Utiliser les diagrammes de déploiementpour envisager les différentes façons selonlesquelles le logiciel peut être exploité.