Anda di halaman 1dari 154

COLE DE TECHNOLOGIE SUPRIEURE

UNIVERSIT DU QUBEC

PROJET DAPPLICATION PRSENT


LCOLE DE TECHNOLOGIE SUPRIEURE

COMME EXIGENCE PARTIELLE


LOBTENTION DE LA
MATRISE EN GNIE LOGICIEL
M. ING.

PAR
WAJDI ABBOUD

MODLISATION ET CONCEPTION
DUNE BASE DE DONNES ORIENTE-OBJET
POUR LINSPECTION AUTOMATISE DE PICES MANUFACTURES

MONTRAL, AVRIL 1999


Tous droits rservs, Wajdi Abboud 1999

CE PROJET DAPPLICATION A T VALU


PAR UN JURY COMPOS DE:

M. Richard Lepage, professeur-tuteur et professeur


au Dpartement de gnie de la production automatise lcole de technologie
suprieure

M. Michel Lavoie, professeur


au Dpartement de gnie lectrique lcole de technologie suprieure

M. Tanneguy Redarce,
Matre de confrences lInstitut national des sciences appliques de Lyon

IL A FAIT LOBJET DUNE PRSENTATION DEVANT CE JURY ET UN PUBLIC


LE 24 MARS 1999
LCOLE DE TECHNOLOGIE SUPRIEURE

MODLISATION ET CONCEPTION
DUNE BASE DE DONNES ORIENTE-OBJET
POUR LINSPECTION AUTOMATISE DE PICES MANUFACTURES
Wajdi Abboud
(Sommaire)

Dans le cadre dun projet de collaboration entre la France et le Qubec intitul:


Inspection automatise de pices manufactures, ce travail consiste dvelopper une
base de donnes centralise en langage JAVA pouvant contenir toutes les informations
relatives des pices manufactures et dvelopper des outils informatiss permettant
dinterroger la BD distance.
Gographiquement, les utilisateurs de cette BD sont rpartis entre plusieurs
laboratoires franais et canadiens (LAI, LIVIA, CNRC, ).
Pour interroger distance le systme, deux outils ont t dvelopps dans ce
travail: un pour la partie serveur et lautre pour la partie client. La partie serveur contient
la BD avec toutes les informations stockes sous forme de fichiers binaires et lautre est
constitue dun programme permettant de questionner le serveur distance dans le but
de visualiser ou de complter la BD et ceci grce une interface graphique usage
simple.
La mthodologie applique la ralisation de ce projet sappuie sur:

Lanalyse oriente objet (AOO) qui permet de clarifier les divers problmes
rencontrs au cours de notre projet.
Le langage de programmation JAVA avec lenvironnement de dveloppement
JDK de SUN. Ainsi pour optimiser la BD dune faon efficace, nous avons pens
utiliser des fichiers en format binaire. En effet, les accs se feront ainsi plus
rapidement.
La douille Java, utilisant le protocole TCP/IP comme langage de communication
entre un client et le serveur de la BD.

ii

Avec la douille Java, se basant sur le protocole TCP/IP, nous avons assur un
haut niveau dinteraction. Ce dernier est caractris par un court temps de rponse
surtout quand par exemple, un utilisateur autoris veut tlcharger chez lui des icnes de
pices manufactures ainsi que des fichiers relis ces dernires. Nous avons atteint des
rsultats satisfaisants grce au tlchargement rapide et la facilit daccs la BD.
Enfin, nous suggrons des amliorations pour augmenter la performance de ce
systme. Une technologie prometteuse est le concept des Agents Mobiles (AM). Ce
dernier aura le rle de lancer une requte la BD. En revanche, cette innovation
technologique est trs jeune. Nous avons vit de lutiliser comme stratgie
dimplantation dans notre projet, en raison que son usage est trs prcoce pour le
moment et elle est au stade de dveloppement et de validation.

DESIGN AND MODELING


OF OBJECT-ORIENTED DATABASE
FOR AUTOMATED INSPECTION OF MANUFACTURED COMPONENTS
Wajdi Abboud
(Abstract)
This work is the result of a France-Canada joint project called Automated
Inspection of Manufactured Components. In this project, we defined a centralized
database containing all the necessary information on different manufactured parts. We
also developed computer tools needed for remote database queries.
The users of this database are located in different laboratories in France and in Canada.
In order to accomplish the so-called remote database access, we created two
related tools for database interfacing: a server module and a client module using clientserver programming paradigm. The goal is to simplify processing and to present a
uniform model for data retrieval.
The framework used in the design and modelling consists of:

Object Oriented Analysis (OOA) which enables the development of high-quality


tools by defining the problem structure.
The JAVA language which provides a robust development environment.
Furthermore, by using binary encoding schemes, data access time can also be
reduced.
The Javas socket implementation with TCP/IP protocol. These JAVA sockets
permits a high-level abstraction for our client-server modules.

By using the Java sockets, we were able to obtain a fast system response time.
The fast response time is especially useful in the remote loading of icon objects and
related data.

iv

Further improvements may also be achieved with the new Mobile Agent
Concept. A Mobile Agent can query the database without direct handling by neither
client-side module nor server-side module. Thus, the required bandwidth for normal
database transactions is reduced.
However, the Mobile Agent Concept is still an emerging technology. Thats why
further investigation should be carried out to determine the Mobile Agent Concepts
capabilities and limitations.

REMERCIEMENTS

La question se poser finalement


est de savoir si la vie est une exprience
vivre ou un problme rsoudre1

Je tiens remercier toutes les personnes qui, de prs ou de loin, mont soutenu
dans la ralisation de ce travail. Particulirement,
Je voudrais exprimer ma profonde gratitude envers Dr Richard Lepage,
Professeur au dpartement du gnie de la production automatise (GPA) lcole de
technologie suprieure Montral, qui a dirig ce travail. Japprcie sincrement, non
seulement ses comptences scientifiques, mais aussi la patience, la comprhension et
laide efficace quil a tmoign mon gard et qui mont permis de finaliser ce travail.
Je remercie Messieurs les Professeurs Michel Lavoie et Tanneguy Redarce de
leur engagement en tant que membres du jury dvaluation de ce travail.
Je noublie pas de remercier sincrement Matthieu Aubry, stagiaire de lINSALyon, qui a contribu limplantation et a favoris le dveloppement des ides
contenues dans ce travail.
Enfin, du fond de mon cur, je remercie tous les membres de ma famille. Leur
amour, leur abngation, leurs encouragements ont t mes motivations tout au long de
mes tudes.

Pelletier, Denis, Larc-en-soi, Robert Laffont/Stank, Montral 1981.

TABLE DES MATIRES

SOMMAIRE .................................................................................................................. i
ABSTRACT................................................................................................................. iii
REMERCIEMENTS ..................................................................................................... v
TABLE DES MATIRES ............................................................................................ vi
LISTE DES TABLEAUX ............................................................................................. x
LISTE DES FIGURES ................................................................................................. xi
LISTE DES ABRVIATIONS ET DES SIGLES........................................................ xii

INTRODUCTION......................................................................................................... 1

CHAPITRE 1 :
DESCRIPTION DU PROBLME.............................................................................. 3

1.1 Dfinition du projet dinspection automatise ............................................... 3


1.1.1 Contraintes du projet .......................................................................... 4
1.1.2 Dfinition du problme....................................................................... 6
1.1.3 Objectifs............................................................................................. 8
1.1.4 Originalit .......................................................................................... 8
1.2 Thorie des gons ......................................................................................... 9
1.2.1 Reconnaissance par composantes ....................................................... 9
1.2.2 Description par gons....................................................................... 12
1.3 Attributs intrinsques .................................................................................. 14
1.3.1 Attributs des gons........................................................................... 14

vii

1.3.2 Attribut de connectivit .................................................................... 15


1.4 Rpertoire de gons .................................................................................... 16
1.5 Pices de la base de donnes ....................................................................... 17
1.6 Description gon des pices ........................................................................ 18
1.6.1 Gons constitutifs............................................................................. 18
1.6.2 Inventaire des gons utiliss ............................................................. 18
1.6.3 Description complte avec connectivit............................................ 19
1.7 Base de donnes.......................................................................................... 20
1.7.1 Donnes associes chaque pice .................................................... 20

CHAPITRE 2 :
MODLISATION ORIENTE-OBJET DE LA BASE DE DONNES................. 22

2.1 Pourquoi avons-nous besoin de lanalyse oriente-objet? ............................ 22


2.2 Dfinitions.................................................................................................. 26
2.2.1 Objet ............................................................................................... 26
2.2.2 Classe et instance............................................................................. 26
2.2.3 Attribut............................................................................................ 27
2.2.4 Mthode .......................................................................................... 28
2.2.5 Constructeur .................................................................................... 28
2.2.6 Connexion dinstance ...................................................................... 28
2.2.7 Message et polymorphisme.............................................................. 29
2.2.8

Structure Compos-Composants ..................................................... 30

2.2.9

Structures Gnralisation-Spcialisations........................................ 30
2.2.9.1 Notion dhritage................................................................ 31

2.2.10 Modlisation................................................................................... 31
2.3 Langages de programmation et environnement de dveloppement.............. 32
2.3.1 Pourquoi JAVA?............................................................................. 32
2.3.2 Environnement de dveloppement adapt notre plate-forme ......... 33

viii

2.4 Introduction la base de donnes................................................................ 35


2.4.1 Avantages et inconvnients .............................................................. 35
2.4.2 Vue globale du systme dinspection automatise............................ 36
2.4.3 Besoins pour la base de donnes dinspection................................... 37
2.4.4 Buts principaux associs la base de donnes .................................. 37
2.5 Systme de gestion de base de donnes (SGBD) ......................................... 38
2.5.1 Concepts gnraux des SGBD ......................................................... 38
2.5.2 Principaux modles sur lesquels sappuient les SGBD ..................... 39
2.6 Les systmes de gestion de fichiers (SGF) .................................................. 40
2.6.1 Dfinition dun fichier ..................................................................... 40
2.6.2 Les fichiers de la base de donnes.................................................... 40
2.6.3 Objectifs des SGF............................................................................ 41
2.6.4 Organisation de fichiers .................................................................. 41
2.7 Modle conceptuel de donnes (MCD) ....................................................... 42
2.8 Modlisation Oriente-Objet....................................................................... 44
2.9 Associations entre les classes de la base...................................................... 46

CHAPITRE 3 :
ARCHITECTURE CLIENT-SERVEUR DE LA BASE DE DONNES................ 49

3.1 Les douilles dUNIX................................................................................... 49


3.1.1 Dfinition ........................................................................................ 49
3.1.2 Introduction ..................................................................................... 50
3.1.3 Les primitives TCP pour les douilles................................................ 51
3.1.4 Enchanement des procdures .......................................................... 51
3.1.4.1 Mode connect .................................................................. 52
3.2 Le protocole TCP/IP ................................................................................... 54
3.2.1 TCP/IP et JAVA .............................................................................. 55
3.2.2 Principe dutilisation des douilles..................................................... 55

ix

3.2.2.1 Cot Client......................................................................... 56


3.2.2.2 Cot Serveur...................................................................... 56
3.3 Architecture Client-Serveur ........................................................................ 57
3.3.1 La rpartition Client-Serveur ............................................................ 58
3.4 Liste des requtes acceptes par le serveur................................................... 59
3.5 Les fentres utilises pour la base de donnes.............................................. 60

CHAPITRE 4 :
CONCLUSION ET RECOMMANDATION............................................................ 61

BIBLIOGRAPHIE ..................................................................................................... 64

ANNEXE A : DIALOGUE CLIENT-SERVEUR ...................................................... 67


ANNEXE B : INVENTAIRE DES FLUX ET MATRICE DES FLUX
DE DONNES .................................................................................... 69
B.1 Inventaire des flux ..................................................................................... 70
B.2 Matrice des flux des donnes...................................................................... 71
ANNEXE C : MANUEL DUTILISATION .............................................................. 73
C.1 Programmes ............................................................................................... 74
C.2 Accs aux programmes .............................................................................. 75
ANNEXE D : LE DICTIONNAIRE DES CLASSES................................................. 76
ANNEXE E : LISTE DES REQUTES ACCEPTES PAR LE SERVEUR ........... 104
ANNEXE F : LES FENTRES UTILISES POUR LA BASE DE DONNES ...... 111

LISTE DES TABLEAUX

Tableau

Page

1.1

Valeurs dattributs intrinsques ...................................................................15

1.2

Valeurs de lattribut de connectivit ...........................................................15

1.3

Rpertoire des gons ...................................................................................16

LISTE DES FIGURES

Figure

Page

1.1

Inspection automatise de pices manufactures ............................................5

1.2

Attributs du gon ........................................................................................11

1.3

Graphe de gons .........................................................................................12

1.4

Gons semblables .......................................................................................13

1.5

Pices de la base de donnes ........................................................................17

1.6

Description complte avec connectivit des pices.......................................19

1.7

Vue deux dimensions dune pice de la base .............................................21

2.1

Reprsentations graphiques de lAOO..........................................................25

2.2

Notation pour linstantiation ........................................................................26

2.3

Les messages ...............................................................................................29

2.4

Application partageant la base dinspection .................................................36

2.5

Organisation de fichiers de la base de donnes ............................................41

2.6

Le modle conceptuelle de donnes (MCD) ................................................43

2.7

Le modle Orient-Objet..............................................................................44

3.1

Enchanement des primitives pour le mode connect ...................................52

3.2

Scnario entre Client et Serveur ...................................................................56

3.3

Dialogue Client-Serveur ..............................................................................57

3.4

Rpartition Client-Serveur ...........................................................................58

3.5

Client-Serveur et Canal................................................................................59

LISTE DES ABRVIATIONS ET DES SIGLES

AM

Agents Mobiles

AOO

Analyse Oriente-Objet

API

Application Program Interface

BD

Base de donnes

CAO

Conception Assiste par Ordinateur

CG

Centre de gravit

CNRC :

Conseil national de recherches du Canada

CRIM :

Centre de recherche informatique de Montral

TS

cole de technologie suprieure

FAO

Fabrication assiste par ordinateur

INSA :

Institut national des sciences appliques (France)

IP

Internet Protocol

JDK

Java Developper Kit

LAI

Laboratoire dautomatique industrielle

LDD

Langage de dfinition de donnes

LIVIA :

Laboratoire dImagerie, de Vision et dIntelligence Artificielle

LMD :

Langage de manipulation de donnes

MCD :

Modle conceptuel des donnes

OO

Orient-Objet

POO

Programmation Oriente-Objet

SGBD :

Systme de gestion de base de donnes

TCP

Transmission Control Protocol

2D

Deux dimensions

3D

Tridimensionnel (trois dimensions)

INTRODUCTION

De nos jours, lutilit des bases de donnes (BD) nest plus dmontrer. En effet,
pour un projet de grande envergure, il est souvent ncessaire de stocker des donnes et
dy accder le plus rapidement possible. Ainsi, ce projet dapplication consiste
structurer une base de donnes centralise pouvant contenir toutes les informations
relatives des pices mcaniques et dvelopper des outils informatiss permettant
dinterroger la base de donnes localement et distance: Ceci rentre dans le cadre dun
projet en collaboration entre la France et le Qubec intitul: Inspection Automatise de
Pices Manufactures.
Le dveloppement de deux outils (un pour la partie serveur et un pour la partie
client) tait donc ncessaire afin de pouvoir interroger distance le systme. La partie
serveur contient la BD proprement dite avec toutes les informations stockes sous forme
de fichiers binaires. La partie client est constitue dun programme permettant de
questionner le serveur distance dans le but de visualiser ou de complter la BD et ceci
grce une interface graphique simple et conviviale.

Gographiquement, les utilisateurs sont rpartis entre plusieurs laboratoires


franais et canadiens (LAI, LIVIA, CNRC, ). Ils dsirent accder la BD qui est
fonction des besoins de chacun deux. Par exemple, le systme permet un utilisateur
du laboratoire LAI Lyon daccder et dchantillonner quelques pices de la BD
laquelle est localise physiquement sur le serveur de lcole de technologie suprieure
de Montral.

Pour garder un meilleur contrle sur la BD, un systme dexploitation UNIX


restreint et autorise laccs un groupe dusagers privilgis dtermins au pralable.
La ralisation de ce projet sappuie sur la mthodologie suivante:
-

Lanalyse utilise dans ce rapport dapplication est Oriente-Objet (OO). Elle est
inspire de plusieurs auteurs comme Coad et Yourdon, Davis, Rumbaugh et autres
[Coad et Yourdon, 1992; Rumbaugh et al., 1996; Davis, 1993]. Lutilit de cette
analyse est de spcifier la BD. Ainsi, nous avons utilis la mthode franaise
Merise [Gabay, 1993] pour spcifier le modle conceptuel de donnes (MCD)
ainsi que la matrice des flux de donnes. Ces derniers apparaissent en chapitre 2 et
en annexe B la fin de ce document.

Pour raliser le dveloppement de notre projet, nous avons utilis JAVA comme
langage de programmation avec lenvironnement de dveloppement JDK (Java
Developer Kit).

Une douille Java, utilisant le protocole TCP/IP comme langage de communication,


est implante permettant dassurer la communication avec le serveur de la BD dun
client distant.

Ce mmoire se divise en trois chapitres et une conclusion:

Le premier expose la problmatique, il dcrit le projet dinspection automatise et


dfinit le problme associ la BD

Le deuxime illustre la mthode danalyse propose pour le projet ainsi que le cadre
conceptuel que nous avons adopt pour la ralisation. Il se termine avec une
modlisation Oriente-Objet de la BD

Le troisime chapitre approfondit les concepts relis la communication ClientServeur partir de la douille et du protocole TCP/IP

Enfin, une conclusion clt le prsent document.

CHAPITRE 1

DESCRIPTION DU PROBLME

Pour permettre une bonne comprhension du travail prsent dans ce document,


il est opportun de clarifier le projet et de rappeler certains concepts lis au sujet. Ce
chapitre prsente une description thorique dtaille des gons, ainsi que les principales
contraintes qui sont relies la construction de la base de donnes.

1.1 Dfinition du projet dinspection automatise


Linspection automatise dobjets manufacturs consiste comparer leur modle
de conception1 avec leur image 3D obtenue laide dun capteur tlmtrique laser. La
mise en registre de ces deux reprsentations permet de conclure si une pice ralise est
conforme son modle thorique dfini lors de sa conception. La mise en
correspondance est un problme difficile, complexifi par la ncessit de slectionner le
bon modle dans une base de donnes CAO de grande taille qui contient la description
de toutes les pices susceptibles de se retrouver sur la chane dinspection.

Afin damliorer sensiblement le temps de rponse pour la slection du bon


modle dans la base de donnes, les partenaires du projet ont propos dtablir des

De nombreux outils informatiques facilitent la conception des pices (CAO: conception assiste par

ordinateur) de mme que, de plus en plus, leur fabrication (FAO: fabrication assiste par ordinateur). Ce
foisonnement doutils informatiques a permis de diminuer considrablement les temps de conception et de
fabrication de pices en srie.

modles visuels bass sur des gons, tant des modles CAO que des modles de lobjet
sous inspection. Les modles visuels 2D obtenus sont moins prcis mais beaucoup plus
compacts, ce qui permettra au dpart une mise en correspondance rapide des modles
visuels, permettant ensuite de slectionner le modle CAO le plus appropri pour le
module dinspection.

Ce projet se droule dans le cadre dune coopration entre la France et le Qubec


et vise darriver un systme tel quil est reprsent sur le schma suivant (Figure 1.1).
Le prsent document se concentre sur la conception et le dveloppement de la base de
donnes qui centralise les changes de donnes dans le projet dinspection automatise.

1.1.1 Contraintes du projet


Un gon est un volume lmentaire descriptible par cylindre gnralis (CG).
Une pice manufacture quelconque est constitu dau moins 1 gon. Chaque gon est
caractris par cinq attributs intrinsques explicits plus loin. Un attribut de connectivit
prcise le type de relation spatiale entre les gons interrelis. Un gon peut navoir
aucun voisin, un seul voisin, ou plusieurs voisins.

Actuellement, la base de donnes contient 10 pices. Chacune de ces pices


possde obligatoirement deux fichiers, un pour la description CAO et lautre pour
laspect visuel .GIF. Une pice peut avoir aucun ou plusieurs fichiers 2D, comme elle
peut tre membre de plusieurs bases (bases rduites).

BD intermdiaire
CAO

2D gon

gon

Camra CCD
2D

Apprentissage

Camra
3D

Module
dinspection
Mmoire
associative
Base de donnes

Rapport dinspection

Chane de montage

