M.E.D.A.L. - PowerPoint PPT Presentation

About This Presentation
Title:

M.E.D.A.L.

Description:

M.E.D.A.L. Licence Informatique 3 me ann e Diagramme de classes Module d Enseignement Distance pour l Architecture Logicielle Alain VAILLY – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 133
Provided by: Alai132
Category:
Tags: diagrammes

less

Transcript and Presenter's Notes

Title: M.E.D.A.L.


1
M.E.D.A.L.
Licence Informatique 3ème année
Diagramme de classes
  • Module dEnseignement à Distance pour
    lArchitecture Logicielle

Alain VAILLY
Diapositive n 1
Université de NANTES
2
AVERTISSEMENT
Lusage de ce document, sous quelque forme que ce
soit (électronique, papier), à titre personnel
ou devant des étudiants, est autorisé et libre de
droits, à la condition expresse quil soit
conservé dans létat (et notamment quil comporte
la page de garde et cet avertissement). Tout
autre usage, notamment commercial, toute
diffusion via un serveur informatique, une liste
de diffusion est soumis à laccord PRÉALABLE de
son auteur. Ce document constitue un TOUT. Toute
coupe, toute modification non autorisée par son
auteur sera assimilée à une atteinte aux droits
de lauteur et poursuivie comme telle devant les
tribunaux.
Alain VAILLY
Diapositive n 2
Université de NANTES
3
Projet ENRC DVD MIAGE
Projet soutenu par le Conseil Régional des Pays
de La Loire dans le cadre des projets ENRC
2007-2008
Thématique Passerelles vers et dans
lenseignement supérieur
Alain VAILLY
Diapositive n 3
Université de NANTES
4
M.E.D.A.L.
Cours magistral
Evaluation
Références
  • MEDAL

Contexte
Exercices
Corrigés des exercices
Etudes de cas
Auto-évaluation
Alain VAILLY
Diapositive n 4
Université de NANTES
5
M.E.D.A.L.
Cours magistral
- Introduction
- Analyse
PLAN
1) Introduction
2) Approche pragmatique des classes
3) Diagramme de classes
4) Utilisation du diagramme de classes
5) Conclusion
Alain VAILLY
Diapositive n 5
Université de NANTES
6
M.E.D.A.L.
1) Introduction
Objets métiers
Lactivité danalyse construit la structure
conceptuelle du système en terme de classes. La
fin de lactivité précédente, celle danalyse des
besoins, se termine fréquemment par un modèle du
domaine (Domain Model). Ce dernier est bâti à
partir de classes. Nous commençons donc ce
chapitre par létude de ce type de diagramme
après avoir regardé comment lon passe dun
schéma E-A-P à un ensemble de classes, nous
passons en revue les différentes notions
utilisables et terminons par une discussion
autour de lusage que lon peut (et que lon
doit) faire de ce type de schémas.
Alain VAILLY
Diapositive n 6
Université de NANTES
7
M.E.D.A.L.
2) Approche pragmatique des classes
Nom de la classe
Une classe est définie par un ensemble de
caractéristiques (attributs et opérations)
optionnellement typés.
Attributs de la classe
Opérations de la classe
Les caractéristiques de la classe sont partagées
par toutes les instances de la classe.
Il y en a dautres.
Alain VAILLY
Diapositive n 7
Université de NANTES
8
M.E.D.A.L.
2) Approche pragmatique des classes
  • Le passage dun schéma E-A-P (entités-associations
    -propriétés) de type Merise se fait, pour
    lessentiel, simplement mais au prix de quelques
     difficultés 
  • Il ny a pas didentifiant dans un diagramme de
    classes
  • Les cardinalités sont positionnées à lenvers
    par rapport au schéma dorigine
  • Un schéma Merise ne contient que des
    informations la partie opérations du diagramme
    de classes est donc non concernée par cette
    traduction.

Alain VAILLY
Diapositive n 8
Université de NANTES
9
M.E.D.A.L.
On peut y remédier.
2) Approche pragmatique des classes
Le passage se fait sans perte dinformationsauf
celle relative au fait que le numéro sert
didentifiant.
Alain VAILLY
Diapositive n 9
Université de NANTES
10
M.E.D.A.L.
2) Approche pragmatique des classes
  • Un diagramme de classes est un réseau de classes,
    dans lequel les nœuds correspondent aux classes
    et les arcs aux relations existant entre ces
    classes.
  • Il y a (principalement) trois types de relations
    association, spécialisation et dépendance.
  • Lassociation est une abstraction dun ensemble
    de liens entre objets
  • La dépendance définit une causalité générale
    entre classes
  • La spécialisation correspond à lhéritage.

Mais encore ?
Alain VAILLY
Diapositive n 10
Université de NANTES
11
M.E.D.A.L.
2) Approche pragmatique des classes
  • Ces relations sont modélisées de la façon
    suivante (dans lordre dapparition)
  • association  simple 
  • association orientée
  • agrégation
  • composition
  • spécialisation
  • dépendance
  • réalisation

Alain VAILLY
Diapositive n 11
Université de NANTES
12
M.E.D.A.L.
2) Approche pragmatique des classes
Lors de la traduction, les associations perdent
du  poids .
Alain VAILLY
Diapositive n 12
Université de NANTES
13
M.E.D.A.L.
2) Approche pragmatique des classes
sauf dans le cas dassociations n-aires (avec n gt
2)
Ceci a été ajouté  à la main , car non
disponible dans la palette graphique de loutil
utilisé.
Alain VAILLY
Diapositive n 13
Université de NANTES
14
M.E.D.A.L.
On a là ce que lon appelle une
classe-association.
2) Approche pragmatique des classes
ou des associations porteuses dinformation(s)
Alain VAILLY
Diapositive n 14
Université de NANTES
15
M.E.D.A.L.
2) Approche pragmatique des classes
Les cardinalités sont inversées (comme dans
toutes les notations dorigine anglo-saxone).
Alain VAILLY
Diapositive n 15
Université de NANTES
16
M.E.D.A.L.
2) Approche pragmatique des classes
Le vocabulaire pour noter les cardinalités est
(un peu) plus riche que celui employé dans Merise

