260 likes | 372 Views
Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapitre 7: Focusing on Users and Their Tasks. 7.1 Conception centrée sur l’utilisateur. Le développement d’un logiciel devrait toujours être centré autour des besoins de ses utilisateurs
E N D
Object-Oriented Software EngineeringPractical Software Development using UML and Java Chapitre 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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é Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
Courbes d’apprentissage Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
Contre-Exemple Chapter 7: Focusing on Users and Their Tasks
Exemple Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
É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 Chapter 7: Focusing on Users and Their Tasks
7.6Ré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 Chapter 7: Focusing on Users and Their Tasks
Exemple public 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(); ... } Chapter 7: Focusing on Users and Their Tasks
Exemple public 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); Chapter 7: Focusing on Users and Their Tasks
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); } } Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks
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 Chapter 7: Focusing on Users and Their Tasks