Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la...

23
Progettazione dei Sistemi Interattivi (a.a. 2004/ 05) - Lezione 12 1 Strumenti Software per la Progettazione di Interfacce todi di Specifica Stabilire le necessità e le preferenze dei clienti in modo rumenti per Costruire Interfacce Costruire le interfacce in modo rapido ed efficiente per me di componenti standard rumenti per Valutazione e Critica Procedure per effettuare misurazioni automatiche

Transcript of Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la...

Page 1: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 1

Strumenti Software per la Progettazione di Interfacce• Metodi di Specifica

Stabilire le necessità e le preferenze dei clienti in modo preciso

• Strumenti per Costruire Interfacce

Costruire le interfacce in modo rapido ed efficiente per mezzo

di componenti standard

• Strumenti per Valutazione e Critica

Procedure per effettuare misurazioni automatiche

Page 2: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 2

Metodi di SpecificaVaghezza, scarsa sinteticità e ambiguità del linguaggio naturale

Linguaggi formali e grammatiche• BNF ed oltre• La natura strutturata ad albero dei menù e della navigazione in una

interfaccia non è facilmente rappresentabile con una grammatica

Alberi di selezioni da menù e di dialog-box• Migliore stile di rappresentazione per specificare in modo esauriente il

sistema

Diagrammi di transizione• Permettono di rappresentare la struttura delle azioni dell’utente• Nodi per rappresentare gli stati ed archi per le transizioni (grafo e

non albero)• Ampiamente usati come parte di strumenti CASE

Page 3: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 3

Metodi di Specifica (continua)

Statechart

• Aggiungere modularità ai diagrammi di transizione

• Concorrenza

• Specifica del flusso dei dati e dei vincoli, con feedback visuale sui nodi

(specifiche eseguibili)

Notazione azioni-utente (UAN --- User-Action Notation)

• Migliore rappresentazione di interfacce a manipolazione diretta

• Feedback visuale e dipendenza dal contesto

• Corrispondenza diretta con le azioni utente tipiche: puntare col mouse,

dragging, clicking

Page 4: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 4

Dialogue Notations and Design

Dialogue Notations– Diagrammatic

• state transition networks, JSD diagrams, flow charts– Textual

• formal grammars, production rules, CSP

Issues– Dialogue Analysis– Semantics and dialogue– Properties of dialogue– Presentation and lexical issue

Example - Digital watch

Page 5: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 5

State transition networks (STN)

circles - states

arcs - actions/events

Start Menu

Circle 1 Circle 2 Finish

Line 1 Line 2 Finish

select 'circle'

select 'line'

click on centreclick on

circumference

draw circlerubber band

rubber band draw lastline

click onfirst point double click

click on point

draw a line

Page 6: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 6

State transition networks - events

arc labels a bit cramped because:

