David Navarre
navarre@irit.fr - http://ics.irit.fr/navarre
Objectifs du cours
Contenu du cours
Elments de User Centered Design Elments d ergonomie Elments de psychologie cognitive Elments de gnie des systmes interactifs Elments de technologie des systmes interactifs
Bibliographie
Les Interfaces Homme-Ordinateur Jolle Coutaz, Dunod, 1990 puis Designing the User Interface B. Shneiderman 1997 The psychology of everyday things Donald Norman, BasicBooks, 1988 User Interface Management Systems Dan Olsen, 1998 The Psychology of HCI, Card Moran & Newell 83 Lawrence Erlbaum eds.
4
La Carte de lIHM
Output device
Input device
Tches
7
Plus
Internationalisation
10
Distance articulatoire
11
Facteurs Humains
Sleon une dtue de l'Uvinertis de Cmabrigde, l'odrre des ltteers dans un mtos n'a pas d'ipmrotncae, la suele coshe ipmrotnate est que la pmeirre et la drenire soit la bnnoe pclae. Le rsete peut rte dans un dsrorde ttoal et vuos puoevz tujoruos lrie snas porlblme. C'est prace que le creaveu hmauin ne lit pas chuaqe ltetre elle-mme, mias le mot cmome un tuot.
12
Quelques dfinitions
Systmes Interactifs Interface Homme-Machine Communication Homme-Machine Modle dinteraction Style dinteraction Mtaphore dinteraction Dialogue, noyau fonctionnel
13
Systmes interactifs
interface
noyau fonctionnel
application interactive
Interface => Communication - Canal, Langage, Sens Homme => Tche - Prise en compte de facteurs humains Ordinateur => Processus - Aspects logiciels
14
Modle d'interaction
Modle d'interaction : Look (qu'est-ce que l'on montre) Style d'interaction : Feel (comment on manipule) Mtaphore d'interaction Exemples :
Reprsentation des objets sous forme iconique Construction d'une commande (action-paramtre ou paramtre action) Mode de saisie de la commande :
Sparation Interface/Application
Application non modulaire
Interface & E/S
Application
80 % du code d'une application peut tre considr comme faisant partie de la gestion du dialogue (Brad Myers 90)
16
Proportion interface/noyau
17
Sparation interface/noyau
Ce qui tabli la communication, Ce qui gre le dialogue Ce qui fait les oprations effectives.
Utilisateur Interface E/S, Systme
Application modulaire
Noyau Fonctionnel
18
Sparation Interface/Application
Reprsentation externe
Dialogue Noyau Fonctionnel
19
Communication "naturelle"
Cohrence intra et inter applications Mtaphores Choix des styles d'interaction Structures de tches et sous-tches
Communication efficace
Adapte aux besoins Facile apprendre Intuitive : prdictible Rassurante : apprentissage par essais - erreurs Agrable - esthtique - dynamique - ludique Performante : tches rapides excuter ractions immdiates
21
Comptences Requises
Informatique Domaine de l'Application Connaissance de l'utilisateur Penser lui Connatre ses caractristiques cognitives Connatre son environnement Se mettre sa place Communiquer avec lui
22
Domaines abords
Application de bureau Systmes temps rel critiques (avion, ATC, ) Systmes standard (souris, clavier, crans) Systmes exotiques (tout !!)
Systmes E/S
23
Rejet pur et simple par les utilisateurs Cot d'apprentissage (formation) Perte de productivit des utilisateurs Utilisation incomplte: manque gagner Cots de maintenance Perte de crdibilit
24
Libells non clairs ou ambigus (syntax error) Fonctionnalits inutiles Ecrans trop denses, mal structurs Ecrans trop nombreux "Chemins" trop longs Contexte inconnu ou oubli Essai en vol (Aro)
25
Conclusion
on sait faire beaucoup il reste beaucoup inventer besoin de standards les standards sont parfois dangereux
26
Analyse de l'existant
objectifs : exigences centres sur l'utilisateur et l'organisation
objectifs du systme / tches / performances opportunits d'amlioration caractristiques de la population cible analyse cot / bnfice aspects organisationnels disponibilits des ressources humaines groupes d'utilisateurs et leurs organisations / tches outils actuellement utiliss donnes manipuler , traitements, contraintes (temps, lgales, ) scnarios d'informatisation modle du nouveau systme homme machine
28
rsultats
Interaction HommeMachine
Recueil d'informations
100 % : ce que l'metteur veut dire 90 % : ce que l'metteur transmet 80 % : ce que le rcepteur reoit 70 % : ce que le rcepteur dcode 60 % : ce que le rcepteur comprend 50 % : ce que le rcepteur retient
vous allez avoir une mauvaise note (<10)
Exemples classiques :
Interaction HommeMachine
29
Documentation utilisateur
sommaire avec des questions pour les situations chapitres par thmes, fonctions, questions index cls multiples permettant un reprage rapide glossaire avec vocabulaire clair (celui de l'utilisateur) mise en page are avec dessins et commentaires mots-cls relie pour une lecture facile (spirale, classeur, fiches, ...) mots et phrases courtes 1 mot = 1 sens tournure active et affirmative
30
Interaction HommeMachine
Qui fait la formation ? Combien de temps ? Quels supports ? C'est pas le chat qui va le faire !
31
Interaction HommeMachine
Analyse de l'utilisateur
on obtient :
son type (occasionnel ou non) ses habitudes de travail ses besoins en formation
32
Interaction HommeMachine
FACTEURS HUMAINS
FINISHED FILES ARE THE RESULT OF YEARS OF SCIENTIFIC STUDY COMBINED WITH THE EXPERIENCE OF YEARS.
Combien de F ?
Interaction HommeMachine
34
FINISHED FILES ARE THE RESULT OF YEARS OF SCIENTIFIC STUDY COMBINED WITH THE EXPERIENCE OF YEARS.
Combien de F ?
Interaction HommeMachine
35
FINISHED FILES ARE THE RESULT OF YEARS OF SCIENTIFIC STUDY COMBINED WITH THE EXPERIENCE OF YEARS.
Combien de F ?
Interaction HommeMachine
36
Facteurs Humains
Sleon une dtue de l'Uvinertis de Cmabrigde, l'odrre des ltteers dans un mtos n'a pas d'ipmrotncae, la suele coshe ipmrotnate est que la pmeirre et la drenire soit la bnnoe pclae. Le rsete peut rte dans un dsrorde ttoal et vuos puoevz tujoruos lrie snas porlblme. C'est prace que le creaveu hmauin ne lit pas chuaqe ltetre elle-mme, mias le mot cmome un tuot.
Interaction HommeMachine
37
Interaction HommeMachine
38
Interaction HommeMachine
39
S'asseoir Faire des cercles avec le pied dans le sens des aiguilles d'une montre Lever le bras droit et dessiner un 6 Rat !!!
Interaction HommeMachine
40
Interaction HommeMachine
41
Couleurs facile
BLEU NOIR ROUGE VIOLET VIOLET
Interaction HommeMachine 42
MARRON
NOIR ROSE
NOIR
MARRON
NOIR ROSE
NOIR
Interaction HommeMachine
44
Interaction HommeMachine
45
Interaction HommeMachine
46
Exemple : pseudo-transparence
Interaction HommeMachine
47
MODLES DE LUTILISATEUR
48
Le processeur humain
Card, Moran et Newell
le systme sensoriel :
ensemble des sous-systmes spcialiss chacun dans le traitement d'une classe de stimuli (phnomne physique dtectable) responsable des mouvements compos de la mmoire court terme, de la mmoire long terme et du processeur cognitif
49
le systme moteur :
le systme cognitif :
Interaction HommeMachine
reprsentation non interprte des entres persistance des informations = 200 ms pour la mmoire visuelle et 1500 ms pour la mmoire auditive capacit de stockage type d'information (physique, symbolique, ...) temps de cycle 100 ms (dpend de l'intensit)
Filtre cognitif
Le systme moteur
Un mouvement n'est pas continu mais est une suite de micromouvements discrets Le mouvement correspond aux manipulation physiques des dispositifs d'entre
temps d'un micro-mouvement : 70 ms (cycle de base du processeur du systme moteur) temps de slection d'un lment graphique : T = I.log (1+2D/L) avec D : distance a parcourir, L : largeur de la cible, I = 0,1 sec. (loi de Fitts) D L
X0
Interaction HommeMachine
X1
X2
Cible
51
Le systme cognitif
informations sensorielles sont reprsentes sous forme symbolique les infos en provenance de la mmoire long terme sont appeles "chunks" (unit cognitive symbolique). Ex. S.N.C.F. 7 +- 2 chunks (au-del dgradation)
structure organise sous la forme de rseaux smantiques cycle de base : 70 ms fonctionne selon un cycle reconnaissance-action (il dtermine en fonction des "chunks" de la mmoire court terme les actions de la mmoire long terme, puis il les excute)
52
le processeur cognitif
Interaction HommeMachine
Intrts
cadre fdrateur pour les diffrentes connaissances en psychologie il utilise la terminologie de l'informaticien est orient psychologie exprimentale (et applicable) de trop bas niveau dans le cas gnral (ne fournit pas les information intressantes pour la conception d'interfaces homme-machine ne traite pas les problmes de l'erreur et du paralllisme ne prsente pas de mthode de conception (il ne dit pas comment intgrer ces contraintes dans une application)
Inconvnients
Interaction HommeMachine
53
La thorie de l'action
D. Normann 1986
le modle conceptuel
Manipulation du modle
Interaction HommeMachine
54
Le modle conceptuel
doit aider l'utilisateur dans sa tche doit contenir : tude des besoins, des possibilits et des limitations de l'utilisateur type
image d'un outil = interface d'utilisation il faut que l'interface permette l'utilisateur de construire un image correspondant au modle de conception
Interaction HommeMachine
55
Thorie de l'action
BUT
INTENTION
distance smantique
EVALUATION
distance d'valuation
distance smantique
Interaction HommeMachine
distance d'excution
SPECIFICATION D'ACTIONS
INTERPRETATION
distance articulatoire
distance articulatoire
EXECUTION
PERCEPTION
LE MONDE
56
dissimilitude entre la reprsentation de l'image et celle de l'utilisateur distance d'excution est l'effort de l'utilisateur pour la mise en correspondance entre la reprsentation mentale de la tche et la reprsentation physique externe impose par l'image distance d'valuation effort cognitif inverse (de l'utilisateur) but du concepteur : rduire la distance au moyen de l'image
distance d'valuation
systme physique
buts
Interaction HommeMachine
distance d'excution
57
Avantages
tat peru : traduction de l'tat effectif sous forme de variables psychologiques tat effectif : fonction sur les variables physiques
prend en compte les erreurs explique les difficults des utilisateurs identifie les phases o l'utilisateur effectue des interprtations donne peu d'informations sur le travail de l'informaticien pour faire des applications intgrant la thorise de l'action le niveau de dtail (tat, variables) n'est pas forcment adquat en fonction des phases du cycle de vie
58
Inconvnients
Interaction HommeMachine
Vous rentrez chez vous et il fait froid. Que faitesvous avec le thermostat du chauffage central ?
Interaction HommeMachine
60
Questions :
Comment interprter ce comportement d aprs la thorie de l action ? Quelle amlioration apporter au thermostat pour viter ce comportement ?
Interprtation de ce comportement
Le thermostat rgule directement la temprature de l eau dans les tuyaux (ou la temprature de la rsistance lectrique) Le thermostat rgule la proportion de temps ou le chauffage fonctionne (O% du temps en bas, 100% du temps fond) Le thermostat agit comme un interrupteur, ouvrant le chauffage si la temprature est infrieure celle programme
62
Interaction HommeMachine
D aprs les modles (1) ou (2), lutilisateur dduit que le fait de monter le thermostat au maximum rduira le temps ncessaire pour que la temprature remonte 20C Le modle (3) est conforme au fonctionnement du chauffage central
Interaction HommeMachine
63
L action sur le thermostat n a pas d effet immdiatement perceptible Difficile de savoir si le but est atteint (perception de la temprature )
Interaction HommeMachine
64
Amliorations
Indication visuelle du fonctionnement du chauffage (feedback immdiat) Indication de la temprature relle par rapport la temprature programme
Interaction HommeMachine
Interaction HommeMachine
66
Interaction HommeMachine
67
Interaction HommeMachine
68
Interaction HommeMachine
69
Interaction HommeMachine
70
Interaction HommeMachine
71
Interaction HommeMachine
72
Modle tendu
Interaction HommeMachine
73
ANALYSE DE TCHE
Rcration : Le jeu de 15
Le jeu se joue 2 Vous disposez des chiffres 1, 2, 3, 4, 5, 6, 7, 8, 9 On joue chacun son tour, chaque joueur prend un chiffre la fois, un chiffre ne peut tre pris quune fois Le premier qui possde 3 chiffres dont la somme est 15 a gagn Jouez ce jeu sans aucun outil (papier, crayon ou autre ! )
75
Interaction HommeMachine
Interaction HommeMachine
76
Analyse de la tche
Hirarchie des tches et sous-tches
Jouer au jeu de 15 Assurer l'alternance des coups Choisir un chiffre Evaluer si j'ai gagn (Calcul de la somme)
Chiffres restants
Interaction HommeMachine
77
Votre solution
Interaction HommeMachine
78
8 1 6
3 5 7
4 9 2
Interaction HommeMachine
79
Mettre en avant les informations abstraites Mettre en avant les informations importantes Aider grer la complexit lment important de la plupart des mthodes de conception Possibilit de raisonner sur des modles
Interaction HommeMachine 80
Modles de tche Architectures cognitive Modles de l'utilisateur Modles du domaine Modles du contexte Modles de prsentation Modles de dialogue
81
Interaction HommeMachine
UML et HCI
Approche base de modle Neuf notations Pas de prise en compte de l'interface utilisateur (un peu partir des Use cases) Comment amliorer cela ?
Dfinitions
Tches Buts Tches lmentaires Analyse de tches (task analysis) Modlisation des tches (Task Model) Activit (analyse, modlisation, )
Interaction HommeMachine 83
Touriste
Rserver un billet de train Chercher un monument dans une ville Jeu des 15
Interaction HommeMachine
84
Recueil d'information
Interaction HommeMachine
85
Proposer une arborescence de menu permettant de manipuler les informations de cette base
86
Interaction HommeMachine
Logique de fonctionnement
Vision de linformaticien
Larborescence de menus reflte les fonctions internes de la base de donnes
Client Ajouter Supprimer Modifier Consulter Reprsentant
Exemple de tche
Je passe mon temps saisir des nouveaux clients dans la base de donnes, et je dois leur affecter le reprsentant le mieux adapt (en fonction de diffrents critres) Parfois je reois un bon de commande envoy par un reprsentant nouvellement recrut, je dois alors saisir la fois le nouveau client et le nouveau reprsentant Il arrive que des reprsentants quittent la socit, en gnral ils partent avec leurs clients, il faut faire du mnage dans la base de donnes
Interaction HommeMachine
88
Logique dutilisation
Supprimer Client
89
Notation modifiable et concise Approche systmatique capable d'indiquer comment rutiliser les informations des modles de tche Outils automatiques pour utiliser efficacement ces informations
Interaction HommeMachine
90
Interaction HommeMachine
91
ConcurTaskTrees
Met l'accent sur les activits de l'utilisateur Structure hirarchique Syntaxe Graphique Ensemble de plusieurs oprateur temporels (qualitatifs uniquement) Allocation des tches aux oprateurs Objets et attributs pour les tches
Interaction HommeMachine
93
Interaction HommeMachine
95
Oprateurs temporels
Enabling/Activation T1 >> T2 or T1 [ ]>> T2 Disabling/Dsactivation T1 [> T2 Interruption/Interruption T1 |> T2 Choice/Choix T1 [ ] T2 Concurrency/Concurrence T1 ||| T2 or T1 |[]| T2 Iteration/Itration T1* or T1{n} Optionality/Facultative [T]
Interaction HommeMachine
96
Oprateurs temporels
T1|||T2 : les actions de T1 et T2 peuvent tre effectues dans n'importe quel ordre T1|[]|T2 : T1 et T2 doivent se synchroniser sur certaines actions pour changer des informations T1>>T2 : quand T1 est termine T2 devient active T1 []>>T2 : quand T1 se termine elle fournit des informations T2 et l'active T1[>T2 : quand une action de T2 se produit, la tche T1 est dsactive
Interaction HommeMachine 97
[T1] : T1 est facultative pour atteindre le but (la tche de niveau suprieur) T1* : T1 peut tre rpte autant de fois que possible pour atteindre le but T1n : T1 doit tre rpte n fois pour atteindre le but T : rcursion la tche T est effectue lors de l'excution de la tche
98
Interaction HommeMachine
Ambigut leve
Interaction HommeMachine
Types de tches
Interaction tasks
Selection Edit
Control
Application task
Computing Comparison Locate Printing
Interaction HommeMachine
...
100
Interaction HommeMachine
101
Interaction HommeMachine
102
Tches facultatives
Interaction HommeMachine
103
Tches coopratives
t1
t2
User2 User1
t3
User3
Interaction HommeMachine
Tches Cooperatives
Interaction HommeMachine
105
GBLS: tches
Avoir une carte Connatre le montant que l'on veut retirer Connatre le code secret Prendre l'argent Prendre la carte
106
Rsultats
Interaction HommeMachine
Interaction HommeMachine
107
Interaction HommeMachine
108
Interaction HommeMachine
109
Interaction HommeMachine
110
Interaction HommeMachine
111
GBLS : Scnarios
Interaction HommeMachine
112
Interaction HommeMachine
113
UML est dirig uniquement vers la modlisation des composants du systmes Peu d'outils sont disponibles Pas d'outils permettant d'excuter les modles pour comprendre leur fonctionnement
Interaction HommeMachine
114
Http://giove.cnuce.cnr.it/ctte.html GUITARE Project http://giove.cnuce.cnr.it/guitare.html MEFISTO Project http://giove.cnuce.cnr.it/mefisto.html Book on Model-Based Design and Evaluation of Interactive Applications, Springer Verlag fabio.paterno@cnuce.cnr.it
116
Interaction HommeMachine
Notions dergonomie
INTRODUCTION LERGONOMIE
Notions d'ergonomie
L'ergonomie vise l'adaptation du travail l'homme en permettant la conception d'outils, de machines, de dispositifs qui puissent tre utiliss avec le maximum de confort, d'efficacit et de scurit (utilisateur) Formalisation des interactions Homme-Machine Outils de l'ergonomie pour
Interaction HommeMachine
118
L'utilisateur
types d'utilisateurs (novice, expriment, expert) logique de fonctionnement / d'utilisation planification des tches (hirarchique)
vision (couleurs) morphologie (manipulation) culture (lecture de gauche droite et de haut en bas)
Interaction HommeMachine
119
Objectifs d'une valuation ergonomique tablir un diagnostic d'usage de systmes existants assurer la qualit de conception d'une IHM (lors de la conception) comparer les avantages et les inconvnients des logiciels dans le but de dtecter et corriger des erreurs de conception d'IHM contrler priori la qualit ergonomique d'un produit commercialis valuation comparative de diffrents logiciels dans l'objectif d'un choix en terme d'utilisabilit
Interaction HommeMachine
120
capacit fonctionnelle performances systme qualit d'assistance facilit d'apprentissage facilit d'utilisation qualit de documentation
121
Utilisabilit
Interaction HommeMachine
cohrence interne de la conception reprsentation externe (disposition spatiale et choix) reprsentation interne (langage de commande, ) adquation la tche adquation l'utilisateur
proprits externes
Interaction HommeMachine
122
taux d'erreur nombre de tches ralises sous contrainte temporelle dure d'excution d'une tche dure d'apprentissage demandes d'aide dure de lecture de la documentation fonctions inutilises
Interaction HommeMachine
123
Interaction HommeMachine
124
Dimensions de l'valuation
Techniques de recueil
Variables cible
Interaction HommeMachine 125
Approches empiriques
Diagnostic d'usage
Interface
dveloppement d'un nouveau dispositif
Tests de conception
version i Qualit d'un produit fini
Amnagements
Evaluations itratives
Banc d'essai
Rsultats
Interaction HommeMachine
Rsultats
126
Approches analytiques
Evaluation comparative Banc d'essai
Contrle de qualit IHM 1 IHM
e t "d'utilisabilit"
127
Limites de l'ergonomie
Interaction HommeMachine
128
INTRODUCTION LERGONOMIE
Avant la conception
Conception prliminaire
Tests dacceptation
Interaction HommeMachine
130
Lapproche Naturaliste
Evaluer le systme dans des conditions aussi proches que possible de la ralit
Lapproche Exprimentale
Interaction HommeMachine
131
Le meilleur utilisateur est 10x plus rapide que le moins bon Les 25% meilleurs sont ~2x plus rapides que les 25% moins bons Tester un nombre raisonnable dutilisateurs Fournir des intervalles de confiance statistiques
Solutions partielles
Le temps moyen pour accomplir la tche X est de 4,5 0,2 minutes avec 95% de confiance signifie Il y a 95% de chance que la moyenne soit entre 4,3 et 4,7 minutes et 5% de chances quelle soit en dehors de cet intervalle
Interaction HommeMachine
132
Les sujets du test sont atypiques Les tches ne correspondent pas aux tches relles Lenvironnement physique est diffrent Influences sociales diffrentes
Interaction HommeMachine
133
Evaluation Qualitative
Interaction HommeMachine
134
Observation directe
Lvaluateur observe et enregistre les utilisateurs qui interagissent avec le systme En laboratoire
Lutilisateur doit accomplir un ensemble de tches prdtermines Usability labs, spcialement instruments pour lobservation Lutilisateur poursuit son travail habituel
En situation relle
Une trs bonne mthode pour identifier les problmes majeurs dinteraction
Interaction HommeMachine
135
Observation simple
Ce quil croient tre en train de se passer Pourquoi ils excutent telle ou telle action Ce quils essaient de faire
Inconfortable pour le sujet Peut altrer lexcution de la tche (ex: dcrire le dtail de la frappe clavier pendant quon frappe)
136
Interaction HommeMachine
Deux personnes travaillent ensemble la tche La conversation est enregistre comme pour le think-aloud Sujets :
un coach comptent (mais pas le concepteur ni lvaluateur lui-mme) et un sujet naf Le sujet naf utilise linterface
Souvent proche dune situation relle Evite les blocages complets du sujet
Interaction HommeMachine
137
Techniques denregistrement
Papier / Crayon
Bon march mais lent ... Prvoir des codages et des tables dvnements possibles
Intressant pour le think aloud Difficile de mettre en correspondance avec les actions Une camra pour le sujet, une pour lcran Un permet le test rtrospectif : lutilisateur commente ses actions Le code du prototype est instrument pour enregistrer les actions de lutilisateur Produit un gros volume de donne, ncessite des moyens de traitement automatiques Peut-tre post-synchronis avec laudio / vido
Audio
Vido
Log automatique
Interaction HommeMachine
138
Interviews et Questionnaires
Questionnaires
Ne ncessitent pas la prsence de lexprimentateur Peuvent fournir des rsultats quantifiables Peuvent atteindre une large audience (Email) Prparation coteuse, mais exploitation des rsultats bon march et automatisable
Interaction HommeMachine
139
Quelle information recherche-t-on ? Comment les rsultats seront-ils analyss ? Que fera-t-on des rsultats danalyse ? Quel age avez-vous ?
typique : chantillon alatoire de 50 1000 utilisateurs du produit
Interaction HommeMachine
140
Styles de questions
Questions gnrales
En moyenne, combien de temps passez vous sur ce systme par semaine ? Moins dune heure De 1 4 heures De 4 10 heures Plus de 10 heures
Questions ouvertes
Interaction HommeMachine
Questions fermes
Restreindre les choix quelques alternatives Facile analyser, mais fastidieux pour le sujet Vous utilisez un ordinateurrponses difficiles analyser Attention aux au travail : q Souvent q Parfois q Jamais
Vous utilisez un ordinateur au travail : q Plus de 4 heures par jour q Entre 2 et 4 heures par jour q Entre 1 et 2 heures par jour q Moins d1 heure par jour
Interaction HommeMachine
142
Questions scalaires
Lutilisateur doit juger sur une chelle numrique Lchelle correspond laccord/dsaccord de lutilisateur sur une lcran sont Les caractresproposition :
Faciles lire...........................................Difficiles lire 1 2 3 4 5
Quels types de logiciels utilisez-vous (plusieurs choix autoriss) : q Traitement de textes q Tableur q Base de donnes q Compilateurs
Interaction HommeMachine 143
Classer les modes de dclenchement dune commande par ordre de prfrence (1: le plus utile, 2: moins utile..., 0 si non utilis) ____Ligne de Commande ____Choix dans un menu ____Equivalent clavier ____Manipulation directe
Interaction HommeMachine
144
Evaluation Quantitative
Frquence dappel du menu daide Frquence dutilisation de diffrents modules du systme Nombre et localisation des erreurs Temps ncessaire laccomplissement dune tche
Mthode exprimentale
145
Interaction HommeMachine
La mthode exprimentale
Il ny a pas de diffrence sur le nombre de caries dentaires entre les enfants utilisant le dentifrice X et le dentifrice Y Il ny a pas de diffrence entre le gestionnaire de programme de Windows 3.11 et le Menu Dmarrer de Windows95 en ce qui concerne le temps moyen de dmarrage dun programme
Interaction HommeMachine
146
Exprience du dentifrice :
Utilisation de la marque X ou Y Age < 10 ou >= 10 Gestionnaire de programme ou menu Dmarrer Nombre de programmes accessibles Structuration en groupes / Sous-menus Type dutilisateur (novice, expriment)
147
Interaction HommeMachine
Exprience du dentifrice
Frquence de brossage Nombre de caries Temps dexcution Nombre derreurs Nombre dchecs
148
Interaction HommeMachine
Identifier les classes de sujet et en faire une variable indpendante Utiliser un nombre suffisant de sujets
Contrle des biais dexprimentation Je crois que vous aimerez bien ces menus, je les ai faits moi-mme...
Interaction HommeMachine
149
Analyse de donnes Corrlations entre les variables dpendantes Quelles dcisions de conception en tirer ?
Interaction HommeMachine
150
Rgles de conception
ERGONOMIE
Rgles de Conception
Interaction HommeMachine
152
Concision (I)
La concision repose sur l'harmonieuse combinaison du bref et de l'expressif (viter les sorties - rduire les actions) Raccourcis Claviers pour les commandes
plusieurs faons possibles d'obtenir le mme rsultat.
Interaction HommeMachine
153
Concision (II)
Assurer la meilleure correspondance possible entre la nature des objets, leur apparence et leur manipulation Exemple : Dfinition de schmas relationnels (4me dimension)
Socits
Lien Adresse relationnel Ville ralis par un "drag"CA
Nom
Cohrence (I)
Choix d'une mtaphore d'interaction : le maniement de l'interface doit obir des rgles prcises, qui peuvent se dduire d'une analogie avec un autre environnement. Intra Applications : Dans une mme application, la mme action dans deux contextes diffrents doit avoir le mme effet sur les objets manipuls. Inter Applications : Des "GuideLines" sont dits par les constructeurs: ils dfinissent la manire de raliser les oprations de base, sur toutes les applications utilisant leur plateforme.
Interaction HommeMachine
155
Cohrence (II)
Cohrence Intra-Application :
Aspect gnral de l'interface : mme apparence au objets de mme nature dialogue et zones de saisies : mme position pour tous les objets de rle identique
Zone du titre
Titre
OK
Interaction HommeMachine
Annuler
156
Cohrence (III)
Planification hirarchique
Logique d'utilisation versus logique de fonctionnement
157
Interaction HommeMachine
Retours d'information(I)
une raction du systme une action de l'utilisateur une expression de sortie dont l'interprtation permet
But :
Interaction HommeMachine
158
Niveau lexical : forme du curseur, "trace" Niveau syntaxique : page courante de l'diteur de texte, outils et couleurs slectionnes dans un diteur de dessin Niveau smantique : Etat courant du calcul (Thermomtre)
0%
Interaction HommeMachine
100 %
159
Barre clignotante
Oui
La bordure en gras indique que l'action est associe la touche "retour"
Interaction HommeMachine
Non
Annuler
160
Flexibilit (I)
La flexibilit d'une interface dsigne sa facult d'ajustement aux variations de l'environnement et notamment de l'utilisateur Elle peut tre automatique (interface adaptative)
(l'interface contient donc une reprsentation dynamique de l'utilisateur) (l'interface contient donc une reprsentation dynamique de l'utilisateur)
Interaction HommeMachine
161
Flexibilit (II)
Plusieurs choix possibles pour une mme action Ex: Menu souris et Commandes claviers Adaptabilit de l'interface
Plusieurs reprsentations de la mme information: ex: Rpertoire sous forme de liste, d'arbre, ou de grille d'icnes
Flexibilit (III)
Exemple : reprsentation d'une liste de fichiers Icnes : identification immdiate
Interaction HommeMachine
163
Les constructeurs dfinissent des guidelines ou rgles de conduites spcifiant les comportement que doivent partager les applications utilisant ce matriel
+ de cohrence applications + faciles dvelopper : moins de choix faire, utilisation de bibliothques
Interaction HommeMachine
164
Services de l'interface
Copier/Coller
Transfert d'objets d'un buffer vers le document (coller) du document vers le Buffer (copier)
Annuler/Refaire
Pour l'implantation de la manipulation lmentaire: toute action lmentaire doit pouvoir tre instantanment annule/ une fois annule, elle peut tre refaite. Granularit de l'action lmentaire laisse au choix de l'application
Import/Export de donnes
Conversion et lecture de fichiers de format standard
Interaction HommeMachine 165
Interaction HommeMachine
structuration de la documentation : service Hypertexte (Microsoft word) adaptation au contexte : activation de l'aide, puis dsignation d'un objet : obtention d'une description du role de cet objet
(Qu'est-ce que je peux faire) (Pourquoi ne puis-je pas faire cela) (Comment faire pour faire ceci)
Interaction HommeMachine
168
INTRODUCTION LERGONOMIE
1 - Guidage
4 - Adaptabilit
Incitation Groupement/distinction entre items Feed-back immdiat Lisibilit Brivet/concision/actions min Densit informationnelle
2 - Charge de travail
3 - Contrle explicite
Interaction HommeMachine
Incitation (exemple +)
Options menus grises
Interaction HommeMachine
171
Incitation (exemple - )
Pas de format de saisie
Interaction HommeMachine
172
Non
Interaction HommeMachine
Oui
173
Feedback immdiat
Oui
174
Lisibilit
Couleur agressive Non
Oui
Interaction HommeMachine
175
Concision (exemple -)
Non
176
Concision (exemple +)
Oui
Interaction HommeMachine
177
Densit informationnelle
Non
Interaction HommeMachine
Actions minimales
Non
Oui
179
Actions explicites
Non Pas de validation explicite
Oui
Interaction HommeMachine
180
Contrle utilisateur
Oui
Interaction HommeMachine
181
Flexibilit
Oui
Possibilit de paramtrer
Interaction HommeMachine 182
Oui
183
Oui
Interaction HommeMachine
184
Commande Annuler
Interaction HommeMachine
Oui
185
Oui
Interaction HommeMachine
Non
Oui
Interaction HommeMachine
187
Homognit
Compatibilit
Oui
Interaction HommeMachine
Toute commande ou choix d'tat non accessible doit tre gris. Lorsqu'un bouton commande est pr-slectionn, cette pr-slection doit tre mise en vidence graphiquement.
Interaction HommeMachine
190
Exemple : Une barre de titre doit tre positionne en haut d'une bote ou fentre. Exemple : Les options menus d'un menu droulant doivent tre classes fonctionnellement, squentiellement, numriquement ou alphabtiquement .
Interaction HommeMachine
191
Exemple : les titres de boite ou fentres doivent tre centrs. Exemple : une liste doit possder un libell
Exemple : Une slection par dfaut doit tre pertinente pour l'utilisateur.
Interaction HommeMachine
192
Exemple : l'activation d'une option menu qui correspond un choix dtat du systme doit tre coch. Exemple : Toutes les options d'une barre de menu doivent ouvrir sur un menu droulant.
Interaction HommeMachine
193
Les rgles sont instancies aux objets graphiques Les objets concerns par un mme ensemble de rgles ont t regroups en classe
La typologie : lien entre les connaissances ergonomiques et les connaissances sur l interface
Interaction HommeMachine
194
La typologie
Commande Action sur systme Choix dtat Action
Visualisation
Slection dobjet
Entre d'informations
Interaction HommeMachine
Utilisation de la typologie
R1 "gris" Action sur systme Commande Choix dtat R3 "coch"
R2 "mise-vidence prslection"
Bouton commande
Bouton radio
Case cocher Slection de donnes Saisie de donnes Bote de Liste Champ de saisie
Entre donnes
R5 "exist-libell"
R6 "exist-matrialisation"
196
Heuristiques de conception
INTRODUCTION LERGONOMIE
Introduction
Principes de conception
Principes gnraux (Guidelines) qui guident le travail de conception Permettent dviter des erreurs frquentes de conception Permettent dvaluer une interface sur des principes gnraux, sans avoir recours lutilisateur Permettent de standardiser les interfaces, dimposer des standards
Interaction HommeMachine
198
Interaction HommeMachine
199
Ce produit nest pas rfrenc dans le stock plutt que Foreign key not found in table T_STOCK
Vous venez dacheter 100 actions de la socit XYZ plutt que Nous venons de vous vendre 100 actions de la socit XYZ
Sassurer quelles sont significatives pour lutilisateur
Interaction HommeMachine
200
Pallier la faible capacit de la mmoire court terme Privilgier la reconnaissance par rapport la mmoire
Menus, icnes, choix explicites Attention : Less is more ! Date de naissance : ___/___/___ (JJ/MM/AA, ex : 21/04/70) cut, copy, paste, dragn drop Utilisables pour un mot, un paragraphe, un document...
Interaction HommeMachine
201
Cohrence
La mme commande aura toujours les mmes effets dans des situations comparables Prdictibilit de linterface Dispositions spatiale des contrles et texte des tiquettes Apparence visuelle des contrles (ex: scrollbars)
Interaction HommeMachine
202
Donner du feeback
Enregistrement du fichier Toto dans le rpertoire bidon en cours... plutt que Enregistrement en cours...
Temps de rponse
0,1 seconde max : peru comme instantan 1 seconde max : Le dialogue nest pas interrompu, mais le dlai est peru 10 secondes : limite pour conserver lattention de lutilisateur sur le dialogue >10 secondes : Lutilisateur souhaite faire qq. chose dautre Interaction HommeMachine 203
Stratgies
Bouton Annuler pour les dialogues modaux Undo universel (retour ltat prcdent) Interrompre pour les oprations longues Quitter le programme nimporte quand Dfauts pour rinitialiser des proprits
Interaction HommeMachine
204
Acclrateurs clavier et souris Compltion automatique des commandes Touches de fonctions Rutilisation
Interaction HommeMachine
Mistakes :
Une dcisions consciente qui conduit une action errone Comportement inconscient qui conduit une mauvaise squence dactions Frquent chez les utilisateurs expriments
Slips :
Interaction HommeMachine
206
Types de Slips
Erreur de capture
ex : confirmer la suppression dun fichier, alors quon ne voulait pas le supprimer Prvention : au lieu de confirmer, permettre le Undo
Erreur de description
ex : glisser un fichier dans la poubelle au lieu de la disquette Prvention : diffrencier les icnes, disposition spatiale tudie
ex: tlphoner quelquun pour lui donner un numro de chambre, et composer le numro de chambre ex: le tlphone sonne, on crie Entrez!
Activation associative
Interaction HommeMachine
207
Perte dactivation
ex: Quest-ce que je fais ici ? Prvention : rendre le but explicite (si le systme le connat), rendre le cheminement explicite
Erreurs de mode
ex: VI, rfrencer un fichier qui est dans un autre rpertoire, ... Prvention : minimiser les modes, rendre les modes visibles
Interaction HommeMachine
208
Guidelines spcifiques
Ex: Smith & Mosier Guidelines for designing user interface software, the MITRE corporation
Questions / Rponse Formulaires Menus Touches de fonctions Langage de commande Langage de requte Langage naturel Interfaces graphiques
209
Interaction HommeMachine
Entre de donnes
Ensure that a user needs enter any particular data only once, and that the computer can access those data if needed thereafter for the same task or for another task Comment : ... Requiring re-entry of data would impose duplicative effort on users and increase the possibility of entry errors
Interaction HommeMachine
210
Ex : Necessary data displayed Ex: squences de contrle flexibles Ex : Consistent Display format Ex: Interrupt Ex: protection from computer failure
211
Interaction HommeMachine
Problmes
Trop de guidelines
Impossible de les connatre toutes Impossible dvaluer manuellement si une application correspond aux guidelines Possibilit dincohrences, de contradictions Il peut parfois tre utile de violer les rgles Rgles trop lies la technologie actuelle
Interaction HommeMachine
212
Guides de style
Imposent par dfaut un look & feel Certains toolkits sont multi look & feel (TK, Interviews)
213
Interaction HommeMachine
Processus de dveloppement
Dfinition des SI
Output
input output
Interactive System
System Input
Time
Output
User
Input
215
Winston W. Royce. Managing the Development of Large Software Systems. IEEE Wescon, pp 1-9, 1970
216
Winston W. Royce. Managing the Development of Large Software Systems. IEEE Wescon, pp 1-9, 1970
217
Cycle de dveloppement en V
Analyse du besoin
Dploiement
Spcification
Validation
Conception Prliminaire
Intgration
Conception dtaille
Tests Unitaires
John McDermid et Knut Ripken. Life cycle support in the ADA environment. University Press, 1984.
Codage
218
P2
Prototype 3
Operational prototype
Planify development
Specification
Design
detailled design
coding
unitary testing
insta llation integ ration Develop and verify next product
Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE Computer, 21(5), pp. 61-72, 1988.
219
K. Schwaber and M. Beedle, Agile Software Development with SCRUM. Upper Saddle River, NJ: Prentice-Hall, 2002.
220
Extreme Programming
Kent Beck. Publisher: First Edition September 29, 1999. ISBN: 0201616416, 224 pages.
221
222
Besoins et cafards
223
224
Mthodologie de Conception
Interfaces Homme Machines : Domaine pluri-disciplinaire "Science" non exacte : La conception d'une interface Relve plus du savoir-faire que d'une mthodologie prcise
Produit (Application)
226
Spcification
Implantation
Utilisation
Test-Evaluation
228
Prototypage - Maquetage
Prototype : diffre du produit final par le processus de conception Maquette : diffre du produit par l'chelle (taille, nombre de fonctionnalits, ) En IHM le sens de ces mots a t altr Prototype : produit qui fonctionne (des parties de chacune des couches du modle de Seeheim ont t dveloppes) Maquette : l'ensemble de la partie prsentation a t ralise mais les fonctionnalits ne sont pas mises en uvre (on voit la statique de l'interface mais pas la dynamique) 229
Approches "super-itratives"
Raliser des itrations chaque tape du processus:
Spcification
Implantation
Utilisation
Test-Evaluation
230
Prototypage Jetable
231
Prototypage Incrmental
232
233
234
235
Early design
Brainstorm different representations Choose one or two representations Rough out interface style
Task centered walkthrough and redesign Behaviour (dialogue & interaction) modelling Fine tune interface, screen design
Working systems
Late design
Agile et Itratif
236
Early and continual focus on users Evaluate with users Iterative design Integrated design Driven by a usability champion a.k.a. the Usability Designer
Interaction Design
Detailed Design
Prototypes
Evaluation
No!
Evaluation
Yes
No! Yes
Goals met?
Yes
Deployment
Usability Design Guide Introduce and operate
237
Prototypage-Ralisation
Limiter au maximum le nombre des intervenants: Lorsque les spcifications sont assez claires, toute intervention extrieure ne peut que faire perdre du temps: - de personnes => moins d'incohrences dans le produit - 1 personne motive travaille mieux que 10 ensemble: tous les grands progiciels sont crit par une quipe d'au plus 4 personnes Ne pas hsiter revenir en arrire, voire zro ds le dbut: prototypes "jetables" : malgr les problmes de dlais, il est souvent plus rapide de repartir de rien en tirant profit de l'exprience acquise, que de traner des problmes de conception originaux lors de plusieurs itrations. Au bout d'une certaine tape, il est impossible de revenir en arrire => se prmunir au maximum des checs d des erreurs faites au dbut.
238
Preliminary needs
Prototype
& verification
no yes
User's evaluation
Requirements
Requirements Maintenance
adquat ?
Final System Specification Requirements Formal specifications Hi-fidelity prototype Software Architecture
Architecture design Detailed design
Coding
239
240
Problmes
242
243
244
Exercice : Aroport
Vous tes dans un avion en train datterrir Vous avez une correspondance trs courte Vous avez faim Dterminez un systme de distribution de nourriture permettant dobtenir la nourriture le + rapidement possible
245
Mise en uvre
Cration d'un modle conceptuel: - dfinir les objets utiliss - les oprations effectuer - les concepts et les enchanements logiques Reprsentation du Contrle Choix et Spcification du Modle d'Interaction -> utiliser les dessins et schmas sur papier pour - la reprsentation des donnes - la formulation des actions -> penser aux rgles de cohrence et concision.
246
DU DESIGN LA CONSTRUCTION
Modle de Seeheim 83
Utilisateur
Composant Presentation
Contrleur du Dialogue
Noyau fonctionnel
248
Abstract rendering
Modle Architectural
Abstract Events
Transducers
Concrete rendering
rendering
events 249
Le dialogue :
qu'est-ce que l'utilisateur a la possibilit de faire comment l'utilisateur agit sur la prsentation l'influence de son action sur ce qu'il pourra faire ensuite Le noyau fonctionnel : les fonctions ralises par l'application les donnes manipules par l'application 250
Dans les autres cas elle fait des calculs et l'utilisateur doit attendre
Procdure Ajouter; dbut rep = 'o'; Tantque rep <> 'n'; dessin-cran; lire(nom); lire(prenom); ... crire('voulez-vous continuer ?'); lire(rep) FinTantque Fin
252
Fonctionnement classique
Lire une entree
Lire une entre Ef f ectuer un traitement
Effectuer un traitement.
sortie ?
Sortie ?
Fin
253
La boucle d'vnement (main event loop) : reoit chaque vnement produit par l'utilisateur Les gestionnaires d'vnements : sont des procdures associes chaque couple (widget, action sur un widget) et appeles par la main event loop ds que une action a t ralise.
Tous les event handlers ont la mme structure : EH1; Prcondition; Action; Modification de l'tat du dialogue; Rtroaction graphique; Fin EH1;
254
Event-based Functioning
At startup
Register Event Handlers EH Registration Event Queue Get next event Call Window Manager Application Finished Even Handler 1
At runtime
Dispatch event
Even Handler 2
Ack received
Wait for next event
States
Even Handler n
255
256
Deuxime Couche
Principe Tltubbies Principe Gillette
Non-interactive Excution linaire Processus dautomatisation (automatique) Ne prends pas en compte les capacits de lhumain versus ordinateur
program:
main() { code; code; code; code; code; code; code; code; code; code; code; code; }
Lutilisateur choisit les options Excution non-linaire (branching) Ordre imprdictible Systme arrt sur instruction de lecture Possibilit de continuer
GUI program:
main() { decl data storage; initialization code; create GUI; register callbacks; } main event loop;
Lutilisateur dclenche des commandes Excution non linaire Ordre non prdictible La plupart du temps le systme ne fait rien Les procdure de gestion dvnements
mouse click
Window System
input device event loop which app?
event loop
App2
event loop which control?
Fonctionnement
GUI App
Class{ decl data storage; constructor(){ initialization code; create GUI controls; register callbacks; } main(){ Run(new ) } callback1(){ do stuff; } callback2(){ do stuff; }
263
Etats et vnements
1- le monde rel volue de faon continue 2- les variables reprsentent des variations par pallier 3- les vnements peuvent avoir une origine priodique (regarder sa montre toutes les 30s) 4- les vnements arrivent et ont un impact sur ltat 264
Modlisation
Une dmarche de conception Une notation les automates Un processus proche de E/A Un cheminement vers le code de l'application
266
1) 2) 3) 4) 5)
liste des vnements liste des actions automate de comportement Matrice etats/vnements Event-handlers
267
Avantages
Comportementales D'utilisabilit
268
des vnements dclenchant des actions des conditions de dclenchement des actions des registres (variables numriques) effectuer des actions sur les registres (affectation)
Les vnements, les conditions et les actions sont reprsents sur les arcs sous la forme suivante : Ev3 / Cond3
A3
E1 Ev1 / Cond1 A1
E2
f : E x Ev -> A, f(E1,Ev1) = A1, f(E2,Ev1) = f(E3,Ev1) = A2, f(E4,Ev2) = f(E3,Ev2) = A3, f(E2,Ev2) = A4
Ev2 A4 E1 Ev1 A1 E2
Ev2 A3 Ev1 A2 E3
Ev2 A3 Ev1 A2 E4
270
Handler Ev1 is begin Case v of 1 : A1; v:=2; ev1 actif ev2 actif 2 : A2; v:=3; ev1 actif ev2 actif 3 : A2; v:=4; ev1 inactif ev2 actif 4 : 'Interdit Endcase EndHandler;
Handler Ev2 is begin Case v of 1 : 'Interdit 2 : A4; v:=1; ev1 actif ev2 inactif 3 : A3; v:=2; ev1 actif ev2 actif 4 : A3; v:=3; ev1 actif ev2 actif Endcase EndHandler;
271
Tableau reccapitulatif
Protocole de communication (appli. - utilisateur) Nature de l'appli. Application = client Utilisateur = serveur Application = serveur Utilisateur = client
Transformationnelle
Inter(r)active
Contrle
Impratif
Dclaratif
Historique
272
273
Application
274
Automate Exercice 1
CB1
E1 E2
CB4
E4
CB2 CB3
E3
275
276
CB1 A1
CB1
E2
CB3 CB4
CB1
CB2
CB4 A4
E4
CB2 A2
CB3 A3
E3
CB1
CB2 277
CB3
CB4
Spcification du comportement dune application avec 4 boutons cycliques toujours actifs et en ajoutant un raccourci (dans ltat o B3 est en gras, on peut cliquer sur B2 ce qui conduit dans ltat initial)
278
CB1 A1
CB1
E2
CB3 CB4
CB1
CB2
CB4 A4
E4
CB2 CB2 A4 A2
CB3 A3
E3
CB1
CB4 279
CB3
Application
Ou pas
280
Automate Exercice 2
CB4
CB3
CB3
E5
CB2
E4
CB1
E1
CB2
E3
CB1
CB4
E6
CB2
CB3
CB4
281
Et le Space, et le tab
CB4
tab CB1 CB2 E2 CB1 Space Space Space E1 tab E7 Space CB3 CB3 E5
Space
E4 Space E6 CB4
Space Space Space CB2 E3 CB1 Space CB4 CB2 tab E8 tab CB3
282
283
Boucle d'affichage
2 boutons (start, stop) 1 compteur L'utilisateur doit pouvoir interrompre tout instant
Votre Appli
Application
Ou encore
284
Automate Compteur
CStart A1
Init Compte
CStop A2 285
A2: Label.Text="Pouf"
CStop A2 286
Cstart
Exercice compteur+1
3 boutons On ne peut cliquer sur +1 que 3 fois Clic sur Stop affiche "Pouf"
Cstop
C+1
Application
287
Exercice compteur+1
CStart A1
Init E1
C+1 A3
E2
C+1 A3
E3
C+1 A3
E4
CStop A2
288
Compteur+1 repliage
CStart A1
Init E1
C+1 A3
E1
C+1 A3
E1
C+1 A3
E1
CStop A2
C+1 A2
Etats repliables
289
Compteur+1 repliage
CStart A1
Init E1
C+1 A3
Indterminisme de l'automate
290
Compteur+1 dterminisme
n=0 A1
Init
CStart A1 n=0
E1
Rajout d'une variable d'tat lies l'tat E1 C+1/n<3 Systmatiquement A3 mise n++ jour chaque changement d'tat Ajout de conditions pour lever l'indterminisme 291
CStop A2 n=0
Matrice tats/vnements
CStart CStop C+1
Init
A1 n=0 etat="E1"
'Interdit
'Interdit
'Interdit
E1
A2 n=0 etat="Init"
Si n<3 alors A3 n=n+1 tat="E1" Sinon 'rien faire n=0 etat="Init" FinSi
292
293
Timer/n<3 A3 n++
CStop A2 n=0
Timer/n>=3 A2 n=0
294
Matrice tats/vnements
CStart CStop Timer
Init
A1 n=0 etat="E1"
'Interdit
'Interdit
'Interdit
E1
A2 n=0 etat="Init"
Si n<3 alors A3 n=n+1 tat="E1" Sinon 'rien faire n=0 etat="Init" FinSi
295
On enlve le bouton +1 On rajoute un timer On donne le "name" du bouton comme "name" au timer On dplace le code de l'event handler de +1 vers le timer On dfinit la priode du timer Augmenter la limite 30
296
Avance - Recule
297
Compteur Avance-Recule
CStart A1 n=0
CStop A2 n=0
Init
Timer/n<5 A3 n++
Avance A1: Label1.caption=0 A2: Label1.caption="Pouf"
Timer/n>=5 A2 n=0
Timer/n<=0 A2 n=0
ClicArr n=n
ClicAv n=n
A3: label1.caption=n
CStop A2 n=0
Recule
Timer/n>0 A3 n--
298
Spcification du comportement dune application de gestion de feu de circulation Utilisation des composants Shape (excution)
Exemple Excution
Shape1.fillcolor choisir la couleur dans la palette Shape1.shape choisir circle dans la palette
299
Arrt
Arrt Marche
Arrt
Marche
Panne
300
Panne Arrt
Arrt
Marche
Panne
301
Panne Arrt
Arrt
Marche
Panne
302
Panne Arrt
T5
Arrt
Marche
T4
OE
303
Form_Load A4
R
CA A4 CA A4 T1 A3
CA A4
A1 : A2 :
CA A4
CM CP A2 A1 CP T3 OA A2 A1 T5 CP A E A2 4 T2 A2 CA A4
T4 A2
A3 :
A4 :
allumer Rouge teindre Orange teindre Vert teindre Rouge allumer Orange teindre Vert teindre Rouge teindre Orange allumer Vert teindre Rouge teindre Orange teindre Vert
304
Comment vrifier la fiabilit de lapplication (jeux de test) Ex. la 4ime fois que je clique sur Marche tout sarrte Exemple Marche Pas Comment valider lutilisabilit (nombre dtats internes-nombres dtats externes) Comment tester la modifiabilit
305
Fonctionnement diffrent
Rouge et orange allums Avant le vert allum Aprs le rouge allum seul
Exemple Excution
306
Pas de modification sur les modes Modification du mode Marche Rajout dune action (allumer Rouge et Orange)
Mode Marche
R
Marche
Arrt
Panne
Arrt
RO
Arrt
Marche
Marche
Panne V
307
Fonctionnement diffrent
Rouge et orange allums Avant le vert allum Aprs le rouge allum seul Avant lorange le vert clignote 4 fois
Exemple Excution
308
Un nouveau sous-mode (vert clignotant) Modification du mode Marche Mode Marche Changements de mode temporiss R
CPanne
CMarche
Arrt
CArrt
RO
Panne Marche
CArrt
CMarche
VertCli V
309
Un nouveau sous-mode (vert clignotant) Modification du mode Marche Mode Marche Changements de mode temporiss R
CPanne CArrt T1 RO Panne Marche CMarche O
T3
T2
T7
VE T8 T7
V T6
VA
310
Les timers sont tous diffrents donc paramtrables Si les dures sont gales (comme les actions sont gales) on peut faire avec 1 ou 2 timers (si dures allum et teint diffrentes)
T14 T13 T12 T11
T10 VA
O T2
T6
VE
T7
VA
T8
VE
T9
311
Form_Load A4
CM A1 T1 CA A3 A5 CA T2 CA A5 A4 A5
CA A5
CA A5
CM A1
R
CA A5
A2 :
A3 : A4 :
RO
T4 A1
CM A1
CP A2
CP CP A2 A2 CP A2 T5 A 5
OA OE
T6 A2 A5 :
allumer Rouge teindre Orange teindre Vert teindre Rouge allumer Orange teindre Vert allumer Rouge allumer Orange teindre Vert teindre Rouge teindre Orange allumer Vert teindre Rouge teindre Orange teindre Vert
CA A5
CA A5
CP A2 CP A2
Rubber Banding
Line (x1,y1)-(x2,y2), RGB (0,0,0) Line (x1,y1)-(x2,y2), RGB (255,0,0) Redessiner une ligne efface la ligne
'noir 'rouge
Rubber Banding
Form_Load 'rien MouseMove 'rien
Init
MouseDown A1
E1
MouseMove A3
MouseUp A2
314
MouseMove A3
E1 E2
MouseUp rien
MouseMove A4
MouseMove 'rien
MouseUp A2 A3 et A4 doivent tre diffrentes A3: tracer un trait A4: effacer un trait ET tracer un trait 315
Matrice Etats/Evnements
MouseMove etat="Init" rien faire MouseUp 'Impossible MouseDown Form_load() Init etat="E1" A1 etat="Init" rien faire
E1
etat="E1" A3
etat="Init" Impossible
A2
316
Faire une application qui permet de dessiner des lignes, cercles, rectangles, Fonctions
Circle (centrex,centrey), rayon Line (x1,y1)-(x2,y2), RGB (0,0,0), B (trace un rectangle englobant la ligne)
Dissocier le code de prsentation des event handlers Grer les modes de l'application
317
Attention au mode Trace (on ne veut pas que lutilisateur puisse cliquer sur les boutons)
ClicRectangle
Modes
MMove
ClicCercle Rectangle
MDown
Idle
MUp
Trace
MMove
ClicRectangle
319
MouseMove 'rien
IM1 MouseDown A1
ClicCircle ClicLine rien rien MouseDown MouseUp MouseUp A1 A3 A2 TM2 MouseMove circle
ClicLine rien
320
La matrice tats/vnements
Circle IM1
Etat="IM2" rien
Line
'interdit
Rect
Etat="IM3" rien
MD
Etat="TM1" A1
MU
'Impossible
MM
'rien Etat="IM1"
TM1
IM2
'interdit
'interdit
'interdit
'Impossible
Etat="IM1" A2
'Impossible
Etat="TM1" Line
'rien Etat="IM1"
'interdit
Etat="IM1" rien
Etat="IM3" rien
Etat="TM2" A1
TM2
IM3 TM3
'interdit
'interdit
'interdit
'Impossible
Etat="IM2" A3
'Impossible
Etat="TM2" circle
'rien Etat="IM1" Etat="TM3" rectangle
'interdit
Etat="TM3" A1 'Impossible
'interdit
Etat="IM3" A4
321
Application de dessin
Autre mise en uvre: design pattern state as object VB ne permet pas l'utilisation de pointeurs de fonctions
On va le simuler par l'utilisation d'une variable Exploiter cette variable dans la partie prsentation (avec un case)
Modles
Un modle pour dcrire le comportement de la palette d'outils Un modle pour dcrire le comportement du dessin
323
Comportements
MouseDown A1 MouseMove 'rien Dessin
Init E1
MouseMove A3
MouseUp A2
ClicRectangle ClicCercle ClicLigne
ClicCercle Rect
Cercle ClicRectangl e ClicLigne
Ligne
Palette d'outils
324
Polyline
Rubber banding Plusieurs points Clic droit enlve un point Clic gauche rajoute un point Espace termine le dessin (en rouge)
325
Polyline (solution)
Attention aux vnements (diffrents des event handlers) Attention "clics" et pas autre chose Nombre d'tats illimits => repliage de l'automate
326
Polyline (solution)
4 vnements
327
Init
ClickBtnD / n<=2 A1 n=1 ClickBtnD / n>2 ClickBtnD A1 rien n-n=n Espace A2 n=0
328
Faire une application qui permet de dessiner des lignes, cercles, rectangles, et maintenant on rajoute la polyligne et on a la possibilit de modifier les couleurs On peut changer l'interface
Spcifications informelles
L'utilisateur a la possibilit d'effectuer les actions suivantes : Ajouter un enregistrement la table, Supprimer un enregistrement, Slctionner un enregistrement parmi ceux de la table, Modifier les attributs de l'enregistrement slectionn, Quitter l'application. Certaines contraintes sont fixes sur le droulement de l'application : Il est interdit de slectionner ou de supprimer un enregistrement de la table si l'utilisateur est en train d'en modifier un autre, Il est possible de quitter l'application tout moment, sauf quand l'utilisateur a effectu des modifications non valides sur l'enregistrement en cours. 330
331
Evnements traiter
ClickAdd : bouton Ajouter ClickSuppr : bouton Supprimer ClickRet: bouton Rtablir ClickRemp: bouton Remplacer ClickList : choix dun lment dans la liste ClickEdit: Modification dun lment quelconque dans la zone ddition ClickQuit : Case de fermeture de la fentre
332
Automate de dialogue
ClickEdit
333
Composants volus
334
Pie Menu
Valeur
suivant
Si lutilisateur clique sur le bouton droit de la souris, un menu circulaire apparat. Lutilisateur doit alors se dplacer sur litem quil souhaite. Une fois sur litem voulu, il peut alors cliquer avec le bouton gauche et laction associe litem est alors active
suivant
prcdent
supprimer
modifier
335
3 vnements CD (clic droit), CG (clic gauche), MM (mouse move) 4 actions AffMenu, EffMenu, Commande, Highlight 2 prconditions inMenu, outMenu
336
Idle
CD AffMenu
Menu
MM Highlight
337
Marking Menu
Si lutilisateur presse le bouton droit de la souris, et attend plus de 300 ms avec le bouton droit enfonc, un menu circulaire apparat (cf. Figure a). Lutilisateur doit alors se dplacer sur litem quil souhaite sans relcher le bouton. Une fois sur litem voulu, il peut alors relcher le bouton et laction associe litem est alors active Si lutilisateur connat la position sur le menu circulaire de litem quil souhaite saisir, il nest pas oblig dattendre les 300 millisecondes ncessaire laffichage du menu (cf. Figure B). Il na qu raliser un geste dans la direction de litem slectionner : i.e. il ralise successivement la pression du bouton droit, le dplacement dans la direction de litem et relche le bouton droit, le tout sans avoir attendre les 300 ms
338
suivant
prcdent
supprimer
modifier
Figure a
Figure b
339
4 vnements MM (mouse move), MD (mouse down), MU (mouse up), Timer 8 actions AffMenu, EffMenu, Commande, Highlight, A1, A2, A3 et A4 (du rubber banding) 2 prconditions inMenu, outMenu
340
Visible
Timer AffMenu
MM Highlight A3;A4
Idle
Marking
MM A3
Invisible
MM Highlight A4
341
Si lutilisateur clique sur le bouton droit de la souris, le menu a un comportement de pie menu. Si lutilisateur presse le bouton droit de la souris, le menu a un comportement de marking menu.
342
6 vnements CD (clic droit), CG (clic gauche), MM (mouse move), MD (mouse down), MU (mouse up), Timer 8 actions AffMenu, EffMenu, Commande, Highlight, A1, A2, A3 et A4 (du rubber banding) 2 prconditions inMenu, outMenu
343
Visible
Timer AffMenu MM A3
Menu
Idle
MD A1
Marking
MU / outMenu Nothing A2 MU / inMenu Commande A2
Invisible
MM Highlight A4
344
Visible
Timer AffMenu MM A3
Menu
Idle
MD A1
Marking
MU / outMenu Nothing A2 MU / inMenu Commande A2
Invisible
MM Highlight A4
345
346
Form1 load: charge une fentre L'activation et la dsactivation d'une fentre se fait par affichage (form1.show ou plutt My.Application.f1.Show() )ou masquage (form1.hide) ou premier plan (form1.setfocus) Le processus de conception reste le mme
Exemple 3 fentres
348
Principes VB (1/2)
Elles ne peuvent pas connatre la personne en charge du dialogue entre fentre Dclaration de l'vnement dans la form (Public Event nextwindow ()) Utilisation de l'instruction RaiseEvent
seul moyen de faire du "catch" Gre l'activation et la dsactivation des fentres 349
1 ApplicationEvents
Principes VB (2/2)
Public Sub f1_nextWindow() Utilisation de applicationEvents Handles f1.nextWindow Select Case grain La variable dtat denchainement des Case "F1" fentres grain = "F2" Public grain As String f1.Hide() Cre les fentre f2.Show() Public WithEvents f1 As New Form1 f3.Hide() Case "F2" Surcharge des eventHandlers 'interdit Case "F3" 'interdit End Select End Sub
350
Schma rcapitulatif
Nextwindow()
Fentre 1
Fentre 4 Initialisation
Nextwindow()
Fentre 2
Nextwindow()
Form1_Nextwindow() Fentre 3 Form2_Nextwindow()
Form3_Nextwindow() ApplicationEvents Dclare les fentres Charge les fentres Gre le dialogue
351
Automate fentres
F2_NW F3_NW
E3
352
Matrice Etats/Evnements
F1_NW E1 E2 E3 grain="E2" rien faire 'Interdit 'Interdit F2_NW 'Interdit F3_NW Modclass_Init() 'Interdit grain="E1" rien faire
353
Public Event nextwindow() Private Sub Command1_Click() Label1.Caption = "titi" RaiseEvent nextwindow End Sub
354
Fentre dinitialisation
355
Code ApplicationEvents
Private Sub feuille1_nextwindow() Select Case grain Case "F1" grain = "F2" f1.Hide f2.Show f3.Hide Case "F2" 'interdit Case "F3" 'interdit End Select End Sub
Private Sub feuille2_nextwindow() Select Case grain Case "F1" 'interdit Case "F2" grain = "F3" f1.Hide f2.Hide f3.Show Case "F3" 'interdit End Select End Sub
Private Sub feuille3_nextwindow() Select Case grain Case "F1" 'interdit Case "F2" 'interdit Case "F3" grain = "F1" f1.Show f2.Hide f3.Hide End Select End Sub
356
Au niveau des fentre F1, F2 et F3 Au niveau de larchitecture (communications et objets) Au niveau du module de Classe
357