1 0..1 N M..N 0.. 1..
un et un seul zéro ou un (de zéro à un) N (entier
naturel) de M à N (entiers naturels) de zéro à
plusieurs de zéro à plusieurs de un à plusieurs
Alain VAILLY
Diapositive n 16
Université de NANTES
17
M.E.D.A.L.
2) Approche pragmatique des classes
Linversion des cardinalités rend leur
interprétation particulièrement difficile dans le
cas des associations n-aires.
1
Cela concerne quelle classe ?
Alain VAILLY
Diapositive n 17
Université de NANTES
18
M.E.D.A.L.
2) Approche pragmatique des classes
De fait, UML privilégie les associations
binaires, quitte à transformer les
classes-associations en classes
Alain VAILLY
Diapositive n 18
Université de NANTES
19
M.E.D.A.L.
2) Approche pragmatique des classes
Alain VAILLY
Diapositive n 19
Université de NANTES
20
M.E.D.A.L.
2) Approche pragmatique des classes
0..1
0..
Alain VAILLY
Diapositive n 20
Université de NANTES
21
M.E.D.A.L.
3) Diagramme de classes
Une classe se compose dun ensemble dattributs,
dun ensemble dopérations. Elle a un nom qui
définit ce quelle est et non ce quelle fait. Il
est possible de lui ajouter un ensemble
dexceptions et un ensemble de responsabilités.
Un stéréotype (une sorte de comportement
standard) peut lui être accolé.
Alain VAILLY
Diapositive n 21
Université de NANTES
22
M.E.D.A.L.
syntaxe officielle
3) Diagramme de classes
Les attributs sont notés comme ceci
Visibilité Nom_attribut Multiplicité  
  Type_attribut Valeur_initiale
Propriété Visibilité
- Multiplicité (Intervalle Nombre)
, Multiplicité Intervalle
Limite_inférieure .. Limite_supérieure Nombre
Entier_positif (illimité) Entier_positi
f entier naturel Type_attribut spécification
du type de lattribut Valeur_initiale
expression qui définit la valeur initiale dun
objet nouvellement créé Propriété une propriété
et sa valeur
Alain VAILLY
Diapositive n 22
Université de NANTES
23
M.E.D.A.L.
(valeur par défaut)
3) Diagramme de classes
  • Un attribut ou une opération sera plus ou moins
    visible selon la valeur donnée à la propriété
    Visibilité. UML définit trois niveaux de
    visibilité
  • un attribut public est visible de tous les
     clients  de la classe
  • un attribut privé ne sera visible que de la
    classe
  • un attribut protégé ne sera visible que de la
    classe et de ses sous-classes.
  • Certains outils ajoutent un quatrième niveau,
    celui du package. Un attribut ayant ce niveau de
    visibilité sera visible de toutes les classes du
    package (paquetage en français).

-

cest quoi un paquetage ?
Alain VAILLY
Diapositive n 23
Université de NANTES
24
M.E.D.A.L.
3) Diagramme de classes
Les paquetages permettent de structurer les
modèles et le diagramme de classes en
particulier. Chaque paquetage contient un ou
plusieurs diagrammes de classes. Il contient
éventuellement dautres types de
diagrammes. Le découpage en paquetages
correspond à une structuration verticale des
applications.
Alain VAILLY
Diapositive n 24
Université de NANTES
25
M.E.D.A.L.
dépend
3) Diagramme de classes
Les participations entre paquetages sont
modélisées grâce aux relations de
dépendance. La gestion des contrats
nécessite, implique, fait appel à la gestion des
auteurs signant les contrats.
Alain VAILLY
Diapositive n 25
Université de NANTES
26
M.E.D.A.L.
3) Diagramme de classes
  • On peut associer à cette relation de dépendance
    entre paquetages deux stéréotypes
  •  importe  les classes (et les autres
    éléments) du paquetage de destination sont
    ajoutées à lespace de nommage défini par le
    paquetage source.
  • Les classes visibles du paquetage de droite sont
    accessibles aux classes de gauche.

Alain VAILLY
Diapositive n 26
Université de NANTES
27
M.E.D.A.L.
3) Diagramme de classes
  • On peut associer à cette relation de dépendance
    entre paquetages deux stéréotypes
  •  accède  les classes (et les autres éléments)
    du paquetage de destination peuvent être
    référencées par les classes du paquetage source.
  • Les classes visibles du paquetage de droite sont
    référençables par les classes de gauche. La
    dépendance  accède  nest pas transitive.

Alain VAILLY
Diapositive n 27
Université de NANTES
28
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
privée
Par défaut, tout est public.
Alain VAILLY
Diapositive n 28
Université de NANTES
29
M.E.D.A.L.
3) Diagramme de classes
Ces liaisons entre paquetages ne doivent pas être
circulaires
NB ce schéma a pourtant été accepté par
StarUML...
Alain VAILLY
Diapositive n 29
Université de NANTES
30
M.E.D.A.L.
3) Diagramme de classes
Il faut également éviter des dépendances
circulaires transitives comme celle ci-dessous
Alain VAILLY
Diapositive n 30
Université de NANTES
31
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Revenons à la propriété de visibilité. Il est
possible de définir la visibilité dune classe ou
dune association, comme le montre lexemple
ci-après
Par défaut, tout est public.
Nous reviendrons sur cet exemple.
privée
Alain VAILLY
Diapositive n 31
Université de NANTES
32
M.E.D.A.L.
attribut de classe
3) Diagramme de classes
Par défaut, la portée lexicale dun attribut ou
dune opération est celle de linstance dune
classe.
Il est possible détendre cette portée en
définissant des attributs et des opérations de
classe. Ceci autorise toutes les instances de la
classe à partager ces attributs et opérations.
Ces attributs et opérations de classe seront
soulignés.
Alain VAILLY
Diapositive n 32
Université de NANTES
33
M.E.D.A.L.
3) Diagramme de classes
  • Le type des attributs peut être une classe, un
    type primitif (Entier, Chaîne...) ou une
    expression complexe dont la syntaxe nest pas
    précisée par UML (Tableaux de Points...).
  • La propriété associée aux attributs exprime les
    possibilités de changements liés à ceux-ci, par
    le biais des valeurs suivantes
  • gelé attribut non modifiable
  • variable propriété par défaut dun attribut
    modifiable
  • ajoutUniquement seul lajout dune valeur est
    possible (ne sert que pour un attribut dont la
    multiplicité est supérieure à 1).