– notation is `state heavy‘

– the events require most detail

Start Menu

Circle 1 Circle 2 Finish

Line 1 Line 2 Finish

select 'circle'

select 'line'

click on centreclick on

circumference

draw circlerubber band

rubber band draw lastline

click onfirst point double click

click on point

draw a line

Page 7: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 7

Start Menu

Circle 1 Circle 2 Finish

select 'circle'

select 'line'

click on centreclick on

circumference

draw circlerubber band

... ... ...

State transition networks - states

labels in circles a bit uninformative:

– states are hard to name

– but easier to visualise

Page 8: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 8

Hierarchical STNs

managing complex dialogues

named sub-dialogues Graphics Sub-menu

Text Sub-menu

Paint Sub-menu

MainMenu

select 'graphics'

select 'text'

select 'paint'

Page 9: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 9

Flowcharts

familiar toprogrammers

boxes- process/event- not state

use for dialogue(not internal algorithm)

Delete D1Please enteremployee no.: ____

Delete D3Name: Alan DixDept: Computingdelete? (Y/N): _Please enter Y or N

Delete D2Name: Alan DixDept: Computingdelete? (Y/N): _

answer?C2

Finish

Finish

read recordC1

delete recordC3

other

NY

Page 10: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 10

JSD diagrams

for tree structured dialogues

– less expressive

– greater clarity

transactionlogin

addemployee

record

changeemployee

record

displayemployee

record

logout

PersonnelRecordSystem

deleteemployee

record

*

Page 11: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 11

Concurrent dialogues - Isimple dialogue box

Text Style

bold

italic

underline

example

Page 12: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 12

Textual - Grammars

Regular expressionssel-line click click* dble-click

compare with JSD• same computational model• different notation

BNFexpr ::= empty | atom expr | '(' expr ')' expr

more powerful than regular exp. or STNs Still NO concurrent dialogue

Page 13: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 13

Production rules

Unordered list of rules:

if condition then action

– condition based on state or pending events– every rule always potentially active

Good for concurrency Bad for sequence

Page 14: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 14

Event based production rules

Sel-line firstC-point first restC-point rest restD-point rest < draw line >

Note:– events added to list of pending events– ‘first’ and ‘rest’ are internally generated event

Page 15: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 15

Prepositional Production System

State based

Attributes:• Mouse: { mouse-off, select-line, click-point, double-click }

• Line-state: { menu, first, rest }

Rules (feedback not shown):• select-line mouse-off first

• click-point first mouse-off rest

• click-point rest mouse-off

• double-click rest mouse-off menu

Bad at events!

Page 16: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 16

Dialogue Notations - Summary

Diagrammatic• STN, JSD, Flow charts

Textual• grammars, production rules

Issues• event base vs. state based• power vs. clarity• model vs. notation• sequential vs. concurrent

Page 17: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 17

Digital watch – User Instructions

• two main modes

• limited interface - 3 buttons

• button A changes mode

S M T W T F S S M T W T F S

STP

S M T W T F S

SET

A

Time display Stop watch

Time setting Alarm setting

A

AADepress button A for 2 seconds

S M T W T F S

ALM

AM

Page 18: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 18

Digital watch – User Instructions

• dangerous states• guarded by two second hold

• completeness• distinguish depress A

and release A

• what do they doin all modes?

S M T W T F S S M T W T F S

STP

S M T W T F S

SET

A

Time display Stop watch

Time setting Alarm setting

A

AADepress button A for 2 seconds

S M T W T F S

ALM

AM

Page 19: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 19

Digital watch – Designers instructions

and ...

that’s justone button

S M T W T F S S M T W T F S

STP

S M T W T F S

SET

Time display Stop watch

Time setting Alarm setting

Depress A

2 seconds

S M T W T F S

ALM

AM

S M T W T F S S M T W T F S

STP

Release A Release A

Depress A

Depress A 2 seconds

Release A Release A

Page 20: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 20

Strumenti per Costruire Interfacce

Strumenti per la costruzione rapida di prototipi• Editori visuali -- Manipolazione diretta• Fissare rapidamente gli aspetti del sistema con facili correzioni

Linguaggi di programmazione con toolkit per GUI • Maggiore varietà di caratteristiche e flessibilità• Maggiore quantità di lavoro e di linee di codice richiesti

Indipendenza della interfaccia utente• Separare la progettazione dell’interfaccia dalla complessità della programmazione• Supporto per l’indipendenza dalla piattaforma

Sviluppo automatico del sistema• Possibilità di sviluppare il sistema completamente• Lentezza, limiti e restrizioni: necessità di strumenti di software engineering

Page 21: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 21

Strumenti di Progettazione

Fase iniziale: creare velocemente delle bozze del sistema• Carta e penna, editori di testo, applicazioni per slide-show• Tools che permettono di navigare tra le slide usando bottoni, menù, scrolling, dragging

Fase intermedia: aggiungere al prototipo capacità interattive avanzate• Linguaggi di scripting per descrivere azioni complesse• Strumenti per la programmazione visuale

Fase finale: scrivere il codice che implementa le azioni • Pacchetti quali Visual Basic o Symantec Cafe forniscono una varietà di widgets, con la possibilità di comporli nella finestra di lavoro, e un linguaggio di programmazione per implementare le azioni

Page 22: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 22

Strumenti di Software Engineering

Prodotti specifici per lo sviluppo di GUI• Toolkit integrati di widgets accompagnati da un potente linguaggio di programmazione (Windows Development Kit, MacApp, X-Windows Toolkit)• Complessità e lungo periodo di apprendimento• Grosso lavoro di implementazione e difficoltà della manutenzione• Vantaggi: grande flessibilità e esteso controllo nella creazione dell’interfaccia

Linguaggi di script corredati da toolkit di widgets• Tcl/Tk: rapido sviluppo e indipendenza dalla piattaforma, mancanza di editore visuale• Galaxy: ha un editore visuale ed emula varie piattaforme• Java: linguaggio di programmazione completo, permette di creare applets• Javascript: più semplice linguaggio di script innestato in HTML

Page 23: Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 121 Strumenti Software per la Progettazione di Interfacce Metodi di Specifica Stabilire.

Progettazione dei Sistemi Interattivi (a.a. 2004/05) - Lezione 12 23

Strumenti per Valutazione e Critica

• Metriche semplici: misurare il numero di schermate, di widgets, di collegamenti

• Procedure di valutazione sofisticate: profondità degli alberi di menù, ridondanza, consistenza

• Software di registrazione delle attività: frequenza dei messaggi di errore, delle finestre di dialogo, di richieste di aiuto, di accesso a pagine web

• Catturare dati sulle prestazioni per guidare le scelte e le modifiche future

• Metriche dipendenti dai task: frequenze delle sequenze di task

• Metriche indipendenti dai task: numero medio di widgets, densità, bilanciamento, taglia e posizione dei bottoni