USE*LOG použiteľnosť a prax
Hlavné menu: Hlavná stránka  |  Článok  |  Všetky články  |  USE*LOG & Autor  

Alternatívna autorizácia, časť 3/4: Užívateľské rozhranie
autorizácie

[K] komentáre (5) [T] verzia pre tlač

Autorizácia popisovaná v tomto seriáli je nový, užívateľsky neznámy proces. Je spojená s komentárovým systémom a bolo nutné postupovať opatrne, aby sa nenarušilo bežné pridávanie komentárov. Pri analýze užívateľského rozhrania sme využívali moderné poznatky a postupy z oblasti návrhu užívateľských rozhraní.

Definícia použitých termínov

  • Užívateľské scenáre – jednotlivé ciele, ktoré užívateľ pri práci so systémom chce dosiahnuť. Sú popisované z užívateľského pohľadu, napríklad „Chcem pridať komentár“, „Chcem si prečítať článok“, „Chcem si kúpiť nový mobil“
  • Vzory (angl. User Interaction Design Patterns) - sú grafické a funkčné riešenia problémov. Pod vzorom si môžete predstaviť napríklad prihlasovací formulár so svojou vizuálnou formou, funkčnosťou a spôsobom akým sa používa. Niektoré vzory užívatelia už poznajú a majú s nimi skúsenosti (tzv. zažité vzory). Preto dokáže užívateľ odhadnúť ako vzor funguje už len podľa toho ako vyzerá.
  • Metafory – použitie niektorého špecifika vybraného vzoru v inom kontexte. Napríklad vzor záložky je z reálneho sveta. Užívatelia ich poznajú z papierových kalendárov alebo telefónnych zoznamov. Ak chcete vytvoriť metaforu, tak použijete ich špecifický vzhľad v navigácii na webe (teda v inom kontexte).
  • Forcing function [1] – koncept obmedzenia možností užívateľa kvôli zníženiu chybovosti. Užívateľ urobí chybu ľahko. Čím viac možností má k dispozícii, tým väčšia je pravdepodobnosť, že chybu urobí. Ak ich obmedzíte, znížite pravdepodobnosť chyby. Príklad: jedno formulárové políčko pre dátum nahradíte tromi výberovými políčkami (tzv. select) pre deň, mesiac a rok. Znížite tým riziko, že zadá nesprávny formát, alebo neplatný dátum (ak to dodatočne ošetríte na úrovni JavaScriptu).
  • Fail-safe function – koncept odolnosti systému voči užívateľským chybám. Je opakom forcing function. Príkladom je vstup pre telefónne číslo. Užívateľ môže zadať rôzne formáty čísla a systém by mal byť schopný ich spracovať a nepovažovať za chybné. Funkcia je formou benevolencie a automatickej opravy chýb.
  • SCA (skratka Suchal-Cohen Authorization) – naša popisovaná autorizácia.
  • Workflow (tzv. pracovný tok) – popisuje postup akým sa s nejakým systémom pracuje. Je to diagram, podobný vývojovému s tým rozdielom, že prácu popisuje z užívateľského pohľadu.

Poznámka: Vzory a metafory sú definované v kontexte užívateľského správania a psychológie ich vnímania. S pojmami známymi z extrémneho programovania (angl. Extreme Programming) majú len relatívny súvis.

Predtým, ako sme začali niečo kresliť či implementovať, pozreli sme sa na problematiku z analytického pohľadu. Pre analýzu sme zvolili postup, ktorý pozostáva z týchto častí:

  • Definícia požiadaviek - Čo od systému očakáva užívateľ? - definícia užívateľských prípadov použitia; požiadavky na rozhranie
  • Definícia workflow - Ako sa bude so systémom pracovať? – zohľadnenie užívateľských prípadov použitia; spojenie komentárového systému s autorizáciou; definícia scenárov workflow
  • Identifikácia vzorov vo workflow a ich definícia – Existujú podobné (zažité) systémy z ktorých by UI mohlo vychádzať? – definícia našich vzorov; definícia metafor

Z každej z týchto definícií vyšli postupne nejaké požiadavky na UI, ktorých implementáciu popisuje definícia vzorov nášho UI. Najvyššiu prioritu pre nás mali požiadavky užívateľa a ich aplikácia na použité metafory.

Definícia požiadaviek

