39
1 G. Gardarin Méthodes de conception 1. Objectifs et principes 2. Le modèle objet 3. Passage au relationnel 4. Raffinement du schéma 5. Optimisation physique 6. Conclusion

Méthodes de conception

  • Upload
    tymon

  • View
    50

  • Download
    0

Embed Size (px)

DESCRIPTION

Méthodes de conception. 1. Objectifs et principes 2. Le modèle objet 3. Passage au relationnel 4. Raffinement du schéma 5. Optimisation physique 6. Conclusion. 1. Objectifs de la Modélisation. Permettre une meilleure compréhension Systèmes réels trop complexes - PowerPoint PPT Presentation

Citation preview

Page 1: Méthodes de conception

1

G. Gardarin

Méthodes de conception 1. Objectifs et principes 2. Le modèle objet 3. Passage au relationnel 4. Raffinement du schéma 5. Optimisation physique 6. Conclusion

Page 2: Méthodes de conception

2

G. Gardarin

1. Objectifs de la Modélisation Permettre une meilleure compréhension

Systèmes réels trop complexes

Abstraction des aspects cruciaux du problème

Omission des détails

Permettre une conception progressive Abstractions et raffinements successifs

Possibilité de prototypage rapide

Découpage en modules ou vues

Génération des structures de données et de traitements

Faciliter la visualisaton du système Diagrammes avec notations simple et précise

Compréhension visuelle et non seulement intellectuelle

Page 3: Méthodes de conception

3

G. Gardarin

Générations de méthodes Méthodes d'analyse et de décomposition hiérarchiques

(1ère génération) Diviser pour régner (Problème --> Sous-problème)

Warnier, SADT, Jackson, De Marco

Méthodes d'analyse et de représentation systémiques    (2e génération) Séparation des données et traitements

Merise, Axial, SSADM

Méthodes d'analyse et de conception orientées objets (3ème génération) Réconciliation données et traitements

Réutilisation de composants

Page 4: Méthodes de conception

4

G. Gardarin

Objectifs des méthodes objet Réduire la distance sémantique entre le langage des

utilisateurs et le langage des concepteurs meilleure communication entre utilisateurs et concepteurs

abstraction du réel perçu en termes compréhensible

Regrouper l'analyse des données et des traitements meilleure compréhension des choses

plus grande cohérence entre l'aspect statique et l'aspect dynamique

Simplification des transformations entre niveau conceptuel et niveau interne implémentation directe éventuelle du schéma conceptuel

établissement possible de règles de transformations automatisées

Page 5: Méthodes de conception

5

G. Gardarin

Principales méthodes objet OOD

G. Booch 1991

HOOD HOOD Technical Group (B. Delatte, M. Heitz, J.F. Muller) 1993

OOA S. Shlaer & S. Mellor 1992

OOA/OOD T. Coad & E. Yourdon 1991

OMT J. Rumbaugh, M. Blaha, W. Premerlani, et. al.1991

OOSE I. Jacobson, M. Christerson, P. Jonson, G.Vergaard 1992

OOM M. Bouzeghoub, A. Rochfeld1994

FUSION D. Coleman, P. Arnold, S. Bodoff, C. Dollin et. al. 1994

La notation UML Rationale et OMG

une notation universelle

Page 6: Méthodes de conception

6

G. Gardarin

Les principaux modèles Modèle des objets (Object model)

définition des objets (données et opérations)

définition des associations entre objets

Modèle dynamique (Dynamic model) états successifs des objets (cycle de vie)

interactions temporelles et réponses aux stimulis

Modèle fonctionnel (Functional model) processus de transformation des objets

flots de données entre acteurs

Page 7: Méthodes de conception

7

G. Gardarin

Les cycles Analyse (Analysis)

étude du problème utilisateur

génération de modèles de problèmes

Conception (Design) raffinement de modèles de problèmes

génération de modèles d'implémentation (prototypes)

Implémentation (Implementation) codage de modèles d'implémentation

génération du code des programmes

Page 8: Méthodes de conception

8

G. Gardarin

2. Le modèle des objets Objet (Object)

concept, abstraction ou entité clairement distinguable

Classe (Class) description d'un groupe d'objet aux propriétés similaires

Attribut (Attribute) propriété nommée d'une classe représentée par une valeur dans

