Les technologies logicielles ont beaucoup évolué ces
dix dernières années. Des démarches comme les
modèles de composants ou l'ingénierie des modèles
sont aujourd'hui au centre de nombreuses recherches, en particulier à l'INRIA.
La conception de logiciels et tout ce qui l'entoure (outils de développement,
assemblage, tests, déploiement, exécution, administration…)
globalement défini par le terme ingénierie logicielle, évolue
au gré de la complexité croissante des systèmes
développés, de plus en plus souvent embarqués,
répartis entre plusieurs machines, fonctionnant en temps réel...
Il est désormais courant pour un industriel de développer
des logiciels de plusieurs millions de lignes de code. D'autre part,
les contraintes de productivité, de qualité et de flexibilité sont
sans cesse accrues. De toutes ces évolutions découle
en particulier un fort besoin d'automatisation.
Les principaux développements actuels en ingénierie
logicielle trouvent une partie de leur source dans le déploiement
des technologies à objets, désormais largement répandues
que ce soit pour l'analyse, la conception ou l'implémentation
des systèmes informatiques. En 1991, l'OMG (Object
management group), le consortium de standardisation dédié à ces
technologies, a défini une architecture logicielle de référence
pour des applications réparties - plusieurs composants qui
coopèrent sur plusieurs sites - utilisant les technologies à objet
: baptisé Corba, elle permet à des applications développées
dans des langages différents de communiquer, même si
elles ne sont pas sur le même ordinateur. Corba est une sorte
d'intergiciel, une classe de logiciels qui assure des fonctions intermédiaires
entre le transport des données et les applications comme des
fonctions de communication, de distribution des tâches ou des
propriétés comme la sécurité. Ce standard
est largement utilisé dans l'industrie en particulier pour
les systèmes d'information des serveurs d'entreprises et dans
des applications de commande et de contrôle dans l'armée,
pour certaines applications industrielles ou dans les télécommunications.
Déployer automatiquement du logiciel
pour les applications réparties
Concernés par la conception d'applications réparties
complexes – avec des contraintes spécifiques -, les chercheurs
du projet de recherche
JACQUARD se
sont rapidement intéressés à Corba. Pour résoudre
certains problèmes d'utilisation du logiciel, ils ont conçu
dans le cadre de la thèse de Philippe Merle un langage de script
pour Corba (un langage de programmation avec des propriétés
spécifiques). Aussi, lorsqu'en 1997, l'OMG a lancé un
appel à proposition sur le sujet, l'équipe a proposé sa
solution, baptisée Corba scripting language, qui a été retenue
en 2000. Du même coup, les chercheurs se sont familiarisés
avec le fonctionnement de l'OMG et ont suivi les travaux menés
dans les autres groupes de travail, en particulier concernant les modèles à base
de composants logiciels, approche initiée par l'OMG en 1997
particulièrement adaptée aux applications réparties.
De fait, les modèles à objets permettent de construire
du logiciel mais ne permettent par exemple pas le déploiement
automatique du logiciel sur un ensemble de machines, comme cela est
nécessaire dans les applications réparties ; les modèles à base
de composants apportent cette fonction, de manière transparente.
Les chercheurs de JACQUARD ont rapidement intégré le
groupe de travail sur le sujet et en ont finalement pris la direction
en 2000. La recommandation Corba intégrant le modèle
de composants est sortie en 2003.
En parallèle, ils ont expérimenté les modèles
de composants jusqu'en 2002 sur leur propre prototype logiciel, une
plate-forme baptisée OpenCCM développée dans le
cadre du consortium ObjectWeb - créé par l'INRIA, France
Telecom et Bull pour développer des intergiciels de qualité,
en libre accès. Les recherches et développements se sont
ensuite poursuivis dans le cadre de projets nationaux (RNTL IMPACT,
RNRT COMPiTV, ACI GRID RMI) et européens (IST COACH, ITEA OSMOSE),
en particulier avec Thales et une société grecque, Intracom.
OpenCCM est diffusé sous forme de logiciel libre sur Internet
depuis 2003. Il a été téléchargé plus
de 2500 fois et l'OMG le considère comme une des deux plate-formes
de référence pour implémenter sa recommandation
de modèles de composants.
Au début des années 1990, pas moins d'une cinquantaine
de méthodes de modélisation par objets avaient été développées.
Pour assurer une certaine uniformisation de ces travaux, l'OMG a
recommandé fin 1997 le premier formalisme de modélisation
par objets unifié : UML (Unified modeling language). Les industriels
ont rapidement adhéré à cette technique de génération
de code à partir des modèles, une démarche à base
de représentations graphiques. Chacun a développé sa
variante d'UML, dédiée à son application : on
les appelle des langages dédiés et UML est devenu un
langage dédié parmi d'autres. Actuellement, les deux
principaux acteurs dans ce domaine sont IBM et Microsoft. Chacun
a développé sa plate-forme d'implémentation
et son outillage : Eclipse pour IBM et Visual studio pour Microsoft.
L'approche MDA
Les concepts ambitieux de l'ingénierie des modèles
Une des solutions qui permettrait d'harmoniser ces développements
un peu tous azimuts, assurer la compatibilité, l'interopérabilité de
ces langages dédiés est l'ingénierie des modèles.
Cette méthodologie de conception de logiciel fait l'objet
de nombreux travaux de recherches dans le monde. Elle a été retenue
en novembre 2000 comme une approche majeure par l'OMG, baptisée
MDA™ (Model driven architecture). Les objectifs sont multiples
et ambitieux : générer le code des logiciels automatiquement,
pouvoir passer facilement, de façon automatisée, d'un
modèle à un autre, d'un niveau d'abstraction à un
autre ou d'une application donnée à une autre par exemple
pour générer automatiquement des tests de composants
logiciels. L'approche est basée sur plusieurs normes techniques
déjà établies : des langages comme UML, des
langages de modélisation comme MOF (Meta object facility)
et surtout des langages de transformation de modèle comme
QVT (Query view transformation). QVT est une spécification
de langage de transformation de modèle, qui permet d'adapter
un modèle à de nouvelles contraintes, de transformer
n'importe quel langage dédié vers un autre. Ce langage
est au cœur de la réussite de l'approche MDA.
Deux équipes de l'INRIA (TRISKELL et ATLAS)
mènent des recherches sur l'ingénierie des modèles.
Elles ont exploré deux pistes différentes et complémentaires
autour de la transformation de modèles pour l'adapter aux
utilisateurs et ont développé deux langages de transformation
de modèles, en quelque sorte des implémentations de
QVT : ATL (ATLAS transformation language) développé par
ATLAS et MTL (Model transformation language), par TRISKELL.
ATL est un langage de transformation de modèles destiné à être
appliqué plus particulièrement à l'ingénierie
des données, autrement dit aux systèmes d'information
et aux systèmes de gestion de base de données. De fait,
leur taille ne cesse de s'accroître, les données qu'elles
contiennent sont de plus en plus hétérogènes
et complexes et les applications qui les utilisent de plus en plus
variées. ATL est issu de recherches menées en collaboration
entre l'INRIA, l'université de Nantes et une société brestoise,
TNI-Software. ATL et son environnement de programmation sont officiellement
disponibles en logiciel libre sur la plate-forme Eclipse d'IBM depuis
octobre 2004 (sur le site Generative model transformer). Cette même
année, ATL a reçu le prix innovation Eclipse d'IBM.
Parallèlement, l'équipe met en œuvre les mêmes
principes selon la démarche cette fois de Microsoft, dans
le cadre de conventions de recherche et étend les fonctionnalités
des opérateurs au-delà de la transformation en prenant
en compte par exemple le tissage de modèles. Ces travaux se
font principalement dans des projets de coopération industrielle
comme le projet européen ModelWare piloté par la société Thales.
Des partenariats forts avec d'autres industriels français
comme le groupe Sodifrance ont permis de développer d'autres
outils complétant ATL dans le cadre d'une plate-forme de recherche
en ingénierie des modèles (AMMA).
MTL est un langage objet
générique, une brique de base qui permet de développer
des " frameworks " (sortes de canevas d'application) de
transformation de modèles. TRISKELL s'intéresse à des
frameworks permettant des manipulations sémantiques puissantes
(reposant sur des opérateurs algébriques). MTL est
par exemple particulièrement adapté aux contrôles
de composants logiciels, dans le but d'assurer la fiabilité de
leur assemblage en particulier dans le cadre d'applications réparties.
Il permet de générer automatiquement des tests de composants
logiciels. C'est une autre façon de tirer parti de l'ingénierie
des modèles, en changeant de mode de représentation.
De fait, tester les composants logiciels, vérifier leur fiabilité avant
de les assembler est devenu une étape sensible et souvent
très coûteuse avant le déploiement d'une application.
Les chercheurs du projet TRISKELL avaient déjà travaillé sur
le sujet dans le cadre d'un projet national avec France Telecom,
Gemplus et la société Softeam pour définir des
techniques de tests en UML.
Proposer des solutions pour différents
domaines applicatifs
En outre, les applications réparties sont de plus en plus souvent
embarquées et fonctionnent en temps réel comme dans les
téléphones mobiles ou des systèmes pour l'automobile
ou l'aéronautique. Pour modéliser ces systèmes
complexes embarqués, les chercheurs d'AOSTE développent
depuis 20 ans des formalismes dits réactifs synchrones, baptisés
RTE-ML (Real time embedded - Meta language) comme Esterel ou les SyncCharts.
Ces langages sont finalement assez proches des diagrammes comportementaux
d'états et d'activités UML, à ceci près
qu'ils adhérent à une sémantique mathématique
synchrone, indispensable dans le cadre d'applications réparties.
La démarche a d'emblée intéressé les industriels
qui développaient UML pour des systèmes embarqués,
Thales en tête. En 2001, les chercheurs d'AOSTE ont conçu
un profil RTE-ML compatible avec UML dans le cadre d'un projet européen
avec Thales, Esterel Technologies (une start-up de l'INRIA), Nokia
et des universités finlandaises.
Par ailleurs, les chercheurs d'ATLAS s'intéressent à une
application particulière de l'ingénierie des modèles
: trouver des solutions génériques pour rénover
de façon automatique les anciens systèmes informatiques
programmés il y a plusieurs dizaines d'années (par exemple
en Cobol, PL/1 ou ADA), pour les adapter aux environnements technologiques
modernes. L'OMG a lancé une initiative sur le sujet en 2003
qui vise à résoudre ce problème industriel d'envergure
qui s'est déjà largement illustré au moment du
passage à l'an 2000 puis du passage à l'euro. La plate-forme
expérimentale d'ingénierie des modèles AMMA, avec
ses différents composants (transformation, tissage, projection,
gestion globale de modèles), sert de support à ces travaux
de rétro-ingénierie des systèmes d'information
où l'on se retrouve fréquemment confrontés à des
problèmes difficiles d'ingénierie de données.
Certains outils développés au sein de l'équipe
ATLAS devraient pouvoir être directement appliqués à cette
problématique industrielle de très grande importance.
Carroll : L'INRIA, partenaire incontournable
en ingénierie du logiciel
Dans le cadre du développement de ses systèmes d'électronique
de défense (maritime, terrestre ou aérienne), Thales
a initié en mars 2003 un partenariat de recherche sur trois
ans, baptisé
Carroll,
avec le CEA et l'INRIA dans les domaines de l'ingénierie logicielle
des modèles et des technologies des intergiciels. L'INRIA contribue
naturellement à ce partenariat grâce à ses compétences
reconnues dans les domaines de l'informatique embarquée et temps
réel, des applications réparties et des intergiciels.
Les projets ATLAS, TRISKELL et AOSTE de l'INRIA ont initié 3
des 4 projets de Carroll. En particulier, ATLAS et TRISKELL contribuent
au développement d'un langage de programmation compatible avec
QVT. Par ailleurs, l'équipe TRISKELL développe des méthodes
de génération automatique de tests de composants logiciels
et les chercheurs d'AOSTE ont pour objectif de standardiser à l'OMG
une solution issue de leur profil RTE-ML adapté aux systèmes
temps réel embarqués. Ils ont proposé un cahier
des charges des besoins du domaine (Request for proposal, RFP) qui
a été voté en janvier 2005. Grâce à leurs
travaux précédents, ils devraient ensuite être
bien placés pour répondre à cette RFP.