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

Post on 01-May-2015

214 views 0 download

transcript

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*

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

Un semplice esempio

Taglia e Incolla in Word

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

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

…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

…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

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)

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.

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

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)

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

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

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

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

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

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)

. ..

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.

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

..

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

.. .

..

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

...

. .

.

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

. ... .

..

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

.

.

Utilizziamo la rete di Petri costruita per simulare il

comportamento Del Comando Taglia e Incolla di

Excell

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)

..

.

.

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

utilizzata per la verifica dell’inconsistenza funzionale

(esterna nell’esempio)