Figure 1.1: Inspection automatise de pices manufactures

La pice sur la chane de montage est inspecte par une camra tridimensionnelle
dont la sortie alimente le module dinspection et par une camra CCD dont limage de
sortie, dcompose en ses gons constituants, alimente par la suite la mmoire
associative qui permet dobtenir rapidement le modle appropri dans la base de
donnes. La reprsentation surfacique du modle slectionn alimente galement le
module dinspection qui calcule la meilleure mise en registre et permet donc de dtecter
les dfauts de fabrication et les carts de tolrance.

1.1.2 Dfinition du problme

On peut comparer un projet informatique un


casse-tte que nous essayons de rsoudre. Avant de
commencer, il faut dterminer le problme que lon veut
solutionner. En dautres termes, nous devons dabord
dfinir le problme [Hurtubise, 1984].

La dfinition du problme pour notre application informatique a commenc avec


une vague description comme: mettre en uvre une structuration Oriente-Objet (en
Java) pour une base de donnes (BD) partage entre plusieurs laboratoires et dvelopper
un outil dinterrogation pour questionner la BD distance et localement. Toutefois, nous
nous devons dtre plus spcifiques si nous voulons que le dveloppement du systme se
fasse efficacement.

Qui seront les principaux utilisateurs du systme? Sont-ils familiers utiliser une
BD? Lexprience des utilisateurs sera donc un lment cl dans le dveloppement
dun systme de gestion de base de donnes (SGBD).

Cette base de donnes constitue un besoin crucial pour la ralisation du projet


dinspection. Par exemple, un utilisateur autoris a besoin daccder cette base pour
tlcharger chez lui des fichiers relis des pices mcaniques quelconques. Dautres
ont besoin daccder cette dernire pour ajouter des nouvelles pices manufactures et
pour joindre des fichiers ces pices.

Les utilisateurs de la base de donnes sont distribus entre plusieurs laboratoires.


Pour valider les diffrents accs par ces utilisateurs privilgis, on a jug ncessaire de
les grer par un SGBD dtaill au chapitre 2.

Notre base de donnes est centralise, ses donnes sont stockes sur le serveur de
lTS sous forme de fichiers binaires. Elle doit tre accessible avec un temps de
rponse2 rapide ou minimal. Pour ce faire, on a pens stocker les donnes de la base
dans des fichiers binaires sous forme de table dadressage calcul (Hashtable) bien
indexe, ce qui rend le temps de rponse trs rapide.

Pour quun client communique avec le serveur de lTS, on a besoin dun


protocole de communication (Client-Serveur). La douille TCP/IP (Transmission Control
Protocol/Internet Protocol ) rpond ce besoin puisquelle permet par exemple de
tlcharger dans un temps minimal les icnes .GIF du serveur vers le compte de
lutilisateur. Ainsi partir de la douille, un client peut questionner le serveur distance
et en local. Cet outil est dcrit au chapitre 3.

Enfin, pour mettre en valeur la base de donnes, nous avons dvelopp un outil
informatis en java permettant de rpondre aux caractristiques dsires de la BD. Cet
outil est dcrit lannexe F.

La mise en uvre et le dveloppement cits prcdemment sont les aspects


majeurs de ce travail de recherche.

Le temps coul entre une demande de traitement et son excution complte.

1.1.3 Objectifs

Lobjectif gnral du projet de recherche est dautomatiser linspection de pices


manufactures disposes sur une chane de montage/inspection. La ralisation du projet
ncessite:

la structuration dune base de donnes qui contient les fichiers produits lors de la
conception des diverses pices et le dveloppement dun outil dinterrogation pour
questionner la base de donnes distance et en local. Justement, le but de mon projet
sappuie sur ce point prcis.

le dveloppement de mcanismes robustes de mise en correspondance des images


3D provenant du tlmtre et des donnes dcrivant le modle CAO slectionn de
la base de donnes, et enfin

le dveloppement dun systme de slection rapide du modle appropri CAO bas


sur une reprsentation visuelle, moins prcise mais plus compacte, de la pice sous
inspection et des modles CAO contenus dans la base de donnes.

1.1.4 Originalit
Avec ce projet, nous cherchons introduire des principes de vision artificielle
afin de simplifier les modes de reprsentation qui sont utiliss dans lenvironnement de
la conception assiste par ordinateur, et ainsi acclrer considrablement certains calculs
(comme le choix du bon modle dans une base de donnes) qui ne ncessitent pas la
grande prcision requise ailleurs.

1.2 Thorie des gons

La thorie des gons de Biederman est une thorie de la perception visuelle


humaine. Cette dernire dcrit les objets qui sont complexes sous forme de composants
simples: les gons (cylindre, cube, sphre, ). Les informations concernant une pice
manufacture sont stockes dans notre BD sous forme de gons.
Dans notre projet, nous essayons dappliquer cette thorie pour prouver son fonctionnement. Dans cette optique, nous nous servirons des gons pour dcrire des pices
manufactures afin dacclrer lindexation de celles-ci dans la BD. En effet, la
dcomposition dune pice sous forme de gons offre une reprsentation simple de celleci, qui permet de restreindre la quantit dinformation concernant lindexage.

1.2.1 Reconnaissance par composantes

Dans la foule du principe de Recognition by parts propos par [Binford, 1971],


Biederman (1985-1987) formulait dans les annes 80 sa thorie de Reconnaissance par
composantes (RBC, pour Recognition By Components), par laquelle il tentait
dexpliquer comment une scne complexe est analyse prime abord par le systme
visuel humain. Tel que son nom le laisse entendre, la reconnaissance par composantes
prsume que les objets prsents dans le champ de vision sont dcoups mentalement
selon leurs parties naturelles, nommment les gons; cet assemblage grossier de
volumes lmentaires servirait de cl pour lidentification sommaire de lobjet. La
simplicit du concept a incit plusieurs chercheurs en vision reprendre cette thorie
dans un contexte de reconnaissance dobjets 3D dans une image [Dickinson et al., 1992].

Fondamentalement, un gon pourrait avoir nimporte quelle forme 3D;


cependant, Biederman restreint les gons la famille des cylindres gnraliss (CG) afin
de rendre sa thorie plus plausible. Ce choix a dailleurs t maintenu dans la majorit
des applications de vision artificielle, puisque les CGs permettent de modliser bon

10

nombre dobjets courants, naturels ou manufacturs, tout en limitant le degr de


difficult inhrent au problme.

Malgr les diverses reprsentations possibles dun CG, Biederman retient


seulement quatre attributs symboliques pour caractriser un gon, dont les diffrentes
possibilits sont illustres la figure 1.2:
Axe

: droit ou recourb;

Section: artes

: droites ou recourbes;

symtrie : rflective, rotationnelle et rflective, ou asymtrique;


dimension : constante, en expansion, ou en expansion et contraction.
Ce choix est dailleurs consquent avec le principe dune reconnaissance de
prime abord (primal access), qui exclut toute mtrique complexe dans lopration
mentale de dcoupage. Il reste quun objet rel est gnralement constitu de plusieurs
gons: aussi un attribut de connectivit doit-il tre spcifi pour chaque paire de gons,
de sorte traduire la position relative des gons. Dans ses travaux, Biederman postule
trois types de relations spatiales, certaines dordre gomtrique, et dautres dordre
perceptuel:

Type de connexion: bout--bout ou par le ct;

Point dattache: une surface courte ou longue;

Position relative: au-dessus ou en-dessous.

11

Figure 1.2: Attributs du gon

Les attributs utiliss pour dcrire chaque gon sont rsums au tableau 1.1

Pour rpondre nos besoins spcifiques ainsi que pour ladapter plus notre
problmatique en inspection des pices manufactures, nous avons rajout la thorie de
Biederman un nouvel attribut nomm Matrialit qui peut prendre deux valeurs
diffrentes: +1 signifie un gon solide qui ne possde pas de trous et 1 signifie un gon
cavit pour modliser les trous. Aussi, nous avons fusionn deux valeurs concernant
lattribut Dimension de la figure 1.2 en une seule catgorie qui sappelle variable (en
plus de lattribut constante). De mme, nous avons ajout lattribut Artes la
valeur hybride quand un profit gnrateur possde des artes droites et des artes
courbes en mme temps.

12

1.2.2 Description par gons

La reprsentation par gons est une description structurelle des objets, gnralement codifie sous forme de graphe relationnel. chaque gon est associ un nud du
graphe, caractris par les attributs intrinsques du gon; les arcs, dirigs ou non,
expriment les relations dadjacence entre les diffrents gons [Grgoire, 1996]. La figure
1.3 illustre un exemple de graphe relationnel pour une des pices du projet.

51
3

13
3

47

47

Figure 1.3: Graphe de gons. Le chiffre lintrieur du cercle


identifie un gon particulier, alors que la valeur darc prcise la
relation spatiale existant entre deux gons.

Compte tenu des attributs symboliques associs aux gons, il est clair que la
description par gons est foncirement qualitative. Il sagit dune diffrence fondamentale avec les approches par modles: la description par gons vise effectivement
dsigner la famille laquelle appartient lobjet, plutt que lindividu prcis. La
description par gons est gnrique, dans la mesure o elle fait totalement abstraction
des lments qui particularisent les diverses instances dune mme famille.

Cet aspect gnrique des gons restreint dailleurs la porte de la thorie de


Reconnaissance par composantes pour lidentification dobjets. Nous mentionnerons
deux proprits qui limitent le pouvoir discriminant des gons:

13

1. Lunivers gomtrique se projette dans le domaine des gons par une relation
univoque plutt que rciproque. Ainsi, un cylindre gnralis donn correspond un
et un seul gon, mais un gon donn correspond une multitude dinstances de
cylindres gnraliss. La figure 1.4 illustre par exemple deux objets diffrents, mais
pourtant dcrits par le mme gon.

Figure 1.4: Gons semblables

2. La reprsentation par gons ne comporte aucune composante dimensionnelle. Ainsi,


des objets morphologiquement similaires mais distincts par un seul facteur dchelle
auraient la mme description gon, excluant toute discrimination prcise.

Il faut noter finalement que si lapproche gon est inapproprie pour les
applications de prcision (mtrologie, positionnement, etc.), elle pourrait par contre
savrer particulirement avenue comme cl de recherche dans une base de donnes:
Biederman calcule en effet que plus de 154 millions dobjets qualitativement diffrents
peuvent tre diffrencis partir de toutes les combinaisons possibles de trois gons.

14

1.3 Attributs intrinsques


1.3.1 Attributs des gons

Chaque gon sera spcifi par une squence de 5 chiffres, prsents dans lordre
suivant:

1. Matrialit du gon;
2. Courbure de laxe;
3. Courbure des artes;
4. Symtrie du profil;
5. Fonction de balayage.

Les valeurs possibles de chaque attribut sont prcises dans le tableau 1.1. En
plus des valeurs indiques dans ce tableau, un attribut intrinsque pourra aussi tre
reprsent par une valeur nulle [Grgoire, 1998]. Ce dernier cas indique que la valeur
dattribut est inconnue.

15

Attribut
Type de gon
Courbure de laxe

Nom

Valeurs

Significations

Matrialit (MT)

+1
1
0
1
2
0
1
2
3
0

Gon positif (solide)


Gon ngatif (cavit)
Absence de connaissance
Droit
Incurv
Absence de connaissance
Droites
Courbes
Hybride: droites et courbes
Absence de connaissance

1
2
3

Asymtrie
Symtrie rflective
Symtrie rflective et
rotationnelle
Absence de connaissance
Constante
Variable

Axe (AT)

Artes du profil gnrateur

Artes (ET)

Symtrie du profil
gnrateur

Symtrie (S)

Fonction de balayage

Dimension (SD)

0
1
2

Tableau 1.1: Valeurs dattributs intrinsques

1.3.2 Attribut de connectivit

Lattribut de connectivit pourra prendre cinq valeurs, mentionnes ci-dessous:

Valeur dattribut

Position des axes

1
2
3
4
5

Axes colinaires
Axes angle
Axes parallles
Axes croiss
Axes confondus

Type de jonction
gons bout--bout
jonction en T
cte--cte, inclusif, ...
jonction en X
gons concentriques

Tableau 1.2: Valeurs de lattribut de connectivit

16

1.4 Rpertoire de gons

Les cinq attributs intrinsques engendrent une possibilit de 72 gons, lists cidessous. Les codes MT, AT, ET, S, SD abrgent le nom dattribut indiqu au tableau
1.3 ci-dessous, alors que ID correspond ltiquette du gon.
ID

MT

AT

ET

SD

ID

MT

AT

ET

SD

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3

1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3

1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
3
3

1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3
1
1
2
2
3
3

1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2
1
2

17

1.5 Pices de la base de donnes

Pice 1

Pice 2

Pice 4

Pice 7

Pice 3

Pice 5

Pice 8

Pice 6

Pice 9

Pice 10

Figure 1.5: Rpertoire de pices manufactures. La BD contient, pour chaque pice, la


reprsentation CAO (format neutre de type B-Rep produit par ProEngineer), leur image
3D mesure au CNRC, leurs donnes 3D, les images 2D mesures et leur reprsentation
visuelle par gons.

18

1.6 Description gon des pices

Les descriptions prsentes ici constituent la rfrence du rseau neuronique et la


cl dindexation de la BD. Les gons sont indiqus par leur identificateur ID. Lordre
dnumration des gons est arbitraire.

1.6.1 Gons constitutifs


pice 1 ..................... 1
pice 2 ..................... 5
pice 3 ....................11
pice 4 ....................13
pice 5 ....................11
pice 6 ....................11
pice 7 ...................... 5
pice 8 ..................... 5
pice 9 ....................11
pice 10 ..................11

1
15
11
47
11
11
6
5
12
11

1
15
15
47
11
11

47
15
51
11
12

47
47

47

51

11
12

15
17

15
47

15
47

11

11

11

11

11

12

1.6.2 Inventaire des gons utiliss

ID
1
5
6
11
12
13
15
17
47
48
51

Nature
forme positive asymtrique artes droites
paralllpipde positif
forme positive dimension variable
cylindre positif
cne positif
forme hybride positive asymtrique
forme hybride positive symtrie rflective
forme hybride positive symtrie totale
cylindre ngatif
cne ngatif
forme hybride ngative symtrie rflective

15
47

48
47

19

1.6.3 Description complte avec connectivit


Les pices de la base de donnes sont dcrites ici sous forme de graphes
relationnels. Les nuds de chaque graphe indiquent ltiquette ID du gon, alors que les
arcs expriment la valeur de lattribut de connectivit.

pice 3

pice 2

47

15

15

47

pice 8

47

11

15

11

15

51

11

11
3

48

11
3

15

pice 5
3

15

47

51

11
3

12

pice 4

13

15

11

47

11

12

47

15

pice 9

47

pice 7

11

12

pice 6

3
47
3

17

11

11

3
47
3
1

pice 1

11

11

11

47

pice 10
11

11

12

11

Figure 1.6: Description complte avec connectivit des pices

11

20

1.7 Base de donnes

Notre base de donnes est centralise. De ce point ses fichiers sont organiss en
table dadressage calcul (Hashtable) indexe dans le serveur Hopfield du LIVIA de
lTS. Elle fait office dun dpt des donnes accessibles tous les usagers autoriss.
Ceux-ci peuvent accder des donnes de la base partage par des oprations
dimportation3 ou y dposer des donnes par des oprations dexportation [KIMWon et
al., 1991]. Les usagers privilgis peuvent maintenir sur leur station leurs propres bases
de donnes prives avec les donnes quils ont cres ou copies de la base partage.

1.7.1 Donnes associes chaque pice

chaque pice de la BD est associ:

deux fichiers au minimum: description CAO de format (neu ou iges) et un


icne visuel .gif utilis pour visualiser une pice de la base;

une vue gon qui demande aucune ou plusieurs connexions entre un couple
de 2 gons, comme elle peut avoir un ou plusieurs gons utiliss;

Aucun ou plusieurs fichiers 2D (deux dimensions) de format im, jpeg, tiff,


etc.;

Aucun ou plusieurs fichiers 3D (trois dimensions) sous forme de nuages de


points qui reprsentent limage 3D de la pice.

Par exemple, en cas dimportation, un utilisateur autoris peut accder notre base de donnes pour

tlcharger chez lui diffrentes types de fichiers concernant une pice manufacture. En cas dexportation,
un utilisateur autoris peut accder notre base pour ajouter une nouvelle pice manufacture ou des
fichiers supplmentaires associs une pice de la BD.

21

Le modle CAO de format iges modlise la pice en utilisant des surfaces planes.
Il dfinit un modle mathmatique ou numrique (surfaces, dimensions) et reprsente
le modle idal de la pice. partir de ce modle, chaque pice est inspecte.

Le modle CAO en format neu dcrit la pice en utilisant un langage propre au


modlisateur CAO. Il est utilis pour la description des gons.

Une vue 2D reprsente limage de la pice 2 dimensions (X,Y). Notons quon


peut voir la mme pice sous un autre point de vue et on aura deux images 2D
diffrentes illustres dans la figure 1.7 suivante.

Figure 1.7: Vue deux dimensions dune pice de la base

Le prochain chapitre est consacr la modlisation objet propose pour la base


de donnes: il introduit la base de donnes, prcise ses besoins et se termine avec le
modle objet qui sera utilis dans la ralisation du projet dinspection.

CHAPITRE 2

MODLISATION ORIENTE-OBJET DE LA BASE DE DONNES

Ce chapitre illustre la mthode danalyse propose pour le projet, il clarifie


partir des dfinitions les principaux concepts de lanalyse oriente-objet (AOO). Aussi,
il prcise le langage de programmation et son environnement. Les besoins et les
objectifs qui sont associs la base de donnes dinspection sont introduits au moyen
des concepts de base pour les systmes de gestion de base de donnes (SGBD). Les
fichiers qui composent la base de donnes sont dcrits dans ce chapitre. Ce chapitre se
termine avec la modlisation oriente-objet, qui sera utilise pour la ralisation de la
base de donnes.

2.1 Pourquoi avons-nous besoin de lanalyse oriente-objet?

Les raisons cls et les avantages de lAOO sont prsents ici pour guider deux
catgories de lecteurs. Pour le responsable de projet, cette section explique pourquoi il
devrait encourager les membres de son quipe utiliser lAOO. Pour un membre dune
quipe de projet, cette section prsente un argumentaire quil pourra utiliser pour
convaincre son responsable de la pertinence de lAOO.

Coad et Yourdon (1992) ont dvelopp une AOO dont les concepts ont t
puiss des modlisations smantiques de donnes ( information modeling), des
langages orients-objet et des bases de connaissances.

23

Les raisons et les avantages de lAOO sont les suivants:

1. Aborde mieux les questions propres aux domaines du problme. LAOO met
laccent sur la comprhension des divers domaines du problme.

2. Amliore linteraction entre lexpert du domaine du problme et lanalyste. LAOO


organise lanalyse et la spcification en utilisant des mthodes dorganisation plus
proches de la pense des individus.

3. Augmente la cohrence interne des rsultats de lanalyse. LAOO rduit la


sparation entre les diffrentes activits danalyse, en traitant les attributs et les
mthodes comme un tout intrinsque.

4. Reprsente explicitement les lments communs. LAOO utilise lhritage pour


identifier et capitaliser sur les lments communs des attributs et des mthodes.

5. Assure une stabilit lors des changements des besoins et lors de la construction de
systmes similaires.

6. Rutilise des classes au niveau du code, du design et de lanalyse, ce qui reprsente


le bnfice principal de lorientation objet. Elle se rvle comme la meilleure
stratgie pour:
-

matriser rapidement les difficults de dvelopper des systmes logiciels


complexes,

btir des systmes de meilleure qualit,

amliorer la productivit des concepteurs et des dveloppeurs de logiciels


dapplication.

24

7. Fournit une reprsentation de base cohrente pour lanalyse (ce qui doit tre
construit) et la conception (comment cela doit tre construit un moment donn).
LAOO dfinit un continuum de reprsentation pour transformer systmatiquement
les rsultats de lanalyse en une conception spcifique.

La reprsentation graphique du modle oriente-objet a t ralise pour ce


travail avec loutil: Playground.exe, version 2.0.1. Cette reprsentation inclut les quatre
couches du modle de lAOO et leurs symbolismes (cf. figure 2.1 Reprsentations
graphiques de lAOO).

Couche classe&objets
Classes&objets
Classes

Couche structure
Structure de Gnralisation-spcialisation (Hritage)
Structure de Compos-composant (Fait partie)

Couche attribut
Attributs
Connexions dinstances (Relation)

Couche Mthode
Mthodes
Connexion de messages1

