CSC4102 : Qualité du modèle UML et patrons de conception ...
1 Modélisation des bases de données avec UML Construction dun modèle UML dobjets persistants et...
-
Upload
caroline-gros -
Category
Documents
-
view
117 -
download
3
Transcript of 1 Modélisation des bases de données avec UML Construction dun modèle UML dobjets persistants et...
1
Modélisation des bases de données avec UML
Construction d’un modèle UML d’objets persistants et transformation
en modèle relationnel
2
• diagramme de classes
• diagramme d’objets
• diagramme de composants
• diagramme de déploiement
Statique (ce que le système EST)
• diagramme de séquence
• diagramme de collaboration
• diagramme d’états-transitions
• diagramme d’activités
Fonctionnel (ce que le système FAIT)
Dynamique(comment le système EVOLUE)
• diagramme de cas d’utilisation
• diagramme de collaboration
Axes de modélisation d ’un système
3
• Conceptuel
• organisationnel
• logique
• physique
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.
Niveaux d’abstraction d’un SI
4
• 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
Les 9 diagrammes UML
5
Diagramme
Classes
Composants DéploiementCollaboration
Etats Transitions Séquence
Objets
Cas d ’utilisationCas d ’utilisation Classes Etats Transitions Séquence
Ceci est un commentaire
Description UML des 9 diagrammes UML
Activité
6
Cas d’utilisation
une fonctionnalité attendue du système (VEGA2) par les différents acteurs.
cas d'utilisation
Exemples : Quelques diagrammes
: acteur (intéragissant avec VEGA2)
Système (VEGA2)
message
messagemessage
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.
Diagramme de Classes
objet 1
objet 3
objet 2 objet 4
lien exprimant que "objet 2 est
composé de objet 3"
lien exprimant que "objet 2 a une relation avec objet 4"
lien exprimant que "objet 2 est une sorte de objet 1"
7
Modèle Fonctionnel
• Use Cases : cas d ’utilisation• diagramme de collaboration
8
Modèle Statique
• diagramme d ’objets• Diagramme de classes
9
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.
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 ».
Objets et classes
MaVoiture : Voiture
marque = Renault
Modèle = Nevada
Immatriculation = 648ADX38
AnnéeModele = 1992
Kilométrage = 285 000
Voiture
marque : chaîne
Modèle : chaîne
Immatriculation : chaîne (8)
AnnéeModele : date
Age_moyen : entier
Rouler ( )
Kilometrage_annuel_moyen ( )
10
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.
Personne
âge : entier
patron
collaborateur
1
*
Diagramme de classes
Nom de l’objet : Classe
Attributs = valeurs
Diagramme d’Objets
Etienne : personne
âge = 35
Jean-Luc : personne
âge = 25
patron
Diagramme d ’objets
collaborateur
emploie>
11
Structure statique d’un système, en termes de classes et de relations entre ces classes.
Nom de classe
Attributs
Opérations ()
Voiture
Couleur
Cylindrée
Vitesse max
Démarrer ()
Accélérer ()
Freiner ()
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
Syntaxe:
• nom_attribut : type_attribut = valeur initiale
• nom_opération (nom_argument : type_argument = valeur_par_défaut, …) : type_retourné
exemple :
Diagramme de classes
12
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
Généralisation : factorisation des éléments communs d’un ensemble de classes dits sous-classes 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
classe 4
classe 3
classe 2
classe 1
agrégation
associa
tion
généralisation sp
écia
lisa
tion
véhicule
voiture camion avion
moteurconstructeur1 1..* 1..*1
Diagramme de classes : Relations entre classes
13
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..*
Associations
14
Nommage des associations
véhiculeconstructeur
<construit parConstruire>
fabricantproduit
véhiculepersonneConduit>conducteur véhicule
Possède>propriétaire véhicule
<Transportepassager véhicule
entreprisepersonneDirige>directeur société
Possède>actionnaire société
<Emploieemployé employeur
15
Personne SociétéEmployeur
Employé 1
0..*
1
0 .. 1
m .. n
* ou 0 .. *
1 .. *
Un et un seul (obligatoire)
Zéro ou un (optionnel)
De m à n (entiers)
quelconque
Au moins 1
Multiplicité des associations
16
Arité des associations
Salle
EnseignantEtudiant
DébutFin
Courslieu
Association d’arité 3
17
Placement des attributs et des associations
Diplôme
TravailEtudiant
Chambre
Réalise >
Note
Numéro
Mention
0..* 0..*
1
0..1
0..*
1
18
Contraintes
comptepersonne
{Ordonnée}
Est_titulaire>
10 .. *
classepersonne{Sous ensemble}
0 .. *
0 .. *
Parent d ’élève
Délégués
universitépersonne
{Ou-exclusif}
0 .. *
0 .. *
Enseignants
Etudiants
19
Agrégation
ChapitreLivre
{Ordonnée}1
1 .. *
Paragraphe
{Ordonnée}1 .. *
20
Composition
TêteHomme 1 1
La composition traduit une dépendance existentielle forte.
21
Outil Simulation
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()
1..*
Projet
NomProjetNuméroPDMDateDebutProjet
Projet()Tes_infos?()Nouv_Paramètres()Créer_Problème()
Problème
Titre_ProblèmeObjectifDelaiPrixNiveauPrioriteFicheEtudeConclusion
Problème()Tes_infos?()Nou_Paramètres()Créer_Etude()
Etude
Titre_EtudeNomPièceButEtudeTypeEtudeConclusion
Etude()Tes_infos()Nouv_Paramètres()Créer_Cycle()Ajouter_Conclusion()
11..*
1..*
1
0..*
EstResoluPar
1
0..*
1..*
11..* Induit
1..*
LesProblèmes LesProjets
1..*1..*LesEtudes
0..1
ComplétéePar
0..*
0..1
0..*
0..1
Suivant
0..*
0..1
0..*
Exemple de diagramme de classes
22
Modèle Statique
• Passage d ’un diagramme de classe à un modèle relationnel
23
Relation / Table
Produit (Réf-produit, Libellé-p, Prix-vente-p)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
Règle 0 & 1: attribut et classe
produitRéf-produitLibellé-pPrix-vente-p
fournisseurCode-fournisseurAdresseTéléphone
ClassePassa
ge du modèle statique
UML au relationnel :
les associations
24
Produit (Réf-produit, Libellé-p, Prix-vente-p, Code-fournisseur, remise)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
Relation / Table
Règle 2 : relation de multiplicité (1)
fournisseurCode-fournisseurAdresseTéléphone
Classe
< fournir 1produitRéf-produitLibellé-pPrix-vente-p
remise
Passage du modèle sta
tique UML au
relationnel :
les associations
*
25
Classe
Produit (Réf-produit, Libellé-p, Prix-vente-p, remise, Code-fournisseur)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
Relation / Table
Règle 3 : relation de multiplicité (0-1)
fournisseurCode-fournisseurAdresseTéléphone
< fournir 0-1produitRéf-produitLibellé-pPrix-vente-p
remise
Passage du modèle sta
tique UML au
relationnel :
les associations
*
26
Produit (Réf-produit, Libellé-p, Prix-vente-p)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
Relation / Table
Fournir (Réf-produit, Code-fournisseur, remise)
Règle 4 : relation de multiplicité (0..*) (1..*)
fournisseurCode-fournisseurAdresseTéléphone
< fournir 0..*ou1..*
produitRéf-produitLibellé-pPrix-vente-p
remise
ClassePassa
ge du modèle statique UML au
relationnel :
les associations
*
27
Père (nom-fils, nom-père)
Relation / Table
Personne
nom
père de >
Classe
0..*
1
Règle 5 : relation réflexive orientée
Passage du modèle sta
tique UML au
relationnel :
les associations
28
Personne
nom
frère de
Classe
Personne (Nom)Frère (nom, nom)
Relation / Table
Règle 6 relation réflexive symétrique
Passage du modèle sta
tique UML au
relationnel :
les associations
Attention, la relation étant transitive, des traitements devront être associés au modèle.
29
Références
• http://uml.free.fr/ site en français
• http://gilco.inpg.fr/~tollenaere/msi/diaporamas/UML1.ppt