Alain VAILLY
Diapositive n 33
Université de NANTES
34
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
gelé
Alain VAILLY
Diapositive n 34
Université de NANTES
35
M.E.D.A.L.
3) Diagramme de classes
Il est possible, en UML, de définir des
propriétés calculables. Ce qui était complètement
interdit dans un schéma entités-associations-propr
iétés (E-A-P) de type Merise est autorisé dans un
diagramme de classes UML. Il est conseillé
de donner, dans une note, la formule de calcul.
Alain VAILLY
Diapositive n 35
Université de NANTES
36
M.E.D.A.L.
3) Diagramme de classes
Ces propriétés calculables seront remplacées,
lors de la conception, par des opérations. Il est
possible (ie. conseillé) de le faire tout de
suite si lon peut.
Alain VAILLY
Diapositive n 36
Université de NANTES
37
M.E.D.A.L.
syntaxe officielle
3) Diagramme de classes
Les opérations sont notées comme ceci
Visibilité Nom_opération ( Arguments  )
 
Type_retourné Propriété Visibilité
- Arguments Direction
Nom_argument Type_argument
Valeur_par_défaut , Arguments Direction
in out inout Nom_argument nom de
largument Type_argument spécification du type
de largument Valeur_par_défaut valeur donnée
par défaut à largument Type_retourné précise
le type retourné par lopération Propriété une
propriété et sa valeur
Alain VAILLY
Diapositive n 37
Université de NANTES
38
M.E.D.A.L.
3) Diagramme de classes
Parmi les propriétés quil est possible
daffecter à une opération, on peut citer
abstraite lopération est abstraite,
cest-à-dire quelle na pas de corps. Elle nest
pas implémentée dans la classe. estFeuille
lopération ne peut pas être redéfinie dans une
sous-classe. estRacine lopération est définie
pour la première fois.
Alain VAILLY
Diapositive n 38
Université de NANTES
39
M.E.D.A.L.
3) Diagramme de classes
Il est possible de stéréotyper les opérations, ce
qui permet de les ranger en fonction de leur
effet
Alain VAILLY
Diapositive n 39
Université de NANTES
40
M.E.D.A.L.
? à la fin des opérations de type Question
3) Diagramme de classes
Attention, toutefois, aux noms de ces opérations
stéréotypes ayant des noms significatifs
Alain VAILLY
Diapositive n 40
Université de NANTES
41
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
abstraites
Alain VAILLY
Diapositive n 41
Université de NANTES
42
M.E.D.A.L.
3) Diagramme de classes
Il est aussi possible de stéréotyper les
attributs, ce qui peut permettre de  régler  le
problème, évoqué précédemment, de la perte de
linformation relative à la qualité didentifiant
dun attribut.
Alain VAILLY
Diapositive n 42
Université de NANTES
43
M.E.D.A.L.
3) Diagramme de classes
Il y a plusieurs forme de classes - Une classe
abstraite est une classe qui ne peut avoir
dinstances
Nom en italique
À quoi ça sert ?
Alain VAILLY
Diapositive n 43
Université de NANTES
44
M.E.D.A.L.
relation de spécialisation
3) Diagramme de classes
Les classes abstraites sont souvent utilisées
pour structurer un graphe de spécialisation /
généralisation.
Elles servent à mieux factoriser attributs et
opérations.
Alain VAILLY
Diapositive n 44
Université de NANTES
45
M.E.D.A.L.
3) Diagramme de classes
Une classe abstraite peut posséder des attributs,
des opérations. Ses opérations ne sont pas
forcément abstraites. Elles peuvent donc avoir
une implémentation (un corps, une méthode). Une
classe abstraite peut être impliquée dans des
associations avec dautres classes, abstraites ou
non. Elle peut être privée ou protégée (comme
elle peut être publique). Une classe abstraite
ne peut pas être une classe interface (car elle a
des attributs et elle est peut être impliquée
dans des associations). Une classe abstraite ne
peut pas être réalisée.
Alain VAILLY
Diapositive n 45
Université de NANTES
46
M.E.D.A.L.
relation de dépendance
3) Diagramme de classes
- Une métaclasse est une classe dont les
instances sont des classes et non pas des objets.
Elle contiendra des attributs et des opérations
qui concernent la classe plutôt que les instances
de la classe.
Alain VAILLY
Diapositive n 46
Université de NANTES
47
M.E.D.A.L.
3) Diagramme de classes
- Un interface est un moyen, pour une classe, de
rendre visible les opérations quelle propose,
sans pour autant en révéler limplantation. Un
interface correspond donc au comportement visible
de la classe. Il ny a pas dattribut dans un
interface. Il ne peut pas non plus être impliqué
dans des associations.
syntaxe StarUML (pas terrible !)
Alain VAILLY
Diapositive n 47
Université de NANTES
48
M.E.D.A.L.
relation de réalisation
3) Diagramme de classes
La classe qui réalise linterface propose une
implémentation -une méthode- de tout ou partie
des opérations de cet interface.
La classe X réalise une partie de linterface A
et tout linterface B. Celui-ci est également
réalisé par la classe Y (de façon différente de
la classe X).
Alain VAILLY
Diapositive n 48
Université de NANTES
49
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Ce  service  proposé est décrit dans la partie
opérations de la classe  réalisatrice . Il
pourra être mis en oeuvre par une ou plusieurs
réalisations et utilisé par une ou plusieurs
classes
Alain VAILLY
Diapositive n 49
Université de NANTES
50
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Les classes Banque et Assurance sont des
interfaces (elles offrent au  public  des
opérations). Les classes Entreprise et Client
utilisent certaines de ces opérations. La classe
Banque propose en plus une implémentation de
certaines des opérations de Assurance.
Alain VAILLY
Diapositive n 50
Université de NANTES
51
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
- Une classe active est une classe qui met en
oeuvre un ou plusieurs flots de contrôle. Elle a
son propre comportement (celui-ci sera représenté
par un ou plusieurs diagrammes dactivités).
active
passive
Une classe active est une classe à part entière.
Alain VAILLY
Diapositive n 51
Université de NANTES
52
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
En général, un compartiment est ajouté à la
classe, pour mettre en évidence les événements
émis ou signaux traités. On peut aussi
stéréotyper les opérations correspondantes.
événement émis par la classe
signal reçu et traité par la classe
Alain VAILLY
Diapositive n 52
Université de NANTES
53
M.E.D.A.L.
3) Diagramme de classes
Les classes peuvent être reliées entre elles par
des associations. Celles-ci représentent une
relation existant entre ces classes, relation
pouvant sexprimer par un verbe, à la voix active
ou passive.
Un client passe une commande celle-ci comprend
des articles.
Alain VAILLY
Diapositive n 53
Université de NANTES
54
M.E.D.A.L.
3) Diagramme de classes
Ces associations sont binaires (recommandé par
UML), en boucle ou bien présentant une arité
supérieure.
Alain VAILLY
Diapositive n 54
Université de NANTES
55
M.E.D.A.L.
syntaxe StarUML
3) Diagramme de classes
Les associations peuvent être nommées
Ces noms nétant pas toujours très parlants, il
est possible den renforcer lexpressivité en
ajoutant le sens de lecture des noms.
sens de lecture
Alain VAILLY
Diapositive n 55
Université de NANTES
56
M.E.D.A.L.
3) Diagramme de classes
Il est également possible de donner des noms aux
rôles joués par les classes dans lassociation.
Ces noms peuvent être  cumulés , une même
association ayant un nom et deux rôles (pour une
association binaire).
pas recommandé
Alain VAILLY
Diapositive n 56
Université de NANTES
57
M.E.D.A.L.
3) Diagramme de classes
  • Outre le nom, un rôle peut être affublé de
    propriétés
  • ordonné les objets de la classe qui sont
    impliqués dans lassociation sont rangés dune
    certaine façon. Le ou les critères de tri ne sont
    pas précisés.
  • modification cette propriété peut prendre
    trois valeurs, variable (linstance de la classe
    peut être modifiée), gelé (linstance nest pas
    modifiable) ou ajoutUniquement (il est possible
    dajouter des instances mais pas den retirer).