Une connexion de messages modlise la dpendance des traitements dun objet indiquant un besoin en
service lui permettant de remplir ses obligations.

25

Une mthodologie comprenant ces tapes dactivits inter-relies est fournie


pour couvrir ltude du domaine du problme selon les couches ci-dessous:

1- Trouver les objets et les classes.


2- Identifier les structures.
3- Dfinir les attributs.
4- Dfinir les services.

Classe&objets

Classe
Classe

Classe&objets

Nom (section du haut)

Attribut 1
Attribut 2

Attribut 1
Attribut 2

Attributs (section du milieu)

Mthode 1
Mthode 2

Mthode 1
Mthode 2

Mthodes (section du bas)

Gnralisation

Compos

Est hrite de

1-n

1-n

Est partie de
1

Spcialisation2

Spcialisation1

Composant2

Composant1

Classe&objet2

Classe&objet1

Connexion d'instances
1

1-n

Figure 2.1: Reprsentations graphiques de lAOO

26

2.2 Dfinitions

2.2.1 Objet

Un objet est un concept, une abstraction ou une chose ayant des limites trs
claires et un sens prcis dans le contexte du problme tudi. Chaque objet a une identit
et peut tre distingu des autres.

2.2.2 Classe et instance

En Oriente-Objet, une classe dcrit un ensemble dinstances dobjets dune


forme donne. Linstantiation relie une classe ses instances. La figure 2.2 montre un
exemple dinstantiation.

Pice #1 et

Pice #2 sont des instances de la classe

Pice. Les flches en pointills relient les instances la classe [Rumbaugh et al., 1996].

(Pice)

Pice
commentaire
etiquette
fichierGIF
fichier(NEU ou IGES)
...

premire pice
1
piece1.GIF
piece1.NEU
...

(Pice)
deuxime pice
2
piece2.GIF
piece2.IGES
...

Figure 2.2: Notation pour Linstantiation

27

Ainsi, une classe est un modle dfinissant les mthodes et les variables pour un
type particulier dobjet ayant des caractristiques similaires [Taylor, 1993]. Dans
lexemple prsent la figure 2.2,

Pice #1 et

Pice #2 sont des objets distincts

mais ayant des proprits communes comme pices de la base de donnes dinspection.

Chaque objet appartient une classe. Un objet appartenant une classe donne est
appel instance de cette classe. Pendant que la classe dcrit la structure de linstance,
linstance dune classe ne contient que les valeurs propres des attributs de lobjet. Il est
bon de noter que dans le monde de lorient objet, les termes instance et objet sont
souvent utiliss comme sils taient synonymes [Hess, 1993; Jacobson et al., 1993].

Les classes permettent de dfinir des objets de manire efficace. Les mthodes et
les variables dune classe ne sont dfinies quune seule fois, lors de la dfinition de la
classe, sans que lon ait les rpter pour chaque instance de la classe.

2.2.3 Attribut

En Analyse Oriente-Objet (AOO), le terme

attribut est dfini pour reflter

le domaine du problme et les responsabilits du systme. Un attribut est une donne


(information dtat) pour laquelle chaque objet dans une classe a une valeur propre.

En Java, les attributs sont dfinis dans les classes par des variables. Les types et
les noms de ces variables sont dfinis dans la classe. Chaque objet dune classe pouvant
avoir des valeurs diffrentes pour ses variables, on utilise le terme variable dinstance
pour dsigner les variables dun objet. Une variable dinstance dfinit un attribut dun
objet. Les types et les noms des variables sont dfinis dans la classe, mais leurs valeurs
sont fixes et modifies dans lobjet.

28

2.2.4 Mthode

En AOO, le terme

mthode est dfini pour reflter le domaine et les

responsabilits du systme. Une mthode est un comportement spcifique quun objet


est en charge de fournir. Elle est quivalent une fonction en programmation
procdurale.

2.2.5 Constructeur

En programmation Oriente-Objet (POO), chaque classe contient au moins une


mthode appele constructeur. Cette mthode porte le mme nom que la classe qui la
contient et ne doit pas indiquer de valeur de retour; lobjet retourn est implicitement
une instance de la classe.

En java, avec le new nom de la classe( ), le noyau cre physiquement lobjet


correspondant (il rserve de la place en mmoire). Pour chaque classe, une ou plusieurs
mthodes particulires peuvent tre dfinies: ce sont les constructeurs. Le constructeur
est appel au moment de la cration de lobjet. Lutilisation de new( ) entrane en effet la
cration physique de lobjet et lappel dun des constructeurs.

2.2.6 Connexion dinstance

Une connexion dinstances est un modle des liaisons du domaine du problme


quun objet doit avoir avec dautres objets dans le but de remplir ses obligations.
(cf. figure 2.7: la connexion dinstance Peut avoir entre les objets: Pice et Fichier).

29

2.2.7 Message et polymorphisme

Un message est une requte qui demande lobjet rcepteur dexcuter la


mthode indique et de renvoyer le rsultat de cette excution lobjet requrant. La
figure 2.3 illustre ce processus.

Mthodes

Donnes
(objet #1)
Envoi d'un message

Mthodes

Rponse au message
Donnes
(objet #2)

Figure 2.3: Les messages

Une mme mthode peut sappliquer un nombre quelconque dobjets, et


chacun dentre eux appliquera cette mthode selon des besoins qui lui sont propres. Cela
permet denvoyer un message plusieurs objets diffrents sans avoir sinquiter de la
manire dont le message sera trait, et ce sans mme connatre le type dobjet qui le
recevra. Cette facult de dissimuler les dtails dimplmentation derrire une interface
commune de message sappelle polymorphisme [Taylor, 1993].

30

2.2.8 Structures Compos-Composants

Daprs Coad et Yourdon (1992), Il faut considrer chaque objet comme un


compos. Pour ses composants potentiels, il faut se poser les questions suivantes:

Sont-ils dans le domaine du problme?


Sont-ils dans les limites des responsabilits du systme?
Est-ce quils prennent en compte autre chose que la valeur dun tat?
Est-ce quils fournissent une abstraction utile qui traite bien du domaine du problme?

Il faut considrer, de la mme manire, chaque objet comme un composant.


Pour chaque compos potentiel, il faut se poser les mmes questions. (cf. figure 2.7: la
relation Fait partie entre les objets: Connexion et Attribut).
Le compos reprsente lobjet Connexion et le composant reprsente lobjet
Attribut .

2.2.9 Structures Gnralisation-Spcifications

Il faut considrer chaque classe comme une gnralisation. Pour ses


spcialisations potentielles, il faut se poser les questions suivantes [Coad et Yourdon,
1992]:

Sont-elles dans le domaine du problme?


Sont-ils dans les limites des responsabilits du systme?
Y a-t-il hritage?

31

2.2.9.1 Notion dhritage

Lavantage de lhritage dans un langage de programmation par objets est que le


concepteur/ralisateur peut dire Oui, je voudrais rutiliser ce que vous avez l, sauf
que jaimerais ajouter ces variables et ajouter ou largir les traitements de cette
manire. Ce comportement est tout fait diffrent de celui qui consisterait dire:
Ok. Ceci est ce que vous avez dvelopp, et je dois lutiliser tel quel ou sinon je vais
devoir lcrire moi-mme, (typique en programmation procdurale).

Lhritage est un mcanisme important pour la rutilisation et pour saisir explicitement


les lments communs [Coad et Yourdon, 1992]. Il inclut quatre aspects principaux:

1. Chaque classe peut hriter des variables dfinies dans sa(ses) superclasse(s).
2. Chaque classe peut hriter des mthodes dfinies dans sa(ses) superclasse(s).
3. Chaque classe peut ajouter des variables.
4. Chaque classe peut ajouter ou largir les mthodes hrites.

(cf. figure 2.7: la relation Est hrite entre les objets: Service et Fil (Thread)).

De plus, lhritage renforce lefficacit du mcanisme de classe en permettant de


ne dfinir le comportement similaire dun grand nombre dobjet quune seule fois
lintrieur de la classe de plus haut niveau [Taylor, 1993]. Les sous-classes ne feront que
modifier le comportement pour dcrire un cas particulier.

2.2.10 Modlisation

La modlisation est lactivit qui consiste btir des modles, soit pour dcrire
un systme dinformation existant (analyse), soit pour laborer un nouveau systme
dinformation (conception).

32

2.3 Langages de programmation et environnement de dveloppement

Pour raliser le dveloppement des deux logiciels (un pour la partie client et un
pour la partie serveur), ainsi que pour interroger la base de donnes distance, on a
utilis le JAVA comme langage de programmation avec lenvironnement de dveloppement JDK (Java Developer Kit).

2.3.1 Pourquoi JAVA ?

Java ne dpend daucune plate-forme


Son indpendance vis--vis des plates-formes matrielles est son principal

avantage. Il est donc tout indiqu pour les applications qui doivent tourner sur
diffrentes plates-formes. Cette caractristique est vitale pour tout logiciel destin au
Word Wide Web.

Lindpendance, dans le cas de Java, se situe deux niveaux: source et binaire.


Au niveau source, les types de donnes primaires de Java ont la mme taille, quelle que
soit la plate-forme de dveloppement. Ainsi, avec le compilateur, le programme Java
peut tre traduit en langage intermdiaire binaire appel bytecode. Les bibliothques de
classes standard de Java facilitent lcriture du code, qui est ensuite port de plate-forme
en plate-forme, sans adaptation [Macary et al., 1996].

Java est Orient-Objet


Pour certains, la programmation Oriente-Objet (POO) sassimile lorganisa-

tion des programmes, ce qui est ralisable avec tous les langages. Nanmoins, travailler
avec un langage et un environnement de programmation Orient-Objet permet de tirer le
meilleur parti de cette mthodologie, qui permet de crer des programmes souples et
modulaires et den rutiliser le code.

33

Comme la plupart de ces langages, java possde galement des bibliothques de


classes, qui fournissent les types de donnes de base, les possibilits dentres/sorties du
systme et dautres fonctions utilitaires. Ces bibliothques de base font partie de JDK,
qui comprend galement des classes pour la gestion de rseau, des protocoles Internet
communs et des outils dinterface utilisateur. Ces bibliothques sont crites en langage
java, et sont donc portables sur toutes les plates-formes.

2.3.2 Environnement de dveloppement adapt notre plate-forme

Pour programmer en java, on a besoin dun environnement de dveloppement


java adapt notre plate-forme. Le JDK de Sun rpond cette exigence. Il comporte des
outils de compilation et de test des applets et des application java [Desfray, 1997].

Dune manire gnrale, un environnement de dveloppement orient objet


fournit des classes gnriques ( class librairies) qui contiennent des connaissances
dont la qualit a t teste, et qui sont prtes tre hrites et rutilises. Les classes
dfinies par les utilisateurs viennent aussi enrichir progressivement cet environnement
de dveloppement.
Le JDK de Sun javasoft
Le java Developer Kit est lenvironnement de base minimum pour effectuer des
dveloppements java. Il nest disponible aujourdhui que pour les plates-formes Sparc,
Solaris, Windows95 et Windows NT.

Il contient:

Les bibliothques de classes standards (compiles et sources) suivantes: java.util,


java.io, java.net, java.awt, etc.;
Le compilateur (javac), produisant le p-code;
Un gnrateur de documentation (javadoc), etc.

34

javac
javac compile le source java. Les sources java doivent tre enregistrs dans des

fichiers de suffixe .java; javac analyse ce fichier .java et produit autant de fichiers .class
quil y a de classes dans le fichier .java . Il ny a donc pas forcment le mme nombre de
fichiers .class que de fichiers .java.

Parmi les classes prsents dans le fichier .java, il ne peut y avoir quune seule classe
dite publique. Cette classe doit porter le mme nom que le fichier.

java
Loutil java prend en paramtre le nom dune classe. Il va donc chercher un

fichier .class correspondant ce nom, charger la classe correspondante et appeler la


mthode main de cette classe. Sil ne la trouve pas, il signale lerreur et abandonne.

javadoc
javadoc sert gnrer automatiquement la documentation html des classes que

vous dveloppez. Cest avec cet outil que la documentation sur les API2 des
bibliothques fournies avec java a t gnre.

package
Les packages regroupent des classes et des interfaces ayant un rapport entre

elles, dans une seule collection. Grce eux, les groupes de classes sont disponibles
uniquement sils sont ncessaires, ce qui permet notamment dviter des conflits entre
noms de classe de diffrents groupes. Par convention, les noms du package commencent
plutt par une lettre minuscule pour les distinguer des noms de classe.

API (Application Program Interface), dcrit lensemble des fonctions et des procdures disponibles pour
le langage JAVA.

35

2.4 Introduction la base de donnes

Notre base de donnes est conue pour traiter de gros volumes dinformations
concernant les pices manufactures. Ainsi elle est constitue dun ensemble de fichiers
contenant chacun un type particulier de donnes:
fichier ListePiece, fichier ListeAttributGeon,

Une base de donnes dsigne une collection darticles comportant deux


informations essentielles: les donnes elles-mmes (dtails des pices, gons, ) et les
relations entre les articles contenus [Gunton, 1993].

La gestion de donnes impose une structuration de ces donnes ainsi quune


rationalisation des procdures daccs et de traitement qui constituent le logiciel
dexploitation. On doit aussi assurer la scurit des informations stockes dans la base.
En cas dexploitation partage entre plusieurs utilisateurs, il est ncessaire dviter
dventuelles situations conflictuelles [Elmasri, 1989].

2.4.1 Avantages et inconvnients

Lun des avantages cls de la gestion de base de donnes est quil permet
diffrents laboratoires dinspection dutiliser les mmes donnes concernant des pices
telle quillustr dans la figure 2.4. Malheureusement, cette disponibilit prsente aussi des
inconvnients au niveau de la scurit. Pour viter les problmes scuritaires, le
gestionnaire de projet dinspection automatise des pices manufactures sappuie sur des
mcanismes de scurit qui font partie intgrante du SGBD et limitent laccs certains
enregistrements ceux qui en ont lautorisation. Chaque utilisateur (local ou distance)
doit disposer dun code didentification et dun mot de passe qui dfinit un niveau
daccs particulier la base de donnes dinspection.

36

2.4.2 Vue globale du systme dinspection automatise

Notre systme est compos dun ensemble dutilisateurs rpartis gographiquement qui accdent une base centralise telle quillustr ci-dessous.

Base de donnes
d'inspection

Fichiers
Contient

SGBD
Applications
Laboratoires d'inspection automatise des pices

Laboratoire LIVIA
TS - Montral
Qubec

Utilisateur/Gestionnaire privilgi
LABO - TS

Laboratoire LAI
INSA - Lyon
France

Autres Laboratoires
(exemple CNRC)

Utilisateur/Gestionnaire privilgi
LABO - INSA

Figure 2.4: Application partageant la base dinspection

Les donnes de la base dinspection sont stockes sur le serveur

hopfield de

lTS sous forme de fichiers binaires et elles sont partages entre plusieurs utilisateurs
franais et canadiens. Le principal rle du SGBD consiste grer les diffrents accs la
base de donnes.

37

2.4.3 Besoins pour la base de donnes dinspection

La ralisation du projet "Inspection automatise de pices manufactures"


ncessite une structuration dune base de donnes centralise3 pouvant contenir toutes les
informations propos des pices et le dveloppement des logiciels permettant
dinterroger la base. Le dveloppement de deux outils (un pour la partie serveur et un
pour la partie client) tait ncessaire afin de pouvoir interroger distance la base de
donnes.

La partie serveur contient la base de donnes proprement dite avec toutes les
informations stockes sous forme de fichiers binaires. Cette partie rassemble aussi tous
les outils permettant la mise jour de la base.

La partie client est constitue dun programme permettant de questionner le


serveur distance dans le but de visualiser ou de complter la base de donnes et ceci
grce une interface4 graphique simple utiliser.

2.4.4 Buts principaux associs la base de donnes

Les principaux objectifs associs la base sont les suivants:

1) Stocker/Mettre jour les informations sur des pices mcaniques.


2) Consulter la base de donnes.
3) Modifier la base de donnes.
4) Recevoir les requtes envoyes des clients partir de la douille de communication.

Larchitecture centralise consiste en un groupe central fort autour duquel tous les priphriques sont
regroups (ou centralises). Elle prne un noyau central alors que larchitecture distribue en prne
plusieurs.
4
Nous rfrons le lecteur lannexe A.

38

5) Construire une base de donnes dinspection qui est une collection dlments de la
base de donnes, cest--dire chantillonner quelques pices pour un projet
dinspection spcifique (cf. Annexe F: fentre Ajouter une base rduite, page 129).

bien remarquer que la mission principale de la base de donnes lTS


(LIVIA) ou dans un centre de recherche, consiste pouvoir extraire une base de donnes
restreinte5 qui sert manipuler les pices manufactures.

2.5 Systme de gestion de base de donnes (SGBD)

2.5.1 Concepts gnraux des SGBD

Un systme de gestion de base de donnes est un programme informatique


permettant de grer un entrept de donnes. [Rumbaugh et al., 1996]. Cet entrept de
donnes est appel base de donnes et est stock dans un ou plusieurs fichiers (cf. figure
2.4 prcdente). De nombreuses raisons

poussent les dveloppeurs employer des

SGBD:

Reprise sur panne. La base de donnes est protge contre les fautes matrielles, les
pannes de disques et certaines erreurs de lutilisateur.

Partage entre utilisateurs. Comme la base de donnes dinspection est partage entre
plusieurs laboratoires franais et canadiens, plusieurs utilisateurs peuvent accder
cette base en mme temps.

Partage entre application. De multiples programmes dapplications peuvent lire et


crire les donnes dans la mme base.

Scurit. Les donnes peuvent tre protges contre des accs non autoriss en
lecture/criture.

Base de donnes, fonction des besoins de chaque client. Exemple: lors du contrle dimensionnel dune
pice, un client na besoin que du modle CAO (IGES) de la pice.

39

Intgrit. Vous pouvez spcifier des rgles respecter par les donnes. Un SGBD
peut contrler la qualit de ses donnes plus avant et au-del des moyens offerts par
les programmes dapplication.

Extensibilit. Des donnes peuvent tre ajoutes la base sans dranger les
programmes existants. Les donnes peuvent tre rorganises pour augmenter la
rapidit.

Distribution des donnes. La base de donnes peut tre partitionne sur des sites
varis, sur diverses entreprises et diverses plates-formes matrielles. (Cest le cas
dune base de donnes distribue, selon laquelle les donnes sont stockes sur plus
dun site).

2.5.2 Principaux modles sur lesquels sappuient les SGBD

Il existe 4 modles principaux sur lesquels sappuient les systmes de gestion de


base de donnes (SGBD):

Le modle hirarchique.

Le modle rseau.

Le modle relationnel.

Le modle objet reposant sur les concepts des langages de programmation


objets (Java, C++, ). Ce dernier est utilis dans notre projet.

Dans les langages associs aux SGBD on trouve:

Un langage de dfinition de donnes (LDD), permet de dfinir dans le SGBD


les objets reprsents laide du modle de donnes: dfinition des objets,
dfinition des relations, etc.

40

Un langage de manipulation de donnes (LMD), permet de manipuler les


donnes dfinies et charges dans la base: slectionner, insrer, supprimer,
modifier, etc.

2.6 Les systmes de gestion de fichiers (SGF)

2.6.1 Dfinition dun fichier

Folk et Zoellick (1992) dfinissent un fichier comme tant un ensemble


dinformation stockes en mmoire secondaire. Il est utilis pour: stocker, rechercher et
transfrer des donnes. Chacune de ces oprations ncessite un temps de traitement et un
volume de support de stockage.

2.6.2 Les fichiers de la base de donnes

Notre base dinspection contient les fichiers suivants:

ListePiece: Ce fichier contient toutes les pices stockes dans la base de donnes.
ListeAttributConnexion: Ce fichier contient toutes les valeurs des attributs existantes
pour les connexions.
ListeAttributGeon: Ce fichier contient toutes les valeurs des attributs existantes pour
les gons.
GeonExistant: Ce fichier contient tous les gons quil est possible dutiliser.
TypeFichier: Ce fichier contient tous les types existants de fichiers (gif, iges, neu, im,
jpeg, prt, stl, tiff, ras, ...).
BaseReduite: Ce fichier contient la liste des bases dinspection dj cres.

41

2.6.3 Objectifs des SGF

1) Stocker efficacement les donnes. En effet, mieux on range linformation plus vite on
la retrouve. On va donc trier linformation, ltiqueter, dfinir des structures de donnes
pour la localiser: les index.
2) Grer efficacement la mmoire secondaire et permettre de:
Crer un fichier.
Ouvrir un fichier.
Lire un fichier.
crire dans un fichier.
Dtruire un fichier.