chaque instance

Opération (Operation) une fonction/transformation applicable aux objets d'une classe

Méthode (Method) une implémentation d'une opération pour une classe

Page 9: Méthodes de conception

9

G. Gardarin

Nom

attributs

opérations

Voitures

Nveh: Int Type: String Marque: Constructeur Vitesse: Int Km : Int

Démarrer() Accélérer() Rouler(km:Int) Freiner()

Représentation (UML) Classe

Page 10: Méthodes de conception

10

G. Gardarin

Association Association (Association)

Une relation entre des instances de deux (ou plus) classes

Lien (Link) Une instance d'association

Rôle (Role) Une extrémité d'une association

Cardinalité (Multiplicity) Le nombre d'instance d'une classe pour chaque instance de l'autre

Attribut de lien (Link attribute) Un attribut de l'association instancié pour chaque lien

Page 11: Méthodes de conception

11

G. Gardarin

Représentation

Personne Voiture

Possède

Propriétaire Possédée

Date Prix

Buveurs Vins

Boire

DateQuantité

Abus Estbu

Page 12: Méthodes de conception

12

G. Gardarin

Cardinalités

1

plusieurs (0 à N)

0..1

*

optionnel (0 ou 1)

1..*obligatoire (1 ou plus)

ordonné (0 à N){ord}

3..5limité (de 3 à 5)

1

0..*

Page 13: Méthodes de conception

13

G. Gardarin

Poste-Travail

BureauBarre-Menus Corbeille

Outils-BureauDossiers

Sélectionner

NbreEléments

Ouvrir

Taille

Vider

Nom

Type

Ranger

* *

*

Agrégation Agrégation (Aggregation)

Forme spéciale d'association entre un tout et ses parties (part-of)

Page 14: Méthodes de conception

14

G. Gardarin

Personnes

Employés Etudiants

Personnes

Employés Etudiants

Etudiants

Personnes

Employés Hommes Femmes

Généralisation Généralisation (Generalization)

Relation particulière de factorisation permettant de regrouper les attributs et opérations communs de sous-classes dans une super-classe.

Page 15: Méthodes de conception

15

G. Gardarin

Module Module (Module)

Groupe de classes apparentées conçues ensemble

Sous-système (Sub-system) Groupe de modules

Permet de définir des vues et groupes de vues d'une BD ou plus généralement d’une application

Page 16: Méthodes de conception

16

G. Gardarin

La pratique Bien comprendre le problème à résoudre Essayer de conserver le modèle simple Bien choisir les noms Ne pas cacher les pointeurs sous forme d'attributs

utiliser les associations

Faire revoir le modèle par d'autres définir en commun les objets de l’entreprise

Documenter les significations et conventions élaborer le dictionnaire

Page 17: Méthodes de conception

17

G. Gardarin

3. Passage au relationnel Implémentations des attributs, généralisation, et

associations sous de forme de tables mémorisent les états des objets

pas nécessaire d ’avoir une BD objet

Implémentation des méthodes sous forme de procédures stockées état de l ’objet passé en paramètre (clés)

associées à une base de données

très important pour l ’optimisation client-serveur

Page 18: Méthodes de conception

18

G. Gardarin

C

C1 C2

C

C1

C2

K

K

K

(a)

C1

C2

C

C

C C1 C2

(b) (c)

Réduction des généralisations Aplatissage des hiérarchies

1 table par classe avec jointures

une seule table avec valeurs nulles

une table par feuille

Réalisation de l ’héritage statique :

problème des valeurs nulles pour les objets sans descendants

dynamique :jointures sur clés, bien prévoir les indexes !

Page 19: Méthodes de conception

19

G. Gardarin

Implémentation des associations Une association est représentée par une table dont le

schéma est le nom de l'association et la liste des clés des classes participantes et des attributs de l'association

Exemple : POSSEDE (N° SS, N° VEH, DATE , PRIX ) BOIRE(NV, NB, CRU, MILLESIME, DEGRE)

Amélioration possible Regrouper les associations 1 --> n avec la classe cible

Exemple : VOITURE (N°VEH, MARQUE, TYPE, PUISSANCE, COULEUR) POSSEDE (N° SS, N° VEH, DATE , PRIX ) regroupés si toute voiture a un et un seul propriétaire

