Vous êtes sur la page 1sur 12

le cours pratique

1- le diagramme de classes
____________________________________________________________________________________
____________
I. Introduction:
Q1: Définissez le diagramme de classes.

Le diagramme de classes est un diagramme statique de de la modélisation objet UML, il permet


de montrer la structure interne d'un système en modélisant les concepts du domaine
d'application.

En fait, le diagramme de classes décortique le système en plusieurs classes, Une classe est une
description formelle d'un ensemble d'objets qui ont une même sémantique et caractéristiques
communes.

Chaque classe possède un nom, un identifiant (une clé)  des propriétés (des attributs et des
relations) et des opérations (des méthodes) et reliée à d'autres classes par des relations
d'association, de généralisation et/ou de dépendance. 

le diagramme de classes est le diagramme le plus important de la modélisation objet, il est le


seul obligatoire lors d'une telle modélisation.

II. Les classes:


      II.1. classe:

Q2: Définissez la notion de classe et celle d'une instance de classe. illustrez par un exemple.

Une classe est une représentation formelle d'un ensemble d'objet qui ont une même sémantique
et de caractéristiques communes.

Un objet est une instance d’une classe. C’est une entité discrète dotée d’une identité, d’un état et
d’un comportement que l’on peut invoquer.

Si l’on considère que Homme (au sens être humain) est un concept abstrait, on peut dire que la
personne Myriam est une instance de Homme. Si Homme était une classe, Myriam en serait une
instance : un objet.

Q3: Qu'est ce que les caractéristique d'une classe?

Une classe définit plusieurs objets dotés de caractéristiques communes. Les caractéristiques
d’un objet permettent de spécifier son état et son comportement:

État d’un objet : Ce sont les attributs et les terminaisons d’associations, tous deux réunis sous le
terme de propriétés, qui décrivent l’état d’un objet. Les attributs sont utilisés pour des valeurs de
données pures, dépourvues d’identité, telles que les nombres et les chaînes de caractères.

Comportement d’un objet :


Les opérations ou les méthodes décrivent les éléments individuels d’un comportement que l’on
peut invoquer. Ce sont des fonctions qui peuvent prendre des valeurs en entrée et modifier les
attributs ou produire des résultats.

Les attributs, les terminaisons d’association et les méthodes constituent donc les
caractéristiques d’une classe (et de ses instances).

Q4: Comment représenter graphiquement une classe?

Une classe est un classeur. Elle est représentée par un rectangle divisé en trois à cinq
compartiments:

Représentation graphique d'une classe

Q5: Quelle est la syntaxe de base de la déclaration du nom d'une classe? Expliquez.

– Méta-langage des syntaxes –


