Object-Oriented Software EngineeringPractical Software Development using UML and Java
Chapitre 7:
Focusing on Users and Their Tasks
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 2
7.1 Conception centrée sur l’utilisateur
Le développement d’un logiciel devrait toujours être centré autour des besoins de ses utilisateurs
• Bien comprendre qui sont les utilisateurs
• Bien comprendre les tâches que doivent réaliser ces utilisateurs
• S’assurer que les utilisateurs sont impliqués dans le processus de décision
• Concevoir l’interface utilisateur en suivant bien les lignes directrices établies
• Demander aux utilisateurs d’évaluer les prototypes et de faire part de leurs commentaires
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 3
L’importance d’être centré sur les utilisateurs
• Réduit les coûts liés à la formation et au support
• Diminue le temps d’apprentissage
• Permet une utilisation plus efficace
• Permet de ne développer que les options qui sont réellement requises
• Réduit les coûts liés aux modifications subséquentes
• Permet de mieux définir les priorités dans le développement
• Rend le système plus attrayant et mieux adapté à son marché
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 4
7.2 Caractéristiques des utilisateurs
L’ingénieur logiciel doit bien connaître les utilisateurs
• Quels sont leurs buts
• De quelle façon utiliseront-ils le logiciel
• Quelle sont les caractéristiques démographiques des utilisateurs
• Quel est leur niveau de connaissance de l’informatique
• Quels sont leur habilités physiques
• Quelles sont leur caractéristiques psychologiques et émotives
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 5
7.3 Les bases de la conception des interfaces utilisateur
• La conception des IUs devrait se faire en conjonction avec les autres activités de développement
• L’analyse de cas permet de connaître les tâches que les IUs doivent permettre de réaliser
• Les prototypes de IU se créent de façon itérative, par exemple en incorporant un cas-type à la fois
• Les prototypes produits aident à compléter la liste des exigences
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 6
Utilisabilité vs Utilité
Est-ce que le système permet à l’utilisateur de réaliser ses tâches?
• C’est l’utilité
Est-ce que le système permet à l’utilisateur d’apprendre et de comprendre comment utiliser le système?
• C’est l’utilisabiltié aussi appelée convivialité
Ces deux aspects sont essentiels
• Ils se mesurent dans le contexte des utilisateurs particuliers du système
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 7
Les différents aspects de l’utilisabilité
L’utilisabilité comprend différents aspects:
• Facilité d’apprentissage—La vitesse à laquelle un nouvel utilisateur peut arriver à utiliser
le système
• Efficacité d’utilisation—Avec quelle rapidité un utilisateur entraîné arrive à accomplir
ses tâches
• Traitement des erreurs—Jusqu’à quel point le système prévient les erreurs, les détecte et
aide à les corriger
• Acceptation
—Jusqu’à quel point les utilisateurs apprécie ce système
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 8
Courbes d’apprentissage
0
20
40
60
80
100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Days of learning
Complexsystem,hard tolearn
Simplesystem,easy tolearn
Simplesystem,hard tolearn
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 9
Terminologie de base dans la conception des interfaces utilisateur
• Dialogue: Une fenêtre avec laquelle un utilisateur interagit mais qui n’est pas la fenêtre principale
• Contrôle (Widget): une composante spécifique d’une interface• Affordance: L’ensemble des opérations qu’un utilisateur peut
effectuer à un certain instant• État: à un certain point, le système affiche une certaine
information, certains contrôles, et a une certaine affordance• Mode: une situation où l’IU restreint les opérations que peuvent
faire l’utilisateur• Dialogue modale: Un dialogue plaçant le système dans un mode
restrictif• Rétro-action: la réponse du système à une action de l’utilisateur• Technique de codage: Différentes façons de représenter
l’information afin de communiquer avec l’utilisateur
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 10
7.4 Quelques principes pour l’utilisabilité
1. Ne pas se fier seulement sur ces lignes directrices – toujours effectuer des tests avec les utilisateurs
• Les principes mentionnés ici comporte toujours des exceptions; une interface est de bonne qualité seulement si les utilisateurs la jugent ainsi
2: Baser la conception des IUs sur les tâches que doivent réaliser les utilisateurs
• Effectuer une analyse de cas afin de structurer l’IU
3: S’assurer que la séquence des actions requises pour réaliser une tâche est aussi simple que possible
• Réduire la quantité d’information à lire et les manipulations à faire
• S’assurer que les utilisateurs ne doivent pas avoir à se promener un peu partout afin de réaliser une tâche
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 11
Quelques principes pour l’utilisabilité
4: S’assurer que les utilisateurs savent toujours ce qu’il doivent faire ensuite
• Les utilisateurs doivent toujours savoir quelles commandes sont disponibles et lesquelles ne le sont pas
• Rendre plus apparente les commandes plus importantes
5: Fournir une bonne rétro-action
• Informer les utilisateurs du progrès des opérations en cours, du point où ils en sont
• Lorsque qu’un problème surgit, expliquer en détails les causes et aider l’utilisateur à résoudre ce problème
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 12
Quelques principes pour l’utilisabilité
6: S’assurer qu’il est toujours possible de reculer, de sortir ou de défaire les tâches en cours
• L’action undo devrait toujours être disponible• Les options next et back vont de pair
7: S’assurer que le temps de réponse est adéquat• Les utilisateurs sont très sensibles aux temps de réponse
trop longs—cela peut rendre un système moins attrayant
• Garder le temps de réponse sous la seconde pour la plupart des opérations
• Avertir l’utilisateur lorsqu’un temps réponse plus long est anticipé et l’en informer de la progression
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 13
Quelques principes pour l’utilisabilité
8: Utiliser des techniques de codage facilement compréhensibles
• Choisir les représentations avec soin
• Donner toujours accès à une explication textuelle pour assurer que les utilisateur comprennent bien votre symbolique
9: S’assurer que l’IU n’a pas une apparence désordonnée
• Ne pas afficher trop d’information à la fois
• Bien organiser l’information
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 14
Quelques principes pour l’utilisabilité
10: Prendre en considération les besoins des différents groupes d’utilisateurs
• Permettre l’affichage en différents langages
• Le système doit être accessibles aux débutants comme aux experts
11: Fournir toute l’aide nécessaire
• Organiser l’aide correctement
• Intégrer l’aide dans l’application
• S’assurer que l’information est précise et à jour
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 15
Quelques principes pour l’utilisabilité
12. Être consistant
• Les graphiques, l’organisation doit être consistante à l’intérieur de toute l’application
• Utiliser les standard reconnus
• Demeurer semblables aux applications de même type
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 16
Quelques techniques de codage
• Textes et polices de caractères• Icônes• Photographies• Diagrammes et graphiques• Couleurs• Groupement et entourage• Instructions vocales• Musique• Autre sons• Animations et vidéo• Clignotement
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 17
Contre-Exemple
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 18
Exemple
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 19
7.5 Évaluation des interfaces
Évaluation heuristiques
1. Choisir quelques cas-types
2. Pour chacune des fenêtres impliquées
—Identifier minutieusement les problèmes qui peuvent être présents
3. Lorsqu’un défaut est découvert:
—Donner une brève description du problème
—Proposer une solution permettant de corriger ce défaut
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 20
Évaluation des interfaces
Évaluation par l’observation des utilisateurs• Sélectionner les utilisateurs représentant les plus
importants acteurs du système• Sélectionner les cas-type les plus importants• Décrire des scénarios d’usage• Bien expliquer le but de l’évaluation aux utilisateurs• Filmer si possible la session• Discuter avec les utilisateurs à mesure qu’ils exécutent
la tâche à faire• A la fin, débattre avec l’utilisateur des difficultés
rencontrées• Formuler des recommandations
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 21
7.6 Réaliser une interface simple avec Java
Le Abstract Window Toolkit (AWT)
• Composante (component): ce sont les éléments de base pour construire une interface graphique
—Button, TextField, List, Label, ScrollBar.
• Contenants (container): les éléments servant à contenirles composantes constituant l’IUG
—Frame, Dialog et Panel• Organisateur (LayoutManager): definit la façon dont
les composantes seront assemblées
—GridLayout, BorderLayout
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 22
Exemplepublic class ClientGUI extends Frame implements ChatIF{ private Button closeB = new Button("Close"); private Button openB = new Button("Open"); private Button sendB = new Button("Send"); private Button quitB = new Button("Quit"); private TextField portTxF = new TextField(""); private TextField hostTxF = new TextField(""); private TextField message = new TextField(); private Label portLB = new Label("Port: ", Label.RIGHT); private Label hostLB = new Label("Host: ", Label.RIGHT); private Label messageLB = new Label("Message: ", Label.RIGHT); private List messageList = new List(); ...}
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 23
Exemplepublic ClientGUI(String host, int port){ super("Simple Chat"); setSize(300,400); setVisible(true);
setLayout(new BorderLayout(5,5)); Panel bottom = new Panel(); add("Center", messageList); add("South", bottom); bottom.setLayout(new GridLayout(5,2,5,5)) bottom.add(hostLB); bottom.add(hostTxF); bottom.add(portLB); bottom.add(portTxF); bottom.add(messageLB); bottom.add(message); bottom.add(openB); bottom.add(sendB); bottom.add(closeB); bottom.add(quitB);
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 24
Exemple sendB.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { send(); } });}
public void send(){ try { client.sendToServer(message.getText()); } catch (Exception ex) { messageList.add(ex.toString()); messageList.makeVisible(messageList.getItemCount()-1); messageList.setBackground(Color.yellow); }}
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 25
7.7 Risques et difficultés dans la modélisation des cas-types et de l’interface utilisateur
• Les utilisateurs diffèrent grandement
—Tenir compte de ces différences
—Concevoir un système pouvant être internationalisé
—Tester le système avec différentes catégories d’utilisateurs
• Les technologies de conception d’IU changent rapidement
—Utiliser des technologies simples et répandues
—Éviter des designs trop élaborés
© Lethbridge/Laganière 2001 Chapter 7: Focusing on Users and Their Tasks 26
Risques et difficultés dans la modélisation des cas-types et de l’interface utilisateur
• La conception de l’IU occupe la majorité du temps de développement de l’application:
—Faire de la conception de IU une activité faisant partie intégrale du processus de développement
—Prévoir une conception de IU comptant plusieurs itérations et évaluations
• Les développeurs tendent à sous-estimer l’impact d’une IU
—S’assurer que tous les ingénieurs logiciels ont une formation en conception de IU
—Toujours effectuer des test avec les utilisateurs—Étudier les IU de d’autres applications
Top Related