Modlisation des bases de donnes avec UML Construction
Modélisation des bases de données avec UML Construction d’un modèle UML d’objets persistants et transformation en modèle relationnel 1
Axes de modélisation d ’un système Statique (ce que le système EST) • diagramme de classes • diagramme d’objets • diagramme de composants • diagramme de déploiement Dynamique (comment le système EVOLUE) • diagramme de séquence Fonctionnel (ce que le système FAIT) • diagramme de collaboration • diagramme de cas d’utilisation • diagramme d’états-transitions • diagramme de collaboration • diagramme d’activités 2
Niveaux d’abstraction d’un SI En UML, les mêmes modèles peuvent être utilisés à différents niveaux d ’abstraction du plus conceptuel à l’implantation. On peut donc appliquer des mécanismes de transformation continue. • • Conceptuel organisationnel logique physique 3
Les 9 diagrammes UML • diagramme de cas d’utilisation • diagramme de classes • diagramme de séquence • diagramme de collaboration • diagramme d’objets • diagramme d’états-transitions • diagramme d’activités (nous utiliserons IDEF 0) • diagramme de composants • diagramme de déploiement 4
Description UML des 9 diagrammes UML Diagramme Ceci est un commentaire Cas d ’utilisation Collaboration Composants Classes Etats Transitions Déploiement Séquence Activité Objets 5
Exemples : Quelques diagrammes Système (VEGA 2) Cas d’utilisation une fonctionnalité attendue du système (VEGA 2) par les différents acteurs. Diagramme de Classes : acteur (intéragissant avec VEGA 2) message Diagramme de séquence Chaque cas d'utilisation apparaît comme un scénario, décrit par un ou plusieurs diagrammes de séquence. Un diagramme de séquences montre les interactions entre les acteurs et le système selon un point de vue temporel pour accomplir une fonctionnalité attendue du système (un cas d ’utilisation). C’est une ensemble de messages échangés entre les acteurs et le système, ordonnés chronologiquement. 6
Modèle Fonctionnel • Use Cases : cas d ’utilisation • diagramme de collaboration 7
Modèle Statique • diagramme d ’objets • Diagramme de classes 8
Objets et classes Ma. Voiture : Voiture Objet : une entité concrète avec une identité bien définie qui encapsule un état et un comportement. L ’état est représenté par des valeurs d’attribut et des associations, le comportement par des méthodes. marque = Renault Modèle = Nevada Immatriculation = 648 ADX 38 Année. Modele = 1992 Kilométrage = 285 000 Un objet est une instance d ’une classe. Classe : une description d’un ensemble d’objets qui partagent les mêmes attributs, opérations, méthodes, relations et contraintes. Une classe peut posséder des attributs ou des méthodes « de classe » . Voiture marque : chaîne Modèle : chaîne Immatriculation : chaîne (8) Année. Modele : date Age_moyen : entier Rouler ( ) Kilometrage_annuel_moyen ( ) 9
Diagramme d’Objets Structure statique d’un système, en termes d’objets et de liens entre ces objets. Ces objets et ces liens possèdent des attributs qui possèdent des valeurs. Un objet est une instance de classe et un lien est une instance d’association. Nom de l’objet : Classe Attributs = valeurs Etienne : personne Personne âge : entier collaborateur * patron 1 âge = 35 patron emploie> collaborateur Jean-Luc : personne âge = 25 Diagramme de classes Diagramme d ’objets 10
Diagramme de classes Structure statique d’un système, en termes de classes et de relations entre ces classes. Voiture Couleur Nom de classe Attributs exemple : Opérations () Cylindrée Vitesse max Démarrer () Accélérer () Syntaxe: Freiner () • nom_attribut : type_attribut = valeur initiale • nom_opération (nom_argument : type_argument = valeur_par_défaut, …) : type_retourné Visibilité : trois niveaux de visibilité pour les attributs et les opérations: • public (+) : élément visible à tous les clients de la classe • protégé ( #) : élément visible aux sous-classes de la classe • privé (-) : élément visible à la classe seule 11
Diagramme de classes : Relations entre classes Agrégation : quand une classe fait partie d’une autre classe (agrégat - composant) Association : toute relation structurelle entre classes, autre que l ’agrégation et la généralisation classe 2 i classe 1 oc ass généralisation on ati spécialisation Généralisation : factorisation des éléments communs d’un ensemble de classes dits sousclasses dans une classe plus générale dite super-classe. Elle signifie que la sous-classe est un ou est une sorte de la super-classe. Le lien inverse est appelé spécialisation constructeur 1 1. . * véhicule 1 1. . * moteur classe 3 agrégation classe 4 voiture camion avion 12
Associations Agrégation: • Association transitive : si voiture est composée de moteur et si moteur est composé de courroie alors voiture est composée de courroie • Association non systémique : si voiture est composée de moteur, moteur ne peut pas être composé de voiture • Association qui peut être réflexive : une fonction peut être composée d ’autres fonctions Rôle et multiplicité : • Une classe a un rôle dans une association. • Les rôles portent une information de multiplicité précisant le nombre d ’associations auquel une instance d ’objet peut être associée. Les multiplicités les plus courantes sont : 1 / 0. . 1 / m. . n / * /0. . * / 1. . * 13
Nommage des associations constructeur fabricant personne Construire> <construit par produit <Transporte véhicule conducteur Conduit> véhicule propriétaire Possède> véhicule employé <Emploie employeur directeur Dirige> société actionnaire Possède> passager véhicule entreprise société 14
Multiplicité des associations 1 Un et un seul (obligatoire) 0. . 1 Zéro ou un (optionnel) m. . n De m à n (entiers) * ou 0. . * 1. . * Personne quelconque Au moins 1 0. . * Employeur Employé 1 Société 15
Arité des associations Association d’arité 3 Salle lieu Etudiant Cours Enseignant Début Fin 16
Placement des attributs et des associations Etudiant 1 0. . * Diplôme Mention Réalise > 0. . * Travail 1 Note 0. . 1 Chambre Numéro 17
Contraintes personne Est_titulaire> 1 personne 0. . * compte {Ordonnée} 0. . * Parent d ’élève classe {Sous ensemble} 0. . * Délégués personne 0. . * Enseignants 0. . * université {Ou-exclusif} Etudiants 18
Agrégation Livre 1. . * 1 Chapitre {Ordonnée} 1. . * Paragraphe 19
Composition Homme 1 1 Tête La composition traduit une dépendance existentielle forte. 20
Exemple de diagramme de classes Problème Titre_Problème Objectif Delai Prix Niveau. Priorite Fiche. Etude Conclusion Problème() Tes_infos? () Nou_Paramètres() Créer_Etude() Projet Nom. Projet Numéro. PDM Date. Debut. Projet 1. . * Induit 1 1. . * Projet() Tes_infos? () Nouv_Paramètres() Créer_Problème() 1. . * Les. Problèmes 1 Outil Simulation Est. Resolu. Par 0. . * Etude 0. . 1 Complétée. Par 0. . * Titre_Etude Nom. Pièce But. Etude Type. Etude Conclusion Etude() Tes_infos() Nouv_Paramètres() Créer_Cycle() Ajouter_Conclusion() Les. Projets 0. . 1 Suivant 0. . * 1. . * Les. Etudes Créer_Projet() Modifier. Paramètre_Projet() Créer_Problème() Modifier. Paramètre_Problème() Créer_Etude() Modifier. Paramètre_Etude() Faire. Appel. AUne. Ancienne_Etude() Conclure_Etude() Créer_Cycle() Modifier. Pramètre_Cycle() Rajouter_Entité() Conclure_Cycle() 21
Modèle Statique • Passage d ’un diagramme de classe à un modèle relationnel 22
e u tiq a t s e el : l è od ionn m u elat ons d ge au r ciati a s Pas UML asso Classe les Règle 0 & 1: attribut et classe produit fournisseur Réf-produit Libellé-p Prix-vente-p Code-fournisseur Adresse Téléphone Relation / Table Produit (Réf-produit, Libellé-p, Prix-vente-p) Fournisseur (Code-fournisseur, Adresse, Téléphone) 23
au L UM ue q i t ta e s el : l è od ionn ions m du relat ociat e s sag as s Classe s a e l P produit Réf-produit Libellé-p Prix-vente-p Règle 2 : relation de multiplicité (1) * < fournir fournisseur 1 Code-fournisseur Adresse Téléphone remise Relation / Table Produit (Réf-produit, Libellé-p, Prix-vente-p, Code-fournisseur, remise) Fournisseur (Code-fournisseur, Adresse, Téléphone) 24
au L UM ue q i t ta e s el : l è od ionn ions m du relat ociat e s sag as s s a e l P Règle 3 : relation de multiplicité (0 -1) Classe produit Réf-produit Libellé-p Prix-vente-p fournisseur * < fournir 0 -1 Code-fournisseur Adresse Téléphone remise Relation / Table Produit (Réf-produit, Libellé-p, Prix-vente-p, remise, Code-fournisseur) Fournisseur (Code-fournisseur, Adresse, Téléphone) 25
au L UM ue q i t ta e s el : l è od ionn ions m du relat ociat e s sag as s s a e l P Règle 4 : relation de multiplicité (0. . *) (1. . *) Classe produit Réf-produit Libellé-p Prix-vente-p * fournisseur < fournir 0. . * Code-fournisseur ou Adresse 1. . * Téléphone remise Relation / Table Produit (Réf-produit, Libellé-p, Prix-vente-p) Fournisseur (Code-fournisseur, Adresse, Téléphone) Fournir (Réf-produit, Code-fournisseur, remise) 26
au L UM ue q i t ta e s el : l è od ionn ions m du relat ociat e s sag as s s a e l P Règle 5 : relation réflexive orientée Relation / Table Père (nom-fils, nom-père) Classe Personne 0. . * nom 1 père de > 27
au L UM ue q i t ta e s el : l è od ionn ions m du relat ociat e s sag as s s a e l P Règle 6 relation réflexive symétrique Relation / Table Personne (Nom) Frère (nom, nom) Classe Personne nom Attention, la relation étant transitive, des traitements devront être associés au modèle. frère de 28
Références • http: //uml. free. fr/ site en français • http: //gilco. inpg. fr/~tollenaere/msi/diaporamas/UML 1. ppt 29
- Slides: 29