🖨️ Version PDF
La modélisation des données est l’une des étapes la plus importante et la plus délicate d’un projet informatique. Elle permet de définir le côté back-end du logiciel.
A partir de cette modélisation, le développeur peut définir les classes et la base de données. En effet, les classes et la BD sont étroitement liées. Le plus souvent une table a pour correspondance une classe qui aura les mêmes propriétés.
Ces diagrammes donnent des points de vu différents du projet à réaliser.
Pour avoir un bon aperçu de l’UML, je vous conseille ce tuto de démarrage.
Et pour une documentation plus poussée : documentation complète.
L’UML est orienté objet. Il a donc tout son sens dès que l’application sera écrite en objet. Cette approche sera insdispensable dès que l’on utilisera un framework contenant un ORM (JPA, Hibernate, Doctrine).
Le diagramme que l’on va exclusivement étudier dans ce cours le diagramme des classes du Modèle Orienté Objet (MOO).
C’est le diagramme le plus important pour un développeur.
La classe est la description d’une famille d’objet. On définit son nom, ses attributs et ses méthodes.
Pour une modélisation rapide, on peut se permettre de ne mettre que les attributs importants et s’économiser l’écriture des méthodes.
Signification : Une personne possède des propriétés : un id, un nom, un prénom Elle posséde une méthode : elle sait lire.
Une fois les classes déterminées, il faut les relier entre elles. Une association est une relation entre 2 ou plusieurs classes.
L’héritage (ou la généralisation) est la base des langages objets. L’héritage consiste à regrouper dans une classe toutes les propriétés et méthodes communes à plusieurs classes. Si l’héritage est très employé en programmation, en modélisation il doit rester discret. En effet, l’héritage n’est pas toujours utile et il faut choisir parmi 3 manières pour les adapter à une BD relationnelle.
Signification : Un Etudiant EST une Personne (il hérite des propriétés et méthodes de Personne) Il possède un id, un nom, un prénom et un diplôme. Il sait lire et écrire.
La multiplicité exprime et quantifie la relation entre 2 instances de 2 classes. Les multiplicités s’expriment avec un nombre de relations minimales et maximales. Par exemple, on va dire qu’un véhicule possède entre 2 et 4 roues (minimale : 2 roues, maximale : 4 roues). Ceci s’écrit 2..4.
Pour une modélisation plus rapide, on n’utilise que les multiplicités maximales et on se limite aux valeurs 0, 1, * (* signifiant plusieurs).
0
1
*
Par défaut une relation est bidirectionnelle (sans flèche).
N’oublions pas. Il faut raisonner objet et non relationnel. Ceci signifie qu’une classe peut contenir une collection (ou un tableau) d’une autre classe. Cette notion est importante pour l’écriture du code, mais ne l’est pas pour la modélisation d’une base de données.
Signification :
Une association 1..1 signifie que :
Note :
Une association 1 * signifie que :
Une association .. signifie que :
Ici, l’association Participant est porteuse d’une propriété, le numéro de place qui sera associé à chaque étudiant (participant au cours).
Une association *..* peut être remplacée par 2 associations 1..*.
C’est une association ou la classe a une relation avec elle même. Cette association est très utilisée pour représenter une arborescence. Par exemple, un dossier (enfant) est contenu dans un dossier (parent).
C’est une relation 1..* qui a une notion de subordination faible dans laquelle un objet agrégat est fait de composants. Les composants font partie de l’agrégat. L’agrégation est symbolisée par un losange vide en contact avec la classe agrégat.
L’agrégation met en relation des instances d’objets. Deux objets distincts sont englobés, l’un des deux est une partie de l’autre sans toutefois en dépendre autant que dans une composition.
C’est une relation 1..* qui a une notion d’appartenance forte.
Une composition est une forme forte d’agrégation dans laquelle le cycle de vie des parties composantes est lié à celui du composé. Les composants n’existent pas seuls. Ils peuvent être créés après le composé, mais ensuite ils vivent et meurent avec lui.
Si on détruit le composé, les composants n’existent plus. Une fois établis, les liens ne peuvent pas être changés.
A utiliser avec parcimonie !
Voici un exemple de modélisation d’un enseignement.
Auteur : Philippe Bouget