28
Modélisation Walter RUDAMETKIN Bureau F011 [email protected] htps://rudametw.github.io/teaching

Modélisation - GitHub Pages

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modélisation - GitHub Pages

Modélisation

Walter RUDAMETKINBureau F011

[email protected]://rudametw.github.io/teaching

Page 2: Modélisation - GitHub Pages

2

Méthodologie et Modélisation

– Modélisation : description structurelle– Méthodologie : démarche de

conception– Certaines méthodes sont liées à une

notation OMT, Merise (MCD)– La notation UML indépendante de toute

méthodologie

Page 3: Modélisation - GitHub Pages

3

Le modèle Entité-Association

Issu des travaux de Chen (US) et Européens

Objectifs :– Puissance de représentation– Stabilité et flexibilité : un ajout de données ne doit pas

remettre en cause le schéma.– Simplicité : facilité de compréhension et d'utilisation– Indépendance par rapport à l'implémentation cible

(SGBDR, fichiers, programmation…)

Plusieurs réalisations : MCD (Merise) , OMT (+méthodologie), UML,…

Page 4: Modélisation - GitHub Pages

OMTObject-modeling technique

Page 5: Modélisation - GitHub Pages

Merise MCDModèle conceptuel des données

Page 6: Modélisation - GitHub Pages

6

UML : ClasseDéfinition : Une classe est un concept identifiable et pertinent pour l'application, par exemple, une personne, une voiture, ... mais qui peut être aussi un concept ou une grandeur abstraite.

La classe est définie par une liste de propriétés qui la caractérisent. Celles-ci constituent le plus petit élément d'information ayant un sens par lui-même.

NomEntite

nomProp1

nomProp2

NomEntite

Personne

nomprénomagepoids

Voiture

Page 7: Modélisation - GitHub Pages

7

Classe vs Objet

On distingue les notions Classe et Objet.

On ne s'intéresse pas à chaque objet séparément, mais à un type d'objet.

Définition : Une classe est l'ensemble de tous les objets qui sont de la même nature et jouent le même rôle.

Personne

nomprénomagepoids

p1:Personne

DupontMarie2252

Page 8: Modélisation - GitHub Pages

8

IdentifiantUne des propriétés d'une classe, doit permettre d'identifier une de ses occurrences parmi toutes les autres.

On parle également de clé.

Exemple : numéro de sécurité sociale d'une personne

Représentation graphique UML (contrainte ou stéréotype, notion de profil)

Personne

num_insee {clé}nom prénomagepoids

Personne

num_insee <<identifiant>>nom prénomagepoids

Personne

num_inseenom prénomagepoids

identifiant=num_insee

Page 9: Modélisation - GitHub Pages

9

Terminologie UML

UML ainsi que les différents ateliers UML ont une terminologie différente :– Entité type → Classe– Entité Instance / Objet→– Propriété → Attribut– Identifiant → n'existe pas par défaut en

UML

Page 10: Modélisation - GitHub Pages

10

AssociationDéfinition : Une association est un lien logique entre l'ensemble des occurrences de classes éventuellement différentes.

Une association est souvent perçue comme une action menée vis à vis de classes (se traduit par un verbe). La mise en relation de classes peut faire apparaître des propriétés qui n'appartiennent en propre à aucune des classes. On distingue :– Les associations binaires relient les différentes instances

de deux classes d'entité (imposé par OMT et ODMG)– Les associations n-aire relient les instances de n-classes

d'entité.– Les associations réflexives relient une instance d'une

classe à d'autres instances d'une même classe.

Page 11: Modélisation - GitHub Pages

11

Association simple

Représentation graphique UML :

Note : Indiquez le sens de lecture du nom de l'association

Auteur

numero{cle}nomage

Ouvrage

isbn{cle}titreresume

publie >

Page 12: Modélisation - GitHub Pages

12

Propriétés d'association

Représentation graphique UML :

Auteur

numero{cle}nomage

Ouvrage

isbn{cle}titreresume

publie >

date_publication

Page 13: Modélisation - GitHub Pages

13

Association n-aire

Représentation graphique UML :

Auteur

numero{cle}nomage

Ouvrage

isbn{cle}titreresume

Editeur

numero{cle}nom

publie

Page 14: Modélisation - GitHub Pages

14

Les rôles d'une association

Représentation graphique UML :

