Istar : vers la conception orientée-système des interfaces post-WIMP et leur développement par composants réactifs
Stéphane Chatty (ENAC) Au pic de leur popularité dans les années 1990, les interfaces graphiques WIMP (windows, icons, menus, pointer) se prêtaient relativement bien à l'application du modèle à objets, sinon pour leur conception du moins pour leur programmation : on pouvait assez aisément considérer les widgets comme des objets et les IHMs comme leur assemblage selon différents patrons bien connus. Mais cette époque est révolue à tous points de vue : l'interaction entre utilisateur et composants logiciels, entre composants logiciels eux-mêmes, ainsi qu'entre les différents acteurs de leur réalisation, est désormais d'une telle richesse que le modèle de découpage du logiciel en objets qui communiquent par messages ne fonctionne plus bien. Par exemple, il ne se prête naturellement ni à la description d'une animation, ni à celle de l'interaction entre la main de l'utilisateur et son écran tactile. Il faut un modèle de description qui rende compte tant du découpage d'un composant interactif en sous-composants (objets graphiques, animations, comportements) que de celui d'un processus d'interaction entre sous-processus, ou celui d'un grand système socio-technique en sous-systèmes, le tout en rendant compte du parallélisme qui régit les interactions entre tous ces composants et systèmes. Istar est un environnement de programmation d'IHM post-WIMP, dans lequel tout programme est un arbre de composants et de sous-composants. Le modèle d'exécution sous-jacent à base de processus interagissants permet non seulement de comprendre l'exécution d'un programme comme l'ensemble des interactions entre ses composants, il permet aussi de décrire l'ensemble des interactions entre le logiciel, l'ordinateur, l'utilisateur, et leur contexte, comme les interactions entre les sous-systèmes d'un système macroscopique. On dispose ainsi d'un modèle homogène pour l'analyse des situations d'interaction, pour la conception des systèmes interactifs, et pour la programmation des logiciels correspondants. |