2.6.4 Organisation de fichiers

Dans notre projet, la stratgie de rangement des enregistrements dans un fichier


est sous forme de table dadressage calcul (Hashtable). Cette dernire est indexe. La
table dadressage calcul est compos dlments, chaque lment contient une cl
(index) et un contenu. On peut illustrer la table dadressage calcul contenant les fichiers
dune pice comme ci-dessous:

lment = (cl + contenu)

Nom du fichier (Nom).

Nom, Type, Version, ListeTypeFichier,


Commentaire .
c..d: (classe Fichier au complet).

Figure 2.5: Organisation de fichiers de la base de donnes

bien noter que, pour accder un lment, il faut connatre sa cl.

42

2.7 Modle conceptuel de donnes (MCD)

Dans ce modle, les donnes de la base dinspection se prsentent laide dun


diagramme entit-relation dont les principaux composants sont les entits, les relations et
les proprits [Gabay, 1993].

Les entits, dessines sous forme de rectangles, reprsentent diffrents


ensembles dindividus, de choses ou dvnements qui font partie du domaine.

Les relations dessines sous forme de figures arrondies, reprsentent diffrents


ensembles dinteraction qui existent entre des entits et qui font partie du domaine. Une
relation relie un certain nombre dentits (au moins deux) qui sont ses entits
participantes. Sa signification sobtient en formant une phrase avec le verbe qui la
dsigne et les noms des entits qui lui sont relies: la flche place prs de la relation
indique le sens de la lecture entre deux entits.

Une relation entre deux entits est caractrise par:

- cardinalit minimale (gale 0 ou 1): reprsente le nombre de fois minimum


quune occurrence dun objet participe aux occurrences de la relation.
- cardinalit maximale (gale 1 ou N): indique le nombre des fois maximum
quune occurrence de lobjet participe aux occurrences de la relation.

Le modle conceptuel de donnes est illustr dans la page suivante. partir de


ce modle, la modlisation oriente-objet a t btie.

43

Crer

Gestionnaire

1-1

- CompteGest
- Mot de passe
- ...

Utilisateur privilgi

1-1

- CompteUtilisateur
- Mot de passe
1-N - ...

Base de donnes

Accder
1-1

- ListePice
- ListeBaseRduite
- ...

Accder
1-1

1-1

Tlcharger

1-1
1-N

Personaliser

Possder

1-N

Contenir

Fichier
1-1
1-N

1-N
N-M

Base d'inspection
- ListePice
- ...

Avoir

Pice
-

1-1
0-N

tiquettePice
Commentaire
ListeFichier
ListeFichier 2D
...

Nom
Type
Version
...

0-N

Type
- NomType
- Unique

Fichier 2D

2-N

0-N
1-1

1-1

Avoir

Possder
1-1

- Nom
- Type
- Version
- clairage
- ...

1-N

Possder

1-1

Vue Gon
-

IdGon
ListeConnexion
ListeGon
...

Gon utilis

1-N

Demander

1-N

- GonAssoci
- Identifiant
-

0-1
1-1

Demander

Faire partie

1-1
0-N

Connexion
- Couple
- ListeAttribut
- ...
1-1

Gon
0-N

- tiquetteGon
- ListeAttribut
- ...

Constituer

0-N

Correspondre

Couple
- Id-Gon1
- Id-Gon2

Caractriser

1-N

1-1

Attribut
- Nom
- Valeur

Valeur

1-1
1-1

Avoir

1-N

Figure 2.6: Le modle conceptuelle de donnes (MCD)

- Entier
- Signification

44

2.8 Modlisation Oriente-Objet

Le but de lanalyse est de dvelopper un modle de ce que le systme doit faire.


Ce modle est exprim en termes de classes dobjets et de leurs relations [Davis, 1993].
Les donnes de la base sont arranges de la manire suivante:
Base
Attributs
Mthodes

1-N

Fichier 2D

Fait partie

Attributs

Peut avoir

Possder

Mthodes

Pice

1-1

0-N
0-N

Attributs

Type

1-1
Attributs

Possder

Mthodes

Fichier

Peut avoir
1-1

1-1

2-N

0-N

Attributs
Mthodes

Possder
1-1

Vue Geon
Attributs

1-N
Mthodes

Avoir

Avoir

1-N

0-1

Gon Utilis

Connexion

Attributs

Attributs

Mthodes

Mthodes

1-N
0-N

Fait partie

Fait partie
1

Fait partie
1

Gon

Couple

Attributs

Attributs
Mthodes
Mthodes

1
Est caractris

0-N

Attribut
Attributs
Mthodes

Valeur

0-N
Attributs

1-N

Avoir

1-1
Mthodes

Figure 2.7: Le modle Orient-Objet

1-1

Mthodes

45

(Suite)
Modlisation Oriente-Objet

Thread

Hashtable

Attributs

Attributs

Mthodes

Mthodes

Est hrite

MyHashtable
Attributs

Mthodes

Est hrite

Service

ServiceGest

Serveur

Attributs

Attributs

Attributs

Mthodes

Mthodes

Mthodes

Figure 2.7: Le modle Orient-Objet (suite)

Notons que:
-

Service, ServiceGest et Serveur Sont hrits du fil dexcution (Thread).

MyHashtable Est hrite de Hashtable.

Lannexe D dcrit dune faon dtaille toutes les classes avec leurs attributs et
leurs mthodes.

46

2.9 Associations entre les classes de la base

Pour clarifier la modlisation objet de la base dinspection des pices et pour que
cette modlisation soit comprhensible par les utilisateurs du systme dinspection
automatise dans les diffrents laboratoires, il savre prfrable dexpliquer chaque
relation existant entre deux classes dobjets de la modlisation.
1. Pice Fait partie Base
En effet, une pice est un membre de:
plusieurs bases (bases rduites).
Et une base est une collection de:
au minimum une pice.
au maximum plusieurs pices.

2. Pice Peut avoir Fichier


Une pice peut avoir:
au minimum deux fichiers: description CAO et aspect visuel .GIF.
au maximum plusieurs fichiers.
Remarque: Deux pices ne peuvent jamais avoir les mmes fichiers, ni les mmes
versions.

3. Pice Peut avoir Fichier2D


Une pice peut avoir:
au minimum aucun fichier 2D.
au maximum plusieurs fichiers 2D.

4. Fichier Possder Type


- Un fichier possde un et un seul type.
- Un type peut caractriser de 0 N fichiers.

47

5. Fichier2D Possder Type


- Un fichier2D possde un et un seul type.
- Un type peut caractriser de 0 N fichiers2D.

6. Pice Possder Vue gon


- Une pice a une et une seule vue gon.
- Une vue gon correspond une et une seule pice.

7. Vue gon Avoir Connexion


Une vue gon demande:
au minimum aucune connexion, et au maximum
une seule connexion entre un couple de deux gons.
Une connexion est un membre de:
exactement une vue gon.

8. Vue gon Avoir Gon utilis


Une vue gon peut avoir:
au minimum un gon utilis.
au maximum plusieurs gons utiliss.
Un gon utilis est un membre de:
au minimum une vue gon.
au maximum plusieurs vues gons. Par exemple, le gon 11
peut tre dans les pices 3, 5, 6, 9 et 10.

9. Connexion Fait partie Couple


- Un connexion correspond un couple de 2 identificateurs (id1, id2).
- Chaque couple a au plus une connexion.

48

10. Gon Fait partie Gon utilis


Un gon fait partie de:
au minimum aucun gon utilis.
au maximum plusieurs gons utiliss.

11. Attribut Fait partie Connexion


Une connexion est un constitu de:
au minimum un attribut.
au maximum plusieurs attributs.
Un attribut est un composant de:
au minimum aucune connexion.
au maximum plusieurs connexions.

12. Gon Est caractris Attribut


Chaque gon identifi est caractris par:
au minimum aucun attribut.
au maximum plusieurs attributs (pour le moment 5 attributs).

13. Attribut Avoir Valeur


- Chaque attribut doit avoir une et une seule valeur.
- Une valeur correspond au minimum un seul attribut et au maximum plusieurs
attributs. Par exemple la valeur dattribut 1 correspond aux noms attributs: Axe,
Matrialit, Artes, Symtrie et Dimension .

Le chapitre suivant traite les mcanismes de communication (Client-Serveur)


partir de la douille afin dinterroger la base de donnes localement et distance.

CHAPITRE 3
ARCHITECTURE CLIENT-SERVEUR DE LA BASE DE DONNES

Nous nous intressons dans ce chapitre approfondir les concepts relis la


communication entre un client et un serveur partir dune douille (socket). Ce chapitre
introduit le protocole TCP/IP (Transmission Control Protocol/Internet Protocol),
comme il clarifie larchitecture Client/Serveur utilise. Il analyse le principe dutilisation
dune douille. Enfin, il liste les requtes utilises partir des clients pour questionner la
base de donnes locale et distance du serveur.

3.1 Les douilles dUNIX

Le rle dune douille est semblable un appareil de tlphone alors que le


protocole TCP/IP est le langage utilis pour la communication. Donc il est important de
bien comprendre le fonctionnement de chacun de ces composants.

3.1.1 Dfinition

Les douilles sont des mcanismes dinterface de programmation qui permettent


aux programmes dchanger des donnes. Les douilles sont la frontire entre lespace
de lutilisateur et lespace noyau dUNIX.

50

Remarque:

Au niveau de Windows NT, la douille fonctionne de la mme faon que UNIX


sauf quelle fait son appel Win Sock.

3.1.2 Introduction

Avec les protocoles TCP, une connexion est entirement dfinie par les cinq
paramtres suivants:

le type du protocole TCP,


ladresse Internet de la premire machine,
le numro du port associ au processus sexcutant sur la premire machine,
ladresse Internet de la seconde machine,
le numro du port associ au processus sexcutant sur la seconde machine.

Le type du protocole tant commun aux deux applications, cela se traduit localement sur
chaque machine, par trois valeurs:

type du protocole TCP,


adresse Internet,
numro du port associ au processus.

Ces trois informations doivent tre fournies au systme lors de la cration dune douille.

La connexion, du moins dans sa phase dtablissement, nest pas symtrique. On


appelle:
serveur, une application qui attend les demandes douverture de connexion,
client, une application qui effectue ces demandes douverture.

51

Sur un serveur devront tre dfinis le protocole utilis et le numro du port local
sur lequel les connexions devront tre attendues. Pour le client, devront tre dfinis le
protocole, ladresse de la machine distante et le numro de port sur lequel elle attend les
connexions. Les autres donnes seront dduites par le systme. Ainsi le client et le
serveur connaissent leur propre adresse. Le numro de port du client sera allou
dynamiquement par le systme dexploitation en fonction des numros de port dj
utiliss localement.

3.1.3 Les primitives TCP pour les douilles

Les primitives TCP pour les douilles permettent:

Lattente passive de connexions TCP inities par des applications distantes;

Linitiation de connexions actives vers des applications distantes en attente


passive;

Lacceptation ou le refus dune connexion initie par une application distante;

Lenvoi et la rception de donnes sur une connexion tablie;

La terminaison brutale ou ordonne dune connexion tablie;

Le test dune connexion.

3.1.4 Enchanement des procdures

En thorie, lutilisation des fonctions manipulant les douilles est aussi simple que
la manipulation des fichiers sous UNIX. On retrouve dailleurs certaines commandes
communes. Lapparente difficult vient du fait quil faille enchaner plusieurs primitives
pour arriver un rsultat.

52

3.1.4.1 Mode connect

La figure 3.1 ci-dessous, indique lenchanement des primitives pour le mode


connect.

SERVEUR

CLIENT

douille

bind

douille

listen

bind

accepter

tablissement de la connexion

connecter

Envoi d'une requte


lire

crire

fermer

crire

Rponse

Fermeture

lire

fermer

Figure 3.1: Enchanement des primitives pour le mode connect

53

Pour lapplication serveur:

lappel systme douille permet dindiquer au systme que lapplication dsire


communiquer avec un autre programme. Cet appel systme retourne un
identificateur qui sera utilis dans tous les autres appels systme faisant rfrence
cette douille;

lappel systme bind permet lapplication de fournir au noyau les paramtres


ncessaires au fonctionnement de la douille. Pour un serveur, il sagit du port sur
lequel il attendra les demandes de connexion. Les douilles sont normalement
utilises pour changer des donnes entre deux applications. Dans le cas dune
application serveur, les douilles servent attendre les demandes de connexions;

lappel systme listen permet de placer la douille et le protocole associ dans un tat
dattente de requtes de connexion;

lappel systme accepter est bloquant. Il place le programme en attente effective de


requte de connexion. Quand une connexion est tablie par un client, lappel systme
accepter se dbloque et retourne un identificateur de douille sur lequel des donnes
pourront tre changes;

les appels systme lire et crire permettent lchange de donnes. Il sagit des
mmes instructions que pour les fichiers;

lappel systme fermer permet de fermer localement la douille. Sil sagit de la


dernire rfrence la connexion, cela se traduit par lenvoi sur le rseau de la
squence de fermeture.

54

Pour lapplication client, la cration de la douille est identique celle du serveur:

lappel systme bind est facultatif car, dans la plupart des cas, le numro de port
local identifiant la connexion peut tre allou dynamiquement par le systme. Dans
le cas contraire, lappel systme bind doit tre utilis comme pour le serveur;

lappel systme connecter permet douvrir une connexion avec une application
serveur. Cette instruction va se traduire par lenvoi de la squence douverture sur le
rseau. Si aucun message derreur nest retourn, la connexion est tablie.

partir de louverture de la connexion, le client et le serveur ont un


comportement symtrique. Les instructions sont donc les mmes [Toutain, 1996].

3.2 Le protocole TCP/IP

Le protocole TCP1 (Transmission Control Protocol) est un protocole plus sr


bti au dessus du protocole IP (Internet Protocol). Les donnes sont transmises sous
forme de paquets. Le rle de TCP est de scuriser lenvoi et la rception des paquets par
un systme daccus de rception. Cest un protocole de type orient connexion,
cest dire que les changes de donnes ont lieu de faon fiables, aprs ngociation
prliminaire des caractristiques de transfert. En particulier, le protocole TCP garde de
lui mme une copie des donnes mises tant que celles-ci nont pas t reues par le
destinataire. En plus, le TCP garantit lintgrit des donnes en ajoutant un code de
vrification dans chaque paquet envoy [Umar, 1993].

Notre application de communication (Client/Serveur) via IP, il sagit dutiliser un protocole de transport

fiable (TCP: Transmission Control Protocol).

55

3.2.1 TCP/IP et JAVA

Les sockets Java sont des mcanismes de communication de plus bas niveau que
les URLs2 bien que toujours indpendantes de la configuration matrielle et logicielle
utilise. Une douille est une liaison point point entre un serveur et un client (le code
des programme est donc lgrement diffrent). La communication est full-duplex (en
fait, les communications sont probablement tamponnes avant dtre envoyes, do
lapparence du full duplex l o TCP/IP ne sait faire que du half-duplex) et le protocole
dchange des informations est laisse la charge du programmeur [Umar, 1993].

3.2.2 Principe dutilisation des douilles

Les douilles, mcanismes de communication entre processus, fonctionnent, que


les processus soient sur la mme machine ou non. Les processus changent des donnes
travers un rseau, local ou distant.

Le principe dutilisation des douilles est du type client-serveur: un processus


dclare accepter les connexions des clients, et lorsquun client se prsente, une douille
est cre pour tablir le lien entre les deux.

Le mcanisme des douilles nest pas propre Java, mais Java en fournit une
implmentation portable, ralise grce aux classes: ServerSocket (qui permet de crer
un serveur lcoute des connexions venir) et Socket (qui permet dinitialiser la
connexion avec un serveur) [Macary et Nicolas, 1996].

Une URL dsigne une ressource dans un rseau sous le format suivant:

protocole://nom-hote[:port]/chemin/nom-fichier # section. En Java, lURL nest pas reprsent par une


chane de caractre mais par une instance de la classe java.net.URL.

56

3.2.2.1 Ct Client

Pour crer la douille du ct du programme client, le programmeur doit donner


le nom de la machine o se trouve le serveur et le port o lon doit se connecter, qui est
un numro arbitraire3 dcrivant le type de service:
ma_douille = new Socket( hopfield.livia.etsmtl.ca, 12000)

3.2.2.2 Ct Serveur

De son ct, le serveur doit crer un serverSocket en indiquant son numro de


port, puis attendre quun client demande une connexion qui peut alors tre accepte
(cf. Figure 3.2). Des flux dentre/sortie sont ensuite dfinis et les changes peuvent
commencer selon le protocole choisi.

Crer le serveur de la
douille ( serverSocket)

Crer la douille

Accepter

changer

changer

Fermer

Fermer

Machine serveur

Machine client

Figure 3.2: Scnario entre client et serveur

Chaque application doit utiliser son propre numro de port entre ceux qui sont disponibles. Ainsi, on ne

peut pas partager le mme port entre les diffrentes applications dans un seul serveur.

57

3.3 Architecture Client-Serveur

Le mode de communication quun hte tablit avec un autre hte qui fournit un
service quelconque est dsign par le terme Client/Serveur. Comme la base de donnes
est partage entre plusieurs laboratoires franais et canadiens, il a fallu grer les accs
la base par un systme de Client/Serveur. Les notions de base de larchitecture clientServeur sont:

Client: Processus demandant lexcution dune opration un autre processus par un


envoi de message et attendant la rponse cette question par un message en retour.

Serveur: Processus accomplissant une opration sur demande dun client et


transmettant la rponse ce client.

Requte: Message transmis par un client un serveur dcrivant lopration


excuter pour le compte du client.

Rponse: Message transmis par un serveur un client suite lexcution dune


opration contenant les paramtres de retour de lopration.

La figure 3.3 ci-dessous illustre larchitecture Client/Serveur:


Serveur

Client
Envoie la requte

Reoit la requte

Application

Opration
Reoit la rponse

Envoie la rponse

Figure 3.3: Dialogue Client-Serveur

58

3.3.1 La rpartition Client-Serveur

Ici , on part du gnral des sections prcdentes au cas particulier du projet.


Le niveau de communication entre le client et le serveur se fait par chanes de caractres
et par octets tel quil est illustr la figure 3.4. En effet, un client envoie une requte
sous forme dune chane de caractres au serveur partir de la douille. Le serveur reoit
la requte, la traite, et puis il retourne la rponse au client.

Lors du transfert ou tlchargement des fichiers, la communication


Client/Serveur se fait octet par octet dans la mme douille. Pratiquement le client est
connect avec le programme serveur qui se trouve sur hopfield.livia.etsmtl.ca. Il fait
tlcharger les fichiers pour les utiliser chez lui.
Communication par chane de
caractres

Lyon-France
ts-Qubec

Client

Serveur

Interface

Base de donnes

Transfert de fichiers par octets


(Tlchargement des fichiers)

Figure 3.4: Rpartition Client-Serveur


Remarque: Un client ne peut jamais accder directement au serveur hte4. Il peut
accder au canal (en mode de lecture ou bien dcriture), de mme pour le serveur (cf.
figure 3.5 de la page suivante).
4

Un rseau informatique est constitu dun ensemble dordinateurs et de priphriques interconnects.

Un nud du rseau qui correspond un ordinateur est gnralement appel hte.

59

Client

La douille

Canal

Canal

Serveur hte

Figure 3.5: Client-Serveur et Canal

Le dveloppement de deux logiciels (un pour la partie serveur et un pour la partie


client) tait donc ncessaire. La partie serveur est compose dune base de donnes
incluant toutes les informations sous forme de fichiers binaires. Par contre, la partie ct
client est constitue dun programme qui permet dinterroger5 la base de donnes
distance. Les logiciels permettent aussi dattacher6 des fichiers une pice. Il a donc
fallu prvoir le transfert de ces fichiers sous forme doctets (bytes) dun module un
autre.

3.4 Liste des requtes acceptes par le serveur

Le client et le serveur peuvent alors communiquer lun avec lautre en crivant et


en lisant sur les douilles. Ainsi pour questionner la base, il suffit denvoyer des requtes
au serveur (voir annexe E).

Nous rfrons notre lecteur lannexe A qui illustre cet effet.

Du ct serveur, on vous invite voir la fentre Ajouter un fichier une pice dans lannexe F,

page 119, et du ct client, vous pouvez consulter lannexe E.

60

Enfin, on peut dire quavec la douille JAVA et le protocole de communication