Universite Personnegere >

etudiant

employeur emploie >

enseignant

Page 15: Modélisation - GitHub Pages

15

L'agrégation

Forme particulière d'association

Relation non symétrique qui exprime un couplage fort et une relation de type maître-esclaves

Une des classes joue un rôle plus important que l'autre dans la relation

Représentation graphique UML :

Note : Si le vélo est détruit, les roues peuvent être réutilisées

VéloRoue

Page 16: Modélisation - GitHub Pages

16

La composition

Forme particulière d'association Relation non symétrique qui exprime un couplage fort et une relation de type maître-esclavesUne des classes joue un rôle plus important que l'autre dans la relationIl ne peut y avoir qu'un seul maître.Classes composites physiquement contenus par l'agrégat (inclusion des cycles de vie). Si l'agrégat est détruit ses composants le sont aussi.Représentation graphique UML :

Note : Si le vélo est détruit, le cadre aussi.

CadreVélo

Page 17: Modélisation - GitHub Pages

17

Les deux

Page 18: Modélisation - GitHub Pages

18

La navigation

Forme particulière d'association

Permet de se déplacer dans le modèle

Correspond aux différents scénarios (dynamique)

Par défaut, les associations sont navigables dans les deux directions

Représentation graphique UML :

Note : la flèche indique que l'association n'est navigable que dans un sens

HotelChambre

Page 19: Modélisation - GitHub Pages

19

Cardinalités d'une association

Elles précisent les nombres minimum et maximum d'occurrences d'une entité pouvant être impliquées dans une occurrence de l'association.

Elles sont définies au niveau de chaque extrémité de l'association

Convention

d'affichage

représentation signification

1 un et un seul

0..1 zéro ou un

M..N de M à N

* de zéro à plusieurs

0..* de zéro à plusieurs

1..* de un à plusieurs

Page 20: Modélisation - GitHub Pages

20

Cardinalités

Exemples UML :

Auteur

numero{cle}nomage

Ouvrage

isbn{cle}titreresume

ecrit >

1..* 1..*

Universite Personnegere > etudiant

employeuremploie >

enseignant

1 *

0..1 *

Page 21: Modélisation - GitHub Pages

21

UML, c'est aussi…

Des types pour les propriétés (attributs)Des paquetagesDes droits d'accès (public, privé, etc)De l'héritageD'autres diagrammes

Page 22: Modélisation - GitHub Pages

22

Schéma conceptuel UML et bases de données relationnelles

Tout n'est pas obligatoire

Trouver le bon compromis !

Surcharge du schéma, difficulté de lecture – simple c'est bien !

Tout n'est pas possible facilement (exemple : héritage)

La solution : définir un profil UML

Page 23: Modélisation - GitHub Pages

23

Ex. Gestion d'une bibliothèqueSoit le cahier des charges suivants volontairement flou pour gérer une bibliothèque.

Un livre est caractérisé par son titre, son auteur, ses éditeurs. Pour chaque livre édité, on veut connaître la date d'édition.

Un auteur est caractérisé par son nom, prénom.

Un éditeur est caractérisé par son nom et son adresse.

Un utilisateur est caractérisé par son nom, prénom et age.

Le but de cette gestion est de gérer les emprunts de livres (maximum 3 livres par utilisateur) et la possibilité de réserver des livres.

⇒ Proposez un schéma conceptuel

Page 24: Modélisation - GitHub Pages

24

Une solution possible

Page 25: Modélisation - GitHub Pages

25

Autre solution - gestion de l'historique des emprunts

Page 26: Modélisation - GitHub Pages

26

Une dernière solution, plus réaliste

Page 27: Modélisation - GitHub Pages

27

Agence de voyageInformatisation de la gestion d'une agence de voyages comprenant :– les demandes d'informations sur les voyages,– les réservations de places pour un voyage,– la publicité (envoi du catalogue des voyages) auprès des clients des 3

dernières années.

Un voyage est décrit par le (ou les) nom(s) du (des) pays visités et pour chaque jour :– la ville étape,– le nombre de km parcouru,– l'hôtel d'accueil.

Pour certains pays des vaccinations sont obligatoires. Pour en informer ses clients, l'agence mémorise par pays les noms des vaccins et les délais de vaccination (entre la prise du vaccin et le début du voyage).

Page 28: Modélisation - GitHub Pages

28