- Principe de surprise minimum
-
Principe de moindre surprise
Le principe de moindre surprise peut être formulé de la façon suivante :
Éviter à l'utilisateur, de la façon la plus simple possible, toutes les (mauvaises) surprises.
Il est parfois appelé principe de surprise minimum ; en anglais, il reçoit les noms de :
- Principle of Least Astonishment (étonnement minimum) ;
- Principle of Least Surprise (surprise minimum) ou PoLS.
Sommaire
Définition
Le principe (ou règle) de moindre surprise s'applique essentiellement au domaine informatique, quoique l'on puisse aisément le transposer à de nombreux autres domaines, notamment dans l'ingénierie en général.
En informatique, il sert essentiellement dans les domaines suivants :
- conception d'interfaces homme-machine ;
- conception de langages informatiques (et en particulier de langages de programmation) ;
- ergonomie des logiciels.
On peut y voir une transposition, du domaine théorique au domaine pratique, du rasoir d'Occam ou principe d'économie. Lorsque deux éléments d'une interface entrent en conflit, il recommande de privilégier celui qui surprendra le moins l'utilisateur ou le programmeur.
Applications
Aide
De nombreux programmes utilisent, pour appeler l'aide :
- la touche « Aide » sous Mac OS X ;
- la touche « F1 » sous Windows ;
- les options -h et --help pour les applications GNU.
L'utilisateur s'attendant à ce que l'aide soit affichée à partir d'une telle action, les logiciels doivent donc s'y conformer.
Options
Dans les commandes de base des systèmes dérivés d'UNIX, ce principe acquiert une importance capitale. Par exemple, pour la commande cp qui sert à copier des fichiers, il existe les options suivantes :
- -r, qui permet de copier de façon récursive ;
- -f, qui permet de forcer la copie s'il existe déjà un fichier portant ce nom à l'emplacement cible.
La commande rm, qui sert à effacer des fichiers, adopte les mêmes options avec la même signification : c'est une application du principe de moindre surprise. Car si, pour des raisons plus ou moins contingentes, les concepteurs de cette commande avaient décidé d'inverser ces deux options, cela pourrait avoir, pour l'utilisateur, des conséquences dramatiques. L'application de ce principe constitue ainsi l'une des principales règles de la programmation ; sa formulation, pour le programmeur, pourrait être la suivante :
Adapte le comportement de ton programme à celui que peut raisonnablement attendre son utilisateur.
Hiérarchisation des comportements
La séquence Control-Q a souvent pour conséquence de quitter un programme dans certaines interfaces utilisateur. La même interface peut proposer de créer des macros. Si un utilisateur tape Control-Q à la fin de la définition d'une macro, il s'attend à quitter l'interface de définition de macros plutôt que le programme tout entier ; si le programme a choisi de donner la priorité à la sortie du programme plutôt qu'à la sortie de la définition de macros, l'utilisateur risque d'être surpris, et cette surprise peut avoir des conséquences qu'il n'avait pas prévues. Il convient donc de hiérarchiser les différents niveaux d'une interface (en l'occurrence, le niveau du programme et celui de la définition de macros), afin de rendre le programme le plus prévisible, par conséquent le plus confortable possible.
Voir aussi
Liens externes
- (en) "Applying the Rule of Least Surprise", extrait de The Art of Unix Programming d'E.S. Raymond
- (en) Principle of Least Astonishment au Portland Pattern Repository
- Portail de l’informatique
Catégories : Génie logiciel | Principe
Wikimedia Foundation. 2010.