44
Le diagramme de classe Université Mohamed Chérif Messadia ــSouk - Ahras ــPRÉPARER PAR : ILHEM DAOUDI ABDALLAH AMIRAT

Diagramme de classe

Embed Size (px)

Citation preview

Page 1: Diagramme de classe

Le diagramme de classe

Université Mohamed Chérif Messadia ــ Souk-Ahras ــ

PRÉPARER PAR :ILHEM DAOUDIABDALLAH AMIRAT

Page 2: Diagramme de classe

le plan :

1 – Introduction.

2 - Objectifs du diagramme de classe.

3 - Définition d’un diagramme de classe.

4 – les classes.4.1 - Schéma d’une classe.

4.2 - Les attributs.

4.3 - La visibilité.

4.4 - Exemple d'attributs.

Page 3: Diagramme de classe

5 - Les méthodes.

6 - Les relations entre les classes.6.1- Une association.

6.2 – Agrégation.

6.3 – Composition.

6.4 – Généralisation.

6.5 - La dépendance.

7 – Stéréotype.

8 – Exemples.

9 - Méta modèle.

9 – Références.

Page 4: Diagramme de classe

1- Introduction :

Le diagramme des classes est le diagramme le plus largement répandu dans les spécifications d'UML. Ces dernier peuvent produire directement du code source dans les langage informatique (C++, C #, Phyton, Java …) via ces modèles (foward engennering). Ou bien l’inverse (reverse engennering).

Page 5: Diagramme de classe
Page 6: Diagramme de classe

2 - Objectifs :

Déterminer les attributs qui seront manipulées par le système Ces attributs sont organisées en classes .

Donner la structure statique de ces attributs .

Ce diagramme permet de décrire la structure interne de chacune des classes •

La navigation parmi les classes est rendue possible par l’existence d’associations qui les unissent .

Page 7: Diagramme de classe

3 - Définition :

Le diagramme de classes est un schéma utilisé en génie logiciel pour présenter les classes et les interfaces des systèmes ainsi que les différentes relations entre celles-ci. Ce diagramme fait partie de la partie statique d'UML .

Une classe décrit les responsabilités, le comportement et le type d'un ensemble d'objets.

Les éléments de cet ensemble sont les instances de la classe.

Page 8: Diagramme de classe

4 - Les classes :

Une classe est un ensemble de méthodes et des attributs qui sont liées ensemble par un champ sémantique. Les classes sont utilisées dans la programmation orientée objet. Elles permettent de modéliser un programme et ainsi de découper une tâche complexe en plusieurs tâche simples.

Les classes peuvent être liées entre elles avec des relations., chacune de ces relations est représentée par un arc spécifique dans le diagramme de classes.

Page 9: Diagramme de classe

4.1 - Schéma d'une classe :

Une classe est représentée par un rectangle séparée en trois parties :

la première partie contient le nom de la classe

la seconde contient les attributs de la classe

la dernière contient les méthodes de la classe

La seconde et la dernière représentent le comportement de la classe.

Page 10: Diagramme de classe

4.2 - les attributs :

La syntaxe d'un attribut est la suivante :

Visibilité nomAttribut [multiplicité] : typeAttribut

Nom de l'attribut

Il ne doit pas comporter d'espaces, de signes de ponctuation ou d'accents. Pour remplacer les espaces, plusieurs conventions existent : on peut utiliser le symbole _ ou changer la première lettre du mot en majuscule (exemple : nom de l'objet peut s'écrire nomObjet ou nom_objet).

Page 11: Diagramme de classe

4.3 - Visibilité :La notion de visibilité indique qui peut avoir accès à l'attribut.

Elle ne peut prendre que 4 valeurs possibles :

Caractère Rôle Mot clé Description

+ accès publicpublic

Toutes les autres classes ont accès à cet

attribut.

#accès protégé

protected

Seules la classe elle-même et les classes

filles (héritage) ont accès à cet attribut.

~ accès packagepackage

Classe visible uniquement dans le

package.

- accès privéprivate

Seule la classe elle-même a accès à cet

attribut.

Page 12: Diagramme de classe

//attribut public prenom de type string (chaine de caractères)

+ prenom : string

//attribut privé age de type int (entier)

- age : int

4.4 - Exemple d'attributs

Page 13: Diagramme de classe

5 - Les méthodes : La syntaxe d'une méthode est la suivante :

Visibilité nomFonction(directionParamètreN nomParamètreN : typeParamètreN) : typeRetour

Visibilité

La notion de visibilité est la même que celle des attributs.

Direction du paramètre

Indique si le paramètre est rentrant (in), s'il est sortant (out) ou s'il est rentrant et sortant (inout).

Exemples de méthode

//méthode publique getAge() retournant un entier

+ getAge() : int

//méthode protégée calculerAge() prenant comme paramètre dateNaissance de type Date et ne retournant rien (void)

Page 14: Diagramme de classe

