Modélisation des bases de données avec UML Construction d’un modèle UML

Download Report

Transcript Modélisation des bases de données avec UML Construction d’un modèle UML

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
(VEGA2)
cas d'utilisation
: acteur (intéragissant
avec VEGA2)
Cas d’utilisation
message
une fonctionnalité attendue du système
(VEGA2) par les différents acteurs.
message
message
Diagramme de Classes
message
objet 1
Diagramme de séquence
lien exprimant que "objet 2 est une sorte de objet 1"
objet 2
lien exprimant que "objet 2
a une relation avec objet 4"
lien exprimant que
"objet 2 est
composé de objet 3"
objet 3
Chaque cas d'utilisation apparaît comme un scénario,
décrit par un ou plusieurs diagrammes de séquence.
objet 4
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
MaVoiture : 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 = 648ADX38
AnnéeModele = 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éeModele : 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 1
généralisation
classe 2
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
voiture
camion
avion
classe 4
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
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
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..*
0..*
Travail
1
Note
0..1
Chambre
Numéro
17
Contraintes
personne
Est_titulaire>
0 .. *
compte
1
{Ordonnée}
0 .. *
personne
Parent d ’élève
classe
{Sous ensemble}
0 .. *
Délégués
0 .. *
personne
Enseignants
université
{Ou-exclusif}
0 .. *
Etudiants
18
Agrégation
Livre
Chapitre
1 .. *
1
{Ordonnée}
{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
NiveauPriorite
FicheEtude
Conclusion
Problème()
Tes_infos?()
Nou_Paramètres()
Créer_Etude()
Projet
NomProjet
NuméroPDM
DateDebutProjet
1..*
Induit 1
1..*
Projet()
Tes_infos?()
Nouv_Paramètres()
Créer_Problème()
1..*
LesProblèmes
1
Outil Simulation
EstResoluPar
0..*
Etude
0..1
ComplétéePar
0..*
Titre_Etude
NomPièce
ButEtude
TypeEtude
Conclusion
Etude()
Tes_infos()
Nouv_Paramètres()
Créer_Cycle()
Ajouter_Conclusion()
LesProjets
0..1
Suivant
0..*
1..*
LesEtudes
Créer_Projet()
Modifier_Projet()
ModifierParamètre_Projet()
Créer_Problème()
Modifier_Problème()
ModifierParamètre_Problème()
Créer_Etude()
Modifier_Etude()
ModifierParamètre_Etude()
FaireAppelAUneAncienne_Etude()
Conclure_Etude()
Créer_Cycle()
Modifier_Cycle()
ModifierPramètre_Cycle()
Rajouter_Entité()
Conclure_Cycle()
21
Modèle Statique
• Passage d ’un diagramme de classe à un modèle relationnel
22
Règle 0 & 1: attribut et classe
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
Règle 2 : relation de multiplicité (1)
Classe
produit
Réf-produit
Libellé-p
Prix-vente-p
*
< 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
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
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
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
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/UML1.ppt
29