Langages et modèles à objetsÉtat des recherches et perspectives
Ouvrage coordonné par
ISBN: 2-7261-1131-9 |
The book is now available online here |
Ce livre est issu de l'école d'été « Langages et modèles à objets »
co-organisée par le Centre International de Mathématiques Pures et Appliquées
(CIMPA) et l'Institut National de Recherche en Informatique et en
Automatique
(INRIA) à Nice, au mois de juillet 1996. L'école a été
l'occasion pour les
auteurs de confronter leurs points de vue à ceux d'étudiants venus du monde
entier. Ce livre est aussi le résultat des nombreuses discussions menées au
sein
des groupes « Classification et objets » du PRC-GDR « intelligence
artificielle »
et « Évolution des langages à objets » du GDR « programmation »
ainsi qu'aux quatre conférences « Langages et modèles à objets »
qui se sont tenues entre 1994 et 1997.
Le but de l'école et du livre est de donner un aperçu de la diversité
des travaux développés
à l'heure actuelle autour de la notion d'objet. L'ouvrage n'est pas centré
sur quelques langages mais présente plutôt des grands thèmes
choisis de ces travaux. Ainsi, chaque chapitre a été rédigé par un
spécialiste du
sujet et tous sauf un ont été conçus spécifiquement pour cet ouvrage. Celui-ci
peut donc être lu sans connaissance préalable de langages particuliers mais
ne donnera pas de connaissance approfondie d'un langage ou de
son histoire.
On insiste en échange sur les grands principes de chacun des thèmes
en les caractérisant les uns pas rapport aux autres.
L'ouvrage commence par un chapitre prenant à revers les
analyses globales actuelles sur les objets afin de cerner, en partant de
l'implémentation, la nature de ces objets informatiques. En
revenant à la source de l'objet informatique, il permet d'ancrer la
suite de l'ouvrage dans le temps et dans la mémoire de l'ordinateur.
L'ouvrage est ensuite découpé en quatre
parties : génie logiciel et objets, développements avancés de la notion
d'objet, objets pour la représentation des connaissances et application des
objets.
Génie logiciel et objets.
Le succès actuel des objets vient d'abord de leur utilisation dans
la pratique de l'industrie du logiciel autant que dans les théories et
les méthodes du génie logiciel. La première partie est donc consacrée
aux aspects logiciels. Le chapitre 2 détaille ce qu'un langage et un
environnement de programmation par
objets (en l'occurrence Eiffel) peuvent apporter au développement de
logiciels importants. Cette première contribution est mise en
perspective dans le chapitre 3 où sont comparés les langages Eiffel et
C++. Mais les objets ont fini par prendre, ces dernières
années, leur place attendue dans deux domaines : il s'agit des
méthodologies de conception de programmes et des bases des données.
C'est à un état de l'art et un panorama des recherches en cours
dans ces deux domaines que sont consacrés les chapitres 4 et 5.
Développements avancés de la notion d'objet.
S'il est des domaines dans lesquels les objets occupent maintenant
une place prépondérante, il en est d'autres pour lesquels on peut
conjecturer que ce sera le cas à moyen terme. La
seconde partie de ce livre leur est consacré. Le chapitre 6 propose une
classification
des approches objets de la programmation parallèle et répartie. Il
semble clair que le développement des réseaux informatiques et des
ordinateurs parallèles renforcera le développement de ce type
d'approche. Le chapitre 7 est consacré à l'une d'entre elles. Dans la
présentation d'Eiffel//, c'est l'intégration des
principes de programmation par objets (réutilisabilité, abstraction) à
la programmation concurrente qui est présentée. Les prototypes (des objets
sans classes) permettent plus de souplesse dans le développement
incrémental des applications.
Les principes des langages à prototypes sont présentés dans le chapitre 8.
Bien que contraire à ceux du genie logiciel, ils permettent d'analyser plus
finement la véritable nature des objets. Enfin,
la programmation par contraintes et la programmation par objets sont déjà
le sujet de nombreux travaux. Leur union prometteuse, présentée au
chapitre 9, sera féconde lorsque certains problèmes liés à l'interaction
des deux approches auront trouvé des solutions harmonieuses.
Objets pour la représentation des connaissances.
Depuis le début des objets, les travaux sur la représentation des
connaissances
ont été le terrain de nombreux développements et expérimentations.
Comme en programmation, la capacité des objets informatiques à représenter
les objets modélisés est certainement l'un des aspects les plus déterminants
dans cette adoption. Mais, à l'instar des langages de programmation,
un consensus a du mal à voir le jour. Le chapitre 10 expose les traits
caractéristiques qui gouvernent
la représentation des connaissances par objets et introduit certains
développements actuels en s'appuyant sur le système Troeps. L'un des
développements
les plus aboutis de la représentation des connaissances est une famille de
logiques, les logiques de descriptions, détaillée dans le chapitre 11.
Les logiques de descriptions sont le résultat d'un développement théorique
donnant
lieu à leur classification sous le jour de l'expressivité
et de la complexité de la déduction. Le même type de démarche est présenté
dans le chapitre 12 qui concerne le noyau commun aux représentations
des connaissances et aux langages de programmation par objets : les systèmes
classificatoires. Ce travail aboutit à une analyse rigoureuse des mécanismes
de classification tels qu'on les trouve dans certains systèmes de
représentation des connaissances par objets.
Exigences des applications.
Enfin, la dernière partie est destinée à motiver les travaux sur les
objets par l'entremise de domaines d'application exigeants. Si les objets
semblent résoudre de nombreux problèmes, ils en posent aussi certains dont
la résolution est cruciale. Le chapitre 13 est consacré à RéSyn, une
application des représentations des connaissances par objets à la synthèse
de molécules en chimie organique. Ce type d'application pose le problème de la
représentation de graphes (que l'on retrouve dans les applications à
la gestion de réseau, par exemple). Il montre aussi
qu'une telle application fait appel à de nombreuses techniques (dont
la classification, objet des chapitres 11 et 12).
Les difficultés de traduire, en terme d'objets, les notions d'un domaine
ayant ses formalisations propres, tel que la musique, est ensuite
présenté au chapitre 14. Une telle traduction est contrainte par la
pauvreté relative du modèle objet. Mais lorsqu'elle est réussie,
elle est source d'une meilleure appréhension des notions modélisées.
Le chapitre 15 montre enfin que les classifications des objets
ne correspondent pas, dans leurs fondements, aux classifications
usuelles en sciences naturelles, qu'il s'agisse de classification
phylogénétiques -- puisqu'elles n'offrent aucune perspective
historique -- ou de clés d'identification -- parce que le langage n'est
pas adéquat. Ce dernier chapitre apporte, s'il en était besoin, du grain
à moudre aux travaux futurs dans le domaine de la classification.
Cette introduction ne serait pas complète sans remercier ceux à qui ce livre doit son existence : tout d'abord les auteurs, les organisateurs de l'école d'été du CIMPA (Agnès Gomez, Jean-François Prothé et le directeur du CIMPA, Claude Lobry) nous ont permis de confronter nos points de vue et de lancer l'idée de ce livre. En plus des auteurs dont les relectures croisées ont permis l'unité de l'ouvrage, Bernard Carré (LIFL, Lille), Isabelle Crampé (Inria Rhône-Alpes, Grenoble), Michel Page (Université Pierre Mendès-France, Grenoble), Marie-Christine Rousset (LRI, Orsay) et Stefano Spaccapietra (EPFL, Lausanne) doivent être remerciés pour leur relecture de certains chapitres. L'aimable autorisation des éditions Hermès a permis la publication du chapitre 6 (une version antérieure était parue dans la revue « Technique et science informatiques »). Enfin, le service d'imprimerie de l'INRIA (ou UCIS) a pris en charge la couverture et la réalisation matérielle de ce livre.
La tendance des scientifiques à conférer à des mots simples du langage
courant des acceptions nouvelles très spécialisées, recouvrant des concepts
peu accessibles, est bien connue.
Des catastrophes et du chaos aux groupes et aux anneaux, en passant
par les cordes et les charmes, les exemples s'accumulent.
En promouvant le terme « objet », les informaticiens ont probablement
poussé cette démarche à son extrême.
Existe-t-il en effet, aux exceptions près de « chose » ou
« entité », des termes plus vagues et génériques ?
Et pourtant, passée une courte période euphorique où toute
démarche, tout langage, tout formalisme suscitait l'intérêt, voire
l'enthousiasme, dès lors qu'il ou elle était
« orienté(e) objets », force est de constater qu'il existe bien,
autour de ce terme banal, un ensemble de concepts et de techniques
informatiques qui possède une certaine identité.
C'est à l'explicitation de cette identité que cet ouvrage participe.
Tâche difficile, car l'objet est maintenant présent dans plusieurs
domaines de l'informatique --- systèmes opératoires, langages de
programmation, génie logiciel, bases de données, représentation des
connaissances --- et, au delà de quelques caractéristiques
partagées, telle que la spécialisation de classes, il est difficile
de ne pas être frappé par la diversité des formalismes, des
langages et des mécanismes.
Mais la lecture des différents chapitres conforte progressivement
l'idée que l'apport des objets se situerait fondamentalement dans
leurs capacités de modélisation, à savoir la mise en relation
d'unités de description et d'entités d'un domaine d'intérêt.
C'est vraisemblablement de cette adéquation à la modélisation du
réel que découlent les propriétés tant appréciées des objets, y
compris aux niveaux les plus bas des systèmes informatiques.
Bien entendu, les capacités de modélisation attendues diffèrent
grandement, entre les niveaux où un objet « réel », tel que la
pile, archétype de l'objet informatique, se confond de fait avec son
modèle, et les niveaux où les objets modèles résultent d'un
processus délicat d'abstraction et de simplification dirigé par des
objectifs d'analyse et de compréhension.
Dès lors, la question est bien de savoir s'il convient ou non de
distinguer effectivement plusieurs niveaux de modélisation et d'y
associer des formalismes et des langages différents.
À ce titre, il peut être judicieux de s'interroger sur le décalage
croissant entre les notations proposées par les diverses méthodes
d'analyse et de conception par objets, qui mettent en avant la notion
très expressive de relation, et les langages de programmation à
objets, y compris les plus récents, qui l'ignorent et perpétuent la
tradition du « tout objet ».
Seul un ouvrage collectif est à même de montrer comment la
diversité des approches traduit les différences de
motivation.
Encore faut-il que les auteurs aient eu de fréquentes occasions de
confronter leurs idées et leurs travaux, afin qu'apparaisse
simultanément ce qui confère au domaine, et donc à l'ouvrage qui en
traite, son identité.
C'est bien le premier mérite de ce livre que de satisfaire pleinement
toutes ces exigences.
Loin de l'exposé des variantes syntaxiques de tel ou tel dialecte, ou
graphiques de telle ou telle méthode, cet ouvrage propose une vision
articulée de l'approche par les objets, contribuant à faire
reconnaître la pertinence de l'informatique pour la modélisation, et
donc la compréhension, du réel.
François Rechenmann
Directeur de recherche
INRIA Rhône-Alpes
L'entée BibTeX concernant le livre est la suivante :
@book{Ducournau1998, year = 1998, address = "Rocquencourt (FR)", editor = "Ducournau, Roland and Euzenat, J\'{e}r\^{o}me and Masini, G\'{e}rald and Napoli, Amedeo", language = "french", publisher = "INRIA", series = "Didactique", number = 19, isbn = "2-7261-1131-9", title = "Langages et mod\`{e}les \`{a} objets : \'{e}tat et perspectives de la recherche"}