Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Méthodologie objet et IG ?
T. Libourel
2
Plan • Introduction - Généralités sur les méthodes objet • Adéquation
Discussion Objet-relationnel
3
Plan • Introduction - Généralités sur les méthodes objet
4
Introduction • Évolution des besoins • Évolution des technologies
• Évolution des paradigmes de programmation
5
Introduction Taille et complexité des systèmes importantes et croissantes les besoins et les fonctionnalités augmentent la technologie évolue rapidement les architectures se diversifient Problèmes des spécifications parfois imprécises, incomplètes, ou incohérentes assurer l’interface avec le métier (domaine d’application)
6
Introduction Cas particulier de l’IG Applications Terrain Nominal
Instrumentation Schémas Données Conceptualisation Conceptuel Stockage Domaine étudié Monde réel Modèle de Représentation Externe ou Dérivé Applications
7
Évolution des applications
Introduction Évolution des applications évolution des besoins des utilisateurs réorientation de l'application évolution de l'environnement technique (matériel et logiciel) Problèmes liés à la gestion des équipes taille croissante des équipes spécialisation technique spécialisation métier
8
Introduction Pourquoi des méthodes ? • Une nécessité Outils
Informatiques Entreprise
9
Introduction Pourquoi des méthodes ?
• Démarche reproductible pour obtenir des résultats fiables • Construire des modèles à partir d'éléments (concepts) • Possibilité de représenter à partir de formalismes • Mise en œuvre
10
Pourquoi l’approche objet ?
Omniprésence technique de l’Objet dans les langages de programmation, les bases de données, les interfaces graphiques, ... et les méthodes d’analyse et de conception. Universalité de l’Objet la notion d’objet, plus proche du monde réel, est compréhensible par tous et facilite la communication entre tous les intervenants d’un projet.
11
Concepts généraux Définir une architecture
……. divers points de vue sur le système Vue structurelle Vue Implémentation Vue Cas d ’utilisation Vue Architecture (déploiement) Vue dynamique < Logique Physique >
12
Plan • Adéquation Discussion
13
Importance de la prise en compte des besoins
• Cas d’utilisation
14
Importance de la prise en compte des besoins
Les cas d’utilisation, ou « USE CASE » Fonctionnalités externes Modèles descriptifs du point de vue des utilisateurs Interactions avec les acteurs extérieurs la manière d’utiliser le système
15
On part de l’analyse des besoins ….
Deux concepts Acteur toute entité extérieure au système et interagissant avec celui-ci. acteurs humains, acteurs « machine » (système extérieur communiquant avec le système étudié) Cas d’utilisation toute manière d’utiliser le système suite d’événements notable du point de vue de l ’utilisateur
16
Modèle d’utilisation Deux concepts Acteur (rôle 2) « communicate »
<< actor >> role Cas d’utilisation
17
Modèle d’utilisation Acteur (rôle 2) Acteur (rôle 1) « include »
« extend » Les cas d ’utilisation peuvent être liés par des relations : - d’utilisation « include » (le cas origine contient obligatoirement l’autre) - de raffinement « extend » (le cas origine peut être ajouté optionnellement ) - de généralisation/spécialisation « generalizes »
18
Sémantique des informations spatiales
Multiplicité des perceptions Visions discrète vs continue Échelles
19
Sémantique des informations spatiales
Multiplicité des perceptions polyligne graphe Cadastre Trafic routier Rue Réseaux souterrains Équipement volume surface
20
Sémantique des informations spatiales
Vision discrète vs vision continue deux grands types de modèles modèles construits autour d’objets, d’entités ou features (Routes, villes, fleuves etc ..) modèles construits autour de champs continus (météo température, pression, épidémie ..) Echelle, multi-échelles pas un simple rapport taille du support/terrain granularité de perception
21
Représentations Géométrie euclidienne point (dim 0) ligne (dim 1)
aire (dim 2) volume (dim 3) A-pour-extrémité-> Segment Point 0..1 2..2 X Y Est-sur : booleen
22
Représentations Géométrie euclidienne point (dim 0) ligne (dim 1)
aire (dim 2) volume (dim 3) ordre Polyligne Point 0..1 2..n fermée X Y 2..2 Segment 0..1 Est-sur : booleen 1..n 0..1
23
Représentations Géométrie euclidienne point (dim 0) ligne (dim 1)
aire (dim 2) volume (dim 3) ordre Polygone Point 0..1 3..n X Y 2..2 Segment 0..1 Appartient : bool 3..n 2..2
24
Représentations Géométrie euclidienne point (dim 0) ligne (dim 1)
aire (dim 2) volume (dim 3) Polygone Point 1..1 début 0..1 0..n X Y fin Segment 1..1 1..2 Appartient : bool orientation 3..n 0..n
25
Représentations Théorie des graphes nœud, arête, arc, chaîne Nœud
Est-relié-à 0..n 0..n Nœud Arête 2..2 1..n délimite
26
Représentations Topologie relations spatiales
Adjacence, Inclusion, Proximité …
27
Représentations Raster 1 1 1 1 1 1 1 1 1 3 3 3 2 2 2 2 3 3 2 2 2 2 3 3
28
Méthodes objet pour les SIG
GeoOOA (Kösters, Pagel, Six) GEOCLASS NETWORK POINT LINE REGION RASTER opérations (intersection, inclusion, etc.)
29
Méthodes objet pour les SIG
Geo-OM (Tryfona, Pfoser, Hadzilacos) SPACE POSITIONS classe agrégat construite sur les classes SHAPE, SIZE, LOCATION, ORIENTATION Classes POSITIONS is-located-at 1,n GEOGRAPHIC OBJECT 1 at_spatial SPACE
30
Méthodes objet pour les SIG
MADS (Parent, Spaccapietra, Zimanyi) Objets spatiaux Objets spatiaux simples Objets spatiaux complexes Ensemble de Points Ensemble de Lignes Ensemble de Lignes orientées Aire complexe Point Ligne Ligne orientée Aire simple
31
Méthodes objet pour les SIG
MADS PST Commune Remembrement source est_composée_de cible Partage PST Union PST Parcelle PST Re-allocation
32
Méthodes objet pour les SIG
PERCEPTORY (Bedard U Laval Quebec) UML + Pictogrammes (Langage Visuel) PST
33
Méthodes objet pour les SIG
POLLEN (Gayte, Libourel, Cheylan, Lardon) Entité géographique Spatial Identification Essence Thème 1..* 1..* Classes opaques Spatiales Point, Ligne, Aire Temporelles Instant, Intervalle
34
Discussion Des bienfaits de l ’encapsulation …. Données Encapsulation
Messages Opérations Proposer un service et réagir aux messages
35
Discussion La méta-modélisation Langage pour spécifier Meta-Class,
tout métamodèle Meta-Class, Meta-Attribut, etc Meta-Meta Modèle Langage pour spécifier un modèle Class, Attribut, etc Meta-Modèle Langage pour spécifier un domaine d ’information Parcelle, Surface, etc Modèle Définition spécifique d ’un domaine A120, 50, etc Objets utilisateur
36
Discussion Vers des « framework » ? TAD spatiaux TAD temporels
Point Ligne Zone TAD temporels Instant Intervalle Ensemble d’instants Ensemble d’intervalles
37
Discussion Mise en œuvre SIG outils SGBD spatiaux
futur SGBD spatio-temporels ..... Interopérabilité
38
Plan Objet-relationnel
39
Les raisons …. Nécessité de conserver la compatibilité avec l'existant
SGBD relationnel Applications client-serveur Nécessité de supporter des données complexes textuelles géométriques géographiques audiovisuelles soniques multimédias 2 2
40
Faiblesses du modèle relationnel
Opérations séparées des données procédures stockées non intégrées dans le modèle absence d'attributs cachés Support de domaines atomiques 1ère forme normale de Codd inadapté aux objets complexes (documents structurés) introduction de LOB Long Object (CLOB Character LOB, BLOB Binary LOB MPEG.. MP..) Mauvais support des applications non standards CAO, CFAO BD Géographiques BD techniques 4 4
41
L'apport des modèles objets
Identité d'objets introduction de pointeurs invariants possibilité de chaînage Encapsulation des données possibilité d'isoler les données par des opérations facilite l'évolution des structures de données Héritage d'opérations et de structures facilite la réutilisation des types de données permet l'adaptation à son application Possibilité d'opérations abstraites (polymorphisme) simplifie la vie du développeur 5 5
42
Le support d'objets complexes
Nécessité d'introduire des attributs multivalués Fourniture de collections prédéfinies telles liste, ensemble, tableau, ... Imbrication des collections pour représenter des objets très compliqués Exemple Type Molécule { list <Atome, Connexions>} Type Atome { Noyau, list <Electrons> } 6 6
43
Premiers pas Cours Modèle NF2 134 219 037 185 X1 26 Lundi X2 80 Mardi
Libelle Professeurs Formations Année Horaire jour Nom Titre X1 26 Lundi X2 80 Mardi X3 150 Jeudi 134 BD Pierre PR Marie MC 219 037 Nom Titre NDep Montant Motif X1 50 Lundi X2 80 Mercredi Eric MC Système Julie PR 185 7 7
44
Classes de systèmes Etendre le relationnel Tout refaire
Types utilisateurs et encapsulation Etendre le relationnel Systèmes objet-relationnel Illustra de Stonebraker UniSQL de Won Kim Tout refaire Systèmes objets O2 de Bancilhon Complexité repartir de C++ C++ persistants Héritage et réutilisation Relationnel Référence et identité Collection et objets complexes 7 7
45
L'objet-relationnel OBJET Extension du modèle relationnel RELATIONNEL
attributs multivalués : structure, liste, tableau, ensemble, ... héritage sur relations et types domaine type abstrait de données (structure cachée + méthodes) identité d'objets Extension de SQL définition des types complexes avec héritage appels de méthodes en résultat et qualification imbrication des appels de méthodes surcharge d'opérateurs Polymorphisme RELATIONNEL Types utilisateurs Domaine Table Attribut Clé Référence Collections Opération Identifiant Héritage 8 8
46
Qui pousse … Un groupe international Pays actifs
ISO/IEC JTC1/SC 21/WG3 DBL Pays actifs Australia, Brazil, Canada, France, Germany, Japan Korea, The Netherlands, United Kingdom,United States ANSI X3H2 ( Documents ISO/IEC 9075:1992, "Database Languages - SQL" ANSI X , "Database Language SQL" 9 10
47
La standardisation …. Part 1: Framework Part 2: Foundation
Une description non-technique de comment le document est structuré. Part 2: Foundation Le noyau de specification, incluant les types de données abstraits. Part 3: SQL/CLI l’interface d’appel client. Part 4: SQL/PSM le langage de spécifications de procédures stockées Part 5: SQL/Bindings les liens SQL dynamique et “embedded” SQL repris de SQL-92. Part 6: SQL/XA Une spécification de l’interface XA pour moniteur transactionnel. Part 7: SQL/Temporal Le support du temps dans SQL3 10 11
48
SQL3 Pour gérer des données complexes
De multiples facettes : Un langage de définition de types Un langage de programmation Un langage de requêtes Un langage temporel ... Pour gérer des données complexes dans le cadre de système objet-relationnel Nouveaux Illustra, UniSQL, ODB II, Versant Relationnels étendus ("universels") Postgres, Oracle, DB2 UDB, Informix 12 13
49
SQL3 Extensibilité des types de données Support d’objets complexes
Définition de types abstraits Possibilité de types avec ou sans OID Support d’objets complexes Constructeurs de types (tuples, set, list, …) Utilisation de référence (OID) Héritage Définition de sous-types Définition de sous-tables 16 17
50
Principe Typage fort Type = Données + Méthodes
La création de type ne crée pas d’objets Les objets d’un type sont persistants que lorsqu’ils sont insérés dans des tables déclarées (CREATE TABLE)
51
Principe un TAD permet la définition de nouveaux types d’attributs (augmentant les types disponibles par défaut) permet le « partage » de structures de données
52
Les types abstraits Deux types d’ADT Littéral
Type d’une colonne de table CREATE DISTINCT TYPE euro_t AS DOUBLE PRECISION CREATE TABLE Produit (descrprod VARCHAR(20), prixeuro euro_t) 17 18
53
Les types abstraits CREATE TYPE Codpostal_t ( dept NUMBER(2), ext NUMBER(3) ); CREATE TYPE Adresse_t (rue VARCHAR(20), ville VARCHAR(20), codpost Codpostal_t); CREATE TABLE Adresse OF Adresse_t; CREATE TABLE Personne (nom VARCHAR(20), adr Adresse_t ); 17 18
54
Les types abstraits Deux types d’ADT
Objet Type d’un tuple objet d’une table CREATE ROWTYPE Person_t (nom VARCHAR(20), adr adresse_t); CREATE TABLE Personne OF Person_t (PRIMARY KEY nom); 17 18
55
Les types abstraits Pointeurs
CREATE TYPE Diplome_t (nom VARCHAR(20), dateob DATE, mention VARCHAR(2)); CREATE TABLE Diplome OF Diplome_t; CREATE TABLE Personne (nom VARCHAR(20), adr Adresse_t, dipl REF Diplome_t ); @ diplome 17 18
56
Les collections Les constructeurs de base
collections SET(T), MULTISET(T), LIST(T) CREATE TYPE Personne_t (nss INT, nom VARCHAR(20), prenoms LIST(VARCHAR(20)), tel SET(telephone_t)) CREATE TABLE Personne OF Personne_t Les constructeurs additionnels stack, queue, array, insertable array (exemple : texte) non intégrés dans le langage mais peuvent être ajoutés 19 20
57
Encapsulation Possibilité de définir des méthodes
(procédures et fonctions) dans la déclaration du TAD CREATE TYPE chercheur_t (numero NUMBER, nom CHAR(30), Contacts SET( _t) , Method ajoute_mail(nouveau_ mail _t) ; 21 22
58
Spécialisation CREATE TYPE etudiant_t UNDER Personne_t (Loisirs
CREATE TYPE Personne_t (numero NUMBER), nom CHAR(30), dipl REF Diplome_t) ; CREATE TYPE chercheur_t UNDER Personne_t (Contacts SET( _t), Method ajoute_mail(nouveau_ mail _t) ; CREATE TYPE etudiant_t UNDER Personne_t (Loisirs LIST(VARCHAR(20)); CREATE TABLE chercheur OF chercheur_t; CREATE TABLE etudiant of etudiant_t; 21 22
59
Interroger …. Le parcours de référence
Possibilité d'appliquer les fonctions Ref et DeRef (implicite) CREATE Type voiture_t (numim VARCHAR(15), constnom VARCHAR(20) prop REF prop_t, couleur CHAR(20), annee NUMBER); CREATE TYPE prop_t (num NUMBER, nom VARCHAR(30)) CREATE TABLE voitures OF TYPE voiture_t SELECT c.prop.nom FROM voitures c WHERE couleur = 'rouge' 23 24
60
Comparaison avec le relationnel
Vehicule(nim,modele) Client(numero, nom) Police(numero,nim,dateeffet) select dateeffet, nom, nim from police, client, nim where police.numero = client.numero and police.nim = vehicule.nim and modele = ‘ferrari’ Accès en relationnel Accès en objet-relationnel Police (numero,dateffet, client,vehicule) select p.dateeffet, p.client.nom, p.vehicule.nim from policy p where p.vehicule.modele = ‘ferrari’
61
ORACLE 8 et … CREATE OR REPLACE TYPE Adresse_t AS OBJECT
(norue NUMBER, rue VARCHAR2(20), ville VARCHAR2(30), code-postal VARCHAR2(10)); CREATE TABLE adresse OF Adresse_t; CREATE OR REPLACE TYPE Etudiant_t AS OBJECT (numero NUMBER, adr Adresse_t); CREATE TABLE etudiant OF Etudiant_t (CONSTRAINT PK_etud PRIMARY KEY (numero)) ; SELECT REF(i) FROM Etudiant i ; Retourne les OID des objets de la table etudiant 24 27
62
ORACLE 8 et … CREATE TABLE Employe
Attention … CREATE TABLE Employe (numero NUMBER, dept VARCHAR(3), Sal NUMBER, adr Adresse_t); N’est pas une table objet-relationnel …. SELECT REF(i) FROM Employe i ; erreur 24 27
63
ORACLE 8 et … CREATE TYPE PC_t AS OBJECT
CREATE TYPE Admin_t AS OBJECT (num NUMBER, nom VARCHAR(15), age NUMBER); CREATE TYPE PC_t AS OBJECT (nserie NUMBER, adrIP VARCHAR(15), admin REF Admin_t); La référence doit porter sur un type …. CREATE TABLE admin OF Admin_t (CONSTRAINT pk_admin PRIMARY KEY (num)); CREATE TABLE PC OF PC_t (PRIMARY KEY (nserie)); 24 27
64
ORACLE 8 et … CREATE TYPE Emps_t AS TABLE OF Emp_t;
Tables imbriquées CREATE TYPE Emp_t AS OBJECT (nINSEE VARCHAR2(13), nom VARCHAR(15), age NUMBER); CREATE TYPE Emps_t AS TABLE OF Emp_t; CREATE TABLE DEPT ( Ndept NUMBER PRIMARY KEY, Employes Emps_t) NESTED TABLE employes STORE AS THE; 24 27
65
ORACLE 8 et … CREATE TABLE DEPT ( Ndept NUMBER PRIMARY KEY,
Tables imbriquées CREATE TABLE DEPT ( Ndept NUMBER PRIMARY KEY, Employes Emps_t) NESTED TABLE employes STORE AS Tabemp; INSERT INTO DEPT VALUES (4, Emps_t(Emp_t (‘154..’,’Louis’, 51), Emp_t(‘264…’,’Nina’,41), …..); INSERT INTO THE (SELECT d.employes FROM DEPT d WHERE D.Ndept=4) VALUES (‘174 …’,’René’,31) THE référence la table imbriquée …. 24 27
66
Exemple d'application (1)
GIS (Geographical Information Systems) Type Geométrie Point, ligne, polygone, chemin, rectangle, ellipse, ... Fonctions distance(geom,geom) returns real contained(geom,geom) returns bool overlaps(geom,geom) returns bool intersection(geom,geom) returns geom union(geom,geom) returns geom .... 24 27
67
Exemple d'application (2)
Images Type Library Différents formats : TIFF,GIF,FAX,CD,JPEG Fonctions : rotate(image,angle) returns image transpose(image) returns image flip(image) returns image enhance(image), oil_painting(image) plus(image,image), minus(image,image) intersection(image,image), union(image,image) histogram(image) returns(table) similarity(image,image) 25 28
68
Un standard en évolution
PROPOSITION CONCURRENTE DE L'ODMG Accord entre constructeurs de SGBD Objets Support du modèle pur objet de l'OMG Variation de SQL traitant des collections imbriquées Accord ANSI X3 H2 et ODMG Définition d'un langage d'interrogation intégrant relationnel et objet Convergence relationnel-objet vers SQL3 De nombreux points restent à fixer Visibilité des OID ? Chemins multivalués ? Cohérence ? 26 29
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.