Alain VAILLY
Diapositive n 57
Université de NANTES
58
M.E.D.A.L.
3) Diagramme de classes
Ces associations peuvent être porteuses
dinformations, celles-ci étant relatives (ie.
ayant du sens par rapport) à lensemble des
classes participant à cette association.
Classe association
Alain VAILLY
Diapositive n 58
Université de NANTES
59
M.E.D.A.L.
3) Diagramme de classes
Bien quayant lapparence (?) dune association,
il sagit bien dune classe, avec la possibilité
davoir des attributs, des opérations... Une
classe association nest pas obligatoirement
nommée. Elle peut, par contre, avoir un nom.
Seules les classes associations qui ne
participent pas à dautres associations et qui
ont des attributs sont appelées associations
attribuées. Elles nont alors pas de nom.
Alain VAILLY
Diapositive n 59
Université de NANTES
60
M.E.D.A.L.
3) Diagramme de classes
association attribuée
Alain VAILLY
Diapositive n 60
Université de NANTES
61
M.E.D.A.L.
3) Diagramme de classes
Une association n-aire ou une association binaire
porteuse dinformations (attributs) peuvent
toujours être transformées en un ensemble
dassociations binaires.
faux
Alain VAILLY
Diapositive n 61
Université de NANTES
62
M.E.D.A.L.
3) Diagramme de classes
Contrairement au schéma E-A-P, cette
transformation est gratuite. Il ny a pas
dattribut à ajouter.
Ce nest pas la même chose !
Alain VAILLY
Diapositive n 62
Université de NANTES
63
M.E.D.A.L.
3) Diagramme de classes
Il est possible de  placer  plusieurs
associations différentes entre deux classes, à la
condition expresse quelles expriment des
concepts structurels différents. Il ny aura
pas multiples associations si ces lois expriment
simplement des messages transitant dune classe à
lautre.
faux
Alain VAILLY
Diapositive n 63
Université de NANTES
64
M.E.D.A.L.
3) Diagramme de classes
Une association entre des classes correspond à
une structure statique. Cest également le
support de la collaboration entre les objets des
classes. Autrement dit, une association
correspond à une sorte de tuyau par lequel les
messages vont passer.
asso
message 1
message 2
asso
message 3
message 3
message 2
message 1
Par une seule association, plusieurs messages
passeront.
Alain VAILLY
Diapositive n 64
Université de NANTES
65
M.E.D.A.L.
3) Diagramme de classes
Cette notion de tuyau est renforcée par celle de
navigabilité. Les associations peuvent être vues
comme des canaux de navigation entre les objets.
Ces canaux permettent de se déplacer dans le
modèle. Par défaut, les associations sont
navigables dans les deux directions. Il est
possible de restreindre cette navigabilité à une
seule direction
sens unique
Alain VAILLY
Diapositive n 65
Université de NANTES
66
M.E.D.A.L.
3) Diagramme de classes
Toutes les instances de A ont un  accès  aux
instances de B toutes les instances de B ont un
 accès  aux instances de A. Toutes les