Page 20: Méthodes de conception

20

G. Gardarin

Tabulation des collections Nombre maximum de valeurs connu

N attributs déclarés

Manque de dynamicité

Maximum souvent difficile à estimer

Requêtes complexes

Valable pour N < 5

Table des valeurs avec clé Passage en première forme normale

Nécessité de jointure pour reconstituer la collection

Performance nécessitant un index

Page 21: Méthodes de conception

21

G. Gardarin

Exemple

Personnenssnom

prenomsdatenaisvieillir()dormir()

Employéfonctionsalaireprimes

travailler()

Buveurtypeétat

boire()

Vincru

millésimedegré

qualité

Appart.étage

norue

codeville

Supérieur

Inférieur Boire

Bu_par

Habite

Loge

Voiturenveh

couleurmarque

kmrouler()

Possède

Appartient

EmployéBuveur

Page 22: Méthodes de conception

22

G. Gardarin

4. Raffinement du schéma Risques de mauvaise conception

classe trop importante

classe trop petite

Exemples : Propriétaire-de-véhicule (n° ss, nom, prénom, n° veh,  marque, type,

puissance, couleur, date, prix)Propriétaire-de-véhicule = personne |x| possède |x| voiture

Cru (cru, qualité, degré) et Vin (nv, cru, millésime)Cru = (vins) et Vin = (vins)

Anomalies redondance de données, valeurs nulles

perte de sémantique

Page 23: Méthodes de conception

23

G. Gardarin

Dépendances Fonctionnelles Définition :

Soient R(A1, A2 … An) un schéma de relation, X et Y des sous-ensembles de A1, A2 …An;

On dit que X --> Y (X détermine Y ou Y dépend fonctionnellement de X) ssi il existe une fonction qui a partir de toute valeur de X détermine une valeur unique de Y

Formellement : ssi quel que soit l’instance r de R, pour tout tuple t1 et t2 de r on a

X(t1) = X(t2) ==> Y(t1) = Y(t2)

Page 24: Méthodes de conception

24

G. Gardarin

Exemples PERSONNE

N° SS --> NOM ?

NOM --> N° SS ?

VOITURE (MARQUE, TYPE) --> PUISSANCE ?

MARQUE --> PUISSANCE ?

PUISSANCE --> TYPE ?

POSSEDE N° VEHP --> N° PROP ?

N° PROP --> N° VEHP ?

(N° VEHP, N° PROP) --> DATE ACHAT ?

Page 25: Méthodes de conception

25

G. Gardarin

N° VEH

COULEUR

TYPE MARQUE

PUISSANCE

Graphe de Dépendances

VOITURE (N°VEH, TYPE, COULEUR, MARQUE, PUISSANCE)

Page 26: Méthodes de conception

26

G. Gardarin

CRU --> TYPE TYPE, CLIENT --> REMISE

TYPE CLIENT REMISE

A A B

C1 C2 C1

3% 5% 4%

TYPE CLIENT REMISE

A A B

C1 C2 C1

3% 5% 4%

CRU

CHENASMEDOC

JULIENAS

Autre Exemple

CRU

TYPE

CLIENT

REMISE

Page 27: Méthodes de conception

27

G. Gardarin

Notion formelle de Clé Définition :

Un groupe d'attribut X est une clé de R (a1, a2 … an) ssi :1) X --> A1 A2 … An

2) il n'existe pas de sous-ensemble Y de X tel que

Y --> A1 A2 … An

Plus simplement : Une clé est un ensemble minimum d'attribut qui détermine tous les

autres.

Exemple : (n° veh) voiture ? (n° veh, type) voiture ?

Non unicité : Il peut y avoir plusieurs clés pour une relation (clés candidates)

Une est choisie comme clé primaire

Page 28: Méthodes de conception

28

G. Gardarin

Formes normales Objectifs

Définir des règles pour décomposer les relations tout en préservant les DF et sans perdre d'informations, afin de représenter des objets et associations canoniques du monde réel (les molécules d'informations)

Éviter les anomalies de mises a jour Éviter les réponses erronées

Page 29: Méthodes de conception

29

G. Gardarin

Une telle relation doit être décomposée en répétant les noms

pour chaque profession (Opération UNNEST)

PERSONNE NOM PROFESSION

DUPONT Ingénieur, Professeur

