View
120
Download
6
Category
Preview:
Citation preview
Séminaire IG
1
Méthodologie objetet IG ?
T. Libourel
libourel@lirmm.fr
Séminaire IG
2
Plan
• AdéquationDiscussion
• Objet-relationnel
• Introduction - Généralités sur les méthodes objet
Séminaire IG
3
Plan
• Introduction - Généralités sur les méthodes objet
Séminaire IG
4
Introduction
• Évolution des paradigmes de programmation
• Évolution des besoins
• Évolution des technologies
Séminaire IG
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)
Séminaire IG
6
Introduction
– Cas particulier de l’IG
Applications
Monde réel
Domaineétudié
Schémas
DonnéesConceptualisation
StockageConceptuel
Externe ou Dérivé
ReprésentationModèle de
InstrumentationTerrainNominal
Séminaire IG
7
• É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
Séminaire IG
8
Introduction
Pourquoi des méthodes ?
• Une nécessité
Entreprise
Outils Informatiques
Séminaire IG
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
Séminaire IG
10
• Omniprésence technique de l’Objetdans les langages de programmation, les bases de données, les interfaces graphiques, ... et les méthodes d’analyse et de conception.
• Universalité de l’Objetla 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.
Pourquoi l’approche objet ?Pourquoi l’approche objet ?
Séminaire IG
11
VueCas d ’utilisation
Vue structurelle
Vue Architecture
(déploiement)
Vue dynamique
Définir une architecture ……. divers points de vue sur le système
Concepts généraux
Vue Implémentation
<------- Logique Physique ------>
Séminaire IG
12
Plan
• AdéquationDiscussion
Séminaire IG
13
Importance de la prise en comptedes besoins
• Cas d’utilisation
Séminaire IG
14
• Les cas d’utilisation, ou « USE CASE »
Fonctionnalités externesModèles descriptifs du point de vue des utilisateursInteractions avec les acteurs extérieurs
la manière d’utiliser le système
Importance de la prise en comptedes besoins
Séminaire IG
15
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 ….
Séminaire IG
16
Modèle d’utilisation
Deux concepts
Acteur (rôle 1)
Acteur (rôle 2)
« communicate »
« communicate »
Acteur
Cas d’utilisation
<< actor >>
role
Séminaire IG
17
Modèle 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 »
- de généralisation/spécialisation « generalizes »
Séminaire IG
18
Multiplicité des perceptions
Visions discrète vs continue
Échelles
Sémantique des informations spatialesSémantique des informations spatiales
Séminaire IG
19
Multiplicité des perceptions
Trafic routier
Équipement
Cadastre
Réseaux souterrains
Rue
graphe
polyligne
volumesurface
Sémantique des informations spatialesSémantique des informations spatiales
Séminaire IG
20
Vision discrète vs vision continuedeux 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 ..)
Sémantique des informations spatialesSémantique des informations spatiales
Echelle, multi-échellespas un simple rapport taille du support/terrain
granularité de perception
Séminaire IG
21
Représentations Représentations
• Géométrie euclidienne
point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)
Segment Point
XY
A-pour-extrémité->
0..1 2..2
Est-sur : booleen
Séminaire IG
22
Représentations Représentations
• Géométrie euclidienne
point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)
Polyligne Point
XY
0..1 2..n
Est-sur : booleen
fermée
Segment
1..n
0..1
0..1
2..2
ordre
Séminaire IG
23
Représentations Représentations
• Géométrie euclidienne
point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)
Polygone Point
XY
0..1 3..n
Appartient : boolSegment
3..n
0..1
2..2
2..2
ordre
Séminaire IG
24
Représentations Représentations
• Géométrie euclidienne
point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)
Polygone Point
XY
0..1
1..1
Appartient : boolSegment
3..n
1..2
0..n
1..1
orientation
0..n
début
fin
Séminaire IG
25
Représentations Représentations
•Théorie des graphes
nœud, arête, arc, chaîne
Nœud Arête 2..2 1..n
Est-relié-à
0..n
délimite
0..n
Séminaire IG
26
Représentations Représentations
•Topologie
relations spatiales
Adjacence, Inclusion, Proximité …
Séminaire IG
27
Représentations Représentations
• Raster
1
1 1
1 1 1 1 1
1 3 3 3
33
3 3
3333
2 2 2 2
2 2 2 2
2 2
Séminaire IG
28
Méthodes objet pour les SIGMéthodes objet pour les SIG
GeoOOA (Kösters, Pagel, Six)
GEOCLASS
POINT LINE REGION
RASTERopérations (intersection, inclusion, etc.)
NETWORK
Séminaire IG
29
SPACE
POSITIONS classe agrégat construite sur les classesSHAPE, SIZE, LOCATION, ORIENTATION
Classes
POSITIONS
SPACE
is-located-at
GEOGRAPHICOBJECT
1,n
1
at_spatial
Geo-OM (Tryfona, Pfoser, Hadzilacos)
Méthodes objet pour les SIGMéthodes objet pour les SIG
Séminaire IG
30
MADS (Parent, Spaccapietra, Zimanyi)
Objets spatiaux
Objets spatiaux simples Objets spatiaux complexes
PointLigneLigne orientéeAire simple
Ensemble de PointsEnsemble de LignesEnsemble de Lignes orientéesAire complexe
Méthodes objet pour les SIGMéthodes objet pour les SIG
Séminaire IG
31
MADS
Commune
Parcelle
Remembrement
Union
Partage
Re-allocation
est_composée_de source
cible
PST
PST
PST
PST
Méthodes objet pour les SIGMéthodes objet pour les SIG
Séminaire IG
32
PERCEPTORY (Bedard U Laval Quebec)
PST
Méthodes objet pour les SIGMéthodes objet pour les SIG
UML +
Pictogrammes (Langage Visuel)
Séminaire IG
33
IdentificationEssence
Spatial Thème
Entité géographique
POLLEN (Gayte, Libourel, Cheylan, Lardon)
1..* 1..*
Méthodes objet pour les SIGMéthodes objet pour les SIG
Classes opaques SpatialesPoint, Ligne, Aire
Temporelles Instant, Intervalle
Séminaire IG
34
Des bienfaits de l ’encapsulation ….
Proposer un service et réagir aux messages
Opérations
Données
MessagesEncapsulation
DiscussionDiscussion
Séminaire IG
35
La méta-modélisation
Meta-Meta Modèle
Meta-Modèle
Modèle
Objets utilisateur
Meta-Class, Meta-Attribut, etc
Class, Attribut, etc
Parcelle, Surface, etc
A120, 50, etc
Langage pour spécifiertout métamodèle
Langage pour spécifierun modèle
Langage pour spécifierun domaine d ’information
Définition spécifiqued ’un domaine
DiscussionDiscussion
Séminaire IG
36
DiscussionDiscussion
TAD spatiaux
Point Ligne Zone
TAD temporels
Instant Intervalle
Ensemble d’instants Ensemble d’intervalles
Vers des « framework » ?
Séminaire IG
37
Mise en œuvreMise en œuvre
SIG outils
SGBD spatiaux
DiscussionDiscussion
futur ..... SGBD spatio-temporels
..... Interopérabilité
Séminaire IG
38
Plan
• Objet-relationnel
Séminaire IG
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
Séminaire IG
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
Séminaire IG
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
Séminaire IG
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> }
Séminaire IG
43
Premiers pas • Modèle NF2
Libelle Professeurs Formations
Système
Montant
185
Motif NDep
MCEric
PR
CoursCours
BD
Horaire
134
219
jour
037
Année
Nom Titre
Nom Titre
PRPierre
MCMarie
X1 26 Lundi
X2 80 Mardi
X3 150 Jeudi
X1 50 Lundi
X2 80 MercrediJulie
Séminaire IG
44
Relationnel
Types utilisateurset encapsulation
Collectionet objets complexes
Référence et identité
Héritageet réutilisation
Classes de systèmes
• 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
Séminaire IG
45
DomaineTableAttributCléRéférence
RELATIONNEL
OBJET
Opération
Héritage
Identifiant
Polymorphisme
Types utilisateurs Collections
L'objet-relationnel
• 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
Séminaire IG
46
Qui pousse …
• 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"
Séminaire IG
47
La standardisation ….
• 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
Séminaire IG
48
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
Séminaire IG
49
SQL3
• 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
Séminaire IG
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)
Séminaire IG
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
Séminaire IG
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)
Séminaire IG
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 );
Séminaire IG
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);
Séminaire IG
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
Séminaire IG
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
Séminaire IG
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(email_t) ,
Method ajoute_mail(nouveau_ mail email_t) ;
Séminaire IG
58
Spécialisation
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;
Séminaire IG
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'
Séminaire IG
60
select p.dateeffet, p.client.nom, p.vehicule.nimfrom policy pwhere p.vehicule.modele = ‘ferrari’
Comparaison avec le relationnel
• Accès en relationnel
• Accès en objet-relationnel
select dateeffet, nom, nimfrom police, client, nimwhere police.numero = client.numeroand police.nim = vehicule.nimand modele = ‘ferrari’
Police (numero,dateffet, client,vehicule)
Vehicule(nim,modele)Client(numero, nom)Police(numero,nim,dateeffet)
Séminaire IG
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
Séminaire IG
62
ORACLE 8 et …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
Séminaire IG
63
ORACLE 8 et …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));
Séminaire IG
64
ORACLE 8 et …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;
Séminaire IG
65
ORACLE 8 et …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 ….
Séminaire IG
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
– ....
Séminaire IG
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)
Séminaire IG
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 ?
Recommended