6 - Relations entre les classes:Ces relations ne sont pas exclusives au diagramme de classe, elles peuvent également s'appliquer à l'ensemble des diagrammes statiques.

6.1- Une association: est une relation entre deux classes (association binaire) ou plus (association n-aire), qui décrit les connexions structurelles entre leurs instances. Une association indique donc qu'il peut y avoir des liens entre des instances des classes associées.

association binaire

Page 15: Diagramme de classe

6.1.1- multiplicité : comparable aux cardinalités du

système Merise, sert à compter le nombre minimum et

maximum d'instances de chaque classe dans la relation liant

2 ou plusieurs classes.

association n-aire

Page 16: Diagramme de classe

6.1.2 - Navigation• Bien que les associations soit bi-directionnelles par défaut, il peut être

bon de limiter la navigation à un seul sens.

• Les objets de Classe2 sont accessibles à partir de ceux de Classe1 et vice-versa

• Si la navigation est restreinte, une flèche indique le sens de navigation

• Les objets de la Classe 1 sont accessibles à la classe 2 mais la Classe 2 elle peut pas accédez a la Classe 1

Page 17: Diagramme de classe

6.1.3 - Association réflexive

• Une association peut mettre en jeux deux classes distinctes Mais, elle peut aussi apparaître sur une seule et même classe Dans ce cas précis, l’association est dite réflexive.

Page 18: Diagramme de classe

6.2 - classe d'association :

une classe d'association est une classe qui fait partie d'une relation d'association entre deux autres classes.

Vous pouvez rattacher une classe d'association à une relation d'association pour fournir des informations supplémentaires sur la relation.

Une classe d'association est identique à d'autres classes et peut contenir des opérations, des attributs, ainsi que d'autres associations.

Page 19: Diagramme de classe

Exemple

Page 20: Diagramme de classe

6.2.1 - Contraintes sur association

• D’autres types de contraintes existent sur une association :

• Des contraintes prédéfinies :

– Les contraintes ensemblistes : {Sous-ensemble}

– Les contraintes d’ordonnancement : {Ordonné}

– Les contraintes d’exclusion : {Ou - exclusif}

Des contraintes spécifiques au moyen du langage OCL (Object Constraint Language).

Page 21: Diagramme de classe

6.2.1.1 - Association ordonnée

• Contraintes sur les associations pour exprimer que les objets sont ordonnés (selon la clé, le nom, la date, etc.).

• Cette contrainte est spécifiée par le stéréotype {Ordonné} du côté de la classe dont les instances sont ordonnés.

• Le modèle ne spécifie pas comment les objets sont ordonnés Pour décrire comment les objets sont ordonnés on utilise un commentaire en employant la notation graphique suivante :

Page 22: Diagramme de classe

6.2.2 - Association « ou-exclusif »

Un contrat d’assurance concerne une entreprise ou une personne mais pas les deux en même temps.

Page 23: Diagramme de classe

6.2.3 - Association « sous-ensemble »

• C’est une contrainte qui indique qu’une collection est incluse dans une autre collection.

• La contrainte est placée à proximité d’une relation de dépendance entre deux associations.

• La flèche de la relation de dépendance indique le sens de la contrainte.

• Exemple :

Page 24: Diagramme de classe

4.6.2.4 - Association Qualifiée

• Utilisée avec une relation de multiplicité *.

• Permet de trier la relation en fonction des valeurs d’un attribut.

Page 25: Diagramme de classe

6.2 - Agrégation

les agrégations indiquent une relation de contenant contenu. Elle décrite par une relation "possède". Une relation d'agrégation est représentée par une ligne avec un "diamant" creux.

• L’agrégation représente une association de type ensemble/élément.

• L’agrégation ne concerne qu’un seul rôle d’une association.

Page 26: Diagramme de classe

4.6.2 – Agrégation (2)

• Exemple 1

• – Une personne est dans une foule.

• – Une foule contient plusieurs personnes.

• Exemple 2 (Agrégation partagée)

• – Une personne fait partie de plusieurs équipes.

• – Une équipe contient plusieurs personnes.

Page 27: Diagramme de classe

6.3 - Composition

Si une classe ne peut pas exister par elle-même, mais doit être un membre

d'une autre classe, alors elle possède une relation de composition avec la

classe contenant.

Une relation de composition est une relation d’agrégation dans laquelle

il existe une contrainte de durée de vie entre la classe ‘composant’ et la

ou les ‘composé’.

Autrement dit la suppression de la classe ‘composé’ implique la

suppression de des classes ‘composant’.

La valeur max de multiplicité du côté du conteneur ne doit pas excéder 1

puisque les objets, instances de la classe des composants, doivent tous

appartenir au même objet conteneur.

Page 28: Diagramme de classe

Exemple de Composition et Agrégation

Agrégation

Composition

Page 29: Diagramme de classe

6.4 - Généralisation

une relation de généralisation est l'équivalent d'une relation d'héritage en terme orientés objet (relation "est-un "). Une relation de généralisation est indiquée par une flèche creuse se dirigeant vers la classe "parent ".

