Diagramme de classe

48 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
48
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
1
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Diagramme de classe

  1. 1. Le diagramme de classe Université Mohamed Chérif Messadia ‫ــ‬ Souk-Ahras ‫ــ‬ PRÉPARER PAR : ILHEM DAOUDI ABDALLAH AMIRAT
  2. 2. 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.
  3. 3. 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.
  4. 4. 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).
  5. 5. 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 .
  6. 6. 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.
  7. 7. 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.
  8. 8. 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.
  9. 9. 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).
  10. 10. 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 public public 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 package package Classe visible uniquement dans le package. - accès privé private Seule la classe elle-même a accès à cet attribut.
  11. 11. //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
  12. 12. 5 - Les méthodes :  La syntaxe d'une méthode est la suivante : Visibilité nomFonction(directionParamètreN nomParamètreN : typeParamètreN) : type Retour  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)
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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.
  17. 17. 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.
  18. 18. Exemple
  19. 19. 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).
  20. 20. 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 :
  21. 21. 6.2.2 - Association « ou-exclusif » Un contrat d’assurance concerne une entreprise ou une personne mais pas les deux en même temps.
  22. 22. 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 :
  23. 23. 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.
  24. 24. 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.
  25. 25. 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.
  26. 26. 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.
  27. 27. Exemple de Composition et Agrégation Agrégation Composition
  28. 28. 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 ".
  29. 29. 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.
  30. 30. 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:
  31. 31. • 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)
  32. 32. 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.
  33. 33. 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.
  34. 34. 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.
  35. 35. 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...
  36. 36. 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.
  37. 37. 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 .

×