Projet ANR-07-TLOG-0006 – IdM++ : Ingénierie des Modèle - Une approche en rupture
Programme : Technologies logicielles (TLOG) 2007
Année de financement : 2007
Coordinateur du projet : COMPAGNIE IBM FRANCE - CIE IBM FRANCE (COMPAGNIE IBM FRANCE - Cie IBM France)
Partenaires : Commissariat à l'énergie atomique et aux énergies alternatives; Entreprise autre que TPE ou PME; PME; PME; Université de Nantes
Montant : 811089.0 euros
Durée : 36 mois
Résumé : Le projet IdM++ propose une approche en rupture avec les pratiques actuelles de l’ingénierie des modèles. Notre approche repose sur l’idée clé que le lien qu’on établit entre modèles doit être déclaratif et abstrait, plutôt que procédural et concret , qu’il doit décrire les contraintes que doivent satisfaire les modèles mis en correspondance plutôt que la transformation d’un modèle à l’autre. Ce n’est que lors de la résolution qu’une mise en œuvre concrète et opérationnelle sera choisie. Séparée de sa mise en œuvre, la correspondance entre modèles peut être décrite de façon non-directionnelle et locale : elle devient alors arbitrairement navigable et composable, et elle admet des résolutions partielles.  Nous attendons de ce changement de perspective une simplification radicale des pratiques, simplification nécessaire pour ouvrir la voie à l’adoption généralisée des technologies d’IdM dans la conception et le développement logiciel.  En effet, l'IdM se décline actuellement surtout dans la production de code à partir de modèles métier abstraits, par exemple de modèles UML. Dans les applications avancées on commence à utiliser des chaînes plus longues de transformation, partant par exemple de modèles de besoins très éloignés du code. Mais les relations complexes entre ces modèles ne sont pas encore bien maîtrisées. Que l'on parle de liens de traçabilité ou de liens de correspondance entre ces modèles sémantiquement plus éloignés, il reste à maîtriser leur expression abstraite et leur exploitation concrète pour atteindre les objectifs d'une automatisation plus complète des chaînes de production et de maintenance du logiciel. Aucun atelier de gestion de modèles n'offre actuellement des facilités permettant d'atteindre ces objectifs.  C’est là le principal verrou que le projet IdM++ entend lever, en définissant un formalisme de haut niveau pour formuler la correspondance de modèles, formalisme qui devra posséder les bonnes propriétés pour permettre la mise en œuvre et la gestion d’applications arbitrairement complexes : transformations, éventuellement partielles, en chaîne , compositions, éventuellement partielles, multi-modèles , composition de transformation etc.  L’expérience du support informatique de certaines tâches de conception dans l’industrie manufacturière a mis en évidence leur grande complexité, et en particulier l’importance de leurs aspects combinatoires. Concevoir c’est faire des choix à l’intérieur de cadres imposés. La combinatoire de ces choix peut être immense. Elle est actuellement ignorée dans la plupart des travaux de l'IdM.  C’est là le second verrou auquel nous nous attaquons, et la seconde idée clé du projet IdM++ : les correspondances entre modèles étant exprimées comme contraintes, les choix de conceptions s’expriment comme des problèmes d’optimisation, domaine dans lequel on dispose de techniques efficaces pour traiter des problèmes très combinatoires. Nous nous attacherons en particulier à développer et à valider notre hypothèse que les problèmes posés par la transformation et le tissage de modèles se posent naturellement comme des problèmes de configuration de modèles, qu’ils peuvent être décrits avec les formalismes issus des travaux sur la configuration, et peuvent être résolus efficacement par les algorithmes qui ont été conçus pour résoudre cette classe de problèmes réputés difficiles. Une seule configuration ne suffisant en général pas, dans les cas complexes, pour définir une correspondance entre modèles, il faudra être capable de composer plusieurs configurations dans un formalisme ayant de bonnes propriétés. La correspondance ainsi définie devra être opérationnalisée selon le contexte souhaité par des outils de transformation et de génération de code pour aboutir à une cible combinant des appels au configurateur.  En définitive, on disposera, à l’issue de ce projet :  - D’une famille de langages déclaratifs adaptés à l'IdM, pour exprimer les relations ou correspondances entre modèles ,  - D’al