instances de A ont un  accès  aux instances de
B aucune instance de B na  accès  aux
instances de A.
Alain VAILLY
Diapositive n 66
Université de NANTES
67
M.E.D.A.L.
3) Diagramme de classes
La mise en place dune association  à sens
unique  aura des conséquences sur la définition
des différents diagrammes (de séquences, de
collaborations). Les envois de messages ne
pourront pas  emprunter les sens interdits . La
mise en place dune association à sens unique
aura aussi des conséquences sur limplémentation,
une classe pouvant ou pas être vue dune autre en
fonction de la navigation.
B ne voit pas A.
Alain VAILLY
Diapositive n 67
Université de NANTES
68
M.E.D.A.L.
3) Diagramme de classes
Chaque association comporte, en ses extrémités,
un couple (le plus souvent) de cardinalités.
Celles-ci, nous navons déjà dit, sont inversées
par rapport à des schémas de type E-A-P.
Chaque instance de A est liée à une et une seule
instance de B chaque instance de B est liée à
une ou plusieurs instances de A.
Alain VAILLY
Diapositive n 68
Université de NANTES
69
M.E.D.A.L.
3) Diagramme de classes
Comme dans le cas des attributs, il est possible
de faire figurer dans un diagramme de classes une
association redondante.
/ lttravaille_pour
financegt
Lassociation travaille_pour est calculée,
cest-à-dire que cest le système informatique
qui, à partir des liaisons participe et finance,
calcule les liaisons travaille_pour.
Alain VAILLY
Diapositive n 69
Université de NANTES
70
M.E.D.A.L.
3) Diagramme de classes
  • Plusieurs contraintes ensemblistes peuvent être
    placées entre deux associations
  • ou-exclusif une instance appartient à un
    ensemble ou à un autre mais pas aux deux
  • sous-ensemble une instance qui appartient à
    un ensemble appartient obligatoirement à lautre
  • ... il y en a dautres.
  • Ces contraintes sont (souvent) exprimées en OCL
    (Object Constraint Language).

Alain VAILLY
Diapositive n 70
Université de NANTES
71
M.E.D.A.L.
3) Diagramme de classes
sous-ensemble
ou-exclusif
Alain VAILLY
Diapositive n 71
Université de NANTES
72
M.E.D.A.L.
3) Diagramme de classes
ATTENTION au placement de ces contraintes.
Certaines positions ont des significations
différentes
ou-exclusif
Cas A exclusion entre les instances de B
participant à lassociation  du haut  et celles
participant à lassociation  du bas .
Alain VAILLY
Diapositive n 72
Université de NANTES
73
M.E.D.A.L.
3) Diagramme de classes
ou-exclusif
Cas B exclusion entre les couples dinstances
de A et de B participant à lassociation  du
haut  et ceux qui participent à lassociation
 du bas .
