Next: 6. Recherche en biologie
Up: 5. Du logiciel à
Previous: 5.2 Développement d'un outil
J'ai commencé à développer toutes ces approches
dans le cadre d'une thèse au LRI (Laboratoire de Recherche
en Informatique) à Orsay dans le
domaine des interfaces homme-machine,
sous la direction de Michel Beaudouin-Lafon.
L'objet de cette thèse est d'étudier sous quelles formes rendre les
ressources informatiques nécessaires aux biologistes les plus
adaptables, voire les plus programmables possibles. Il s'agit de ce
qu'on appelle la "programmation par l'utilisateur final", approche que
je développe en suivant deux axes : les techniques de programmation
susceptibles d'améliorer l'accessibilité à la programmation, et les
techniques de prise en compte de l'utilisateur dans le processus de
conception et d'innovation technique.
- a)
- Parmi les techniques qui peuvent rendre la programmation
plus accessible à des non-informaticiens, je me suis
intéressée essentiellement aux suivantes :
- la programmation par l'exemple, au sens de
programmation par démonstration ; par ce type de techniques, un
programme peut inférer un algorithme d'après les actions de
l'utilisateur (dans le plus raisonnable des cas, selon moi, on a un
éditeur d'historique de commandes) ;
- les langages prototypes permettent aussi une sorte de
programmation par l'exemple, mais dans un sens différent : il n'est
plus nécessaire de définir des classes, l'instanciation est remplacée
par le clonage et l'héritage par la délégation. L'intérêt de ces
langages est de permettre une approche plus concrète de la programmation ;
Self, qui est le plus connu et le plus abouti de ces langages, propose
un environnement de programmation très favorable à l'exploration, dans
lequel l'utilisateur peut à tout moment accéder au code, quelque soit
le niveau d'imbrication de l'objet concerné ;
- la programmation visuelle, en distinguant la programmation
de composants (Java beans) et la « programmation d'organigramme », qui
consiste tout au plus à manipuler des versions graphiques
d'instructions habituelles de contrôle, de test et d'affectation (Java
Studio) ;
- les frameworks : leur principal intérêt dans le cadre de
cette recherche est qu'ils fournissent une structure, en laissant
ouvertes les « zones » du logiciel qui relèvent de la compétence du
biologiste (c'est la démarche inverse de celle qui consiste à utiliser
des boîtes à outils) ;
- les tableurs : c'est une version possible de la démarche
« frameworks », où l'échafaudage est plus achevé - puisqu'il comprend
l'interface utilisateur, et où les cases à remplir sont les cellules ;
s'y ajoutent les possibilités de manipulation directe qui ont une
grande importance pour des non-informaticiens (et au fond, pour des
informaticiens aussi).
De nombreuses avancées de la recherche dans le domaine des méthodes et
techniques objet sont intéressantes sur la question de l'adaptabilité
du logiciel. Citons par exemple :
- les design pattern : ces catalogues de modèles de
conception qui exposent des principes validées par des années
d'expérience (et ne sont pas nouveaux en soi) ont pour intérêt
essentiel pour nous qu'ils sont souvent orientés vers l'adaptabilité
sous toutes ces formes : portabilité, évolutivité, paramétrage des
algorithmes... ;
- les protocoles méta-objets : ils sont nés de l'idée qu'il
faut laisser le programmeur intervenir sur les choix d'implémentation
d'un compilateur ou d'un interpréteur ; c'est une démarche de boîte
blanche qui, portée un cran plus haut dans les couches logicielles,
peut donner des lignes directrices sur les possibilités pour
l'utilisateur d'« ouvrir » le logiciel pour en modifier
l'implémentation, mais aussi et c'est ce qui nous intéresse, les
heuristiques, les variantes d'algorithmes, etc... Cette démarche
suppose bien sûr une description « méta » de ces comportements.
- b)
- Par ailleurs, quelques expériences ont montré qu'il peut être très
fructueux d'appliquer à l'Institut Pasteur les techniques de
conception participative. Ces techniques « ethno-sociologiques »
consistent à intégrer les utilisateurs dans tout le processus de
conception d'un logiciel, sous la forme de réunions de
brainstorming, de prototypage papier, de prises de scénario in situ
(plusieurs séances ont déjà été organisées). On peut attendre de cette
démarche plus qu'une validation des hypothèses techniques citées
ci-dessus : une réelle co-invention d'un outil, voire de nouvelles
idées de conception. Je développe cette démarche avec l'aide de Wendy
Mackay qui a appliqué ces méthodes et s'intéresse à l'innovation
technique.
(page de Wendy MacKay : http://www.daimi.au.dk/ mackay).
[2[
Next: 6. Recherche en biologie
Up: 5. Du logiciel à
Previous: 5.2 Développement d'un outil