Užívateľské scenáre sú popísané ako ciele, ktoré chce užívateľ dosiahnuť, či úlohy, ktoré užívateľ z týchto cieľov definuje. K prípadom sme definovali požiadavky na systém, ktoré boli ďalej smerodajné s najvyššou prioritou:

  • Chcem pridať komentár – primárny prípad
    • Formulár musí byť jednoduchý a priamočiary
    • Musí sa držať štandardného vzhľadu (vzor komentárový formulár)
    • Nesmie byť skomplikovaný samotnou autorizáciou
  • Chcem pridať komentár a byť zapamätaný – sekundárny prípad
    • Užívateľ si chce uľahčiť prácu s komentárovým systémom
    • „Zapamätaj si ma“ je doplnková funkcia aj v sekundárnom prípade, nesmie byť podmienkou
    • Užívateľ musí mať túto funkciu „po ruke“. To znamená, že musí byť umiestnená na mieste, kde užívateľ o nej rozmýšľa – pri poli s menom.
  • Chcem vidieť svoje komentáre (špecifické pre moderované komentáre)
    • Užívateľ (ak má cookies) musí vidieť svoje neschválené komentáre v štandardnom zozname.
    • Komentáre musia držať chronológiu podľa času pridania.

Definícia prípadov použitia a ich workflow

Táto časť analýzy popisuje užívateľské scenáre pomocou workflow diagramov. Užívateľ sa nachádza v dvoch stavoch – nerozpoznaný a rozpoznaný. Pre každý z týchto stavov sme definovali prípady použitia a workflow v nich.

Identifikácia vzorov

Z workflow bolo nutné identifikovať samostatne pracujúce časti. Ak sa pozriete na jednotlivé diagramy, sú v nich už viditeľné. Identifikovali sme tieto vzory:

  • Komentárový formulár
  • Zoznam komentárov
  • Oznam

Každý vzor vychádza z niečoho, čo užívatelia už poznajú. Funkčnosť našich je však mierne odlišná. Pre každý z týchto vzorov sme definovali zdrojový vzor pre metaforu. Tým sme mali jasne definovaný odrazový mostík. Vedeli sme ako približne budú jednotlivé vzory vo finále vyzerať a iba sme ich mierne ohli vo vzhľade a funkčnosti. Čo je v podstate posledná fáza analýzy pred tým ako sme začali kresliť.

  • Náš Komentárový formulár vychádza zo zažitého komentárového formuláru, ale ten náš je ešte o niečo jednoduchší.
  • Náš Zoznam komentárov využíva zažitý zoznam komentárov, ale aj metafory z iných diskusných systémov.
  • Náš Oznam zase vychádza zo vzoru oznamu chýb 404, alebo 500, kde sa celá stránka sústredí na jednu informáciu.

Komentárový formulár


Úvodný stav formuláruKliknite na obrázok pre zväčšenie. [8]

Základný vzhľad formuláru

Ako bolo povedané v požiadavkách, komentárový formulár musí byť jednoduchý, ak užívateľ nechce byť zapamätaný. Vzhľad musí byť štandardizovaný a ľahko identifikovateľný.

 

„Zapamätaj si ma“


Rozbalený formulár (užívateľ začína autorizáciu)Kliknite na obrázok pre zväčšenie. [9]

Rozbalený formulár v plnej kráse

Užívateľ sa o tom, či chce byť zapamätaný obyčajne rozhodne pri vypĺňaní mena. Preto je zaškrtávacie políčko „Zapamätaj si ma a zabezpeč moje komentáre“ umiestnené pod políčkom pre meno.

 

Dôvodom výberu tohto riešenia je fakt, že SCA v komentárovom systéme slúži ako na autorizáciu samotnú, tak na zapamätanie užívateľa. Pôvodnú formuláciu „Zapamätaj si ma“ bolo potrebné v popisku ponechať. V opačnom prípade by bolo ťažké pochopiť zo samotného vzhľadu na čo políčko slúži. Vďaka spojeniu autorizácie a zapamätania formulár ostal rovnako jednoduchý, ako ho užívatelia poznajú.

Pre získanie pozornosti sme použili dynamické rozbalenie časti formuláru s e-mailom a vysvetľujúcim popiskom. Mali sme však obavy ako budú užívatelia vnímať nečakané správanie. Vyskúšali sme tento koncept na užívateľoch a výsledky boli výborné.


Formulár po autorizáciiKliknite na obrázok pre zväčšenie. [10]