Alain VAILLY
Diapositive n 73
Université de NANTES
74
M.E.D.A.L.
3) Diagramme de classes
ou-exclusif
Cas C exclusion entre les instances de A
participant à lassociation  du haut  et ceux
qui participent à lassociation  du bas .
Alain VAILLY
Diapositive n 74
Université de NANTES
75
M.E.D.A.L.
3) Diagramme de classes
Il est une autre façon de signaler quun attribut
peut servir didentifiant au travers de la notion
de qualification. Une association qualifiée,
selon P.A. MULLER, est même plus adaptée à
modéliser un identifiant quun attribut.
Lattribut qualificatif fait partie de la classe
B !
Alain VAILLY
Diapositive n 75
Université de NANTES
76
M.E.D.A.L.
3) Diagramme de classes
La qualification (aussi appelée restriction)
dune association consiste à sélectionner un
sous-ensemble dobjets parmi ceux qui participent
à cette association. Elle est opérée à laide
dun ensemble dattributs utilisé conjointement
avec un objet de la classe source. La restriction
réduit (...) le nombre dinstances qui
participent à une association.
(identifiant dune partie des instances de la
classe)
Alain VAILLY
Diapositive n 76
Université de NANTES
77
M.E.D.A.L.
3) Diagramme de classes
Alain VAILLY
Diapositive n 77
Université de NANTES
78
M.E.D.A.L.
3) Diagramme de classes
Alain VAILLY
Diapositive n 78
Université de NANTES
79
M.E.D.A.L.
ensemble des instances de B qui participent à
lassociation et qui ont une valeur de clé donnée
3) Diagramme de classes
Linstanciation dune association qualifiée
définit le nom des objets source et destination
et la valeur du qualificatif. Chaque instance de
la classe A, accompagnée de la valeur du
qualificatif, identifie un sous-ensemble des
instances de la classe B qui participent à
lassociation.
ensemble des instances de B qui participent à
lassociation
ensemble des instances de B
Alain VAILLY
Diapositive n 79
Université de NANTES
80
M.E.D.A.L.
3) Diagramme de classes
Lagrégation est une relation dans laquelle une
des classes joue un rôle prépondérant. Elle est
transitive, non symétrique et réflexive.
0..2
La disparition des parents nentraîne pas
obligatoirement celle des enfants.
Alain VAILLY
Diapositive n 80
Université de NANTES
81
M.E.D.A.L.
3) Diagramme de classes
Une promotion comprend plusieurs groupes un
groupe est constitué de plusieurs étudiants.
2..
Alain VAILLY
Diapositive n 81
Université de NANTES
82
M.E.D.A.L.
3) Diagramme de classes
La composition est une relation mettant en oeuvre
un couplage encore plus fort que lagrégation.
Elle est transitive, non symétrique et non
réflexive.
Les composants font partie du composite. Ils ne
sont pas partagés. Les cardinalités du côté du
composite sont obligatoirement 1. La disparition
du composition entraîne nécessairement celle des
composants.
Alain VAILLY
Diapositive n 82
Université de NANTES
83
M.E.D.A.L.
3) Diagramme de classes
Un bâtiment comprend plusieurs étages. Un étage
est constitué de plusieurs salles.
La destruction du bâtiment entraîne celle des
étages et, par  ricochet , celle des salles.
Alain VAILLY
Diapositive n 83
Université de NANTES
84
M.E.D.A.L.
3) Diagramme de classes
Alain VAILLY
Diapositive n 84
Université de NANTES
85
M.E.D.A.L.
3) Diagramme de classes
Il ne peut y avoir quune seule décoration de
type agrégation ou composition par association.
Les cardinalités liées à la composition sont
obligatoirement de 1 (1..1) du côté du composite.
Alain VAILLY
Diapositive n 85
Université de NANTES
86
M.E.D.A.L.
3) Diagramme de classes
Les relations de spécialisation / généralisation
permettent de faire de la classification. Les
classes sont structurées de façon à permettre la
mise en facteur des attributs ou des
opérations. Ces relations créent une hiérarchie
entre les classes, des plus concrètes aux plus
abstraites. Généralisation et spécialisation
sont deux points de vue antagonistes de cette
hiérarchisation.
Alain VAILLY
Diapositive n 86
Université de NANTES
87
M.E.D.A.L.
3) Diagramme de classes
spécialisation
généralisation
Alain VAILLY
Diapositive n 87
Université de NANTES
88
M.E.D.A.L.
3) Diagramme de classes
La mise en place de cette hiérarchie nest pas
une opération simple. Une bonne classification
est stable et extensible. Le critère de
classification doit être permanent. Il ny a pas
une mais des classifications, en fonction des
usages. À un usage donné correspondra une
classification. Les classifications doivent
conduire à des niveaux dabstraction équilibrés.
Alain VAILLY
Diapositive n 88
Université de NANTES
89
M.E.D.A.L.
Un moniteur deviendra un jour professeur.
3) Diagramme de classes
faux
La généralisation nest pas adaptée pour
représenter la mutabilité.
Une chenille deviendra un jour chrysalide une
chrysalide deviendra un jour imago.
faux
Alain VAILLY
Diapositive n 89
Université de NANTES
90
M.E.D.A.L.
3) Diagramme de classes
Alain VAILLY
Diapositive n 90
Université de NANTES
91
M.E.D.A.L.
3) Diagramme de classes
Alain VAILLY
Diapositive n 91
Université de NANTES
92
M.E.D.A.L.
Une chenille nest pas une chrysalide. Une
chrysalide nest pas une chenille.
3) Diagramme de classes
Il est possible de placer des contraintes sur des
relations de type spécialisation / généralisation
- disjoint les objets de la  branche  de
gauche sont distincts de ceux de la branche de
droite.
disjoint
Alain VAILLY
Diapositive n 92
Université de NANTES
93
M.E.D.A.L.
Il ny a pas de statut qui ne soit ni moniteur,
ni professeur.
3) Diagramme de classes
Il est possible de placer des contraintes sur des
relations de type spécialisation / généralisation
- complet tous les objets de la sur-classe
sont impliqués dans la relation de généralisation
/ spécialisation.
complet
Alain VAILLY
Diapositive n 93
Université de NANTES
94
M.E.D.A.L.
3) Diagramme de classes
Il est possible de placer des contraintes sur des
relations de type spécialisation / généralisation
- incomplet certains objets de la
sur-classe ne sont pas impliqués dans la relation
de généralisation / spécialisation.
incomplet
Il y a dautre(s) stade(s) que chenille et
chrysalide.
Alain VAILLY
Diapositive n 94
Université de NANTES
95
M.E.D.A.L.
3) Diagramme de classes
Attributs et opérations peuvent se transmettre
dune classe à une autre, dès linstant ou un
lien de spécialisation / généralisation les unit.
Un professeur a aussi un nom et un prénom quil
reçoit en héritage de la classe Personne.
Un moniteur a aussi un nom et un prénom quil
reçoit en héritage de la classe Personne.
Alain VAILLY
Diapositive n 95
Université de NANTES
96
M.E.D.A.L.
3) Diagramme de classes
Un professeur peut ouvrir un compte, opération
quil reçoit en héritage de la classe Personne.
Un moniteur peut aussi ouvrir un compte,
opération quil reçoit en héritage de la classe
Personne.
Alain VAILLY
Diapositive n 96
Université de NANTES
97
M.E.D.A.L.
3) Diagramme de classes
Une opération peut, elle aussi, être redéfinie
dans différentes sous-classes (de façon
différente). Il y a alors surcharge.
Une personne travaille.
Un professeur travaille en lisant ses notes
durant les cours.
Un étudiant travaille en prenant des notes durant
les cours.
Alain VAILLY
Diapositive n 97
Université de NANTES
98
M.E.D.A.L.
source P.A. MULLER
Alain VAILLY
Diapositive n 98
Université de NANTES
99
M.E.D.A.L.
3) Diagramme de classes
Il est bien entendu possible de combiner les deux
types de relations précédentes
Un composé contient un ou plusieurs composants.
Un composé est lui-même un composant (il entre
donc dans la composition dun autre composé).
Un composant est contenu dans un seul composé. Il
peut ne pas lêtre (cest le composé racine).
Alain VAILLY
Diapositive n 99
Université de NANTES
100
M.E.D.A.L.
3) Diagramme de classes
Alain VAILLY
Diapositive n 100
Université de NANTES
101
M.E.D.A.L.
4) Utilisation du diagramme de classes
important !
Si, durant la phase danalyse des besoins, les
cas dutilisation étaient au coeur de lactivité
de modélisation, durant la phase danalyse cest
le diagramme de classes qui est lobjet de toutes
les attentions. Il ny a pas un seul diagramme
mais plusieurs, patiemment constitués, au fur et
à mesure que lexistant, les problèmes posés et
la solution sont étudiés. Chacun des diagrammes
produits (diagramme de séquences, diagramme de
collaboration... ) sera cohérent avec le
diagramme de classe et contribuera à lenrichir.
Alain VAILLY
Diapositive n 101
Université de NANTES
102
M.E.D.A.L.
dC diagramme de classes
4) Utilisation du diagramme de classes
dCol diagramme de collaborations
dC1
dS1
dCol1
dET1
dET diagramme états-transitions
dS diagramme de séquences
Alain VAILLY
Diapositive n 102
Université de NANTES
103
M.E.D.A.L.
dC diagramme de classes
4) Utilisation du diagramme de classes
dCol diagramme de collaborations
dC2
dS2
dC1
dS1
dCol2
dCol1
dET1
dET diagramme états-transitions
dS diagramme de séquences
Alain VAILLY
Diapositive n 103
Université de NANTES
104
M.E.D.A.L.
dC diagramme de classes
4) Utilisation du diagramme de classes
dCol diagramme de collaborations
dS4
dC3
dS3
dC2
dS2
dCol3
dC1
dS1
dCol2
dCol1
dET2
dET1
dET diagramme états-transitions
dS diagramme de séquences
Alain VAILLY
Diapositive n 104
Université de NANTES
105
M.E.D.A.L.
objets métiers
4) Utilisation du diagramme de classes
Le point de départ de cette série de diagrammes
de classes est le Domain Model, le modèle métier.
Celui-ci est créé en fin danalyse des besoins et
sert essentiellement à définir les concepts
manipulés. Il sagit, peu ou prou, dun schéma de
type E-A-P avec presque exclusivement des
attributs.
Alain VAILLY
Diapositive n 105
Université de NANTES
106
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Ce premier diagramme sera ensuite retouché, pour
    prendre en compte
  • le typage des attributs,
  • les différentes opérations,
  • des classes plus techniques résultant de la mise
    en oeuvre de principes de modélisation,
  • un effort de rationalisation des concepts.
  • NB tout cela se situe, rappelons-le, au niveau
    de lanalyse. Il nest pas question ici
    dincorporer au diagramme des classes comme les
    utilitaires.

