Diagramme de classes
  • Objectifs
    • Un diagramme de classes représente un ensemble de classes, d'interfaces et de collaborations ainsi que leurs relations.
    • Un coup d'oeil à ce diagramme devrait indiquer les exigences fonctionnelles d'un système, i.e. les services que le système doit fournir aux utilisateurs finals.
    • Il doit faire abstraction des aspects dynamiques et temporels.
    • Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits.
    • Pour représenter un contexte précis, un diagramme de classes peut être instancié en diagrammes d'objets.
  • Éléments de base:

Les associations représentent un lien sémantique entre plusieurs classes. Cela veut dire qu'un objet d'une classe a un rapport particulier avec un autre objet d'une autre classe.

Documentation d'une association

  • Cardinalité: précise le nombre d'instances qui participent à une relation
    • n : exactement "n" (n, entier naturel > 0) exemples : "1", "7"
    • n..m : de "n" à "m" (entiers naturels ou variables, m > n) exemples : "0..1", "3..n", "1..31"
    • * : plusieurs (équivalent à "0..n" et "0..*")
    • n..* : "n" ou plus (n, entier naturel ou variable) exemples : "0..*", "5..*
  • Agrégation: représente une relation de type "ensemble / élément"
    • elle peut exprimer qu'une classe (un "élément") fait partie d'une autre ("l'agrégat")
  • Composition: la composition est une agrégation forte

    Servez vous de l'agrégation et de la composition pour ajouter de la sémantique à vos modèles lorsque cela est pertinent.

  • Contrainte sur une association: expression qui précise le rôle ou la portée d'un élément de modélisation (elles permettent d'étendre ou préciser sa sémantique)
    • graphiquement, il s'agit d'un texte encadré d'accolades

     

Exemple d'association entre classes en indiquant les cardinalités

 

Exemple d'association et d'agrégation de classes

 

Exemple d'association et de composition de classes

 

Exemple de contraintes d'association de classes

 

Trucs et astuces pour un diagramme de classes bien structuré

  • le diagramme doit être centré sur l'aspect statique du système
  • disposer ses éléments en évitant que les lignes se croisent
  • organiser ses éléments dans l'espace de façon que les éléments proches du point de vue sémantique soient également proches du point de vue physique
  • essayer de ne pas montrer trop de types de relations. Fournir les détails qui correspondent à son niveau d'abstraction