Ak je užívateľ rozpoznaný, nemusí vypĺňať meno, ani e-mail.

 

„Zapamätať navždy“

Ako posledné sme doplnili funkciu „Zapamätať navždy“. Toto je ochranná funkcia (forcing function), ktorú sme zaviedli kvôli zvýšeniu bezpečnosti. Užívateľ si dlhodobé zapamätanie musí vyžiadať sám potom, ako zváži, či je za bezpečným počítačom.

Zoznam komentárov


Zoznam komentárovKliknite na obrázok pre zväčšenie. [11]

Zoznam komentárov

Užívateľ musí vidieť svoje neschválené komentáre. Ak sa na to pozrieme z hľadiska akcie a reakcie, tak akciou je, že užívateľ pridal komentár. A keď ho niekam pridal, tak sa musí niekde zobraziť, čo je reakcia. Táto kauzalita je v interakcii veľmi dôležitá.

 

Z hľadiska implementácie bolo potrebné upraviť správanie SCA, aby vyhovovala potrebám UI. Každý užívateľ, ktorý pridal komentár má v databáze svoju identitu a lokalitu bez ohľadu na to či chce byť zapamätaný, alebo nie. Rozpoznaný a nerozpoznaný užívateľ sa z tohto pohľadu nerozlišuje.

Rozdiel je len v tom, na akú dlhú dobu sa užívateľovi ukladá identifikačná cookie. Nerozpoznaný užívateľ má cookie kým nezatvorí okno prehliadača. Rozpoznaný užívateľ má cookie uloženú na dlhšiu dobu (dlhú podľa toho či zaškrtol políčko „Zapamätať navždy“).

Oznam

SCA ako taká vyžaduje minimálnu interakciu s užívateľom. Systém ho len informuje o tom čo je potrebné urobiť, alebo o tom čo sa udialo. Tieto stavy sme zdôraznili zavedením jednoduchých stránok s oznamom, ktoré vstupujú do procesu a vyžadujú potvrdenie.


OznamKliknite na obrázok pre zväčšenie. [12]

Oznamy

Vizuálne ich bolo potrebné urobiť veľmi výrazné a stručné. Preto ich zobrazujeme samotné na jednej stránke, nie nad komentárovým formulárom, či nad článkom, ako to býva zvykom.

 

Záver

Autorizačný systém je z pohľadu interakcie zaujímavý tým, že výrazne znižuje možnosť urobiť chybu na strane užívateľa. Znamená to, že v ňom neexistujú chybové stavy. Od momentu kedy užívateľ potvrdí e-mail sa všetko deje automaticky. Dizajn tak celkovo získal tieto pôvabné vlastnosti:

  • Nemôže sa stať, že užívateľ zle vyplní meno alebo heslo. Užívateľ je identifikovaný pomocou cookie. SCA je pri prihlasovaní (ak sa to dá tak nazvať) plne automatická.
  • Užívateľ nemôže vyplniť registračný formulár nesprávne. Registračný formulár pozostáva z jedného vstupného poľa – e-mailu. E-mailu, ktorý užívateľ pozná a používa ho denne. Riziko vyplnenia nekorektného e-mailu je len formálne a je kontrolované pri samotnom vypĺňaní.
  • Užívateľ nemôže zabudnúť heslo. Zabudnuté heslo je častým problémom prihlasovania. Názor SCA: Heh, ak heslo nepotrebuje, nemôže ho zabudnúť.
  • Užívateľské meno, alebo e-mail nikdy nepríde do konfliktu s už existujúcim užívateľom. Je časté, že pri registrácii bývajú mená, alebo e-maile už registrované a je veľmi nepraktické vymýšľať si alternatívne mená, ktoré si je navyše potrebné zapamätať. Extrémne konflikty mien prenecháva systém moderátorovi. Ten rozhoduje o tom, ktoré je pravé, a ktoré nie. Konflikt e-mailu neexistuje. Ak užívateľ pridá komentár pod e-mailom iného užívateľa, stále sa nachádza v inej lokalite (hovoríme o lokalite definovanej SCA). Komentáre sa asociujú s identitou, ku ktorej e-mail patrí, ale až do momentu schválenia lokality ich nie je možné schváliť.

