Académique Documents
Professionnel Documents
Culture Documents
Génie logiciel du
commerce électronique
Julie Vachon,
Hiver 2003
Sommaire
Chapitre 2, Section 5
« Diagramme de classes »
2.5.1 Classe
attribut,
Opérations
Visibilité
2.5.2 Associations
Cardinalité, documentation, navigabilité, etc.
Association qualifiée
Association dérivée
Classe d’association
Agrégation
Composition
2.5.3 Généralisation
2.5.4 Pour préciser la spécification
Contraintes, notes, stéréotypes
1 *
Distributeur Boisson
+ choisirBoisson +getPrix
+ verserBoisson +getQuantité
+setQuantité
Écran GestionMonnaie
+ afficherMonnaie +insérerMonnaie
+ afficherNonDisp +retournerMonnaie
Thé froid Coca
Nom_de_la_classe
Attributs
Opérations
Public (+): Élément visible par tous les objets de toutes les
classes.
Private (-): Élément visible que par les objets de la classe.
Protected (#): Élément visible par tous les objets de la
classe et des sous-classes.
Employé
- nom: string;
- date_embauche: date
- salaire: integer;
- congés_autorisés: interger;
- congés_pris: integer;
- $ nb_employé: integer
+ congés_restant(): integer
«global» salaire_moyen():integer
recteur
Université Personne
0..1 1
employeur professeur
0..1 1..*
* 3..*
Étudiant
*
Cours * 0..1 Professeur
inscription
épouse 0..1
Personne
0..1
mari
0..1 1
Commande
1 *
Chap.2, Sect.5, p.18
Association
Classe d’association
Classe associé à une association.
Typiquement utilisée dans le cas des associations binaires « plusieurs à
plusieurs » où chaque lien de l’association a des attributs avec des
valeurs propres.
Important: Chaque instance de la classe d’association est associée à
un lien unique entre deux instances de classe. Si ce n’est pas le cas, il
faut réifier l’association…
!!! Si une personne
Entreprise employeur employé Personne
peut occuper
plusieurs emplois au * *
sein d’une même
entreprise, cette !!! Une personne peut
représentation est Emploi occuper différents
FAUSSE. emplois mais un seul
dans une entreprise
Chap.2, Sect.5, p.19 donnée.
Association
Association réifiée Réifier = transformer
les concepts
abstraits en réalités
concrètes.
Entreprise Emploi
1 *
*
Personne
0..1
Chemin * * Segment
agrégat
Chap.2, Sect.5, p.21
Association
Composition
Immeuble Appartement
1 *
composite
Chap.2, Sect.5, p.22
Association
La destruction d’un livre
entraîne la destruction de Composition
ses pages et des
paragraphes de texte Livre Page
qu’elles contiennent 1 *
Association 1 *
*
Membre
Paragraphe
1
3..*
0..1
La fin d’une association fait
Comité disparaître ses membres et son
exécutif comité exécutif. La dissolution du
comité n’engendre pas l’exclusion de
Chap.2, Sect.5, p.23 ses membres.
Association
Association, agrégation, composition
Association
Agrégation
Composition
Association 1 Membre
*
Membre
mon_association: Association
super-classe
Licence
*
+ prix(): integer
Licence Licence
académique entreprise
Réutilisation (sous-classage)
Les attributs, les opérations, les relations et les contraintes
définies dans les super-classes sont héritées intégralement dans
les sous-classes.
Substitutabilité (sous-typage)
Les objets d'une classe peuvent être utilisés partout où les objets
de ses super-classes sont admis.
Polymorphisme.
Aptitude d'un même message à déclencher des opérations
différentes, selon la classe de l'objet auquel il est destiné.
Possibilité de définir des opérations sans implémentation =
opération abstraite (c.f. classe abstraite…)
Chap.2, Sect.5, p.30
Généralisation
Héritage d’interface
Forme d’héritage « sans danger ».
La sous-classe hérite de la signatures des opérations et des
attributs de la super-classe. Elle n’hérite d’aucune
implémentation.
Permet de réaliser la propriété de substitutabilité (préserve
le sous-typage)
Ce type d’héritage se fait souvent à partir
classe abstraite (implémentation partielle)
Interface (aucune implémentation fournie)
Autorise le polymorphisme.
Class A
Class A
Class A
Class B
Class B
Class C
Aigle
Vache
Chap.2, Sect.5, p.35
2.5.4 Pour préciser la spécification…
Contraintes
Permet de spécifier une propriété qu'un élément modélisé
doit vérifier.
Peut préciser le rôle ou la portée de tout élément d'un
modèle UML: classe, attribut, opération , association...
Par exemple, sur une association, elles peuvent restreindre le
nombre d'instances visées.
Les contraintes peuvent s'exprimer en langage naturel ou
en OCL (Object Constraint Language).
Graphiquement, il s'agit d'un texte encadré d'accolades,
positionné près de l’élément de modélisation concerné. Si la
contrainte concerne deux éléments, elle est positionnée sur
une ligne pointillée qui relie les deux éléments.
Chap.2, Sect.5, p.36
Pour préciser la spécification…
Contrainte
membre
Comité Personne
{sous-ensemble}
délégué
+ quadratic(): integer
{retourne
sqrt(b*b -4*a*c/2*a)}
« constraint »
Une seule instance de
solution peut exister à la fois.
Chap.2, Sect.5, p.38
Pour préciser la spécification…
Stéréotypes
Permet d’enrichir la sémantique (pas la structure) de la notation
existante.
Permet de définir les distinctions d’usage.
Stéréotypes prédéfinis: «include», «extend»,
Permet de créer de nouvelles catégories d’éléments de modélisation.
«actor»
Client
client