Projet ANR-06-BLAN-0219 – FLFS : Familles de Langages pour Familles de Systèmes
Programme : Programme blanc (BLANC) 2006
Année de financement : 2006
Coordinateur du projet : ASSOCIATION POUR LA RECHERCHE ET LE DEVELOPPEMENT DES METHODES ET PROCESSUS INDUSTRIELS (ARMINES) (ASSOCIATION POUR LA RECHERCHE ET LE DEVELOPPEMENT DES METHODES ET PROCESSUS INDUSTRIELS (ARMINES))
Partenaires : Association pour la recherche et le développement des méthodes et processus industriels; Institut national de recherche en informatique et en automatique; Na
Montant : 206400.0 euros
Date de début : 2006
Durée : 36 mois
Résumé : Traditionnellement le développement de logiciels ne s'appuie pas sur une connaissance approfondie du domaine ciblé, mais l'introduit de façon ad hoc et partielle avec une démarche peu formalisée et peu outillée, pour satisfaire des objectifs immédiats. Se faisant, les logiciels sont trop souvent appréhendés isolément, rendant difficile toute factorisation conceptuelle ou de mise en œuvre. Pourtant, il est fondamental de constater que les logiciels appartiennent toujours à une famille. Au sein d'une même famille, ils partagent un ensemble de points communs et exhibent des variations spécifiques. Nous désirons capturer cette réalité par l'utilisation de familles de langages. Du point de vue du développement logiciel, une famille de logiciels constitue un métier, c'est-à-dire, un vocabulaire, des notations, des règles, des représentations et des protocoles qui sont propres à un domaine. Par exemple, le domaine de la téléphonie comprend un ensemble de concepts, de règles, de protocoles et d'interfaces qui encadrent très précisément le développement de services de téléphonie.  Objectif Notre initiative de recherche vise à placer le métier au centre du processus de développement de logiciels. Elle a pour ambition de lever les verrous actuels du génie logiciel concernant la production à grande échelle, la robustesse, la fiabilité, la maintenance et l'évolutivité des composants logiciels. L'innovation consiste à concevoir un processus de développement logiciel en fonction d'un métier particulier (ou domaine applicatif). Ce processus couvre toutes les étapes du génie logiciel en combinant les trois approches émergentes suivantes :  *	La modélisation métier aussi appelée " ingénierie de modèles " ; *	Les langages de programmation métiers ou langages dédiés aussi appelés " Domain-Specific Languages " qui s'opposent aux langages généralistes et monolithiques ; *	La programmation générative et en particulier les aspects comme vecteurs de transformation de modèles et de programmes. 	Ces trois approches ont déjà démontré isolément des bénéfices génie logiciel concrets et reconnus ; leur combinaison permettra d'appréhender la totalité du processus de développement logiciel dédié à un métier donné. 	L'idée que nous désirons soutenir dans ce projet est que l'évolution de la recherche dans les domaines de l'ingénierie des modèles, des langages dédiés (DSLs), et de la séparation des aspects mène actuellement à une forte convergence au niveau international. Par ce regroupement de trois équipes françaises, chacune reconnue dans son domaine, nous pensons pouvoir contribuer à cette convergence en faisant avancer l'état de l'art de façon significative. Pour ceci nous désirons démontrer expérimentalement que la notion de famille de systèmes (ou de ligne de produits) peut s'appuyer sur un ensemble de langages dédiés que nous nommons famille de langages. Ces langages vont permettre de capturer des besoins amont (coté utilisateur final) aussi bien que des caractéristiques de mise en œuvre (coté plate-forme d'implémentation). La notion de chaîne de langages permettant d'exprimer des "mappings" explicites entre ces différents formalismes nous apparaît aujourd'hui un concept très prometteur. A partir d'expérimentations préliminaires menées dans le domaine de la téléphonie, nous sommes convaincus qu'il est maintenant possible d'organiser ces chaînes de langages et de traducteurs des deux cotés d'un langage pivot nommé DSPL (Domain Specific Programming Language), en amont du coté des besoins utilisateurs et en aval du coté de la traduction vers une plate-forme. Nous désirons confirmer cette intuition sur un sujet principal (téléphonie) et sur quelques sujets annexes (ordonnancement dans les systèmes, gestion de règles métier, gestion de données, réseaux de "streaming", etc.).  	 	Résultats attendus *	Des études de cas appuyant l'hypothèse avancée ci-dessus et portant sur les domaines mentionnés (téléphonie, ordonnancement dans les systèmes, adaptation de c...