Langages et modèles à objets

État des recherches et perspectives

Ouvrage coordonné par
Roland Ducournau,
Jérôme Euzenat,
Gérald Masini et
Amedeo Napoli

issu des cours du CIMPA
Collection didactique #19 de l'INRIA

ISBN: 2-7261-1131-9
527 pages -- 270FF (TTC)

couverture
The book is now available online here

[Avant-propos] [Préface] [Sommaire] [URLs] [Bibliographie] [Livre en ligne]

Avant-propos

L'ouvrage sur les langages à objets paru en 1989 (Masini et al. 1989) s'ouvrait sur la constatation que l'intérêt pour les langages à objets dépassait le cadre restreint des spécialistes et se terminait sur la certitude que les concepts d'objets allaient prendre une place de premier plan dans tous les domaines de l'informatique. Nous y sommes certainement. Gageons que l'identification quasi immédiate des objets informatiques avec leur contrepartie physique n'y est pas pour rien.
Le présent ouvrage fait le point sur la diffusion du « modèle objet » dans de nombreuses disciplines de l'informatique à un moment où les travaux de recherche se poursuivent intensément et où les résultats en termes de systèmes d'exploitation, de bases de données, de méthodologies et de représentations des connaissances par objets sont disponibles auprès des utilisateurs.

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.


Préface

par François Rechenmann

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


Sommaire

  1. Objets, classes, héritage : définitions
    Jean-François Perrot (Laboratoire d'Informatique de Paris VI)

    Génie logiciel et objets

  2. Eiffel : une approche globale pour programmer et réutiliser des composants logiciels
    Roger Rousseau (Laboratoire I3S, Université de Nice-Sophia Antipolis)

  3. Introduction à C++ et comparaison avec Eiffel
    Gérald Masini (LORIA),
    Karol Proch (Université Henri Poincaré Nancy 1)

  4. Méthodes et d'analyse et de conception par objets
    Michel Dao (France Télécom CNET/DAC/GTR)
  5. Les systèmes de gestion de bases de données objets
    Thérèse Libourel (LIRMM, Université de Montpellier 2)

    Développements avancés de la notion d'objet

  6. Objets pour la programmation parallèle et répartie : intérêts, évolutions et tendances
    Jean-Pierre Briot (Laboratoire d'Informatique de Paris VI),
    Rachid Guerraoui (Laboratoire des Systèmes d'Exploitation/EPFL)

  7. Programmation parallèle et réactive à objets
    Denis Caromel (Université de Nice-Sophia Antipolis / INRIA Sophia Antipolis),
    Yves Roudier (Electrotechnical Laboratory (ETL), Ibaraki 305, Japon)

  8. Les langages à prototypes
    Christophe Dony (LIRMM, Université Montpellier 2),
    Jacques Malenfant (Université de Bretagne Sud, CGU de Vannes),
    Daniel Bardou (LIRMM, Université Montpellier 2)

  9. Objets et contraintes
    Jérôme Gensel (INRIA Rhône-Alpes)

    Objets pour la représentation des connaissances

  10. Représentation de connaissance par objets
    Jérôme Euzenat (INRIA Rhône-Alpes)

  11. Les logiques de descriptions
    Amedeo Napoli (LORIA)

  12. La logique des objets : application à la classification incertaine
    Roland Ducournau (LIRMM, Université Montpellier 2)

    Exigences des applications

  13. Objets et musique
    François Pachet (Sony CSL en disponibilite du LIP6)

  14. RESYN : objets, classification et raisonnement distribué en chimie organique
    Philippe Vismara (ENSA-M),
    Pierre Jambaud (LIRMM, Université Montpellier 2),
    Claude Laurenço (CCIPE),
    Joël Quinqueton (LIRMM, INRIA, Université Montpellier 2)

  15. Représentations par objets et classifications biologiques
    Jacques Lebbe (Université Pierre et Marie Curie)

URLez avec les LOO

Sont directement accessibles ci-dessous les URL cités dans le texte du livre:
  1. Objets, classes, héritage : définitions
    Objective CAML.
  2. Eiffel : une approche globale pour programmer et réutiliser des composants logiciels
    Interactive Software Engineering, SIG Computer, Tower Technology, SmallEiffel.
  3. Introduction à C++ et comparaison avec Eiffel
  4. Méthodes et d'analyse et de conception par objets
    Object Management Group, Rational Inc., Object Database Management Group.
  5. Les systèmes de gestion de bases de données objets
  6. Objets pour la programmation parallèle et répartie : intérêts, évolutions et tendances
  7. Programmation parallèle et réactive à objets
  8. Les langages à prototypes
    ProtoTalk.
  9. Objets et contraintes
  10. Représentation de connaissance par objets
    Troeps release, Troeps knowledge servers.
  11. Les logiques de descriptions
    Ressources sur les logiques de descriptions.
  12. La logique des objets : application à la classification incertaine
  13. Objets et musique
  14. RESYN : objets, classification et raisonnement distribué en chimie organique
  15. Représentations par objets et classifications biologiques
    Systematics Agenda 2000, Species 2000, Tree of Life, Web Lift to Any Taxon, Clé des invertébrés marins de la côte est de l'Amérique du Nord.

Bibliographie

La bibliographie standard originale rassemblant toutes les références du livre au format BibTeX se trouve ici. Une mise à jour de celle-ci se trouve ici

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"}

Commander l'ouvrage

L'ouvrage n'est plus diffusé par l'INRIA. Il est disponible en PDF ici et à partir du serveur HAL.

Photo

La photo des participants à l'école d'été.
$Id: index.html,v 1.12 2021/12/15 20:38:55 euzenat Exp $