Alain VAILLY
Diapositive n 106
Université de NANTES
107
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Nous préconisons lapplication de quelques
    principes simples
  • tout ce qui concerne un concept et qui apparaît
    dans un diagramme de collaborations ou de
    séquences fait partie de la classe correspondante
    du diagramme de classes.
  • toutes les classes citées dans le diagramme de
    collaborations sont décrites dans le diagramme de
    classes.
  • toutes les classes citées dans le diagramme de
    séquences sont décrites dans le diagramme de
    classes.

Alain VAILLY
Diapositive n 107
Université de NANTES
108
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Nous préconisons lapplication de quelques
    principes simples
  • À chaque fois quil faut gérer une instance dune
    classe A (quil sagisse dun ajout, dun test
    dexistence, dune suppression), ne sachant pas
    si lenvironnement de développement qui sera mis
    en place autorisera la notion de métaclasse, nous
    préconisons la création dune classe spécifique à
    une seule instance, appelée EnsDeA.

Alain VAILLY
Diapositive n 108
Université de NANTES
109
M.E.D.A.L.
4) Utilisation du diagramme de classes
Alain VAILLY
Diapositive n 109
Université de NANTES
110
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Cette classe EnsDeXX a un unique objet (rôle),
    celui de gérer lensemble des occurrences de XX.
    Elle est dotée dun attribut (virtuel) listeDeXX,
    dopérations standard de création, de
    suppression... Elle est liée à XX par une
    relation dagrégation.
  • Cette classe EnsDeXX, comme toutes ses
     soeurs , fait partie du diagramme de classes.

Alain VAILLY
Diapositive n 110
Université de NANTES
111
M.E.D.A.L.
4) Utilisation du diagramme de classes
Alain VAILLY
Diapositive n 111
Université de NANTES
112
M.E.D.A.L.
4) Utilisation du diagramme de classes
MVC, quezacko ??
  • Nous préconisons lapplication de quelques
    principes simples
  • En application (partielle) des principes
    préconisés par le modèle MVC (Modèle - Vue -
    Contrôleur), et souhaitant mettre en place un
    contrôle centralisé, nous associons à chaque
    requête XXX faite au système une classe spéciale
    (que nous nommons F.GestionDeXXX) qui va mettre
    en oeuvre les traitements nécessaires à la
    satisfaction de la requête XXX.

Alain VAILLY
Diapositive n 112
Université de NANTES
113
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Le modèle MVC a été mis au point en 1979, par T.
    REENSKAUG, chez XEROX, lorsquil travaillait sur
    le langage objet Smalltalk.
  • Ce modèle impose la séparation entre les données
    (le Modèle), les traitements (le Contrôleur) et
    la présentation (la Vue).
  • La partie M représente le comportement de
    lapplication. Elle décrit les données manipulées
    par cette application et définit les méthodes
    daccès.

Alain VAILLY
Diapositive n 113
Université de NANTES
114
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • La partie V correspond à linterface avec
    laquelle lutilisateur interagit. La vue
    neffectue aucun traitement, elle se contente
    dafficher les traitements effectués par le
    modèle.
  • La partie C prend en charge la synchronisation
    des événements. Elle neffectue aucun traitement,
    ne modifie aucune donnée. Elle analyse la demande
    et appelle le modèle adéquat.

