ACONIT-PSTC : Jean-Raymond Abrial, une vie de recherche basée sur la notion informatique de donnée
Publié par ACONIT (Association pour un Conservatoire de l'Informatique et de la Télématique), le 16 février 2022 2k
par Xavier Hiron, à partir d'un cours donné à l'IMAG dès 1971
Il y a à peine plus de 50 ans, Jean-Raymond Abrial, ingénieur en informatique, ancien élève de l'Ecole polytechnique (promotion 1958) et spécialiste des langages de bases de données, développait au sein de l'Université de Grenoble (IMAG) un cours fondateur de 215 pages sur la structuration des bases de données. Le sous-titre de la première partie de ce cours en exprime l'aspect fondamental et toute la portée théorique : « Le point de vue existentiel. » De fait, son approche méthodologique particulière aura un retentissement durable dans le domaine du développement logiciel, par le biais de la spécification formelle.
Dans la première partie de son cours, la notion informatique de « donnée » est précisée : elle est en effet étudiée tel un objet vivant caractérisé par un lien (induisant une localisation), un nom et une valeur. Cet objet possède donc une structure élémentaire qui permet de définir des niveaux de relations entre différents objets de natures similaires. Dans un contexte (début des années 1970) où les systèmes informatiques étaient encore difficiles à appréhender, il s'agissait d'un cours innovant. Contrairement à ses prédécesseurs qui s'attachaient à décrire matériel et fichiers en approche montante (bottom-up), Jean-Raymond Abrial introduisait une analyse top-down (ou descendante), en partant du besoin final pour définir l'implémentation nécessaire, prise du point de vue logique.
Le but de ce cours était alors de donner une compréhension a priori de mécanismes simples qui se retrouvent au cœur de tout système d'informations (compilation de données), en établissant les bases indispensables pour aborder de manière générale, par leurs documents techniques associés, les structures matérielles et logicielles disponibles sur le marché.
Détail de la méthodologie mise en place par Jean-Raymond Abrial
Le but premier de l'auteur est d'appréhender la notion de variabilité des « données », notion encore nouvelle pour l'époque considérée, à partir d'exemples concrets tirés de la vie courante. Pour ce faire, le premier exemple qu'il invoque concerne les caractéristiques de civilités d'une personne physique identifiée. Sa désignation, par exemple, peut changer au cours du temps, du fait de l'évolution de sa situation sociale ou de sa fonction. Avec l'âge, son apparence physique est elle aussi sujette à modification. De même, ses caractéristiques administratives ou son adresse (lieu d'habitation) sont envisagées comme des éléments de type événementiel. Il n'existe donc pas une manière univoque de caractériser une personne. D'où la multiplicité des annuaires : classés par rue, nom ou profession par exemple.
Ces évolutions d'identification permettent à Jean-Raymond Abrial d'aborder de plain-pied la notion d'ambiguïté : en effet, une adresse n'est pas ambiguë à un moment donné, mais elle est souvent évolutive dans le temps (chacune devenant caduque après un déménagement). D'où l'auteur déduit les notions d'ambiguïté dans l'espace (par exemple, nos déménagements) et d'ambiguïté dans le temps (par exemple, certains noms ou surnoms). Le traitement informatique d'une donnée génère le même genre de modifications de ses caractéristiques, soit descriptives, soit d'adressage, voire même de nature, à l'image des éléments d'identification d'une personne.
Figure n° 1 : exemple de flux montant et descendant des données, dans le cadre d'un traitement informatique type sur un ordinateur de l'époque (IBM 370/165 par exemple)
D'où la nécessité de définir un élément minimal qui, au niveau d'une donnée, peut être considéré comme non ambigu dans le temps et dans l'espace. Or même dans le domaine mathématique, le recours à des surnoms (ou noms de substitution) peut s'avérer courant, comme dans l'exemple ci-dessous : « Soient un cercle C et une droite D qui se coupent en deux points P et Q. » Ces mêmes lettres soulignées pouvant bien évidemment désigner d'autres objets dans un autre contexte…
D'où il ressort que les seules caractéristiques non ambiguës d'une données ne peuvent l'être que par convention. Le cours établit donc la notion de « clé », bien connue de nos jours dans les modèles de gestion de données et destinée à désigner sans ambiguïté une donnée. Notons que cette notion technique de clé existait déjà dans les systèmes de fichiers de l'époque (séquentiel, direct ou séquentiel indexé), mais restait attachée à leur seule organisation.
Figure n° 2 : organisation (ou hiérarchie) des différents niveaux de mémoire dans un ordinateur actuel (wiki commons).
Le traitement informatique des données
Ces éléments de réflexion préalables, établis par analogie avec des situations de la vie courante, autorisent l'auteur à introduire une structuration fonctionnelle spécifique au traitement informatique des données. Jean-Raymond Abrial définit ainsi les espaces et les lieux de différentes natures qu'il est possible de dédier à une donnée. Ce peut être, par exemple, une table d'occupation, un ordre de grandeur ou une hiérarchie de supports. L'auteur détaille aussi comment se constitue l'espace des noms (entre fonctions enregistrées et fonctions calculées), ce qui génère la notion de Catalogue. Parallèlement à l'établissement de ces catalogues, la notion d'espace des valeurs implique la création de Tables de symboles. Ainsi structuré sur la base de grilles ou de tables, le traitement informatique des données se caractérise par la mise en œuvre de liaisons à établir par instructions entre les différents espaces (ou localisation) alloués aux données. Du au traitement informatique, ces espaces deviennent dynamiques.
Figure n° 3 : exemple de schéma de modèle conceptuel des données (MCD) utilisé en techno conception de bases de données (wiki commons).
Au final, Jean-Raymond Abrial en revient à la notion initiale d'opérations existentielles qu'il est possible d'envisager sur une donnée (non limitatif). Après avoir définit en quoi consiste une classe de données - croisement d'opérations multiples pouvant amener la création d'une métadonnée : baptème générique (nouveau nom), initialisation (nouveau type), allocation générique (dans une table, par exemple de symboles) -, il évoque plus précisément les opérations qui interviennent le plus couramment lors d'un traitement de données : suppression de genre, création ou suppression d'une donnée, localisation ou désignation de cette donnée, son accès ou le contrôle de sa conformité.
Cette démarche rationnelle rigoureuse, porteuse d'une approche sémantique intrinsèque, joue un rôle fondateur pour la définition, l'organisation et le traitement d'un domaine (la génération des données) qui s'avèrera par la suite en expansion continue. C'est en effet sur cet appareil intellectuellement structurant que seront bâtis les systèmes élaborés, tels que Socrate par exemple, ouvrant sur des possibilités d'évolution logicielle d'une très grande ampleur. Et ce, quel que soit le langage de programmation à typage simple sur lesquels ils s'appuyaient (parmi lesquels, à l'époque : APL, PL 1, ALGOL). Les langages de troisième génération qui en découleront intégreront cette notion élargie de type : PASCAL, ADA,...
Evolution vers les systèmes complexes de gestion des données
Les travaux théoriques entamés dès le début des années 1970 par Jean-Raymond Abrial auront une grande audience et une large postérité. Après l'aventure du projet SOCRATE - système de gestion de bases de données (SGBD) industrialisé par SYSECA -, ils déboucheront sur le concept de notation Z, créé par Jean-Raymond Abrial lui-même dès avant 1980 pour EDF. Ces notes internes faisaient suite à un article qu'il avait publié en 1974 et intitulé Data Semantics in Data Base Management (Kimbie, Koffeman, eds, North-Holland, 1974, p. 1-59).
La retombée la plus importante sera pour la RATP de réaliser la qualification de ses programmes de contrôle de la ligne de métro n° 14 (certification du comportement de programmes temps-réel écrits en ADA, et spécifiés par la suite en méthode B). En effet, Jean-Raymond Abrial, après avoir porté la notation Z au Programming Group d'Oxford en septembre 1987, l'a cependant abandonnée pour proposer la Méthode B (voir plus loin), au cours des années 1980. La première norme internationale (ISO) sur Z a été publiée en juillet 2002.
La méthode B, pour sa part, est une méthode formelle qui permet le raisonnement sur des systèmes de complexité grandissante, dans le but d'en assurer le développement logiciel. Elle permet notamment de modéliser de façon abstraite le comportement et les spécifications d'un programme logiciel puis, par raffinements successifs, d'aboutir à un modèle concret dans un sous-ensemble du langage B, transcodable et exécutables en Ada ou en langage C. Une activité de preuve formelle de ces programmes permet de vérifier la cohérence du modèle abstrait et la conformité de chaque raffinement avec le modèle supérieur (prouvant ainsi la conformité de l'ensemble des implémentations avec son modèle initial).
Conclusion
L'approche précurseur mise en place par Jean-Raymond Abrial à partir de la représentation élémentaire d'une donnée a permis de remonter d'un cran le niveau de modélisation de leur gestion. Même si les notions de type et d'objet ont fait partie d'un courant de pensée ayant impliqué de nombreux experts et chercheurs de son époque, les définitions préalables introduites par l'informaticien Jean-Raymond Abrial, assimilant une donnée à un objet, contribueront à ouvrir une voie durable à la méthode de programmation dite orientée objet (object-oriented programming ou OOP), qui est la plus usitée de nos jours. Ce modèle abstrait de programmation offre de nombreux avantages, dont son adaptabilité, sa modularité et sa sureté. Ces qualités ont permis au monde numérique d'aujourd'hui d'exister à une très vaste échelle.
C'est donc au niveau même de l'organisation des méthodes de travail que la vision développée par Jean-Raymond Abrial est devenue précieuse : elle a apporté une meilleure perception des implications de la programmation (spécifications préalables, conception, tests de validation...), induisant une amélioration significative des dispositifs de développement du génie logiciel.
Pour aller plus loin :
Jean-Raymond Abrial est plus précisément Ingénieur en Génie Maritime, Ecole polytechnique, diplômé en 1960. Avant d'être enseignant-chercheur au sein de l'IMAG de Grenoble, après son recrutement par Louis Bolliet, il a passé un Master en informatique en 1963-1965 à l'université de Stanford. Il a notamment travaillé au Centre de Programmation de la Marine à Paris pour la mise au point d'un langage de programmation Temps-réel (LTR), ainsi que pour le projet SENIT de suivi des navires. Par la suite, il a été nommé chef du projet Socrate à l'IMAG (AC_24639), dans le but de développer et d'industrialiser ce Système de Gestion de Bases de Données (SGBD) en réseaux, grâce à un langage de requêtes spécifiques. Au final, il a travaillé sur la "sémantique" des langages de programmation.
En avril 2015, Jean-Raymond Abrial a présenté une conférence au Collège de France, dans laquelle il présente les acquis de ses travaux sur les langages Z, B, event-B (voir le lien :
http://www.college-de-france.f...)
Bibliographie sommaire :
- Modeling in Event-B, System and Software Engineering, Cambridge University Press, 2010 (ISBN 978-0-521-89556-9)
Ouvrage de référence sur l'utilisation d'Event-B (extension de B) pour la conception formelle de systèmes.
- The B Book, Assigning Programs to Meanings, Cambridge University Press, 1996 (ISBN 0521496195)
Ouvrage fondateur de la méthode B
- Formal Methods for Industrial Applications: Specifying and Programming the Steam Boiler Control, 1997,
Remerciements à Christian Jullien pour sa relecture attentive.