Votre guide dans les plaines du far-web

Formation développeur web


« Donne un poisson à un homme, tu le nourris pour un jour. Apprends-lui à pêcher, tu le nourris pour toujours. » Lao Tseu

Présentation

Mis à jour le

Note importante : pour ceux qui ont déjà vu la méthode Merise, et qui maîtrisent déjà un minimum la POO, vous partez avec une longueur d'avance. Vous n'aurez aucun mal à vous retrouver dans les diagrammes de classe. La principale différence avec la méthode Merise…

~~ Fin de l'extrait ~~

Classes

Mis à jour le

Le cœur des diagrammes de classe, c'est la notion POO de "classe". Voir le cours la programmation orientée objet si vous ne maîtrisez la notion de classe.

Attention, l'UML différencie la notion de classe et d'instance…
~~ Fin de l'extrait ~~

Associations

Mis à jour le

Une fois que vos principales classes ont été "posées" sur votre diagramme, il va falloir établir les liens qui existent entre elles.


Association bidirectionnelle

Les associations bidirectionnelles sont représentées par un simple trait

~~ Fin de l'extrait ~~

Multiplicités

Mis à jour le

Les multiplicités sont l'équivalent des cardinalités du modèle Merise.

Les multiplicités se positionnent à l'inverse du modèle Merise, non pas à côté de la classe de départ, mais à côté de la classe d'arrivée.
~~ Fin de l'extrait ~~

Rôles

Mis à jour le

Nomme l'extrémité d'une association

Permet d'accéder aux objets liés, par l'association à un objet donné.

Permettra de déterminer le nom des méthodes stockant les objets d'une classe B dans une classe A (si la flèche va de A vers B).

Dans le cas d'association uni directionnelles, le rôle ne se mettra…

~~ Fin de l'extrait ~~

Classes association

Mis à jour le

Parfois, on a besoin de rajouter des propriétés à une association.

Cela arrive lorsque l'on souhaite décrire quelque chose qui n'appartient ni à une classe A, ni a une classe B, mais bien à l'association entre ces deux classes.

Dans ce cas, on va créer une…

~~ Fin de l'extrait ~~

Hiérarchie de classe

Mis à jour le

Grâce à certains concepts de POO, on va pouvoir hiérarchiser nos différentes classes entre elles.

On se retrouvera avec des classes de haut niveau (classes "parentes"), et des sous-classes (classes "enfants").

Cette hiérarchisation va permettre de regrouper des informations de manière plus fidèle à la réalité des besoins de notre application.

~~ Fin de l'extrait ~~

Généralisation

Mis à jour le
La généralisation se base sur le concept POO de l'héritage.

L'héritage simple permet de déterminer qu'une classe EST AUSSI une autre classe (ex : un chat EST UN animal, une voiture EST UN véhicule, etc...).

Une classe enfant hérite de tous les attributs et méthodes de…

~~ Fin de l'extrait ~~

Abstraction

Mis à jour le

L'héritage "simple" sous-entend que l'on peut très bien instancier un objet de la classe parente (ici, Joueur). Ce qui veut dire que l'on a 4 types d'objets possibles en réalité : Attaquant, Défenseur, Gardien... mais aussi Joueur. On pourra donc…

~~ Fin de l'extrait ~~

Interfaces

Mis à jour le

Une interface est une spécification de comportement qu'une classe doit implémenter afin d'être utilisée par d'autres classes.

À la différence d'une classe abstraite, une interface ne dispose que d'attributs et de méthodes publiques, non implémentés. Cela veut dire que la méthode existe, mais qu'elle devra…

~~ Fin de l'extrait ~~

Agrégation

Mis à jour le

Permet de définir une association particulière entre deux classes.

Engendre une dissymétrie entre les classes, une classe "prédomine" l'autre

On parle de relation composant-composite :

  • le composite est le "conteneur"
  • le composant est le "contenu"


Il y a deux types d'agrégation :

  • agrégation…
~~ Fin de l'extrait ~~

Agrégation faible

Mis à jour le
Note : par convenance, on utilise le terme "agrégation" lorsque l'on parle d'agrégation faible.

Des objets d'une classe A peuvent être contenus dans des objets d'une classe B.

On…

~~ Fin de l'extrait ~~

Composition

Mis à jour le

Exprime une relation forte en deux classes.

Un composite contient forcément des composants. Une classe A contient des objets d'une classe B.

La destruction du composite entraine la destruction des composants.

Un composite ne fait partie que d'un seul composant à la fois.

La composition se schématise avec…

~~ Fin de l'extrait ~~

Logiciels et démo

Mis à jour le

Solution de facilité, mais peut s'avérer suffisant : 

  • papier crayon

Solution en ligne : 

  • draw.io

Client lourd Ubuntu friendly (testés) :

  • BOUML (bien pour la génération de code)
  • Umbrello
  • Dia

Autres (non-testés) :

  • papyrus (web ?)(linux ?)
  • mysql workbench / oracle (client lourd)
~~ Fin de l'extrait ~~

Ressources

Mis à jour le

Développez.com : https://laurent-audibert.developpez.com/Cours-UML/?page=diagramme-classes#L3-3-3

OpenClassRooms : https://openclassrooms.com/fr/courses/4055451-modelisez-et-implementez-une-base-de-donnees-relationnelle-avec-uml/4457193-apprehendez-les-objets-et-le-modele-relationnel

Liste d'outils pour l'UML : https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools

~~ Fin de l'extrait ~~

Exercices

Mis à jour le


faire 2/3 exo très simple avant gros TP complet