Alain VAILLY
Diapositive n 114
Université de NANTES
115
M.E.D.A.L.
4) Utilisation du diagramme de classes
Alain VAILLY
Diapositive n 115
Université de NANTES
116
M.E.D.A.L.
4) Utilisation du diagramme de classes
A concerne les XX
traitement permettant de satisfaire la requête
A (voir le chapitre concernant le diagramme de
séquences)
Alain VAILLY
Diapositive n 116
Université de NANTES
117
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Cette fenêtre de contrôle est une classe. Elle
    est très souvent (la plupart du temps) active,
    cest-à-dire quelle a un comportement que lon
    peut décrire (un diagramme dactivités lui est
    donc souvent associé).
  • Cette classe F.GestionDeXX, comme toutes ses
     soeurs , fait partie du diagramme de classes.

classe active, selon la notation StarUML
Alain VAILLY
Diapositive n 117
Université de NANTES
118
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Ces classes  spéciales  (ie. les ensembles et
    les contrôleurs) peuvent être regroupées dans un
    paquetage dédié. Elles sont aussi factorisables.

Alain VAILLY
Diapositive n 118
Université de NANTES
119
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Ces classes  spéciales  (ie. les ensembles et
    les contrôleurs) peuvent être regroupées dans un
    paquetage dédié. Elles sont aussi factorisables.

Alain VAILLY
Diapositive n 119
Université de NANTES
120
M.E.D.A.L.
4) Utilisation du diagramme de classes
Alain VAILLY
Diapositive n 120
Université de NANTES
121
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Le typage des attributs est un travail minutieux,
    long... mais simple à faire. Sans doute une des
    dernières retouches à apporter au diagramme de
    classes.

Alain VAILLY
Diapositive n 121
Université de NANTES
122
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • Les opérations proviennent pour lessentiel des
    cas dutilisation (ça, cest lamorce) et des
    schémas suivants (diagrammes de séquences et
    diagrammes de collaborations).
  • Tout message reçu déclenche lexécution dune
    opération appartenant au receveur du message.

Alain VAILLY
Diapositive n 122
Université de NANTES
123
M.E.D.A.L.
4) Utilisation du diagramme de classes
Alain VAILLY
Diapositive n 123
Université de NANTES
124
M.E.D.A.L.
  • Les messages passant dune classe à lautre
    empruntent les tuyaux (les associations) existant
    entre elles.

Alain VAILLY
Diapositive n 124
Université de NANTES
125
M.E.D.A.L.
  • Ces opérations seront, elles aussi, typées et
    leurs paramètres précisés.

Alain VAILLY
Diapositive n 125
Université de NANTES
126
M.E.D.A.L.
4) Utilisation du diagramme de classes
Une des dernières retouches apportées au
diagramme de classes vise à préparer la
réutilisation de concepts dans une future
application. Il sagit là de rationaliser les
notations, de tenter une généralisation,
éventuellement dajouter une ou deux
opérations... bref de préparer lémergence de
composants logiciels bien conçus.
Alain VAILLY
Diapositive n 126
Université de NANTES
127
M.E.D.A.L.
4) Utilisation du diagramme de classes
  • uniformiser les notations,
  • regrouper les classes proches,
  • introduire une hiérarchie de classes,
  • offrir des services complets, tant au niveau des
    constructeurs quà celui des observateurs,
  • ...
  • ... ne pas hésiter non plus à décrire
    formellement les contraintes, avec OCL

Alain VAILLY
Diapositive n 127
Université de NANTES
128
M.E.D.A.L.
5) Conclusion
Le diagramme de classes est le fondement du
niveau logique auquel appartient cette phase
danalyse. Il sagit de construire la structure
conceptuelle du système en termes de
classes. Chaque scénario est développé pour
faire apparaître cette structure. Pour cela, on
va spécialiser les objets en objets dinterface,
reliés aux acteurs, objets de contrôle qui
pilotent une activité et objets métier, qui
détiennent les informations. Cette spécialisation
se dénote via les stéréotypes.
Alain VAILLY
Diapositive n 128
Université de NANTES
129
M.E.D.A.L.
5) Conclusion
Il ny a pas un diagramme de classes mais
plusieurs, chacun étant une évolution du
précédent et une ébauche du suivant. Ce
diagramme de classes est cohérent avec les autres
diagrammes (de séquences, de collaborations...).
Il est en permanence mis à jour lors du
déroulement de la phase danalyse, diagramme
après diagramme. Cette exigence rend quasiment
obligatoire le recours à un outil logiciel daide
à la spécification... même si celui-ci peut, de
temps en temps, présenter quelques lacunes.
Alain VAILLY
Diapositive n 129
Université de NANTES
130
M.E.D.A.L.
Bibliographie (sommaire)
la référence -)
P. ANDRE, A. VAILLY,  Spécifications des
logiciels Deux exemples de pratiques récentes
Z et UML , Editions Ellipses, juillet 2001, ISBN
2-7298-0774-8
P-A. MULLER, N. GAERTNER,  Modélisation objet
avec UML , Editions EYROLLES, 2003, ISBN
2-212-11397-8
Pour compléter la formation... -)))
Alain VAILLY
Diapositive n 130
Université de NANTES
131
M.E.D.A.L.
Webographie (sommaire)
  • Sil ny avait quun seul site Internet à
    consulter régulièrement
  • http//conception.developpez.com/

Alain VAILLY
Diapositive n 131
Université de NANTES
132
M.E.D.A.L.
Fin
Alain VAILLY
Diapositive n 132
Université de NANTES
Write a Comment
User Comments (0)
About PowerShow.com