Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Esercitazione del Corso di Interazione Uomo-Macchina
Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)
2
Le Grammatiche Formali
Le Grammatiche formali sono un metodo generativo per la definizione dei linguaggi. Descrivono cioè come generare tutte e sole le stringhe che appartengono ad un linguaggio. Grammatica Formale G: , V, S, P alfabeto : a, b, …. variabili V: A, B, ….S assioma S V produzioni P: Pi | Pi : A , * V*
3
Rappresentazione dell’interazione Utente-Sistema mediante grammatiche formali
Ogni tipo di comunicazione previsto fra Utente e Sistema può essere definito mediante la sequenza di comandi elementari (Linguaggio dei comandi) che l’utente può eseguire. Il linguaggio dei comandi può essere generato mediante una grammatica formale G: , V, S, P in cui e’ l’insieme di tutti i comandi elementari che l’utente può effettuare V e’ l’insieme di azioni complesse SV rappresenta l’obbiettivo finale che l’utente deve eseguire P rappresenta l’insieme di regole che stabiliscono sequenze di comandi elementari (e non) lecite all’utente
4
Taglia e Incolla in Word
Un semplice esempio Taglia e Incolla in Word
5
Partiamo dalla Task Analysis…..
Taglia e Incolla Incolla Taglia Posiziona Cursore Seleziona Oggetto da Tagliare Comando Taglia Comando Incolla Digita Control Rilascia X Digita Control Rilascia Control Rilascia Control Digita X DigitaV Rilascia V Trascina Cursore Posiziona Cursore Clicca Tasto sinistro del mouse Rilascia Tasto sinistro del mouse
6
…e costruiamo la grammatica (1)
= { posiziona-cursore, clicca-tasto-sinistro-del-mouse, rilascia-tasto-sinistro-del-mouse, trascina-cursore, digita-control, digita-x, digita-v, rilascia-control,rilascia-x, rilascia-v} V = { <TAGLIA-E-INCOLLA>, <TAGLIA>, <INCOLLA>, <SELEZIONA-OGGETTO-DA-TAGLIARE>, <COMANDO-TAGLIA>, <COMANDO INCOLLA>} S = { <TAGLIA-E-INCOLLA>} P = {……...}
7
…e costruiamo la grammatica (2)
P = {……...} 1: <TAGLIA-E-INCOLLA> ::= <TAGLIA> <INCOLLA> 2: <TAGLIA>::= <SELEZIONA-OGGETTO-DA-TAGLIARE> <COMANDO-TAGLIA> 3: <SELEZIONA-OGGETTO-DA-TAGLIARE> ::= posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore <SELEZIONA-OGGETTO-DA-TAGLIARE> | trascina-cursore <SELEZIONA-OGGETTO-DA-TAGLIARE> | rilascia-tasto-sinistro-del-mouse 4: <COMANDO-TAGLIA>::= digita-control digita-x rilascia-control rilascia-x | digita-control digita-x rilascia-x rilascia-control 5: <INCOLLA>::= posiziona-cursore <COMANDO INCOLLA> 6: <COMANDO INCOLLA>::= digita-control digita-v rilascia-control rilascia-v | digita-control digita-v rilascia-v rilascia-control
8
…una stringa generata... <TAGLIA-E-INCOLLA> 1 <TAGLIA> <INCOLLA> 2 <SELEZIONA-OGGETTO-DA-TAGLIARE> <COMANDO-TAGLIA> <INCOLLA> 3 posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore <SELEZIONA-OGGETTO-DA-TAGLIARE> <COMANDO-TAGLIA> <INCOLLA> 3 posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore rilascia-tasto-sinistro-del-mouse <COMANDO-TAGLIA> <INCOLLA> posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore rilascia-tasto-sinistro-del-mouse digita-control digita-x rilascia-control rilascia-x <INCOLLA> 5 posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore rilascia-tasto-sinistro-del-mouse digita-control digita-x rilascia-control rilascia-x posiziona-cursore <COMANDO INCOLLA> 6 posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore rilascia-tasto-sinistro-del-mouse digita-control digita-x rilascia-control rilascia-x posiziona-cursore digita-control digita-v rilascia-control rilascia-v
9
Limiti della grammatica
Un alto numero di produzioni per descrivere modi diversi (se esistono) di eseguire uno stesso task rende una grammatica illeggibile. (nel nostro esempio lo stesso comando può essere eseguito cliccando sui comandi opportuni, oppure mescolando interazione da tastiera e comandi grafici in più di un modo) Non permette di rappresentare: 1.) la dinamica con cui l’interfaccia evolve in relazione ai comandi inviati dall’Utente al Sistema (nel nostro esempio non riusciamo a rappresentare ad esempio il fatto che dopo aver eseguito il comando di taglia l’oggetto tagliato sparisce dallo schermo e ricompare solo dopo aver effettuato il comando di incolla) 2.) l’adattamento dell’interfaccia all’Utente (nel nostro esempio potremmo voler rappresentare il fatto che un utente esperto debba utilizzare comandi da tastiera, viceversa uno meno esperto comandi grafici) 3.) I casi in cui l’ordine di esecuzione dei comandi non è rigidamente definito (nel nostro esempio il comando “trascina cursore” viene ripetuto in principio un numero indefinito di volte)
10
Costruiamo la UAN per il task: “Taglia e Incolla”
Una prima soluzione al problema espresso nel punto 3. ( posiziona-cursore clicca-tasto-sinistro-del-mouse (trascina-cursore)n rilascia-tasto-sinistro-del-mouse digita-control digita-x (rilascia-control & rilascia-x) posiziona-cursore digita-control digita-v (rilascia-control & rilascia-v ) )
11
Metodi Riconoscitivi: le Reti di Petri (PN)
Definizione ‘formale’ Una PN è una tupla: <N, P, T, A, SP, EP, M>, con N: nome della rete P: un insieme di posti, indicati con T: un insieme di transizioni, indicati con A: un insieme di archi orientati fra P e T ( o T e P) SP: un insieme di posti (incluso in P) denotati come ‘start place’ EP: un insieme di posti (incluso in P) denotati come ‘end place’ M: una funzione di marcatura dei posti, che associa ad ogni posto il valore di una variabile binaria (a seconda che il posto sia ‘marcato’ o no). Un posto marcato viene indicato con • In questo caso, M(pi) = 1
12
Costruiamo la rete di Petri per il task: “Taglia e Incolla”(1)
. Begin . TAGLIA cliccabile INCOLLA cliccabile Posiziona-cursore SELEZIONA-OGGETTO-DA TAGLIARE Cursore posizionato Oggetto selezionato COMANDO-INCOLLA COMANDO-TAGLIA Oggetto posizionato Oggetto eliminato End Oggetto nel buffer Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile)
13
Costruiamo la rete di Petri per il task: “Seleziona oggetto da tagliare”
. Begin . Cursore posizionabile Tasto sinistro del mouse cliccabile Posiziona cursore Clicca tasto sinistro del mouse Tasto sinistro del mouse cliccato Cursore posizionato Trascina cursore Oggetto non selezionato Oggetto selezionato Rislascia tasto sinistro del mouse Tasto sinistro del mouse rilasciato End
14
Costruiamo la rete di Petri per il task: “Comando Taglia” (I)
. Begin . Control digitabile x digitabile Digita control Digita x X digitato Control digitato Rilascia x Rilascia Control X rilasciato Control Rilasciato Rilascia control Rilascia x Scelta End
15
Costruiamo la rete di Petri per il task: “Comando Taglia” (II)
. Begin . Control digitabile x digitabile Digita control Digita x X digitato . Control digitato Rilascia Control Rilascia x Control Rilasciato X Rilasciato Indipendenza d’ordine End
16
Costruiamo la rete di Petri per il task: “Comando Incolla”
. Begin . Control digitabile v digitabile Digita control Digita v v digitato Control digitato Rilascia v Rilascia Control v rilasciato Control Rilasciato Rilascia control Rilascia x End
17
Simuliamo il comportamento per la stringa generata
posiziona-cursore clicca-tasto-sinistro-del-mouse trascina-cursore rilascia-tasto-sinistro-del-mouse digita-control digita-x rilascia-control rilascia-x posiziona-cursore digita-control digita-v rilascia-control rilascia-v
18
. Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile) Begin
Posiziona-cursore SELEZIONA-OGGETTO-DA TAGLIARE Cursore posizionato Oggetto selezionato COMANDO-INCOLLA COMANDO-TAGLIA Oggetto posizionato Oggetto eliminato End Oggetto nel buffer Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile)
19
. . . . . Begin Cursore posizionabile
Tasto sinistro del mouse cliccabile . . Posiziona cursore Clicca tasto sinistro del mouse Tasto sinistro del mouse cliccato Cursore posizionato Trascina cursore Oggetto non selezionato Oggetto selezionato . Rislascia tasto sinistro del mouse Tasto sinistro del mouse rilasciato End
20
. . Begin TAGLIA cliccabile INCOLLA cliccabile Posiziona-cursore
SELEZIONA-OGGETTO-DA TAGLIARE Cursore posizionato Oggetto selezionato COMANDO-INCOLLA COMANDO-TAGLIA Oggetto posizionato Oggetto eliminato End Oggetto nel buffer
21
. . . . . Begin Control digitabile x digitabile Digita control
Digita x X digitato Control digitato . Rilascia x Rilascia Control X rilasciato Control Rilasciato . Rilascia x Rilascia control End
22
. . . Begin TAGLIA cliccabile INCOLLA cliccabile
SELEZIONA-OGGETTO-DA TAGLIARE Posiziona-cursore Cursore posizionato Oggetto selezionato COMANDO-INCOLLA COMANDO-TAGLIA Oggetto posizionato Oggetto eliminato End Oggetto nel buffer
23
. . . . . Begin Control digitabile v digitabile Digita control
Digita v v digitato Control digitato . Rilascia v Rilascia Control v rilasciato Control Rilasciato . Rilascia control Rilascia x End
24
. . Begin TAGLIA cliccabile INCOLLA cliccabile Posiziona-cursore
SELEZIONA-OGGETTO-DA TAGLIARE Cursore posizionato Oggetto selezionato COMANDO-INCOLLA . COMANDO-TAGLIA Oggetto posizionato Oggetto eliminato End Oggetto nel buffer
25
Utilizziamo la rete di Petri costruita per simulare il comportamento
Del Comando Taglia e Incolla di Excell
26
task: “Taglia e Incolla” di Excell
. . . Begin TAGLIA cliccabile INCOLLA cliccabile Posiziona-cursore SELEZIONA-OGGETTO-DA TAGLIARE Cursore posizionato Oggetto selezionato COMANDO-INCOLLA COMANDO-TAGLIA Oggetto posizionato Oggetto eliminato End Oggetto nel buffer Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile)
27
Questo e’ un esempio di come una rete di petri possa essere utilizzata per la verifica dell’inconsistenza funzionale (esterna nell’esempio)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.