Page 30: Diagramme de classe

6.5 - La dépendance :

Définition : 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é Relation non structurelle existant entre plusieurs éléments.

Représentation UML: une flèche pointillé éventuellement stéréotypée.

Quatre types de relations de dépendances :

Abstraction: relation entre éléments qui représentent un même concept à différents niveaux d’abstraction ou selon des points de vue distincts.

Liaison: dépendance entre une classe paramétrable (cible) et une classe paramétrée (source).

Permission: l’élément source a le droit d’accéder à l’espace de nommage de l’élément cible.

Utilisation: l’élément source requiert la présence d’un élément cible.

Page 31: Diagramme de classe

7 – Stéréotype

• Un stéréotype permet d’étendre les classes déjà existantes en leur donnant une signification sémantique différente.

• Si la classe A est un stéréotype de la classe B, alors A se comporte comme B tout en ayant une signification sémantique différente.

• Mécanisme proche de la généralisation/spécialisation sauf qu’il permet le changement de sémantique.

• Représentation UML:

Page 32: Diagramme de classe

• Quelques stéréotypes prédéfinis :

• énumération: classe définissant un ensemble d’identificateurs formant le domaine de valeur d’un type.

• utilitaire: classe réduite au concept de module et qui ne peut être instanciée.

• acteur: classe modélisant un ensemble de rôles joués par un acteur.

• interface: classe contenant uniquement une description des opérations visibles.

• exception: classe modélisant un cas particulier de signal : les exceptions.

7 – Stéréotype (2)

Page 33: Diagramme de classe

8 - Exemple1 :

Considérons l'exemple d'un système vétérinaire. Des animaux de compagnie, comme des chiens ou des oiseaux, sont suivis par leurs propriétaires.

Le diagramme suivant modélise une solution potentielle. Considérant que les chiens comme les oiseaux sont "un genre" d'animal, nous utilisons un relation de généralisation.

Page 34: Diagramme de classe
Page 35: Diagramme de classe

8- Exemple 2 :

Une personne physique peut avoir jusqu'à trois sociétés (personnes morales) qui l'emploient.

Chaque personne physique possède un numéro de sécurité sociale qui l'identifie.

Une voiture a un numéro d'immatriculation. Une voiture est la propriété d'une personne (physique ou morale).

Un emprunt dans une banque peut être demandé pour l'achat d'une voiture.

Page 36: Diagramme de classe
Page 37: Diagramme de classe

8 - Exemple 3 :

On veut implanter une base de données pour la gestion des rencontres des tournois de tennis d’une saison donnée, On pourra ainsi déterminer facilement le classement des joueurs au niveau mondial. ON dispose des informations suivantes:

Chaque joueur a un nom et un sexe. Deux joueurs peuvent former une équipe de double.

Un joueur, donnée n’appartient normalement qu’a une équipe, au plus.

Un tournoi est caractérise par son nom et de déroule dans un pays donnée à une date prévue.

On souhaite également stocker la monnaie du pays concerné. A la fin d’un tournoi.

un joueur ou une équipe participant à ce tournoi obtient un score qui reposent le nombre de tours passés dans le tournoi (1er tour vaut 1, 2eme tour vaut 2 points etc.).

On attribue à chaque tournoi un coefficient selon son importance.

Page 38: Diagramme de classe
Page 39: Diagramme de classe

8 - Exemple 4

• Un éditeur de documents graphiques supporte le groupement d'objets graphiques. Un document se compose de plusieurs feuilles, chacune contenant des objets graphiques (texte, forme géométrique et groupe d'objets). Un groupe est un ensemble d'objets pouvant contenir d'autres groupes. Un groupe doit contenir au moins deux éléments. Les formes géométriques comprennent les cercles, les ellipses, les rectangles, les carrés, les lignes...

Page 40: Diagramme de classe
Page 41: Diagramme de classe

9 - Méta modèle :

Nous venons de voir que les modèles étaient des représentations de l’information nécessaire à la production et à l’évolution des applications informatiques.

Le méta-modèle permet de définir la sémantique des modèles qui vont être créés. Ils se placent dans le niveau 2 de l’architecture de méta modélisation définie par l’OMG.

Le Méta-Modèle est représenté sous forme d’un diagramme de classe UML

Ils permettent d’associer des traitements aux modèles grâce notamment aux méta-opérations

des méta classes.

Page 42: Diagramme de classe
Page 43: Diagramme de classe

10 -Références:

• http://laurent-audibert.developpez.com/Cours-UML/?page=diagramme-classes

• http://slauncha.dyndns.org/

• http://uml.free.fr/cours/i-p14.html

• https://msdn.microsoft.com/fr-fr/library/dd323862.aspx

• http://www.eyrolles.com/Chapitres/9782212115390/chap2_Blanc.pdf

• Livre : Analyse et Conception avec UML.

• Livre : Introduction à UML Jean-Yves Didier unversity d'évary .

Page 44: Diagramme de classe