Diagramme de Classe Flashcards
Qu’est-ce-qu’un diagramme de classes ?
Le diagramme de classe est un diagramme structurel (statique) qui permet de représenter :
- les classes (attributs + méthodes)
- les associations (relations) entre les classes
C’est le plus important de tous les diagrammes, le seul obligatoire lors de la modélisation d’un système.
Quels sont les différents types de visibilité (encapsulation) des méthodes et attributs ?
- public
- private
- protected
- package
Définir le type de visibilité public et donner son signe à placer devant l’attribut ou la méthode :
- Elément non encapsulé visible par tous
- signe : + (plus)
Définir le type de visibilité private et donner son signe à placer devant l’attribut ou la méthode :
- Elément encapsulé visible seulement dans la classe
- signe : - (moins)
Définir le type de visibilité protected et donner son signe à placer devant l’attribut ou la méthode :
- Elément encapsulé visible dans la classe et dans les sous-classes
- signe : # (hashtag, dièse)
Définir le type de visibilité package et donner son signe à placer devant l’attribut ou la méthode :
- Elément encapsulé visible dans les classes du même package
- signe : ~ (tilde)
la déclaration de méthode suivante est-elle correcte :
“+void régler(int heures, int minutes) / Si fausse, donner la bonne déclaration
Fausse, la bonne déclaration est la suivant :
“+regler(heures : int, minutes : int) : void
Que veut dire l’acronyme OCL et que désigne-t-il ?
- Object Contraint Language
- Langage spécialement conçu pour exprimer des contraintes.
Qu’est-ce-qu’une contrainte ?
Une contrainte est une condition écrite entre deux accolades, elle peut être exprimé dans :
- un langage naturel (description textuelle)
- un langage formel (c++, java…)
Que veut-dire la contrainte {readOnly} ?
La valeur de l’attribut ne peut plus être modifiée (constante)
Que veut-dire la contrainte {query} ?
Une méthode peut être déclarée comme requête (query) si son code ne modifie pas l’état de l’objet (aucun de ses attributs).
Que veut-dire les contraintes {ordered} et {list} ?
Lorsqu’une multiplicité supérieure à 1 est précisée, on précise si les valeurs sont ordonnées (ordered) ou pas (list).
Que veut-dire la contrainte {unique} ?
On demande qu’il n’y ait aucun doublon dans les valeurs de la collection.
Que veut-dire la contrainte {not null} ?
L’attribut doit être obligatoirement initialisé²
Définir les particularités de la relation de dépendance entre classes :
- La forme la plus faible de relation entre classes.
- Signifie que l’une des deux utilise l’autre.
- Relation transitoire, la relation n’est pas conservée à terme, on parle de liaison ponctuelle.
- Elle est représentée par un trait discontinu orienté de la classe qui utilise vers la classe utilisée.
Définir les particularités de la relation d’association entre classes :
- Signifie qu’une classe contiendra une référence (ou pointeur) de l’objet de la classe associée sous la forme d’un attribut.
- Relation plus forte
- Indique qu’une classe est en relation avec une autre pendant un certain laps de temps.
- Représentée par un trait continu, permet la navigation d’une instance vers l’autre.
Comment détailler une association (7 détails)?
- Lui donner un nom
- Lui donner un rôle
- Lui donner une multiplicité (cardinalité)
- Préciser sa navigabilité
- Si elle réflexives (ou récursive)
- Préciser les contraintes
- Préciser sa qualification
A quoi sert-il de préciser un nom pour l’association ?
Permet d’informer de l’intérêt de la relation. Il peut être suivi d’une flèche précisant le sens de lecture.
A quoi sert-il de préciser un rôle pour l’association ?
Indique la manière dont l’objet est vu de l’autre côté de l’association
En quoi nous informent les multiplicités (cardinalités) ?
Indiquer le nombre d’instances (d’une classe donnée) quoi sont impliquées dans la relation.
La navigation des associations est unidirectionnelle par défaut … Vrai ou Faux ?
C’est faux, elle est bidirectionnelle.