Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 7:...
-
Upload
waltier-pouliquen -
Category
Documents
-
view
121 -
download
1
Transcript of Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 7:...
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