Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di...

27
Esercitazione del Corso di Interazione Uomo- Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Transcript of Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di...

Page 1: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Esercitazione del Corso di Interazione Uomo-Macchina

Modulo3:Metodi Formali per la Specifica di

Interfacce:

un esempio completo

(V.Carofiglio)

Page 2: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

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, ….Sassioma S Vproduzioni P: Pi | Pi : A , * V*

Page 3: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Rappresentazione dell’interazione Utente-Sistema

mediante grammatiche formaliOgni 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

Page 4: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Un semplice esempio

Taglia e Incolla in Word

Page 5: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Partiamo dalla Task Analysis…..Taglia e Incolla

Taglia Incolla

Seleziona Oggetto da Tagliare

Comando Taglia

Digita Control Digita X Rilascia

Control

Rilascia X Digita Control DigitaV

Rilascia Control

Rilascia V

Posiziona Cursore

Comando Incolla

Posiziona Cursore Rilascia

Tasto sinistro del mouse

Trascina Cursore

Clicca Tasto sinistro del mouse

Page 6: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

…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 = {……...}

Page 7: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

…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

Page 8: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

…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> 4 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

Page 9: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

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)

Page 10: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Costruiamo la UAN per il task: “Taglia e Incolla”

( 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 ) )

Una prima soluzione al problema espresso nel punto 3.

Page 11: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Metodi Riconoscitivi:le Reti di Petri (PN)

Definizione ‘formale’

Una PN è una tupla: <N, P, T, A, SP, EP, M>, conN: nome della reteP: 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

Page 12: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Costruiamo la rete di Petri per il task: “Taglia e Incolla”(1)

Begin

End

TAGLIA cliccabile INCOLLA cliccabile

SELEZIONA-OGGETTO-DA TAGLIARE

COMANDO-TAGLIA

Oggetto eliminato Oggetto nel buffer

. .Posiziona-cursore

Oggetto selezionato

Cursore posizionato

COMANDO-INCOLLA

Oggetto posizionato

Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile)

Page 13: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Costruiamo la rete di Petri per il task: “Seleziona oggetto da

tagliare” Begin

End

Cursore posizionabile Tasto sinistro del mouse cliccabile

Posiziona cursore

Cursore posizionato

Oggetto non se

lezionato

. .Clicca tasto sinistro del mouse

Trascina cursore

Oggetto selezionato

Tasto sinistro del mouse cliccato

Rislascia tasto sinistro del mouse

Tasto sinistro del mouse rilasciato

Page 14: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Costruiamo la rete di Petri per il task: “Comando Taglia” (I)

Begin

End

Control digitabile x digitabile

Digita control

Control digitato

Rilascia x

. .Digita x

Rilascia x

X rilasciato

X digitato

Control Rilasciato

Rilascia Control

Rilascia control

Scelta

Page 15: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Costruiamo la rete di Petri per il task: “Comando Taglia” (II)

Begin

End

Control digitabile x digitabile

Digita control

Control digitato

Rilascia x

. .Digita x

X digitato

Rilascia Control

Control Rilasciato

.X Rilasciato

Indipendenza d’ordine

Page 16: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Costruiamo la rete di Petri per il task: “Comando Incolla”

Begin

End

Control digitabile v digitabile

Digita control

Control digitato

Rilascia x

. .Digita v

Rilascia v

v rilasciato

v digitato

Control Rilasciato

Rilascia Control

Rilascia control

Page 17: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

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

Page 18: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Begin

End

TAGLIA cliccabile INCOLLA cliccabile

SELEZIONA-OGGETTO-DA TAGLIARE

COMANDO-TAGLIA

Oggetto eliminato Oggetto nel buffer

. .Posiziona-cursore

Oggetto selezionato

Cursore posizionato

COMANDO-INCOLLA

Oggetto posizionato

Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile)

Page 19: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

. ..

Begin

Cursore posizionabile Tasto sinistro del mouse cliccabile

Posiziona cursore

Cursore posizionato

Oggetto non se

lezionato

. .Clicca tasto sinistro del mouse

Trascina cursore

Oggetto selezionato

Tasto sinistro del mouse cliccato ...

End

Rislascia tasto sinistro del mouse

Tasto sinistro del mouse rilasciato.

Page 20: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Begin

End

TAGLIA cliccabile INCOLLA cliccabile

SELEZIONA-OGGETTO-DA TAGLIARE

COMANDO-TAGLIA

Oggetto eliminato Oggetto nel buffer

. .Posiziona-cursore

Oggetto selezionato

Cursore posizionato

COMANDO-INCOLLA

Oggetto posizionato

..

Page 21: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Begin

End

Control digitabile x digitabile

Digita control

Control digitato

Rilascia x

. .Digita x

Rilascia x

X rilasciato

X digitato

Control Rilasciato

Rilascia Control

Rilascia control

.. .

..

Page 22: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Begin

End

TAGLIA cliccabile INCOLLA cliccabile

SELEZIONA-OGGETTO-DA TAGLIARE

COMANDO-TAGLIA

Oggetto eliminato Oggetto nel buffer

Posiziona-cursore

Oggetto selezionato

Cursore posizionato

COMANDO-INCOLLA

Oggetto posizionato

...

. .

.

Page 23: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Begin

End

Control digitabile v digitabile

Digita control

Control digitato

Rilascia x

Digita v

Rilascia v

v rilasciato

v digitato

Control Rilasciato

Rilascia Control

Rilascia control

. ... .

..

Page 24: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Begin

End

TAGLIA cliccabile INCOLLA cliccabile

SELEZIONA-OGGETTO-DA TAGLIARE

COMANDO-TAGLIA

Oggetto eliminato Oggetto nel buffer

Posiziona-cursore

Oggetto selezionato

Cursore posizionato

COMANDO-INCOLLA

Oggetto posizionato

.

.

Page 25: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Utilizziamo la rete di Petri costruita per simulare il

comportamento Del Comando Taglia e Incolla di

Excell

Page 26: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

task: “Taglia e Incolla”di Excell

Begin

End

TAGLIA cliccabile INCOLLA cliccabile

SELEZIONA-OGGETTO-DA TAGLIARE

COMANDO-TAGLIA

Oggetto eliminato Oggetto nel buffer

. .Posiziona-cursore

Oggetto selezionato

Cursore posizionato

COMANDO-INCOLLA

Oggetto posizionato

Marcatura iniziale: (TAGLIAcliccabile, INCOLLA cliccabile)

..

.

.

Page 27: Esercitazione del Corso di Interazione Uomo-Macchina Modulo3: Metodi Formali per la Specifica di Interfacce: un esempio completo (V.Carofiglio)

Questo e’ un esempio di come una rete di petri possa essere

utilizzata per la verifica dell’inconsistenza funzionale

(esterna nell’esempio)