TCP/IP, nous avons assur un haut niveau dinterrogation qui est caractris par un court
temps de rponse. Par exemple, quand un utilisateur distant veut tlcharger chez lui des
icnes de format .GIF de la base de donnes, nous avons remarqu que cette opration se
fait presque instantanment.

3.5 Les fentres utilises pour la base de donnes

Lannexe F traite des interfaces usager graphiques partir des clients


(utilisateurs) et des gestionnaires qui possdent diffrents droits dutilisation. Pour plus
de dtails, voir la matrice des flux entre acteurs (Annexe B), ainsi que le manuel
dutilisation et les droits daccs aux programmes de la base de donnes dinspection
(Annexe C).

CHAPITRE 4

CONCLUSION ET RECOMMANDATION

Dans ce travail de recherche, nous avons t chargs de mettre au point,


premirement, une base de donnes Oriente-Objet (OO) sous forme de fichiers binaires
en utilisant le langage JAVA et deuximement les outils permettant de linterroger
distance dans le but dune inspection automatise de pices manufactures.
Au dbut, le choix dune base de donnes tait un problme difficile rsoudre.
En effet, lachat dun tel logiciel est coteux et doit tre rentabilis. Ainsi trois
propositions taient disponibles:
-

la premire tait de crer la base de donnes en JAVA ou C++ avec un systme


de requtes pour questionner la base distance. Ce systme comporte un risque dans
le sens o le temps dattente dune requte peut tre plus long quavec un systme
de gestion de base de donnes (SGBD).

la deuxime tait de crer un SGBD Oracle: il sagit dun systme relationnel


souvent utilis aussi bien dans un cadre acadmique que professionnel mais celui-ci
reste trs onreux.

la troisime tait de crer un SGBD O2: cest un systme de base de donnes OO.
Ce dernier nest pas encore trs rpandu dans les entreprises (ceci est d la
nouveaut de ce type de SGBD), mais on peut le trouver dans certaines universits
canadiennes (Laval, Alberta et au CRIM).

De faon gnrale, une base de donnes OO semble mieux correspondre notre projet.

62

Nous avons remarqu quau laboratoire du LIVIA lTS, le personnel travaille


gnralement en C, C++ ou JAVA sous Unix. Dailleurs, il nexiste pas de SGBD assez
performant permettant le dveloppement de notre application. Suite ces constatations,
notre choix final sest arrt sur un dveloppement utilisant le langage JAVA dans
lenvironnement de dveloppement JDK de SUN.
En utilisant JAVA, notre base de donnes est OO et ne dpend daucune plateforme. Pour bien spcifier la modlisation de notre systme, on a utilis lanalyse
Oriente-Objet (AOO) qui a permis de clarifier les divers problmes rencontrs au cours
de notre projet. Dans ce rapport, lAOO a permis dorganiser lanalyse et la spcification
en utilisant des mthodes dorganisation plus proches de la pense des individus.

Pour optimiser la BD de faon plus rationnelle et plus efficace, nous avons pens
utiliser des fichiers en format binaire. Ces derniers sont plus difficiles dchiffrer: il faut
connatre la cl (index) pour avoir le contenu des donnes (voir 2.6.4, page 41). De
plus, le format binaire est plus compact. Il sagit l dune caractristique trs importante
pour ce genre de fichiers et comme notre BD est centralise entre plusieurs laboratoires,
il apparat beaucoup mieux dutiliser les fichiers binaires. En effet, les accs se feront
ainsi plus rapidement.

En dfinitive, pour quun client autoris interroge distance notre BD, nous
avons besoin dun systme de requtes assez performant. Avec la douille JAVA,
utilisant le protocole de communication TCP/IP, nous avons bien assur un haut niveau
dinterrogation qui est caractris par un court temps de rponse. Par exemple, quand un
utilisateur distant veut tlcharger chez lui des icnes de format .GIF de la BD, nous
avons remarqu que cette opration se fait presque instantanment.

63

Avec ce tlchargement rapide et avec la facilit des accs la BD depuis


nimporte quel endroit, nous pouvons affirmer que nous avons russi atteindre des
rsultats similaires dautres types de BD (Oracle et O2 par exemple) et ceci en utilisant
la douille de JAVA et le protocole de communication TCP/IP.

Durant la ralisation du projet, le problme majeur rside dans le tlchargement


des donnes dans un laps de temps trs court.

Des amliorations sont possibles pour augmenter la performance de ce systme.


Une technologie prometteuse est le concept des Agents-Mobiles (AM). Un agent mobile
aura le rle de lancer les requtes la BD. Lavantage des AM est la rduction de la
bande passante ncessaire pour la communication. Par exemple sil y a plusieurs accs
la BD, nous avons un risque de congestion dans le rseau informatique. Avec les AM, il
nest plus ncessaire de maintenir une communication constante avec la BD. Les AM
sont autonomes, et peuvent excuter les oprations sur la BD puis revenir la source
avec les informations dsires. Notons que, chez les AM, il existe des normes de
scurits comparables des systmes traditionnels.

En contrepartie, cette innovation technologique est trs jeune. Nous avons vit
de lutiliser comme stratgie dimplantation dans notre projet. Cest une technologie
rcente et elle est encore au stade de dveloppement et de validation. Son usage
constitue un risque potentiel.

BIBLIOGRAPHIE

[1] Binford, T.0. (1971). Visual perception by computer. Proc. of IEEE Conf. on
Systems Science and Cybernetics, Miami, F.L.

[2] Biederman, I. (1985). Human image understanding: recent research and a theory.
Computer Graphics, Vision, and Image Processing, 32, pp. 29-73.

[3] Biederman, I. (1987). Recognition by components: a theory of human image


understanding. Psychological Review, 94, pp. 118-122.

[4] Dickinson, S., Pentland, A., Rosenfeld, A. (1992). 3D shape recovery using
distributed aspect matching. IEEE Trans. On Pattern Analysis and Machine Intelligence,
14(2), pp. 174-198.

[5] Grgoire, N. (1996). tude des gons dans la reconnaissance de forme en vision
artificielle, Rapport de projet synthse.

[6] Lepage, R., Grgoire, N., Lavigne, D. (1998). Dfinition des gons et de leurs
attributs, Rapport dtape.

[7]

KIMWon et Autres, (1991). A Distributed Object-Oriented Database System

Supporting Shared And Private Databases. ACM Transaction on Information Systems,


Vol.9, No 1, Janvier 1991, pp.31-51.

65

[8] Hurtubise, R. (1984). La gestion de linformation, Agence dArc Inc., Montral,


Qubec.

[9] Coad, P., Yourdon, E. (1992). Analyse oriente objets. Masson, Paris & Prentice
Hall, London.

[10] Rumbaugh, J. et al. (1996). OMT Modlisation et conception orientes objet.


Masson, Paris & Prentice Hall, London.

[11] Taylor, D.A. (1993). Technologie oriente objet: Guide du dcideur informatique.
Addison-Wesley : France.

[12] Hess, D.A. (1993). A Primer of Object-Oriented Technology. DATAPRO


Managing Information Technology. Software 7685. 1-9.

[13]

Jacobson, I., Christerson, M., Jonsson, P. et Overgaard, G. (1993). Le gnie

logiciel orient objet: une approche fonde sur les cas dutilisation. Addison-Wesley,
France.

[14] Macary, J-F., Nicolas, C. (1996). Programmation Java. Eyrolles, Paris.

[15] Desfray, P. (1997). Modlisation par objets. Masson, Paris.

[16] Gunton, T. (1993). Technologies Des Systmes Dinformation. Masson, Paris.

[17] Elmasri, N. (1989). Fundamentals of Database System. IEEE Computer Society


Press, Los Alamitos, California.

66

[18] Folk, M.J.,

Zoellick, B. (1992). File Structure. Addisson-Wesley Publishing

Company, Inc.

[19] Gabay, j. (1993). Apprendre et pratiquer Merise. Masson, Paris.

[20] Davis, A.M. (1993). Software requirements: objets, functions, and states. PTR
Prentice Hall.
[21] Toutain, L. (1996). Rseaux locaux et Internet. Herms, Paris.

[22] Umar, A. (1993). Distributed Computing and Client/Serveur Systems, Prentice


Hall.

ANNEXE A

DIALOGUE CLIENT-SERVEUR

68

Terminal

Window

Edit

Options

<wajdi godel>1%clientSI
ListePiece
Piece1 commentaire Piece Un
Piece2 commentaire Piece Deux
Piece3 commentaire Piece Trois
...
Piece10 commentaire Piece Dix
fin
ListeGeonExistant
Geon1
Geon2
Geon3
...
Geon72
fin

AjouterGeon 2 3
fin
AjouterFichier 1 piece1 prt fichier d'extension prt associ la pice numro 1
fin

listecompleteGeon
commande inconnue
fin

Interface graphique entre client et serveur

ANNEXE B

INVENTAIRE DES FLUX ET MATRICE DES FLUX DE DONNES

70

B1) Inventaire des flux:

Pice (Base de donnes).

Pice (Base de travail).

Fichier 2D.

Liste de gons existants.

Gons dune pice.

Connexion entre 2 gons dans une pice.

Liste attributs gon.

Liste attributs connexion.

Attributs dune connexion.

71

B2) Matrice des flux des donnes:

Aprs avoir inventori les flux entre acteurs, ceux-ci sont prsents ainsi:
De:

Client (utilisateur)

Gestionnaire de la Base

Vers:
Pice (Base de donnes)

de donnes
-

Pice (Base de travail)

Ajouter pice
Tlcharger images
Ajouter fichier CAO
la liste des fichiers
Mettre jour fichier CAO
Supprimer fichier CAO
Ajouter fichier 2D
Supprimer fichier 2D
Tlcharger images
Tlcharger fichier CAO
Tlcharger fichier 2D
Rcuprer ancienne
version 2D
Visualiser informations
Choisir rpertoire

Ajouter/supprimer base
Ajouter pice
Supprimer pice de la
base de travail
Tlcharger images
Spcifier rpertoire local
Tlcharger fichiers
Choisir rpertoire
Visualiser
Limiter

Ajouter pice
Supprimer pice
Ajouter fichier CAO
la liste des fichiers
Mettre jour fichier CAO
Supprimer fichier CAO
Ajouter fichier 2D
Supprimer fichier 2D
Tlcharger images
Tlcharger fichier CAO
Tlcharger fichier 2D
Rcuprer ancienne
version 2D
Visualiser informations
Choisir rpertoire
Ajouter/supprimer base
Ajouter pice
Supprimer pice de la
base de travail
Tlcharger images
Spcifier rpertoire local
Tlcharger fichiers
Choisir rpertoire
Visualiser
Limiter

72

De:

Client (utilisateur)

Gestionnaire de la Base

Vers:

de donnes
-

Visualiser type fichier


Modifier type fichier
Visualiser type dclairage
Modifier type dclairage
Ajouter type
Mettre jour type
Supprimer type
Tlcharger
Rcuprer ancienne version
Ajouter clairage
Supprimer clairage
Rechercher rpertoire

Visualiser type fichier


Modifier type fichier
Visualiser type dclairage
Modifier type dclairage
Ajouter type
Mettre jour type
Supprimer type
Tlcharger
Rcuprer ancienne version
Ajouter clairage
Supprimer clairage
Rechercher rpertoire

Visualiser
Dtails/gon

Ajouter gon
Supprimer gon
Visualiser
Dtails/gon

Gons dune pice

Ajouter gon
Supprimer gon
Dtails/gon

Ajouter gon
Supprimer gon
Dtails/gon

Connexion entre 2 gons


Dans une pice

Ajouter connexion
Supprimer connexion
Visualiser pice
Dtails/connexion

Ajouter connexion
Supprimer connexion
Visualiser pice
Dtails/connexion

Visualiser

Ajouter/Modifier attribut
Supprimer attribut
Ajouter/Modifier valeur
Supprimer valeur
Visualiser

Visualiser

Ajouter/Modifier attribut
Supprimer attribut
Ajouter/Modifier valeur
Supprimer valeur
Visualiser

Ajouter attribut
Modifier attribut
Supprimer attribut

Ajouter attribut
Modifier attribut
Supprimer attribut

Fichier 2D

Liste de gons existants

Liste attributs gon

Liste attributs connexion

Attributs dune connexion

ANNEXE C

MANUEL DUTILISATION

74

C.1) Programmes:
Il y a cinq programmes:
serveur: qui contient et qui gre la base de donnes.
client: interface graphique permettant la consultation et la mise jour de la base
par un utilisateur privilgi.
clientSI: programme sans interface permettant la consultation et la mise jour de
la base par un utilisateur privilgi.
clientGest: interface graphique permettant la consultation et la mise jour de la base
par un gestionnaire.
clientSIGest: programme sans interface permettant la consultation et la mise jour de
la base par un gestionnaire.
clientSI et clientSIGest attendent les commandes sur l'entre standard et affichent les
rsultats sur la sortie standard (voir annexe A).

75

C2) Accs aux programmes:

Pour appeler le programme client, il faut taper la commande client dans la fentre
(terminal) dUnix sur une machine de LIVIA.

Pour avoir un programme client fonctionnel sur une autre machine localise en
dehors du rseau (livia.etsmtl.ca), il faut:

1) transfrer les excutables client sur la machine externe et dmarrer la commande


client.
2) permettre laccs par telnet sur les machines de LIVIA; cette approche ncessite que
lusager de lextrieur a un compte actif sur ces machines.
La premire approche est plus conforme loptique de dveloppement dune
application Client-Serveur utilisant le port http (80).

la suite dune interruption de service au LIVIA, pour activer le serveur de la base


de donnes, il faut se connecter sur hopfield et excuter la commande serveur.
doit tre fait par quelquun qui est membre du groupe dinspection.

Pour se connecter en client-Gestionnaire: Cest le mme processus que client, sauf


que la commande est clientGest.

ANNEXE D

LE DICTIONNAIRE DES CLASSES

77

Cet annexe dcrit les principales classes du modle objet de la base de donnes
des pices. Chaque classe possde des attributs et des mthodes cites ci-dessous. Le
symbole * devant un nom dattribut indique une variable de classe.
Variable de classe: Chaque objet possde ses propres attributs. Il est possible que tous
les objets dune mme classe aient des attributs en commun: ce sont les attributs de
classe, introduits par le mot-cl static. La modification dun attribut static est
immdiatement prise en compte par les autres objets, puisquils le partagent.
D.1 Classe Base
D.1.1 Description: Reprsente la base qui contient toutes les pices.
D.1.2 Attributs
Nom
* ListeBaseReduite
ListePiece

Description
Liste des bases rduites.
Liste des pices de la base.

D.1.3 Constructeur
D.1.3.1 Constructeur: Base()
Description: Cre la base.
D.1.4 Mthodes
D.1.4.1 Mthode: afficheListe()
Description: Permet de visualiser la liste des bases rduites sous
forme de chane; utilise pour construire les listes.
D.1.4.2 Mthode: ajouterBase(String nom, Vector tableau)
Description: Ajoute une nouvelle base la liste des bases rduites.
D.1.4.3 Mthode: ajouterConnexion(int etiquettePiece, int id1, int id2,
String nom, int valeur)
Description: Ajoute une connexion une pice de la base.
D.1.4.4 Mthode: ajouterFichier(int etiquettePiece, String nom, String type)
Description: Ajoute un fichier une pice de la base.
D.1.4.5 Mthode: ajouterFichier(int etiquettePiece, String nom, String type,
String commentaire)
Description: Ajoute un fichier une pice de la base.
D.1.4.6 Mthode: ajouterFichier2D(int etiquettePiece, String nom,
String type, Vector eclairage, int camera)
Description: Ajoute un fichier 2D une pice de la base.

78

D.1.4.7 Mthode: ajouterFichier2D(int etiquettePiece, String nom,


String type, Vector eclairage, int camera,
String commentaire)
Description: Ajoute un fichier 2D une pice de la base.
D.1.4.8 Mthode: ajouterGeon(int etiquettePiece, int etiquetteGeon)
Description: Ajoute un gon une pice de la base.
D.1.4.9 Mthode: ajouterNouveauGeon(int etiquette)
Description: Ajoute un nouveau gon la liste des gons existants.
D.1.4.10 Mthode: ajouterNouvelAttributConnexion(String nom, int valeur,
String signification)
Description: Ajoute une nouvelle valeur (et nouvel attribut si
inexistant ) la liste des attributs connexions existants.
D.1.4.11 Mthode: ajouterNouvelAttributGeon(String nom, int valeur,
String signification)
Description: Ajoute une nouvelle valeur (et nouvel attribut si
inexistant ) la liste des attributs gons existants.
D.1.4.12 Mthode: ajouterPiece(Piece piece)
Description: Permet dajouter une pice la base de donnes.
D.1.4.13 Mthode: ajouterType(String nom, int unique)
Description: Permet dajouter un nouveau type la liste des types
de fichiers existants.
D.1.4.14 Mthode: ajouterType2D(String nom)
Description: Ajoute un nouveau type la liste des types de fichiers
2D existants.
D.1.4.15 Mthode: ajouterTypeEclairage(String nom)
Description: Ajoute un nouveau type la liste des types dclairage
existants.
D.1.4.16 Mthode: ancienneVersionFichier(int etiquettePiece, String nom)
Description: Permet de revenir lancienne version du fichier si
possible.
D.1.4.17 Mthode: charger(int mode)
Description: Permet deffectuer le chargement de la base partir
des fichiers binaires.
D.1.4.18 Mthode: commentaireFichier(int etiquettePiece, String nom)
Description: Rcupre le commentaire dun fichier associ une
pice.
D.1.4.19 Mthode: commentaireFichier2D(int etiquettePiece, String nom)
Description: Rcupre le commentaire dun fichier 2D associ une
pice.
D.1.4.20 Mthode: ContientGeon(int idGeon)
Description: Rcupre la liste des pices contenant le gon sous
forme dune chane de caractres.
D.1.4.21 Mthode: enregistrer(int mode)
Description: Enregistre la base dans des fichiers binaires.

79

D.1.4.22 Mthode: getListe()


Description: Rcupre la liste des pices.
D.1.4.23 Mthode: getListeBase()
Description: Rcupre la liste des bases rduites.
D.1.4.24 Mthode: getListePiece()
Description: Rcupre la liste des pices de la base.
D.1.4.25 Mthode: getPiece(int etiquette)
Description: Rcupre une pice partir de son tiquette.
D.1.4.26 Mthode: limiterBase(String nom)
Description: Limite la base que lon va utiliser la base rduite
spcifie.
D.1.4.27 Mthode: limiterBase(Vector arg)
Description: Limite la base que lon va utiliser aux pices passes
en argument.
D.1.4.28 Mthode: ListeAttributConnexion(int etiquette, int id1, int id2)
Description: Rcupre la liste des attributs de la connexion sous
forme dune chane de caractres.
D.1.4.29 Mthode: ListeAttributConnexionExistant()
Description: Rcupre la liste des attributs connexions existants
sous forme dune chane de caractres.
D.1.4.30 Mthode: ListeAttributGeon(int etiGeon)
Description: Rcupre la liste des attributs du gon sous forme
dune chane de caractres.
D.1.4.31 Mthode: ListeAttributGeonExistant()
Description: Rcupre la liste des attributs gons existants sous
forme dune chane de caractres.
D.1.4.32 Mthode: ListeConnexion(int etiquette)
Description: Rcupre la liste des connexions dune pice sous
forme dune chane de caractres.
D.1.4.33 Mthode: ListeFichier(int etiquette)
Description: Rcupre la liste des fichiers sous forme dune chane
de caractres.
D.1.4.34 Mthode: ListeFichier2D(int etiquette)
Description: Rcupre la liste des fichiers 2D sous forme dune
chane de caractres.
D.1.4.35 Mthode: ListeFichierGif()
Description: Rcupre la liste des fichiers Gif de la base sous forme
dune chane de caractres.
D.1.4.36 Mthode: ListeFichierType(String type)
Description: Rcupre la liste des fichiers du type spcifi de la
base sous forme dune chane de caractres.
D.1.4.37 Mthode: ListeGeon(int etiquette)
Description: Rcupre la liste des gons dune pice sous forme
dune chane de caractres.

80

D.1.4.38 Mthode: ListeGeonExistant()