Vlastnosti SCA sú pozoruhodné. Jej implementácia nie je nijak zložitá. Ak sa ujme, je len otázkou času, kedy vzniknú znovupoužiteľné komponenty aké sú k dispozícii pre klasické prihlasovanie. Dôležité je však rozhodnúť sa či SCA bude vyhovovať požiadavkám vášho užívateľa a systému.

Odkazy z článku

  1. http://en.wikipedia.org/wiki/Behavior-shaping_constraint
  2. http://martincohen.info/uselog/uselog/data/sc-a/01-pridanie-komentara-bez-zapamatania.png
  3. http://martincohen.info/uselog/uselog/data/sc-a/02-pridanie-komentara-so-zapamatanim.png
  4. http://martincohen.info/uselog/uselog/data/sc-a/03-schvalenie-emailu.png
  5. http://martincohen.info/uselog/uselog/data/sc-a/06-pridanie-komentara-bez-cookies.png
  6. http://martincohen.info/uselog/uselog/data/sc-a/04-pridanie-komentara.png
  7. http://martincohen.info/uselog/uselog/data/sc-a/05-odhlasenie.png
  8. http://martincohen.info/uselog/uselog/data/sc-a/normalny-formular.png
  9. http://martincohen.info/uselog/uselog/data/sc-a/rozbaleny-formular.png
  10. http://martincohen.info/uselog/uselog/data/sc-a/formular-po-autorizacii.png
  11. http://martincohen.info/uselog/uselog/data/sc-a/zoznam-komentarov.png
  12. http://martincohen.info/uselog/uselog/data/sc-a/oznam.png

Ďalšie články seriálu:

(K) komentáre (5)

[RSS] RSS komentárov (i)komentáre sú moderované
 

21.03.2006 o 00:11

1. Autor: Ľuboš Kmeťko

Chválim SCA i výborný seriál – hneď som dostal chuť si vyskúšať ako funguje pridanie komentáru v praxi :)

Aktualizácia po 3 min: funguje to výborne :)


21.03.2006 o 08:08

2. Autor: octopuss

nevydáte ten systém už implementovaný pod nejakou free licenciou?


21.03.2006 o 11:10

3. Autor: johno

octopuss: Otázka teraz znie, do akej miery abstrahovať SCA. Či zverejniť implementáciu, ktorá funguje tu na USELOGu alebo vytvoriť jednoduché jadro SCA, ktoré bude môcť rozširovať.

Problém vidím v tom, že SCA tu na USELOGu je silne závislá od iných vecí. Vysekať to odtiaľ nejako rozumne by bol asi fakt oriešok. Osobne sa teda prikláňam k druhému riešeniu.

Ďalšia vec je to, že aj holá SCA je silne viazaná na cookies, notifikačný (mail) server, databázu. Skoro každý používa ako DB vrstvu niečo iné a tak mám opäť dve možnosti. Vytvoriť ukážku naviazania na DB alebo urobiť naviazanie napevno. Jedno je flexibilnejšie, druhé je jednoduchšie na použitie, ale musel by som pridať aj DB vrstvu.

Implementácia SCA vôbec nie je problém. Abstrahovať niečo, tak silne závislé a interagujúce s “okolím” trochu problém je.


21.03.2006 o 11:45

4. Autor: octopuss

martincohen: No ja už sa PHP moc nevenujem(trvalo by mi to viac ako x.10 min), ale ak by som si chcel spravit nejaky taky blog alebo niečo, toto sa mi javí ako veľmi user friendly varianta.

johno:to je na tebe, kolko do toho chceš investovať času, a ako to vyšperkovať


30.05.2006 o 11:56

5. Autor: Pjotr

Je to skvelé :). Viem, trochu cezčas prispievam, ale musím si to skúsiť. Vnukli ste mi myšlienku dobrého zabezpečenia :).


povinné

Pre zabezpečenie pravosti Vašich komentárov je potrebné zadať Vašu e-mailovú adresu. Na adresu Vám bude doručená správa s odkazom, ktorým potvrdíte pravosť komentárov. Systém takto ochráni Vašu identitu pred zneužitím.

Email musí byť vyplnený, ak je pole „Zapamätaj a zabezpeč“ zaškrtnuté. Email musí mať správny formát.
E-mail nebude publikovaný.
Použite na počítači, kam máte prístup iba vy. (doma, v práci)

povinné Komentár musí byť vyplnený.
*strong*, @code@, "Google.com":http://www.google.com/ – Google.com
Toto pole nevypĺňajte, prosím: