1 / 56

Dialogul om-masina - notatii

Dialogul om-masina - notatii. HCI - Curs 7. Interacțiunea (dialogul) om-calculator. Dialogul = schimbul de simboluri care are loc la nivelul interfeței Caracteristici: Stil Limbaj de comandă Meniuri Completare de forme Manipulare directă Limbaj natural Interfețe inteligente.

elaine-hart
Download Presentation

Dialogul om-masina - notatii

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dialogul om-masina - notatii HCI - Curs 7

  2. Interacțiunea (dialogul) om-calculator • Dialogul = schimbul de simboluri care are loc la nivelul interfeței • Caracteristici: • Stil • Limbaj de comandă • Meniuri • Completare de forme • Manipulare directă • Limbaj natural • Interfețe inteligente Criterii de evaluare: • Viteza de execuție a unui task • Numărul de erori comise • Timpul necesar învățării comenzilor • Conservarea în timp a cunoştințelor • Satisfacția subiectivă • Structură – descrierea formală a elementelor dialogului și • ordinea de apariție a lor în cadrul dialogului • Conținut – semantica informației schimbate

  3. Ce este dialogul? • Conversatie intre sau mai multi parteneri • De obicei este cooperativ • In interfetele utilizator: • Se refera la structura interactiunii • Nivelul sintactic al acesteia • Nivelurile dialogului - modelul lui Seeheim: • Lexical – iconite, taste actionate de utilizator • Sintactic – succesiunea inputurilor/outputurilor • Semantic – efectul asupra datelor interne/proceselor care le manipuleaza

  4. Dialogul • Dialogul este legat de: • Semantica sistemului (CE FACE) • Prezentarea sistemului (CUM ARATA) • Descrierile formale – analiza pentru a identifica: • Inconsistente in dialog • Actiuni dificil reversibile • Lipsa unor actiuni • Potentiale erori

  5. Notatiile dialogului • De obicei dialogul “se pierde” in cadrul sistemului • In cadrul unui sistem complex suntem interesati sa: • Analizam dialogul (ex: isi vede totdeauna utilizatorul cosul de cumparaturi?) • Analizam sistemul la nivel lexical/semantic • Inainte de implementarea sistemului sa intelegem proiectarile propuse • Notatii: • Diagramatice: diagrame stare-tranzitie, statecharts, retele Petri, diagrame JSD, diagrame de flux • Textuale: gramatici, CSP, handleri de evenimente

  6. Formalisme de specificare a dialogului om-calculator • Cerințe: • Descrierea precisă a comportamentului interfeței • Absența constrângerilor de implementare • Clasificare: • Formalisme pentru un singur fir de dialog • Rețele de tranziție, gramatici independente de context • Formalisme pentru fire de dialog multiple • Evenimente, diagrame ierarhizate de stări (statecharts) • Formalisme pentru dialoguri concurente • Algebra proceselor, rețele Petri

  7. Rețele stare-tranziție acțiune utilizator tranziție stare acțiune sistem 2: memorează primul punct 3: desenează linia până la poziția curentă 4: memorează al doilea punct • Avantaj: descriere naturală, executabilitate • Formal: automat modificat STN= (Q, , P, δ, γ, q0, f) • P - mulțime de acțiuni sistem • γ: Q  P - funcția de acțiune • Îmbunătățire: recursivitate

  8. Rețele stare-tranziție Actiune utilizator Actiune sistem Dublu click??? Situatiile de eroare nu pot fi prevazute….

  9. Pentru sisteme complexe

  10. Dialoguri concurente

  11. Bold si italic

  12. Bold, italic si underline Explozie combinatoriala de stari

  13. Iesirile fortate • Cand dorim sa furnizam comportament de “back” (web), escape sau cancel in aplicatii desktop – comportamentul e similar – “Spaghetti” de comportamente identice • Spaghetti code • Lasagna code • Spaghetti with meatballs code • Cum evitam –iesire normala pentru fiecare submeniu si actiune ESC activa peste tot in submeniu

  14. Meniurile help • Problema similara lui back/cancel, dar ne intoarcem mereu in acelasi punct de unde am pornit • Adaugarea acestora face diagrama foarte aglomerata • Preferabil sa fie specificate la un metanivel

  15. Rețele de tranziție extinse (ATN) acțiune utilizator/acțiune sistem • mulțime de diagrame de tranziție • regiștri • Valori arbitrare vizibile doar în cadrul componentei de dialog • funcții • atașate arcelor din diagramă • calcule pe valorile din regiștri • evaluate la traversarea arcelor • TRUE – se traversează arcul • FALSE – nu se traversează arcul • Formal: automat push-down M = (Q, , P, Γ, δ, γ, q0, Z0, f) P - mulțime de acțiuni sistem γ: Q  P - funcția de acțiune funcție acțiunea 1 :înregistrează primul punct  acțiunea 2 :desenează linia pănă la poziția curentă ; acțiunea 3 :înregistrează următorul punct ; acțiunea 4 :şterge ultimul punct ; acțiunea 5 :şterge linia poligonală ; acțiunea 6 :returnează linia poligonală. fn1 :count :=1; return (true) ; fn2 :count :=count+1 ; return (true) ; fn3 :if (count =1) then return (false) else count:=count+-11; return (true).

  16. Diagrame de flux • Familiare programatorilor • Folosesc cutiute pentru reprezentarea proceselor si evenimentelor, nu a starilor • Folosite doar pentru descrierea dialogurilor, nu si pentru algoritmi • Pot fi folosite in discutiile cu clientii, transformate apoi in cod si testate - eficienta

  17. Diagrame de flux - simboluri Inceputul sau sfarsitul unei actiuni Operatie particulara Rezultat (raport, document) Decizie sau ramificare Material sau informatii care intra sau ies din proces

  18. Diagrame de flux - simboluri Simbol de continuare pe aceeasi pagina – contine in interior un simbol Simbol de continuare pe o alta pagina – contine in interior un simbol Intarziere sau blocaj Ordinea si directia elementelor din proces

  19. Diagrama de flux - exemplu

  20. Diagrame JSD (Jackson Structured Diagram) • Potrivite pentru dialoguri cu structuri arborescente • Claritate sporita, expresivitate redusa • “o” – alegere intre mai multe optiuni • “*” - iteratie iteratie selectia

  21. motivația: dialogul interuman descris de gramatici Analiza sintactica: top-down, bottom-up L(G) – toate secvențele de acțiuni utilizator acceptabile Formal: G= (N, , R, P, S), R – mulțime finită de simboluri ce reprezintă acțiunile ataşate producțiilor ; P – mulțimea producțiilor n γr nN, γ,(NU)*, rR ; Line  button End_point End_point  move End_point | button. Gramatici independente de context line  button d1 end_point end_point  move d2 end_point | button d3 d1  {memorează primul punct} d2  {desenează linia până la poziția curentă} d3  {memorează al doilea punct}. Surprind doar acțiunile utilizatorilor atașarea de acțiuni sistem producțiilor

  22. Clasificarea formalismelor pentru specificarea dialogului om-calculator • Formalisme pentru un singur fir de dialog • Rețele de tranziție, gramatici independente de context • Formalisme pentru fire de dialog multiple • Evenimente, diagrame ierarhizate de stări • Formalisme pentru dialoguri concurente • Algebra proceselor, rețele Petri

  23. Evenimente • Handler de evenimente • Template: parametri, proceduri, variabile locale, evenimentele pe care le tratează • UI = mulțimea templateurilor handlerilor de eveniment pe care îi folosește • Surse de evenimente: componenta de prezentare și handlerii de evenimente • Formal: EH = (m, r, Q, R, P), • m – numărul de tipuri de evenimente procesate de handler; • r – numărul de regiştri din handler (m<=r); • Q – coada de evenimente, QE*; • R– mulţimea valorilor regiştrilor pentru EH; • P – mulţimea de m proceduri pentru EH, cu câte o procedură pentru fiecare tip de eveniment care poate fi procesat de handler. • configurația: (q, ),q –coada de evenimente,  - valorile din regiștri

  24. EVENT HANDLER line TOKEN button Button move Move VAR int state ; point first, last; EVENT Button DO{ IF state==0 THEN first = current position; state = 1; ELSE last = current position; deactivate(self); ENDIF; } EVENT Move DO{ IF state==1 THEN draw line from first to current position; ENDIF } INIT state = 0; END EVENT HANDLER line; Evenimente

  25. Diagrame ierarhizate de stări • Clusterizarea, rafinarea stărilor; independența și concurența; tranziția între niveluri de abstractizare • Extensie a diagramelor de tranziție cu AND și XOR stare eveniment condiție AND tranziție XOR

  26. Clasificarea formalismelor pentru specificarea dialogului om-calculator • Formalisme pentru un singur fir de dialog • Rețele de tranziție, gramatici independente de context • Formalisme pentru fire de dialog multiple • Evenimente, diagrame ierarhizate de stări • Formalisme pentru dialoguri concurente • Algebra proceselor, rețele Petri

  27. Algebra proceselor • Agent = entitate ce modelează şi descrie o parte specifică a unui sistem • acțiuni interne • acțiuni de comunicare • P – mulțimea agenților, notați prin P, Q, R • X - mulțimea variabilelor agent, notate cu x, y; • N - mulțimea de nume pentru canalele de comunicare (a, b, c) ; • L - mulțimea de etichete pentru canalele de comunicare ; L ={a,ā | a N}  • Agentul inactiv 0 – proces încheiat • Operatorul de prefixare “.”: .P • relație de tranzițiepe agenți P P’

  28. Algebra proceselor (2)

  29. Algebra proceselor(3) • Comportamentul unui agent = ecuatie • A = b.B + c.C – agentul A e capabil să execute acțiunea b și să se comporte ca agentul B sau e capabil să execute acțiunea c și să se comporte ca agentul C • Formalismul reda doar sincronizarea dintre actiuni, dar nu poate modela sisteme reale • îmbunătățire: transmiterea de valori: ā(v).P- transmite valoarea v pe canalul a şi începe să execuţi P

  30. T1 T2 2 P1 P2 2 T4 T3 P3 T1 <x> <y> z=x.Metoda1(y) Obiect Obiect Metoda1 Metoda2 Metoda3 Metoda4 Metoda5 Metoda6 T2 T3 <z> <x> <y> T4 Rețele Petri tranziție • <P, T, Pre, Post, M> • P mulțimea locațiilor  • T mulțimea tranzițiilor  • Pre : P x T N • Post : T x P N • M : P N M Nepotrivite pentru modelarea domeniului (structurii) rețele Petri cu obiecte Pre Post locație http://www.informatik.uni-hamburg.de/TGI/PetriNets/introductions/aalst/trafficlight1.swf

  31. Obiect Obiect Obiect Metoda Metoda Metoda Rețele Petri în obiecte • ICO (Interactive Cooperative Objects) • date • atribute ale obiectului • operații • operații spontane ale obiectului +servicii • comunicarea între obiecte: C-S • comportament (ObCS = PN) • descrie disponibilitatea serviciilor, modul de procesare a cererilor de servicii, operațiile pe cont propriu ale obiectului, serviciile solicitate de la alte obiecte • fiecare serviciu e asociat cu tranziții din ObCS • prezentare • mulțime structurată de widgets • funcția de activare : (widget, acțiune utilizator) serviciu • Avantaje: fundamente formale solide, executabilitate, reprezentare grafică, verificare formală a modelelor

  32. Analiza dialogului • Tangibilitate • Putem ajunge la starea dorita din starea curenta? • Reversibilitatea • Putem ajunge la starea anterioara • Evitarea starilor periculoase • greu de realizat, confirmari din partea utilizatorilor)

  33. Modele cognitive in HCI • Model cognitiv (mental) – incomplet, instabil, fără limitări ferme • Tehnici de modelare a utilizatorului – scop: • anticiparea comportamentului utilizatorului, • estimarea timpului de execuție a taskurilor, • evaluarea unei proiectări pentru interfața utilizator • sugerarea unor metafore

  34. GOMS(Goals, Operators, Methods, Selection Rules) • GOMS (Goals, Operators, Methods, Selection Rules) • Scop: anticiparea comportamentului utilizatorului (timpul de execuție al unui task, rutele utilizatorilor prin task) • Cea mai utilizată şi influentă metodă de analiză a sarcinii (tehnică de descriere a dialogului bazată pe sarcină) • Descrie paşii dintr-un dialog care sunt necesari pentru a îndeplini o sarcină cu o interfaţă specifică • Scopul – estimarea performanţelor utilizatorului pe baza descrierii sistemului, înainte ca acesta să fie dezvoltat

  35. GOMS • Goals (scopuri) - stări pe care utilizatorul vrea să le atingă • Operators (operatori) - acţiuni de bază pe care utilizatorul trebuie să le efectueze pentru a folosi sistemul ; afectează sistemul (apasă tasta F1) sau starea mentală a utilizatorului (citirea unei cutii de dialog) • Methods (metode) - modalitate posibilă de a atinge un scop; conţine un număr de paşi • Selection rules (reguli de selecţie) – stabilesc criteriile de folosire a unei metode

  36. Operatorii • 3 tipuri: • Externi- Percepţie şi acţiuni motorii • Mentali • Predefiniţi : RECALL, RETAIN, FORGET, RETRIEVE, DECIDE • Definiţi de analişti: FIND_MENU_ITEM « Cut » • Primitivi - derivaţi din hardul folosit (ex: mouse) • stau la baza predicţiilor care se fac asupra performanţelor aşteptate din partea utilizatorilor (fiecare operator are asociată o durată de execuţie)

  37. Analiza GOMS • Model al proceselor mentale în care utilizatorul îndeplineşte scopuri prin rezolvarea de subscopuri în maniera divide-et-impera • Analiza GOMS constă într-un scop de nivel înalt care este descompus într-o secvenţă de sarcini unitate care pot fi descompuse mai departe până la nivelul de operatori de bază

  38. Exemplu de analizăGOMS- selectare text Selection rule set for goal: select text If text-is word, then Accomplish goal:select word. If text-is arbitrary, then Accomplish goal:select arbitrary text. Return with goal accomplished. • Method for goal: select word • Step 1. Locate middle of word. (M) • Step 2. Move cursor to middle of word. (P) • Step 3. Verify that the correct word is located. (M) • Step 4. Double click mouse button. (BB) • Step 5. Verify that the correct text is selected. (M) • Step 6. Return with goal accomplished.

  39. Exemplu GOMS (continuare) Method for goal: select arbitrary text Step 1. Locate beginning of text. (M) Step 2. Move cursor to beginning of text. (P) Step 3. Verify that the correct beginning is located. (M) Step 4. Press mouse button down. (B) Step 5. Locate end of text. (M) Step 6. Move cursor to end of text. (P) Step 7. Verify that correct text is marked. (M) Step 8. Release mouse button. (B) Step 9. Verify that the correct text is selected. (M) Step 10. Return with goal accomplished.

  40. Analiza GOMS • Analiza structurii scopului din analiza GOMS oferă informaţii despreperformanţă: • Adâncimea stivei de scopuri poate da informaţii despre cerinţele legate de memoria de scurtă durată • 90% predicţii corecte asupra comenzilor executate de utilizatori • Timpul de execuţie estimat cu o eroare de 33%

  41. Deficienţe • Nivelul de granularitate al analizei • Presupune comportament de expert, nu ia în considerare situaţiile de eroare Metoda e potrivită pentru a descrie modul în care EXPERŢII efectuează sarcini de rutină

  42. CCT – Cognitive Complexity Theory • implementare a modelului GOMS • 2 descrieri paralele: • a scopurilor utilizatorilor - similar ierarhiei de scopuri din GOMS, dar sub forma de reguli de producţie de forma: • Ifconditionthenaction, unde: • Condition - propoziţie despre conţinutul memoriei de lucru a utilizatorului ; dacă este adevărată, action se va executa • Action - constă din una sau mai multe acţiuni elementare care pot fi schimbări în memoria de lucru sau pot fi acţiuni externe (acţionări de taste) • a sistemului informatic (numit dispozitiv (device)) – sub forma de diagrame stare-tranziţie

  43. Exemplu CCT - Ştergerea unui caracter • (PRDELC1 IF(AND (TEST-GOAL delete character) (NOT (TEST-GOAL move cursor to %LINE %COL)) (NOT (TEST-CURSOR %LINE %COL))) THEN ( (ADD-GOAL move cursor to %LINE %COL)) ) • (PRDELC2 IF(AND (TEST­GOAL delete character) (TEST­CURSOR %LINE %COL)) THEN( (DO­KEYSTROKE DELETE) (WAIT) (DELETE­GOAL delete character) (UNBIND %LINE %COL)) )

  44. Reţea de tranziţie acţiune utilizator stare răspuns sistem tranziţie

  45. CCT • Predicţii asupra timpului de execuţie a unei sarcini • Analizând ceea ce trebuie să facă utilizatorul pentru a opera cu un anumit sistem prin intermediul reprezentării folosind reguli de producţie, se pot compara sisteme • Reprezentarea folosind reguli de producţie poate fi folosită pentru analiza mapării sarcină-echipament, exprimând diferenţa dintre ierarhia de sarcini a utilizatorului (cum să fac) şi tranziţiile între stările sistemului (cum funcţionează)

  46. Modele lingvistice: BNF, TAG • BNF - Backus-Naur Form • TAG – Task-Action Grammar • Interacţiunea om-calculator privită ca un proces de comunicare prin intermediul unui limbaj • Scopul modelelor : înţelegerea comportamentului utilizatorului şi analiza complexităţii cognitive a interfeţei

  47. BNF • Dialogul e privit la nivel sintactic, nivelul semantic fiind ignorat • Metodă larg folosită pentru specificarea sintaxei limbajelor de programare • Foloseşte două tipuri de simboluri: • Neterminale: reprezentate de litere mici – abstractizări de nivel înalt • Terminale: reprezentate de litere mari – referă nivelul cel mai de jos al comportamentului uman ( apăsarea unei taste, acţionarea butoanelor mouseului, mutarea mouseului) • “::=“~ « se defineşte ca », « egal prin definiţie » • Operatorii: • “|” ~ « sau »  • “+” ~ « urmat de » , «şi » 

  48. Exemplu BNF – desenarea unei linii draw_line::= select_line+choose_points+last_point select_line::=position_mouse+CLICK_MOUSE choose_points::=choose_one|choose_one+choose_points choose_one::=position_mouse+CLICK_MOUSE last_point::=position_mouse+DOUBLE_CLICK_MOUSE position_mouse::=empty|MOVE_MOUSE+position_mouse • Estimarea complexităţii interfeţei: • Numărul de reguli • Numărul de operatori « + » şi « | » • Numărul de acţiuni de bază sunt necesare îndeplinirii unei sarcini • Reprezintă doar acţiunile utilizatorului, nu şi percepţia utilizatorului asupra răspunsului sistemului

  49. TAG – Task-Action Grammar • Extensie a BNF + reguli de producţie parametrizate (evidenţiază consistenţa în structura limbajului şi înglobează cunoştinţele utilizatorului despre lume (ex : « sus » este opusul lui « jos ») • Ex: comenzile cp (copiere fişiere), mv (mutare fişiere) – Unix • BNF: copy::= ‘cp’ + filename + filename | ‘cp’ + filenames + directory move::= ‘mv’ + filename + filename | ‘mv’ + filenames + directory

  50. Exemple TAG • TAG: file_op[Op] := command[Op]+ filename+filename | command[Op]+filenames+directory command[Op=copy]:=‘cp’ command[Op=move]:=‘mv’ • Înglobarea cunoştinţelor despre lume – mutarea unui obiect folosind o interfaţă cu interacţiunea la nivelul liniei de comandă movement[Direction]:=command[Direction] + distance +RETURN command[Direction=forward]:=‘FORWARD’ command[Direction=backward]:=‘BACKWARD’ command[Direction=left]:=‘LEFT’ command[Direction=right]:=‘RIGHT’ • Folosirea formei “known-item” care denotă informaţie pe care utilizatorul o cunoaşte în prealabil şi pe care nu trebuie să o înveţe pentru a folosi sistemul movement[Direction]:=command[Direction] + distance +RETURN command[Direction]]:=known-item[Type=word, Direction]

More Related