Description: Rcupre la liste des gons existants sous forme dune
chane de caractres.
D.1.4.39 Mthode: ListePiece()
Description: Rcupre la liste des pices sous forme dune chane
de caractres.
D.1.4.40 Mthode: ListeTypeEclairage()
Description: Rcupre la liste des types dclairage sous forme
dune chane de caractres.
D.1.4.41 Mthode: ListeTypeFichier()
Description: Rcupre la liste des types des fichiers sous forme
dune chane de caractres.
D.1.4.42 Mthode: ListeTypeFichier2D()
Description: Rcupre la liste des types des fichiers 2D sous forme
dune chane de caractres.
D.1.4.43 Mthode: ListeTypeFichier2DPlus()
Description: Rcupre la liste des types des fichiers sous forme
dune chane de caractres avec le commentaire (Fichier 2D).
D.1.4.44 Mthode: ListeTypeFichierNonUnique()
Description: Rcupre la liste des types des fichiers non unique
sous forme dune chane de caractres.
D.1.4.45 Mthode: maxGeon()
Description: Rcupre la plus grande tiquette de gon existant +1.
D.1.4.46 Mthode: modifierAttributConnexion(int etiquettePiece, int id1,
int id2, String nom, int valeur)
Description: Ajoute un attribut et sa valeur une connexion ou
modifie la valeur si lattribut existe dj dans la connexion.
D.1.4.47 Mthode: modifierAttributGeon(int idGeon, String nom, int valeur)
Description: Ajoute ou modifie la valeur dun attribut un gon de
la liste des gons existants.
D.1.4.48 Mthode: modifierCommentaireFichier(int etiquettePiece,
String nom, String comment)
Description: Modifie le commentaire dun fichier dune pice de la
base sans modifier sa version.
D.1.4.49 Mthode: modifierCommentaireFichier2D(int etiquettePiece,
String nom, String comment)
Description: Modifie le commentaire dun fichier 2D dune pice de
la base sans modifier sa version.
D.1.4.50 Mthode: modifierFichier(int etiquettePiece, String nom,
String comment)
Description: Modifie un fichier dune pice de la base, modifie la
version et le commentaire.

81

D.1.4.51 Mthode: modifierFichier2D(int etiquettePiece, String nom,


String comment)
Description: Modifie un fichier 2D dune pice de la base, modifie
la version et le commentaire.
D.1.4.52 Mthode: NbContientGeon(int idGeon)
Description: Rcupre le nombre de pices contenant le gon sous
forme dune chane de caractres.
D.1.4.53 Mthode: remplissage()
Description: Cre un fichier remplissage qui contient tous les ordres
ncessaires pour reconstruire la base de donnes.
D.1.4.54 Mthode: setListe(MyHashtable table)
Description: Dfinit la liste des pices.
D.1.4.55 Mthode: setListeBase(MyHashtable liste)
Description: Met jour la liste des bases rduites.
D.1.4.56 Mthode: setListePiece(MyHashtable liste)
Description: Dfinit la liste des pices de la base.
D.1.4.57 Mthode: supprimerAttributConnexion(int etiquettePiece, int id1,
int id2, String nom)
Description: Supprime un attribut et sa valeur dune connexion.
D.1.4.58 Mthode: supprimerAttributGeon(int idGeon, String nom)
Description: Supprime un attribut dun gon de la liste des gons
existants.
D.1.4.59 Mthode: supprimerBase(String nom)
Description: Supprime la base rduite de la liste.
D.1.4.60 Mthode: supprimerConnexion(int etiquettePiece, int id1, int id2)
Description: Supprime une connexion une pice de la base.
D.1.4.61 Mthode: supprimerFichier(int etiquettePiece, String nom)
Description: Supprime un fichier une pice de la base.
D.1.4.62 Mthode: supprimerFichier2D(int etiquettePiece, String nom)
Description: Supprime un fichier 2D une pice de la base.
D.1.4.63 Mthode: supprimerGeon(int etiquettePiece, int idGeon)
Description: Supprime un gon une pice de la base.
D.1.4.64 Mthode: supprimerNouveauGeon(int etiquette)
Description: Supprime un gon la liste des gons existants.
D.1.4.65 Mthode: supprimerNouvelAttributConnexion(String nom,
int valeur )
Description: Supprime une valeur (et attribut si plus de valeur) de la
liste des attributs connexions existants.
D.1.4.66 Mthode: supprimerNouvelAttributGeon(String nom, int valeur)
Description: Supprime une valeur (et un attribut si plus de valeur)
de la liste des attributs gons existants.
D.1.4.67 Mthode: supprimerPiece(int etiquette)
Description: Supprime la pice dtiquette etiquette de la base de
donnes.

82

D.1.4.68 Mthode: supprimerPieceGest(int etiquette)


Description: Supprime la pice dtiquette etiquette de la base de
donnes et efface les fichiers du disque.
D.1.4.69 Mthode: supprimerType(String nom)
Description: Supprime un type de la liste des types de fichiers
existants sauf types uniques.
D.1.4.70 Mthode: supprimerType2D(String nom)
Description: Supprime un type de la liste des types de fichiers 2D
existants.
D.1.4.71 Mthode: supprimerTypeEclairage(String nom)
Description: Supprime un type de la liste des types dclairage
existants.
D.1.4.72 Mthode: supprimerTypeGest(String nom)
Description: Supprime un type de la liste des types de fichiers
existants.
D.1.4.73 Mthode: toString()
Description: Permet de visualiser la base sous forme de chane;
utilise pour construire les listes.

83

D.2 Classe Piece


D.2.1 Description: Dcrit une pice de la base.
D.2.2 Attributs
Nom
Commentaire
Etiquette
ListeFichier
ListeFichier2D
ListeFichierUnique
* NbPiece
VueGeon

Description
Commentaire de la pice.
tiquette de la pice.
Liste des fichiers de la pice.
Liste des fichiers 2D de la pice.
Pile des fichiers uniques de la pice.
Nombre de pices dj cres.
VueGeon associe la pice.

D.2.3 Constructeurs
D.2.3.1 Mthode: Piece(String commentaire, String fichierGif,
String fichier, String type)
Description: Cre une pice.
D.2.3.2 Mthode: Piece(String commentPiece, String fichierGif,
String comment1, String fichier, String type,
String comment2)
Description: Cre une pice.
D.2.4 Mthodes
D.2.4.1 Mthode: ajouterConnexion(int id1, int id2, String nom, int valeur)
Description: Ajoute une connexion une pice de la base.
D.2.4.2 Mthode: ajouterFichier(Fichier fichier)
Description: Ajoute un fichier la pice.
D.2.4.3 Mthode: ajouterFichier(String nom, String type)
Description: Ajoute un fichier la pice.
D.2.4.4 Mthode: ajouterFichier(String nom, String type,
String commentaire)
Description: Ajoute un fichier la pice.
D.2.4.5 Mthode: ajouterFichier2D(Fichier2D fichier)
Description: Ajoute un fichier 2D la pice.
D.2.4.6 Mthode: ajouterFichier2D(String nom, String type,
Vector eclairage, int camera)
Description: Ajoute un fichier 2D la pice.

84

D.2.4.7 Mthode: ajouterFichier2D(String nom, String type,


Vector eclairage, int camera, String commentaire)
Description: Ajoute un fichier 2D la pice.
D.2.4.8 Mthode: ajouterGeon(int etiquette)
Description: Ajoute un gon la pice.
D.2.4.9 Mthode: ancienneVersionFichier(String nom)
Description: Revient lancienne version du fichier si possible.
D.2.4.10 Mthode: commentaireFichier(String nom)
Description: Rcupre le commentaire dun fichier.
D.2.4.11 Mthode: commentaireFichier2D(String nom)
Description: Rcupre le commentaire dun fichier 2D.
D.2.4.12 Mthode: getCommentaire()
Description: Rcupre le commentaire associ une pice.
D.2.4.13 Mthode: getEtiquette()
Description: Rcupre ltiquette de la pice.
D.2.4.14 Mthode: getFichier(String nom)
Description: Rcupre un fichier dans la liste des fichiers dune
pice.
D.2.4.15 Mthode: getFichier2D(String nom)
Description: Rcupre un fichier 2D dans la liste des fichiers dune
pice.
D.2.4.16 Mthode: getListeFichier()
Description: Rcupre la liste des fichiers de la pice.
D.2.4.17 Mthode: getListeFichier2D()
Description: Rcupre la liste des fichiers 2D de la pice.
D.2.4.18 Mthode: getListeFichierUnique()
Description: Rcupre la pile des fichiers uniques associe une
pice.
D.2.4.19 Mthode: getNbPiece()
Description: Rcupre le nombre de pices dj cres.
D.2.4.20 Mthode: getVueGeon()
Description: Rcupre la vue gon de la pice.
D.2.4.21 Mthode: listeFichier()
Description: Permet de visualiser la liste des fichiers sous forme de
chane; utilise pour construire les listes.
D.2.4.22 Mthode: listeFichier2D()
Description: Permet de visualiser la liste des fichiers 2D sous forme
de chane; utilise pour construire les listes.
D.2.4.23 Mthode: modifierAttributConnexion(int id1, int id2, String nom,
int valeur)
Description: Ajoute un attribut et sa valeur une connexion ou
modifie la valeur si lattribut existe dj dans la connexion.

85

D.2.4.24 Mthode: modifierCommentaireFichier(String nom,


String comment)
Description: Modifie le commentaire dun fichier de la liste.
D.2.4.25 Mthode: modifierCommentaireFichier2D(String nom,
String comment)
Description: Modifie le commentaire dun fichier 2D de la liste.
D.2.4.26 Mthode: modifierFichier(String nom, String comment)
Description: Modifie le commentaire et la version dun fichier de la
liste.
D.2.4.27 Mthode: modifierFichier2D(String nom, String comment)
Description: Modifie le commentaire et la version dun fichier 2D de
la liste.
D.2.4.28 Mthode: setNbPiece(int nb)
Description: Met jour le nombre des pices cres.
D.2.4.29 Mthode: supprimerAttributConnexion(int id1, int id2, String nom)
Description: Supprime un attribut et sa valeur dune connexion.
D.2.4.30 Mthode: supprimerConnexion(int id1, int id2)
Description: Supprime un connexion une pice de la base.
D.2.4.31 Mthode: supprimerFichier(String nom)
Description: Supprime un fichier de la liste des fichiers de la pice.
D.2.4.32 Mthode: supprimerFichier2D(String nom)
Description: Supprime un fichier 2D de la liste des fichiers 2D de la
pice.
D.2.4.33 Mthode: supprimerGeon(int id)
Description: Supprime un gon une pice de la base.
D.2.4.34 Mthode: toString()
Description: Permet de visualiser une pice sous forme de chane;
utilise pour construire les listes.

86

D.3 Classe Fichier


D.3.1 Description: Reprsente un fichier dune pice.
D.3.2 Attributs
Nom
Commentaire
* ListeTypeFichier
Nom
Type
Version

Description
Commentaire du fichier.
Liste des types de fichiers existants.
Nom du fichier avec extension.
Type du fichier (extension).
Version du fichier.

D.3.3 Constructeurs
D.3.3.1 Constructeur: Fichier(String nom, String type)
Description: Construit un fichier partir dun nom et dun type.
D.3.3.2 Constructeur: Fichier(String nom, String type, String commentaire)
Description: Construit un fichier partir dun nom, dun type et dun
commentaire.
D.3.4 Mthodes
D.3.4.1 Mthode: afficheListe()
Description: Permet de visualiser la liste des types de fichier
existants sous forme de chane; utilise pour construire les listes.
D.3.4.2 Mthode: afficheListeNonUnique()
Description: Permet de visualiser la liste des types de fichier non
uniques sous forme de chane; utilise pour construire les listes.
D.3.4.3 Mthode: ajouterType(Type type)
Description: Ajoute un nouveau type la liste complte des types de
fichier.
D.3.4.4 Mthode: ancienneVersion()
Description: Modifie la version (-1).
D.3.4.5 Mthode: contientType(String nomType)
Description: Pour savoir si la liste des types de fichier contient le
type demand.
D.3.4.6 Mthode: getCommentaire()
Description: Rcupre le commentaire associ au fichier.
D.3.4.7 Mthode: getListe()
Description: Rcupre la liste des types de fichiers existants.
D.3.4.8 Mthode: getNom()
Description: Rcupre le nom du fichier.

87

D.3.4.9 Mthode: getType()


Description: Rcupre le type du fichier.
D.3.4.10 Mthode: getVersion()
Description: Rcupre la version du fichier.
D.3.4.11 Mthode: modif(String comment)
Description: Modifie la version (+1) et le commentaire du fichier.
D.3.4.12 Mthode: setCommentaire(String commentaire)
Description: Met jour le commentaire du fichier.
D.3.4.13 Mthode: setListe(MyHashtable liste)
Description: Met jour la liste des types de fichier existants.
D.3.4.14 Mthode: supprimerType(String nomType)
Description: Supprime le type de la liste complte des types de
fichier, mais elle ne peut pas supprimer un type protg (.gif, .iges et
.neu).
D.3.4.15 Mthode: supprimerTypeGest(String nomType)
Description: Supprime le type de la liste complte des types de
fichier.
D.3.4.16 Mthode: toString(String numPiece)
Description: Permet de visualiser un fichier sous forme de chane;
utilise pour construire les listes.

88

D.4 Classe Fichier2D


D.4.1 Description: Reprsente le fichier dimensionnel (2D) dune pice.
D.4.2 Attributs
Nom
Camera
Commentaire
Eclairage
* ListeTypeEclairage
* ListeTypeFichier
Nom
Type
Version

Description
Angle de la camra.
Commentaire du fichier.
Angles dclairage.
Liste des types dclairage existants.
Liste des types de fichier 2D existants.
Nom du fichier avec extension.
Type du fichier (extension).
Version du fichier.

D.4.3 Constructeurs
D.4.3.1 Constructeur: Fichier2D(String nom, String type, Vector eclairage,
int camera)
Description: Construit un fichier 2D partir dun nom, dun type de
fichier, des angles dclairage et dun angle de camra.
D.4.3.2 Constructeur: Fichier2D(String nom, String type, Vector eclairage,
int camera, String commentaire)
Description: Construit un fichier 2D partir dun nom, dun type de
fichier, des angles dclairage, dun angle de camra et dun
commentaire.
D.4.4 Mthodes
D.4.4.1 Mthode: afficheListe()
Description: Permet de visualiser la liste des types de fichier
existants sous forme de chane; utilise pour construire les listes.
D.4.4.2 Mthode: afficheListe2D()
Description: Permet de visualiser la liste des types de fichier
existants sous forme de chane avec le commentaire (Fichier 2D);
utilise pour construire les listes.
D.4.4.3 Mthode: afficheListeEclairage()
Description: Permet de visualiser la liste des types dclairage
existants sous forme de chane avec le commentaire (Fichier 2D);
utilise pour construire les listes.

89

D.4.4.4 Mthode: ajouterType(Type type)


Description: Ajoute un nouveau type la liste complte des types de
fichier.
D.4.4.5 Mthode: ajouterTypeEclairage(String Type)
Description: Ajoute un nouveau type la liste complte des types
dclairage.
D.4.4.6 Mthode: ancienneVersion()
Description: Modifie la version (-1).
D.4.4.7 Mthode: contientType(String nomType)
Description: Pour savoir si la liste des types de fichier contient le
type demand.
D.4.4.8 Mthode: getCamera()
Description: Rcupre langle de la camra du fichier.
D.4.4.9 Mthode: getCommentaire()
Description: Rcupre le commentaire associ au fichier.
D.4.4.10 Mthode: getEclairage()
Description: Rcupre les angles dclairage du fichier.
D.4.4.11 Mthode: getListe()
Description: Rcupre la liste des types de fichier existants.
D.4.4.12 Mthode: getListeEclairage()
Description: Rcupre la liste des types dclairage existants.
D.4.4.13 Mthode: getNom()
Description: Rcupre le nom du fichier.
D.4.4.14 Mthode: getType()
Description: Rcupre le type du fichier.
D.4.4.15 Mthode: getVersion()
Description: Rcupre la version du fichier.
D.4.4.16 Mthode: modif(String comment)
Description: Modifie la version (+1) et le commentaire du fichier.
D.4.4.17 Mthode: setCommentaire(String commentaire)
Description: Met jour le commentaire du fichier.
D.4.4.18 Mthode: setListe(MyHashtable liste)
Description: Met jour la liste des types de fichier existants.
D.4.4.19 Mthode: setListeEclairage(MyHashtable liste)
Description: Met jour la liste des types dclairage existants.
D.4.4.20 Mthode: supprimerType(String nomType)
Description: Supprime le type de la liste complte des types de
fichier, mais ne peut pas supprimer un type unique.
D.4.4.21 Mthode: supprimerTypeEclairage(String nomType)
Description: Supprime le type de la liste complte des types
dclairage.
D.4.4.22 Mthode: supprimerTypeGest(String nomType)
Description: Supprime le type de la liste complte des types de
fichier.

90

D.4.4.23 Mthode: toString(String numPiece)


Description: Permet de visualiser un fichier sous forme de chane;
utilise pour construire les listes.

D.5 Classe Eclairage


D.5.1 Description: Dcrit le dtail dun clairage pour un fichier 2D.
D.5.2 Attributs
Nom
Angle
Puissance
Type

Description
Angle de lclairage.
Puissance de lclairage en Watts.
Type de lclairage.

D.5.3 Constructeur
D.5.3.1 Constructeur: Eclairage(String angle, String type, String puissance)
Description: Construit un clairage pour un fichier 2D.
D.5.4 Mthode
D.5.4.1 Mthode: toString()
Description: Permet de visualiser un clairage sous forme de chane.

91

D.6 Classe Type


D.6.1 Description: Dcrit le type de fichier.
D.6.2 Attributs
Nom
NomType
Unique

Description
Nom du type.
Boolen pour savoir si une pice peut contenir
plusieurs fichiers de ce type ou non.

D.6.3 Constructeur
D.6.3.1 Constructeur: Type(String nomType, boolean unique)
Description: Construit un type partir dun nom et dun boolen.
D.6.4 Mthodes
D.6.4.1 Mthode: getNomType()
Description: Rcupre le nom du type.
D.6.4.2 Mthode: isUnique()
Description: Rcupre le boolen unique.
D.6.4.3 Mthode: toString()
Description: Permet de visualiser un type sous forme de chane;
utilise pour construire les listes.

92

D.7 Classe VueGeon


D.7.1 Description: Dcrit la vue gon dune pice.
D.7.2 Attributs
Nom

Description

IdGeon
* ListeCompleteGeon

Nombre de gons cres dans la pice.


Liste complte de tous les gons existants.

ListeConnexion
ListeGeon

Liste des connexions dune pice.


Liste des gons dune pice.

D.7.3 Constructeur
D.7.3.1 Constructeur: VueGeon()
Description: Cre une vueGeon.
D.7.4 Mthodes
D.7.4.1 Mthode: afficheListe()
Description: Permet de visualiser la liste complte des gons
existants sous forme de chane; utilise pour construire les listes.
D.7.4.2 Mthode: ajouterConnexion(Connexion connexion)
Description: Ajoute une connexion la liste des connexions de la
pice.
D.7.4.3 Mthode: ajouterConnexion(int id1, int id2, String nom, int valeur)
Description: Ajoute une connexion la liste des connexions de la
pice.
D.7.4.4 Mthode: ajouterGeon(int etiquette)
Description: Ajouter un gon la liste des gons de la pice.
D.7.4.5 Mthode: ajouterValeurGeon(Geon geon)
Description: Ajouter un nouveau gon la liste des gons existants.
D.7.4.6 Mthode: contientGeon(int etiquette)
Description: Rcupre le nombre de gon ayant comme tiquette
etiquette dans la liste des gons dune pice.
D.7.4.7 Mthode: getConnexion(int id1, int id2)
Description: Rcupre une connexion.
D.7.4.8 Mthode: getConnexion(String cle)
Description: Rcupre une connexion.
D.7.4.9 Mthode: getGeon(int id)
Description: Rcupre un gon de la liste des gons existants.

93

D.7.4.10 Mthode: getGeonUtilise(int id)


