Title: M
1Méthodologie objetet IG ?
- T. Libourel
- libourel_at_lirmm.fr
2Plan
Introduction - Généralités sur les méthodes
objet
Concepts objet et formalisme UML
Adéquation Discussion
3Plan
Introduction - Généralités sur les méthodes
objet
4Introduction
Évolution des besoins
Évolution des technologies
Évolution des paradigmes de programmation
5Introduction
- 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 linterface avec le métier (domaine
dapplication)
6Introduction
- É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
7Introduction
Pourquoi des méthodes ?
Une nécessité
Outils Informatiques
Entreprise
8Introduction
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
9Introduction
Pourquoi des méthodes ?
- Une méthode danalyse et de conception
- propose une démarche qui distingue les étapes du
développement dans le cycle de vie du logiciel
(modularité, réduction de la complexité,
réutilisabilité éventuelle, abstraction) - sappuie sur un formalisme de représentation qui
facilite la communication, lorganisation et la
vérification - produit des documents (modèles) qui facilitent
les retours sur conception et lévolution des
applications
10Pourquoi lapproche objet ?
- Simplicité
- Facilité pour coder et réutiliser
- Modèle plus proche de la réalité
- description plus précise des combinaisons
- (données, opérations)
- décomposition basée sur classification
naturelle - facile à comprendre et à maintenir
- Stabilité
- de petites évolutions peuvent être prises en
compte sans changements massifs
11Pourquoi lapproche objet ?
- Omniprésence technique de lObjet
- dans les langages de programmation, les bases de
données, les interfaces graphiques, ... et les
méthodes danalyse et de conception. - Universalité de lObjet
- la notion dobjet, plus proche du monde réel,
est compréhensible par tous et facilite la
communication entre tous les intervenants dun
projet.
12- Au début des années 90, une cinquantaine de
méthodes objet, liées uniquement par un consensus
autour didées communes (objets, classes,
sous-systèmes, ...) - Recherche dun langage commun unique utilisable
par toute méthode objet - dans toutes les phases du cycle de vie,
- compatible avec les techniques de réalisation
actuelles.
13UML (Unified Modeling Language)
UML
OMG
OOPSLA
Autres
OMT (Rumbaugh)
OOD (Booch)
OOSE (Jacobson)
14UML 1.3
Version béta - fin 99
Version intermédiaire non publiée
UML 1.2
UML 1.1
Standardisation à lOMG - Novembre 97
UML 1.0
Soumission à lOMG - Janvier 97
Commentaires du public
UML 0.9 0.91
Juin 96 puis OOPSLA96
OOPSLA95
Unified Method 0.8
Booch93
OMT-2
Autres méthodes
Booch91
OMT-1
OOSE
Partenaires
15Plan
Concepts objet et formalisme UML
16Concepts généraux
Un modèle est une représentation abstraite
dune réalité, il fournit une image simplifiée
du monde réel. Il permet - de comprendre et
visualiser (en réduisant la complexité) - de
communiquer (à partir d un langage commun
à travers un nombre restreint de concepts) -
de valider (contrôle de la cohérence, simuler,
tester )
17Concepts généraux
Les modèles d'UML
modèle des classes ------gt
statique modèle des états
------gt dynamique des objets modèle des cas
d'utilisation ------gt besoins
utilisateur modèle d'interaction
------gt scénarios et flots de messages modèle
de réalisation ------gt unités de
travail modèle de déploiement ------gt
répartition des processus
18Concepts généraux
La perception des modèles Les vues graphiques
(diagrammes )
diagrammes de classes diagrammes
d'objets diagrammes de séquences diagrammes de
collaboration diagrammes états-transitions diagra
mmes d'activités diagrammes de cas
d'utilisation diagrammes de composants diagrammes
de déploiement
19Concepts 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
lt------- Logique Physique ------gt
20Formalisme UML - Concepts objet
- Modèle d utilisation
- Modèle structurel
- Modèle dynamique
- Modèle d implémentation
21Modèle d utilisation
- Les USE CASE
- Modèles descriptifs du point de vue des
utilisateurs - Scénarios fonctionnels
- Focus
- la manière d utiliser le système
22Modèle d utilisation
- Deux concepts
- Acteur
-
- Use case
-
Acteur (rôle 2)
23Modèle d utilisation
- Les cas d utilisation peuvent être liés par des
relations - - d utilisation use
- - de raffinement extend
Acteur (rôle 2)
use
extend
24Modèle structurel
- En UML, le modèle structurel ou statique est
décrit à l'aide de deux sortes de diagrammes - Diagrammes de classes
- (description de tout ou d'une partie du système
d'une manière abstraite, en termes de classes, de
structure et d'associations). - Diagrammes d'objets
- (description d'exemples de configuration de tout
ou partie du système, en termes d'objets, de
valeurs et de liens).
25Modèle structurel
Les objets
Objets informatiques
Objets du monde réel
Comportement visible
État Interne caché
26Modèle structurel
Objet Etat ---gt évolue au cours du
temps Comportement ---gt actions et
réactions Identité ----gt essence
Comportement influe sur l'état Etat réflète les
comportements passés
27Modèle structurel
BD
Deux objets ou instances
Luc
Système
Alain
Discipline
Sophie
Professeur
28Modèle structurel
- Première abstraction
- Une classe peut être vue
- - la description en intention d'un groupe
d'objets - ayant même structure (même ensemble d'attributs),
- ayant même comportement (mêmes opérations),
- ayant une sémantique commune.
- - la génitrice des objets ou instances
- - le conteneur (extension) de toutes ses
instances
29Modèle structurel
Classe Attributs (propriétés)
Instance Valeurs d'attributs (État)
Voiture
Titine Voiture
type 205 Peugeot rouge
Est-instance-de
type string marque string couleur string
30Modèle structurel
Opérations et méthodes
nom de la classe
attributs
Voiture
type string marque string couleur string
opérations
Implémentations
repeindre(c Couleur) déplacer (d longueur)
Méthodes
31Modèle structurel
- Un objet est instance d'une (seule) classe
- il se conforme à la description que celle-ci
fournit, - il admet une valeur pour chaque attribut déclaré
à son attention dans la classe, - il est possible de lui appliquer toute opération
définie à son attention dans la classe. - Tout objet admet une identité qui le distingue
pleinement des autres objets - il peut être nommé et être référencé par un nom
(mais son identité ne se limite pas à ça).
32Modèle structurel
Association / Lien (analogie Classe /
Instance)
Pays
Ville
a-pour-capitale
nom
nom
Association
a-pour-capitale
Pays nomFrance
Ville nom Paris
Lien
33Modèle structurel
Association en général binaire (degré 2) mais
..
nom d'association
Adhérent
Exemplaire
lire
association ternaire
association binaire
DispositifDeLecture
34Modèle structurel
Multiplicité et rôles d'une association
emploie
employeur
employé
Personne
Société
1..
nom date de nais. nSS adresse
nom adresse
travaille-pour
chef
0..1
encadre
1..
travailleur
35Modèle structurel
Multiplicité
exactement 1
1
Classe
au plus 1
0..1
Classe
aucun, 1 ou plusieurs (défaut)
0..
Classe
1..
au moins 1
Classe
2..4
de 2 à 4
Classe
2,4
Classe
2 ou 4
36Classe association
Modèle structurel
Possède-des-actions
Entreprise
Personne
1..
nom date de nais. adresse
capital
nom adresse
actionnaire
Ligne de portefeuille
quantité
37Classe association
Modèle structurel
Autorisé sur
Utilisateur
Station de travail
1..
1..
nom
nom
Autorisation
priorité droits
1..
répertoire de rattachement
Répertoire
38Classe association
Modèle structurel
- Une classe d'association permet de modéliser une
association par une classe. - Les liens d'une telle association sont alors des
objets instances de cette classe. - À ce titre, ils admettent une valeur pour tout
attribut déclaré dans la classe d'association et
on peut leur appliquer toute opération définie
dans celle-ci. - En tant que classe, une classe d'association peut
à son tour être associée à d'autres classes
(voire à elle-même par une association réflexive).
39Modèle structurel
D autres abstractions
- associations particulières (composition /
agrégation) - spécialisation / généralisation
40Modèle structurel
Composition
Association particulière Tout /partie
Fenêtre
0..2
Barre Ascenseur
Barre titre
Fond
Frontière
2
Titre
Bouton Ferm
Indicateur
Flèche
41Modèle structurel
Agrégation
Sémantique Collection/Élément
Pays
1
Forêt
1..n
1
Région
1
1..n
Arbre
1..n
Département
42Modèle structurel
Composition / Agrégation
Contraintes - Exclusivité/Partage -
Dépendance/Indépendance Propagation/Diffusion
43Modèle structurel
Généralisation / Spécialisation
Mécanismes dinférences intellectuelles de
caractéristiques Soit on affine
(spécialisation) Soit on abstrait
(généralisation) Sémantique Point de vue
ensembliste Point de vue logique
44Modèle structurel
Généralisation / Spécialisation
45Modèle structurel
Généralisation / Spécialisation
Équipement
Type d'équipement
...
Réservoir
Pompe
Échangeur
Type de pompe
Type de réservoir
...
Pompe Cent.
Pompe Imm.
Réservoir Press.
...
46Modèle structurel
Généralisation / Spécialisation multiple
Véhicule
Véhicule aquatique
Véhicule terrestre
Auto
Véhicule amphibie
Bateau
47Modèle structurel
Composition/Agrégation ou généralisation ?
Agrégation - lien entre instances
- un arbre d'agrégation est composé d'objets
qui sont parties d'un objet
composite Généralisation - lien entre
classes
48Modèle structurel
Généralisation / Spécialisation
- Une sous-classe hérite de sa super-classe la
description des instances - les déclarations d'attributs,
- les définitions d'opérations,
- les associations définies sur la super-classe,
- les contraintes (on en parle plus tard).
- Une sous-classe peut redéfinir de façon plus
spécialisée une partie ou la totalité de la
description héritée , mais il n'y a pas
d'exception à l'héritage.
49Modèle structurel
Classes abstraites
- Une classe abstraite est une classe non
instanciable, c'est à dire qu'elle n'admet pas
d'instances directes. - Une classe abstraite est une description d'objets
destinée à être héritée par des classes plus
spécialisées. - Pour être utile, une classe abstraite doit
admettre des classes descendantes concrètes. - La factorisation optimale des propriétés communes
à plusieurs classes par généralisation nécessite
le plus souvent l'utilisation de classes
abstraites.
50Modèle structurel
Opérations abstraites
- Une opération abstraite est une opération
n'admettant pas d'implémentation au niveau de
la classe dans laquelle est déclarée, on ne peut
pas dire comment la réaliser. - Les opérations abstraites sont particulièrement
utiles pour mettre en œuvre le polymorphisme. - Toute classe concrète sous-classe d'une classe
abstraite doit concrétiser toutes les
opérations abstraites de cette dernière.
51Modèle structurel
Classes abstraites
FormeGéométrique
classe abstraite
centre Point
opération abstraite
dessiner()déplacer(delta Vecteur)
classe abstraite (dessiner() est héritée et non
concrétisée)
classe concrète
Polygone
Ellipse
régulier Boolean
grandDiam Vecteur petitDiam Vecteur
Polygone utile que si spécialisée
opération concrétisée
dessiner()
52Modèle structurel
Interfaces
- Une interface est une collection d'opérations
utilisée pour spécifier un service offert par une
classe. - Une interface être vue comme une classe sans
attributs et dont toutes les opérations sont
abstraites. - Une interface est destinée à être réalisée par
une classe (celle-ci en hérite toutes les
descriptions et concrétise les opérations
abstraites). - Une interface peut en spécialiser une autre, et
intervenir dans des associations avec d'autres
interfaces et d'autres classes.
53Modèle structurel
Interfaces
interface BlocDeChoix
interface
BlocDeChoix
opérations abstraites
1..
setDefault(o Option) getChoice() Option
Option
choix
réalisation
choix
1..
opérations concrétisées
MenuPopUp
BoutonPopUp
1..
setDefault(o String) getChoice() String
setDefault(o Bouton) getChoice() Bouton
Bouton
choix
54Modèle structurel
Interfaces
Deux notations pour l'utilisation d'une interface
réalise
MenuPopUp
uses
ApplicationFenêtrée
uses
MenuPopUp
ApplicationFenêtrée
BlocDeChoix
55Modèle structurel
Les contraintes
- Les contraintes sont des prédicats, pouvant
porter sur plusieurs éléments du modèle statique,
qui doivent être vérifiés à tout instant. - Les contraintes permettent de rendre compte de
détails à un niveau de granularité très fin dans
un diagramme de classe. Elles peuvent exprimer
des conditions ou des restrictions. - En UML, les contraintes sont exprimées sous forme
textuelle, entre accolades et de préférence en
OCL (Object Constraint Language). - Les contraintes sont héritées.
56Modèle structurel
Les contraintes
Exemples de contraintes sur associations
contrainte entre 2 associations
Chemin
membreDe
Personne
Comité
subset
1
ordered
1..
contrainte sur extrémité d'association
Arête
57Modèle structurel
Les contraintes
actif passif
Exemple de contraintes à différents niveaux
contrainte sur classe
subordonné
employeur
Personne
Société
1..
0..1
Personne.employeur Personne.chef.employeur
actif Real value ? 0 passif Real
chef
0..1
diriger
contrainte sur attribut
contrainte sur 2 associations
58Modèle structurel
Quelques compléments de notation
stéréotype
instance of
relation de dépendance
- Un stéréotype est un label qui permet d'apporter
une précision supplémentaire à un élément de
notation (classe, relation, )
- Une relation de dépendance peut être exprimée
entre deux éléments de notation. Elle est le plus
souvent stéréotypée. Il y a plusieurs stéréotypes
de dépendance uses, instance of,
59Modèle dynamique
Décrit les interactions entre objets et
les changements au cours du temps
- Aspects temporels, comportementaux Contrôle
- Stimuli des objets et leurs réponses
60Modèle dynamique
diagrammes de collaboration diagrammes de
séquences diagrammes états-transitions
diagrammes d'activités (non traités)
61Modèle dynamique
La communication
Systèmes informatiques Société d'objets
travaillant en synergie pour réaliser les
fonctions de l'application
Communication
Agent
Acteur
Serveur
message
62Modèle dynamique
Les messages
Types
Synchronisation
simple synchrone dérobant minuté asynchrone
constructeurs destructeurs sélecteurs modificateu
rs itérateurs
63Modèle dynamique
Diagramme de collaboration
2 M2
B
1 M1
5 M5
4 M4
A
C
6 M6
message
3 M3
64Modèle dynamique
Diagramme de séquence
C
B
A
M1
M2
M3
M4
M5
M6
65Modèle dynamique
La ligne de vie
C1
create
op
Création par le message create
Activation de l objet qui exécute une opération
op
destroy
Destruction par un autre objet
66Modèle dynamique
Événement et État
État d'un objet valeurs de ses attributs et
de ses liens au cours du temps un objet peut
changer d'état Événement stimuli d'un objet
vers un autre objet
67Modèle dynamique
Diagramme d état
Événement 1 Cond1 / Action1 (attrib)
État 1 faire Activité 1
État 2 ...
État d'un objet valeurs de ses attributs et
de ses liens au cours du temps un objet peut
changer d'état
Événement stimuli d'un objet vers un autre
objet
68Modèle d implémentation
Les packages
Un package ou sous-système est un regroupement
logique de classes, associations, contraintes
.. Un sous-système est généralement défini par
les services qu il rend Les liens entre
sous-systèmes sont des liens de dépendance Les
packages servent à structurer une application
Ils sont utilisés dans certains LPO (Java) ce
qui assure une bonne traçabilité de
l analyse à l implémentation
69Modèle d implémentation
Les packages
Liens de dépendance
Classes avec fort couplage sémantique
70Plan
Adéquation Discussion
71Adéquation aux BD objet
Classes vs Types persistants vs éphémères
Points dentrée (racine de persistance)
Regroupements
Persistance
LDD, LMD, L Hôte équivalents LPO Langage de
requête like SQL Transactions
LDD, LMD, L Hôte
72Adéquation aux BD classiques
Traduction comme précédemment d. structurels
--gt schémas d. dynamiques --gt requêtes et
traitements
applicatifs divers Mais règles de passage
73Sémantique des informations spatiales
Multiplicité des perceptions Visions discrète
vs continue Échelles
74Sémantique des informations spatiales
Multiplicité des perceptions
polyligne
graphe
Cadastre
Trafic routier
Rue
Réseaux souterrains
Équipement
volume
surface
75Sémantique des informations spatiales
Visions discrète vs continue température dens
ités de population, ...
Échelles pas un simple rapport taille du
support/terrain granularité de perception
76Représentations
- Géométrie euclidienne
- point (dim 0) ligne (dim 1)
- aire (dim 2) volume (dim 3)
- Théorie des graphes
-
- nœud, arête, arc, chaîne
- Topologie
- relations spatiales
77Représentations
- Géométrie euclidienne
- point (dim 0) ligne (dim 1)
- aire (dim 2) volume (dim 3)
A-pour-extrémité-gt
Segment
Point
0..1
2..2
X Y
Est-sur booleen
78Repré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
79Repré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
80Repré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
81Repré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
82Représentations
- Théorie des graphes
-
- nœud, arête, arc, chaîne
Est-relié-à
0..n
0..n
Nœud
origine
Arc
1..1
1..n
extrémité
1..n
1..1
83Représentations
- Topologie
- relations spatiales
- Adjacence, Inclusion, Proximité
84Représentations
1
1
1
1
1
1
1
3
1
1
3
3
3
2
2
3
2
2
2
3
3
2
2
2
3
3
3
3
2
2
85Méthodes objet pour les SIG
GeoOOA (Kösters, Pagel, Six)
NETWORK
GEOCLASS
REGION
LINE
POINT
RASTER
opérations (intersection, inclusion, etc.)
86Mé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
87Mé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
88Méthodes objet pour les SIG
MADS
PST
Commune
Remembrement
source
est_composée_de
Partage
cible
PST
PST
Union
Parcelle
PST
Re-allocation
89Méthodes objet pour les SIG
PERCEPTORY (Bedard U Laval Quebec)
UML Pictogrammes (Langage Visuel)
PST
90Mé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
91Discussion
Des bienfaits de l encapsulation .
Données
Encapsulation
Messages
Opérations
- Proposer un service et réagir aux messages
92Discussion
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
93Discussion
Vers des framework ?
TAD spatiaux
Point Ligne Zone
TAD temporels
Instant Intervalle Ensemble dinstants
Ensemble dintervalles
94Discussion
Mise en œuvre
SIG outils SGBD spatiaux
futur ..... SGBD spatio-temporels .....
Interopérabilité