Appartements à louer

[30 min]

Une agence d'immobilier (ventes et locations) veut gérer son parc d'appartements dans une base de données. Chaque appartement possède plusieurs pièces, qui peuvent être des pièces d'habitation, des pièces de rangement, ou des commodités.

Chaque pièce a une superficie, un nombre de prises électriques et des meubles. Pour ces derniers, on veut enregistrer le nom du modèle et le type (chaise, lit, four, etc.). Rien n'empêche qu'une pièce comporte plusieurs meubles identiques (par exemple plusieurs chaises 'PIN IQUEA'). Les pièces d'habitation ont une ou plusieurs fenêtres, les pièces de rangement ont une ou plusieurs étagères et une surface de rangement utile totale. On veut aussi savoir dans quelles pièces de rangement se situent les tableaux électriques de l'appartement. Finalement, les pièces commodités peuvent être de trois types : cuisine, toilette, ou salle de bain.

L'agence veut aussi enregistrer les portes entre les différentes pièces. Une porte peut être à simple battant, double battant, coulissante, ou une simple ouverture.

Chaque appartement a une adresse, une superficie totale (qui est la somme des superficies des pièces) et un type, qui est la lettre 'T' suivie du nombre de pièces d'habitation de l'appartement. Pour un appartement donné, chaque pièce est identifiée par un numéro (commençant au numéro 1).

L'agence veut également enregistrer le quartier où se trouve l'appartement, auquel est lié un prix par mètre carré. Finalement, elle veut garder un historique de l'histoire de l'appartement : les périodes pour lesquelles il est libre, occupé, en travaux, ou vendu.

Question

Réalisez le diagramme UML répondant aux besoins de cette agence.

Solution

MCD UML
Remarque

La notation des clés avec # n'est pas standard en UML on préférera exprimer la contrainte de type clé en notant : {key}