Description: Rcupre un gon utilis daprs son identificateur.
D.7.4.11 Mthode: getListe()
Description: Rcupre la liste complte des gons existants.
D.7.4.12 Mthode: getListeConnexion()
Description: Rcupre la liste des connexions de la pice.
D.7.4.13 Mthode: getListeGeon()
Description: Rcupre la liste des gons de la pice.
D.7.4.14 Mthode: maxGeon()
Description: Rcupre la plus grande tiquette des gons de la liste
des gons existants +1.
D.7.4.15 Mthode: modifierAttributConnexion(int id1, int id2, String nom,
int valeur)
Description: Ajoute un attribut et sa valeur une connexion ou
modifie la valeur si lattribut existe dj dans la connexion.
D.7.4.16 Mthode: modifierAttributGeon(int idGeon, String nom, int valeur)
Description: Ajoute ou modifie la valeur dun attribut un gon de
la liste des gons existants.
D.7.4.17 Mthode: setListe(MyHashtable liste)
Description: Dfinit la liste complte des gons existants.
D.7.4.18 Mthode: supprimerAttributConnexion(int id1, int id2, String nom)
Description: Supprime un attribut et sa valeur dune connexion.
D.7.4.19 Mthode: supprimerAttributGeon(int idGeon, String nom)
Description: Supprime un attribut dun gon de la liste des gons
existants.
D.7.4.20 Mthode: supprimerConnexion(Couple couple)
Description: Supprime la connexion de la liste des connexions de la
pice.
D.7.4.21 Mthode: supprimerConnexion(int id1, int id2)
Description: Supprime la connexion de la liste des connexions de la
pice.
D.7.4.22 Mthode: supprimerGeon(int id)
Description: Supprime un gon de la liste des gons dune pice.
D.7.4.23 Mthode: supprimerValeurGeon(int etiquette)
Description: Supprime un gon de la liste des gons existants.
D.7.4.24 Mthode: toStringConnexion()
Description: Permet de visualiser la liste des connexions sous forme
de chane; utilise pour construire les listes.
D.7.4.25 Mthode: toStringGeon()
Description: Permet de visualiser la liste des gons sous forme de
chane; utilise pour construire les listes.

94

D.8 Classe GeonUtilise


D.8.1 Description: Reprsente le gon dune pice avec un identificateur.
D.8.2 Attributs
Nom
Geon
Identifiant

Description
Gon associ au gon utilis.
Identifiant du gon utilis.

D.8.3 Constructeur
D.8.3.1 Constructeur: GeonUtilise(int identifiant, Geon geon)
Description: Construit un gon utilis.
D.8.4 Mthodes
D.8.4.1 Mthode: getGeon()
Description: Rcupre le gon du gon utilis.
D.8.4.2 Mthode: getIdentifiant()
Description: Rcupre lidentifiant du gon utilis.
D.8.4.3 Mthode: toString()
Description: Permet de visualiser un gon utilis sous forme de
chane; utilise pour construire les listes.
D.8.4.4 Mthode: toSimpleString()
Description: Identique toString, mais de manire moins complte
utilise pour construire les listes.

95

D.9 Classe Geon


D.9.1 Description: Modlise les gons dune pice.
D.9.2 Attributs
Nom
Etiquette
ListeAttribut
* ListeCompleteAttribut

Description
Etiquette du gon.
Liste des attributs du gon.
Liste des attributs existants pour les gons.

D.9.3 Constructeur
D.9.3.1 Constructeur: Geon(int etiquette)
Description: Construit un gon.
D.9.4 Mthodes
D.9.4.1 Mthode: afficheListe()
Description: Permet de visualiser la liste des attributs gons existants
sous forme de chane; utilise pour construire les listes.
D.9.4.2 Mthode: ajouterValeurAttribut(Attribut attribut)
Description: Ajoute une nouvelle valeur (et nouvel attribut si
inexistant) la liste des attributs gons existants.
D.9.4.3 Mthode: equals(Geon geon)
Description: Permet de comparer deux gons.
D.9.4.4 Mthode: getAttribut(String nom)
Description: Rcupre un attribut de la liste des attributs du gon.
D.9.4.5 Mthode: getEtiquette()
Description: Rcupre ltiquette du gon.
D.9.4.6 Mthode: getListe()
Description: Rcupre la liste complte des attributs gons existants.
D.9.4.7 Mthode: getListeAttribut()
Description: Rcupre la liste des attributs du gon.
D.9.4.8 Mthode: modifierAttribut(String nom, int valeur)
Description: Ajoute un attribut et sa valeur un gon ou modifie la
valeur si lattribut existe dj dans la connexion.
D.9.4.9 Mthode: setListe(MyHashtable liste)
Description: Dfinit la liste complte des attributs gons existants.
D.9.4.10 Mthode: supprimerAttribut(String nom)
Description: Supprime un attribut et sa valeur dun gon.

96

D.9.4.11 Mthode: supprimerValeurAttribut(String nom, int valeur)


Description: Supprime une valeur (et attribut si plus de valeur) de la
liste des attributs gons existants.
D.9.4.12 Mthode: toString()
Description: Permet de visualiser un gon sous forme de chane;
utilise pour construire les listes.
D.9.4.13 Mthode: toStringSimple()
Description: Identique toString, mais de manire moins complte
utilise pour construire les listes.

D.10 Classe Attribut


D.10.1 Description: Reprsente les attributs dune connexion ou dun gon.
D.10.2 Attributs
Nom
Nom
Valeur

Description
Nom de lattribut.
Valeur de lattribut.

D.10.3 Constructeurs
D.10.3.1 Constructeur: Attribut(String nom, int entier, String signification)
Description: Cre un attribut et sa valeur associe.
D.10.3.2 Constructeur: Attribut(String nom, Valeur valeur)
Description: Cre un attribut partir dune instance de valeur
existante.
D.10.4 Mthodes
D.10.4.1 Mthode: equals(Attribut attribut)
Description: Permet de comparer deux attributs.
D.10.4.2 Mthode: getNom()
Description: Permet dobtenir le nom de lattribut.
D.10.4.3 Mthode: getValeur()
Description: Permet dobtenir la valeur associe lattribut.
D.10.4.4 Mthode: toString()
Description: Permet de visualiser un attribut (Nom ou Valeur) sous
forme de chane; utilise pour construire les listes.
D.10.4.5 Mthode: toStringSimple()
Description: Identique toString, mais de manire moins complte
utilise pour construire les listes.

97

D.11 Classe Valeur


D.11.1 Description: Dcrit les valeurs dun attribut dun gon.
D.11.2 Attributs
Nom
Entier
Signification

Description
Valeur entire de la valeur.
Signification de la valeur.

D.11.3 Constructeur
D.11.3.1 Constructeur: Valeur(int entier, String signification)
Description: Cre une valeur.
D.11.4 Mthodes
D.11.4.1 Mthode: equals(Valeur valeur)
Description: Permet de comparer deux valeurs.
D.11.4.2 Mthode: getEntier()
Description: Rcupre la valeur entire.
D.11.4.3 Mthode: getSignification()
Description: Rcupre la signification de la valeur.
D.11.4.4 Mthode: toString()
Description: Permet de visualiser une valeur sous forme de chane;
utilise pour construire les listes.
D.11.4.5 Mthode: toStringSimple()
Description: Identique toString, mais de manire moins complte
utilise pour construire les listes.

98

D.12 Classe Connexion


D.12.1 Description: Reprsente la connexion entre deux gons dune pice.
D.12.2 Attributs
Nom
Couple
ListeAttribut
* ListeCompleteAttribut

Description
Couple de la connexion.
Liste des attributs de la connexion.
Liste complte des attributs existants pour les
connexions.

D.12.3 Constructeurs
D.12.3.1 Constructeur: Connexion(Couple couple, String nom, int valeur)
Description: Construit une connexion partir dun couple existant.
D.12.3.2 Constructeur: Connexion(int id1, int id2, String nom, int valeur)
Description: Construit une connexion et son couple.
D.12.4 Mthodes
D.12.4.1 Mthode: afficheListe()
Description: Permet de visualiser la liste des attributs connexions
existants sous forme de chane; utilise pour construire les listes.
D.12.4.2 Mthode: ajouterValeurAttribut(Attribut attribut)
Description: Ajoute une nouvelle valeur (et nouvel attribut si
inexistant) la liste des attributs connexions existants.
D.12.4.3 Mthode: equals(Connexion connexion)
Description: Permet de comparer deux connexions.
D.12.4.4 Mthode: getAttribut(String nom)
Description: Rcupre un attribut de la liste des attributs de la
connexion.
D.12.4.5 Mthode: getCouple()
Description: Rcupre le couple de la connexion.
D.12.4.6 Mthode: getListe()
Description: Rcupre la liste complte des attributs connexions
existants.
D.12.4.7 Mthode: getListeAttribut()
Description: Rcupre la liste des attributs de la connexion.
D.12.4.8 Mthode: modifierAttribut(String nom, int valeur)
Description: Ajoute un attribut et sa valeur une connexion ou
modifie la valeur si lattribut existe dj dans la connexion.

99

D.12.4.9 Mthode: setListe(MyHashtable liste)


Description: Dfinit la liste complte des attributs connexions
existants.
D.12.4.10 Mthode: supprimerAttribut(String nom)
Description: Supprime un attribut et sa valeur dune connexion.
D.12.4.11 Mthode: supprimerValeurAttribut(String nom, int valeur)
Description: Supprime une valeur (et attribut si plus de valeur) de
la liste des attributs connexions existants.
D.12.4.12 Mthode: toString()
Description: Permet de visualiser une connexion sous forme de
chane; utilise pour construire les listes.
D.12.4.13 Mthode: toStringSimple()
Description: Identique toString(), mais de manire moins
complte utilise pour construire les listes.

D.13 Classe Couple


D.13.1 Description: Dcrit le couple dune connexion.
D.13.2 Attributs
Nom
Id1
Id2

Description
Identificateur du premier gon du couple.
Identificateur du second gon du couple.

D.13.3 Constructeur
D.13.3.1 Constructeur: Couple(int id1, int id2)
Description: Construit un couple partir de deux gons.
D.13.4 Mthodes
D.13.4.1 Mthode: equals(Couple couple)
Description: Permet de comparer deux couples.
D.13.4.2 Mthode: getId1()
Description: Rcupre lidentificateur du premier gon.
D.13.4.3 Mthode: getId2()
Description: Rcupre lidentificateur du second gon.
D.13.4.4 Mthode: toString()
Description: Permet de visualiser un couple sous forme de chane;
utilise pour construire les listes.

100

D.14 Classe FileManager


D.14.1 Description: Cette classe soccupe de la gestion des fichiers dentres-sorties.
D.14.2 Attributs
Nom
* Base
Charger
Enregistrer
Fichier-Attribut-Connexion
Fichier-Attribut-Geon
Fichier-Base-Reduite
Fichier-Geon
Fichier-Piece
Fichier-Type
Fichiers-Tous
* Repertoire

Description
Base de travail.
Charger la base.
Enregistrer.
Fichier attributs connexions.
Fichier attributs gons.
Fichier base rduite.
Fichier gon.
Fichier pice.
Fichier type.
Tous les fichiers.
Rpertoire o on enregistre les fichiers
de la base de donnes.

D.14.3 Constructeur
D.14.3.1 Constructeur: FileManager()
Description: Cre le fichier qui soccupe de la gestion des fichiers
dentres-sorties.
D.14.4 Mthodes
D.14.4.1 Mthode: LancerFileManager(Base uneBase, int choix, int fichier)
Description: Permet denregistrer ou de charger la base partir de
fichiers binaires.
D.14.4.2 Mthode: loadAttributConnexion(String name)
Description: Charge le fichier AttributConnexion.
D.14.4.3 Mthode: loadAttributGeon(String name)
Description: Charge le fichier AttributGeon.
D.14.4.4 Mthode: loadBaseReduite(String name)
Description: Charge le fichier BaseReduite.
D.14.4.5 Mthode: loadPiece(String name)
Description: Charge le fichier Piece.
D.14.4.6 Mthode: loadTypeFichier(String name)
Description: Charge le fichier TypeFichier.

101

D.14.4.7 Mthode: loadVueGeon(String name)


Description: Charge le fichier GeonExistant.
D.14.4.8 Mthode: SaveAttributConnexion(String name)
Description: Sauvegarde le fichier AttributConnexion.
D.14.4.9 Mthode: SaveAttributGeon(String name)
Description: Sauvegarde le fichier AttributGeon.
D.14.4.10 Mthode: SaveBaseReduite(String name)
Description: Sauvegarde le fichier BaseReduite.
D.14.4.11 Mthode: SavePiece(String name)
Description: Sauvegarde le fichier Piece.
D.14.4.12 Mthode: SaveTypeFichier(String name)
Description: Sauvegarde le fichier TypeFichier.
D.14.4.13 Mthode: SaveVueGeon(String name)
Description: Sauvegarde le fichier GeonExistant.

D.15 Classe MyHashtable


D.15.1 Description: Classe drive du tableau dadressage calcul (Hashtable).
D.15.2 Attributs: Aucun
D.15.3 Constructeur
D.15.3.1 Constructeur: MyHashtable()
Description: Constructeur fait appel au constructeur de Hashtable.
D.15.4 Mthodes
D.15.4.1 Mthode: contains1(Geon geon)
Description: Contains adapte aux gons.
D.15.4.2 Mthode: containsKey2(Couple couple)
Description: Containskey adapte aux couples.
D.15.4.3 Mthode: equals(MyHashtable table)
Description: Permet de comparer deux tableaux dadressage calcul.

Cette fonction est utilise pour savoir si un gon fait partie du tableau dadressage calcul (Hashtable).
Elle retourne la valeur vraie (True) si un gon fait partie du tableau et la valeur faux (False) sil nen fait
pas partie.
2
Cette fonction est utilise pour savoir si un couple de gons fait partie des cls du tableau dadressage
calcul (Hashtable). Elle retourne la valeur vraie (True) si le couple fait partie des cls du tableau et la
valeur faux (False) sil nen fait pas partie.

102

D.16 Classe Service ou ServiceGest


D.16.1 Description: Permet de grer les commandes envoyes sur la douille (socket).
D.16.2 Attributs
Nom
Base
BaseReduite
* ClientPrsent
Entree
EntreeFichier
Limitation
* NbClient
NumClient
* Recharger
Socket
Sortie
SortieFichier
* Trace

Description
Base gnrale de travail.
Base rduite de travail.
Vecteur comprenant les numros de connexions des
clients actuellement connects.
Canal dentre.
Entre de fichier.
Vecteur comprenant les numros des pices contenues dans
la baseReduite.
Nombre de clients dj connects de 0 999.
Numro de connexion du client.
Vecteur comprenant les numros de connexion des clients qui
doivent recharger la baseReduite.
Moyen de communication entre un client et un serveur.
Canal de sortie.
Sortie de fichier.
Fichier de trace.

D.16.3 Constructeur
D.16.3.1 Constructeur: Service(Socket socket, Base base, PrintStream trace)
Description: Cre un service, les tampons dentre et de sortie et
donne un numro de connexion au client.
D.16.4 Mthode
D.16.4.1 Mthode: run()
Description: Attend et traite la commande envoye par un client.

103

D.17 Classe Serveur


D.17.1 Description: Permet de grer les demandes de connexion au serveur de la
douille (socket).
D.17.2 Attributs
Nom
Base
* FichierTrace
Port
Receptionniste

Description
Base sur laquelle va travailler le serveur.
Fichier de trace.
Port de la connexion.
Serveur de socket.

D.17.3 Constructeur
D.17.3.1 Constructeur: Serveur(int unPort, Base base)
Description: Cre le serveur de socket et lance le fil (Thread).
D.17.4 Mthodes
D.17.4.1 Mthode: main(String[])
Description: Charge la base partir des fichiers sils existent et cre
le serveur.
D.17.4.2 Mthode: run()
Description: Attend des connexions la douille et cre un service
pour chaque client.

ANNEXE E

LISTE DES REQUTES ACCEPTES PAR LE SERVEUR

105

Les requtes sont envoyes au serveur sous forme de chane de caractres comme
ci-dessous:
ListeBase
Renvoie la liste des bases rduites sous la forme:
nomBase [liste des tiquettes des pices faisant partie de la base rduite]
ListePiece
Renvoie la liste des pices de la base sous la forme:
Piece numPiece commentaire commentaire \n
ListeFichierGif
Renvoie la liste de tous les fichiers images (Gif) reprsentant les pices sous la forme:
numPiece nomFichier (spars par des espaces )
ListeGeon idPiece
Renvoie la liste des gons dune pice sous la forme:
idGeon Geon etiquetteGeon \n
ListeConnexion idPiece
Renvoie la liste des connexions dune pice sous la forme:
Connexion idGeon1-idGeon2 valeurAttr \n ( date il ny a quun attribut de
connectivit)
ListeFichier idPiece
Renvoie la liste des fichiers dune pice sous la forme:
nomFichier commentaire date \n
ListeFichier2D idPiece
Renvoie la liste des fichiers 2D dune pice sous la forme:
nomFichier angleEclairage angleCamera commentaire date \n
ListeAttributGeon idPiece idGeon
Renvoie la liste des attributs du gon spcifi sous la forme:
nomAttribut valeurAttribut signification \n
ListeAttributConnexion idPiece idGeon1-idGeon2
Renvoie la liste des attributs de la connexion spcifie sous la forme:
idGeon1-idGeon2 nomAttribut valeurAttribut signification \n
ListeGeonExistant
Renvoie la liste des gons existants sous la forme:
Geon etiquetteGeon \n

106

ListeTypeFichier
Renvoie la liste des types de fichiers existants sous la forme:
nomType * si unique ou nomType si non unique
ListeTypeFichier2D
Renvoie la liste des types de fichiers 2D existants sous la forme:
nomType
ListeTypeFichier2DPlus
Renvoie la liste des types de fichiers 2D existants sous la forme:
nomType (Fichier 2D)
ListeTypeFichierNonUnique
Renvoie la liste des types de fichiers non unique existants sous la forme:
nomType
ListeFichierType nonType
Renvoie la liste des fichiers du type nomType sous la forme:
numPiece nomFichier (spars par des espaces)
ListeAttributGeonExistant
Renvoie la liste des attributs possibles pour les gons sous la forme:
nomAttribut valeurAttribut signification \n
ListeAttributConnexionExistant
Renvoie la liste des attributs possibles pour les connexions sous la forme:
nomAttribut valeurAttribut signification \n
ContientGeon etiquetteGeon
Renvoie la liste des pices contenant le gon spcifi suivi du nombre doccurrence dans
la pice sous la forme:
Piece idPiece Nb occurrence: nbOccurence \n
NbContientGeon etiquetteGeon
Renvoie le nombre de pices contenant le gon spcifi.
MaxGeon
Renvoie la plus grande tiquette gon +1.
AjouterBase nomBase liste des tiquettes des pices devant figurer dans la base
rduite.
Ajoute la base rduite dans la liste des bases rduites, renvoie 0 si la base a t ajoute
ou 1 si le nom de la base rduite existe dj.

107

SupprimerBase nomBase
Supprime la base de la liste des bases rduites, renvoie 0 si la base a t supprime ou 1
si la base rduite ne fait pas partie de la liste.
AjouterPiece nomFichierGif nomFichierNeu commentairePiece
Ajoute la pice dans la base et renvoie ltiquette de la pice cre. Neffectue pas le
transfert des fichiers
SupprimerPiece idPiece
Supprime la pice spcifie, renvoie 0 si OK ou 1 si la pice nexiste pas.
AjouterGeon idPiece etiquetteGeon
Ajoute le gon spcifi la pice spcifie, renvoie lidentificateur du gon ou 1 si la
pice ou le gon nexiste pas.
SupprimerGeon idPiece idGeon
Supprime le gon de la pice spcifie, renvoie 0 si OK et 1 si la pice ou le gon
nexiste pas
AjouterConnexion idPiece idGeon1 idGeon2 nomAttr valeurAttr
Ajoute la connexion la pice spcifie avec comme premier attribut nomAttr de valeur
valeurAttr, renvoie 0 si OK et 1 si la pice nexiste pas ou si la connexion existe dj
(Attention une connexion 1-2 est quivalente une connexion 2-1).
SupprimerConnexion idPiece idGeon1 idGeon2
Supprime la connexion de la pice spcifie, renvoie 0 si OK et 1 si la pice ou la
connexion nexiste pas.
AjouterFichier idPiece nomFichier nomType commentaire
Ajoute le fichier la pice (0 si OK et 1 si la pice nexiste pas).
SupprimerFichier idPiece nomFichier
Supprime le fichier de la pice spcifie (0 si OK et 1 si la pice ou le fichier nexiste
pas).
ModifierFichier idPiece nomFichier commentaire
Modifie le commentaire et la version du fichier de la pice spcifie (0 si OK et 1 si la
pice ou le fichier nexiste pas ).
ModifierCommentaireFichier idPiece nomFichier commentaire
Modifie le commentaire du fichier, renvoie 0 si OK et 1 si la pice ou le fichier nexiste
pas.

108

CommentaireFichier idPiece nomFichier