[ ] :ce qui est à l’intérieur est optionnel ;
< > :ce qui est à l’intérieur est plus ou moins libre ; par exemple, la syntaxe de
déclaration d’une variable comme compteur : int est <nom_variable> : <type> ;
’ ’ :les cotes sont utiles quand on veut utiliser un méta-caractère comme un
caractère ; par exemple, pour désigner un crochet ([) il faut écrire ’[’ car [ est
un méta-caractère ayant une signification spéciale ;
... :permet de désigner une suite de séquence de longueur non définie.

Explications:

Q5.1: Qu'est ce q'un paquetage?

Un paquetage est un regroupement d’éléments de modèle et de diagrammes. Il permet ainsi


d’organiser des éléments de modélisation en groupes. Il peut contenir tout type d’élément de
modèle : des classes, des cas d’utilisation, des interfaces, des diagrammes, … et même des
paquetages imbriqués (décomposition hiérarchique).

la déclaration du nom d'une classe défini "le chemin d’accès" à une classe en spécifiant les
paquetage dont cette classe est contenu.

Q5.2: Que signifie le mot clé "abstract" dans ce contexte?

Lorsque'on ajoute le mot-clef abstract à la déclaration du nom de cette classe; cela signifie que la
classe en question est une classe abstraite.

Une classe est dite abstraite lorsqu’elle définit au moins une méthode abstraite ou lorsqu’une
classe parent contient une méthode abstraite non encore réalisée.

Une méthode est dite abstraite lorsqu’on connaît son entête mais pas la manière dont elle peut
être réalisée.

Q5.3: [QCM] le champs <auteur> et <date> sont respectivement utilisés pour :


          a. Indiquer le nom de l'auteur de la modélisation et la date de création.
          b. Indiquer le nom du concepteur et la date de mise à jour.
          c. Indiquer le nom de l'auteur de la modélisation et la date de la dernière mise à jour.

le choix correcte est c:  le champs <auteur> et <date> sont utilisés pour indiquer le nom de
l'auteur de la classe et la date de la dernière mise à jour.

Q6: Quand une classe est dite interface? 

Une interface est une classe abstraite pure qui ne comporte que des méthodes abstraites.

Graphiquement, on ajoute un stéréotype <<interface>> devant le nom de la classe.

Q7: Qu'est ce qu'une classe active? 

Une classe est passive par défaut, elle sauvegarde les données et offre des services aux autres.
Une classe active initie et contrôle le flux d’activités.

Graphiquement, une classe active est représentée comme une classe standard dont les lignes
verticales du cadre, sur les côtés droit et gauche, sont doublées.

      II.2. attribut:
Q8: Quelle est la syntaxe de base de la déclaration d'attribut d'une classe? Expliquez.

Explication:

Q8.1: Donnez la définition de la notion de visibilité et précisez les différents niveaux de visibilité
prédéfinis.

La visibilité déclare la possibilité pour un élément de modélisation de référencer un élément qui


se trouve dans un espace de noms différents de celui de l’élément qui établit la référence.Il
existe quatre visibilités prédéfinies:

Q8.2: Quel mécanisme en UML permet de définir des niveaux de visibilité?

C’est l'encapsulation qui permet de définir des niveaux de visibilité des éléments d’un conteneur.

L’encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein
d’une structure en cachant l’implémentation de l’objet, c’est-à-dire en empêchant l’accès aux
données par un autre moyen que les services proposés. Ces services accessibles (offerts) aux
utilisateurs de l’objet définissent ce que l’on appel l’interface de l’objet (sa vue externe).

Q8.3: Qu'est ce qu'un attribut dérivé? Expliquez par un exemple.

Les attributs dérivés peuvent être calculés à partir d’autres attributs et de formules de calcul.

Les attributs dérivés sont symbolisés par l’ajout d’un « / » devant leur nom.

Explication:

Q8.3.1:Une personne est caractérisée par son nom, son prénom, son sexe et son âge. Donnez
une représentation UML de la classe Personne
.

L'attribut âge est un attribut qui change de valeur au fil du temps pour un utilisateur précis, donc
cet attribut ne peut être stocké comme un attribut normal, il doit donc être calculé à partir de la
date de naissance.

l'attribut âge est un attribut dérivé qui est calculé à partir d'autre attribut (dateNaissance) et d'une
formule de calcul ( date actuelle - date de naissance ).

Q8.4: Qu'est ce qu'un attribut de classe? Expliquez par un exemple.

Un attribut de classe (static en Java ou en C++) est un attribut de la classe qui garde une valeur
unique et partagée par toutes les instances de la classe. Les instances ont accès à cet attribut
mais n’en possèdent pas une copie. Un attribut de classe n’est donc pas une propriété d’une
instance mais une propriété de la classe et l’accès à cet attribut ne nécessite pas l’existence
d’une instance.

Graphiquement, un attribut de classe est souligné.

Q8.4.1: En plus des informations fournies précédemment, Une personne a un salaire qui est
représenté par un nombre réel. Pour calculer les charges globales, on applique un coefficient fixe
de 20% sur les salaires.
Enrichissez la représentation précédente pour prendre en compte ces nouveaux éléments.

Q8.5: Quelles sont les valeurs possibles pour un type d'attribut? Est-ce qu'un attribut peut avoir
comme type une classe abstraite?

Le type d'un attribut (<type>) peut être un nom de classe, un nom d’interface ou un type de donné
prédéfini (Integer, String, Float...).

Une classe abstraite ne peut être instanciée.

Q8.6: Donnez des exemples de multiplicité.


exactement un : 1 ou 1..1
plusieurs : * ou 0..*
au moins un : 1..*
de un à six : 1..6

      II.3. méthode:

Q9: Quelle est la syntaxe de base de la déclaration de méthode d'une classe? Expliquez.

 Explication:

Q9.1: Quel est la syntaxe de base de la déclaration de paramètre d'une méthode?


Expliquez.

Q9.2: Quelles sont les valeurs que peut prendre le champs <direction>?

Q10: Qu'est ce qu'une méthode de classe ? 

Une méthode de classe ne peut manipuler que des attributs de classe et ses propres paramètres,
elle est soulignée graphiquement.Cette méthode n’as pas accès aux attributs de la classes.

Q11: Dans une classe, une opération peut-elle apparaître plusieurs fois? si oui, cela est valable
sous quelle condition? et que peut on dire de cette opération?
Dans une classe, une opération (même nom et même types de paramètres) doit être unique.
Quand le nom d’une opération apparaît plusieurs fois avec des paramètres différents, on dit que
l’opération est surchargée.

En revanche, il est impossible que deux opérations ne se distinguent que par leur valeur
retournée.

 Résumé des syntaxes:

Exercice d'application:

Construction de la classe Personne Une personne est caractérisée par son nom, son prénom, son sexe et son âge.
Les objets de classe Personne doivent pouvoir calculer leurs revenus et leurs charges. Les attributs de la classe sont
privés; le nom, le prénom ainsi que l'âge de la personne doivent être accessibles par des opérations publiques.

 1. Donnez une représentation UML de la classe Personne.

  2. En plus des informations fournies précédemment,deux types de revenus sont envisagés: d'une part le salaire et
d'autre part toutes les autres sources de revenus. les deux revenus sont représentés par des nombres réels. Pour
calculer les charges globales, on applique un coefficient fixe de 20% sur les salaires et de 15% sur les autres revenus.
 Enrichissez la représentation précédente pour prendre en compte ces nouveaux éléments.

 3.Un objet de la classe Personne peut être créé à partir du nom et de la date de naissance. il est possible de changer
le prénom d'une personne. par ailleurs, le calcul des charges ne se fait pas de la même manière lorsque la personne
décède.
 Enrichissez encore la représentation précédente pour prendre en compte ces nouveaux éléments.

                                                                                                                           Corrigé >> 
                                                                                                                       Liste des exercices corrigés >>

III. Les relations entre classes:


Q12: Quels sont les différents types de relation qui peuvent exister entre deux classes?

Les relations entre classes sont de 3 types :

1. Les relations d’association


2. Les relations de généralisation/spécialisation
3. Les relations de dépendances

      III.1. Association:

Q13: Définissez la notion d'association?


Une association est une relation entre deux classes (association binaire) ou plus (association n-
aire), qui décrit les connexions structurelles entre leurs instances.
Deux façons de modéliser une association :

1/ Dans cette version, l’association apparaît clairement et constitue une entité distincte :

2/ Dans ce cas l’association se manifeste par la présence de deux attributs dans chacune des
classes en relation.

Q14: Déterminez les éléments constitutifs d'une association. Expliquez sur un exemple.

Les terminaisons d'association ou les rôles: spécifient la fonction d'une classe pour une
association donnée. Cette terminaison d'association a une visibilité, un nom, une multiplicité et
une navigabilité.

Q15: Comment interpréter les multiplicités d’une association binaire? Expliquez par un


exemple.
Une personne travaille pour une et une seule entreprise.
Une entreprise emploie une ou plusieurs personnes.

Q16: Comment interpréter les multiplicités d’une association n-aire? Expliquez par un exemple.

Dans une association n-aire, la multiplicité apparaissant sur le lien de chaque classe s’applique
sur une instance de chacune des classes, à l’exclusion de la classe-association et de la classe
considérée. Par exemple, si on prend une association ternaire entre les classes (A, B, C), la
multiplicité de la terminaison C indique le nombre d’objets C qui peuvent apparaître dans
l’association avec une paire particulière d’objets A et B.

~>Pour plusieurs instances de la classe C, il existe une paire particulière d’objets A et B.


~>Pour une et une seule instance de la classe B, il existe une paire particulière d’objets A et C.
~>Pour 0 à 3 instances de la classe A, il existe une paire particulière d’objets B et C.

Q17: Définissez la qualification et précisez son utilité par un exemple.

Qualification : permet de sélectionner un sous-ensemble d'objets, parmi l'ensemble des objets


qui participent à une association.
La restriction de l'association est définie par une clé, qui permet de sélectionner les objets ciblé.

Le premier diagramme ne représente pas le fait qu'un compte peut appartenir à 0 à 2 personnes,
ce diagramme peut être complété par un diagramme d'objet qui modélise ce cas particulier, une
autre alternative consiste à utiliser les qualifications comme dans la deuxième figure.
Un compte dans une banque appartient à au plus deux personnes. Autrement dit, une instance
du couple {Banque , compte} est en association avec zéro à deux instances de la
classe Personne.
Mais une personne peut posséder plusieurs comptes dans plusieurs banques. C’est-à-dire
qu’une instance de la classe Personne peut être associée à plusieurs (zéro compris) instances
du couple {Banque , compte}.
Bien entendu, et dans tous les cas, un instance du couple {Personne , compte} est en association
avec une instance unique de la classe Banque.

Q18: Définissez la notion de classe-association.

Parfois, une association doit posséder des propriétés. Par exemple, l’association Emploie entre
une société et une personne possède comme propriétés le salaire et la date d’embauche. En
effet, ces deux propriétés n’appartiennent ni à la société, qui peut employer plusieurs personnes,
ni aux personnes, qui peuvent avoir plusieurs emplois. Il s’agit donc bien de propriétés de
l’association Emploie. Les associations ne pouvant posséder de propriété, il faut introduire un
nouveau concept pour modéliser cette situation : celui de classe-association.

Une classe-association est caractérisée par un trait discontinu entre la classe et l’association
qu’elle représente.

Q19: Quels mécanismes offre UML pour représenter les relations d'inclusion d'un élément dans
un ensemble?

Lorsque l’on souhaite modéliser une relation tout/partie où une classe constitue un élément plus
grand (tout) composé d’éléments plus petit (partie), il faut utiliser une agrégation. Graphiquement
représenté par un losange vide.

Une agrégation est une association qui représente une relation d’inclusion structurelle ou
comportementale d’un élément dans un ensemble.

La composition, également appelée agrégation composite, décrit une contenance structurelle


entre instances. Ainsi, la destruction de l’objet composite implique la destruction de ses
composants. Graphiquement représenté par un losange plein.

La relation entre l'entreprise et les camions est une agrégation, la destruction de la classe
entreprise n'implique pas la destruction des camions.
La relation entre les moteurs et les camions est une composition, la destruction de la classe
camion implique  la destruction des moteurs.

Q20: Donnez deux autres exemples bien commentés.

      III.2. Généralisation:

Q21: Définissez la notion de généralisation.

La généralisation décrit une relation entre une classe générale (classe de base ou classe parent)
et une classe spécialisée (sous-classe). La classe spécialisée est intégralement cohérente avec
la classe de base, mais comporte des informations supplémentaires (attributs, opérations,
associations). Un objet de la classe spécialisée peut être utilisé partout où un objet de la classe
de base est autorisé.

Le symbole utilisé pour la relation d’héritage ou de généralisation est une flèche avec un trait
plein dont la pointe est un triangle fermé désignant le cas le plus général.
Q22: Précisez les principaux propriétés de l'héritage.

Les propriétés principales de l’héritage sont :


La classe enfant possède toutes les caractéristiques des ses classes parents, mais elle ne peut
accéder aux caractéristiques privées de cette dernière.
Une classe enfant peut redéfinir (même signature) une ou plusieurs méthodes de la classe
parent. Sauf indication contraire, un objet utilise les opérations les plus spécialisées dans la
hiérarchie des classes.
Toutes les associations de la classe parent s’appliquent aux classes dérivées.
Une instance d’une classe peut être utilisée partout où une instance de sa classe parent est
attendue. Par exemple, en se basant sur le diagramme de la figure ci-dessous, toute opération
acceptant un objet d’une classe Animal doit accepter un objet de la classe Chat.
Une classe peut avoir plusieurs parents, on parle alors d’héritage multiple. Le langage C++ est un
des langages objet permettant son implémentation effective, le langage Java ne le permet pas.

      III.3. Dépendance:

Q23: Définissez la notion de dépendance.

Une dépendance est une relation unidirectionnelle exprimant une dépendance sémantique entre
des éléments du modèle. Elle est représentée par un trait discontinu orienté. Elle indique que la
modification de la cible peut impliquer une modification de la source. La dépendance est souvent
stéréotypée pour mieux expliciter le lien sémantique entre les éléments du modèle.

On utilise souvent une dépendance quand une classe en utilise une autre comme argument dans
la signature d’une opération. 

      III.4. Interface:

Q24: Comment peut-on représenté le fait qu'une classe réalise une interface?

Une interface doit être réalisée par au moins une classe et peut l’être par plusieurs.
Graphiquement, cela est représenté par un trait discontinu terminé par une flèche triangulaire et
le stéréotype « realize ». Une classe peut très bien réaliser plusieurs interfaces. Une classe
(classe cliente de l’interface) peut dépendre d’une interface (interface requise). On représente
cela par une relation de dépendance et le stéréotype« use ». Attention aux problèmes de conflits
si une classe dépend d’une interface réalisée par plusieurs autres classes.

Exercices d'application:
Pour chaque exemple ci-dessous, indiquez si la relation présentée est une généralisation, une agrégation ou une
association :
1. Un pays a une capitale
2. Une transaction boursière est un achat ou une vente
3. Les fichiers contiennent des enregistrements
4. Une personne utilise un langage de programmation dans un projet
5. Les modems et les claviers sont des périphériques d’entrées/sorties
                                                                                                                           Corrigé >> 
                                                                                                                       Liste des exercices corrigés >>

       III.5. Contrainte sur une association:

Q25: Exprimez l'utilité des contraintes dans un contexte UML et précisez comment
sont-elles exprimées. Illustrez par des exemples.  
Les contraintes sont des expressions qui précisent le rôle ou la portée d'un élément de modélisation (elles
permettent d'étendre ou préciser sa sémantique).
 
Sur une association, elles peuvent par exemple restreindre le nombre d'instances visées (ce sont alors des
"expressions de navigation").
 
Les contraintes peuvent s'exprimer en langage naturel. Graphiquement, il s'agit d'un texte encadré
d'accolades.
 

                                                                                      
_____________________________________________________________________________________________________________________
________________
                                                                                                                                                    Sommaire UML                                                                        
                                                        Suivant >>

                                                                                                                                                                                                                                                                    
                                           2-Diagramme d'objets

_____________________________________________________________________________________________________________________
________________

Unknown

Partager

1 commentaire:

Unknown 6 janvier 2021 à 08:54


satisfait, mais sauf qu'il ya des images absentes
Répondre

Saisissez votre commentaire…

Commentaire : l2cformation Déconnexion

Publier Aperçu M'informer

‹ Accueil

Afficher la version Web

Fourni par Blogger.

Vous aimerez peut-être aussi