680 likes | 767 Views
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.
E N D
Méthodologie objetet 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
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 Introduction 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
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
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 Importance de la prise en compte 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 On part de l’analyse des besoins ….
Deux concepts Acteur (rôle 1) Modèle d’utilisation Acteur (rôle 2) « communicate » Acteur « communicate » << actor >> role Cas d’utilisation
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 ) Acteur (rôle 1) Acteur (rôle 2) « include » « extend » Modèle d’utilisation - 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 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 3 1 1 3 3 2 2 3 2 2 3 2 2 2 2 3 3 2 2 3 3 3 3
Méthodes objet pour les SIG GeoOOA (Kösters, Pagel, Six) NETWORK GEOCLASS REGION LINE POINT 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 Partage PST cible PST Union 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 Thème Spatial Identification Essence 1..* 1..* • Classes opaques Spatiales • Point, Ligne, Aire • Temporelles • Instant, Intervalle
Proposer un service et réagir aux messages Discussion Des bienfaits de l ’encapsulation …. Données Encapsulation Messages Opérations
Discussion La méta-modélisation Langage pour spécifier tout métamodèle Meta-Class, Meta-Attribut, etc Meta-Meta Modèle Class, Attribut, etc Langage pour spécifier un modèle Meta-Modèle Langage pour spécifier un domaine d ’information Parcelle, Surface, etc Modèle A120, 50, etc Définition spécifique d ’un domaine Objets utilisateur
Discussion Vers des « framework » ? TAD spatiaux 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
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 Les raisons ….
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 Faiblesses du modèle relationnel
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 L'apport des modèles objets
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> }
Premiers pas Cours • Modèle NF2 Formations Libelle Professeurs Année Horaire jour Nom Titre X1 26 Lundi X2 80 Mardi X3 150 Jeudi 134 BD Pierre PR 219 MC Marie 037 NDep Montant Motif Nom Titre X1 50 Lundi X2 80 Mercredi Eric MC Système PR Julie 185
Classes de systèmes 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
Extension du modèle 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 L'objet-relationnel OBJET Polymorphisme RELATIONNEL Types utilisateurs Domaine Table Attribut Clé Référence Collections Opération Identifiant Héritage
Un groupe international 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" Qui pousse …
Part 1: Framework 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 La standardisation ….
SQL3 • 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
Extensibilité des types de données 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 SQL3
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)