Renvoie le commentaire associ au fichier.
AjouterFichier2D idPiece nomFichier nbAngleEclairage angleEclairage1
angleEclairage2 angleCamera commentaire
Ajoute le fichier 2D la pice, renvoie 0 si OK et 1 si la pice nexiste pas.
SupprimerFichier2D idPiece nomFichier
Supprime le fichier 2D de la pice spcifie, renvoie 0 si OK et 1 si la pice ou le
fichier nexiste pas.
ModifierFichier2D idPiece nomFichier commentaire
Modifie le commentaire et la version du fichier 2D de la pice spcifie , renvoie 0 si
OK et 1 si la pice ou le fichier nexiste pas.
ModifierCommentaireFichier idPiece nomFichier commentaire
Modifie le commentaire du fichier, renvoie 0 si OK et 1 si la pice ou le fichier nexiste
pas.
CommentaireFichier2D idPiece nomFichier
Renvoie le commentaire associ au fichier 2D.
ModifierAttributConnexion idPiece idGeon1 idGeon2 nomAttr valeurAttr
Ajoute ou modifie la valeur de lattribut pour la connexion spcifie, renvoie 0 si OK et
1 si la pice, la connexion, lattribut ou la valeur de lattribut nexiste pas.
SupprimerAttributConnexion idPiece idGeon1 idGeon2 nomAttr
Supprime lattribut de la connexion spcifie, renvoie 0 si OK et 1 si la pice, la
connexion ou lattribut nexiste pas.
AjouterType nomType booleenUnique
Ajoute un nouveau type ayant comme nom nomType, renvoie 0 si OK et 1 sil existe
dj un type avec ce nom. BooleanUnique est un entier, 0 pour Non unique et 1 pour
Unique.
AjouterType2D nomType
Ajoute un nouveau type 2D ayant comme nom nomType, renvoie 0 si OK et
1 sil existe dj un type avec ce nom.
SupprimerType nomType
Supprime le type de nom nomType de la liste des types existants, renvoie 0 si OK ou 1
si le type nest pas connu.

109

SupprimerType2D nomType
Supprime le type de nom nomType de la liste des types 2D existants, renvoie 0 si OK ou
1 si le type nest pas connu.
AjouterNouveauGeon etiquetteGeon
Ajoute un nouveau gon ayant comme tiquette etiquetteGeon, renvoie 0 si OK et 1 sil
existe dj un gon ayant ltiquette spcifi ou sil existe un gon sans attribut.
Spcifique au gestionnaire.
SupprimerNouveauGeon etiquetteGeon
Supprime le gon spcifi de la liste des gons existants, renvoie 0 si OK ou
1 si le gon spcifi nexiste pas.
Spcifique au gestionnaire.
ModifierAttributGeon etiquetteGeon nomAttr valeurAttr
Ajoute ou modifie la valeur de lattribut pour le gon spcifi, renvoie 0 si OK ou 1 si
le gon nexiste pas.
Spcifique au gestionnaire.
SupprimerAttributGeon etiquetteGeon nomAttr
Supprime lattribut du gon spcifie, renvoie 0 si OK ou 1 si le gon ou lattribut
nexiste pas.
Spcifique au gestionnaire.
AjouterNouvelAttributGeon nomAttr valeurAttr commentaire
Ajoute la nouvelle valeur dattribut dans la liste des attributs possibles pour
les gons, renvoie 0 si OK ou 1 si lattribut et sa valeur existent dj.
Spcifique au gestionnaire.
SupprimerNouvelAttributGeon nomAttr valeurAttr
Supprime cette valeur de lattribut spcifi de la liste des attributs possibles pour les
gons, renvoie 0 si OK ou 1 si lattribut ou sa valeur nexiste pas.
Spcifique au gestionnaire.
AjouterNouvelAttributConnexion nomAttr valeurAttr commentaire
Ajoute la nouvelle valeur dattribut dans la liste des attributs possibles pour les
connexions, renvoie 0 si OK ou 1 si lattribut et sa valeur existent dj.
Spcifique au gestionnaire.
SupprimerNouvelAttributConnexion nomAttr valeurAttr
Supprime cette valeur de lattribut spcifi de la liste des attributs possibles pour les
connexions, renvoie 0 si OK ou 1 si lattribut ou sa valeur nexiste pas.
Spcifique au gestionnaire.

110

Remplissage
Cre le fichier remplissage qui contient toutes les commandes pour pouvoir restaurer la
base de donnes.
Spcifique au gestionnaire.
Telecharger idPiece nomFichierBase nomFichierDest
Tlcharge le fichier source de la base dans le fichier destination.
Uniquement avec ClientSI ou ClientSIGest1.
Transferer nomFichierSource idPiece nomFichierBase
Transfre le fichier source dans la base de donnes.
Uniquement avec ClientSI ou ClientSIGest.
Quit
Ferme la douille.

Pour connatre lutilit des programmes clientSI et clientSIGest , voir le dtail dans lannexe C.

ANNEXE F

LES FENTRES UTILISES POUR LA BASE DE DONNES

112

La conception dun logiciel


ou programme informatique a pour
objectif de satisfaire les besoins des
utilisateurs. Il faut donc bien
comprendre ce quil en attend
[Hurtubise, 1984].

Les fentres de la base de donnes sont programms en langage JAVA en utilisant


lenvironnement de dveloppement JDK de SUN.
Fentre principale

Cette fentre contient le menu de la base de donnes des pices au complet. Elle
est lance lexcution de lapplication. Elle offre aux clients et gestionnaires les choix
suivants:
q

Ajout/Modification/Visualisation dune pice:


Cette partie permet de visualiser la liste des pices, ajouter une pice, ajouter des
fichiers des pices ou accder la vue gon.

113

Construction dune base dinspection:


Cette partie permet de limiter la base de travail ou de crer/supprimer une base
rduite.

Visualisation des Gons existants:


Cette partie permet de visualiser la liste des gons existants et leurs attributs. Ceci
permet daccder la liste des pices contenant le gon.

Visualisation des Attributs Gons existants:


Cette partie permet de visualiser la liste des attributs gons existants.

Visualisation des Attributs Connexion existants:


Cette partie permet de visualiser la liste des attributs connexion existants.

Visualisation/Modification des types de fichiers et dclairage:


Cette partie permet de visualiser, ajouter ou supprimer un type de fichier ou
dclairage.

114

F.1 Ajout/Modification/Visualisation dune pice


F.1.1 Fentre liste des pices

Cette fentre permet de visualiser la liste des pices de la base de donnes. Elle
contient les boutons suivants:

Mise jour icnes: Permet de tlcharger les icnes de toutes les pices de la base de
travail pour pouvoir les afficher dans la fentre (ce tlchargement se fait en utilisant
le protocole TCP/IP). Cette opration nest faire quune seule fois par session.

Tlcharger fichiers: Permet de tlcharger tous les fichiers dun type spcifier de
toutes les pices de la base de travail (en utilisant le protocole TCP/IP).

Ajouter pice: Permet dajouter une pice manufacture la base de donnes.

Dtails: Permet de visualiser les informations sur la pice slectionne dans la liste
(liste des fichiers, liste des fichiers 2D et vue gon).

115

F.1.2 Fentre Mise jour des icnes

Cette fentre permet de tlcharger les icnes de toutes les pices de la base de
travail. Pour cela, il faut spcifier le rpertoire local ou seront tlcharges les icnes des
pices. Elle contient les boutons suivants:

Rechercher: Permet de rechercher le rpertoire voulu.

Tlcharger: Permet deffectuer le tlchargement des fichiers.

F.1.3 Bouton Choix du rpertoire de destination

Cette fentre permet de choisir le rpertoire ou seront tlcharges les images des
pices de la base de travail. Pour se promener dans larborescence, il suffit de doublecliquer sur le rpertoire voulu. Ensuite slectionner le rpertoire et appuyer sur le bouton
OK.

116

F.1.4 Fentre Tlcharger les fichiers

Cette fentre permet de tlcharger les fichiers du type choisi de toutes les pices
de la base de travail. Pour cela, il faut spcifier le rpertoire local ou seront tlcharges
les fichiers et le type voulu. Elle contient les boutons suivants:

Rechercher: Permet de rechercher le rpertoire voulu.

Tlcharger: Permet deffectuer le tlchargement des fichiers.

Remarque: Dans la zone


Type de fichier
, lutilisateur peut choisir un type de
fichier parmi: gif *, iges *, im, jpeg, neu *, prt, stl, tiff, ras.
noter que les fichiers: im, jpeg, tiff et ras sont associs aux fichiers 2D.
Le symbole * suivi des types: gif, iges et neu, signifie que ces types de fichiers
sont obligatoires chaque nouvelle cration dune pice. Voir la fentre suivante (Ajout
dune pice).

117

F.1.5 Fentre Ajout dune pice

Cette fentre permet dajouter une pice la base de donnes. Tous les champs de
saisie doivent tre remplis. Elle contient les boutons suivants:

Rechercher: Les boutons rechercher permettent de slectionner les fichiers sources


en local.

Ajouter: Permet dajouter la pice la base de donnes.

Remarque: Le menu droulant du champ Nom Fichier prsente deux


alternatives: iges et neu.

118

F.1.6 Bouton Dtails de la pice

Cette fentre permet de visualiser la liste des fichiers de la pice. Elle contient
les boutons suivants:

Ajouter Fichier: Permet dajouter un fichier la pice.


Mise jour fichier: Permet de mettre jour le fichier slectionn.
Supprimer Fichier: Supprime le fichier slectionn.
Tlcharger Fichier: Permet de tlcharger le fichier slectionn en local.
Vue Gons: Permet de visualiser la vue gon de la pice.
Fichier 2D: Permet de visualiser la liste des fichiers 2D de la pice.
Supprimer Pice: Supprime la pice de la base de donnes.
Ancienne Version: Permet de rcuprer lancienne version du fichier.

Attention: Seul le gestionnaire peut supprimer une pice de la base de donnes. La


suppression par lutilisateur, enlve la pice uniquement de sa base de travail. Pour plus
de dtails, nous vous rfrons lAnnexe B.

119

F.1.7 Fentre Ajouter un fichier une pice

Cette fentre permet dattacher un fichier une pice de la base de donnes. Tous
les champs de saisie doivent tre remplis. Elle contient les boutons suivants:

Rechercher: Permet de slectionner le fichier source en local.


Ajouter: Ajoute le fichier la liste des fichiers de la pice.

F.1.8 Fentre Mise jour dun fichier

Cette fentre permet de mettre jour un fichier dune pice. Tous les champs de
saisie doivent tre remplis. Elle contient les boutons suivants:

Rechercher: Permet de slectionner le fichier source en local.


Mise A Jour: Ce bouton permet de mettre jour le fichier.

120

F.1.9 Fentre Vue gon

Cette fentre permet de visualiser la liste des gons et des connexions dune pice.
Elle contient les boutons suivants:

Ajouter Gon: Permet dajouter un gon la pice.


Supprimer Gon: Supprime le gon slectionn de la pice.
Ajouter Connexion: Permet dajouter une connexion entre deux gons.
Supprimer Connexion: Supprime la connexion slectionne.
Dtails: Permet davoir des prcisions sur le gon ou la connexion slectionne.

F.1.9.1 Fentre Ajout dun gon une pice

Cette fentre permet dajouter un gon une pice. Le bouton:

Ajouter:
Ajoute le gon slectionn la pice.

121

F.1.9.2 Fentre Ajout dune connexion une pice

Cette fentre permet dajouter une connexion entre deux gons une pice. Il faut
slectionner deux gons connects et une valeur de connexion. Le bouton:

Ajouter:
Permet dajouter la connexion entre deux gons dans une pice.

F.1.10 Fentre Liste des pices contenant un gon

Cette fentre permet de visualiser la liste des pices contenant un gon. Pour
connatre lutilit des boutons, allez voir les pices ( F.1.1, page 114).

122

F.1.11 Fentre Attributs dune connexion

Cette fentre permet de visualiser la liste des attributs dune connexion. Elle
contient les boutons suivants:

Ajouter Attribut: Permet dajouter ou de modifier un attribut de la connexion.

Supprimer Attribut: Supprime lattribut slectionn de la liste des attributs de la


connexion.

123

F.1.12 Fentre Ajout ou modification dun attribut de gon/Gestionnaires

Cette fentre est spcifique aux gestionnaires. Ici, il suffit de slectionner un


attribut dans la liste des attributs et une valeur dans la liste des valeurs. Le bouton:

Ajouter:
Permet dajouter ou de modifier lattribut au gon.

124

F.1.13 Fentre Ajout ou modification dun attribut de connexion

Dans cette fentre, il suffit de slectionner un attribut dans la liste des attributs et
une valeur dans la liste des valeurs. Le bouton:

Ajouter:
Ajoute ou modifie lattribut la connexion.

125

F.1.14 Fentre Fichiers 2D

Cette fentre permet de visualiser la liste des fichiers dimensionnels (2D) dune
pice de la base de donnes. Elle contient les boutons suivants:

Ajouter Fichier: Permet dajouter un fichier 2D la pice.

Mise jour fichier: Permet de mettre jour le fichier 2D slectionn.

Supprimer Fichier: Supprime le fichier 2D slectionn.

Tlcharger Fichier: Permet de tlcharger en local le fichier 2D slectionn.

Ancienne Version: Permet de rcuprer lancienne version du fichier.

126

F.1.15 Fentre Ajouter un fichier 2D une pice

Cette fentre permet dajouter un fichier 2D une pice. Tous les champs de
saisie doivent tre remplis. Elle contient les boutons suivants:

Ajouter Eclairage: Permet dajouter une source dclairage dans la liste.

Supprimer Eclairage: Permet de supprimer lclairage slectionn de la liste des


clairages.

Rechercher: Permet de slectionner le fichier 2D source en local.

Ajouter: Ajoute le fichier 2D la liste des fichiers 2D de la pice.

127

F.1.15.1 Fentre Ajouter une source dclairage

Tous les champs de saisie doivent tre remplis. Langle et la puissance de


lclairage sont exprims respectivement en degr et en Watts. Le bouton:

Ajouter:
Permet dajouter lclairage lors de la cration dun fichier 2D.

Remarque: Langle de lclairage est spcifi par rapport la verticale.

F.1.15.2 Fentre Mise jour dun fichier 2D

Cette fentre permet de mettre jour un fichier 2D dune pice. Elle contient les
boutons suivants:

Rechercher: Permet de slectionner le fichier 2D source en local.


Mise A Jour: Met jour le fichier 2D.

128

F.2 Construction dune base dinspection


F.2.1 Fentre Bases dinspection

Cette fentre permet de visualiser la liste des bases dinspection1 existantes. Elle
contient les boutons suivants:

Ajouter Base: Permet dajouter une nouvelle base rduite la liste.

Supprimer Base: Supprime la base rduite slectionne de la liste.

Spcifier base de travail: Permet de limiter la base de travail la base rduite


slectionne.

Une base dinspection permet de personnaliser la BD en nincluant pas les pices susceptibles de se
retrouver sur la chane dinspection pour une exprimentation donne.

129

F.2.1.1 Fentre Ajouter une base rduite

Cette fentre permet dajouter une base rduite la liste des bases rduites
existantes. Il faut que le nom de la base soit diffrent des noms des bases rduites
existantes. Pour faire passer des pices dans la liste des pices de la base rduite, il suffit
de slectionner les pices et dappuyer sur le bouton --> . Pour supprimer des pices de
la liste de la base rduite, il suffit de slectionner les pices voulues et dappuyer sur le
bouton <--. Le bouton:

Ajouter:
Permet dajouter la nouvelle base rduite la liste des bases rduites existantes.

130

F.3 Visualisation des gons existants

F.3.1 Fentre Gons existants/Gestionnaires

Cette fentre est spcifique aux gestionnaires. Elle permet de visualiser la liste des
gons existants. Elle contient les boutons suivants:

Ajouter Gon: Permet dajouter un nouveau gon la liste des gons existants.
Supprimer Gon: Supprime le gon slectionn de la liste des gons existants.
Dtails: Permet de voir la liste des attributs du gon slectionn (voir F.3.1.2
la page suivante).
F.3.1.1 Fentre Ajout dun nouveau gon

Cette fentre est spcifique aux gestionnaires, elle permet dajouter un nouveau
gon la liste des gons.
-

Il suffit de prciser ltiquette du nouveau gon.


Il faut que cette tiquette soit diffrente des tiquettes des gons existants.

Le bouton:

Ajouter:
Permet dajouter le gon la liste des gons existants.

131

F.3.1.2 Fentre Dtails sur un gon

Cette fentre est spcifique aux gestionnaires. Elle permet de visualiser la liste des
attributs dun gon. Elle contient les boutons suivants:

Liste des pices contenant le gon: Permet de visualiser la liste des pices contenant
le gon spcifi (voir F.1.10, page 121).

Ajouter/Modifier Attribut: Permet dajouter un attribut la liste des attributs du gon.

Supprimer Attribut: Supprime lattribut slectionn de la liste des attributs du gon.

132

F.3.2 Fentre Gons existants/Clients

Cette fentre est spcifique aux clients. Elle permet de visualiser la liste des gons
existants. Le bouton:

Dtails:
Permet de voir la liste des attributs du gon slectionn (voir F.3.2.1 la page
suivante).

133

F.3.2.1 Fentre Liste des attributs dun gon/Clients

Cette fentre est spcifique aux clients. Elle permet de visualiser la liste des
attributs dun gon. Le bouton:

Liste des pices contenant le gon:


Permet de visualiser la liste des pices contenant le gon spcifi (voir F.1.10,
Page 121).

134

F.4 Visualisation des attributs gon existants


F.4.1 Fentre Attributs/Clients

Cette fentre est spcifique aux clients. Elle permet de visualiser la liste des
attributs gons ou connexions et leurs valeurs.

135

F.4.2 Fentre Ajout ou modification dun attribut de gon/Gestionnaires

Cette fentre est spcifique aux gestionnaires. Elle permet de visualiser et


modifier la liste des attributs ou connexions et leurs valeurs. Elle contient les boutons
suivants:

Ajouter Attribut: Permet dajouter un attribut la liste des attributs existants pour le
gon ou la connexion.

Supprimer Attribut: Supprime lattribut slectionn et toutes ses valeurs de la liste des
attributs existants.

Ajouter Valeur: Permet dajouter une valeur lattribut slectionn.

Supprimer Valeur: Supprime la valeur slectionne des valeurs de lattribut.

136

F.4.2.1 Fentre Ajout dun attribut la liste des attributs existants

Cette fentre est spcifique aux gestionnaires. Elle permet dajouter un attribut
la liste des attributs existants. Il faut spcifier tous les champs de saisie. Le bouton:

Ajouter:
Ajoute lattribut la liste des attributs existants.

F.4.2.2 Fentre Ajout dune valeur un attribut

Cette fentre est spcifique aux gestionnaires. Elle permet dajouter une valeur
un attribut. Il faut remplir tous les champs de saisie. Le bouton:

OK:
Ajoute la valeur aux valeurs de lattribut.

137

F.5 Visualisation des attributs connexion existant


Cette section hrite des mmes fentres que la section F.4 prcdente. Seules, la
liste des attributs et la liste des valeurs sont diffrentes. De plus, elle traite des attributs de
connectivit entre 2 gons dans une pice, tandis que la section prcdente traite des
attributs des gons existants.
F.6 Visualisation/Modification des types de fichier et dclairage
F.6.1 Fentre Type de fichier et type dclairage

Les boutons:

Type de fichier: Permet de visualiser ou de modifier les types de fichier existants.


Type dclairage: Permet de visualiser ou de modifier les types dclairage existants.
F.6.2 Fentre Types de fichiers

Cette fentre permet de visualiser la liste des types de fichiers existants. Elle
contient les boutons suivants:

Ajouter Type: Permet dajouter un nouveau type cette liste.


Supprimer Type: Supprime le type slectionn dans la liste.

138

F.6.3 Fentre Ajout dun nouveau type de fichier

Cette fentre permet dajouter un nouveau type de fichier. Le nom du type doit
tre diffrent du nom des types existants. Si le type est Fichier 2D, on pourra avoir
plusieurs fichiers de ce type par pice. Le bouton:

Ajouter:
Permet dajouter un nouveau type de fichier.

139

F.6.4 Fentre Types dclairage

Cette fentre permet de visualiser la liste des types dclairage existants. Les
boutons:

Ajouter Type: Permet dajouter un nouveau type dclairage cette liste.

Supprimer Type: Permet de supprimer le type dclairage slectionn dans la liste

F.6.4.1 Fentre Ajout dun nouveau type dclairage

Cette fentre permet dajouter un nouveau type dclairage. Le nom du type doit
tre diffrent des noms des types dclairage existants.

Tout ce que jarrivai dire, cest: Merci mon dieu.


Je devais lui accorder tout le mrite. Sil ne mavait pas
aid, le travail naurait jamais pu tre achev.

Toute fin est un nouveau commencement!


Wajdi ABBOUD

Anda mungkin juga menyukai