Méthodologie objet et IG ?

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
11 Bienvenue Entrez le nom du groupe ou projet ici mardi, 17 novembre 2009.
International Telecommunication Union Accra, Ghana, June 2009 Relationship between contributions submitted as input by the African region to WTSA-08,
Méthodologie objet et IG ?
Les numéros
Les identités remarquables
Le Modèle Logique de Données
Directeur de Thèse : Pr. Witold Litwin
Introduction à la logique
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
TP 3-4 BD21.
Bases de données orientées-objets
TECHNIQUES DES SGBDO 1. Qu'est-ce qu'un SGBDO ?
Programme Introduction aux BD et aux SGBD Le modèle relationnel
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Développement d’applications web
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
1 Cours numéro 3 Graphes et informatique Définitions Exemple de modélisation Utilisation de ce document strictement réservée aux étudiants de l IFSIC.
le profil UML en temps réel MARTE
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Olivier DERUELLE Erwan FOUYER Maxime JOUIN Rodolphe LOUE
Présentation générale
COURS Bases de données orientées objet
Initiation aux bases de données et à la programmation événementielle
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Le Concours de Conaissance Francais I novembre 2012.
L’utilisation des bases de données
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
SYSTEMES D’INFORMATION
Logiciel gratuit à télécharger à cette adresse :
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Cours de Base de Données & Langage SQL
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Aire d’une figure par encadrement
Copyright Serge Miranda
LE LANGAGE DE REQUETES SQL2
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Bases de données orientées objets SGBD relationnels-objets
Bases de données orientées objets Illustration sur ORACLE
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Introduction.
Nom:____________ Prénom: ___________
BD Relationnelles versus BD Objets Fariza Tahi
1 Architecture orientée service SOA Architecture orientée service SOA (Service Oriented Architecture)
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
2 Processus de conception de BD
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Cours n°2 Implémentation et exploitation
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Transcription de la présentation:

Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr

Plan • Introduction - Généralités sur les méthodes objet • Adéquation Discussion Objet-relationnel

Plan • Introduction - Généralités sur les méthodes objet

Introduction • Évolution des besoins • Évolution des technologies • Évolution des paradigmes de programmation

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)

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

É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

Introduction Pourquoi des méthodes ? • Une nécessité Outils Informatiques Entreprise

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

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.

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 ------>

Plan • Adéquation Discussion

Importance de la prise en compte des besoins • Cas d’utilisation

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

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

Modèle d’utilisation Deux concepts Acteur (rôle 2) « communicate » << actor >> role Cas d’utilisation

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 »

Sémantique des informations spatiales Multiplicité des perceptions Visions discrète vs continue Échelles

Sémantique des informations spatiales Multiplicité des perceptions polyligne graphe Cadastre Trafic routier Rue Réseaux souterrains Équipement volume surface

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

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

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

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

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

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

Représentations Topologie relations spatiales Adjacence, Inclusion, Proximité …

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

Méthodes objet pour les SIG GeoOOA (Kösters, Pagel, Six) GEOCLASS NETWORK POINT LINE REGION RASTER opérations (intersection, inclusion, etc.)

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

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

Méthodes objet pour les SIG MADS PST Commune Remembrement source est_composée_de cible Partage PST Union PST Parcelle PST Re-allocation

Méthodes objet pour les SIG PERCEPTORY (Bedard U Laval Quebec) UML + Pictogrammes (Langage Visuel) PST

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

Discussion Des bienfaits de l ’encapsulation …. Données Encapsulation Messages Opérations Proposer un service et réagir aux messages

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

Discussion Vers des « framework » ? TAD spatiaux TAD temporels Point Ligne Zone TAD temporels Instant Intervalle Ensemble d’instants Ensemble d’intervalles

Discussion Mise en œuvre SIG outils SGBD spatiaux futur ..... SGBD spatio-temporels ..... Interopérabilité

Plan Objet-relationnel

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

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

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

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

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

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

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

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 (http://www.ansi.org) Documents ISO/IEC 9075:1992, "Database Languages - SQL" ANSI X3.135-1992, "Database Language SQL" 9 10

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

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

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

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)

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

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

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

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

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

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

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(email_t) , Method ajoute_mail(nouveau_ mail email_t) ; 21 22

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(email_t), Method ajoute_mail(nouveau_ mail email_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

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

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’

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

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

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

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

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

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

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

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