Transcript
Page 1: Object-Oriented Software Engineering Practical Software Development using UML and Java Chapitre 7: Focusing on Users and Their Tasks

Object-Oriented Software EngineeringPractical Software Development using UML and Java

Chapitre 7:

Focusing on Users and Their Tasks

Page 2: Object-Oriented Software Engineering Practical 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

Page 3: Object-Oriented Software Engineering Practical 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 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é

Page 4: Object-Oriented Software Engineering Practical 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 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

Page 5: Object-Oriented Software Engineering Practical 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 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

Page 6: Object-Oriented Software Engineering Practical 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 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

Page 7: Object-Oriented Software Engineering Practical 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 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

Page 8: Object-Oriented Software Engineering Practical 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 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

Page 9: Object-Oriented Software Engineering Practical 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 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

Page 10: Object-Oriented Software Engineering Practical 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 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

Page 11: Object-Oriented Software Engineering Practical 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 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

Page 12: Object-Oriented Software Engineering Practical 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 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

Page 13: Object-Oriented Software Engineering Practical 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 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

Page 14: Object-Oriented Software Engineering Practical 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 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

Page 15: Object-Oriented Software Engineering Practical 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 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

Page 16: Object-Oriented Software Engineering Practical 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 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

Page 17: Object-Oriented Software Engineering Practical 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 17

Contre-Exemple

Page 18: Object-Oriented Software Engineering Practical 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 18

Exemple

Page 19: Object-Oriented Software Engineering Practical 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 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

Page 20: Object-Oriented Software Engineering Practical 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 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

Page 21: Object-Oriented Software Engineering Practical 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 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

Page 22: Object-Oriented Software Engineering Practical 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 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(); ...}

Page 23: Object-Oriented Software Engineering Practical 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 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);

Page 24: Object-Oriented Software Engineering Practical 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 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); }}

Page 25: Object-Oriented Software Engineering Practical 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 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

Page 26: Object-Oriented Software Engineering Practical 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 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