Vers une programmation des systèmes interactifs centrée sur la spécification de modèles exécutables

Le developpement des systemes interactifs (SI) met en jeu un nombre signicatif de composanteslogicielles et materielles selectionnees parmi un panel tres large et souvent versatile.Ainsi, chaque developpement s'appuie au minimum sur un langage de programmation, uneboite a outils dediee au developpement d'IHM, une plate-forme d'execution logicielle et uneplate-forme materielle. Par exemple, une application interactive pour plate-forme mobile d'exe-cution Android est construite sur la base du langage Java et de la boite a outils Android, etdoit pouvoir s'executer sur des plates-formes tres variees telles que les tablettes et les smartphones. Une application interactive pour le Web est par exemple developpee en utilisant leslangages JavaScript et HTML pour la plate-forme d'execution cliente, ainsi qu'en Java pourla plate-forme d'execution cote serveur.Cette grande variabilite induit une diculte quant aux choix des multiples composantes dedeveloppement a arreter. Une fois ces choix arretes, le developpement est contraint par lescapacites oertes par les composantes retenues. De plus, ces choix ne sont pas necessairementperennes. Le premier point ne facilite guere le developpement des SI allant au-dela des systemeshabituels. Le second point implique une refonte integrale du systeme des lors qu'une descomposantes utilisee devient obsolete.Une solution a la diculte inherente du developpement des SI est de focaliser l'eort surl'elaboration des dierents modeles du SI plutot que sur leur implementation. La modelisationdevient alors la partie non contrainte aux choix technologiques des composantes retenues etreste perenne car independante de ces composantes. Cependant, si de nombreux meta-modelesont ete proposes dans la litterature dans ce sens, force est de constater qu'ils ne sont pasmis en oeuvre par les boites a outils et les langages de programmation associes. Ainsi, lesmodeles restent trop souvent des modeles documentaires formalisant l'expression du besoin etservant de point d'entree a la programmation. Dans cette approche usuelle, la cohabitationdes modeles et des programmes qui les implementent n'est pas necessairement simple : lesmodeles se cantonnent a la couche specification du SI, tandis que les programmes restentdans la couche implementation . Les travaux presentes dans cette HDR visent a montrer comment il est possible de reduirele travail d'implementation en se focalisant sur l'elaboration de modeles executables. Ceci estrendu possible en denissant un meta-modele des SI sur la base des modeles conceptuels proposes par la litterature (tels que MVC, PAC et l'interaction instrumentale), et en outillant cemeta-modele d'un langage de programmation permettant de decrire les modeles des dierentescomposantes d'un SI ainsi que leur relation. Les dierents modeles, de part leur capacite as'executer directement sur les plates-formes materielles et logicielles cibles, ne sont plus desimples specications de programme. De plus, ils preservent une certaine independance relativementaux plates-formes ciblees, d'ou une perennite accrue. Les modeles presentes dans cememoire sont ainsi a considerer comme situes a un niveau au-dessus des boites a outils etlangages de programmation associes. Sont donc exclus les modeles de plus haut niveau quesont, par exemple, les modeles de tâches des utilisateurs.La langage Loa constitue la contribution principale de cette HDR. Une application ecriteen Loa fournit un ensemble de modeles lies entre-eux par des correspondances. Ces modelesdenissent les objets du domaine, leurs presentations graphiques, les interactions et les actionspar le biais de collections. Les correspondances sont fondees sur le concept d'operation active,les operations actives etant des operations usuelles sur les collections, telles que la selection, latransformation ou le tri, pour lesquelles des algorithmes incrementaux sont fournis. La theoriedes operations actives, nouvellement formalisee dans le memoire d'HDR sur la base de latheorie initiale publiee, denit un systeme de types elementaires et de types de collection surlequel un jeu d'une cinquantaine d'operations actives a ete deni. Il a ete montre que l'usagede ces operations actives dans le contexte du developpement des SI permet de repousserles limites des langages ou/et mecanismes de liaison de donnees proposes par les boites aoutils contemporaines dediees aux RIA (Rich Internet Applications). L'outillage (editeur etcompilateur) du langage Loa est cours de nalisation. Il permettra aux modeles ecrits en Loade s'executer sur dierentes plates-formes clientes telles la plate-forme JavaScript-HTML5 duWeb et la plate-forme Java+Swing, pour lesquelles l'implementation des operations actives adeja ete realisee.