MARTIN Géomètre

1e Forme Définition

Une relation est en 1ère forme normale si tout attribut contient une valeur atomique (unique)

Exemple

Page 30: Méthodes de conception

30

G. Gardarin

R K1   K2 X Y

Une telle relation doit être décomposée en

R1(K1,K2,X) et R2(K2,Y)

2e Forme Définition

une relation est en 2e forme normale ssi :1) elle est en 1ère forme

2) tout attribut non clé ne dépend pas d'une partie de clé

Schéma

Page 31: Méthodes de conception

31

G. Gardarin

Exemple 2e Forme Exemple 1 :

Fournisseur (nom,adresse, article, prix)

La clé est (nom, article)

Mais nom --> adresse : pas en 2e forme

Exemple 2 : R (cru,type,client,remise)

La clé est (cru, client)

Mais cru --> type : pas en 2e forme

Page 32: Méthodes de conception

32

G. Gardarin

R K X Y Z

Une telle relation doit être décomposée en

R1(K, X, Y) et R2(X,Z)

3e Forme Définition

une relation est en 3e forme normale ssi :1) elle est en 2e forme

2) tout attribut n'appartenant pas a une clé ne dépend pas d'un autre attribut non clé

Schéma

Page 33: Méthodes de conception

33

G. Gardarin

Exemple 3e Forme Exemple

Voiture (n° veh, marque, type,puissance, couleur)

Type --> marque

Type --> puissance

Pas en 3eme forme !

Il est bon que les relations logiques soient en 3e forme : Pas de redondance

Pas de perte d ’information

Pas de perte de dépendance

Représentation canonique du monde réel !

Page 34: Méthodes de conception

34

G. Gardarin

Exemples de Décomposition Voiture (n° veh, marque, type, puissance, couleur)

Se décompose en :

véhicule (n° veh, type, couleur)

Modèle (type, marque, puissance)

Réduction (cru, type, client, remise) Se décompose en :

Remise (cru,client,remise)

Type (cru,type)

Page 35: Méthodes de conception

35

G. Gardarin

R K1      K2 X Y

Une telle relation peut être décomposée en

R1(K1, K2, X) et R2(Y,K1)

Une forme plus simple : la BCNF Définition

une relation est en BCNF (Boyce-Codd Normal Form) ssi :

les seules dépendances fonctionnelles sont du type clé détermine attribut non clé

Plus simple que 3NF, un peu plus fort

Schéma

Page 36: Méthodes de conception

36

G. Gardarin

5. Optimisation physique On implémente pas forcément le schéma logique

regroupement de relations interrogées ensemble parfois avantageux

la dénormalisation évite des jointures coûteuses

nécessite de gérer la redondance en mise à jour

Choix du placement indexe primaire plaçant = clé primaire

hachage parfois avantageux (groupes de relations)

Choix des indexes contraintes référentielles

attributs de sélections fréquentes

indexe B-tree ou bitmap

Page 37: Méthodes de conception

37

G. Gardarin

Réglage des schémas Partitionnement de relations

horizontalsupporter par certains SGBD

gestion d ’indexe maître

verticaldécoupage en plusieurs tables

attributs de jointures redondants

Utilisation de données redondantes agrégats pré-calculés

jointures pré-calculées

vues concrètes

Page 38: Méthodes de conception

38

G. Gardarin

Résumé du réglage 1. Régler les requêtes en premier :

vérifier les plans d'exécution générés;

reformuler les requêtes sans changer le schéma;

pour éviter des sous requêtes inefficaces, régler l'usage des relations temporaires intermédiaires; ...

2. Régler les dimensions des tables par partitionnement 3. Régler les indexes et l’organisation des relations 4. Considérer l'usage de données redondantes 5. Revoir les décisions de normalisation

L'usage de vues permet de masquer ces réorganisations

Page 39: Méthodes de conception

39

G. Gardarin

6. Conclusion Intérêt de l’utilisation d’une méthode objet

proche du monde réel

démarche sémantique claire

diagramme UML standards

Passage au relationnel automatique outils du commerce utilisables (Rationale Rose, etc.)

supporteront les extensions objet-relationnel à venir

Normalisation à l’exception utile quand sémantique confuse

Optimisation et réglage une étape essentielle et permanente (suivi nécessaire)