PROIECTAREA INTERFEŢELOR VIZUALE
1. Procesarea vizuala
Calitatile care fac o interfata utilizator sa fie buna sunt centrate pe utilizator si nu pe tehnologie. Graficalitatea este un concept centrat pe tehnologie. Exista doua calitati centrate pe utilizator cu adevarat importante- vizualitatea software-ului si vocabularul programului.
Majoritatea oamenilor prelucreaza mai bine informatia vizual decāt o fac textual. Pentru a realiza avantajele tehnologiei interactiunea cu utilizatorul trebuie sa devina vizuala. Aparitia nu este natura grafica a programului ci vizualitatea interactiunii. Īn loc de o interfata grafica utilizator ceea ce cautam este de fapt o interfata vizuala utilizator.
Daca o interfata vizuala este bine realizata ea da impresia unei cursivitati de deplasare lina, fara efort, pri 515f55f ntre scopurile utilizatorului, fara smucituri sau opriri pe mici probleme confuze, de īntelegere. Mintea umana este un calculator superb pentru procesarea pattern-urilor(sablon, model), si o folosim pentru a da curs volumului de informatii vizuale cu care suntem bombardati īn tot timpul zilei. Mintea umana gestioneaza intrarea discernānd īnconstient pattern-urile si utilizāndu-le pentru a gestiona ceea ce cautam. Ea stabileste propritatile sistemului pentru lucrurile pe care le vedem, ceea ce ne permite sa analizam constiincios input-ul vizual.
Daca mintea noastra subconstienta nu poate clasifica un pattern trebuie sa implicam mintea constienta īm prelucrarea preliminara. Este mult mai rapid daca mintea subconstienta furnizeaza prima solutie deoarece pattern-matching-ul este mai rapid si mai eficient decāt daca ar trebui sa ne gāndim la el. Abilitatea subconstientului de a grupa lucrurile dupa pattern-uri bazate pe indicatii vizuale este ceea ce ne permite sa prelucram informatia vizuala atāt de repede si eficient.
Īntelegerea si aplicarea modelului privind modul īn care mintea umana prelucreaza informatia vizuala este unul dintre elementele cheie ale proiectarii interfetelor vizuale. O interfata eficienta e construita din pattern-uri vizuale pe care le cream prin modalitati simple. Cel mai simplu mod īl reprezinta crearea simbolurilor grafice identificabile si atribuirea unor valori prin asociere. Pentru fiecare obiect din interfata cream simboluri.
Aceste simboluri nu trebuie neaparat sa fie reprezentative dar ar fi indicat sa fie. Fie ca obiectul este un element dintr-un lista, o īntreaga caseta de dialog sau un element dintr-o interfata grafica din toolbar - obiectul trebuie acompaniat de un simbol vizual. Prin prezenta unui simbol vizual īn timp vom actiona asupra subconstientului utilizatorului determināndu-l sa īl retina. Este ceea ce se numeste fuga vizuala (visual fuge).
Mintea noastra diferentiaza fiecare obiect prin simbolul sau vizual si odata identificat tipul care ne intereseaza citim textul pentru a-l separa de alte obiecte comune. Nu trebuie sa citim despre obiectele care nu ne intereseaza. Acest tip de procesare este foarte natural pentru oameni si el se realizeaza repede si cu efort minim.
2.Restrāngerea vocabularului
Intr-o interfata de tip linie de comanda utilizatorul putea introduce orice combinatie de caractere din limbaj. Pentru ca input-ul utilizatorului sa fie corect acesta trebuia sa cunoasca exact ce asteapta programul. El trebuia sa-si aduca aminte literele si simbolurile utilizate cu exactitate.
Interfetele grafice utilizator atunci cānd au fost inventate pentru prima data, īn mod evident erau net superioare deoarece restrāngeau limitele vocabularului pentru comunicarea cu utilizatorul. Acesta poate puncta imaginile sau cuvintele de pe ecran folosind cursorul mouse iar cu ajutorul butoanelor de mouse poate executa click, dublu-click sau click&drag. Tastatura este utilizata doar pentru introducerea datelor. Fata de combinatiile de taste disponibile utilizatorul are la dispozitie doar trei actiuni de baza din care sa aleaga.
Cu cāt elementele dintr-un vocabular de comunicatie sunt mai multe procesul de īnvatare este mai lent. Reducerea numarului de elemente din vocabular reduce expresivitatea acestuia .Un vocabular format corespunzator este figurat ca o piramida inversata. Toate elementele de comunicatie,usor de īnvatat, asculta de acest pattern. El este fundamental si este denumit vocabular canonic (canonical vocabulary).
Segmentul de baza contine primitivele, elemente cu ajutorul carora se īntelege orice limbaj. El trebuie sa fie cāt de mic posibil dar nu foarte mic. Īntr-o interfata grafica utilizator aceste elemente sunt - pointing, clicking si dragging. Un set de 2-4 primitive este corect, mai multe ar conduce la probleme. Mijlocul este format din componente (compounds). Constructiile sunt mult mai complexe daca sunt create prin combinarea uneia sau a mai multor primitive.
The Canonical Vocabulary
Idioms
Delete, Create Application-specific commands and feedback Scrolling, Sorting
Draw Dialogs
Compounds
Double click Generic input and output Edit fields
Buttonclick actions and symbols Checkboxes
Selection Highlighting
Primitives
Smallest
indivisible actions
and feedback
mechanisms
Click, Drag Cursor
Keypress Text
Input Output
Nu se adauga nimic altceva, ele sunt construite exclusiv din elementele aflate dedesubtul lor īn piramida. Īntr-o interfata utilizator sunt incluse actiuni precum dublu-click, click &drag, precum si obiecte manevrabile ca: push-buton, check-box. Nivelul de sus al piramidei contine idiomuri (idioms). Idiomurile combina componentele cu cunostintele problemei considerate, cunoscute drept cunoasterea domeniului (domain knowledge).
Cunoasterea domeniului reprezinta informatia relativa la aria aplicatiei utilizatorului si nu īn mod specific la solutia computerizata. Setul idiomurilor deschide vocabularul catre informatia privind o problema particulara pe care programul īncearca sa o adreseze. Īntr-o interfata grafica utilizator acestea ar include butoanele OK, barele de captare, list-box-uri si simbolurile utilizate pentru fisiere.
Interfetele utilizator reusite sunt acelea care se focalizeaza pe scopurile utilizatorului chiar daca trebuie sa ignore tehnologia de implementare. Pentru crearea de interfete vizuale eficiente proiectantii trebuie sa creeze interactiunea pornind de la un vocabular īn format canonic care este exprimat vizual. Acest vocabular urmeaza modelul mental al utilizatorului chiar daca este īn dezacord cu modelul corect fizic.
ALEGEREA PLATFORMELOR
Prima alegere strategica de dezbatut cu un proiectant va privi platformele. Trebuie sa ne decidem daca scriem pentru Unix, Macintosh, Microsoft sau pentru toate. De asemenea trebuie sa decidem daca suportam sau nu vechiul hardware. Astfel de decizii sunt dificile, deoarece combina incertitudini neclare ale consideratiilor privind lumea reala cu lumea curata a constructiei de software. Trebuie deci sa amestecam cele doua lumi ramānānd constienti de faptul ca proportiile corespunzatoare fiecareia se schimba zilnic.
1 Software-ul este partea costisitoare
Calculatoarele moderne sunt consumabile dar sunt si stationare. Problema nu este ca sistemele de calcul nu pot realiza ceva sau nu sunt valoroase dupa 1-2 ani ci faptul ca tehnologia avanseaza atāt de rapid īncāt problemele de interactiune scad semnificativ din productivitate.
Fiecare aspect al software-ului este mai scump decāt hardware-ul. Consideram ca avem 1000 de calculatoare iar la un moment dat avem o singura aplicatie de rezolvat. Sa zicem ca dezvoltarea unui program ia 350.000 iar fiecare calculator costa 3000 $, deci valoarea totala a calculatoarelor este 30000000 $. Comparatia nu se face īntre cele 2 sume obtinute deoarece costul software-ului include si costul instalarii, instruirii si suportarii a 1000 de utilizatori ai aplicatiei respective. S-ar putea sa dureze o saptamāna ca fiecare angajat sa se obisnuiasca cu programul (sa aiba rapiditate). Considerānd costul instruirii de persoana 500 $ iar 200 $ pe zi salarul unui angajat, costul implementarii software-ului este cam de 6500 $ per utilizator. Deci instalarea software-ului pentru cele 1000 calculatoare este 6500000$!
PC-urile sunt instrumente de business, unice care nu īmbatrānesc respectabil. Pentru a mentine calculatoarele cāt mai utile costurile asociate sunt enorme. Costurile principale provin din probleme de interactiune. Un PC tipic are zeci de componente principale hardware si software iar problema incompatibilitatii dintre ele creste exponential cu vārsta sistemului si cu adaugarea de noi componente.
Potentialul unei erori la un moment dat este relativ mic. Majoritatea furnizorilor hardware au deja o reputatie recunoscuta si īsi testeaza bine produsele. si totusi avantajele marcii particulare de modem pe care o detinem- testata din plin cu un chip de comunicatie seriala si un driver software de comunicatie seriala - descresc pe masura ce aceste trei produse devin divergente īn timp.
Daca costul pastrarii vechilor PC-uri īn servicii este mai mare decāt costul lor, actualizarea lor reprezinta o orientare buna pentru business. Daca functie de valoarea de vānzare, timpul optim pentru un calculator este 10 luni, ne putem astepta ca valoarea reziduala sa atinga zero cu mult īnainte de a trece 4 ani. Se considera ca intervalul optim pentru pastrarea unui calculator īnainte de a-l īnlocui este īntre 24 si 30 luni de la achizitionarea initiala. Īnainte de acest interval platim īn pierdere dupa aceea platim pentru īnvechire.
2 Alegerea platformei de dezvoltare
Industria calculatoarelor face adesea un calcul eronat conform caruia vechile calculatoare trebuie pastrate dupa termenul indicat. Este vorba evident de deciziile privind platformele tinta pentru dezvoltarea de software. Multe echipe de dezvoltare creaza software care se va acomoda la tot hardware-ul existent. Chiar daca se argumenteaza de unele voci faptul ca īnlocuirea unor calculatoare de 5-6 ani ar fi costisitoare se ignora faptul ca, costul dezvoltarii software pentru a suporta vechiul si noul hardware este semnificativ mai mare decāt costul achizitionarii si suportarii noului hardware mai puternic.
Pentru a dezvolta software pentru platformele moderne acesta trebuie proiectat pentru hardware-ul care va fi disponibil 6 pāna la 12 luni de la data primei lansari a produsului. Trebuie sa se tina cont si de faptul ca pentru a dezvolta software s-ar putea sa fie nevoie de un an si de alte 6 luni pentru a-l introduce īn firme, iar starea pietei calculatoarelor va fi mai puternica.
Daca dezvoltam software pentru o platforma hardware tinta mai veche decāt standardul anului urmator ne ancoram cu fermitate īn trecut. Daca un competitor face o alegere mai inteligenta vom fi depasiti. Costul programarii este mult mai ridicat īn comparatie cu cel al soft-ului. Una dintre problemele care se pun rezida īn dorinta de a amortiza complet investitia īn software prin acoperirea tuturor platformelor existente. Dar acoperind toate platformele existente ramānem īn urma elimināndu-ne de la platformele viitoare. Ideea generala este aceea de a nu lasa niciodata ca deciziile de software sa fie influentate de limitarile hard-ului existent. Cānd este lansat un produs trebuie sa se execute pe calculatoarele cele mai raspāndite si utilizate din acel moment, dar pentru acest lucru va trebui sa se adapteze. Produsul trebuie proiectat astfel īncāt sa se comporte optim cu hard-ul frecent utilizat īn urmatoarele 6 -12 luni dupa lansare. Acest lucru este mai putin important pentru soft-ul sistemelor de operare sau compilatoarele limbajelor, ci se refera la lumea aplicatiilor si a interfetelor utilizator unde interactiunea este maxima.
Daca se creaza soft specializat care va fi vāndut clientilor pentru pentru cāteva sute de dolari sau mai mult cu siguranta putem dicta hard-ul pe care sa se execute. O mare parte a bugetului utilizatorului se va duce mai degraba pe soft decāt pe hard.
Īnca de la īnceputul revolutiei microcalculatoarelor nici o axioma nu a fost mai adevarata si cel mai frecvent violata :
Achizitionati software corect apoi cumparati calculatorul pe care sa se execute.
Dar majoritatea utilizatorilor cumpara mai īntāi un calculator si apoi se uita dupa software-ul care sa le rezolve problemele si care sa se execute pe calculatorul respectiv. O astfel de atitudine este o remninscenta di epoca mainframe-urilor si ea influenteaza gāndirea elaboratorilor de software la fel de mult ca si pe cea a cumparatorilor. De multe ori pentru a face vānzare elaboratorii sut gata sa se adapteze la o platforma hard specifica. Chiar daca lumea business-ului dicteaza astfel de alegeri nu sunt facute pentru o proiectare buna. Cheia este soft-ul si nu hard-ul.
3 Dezvoltare multiplatforma simultana
Nu este indicat sa se dezvolte software pe mai multe platforme simultan, trebuie dezvoltat soft pentru piata principala. Dupa care din veniturile realizate din vānzarea acestui produs realizati portabilitatea lui pe platforme secundare.
Pentru dezvoltarea unui produs soft pe mai multe platforme simultan exista 2 modalitati (ambele la fel de proaste) - realizam codul mult mai complicat sau omogenizam interfata.
Design tip
Construiti programul pentru a se executa doar pentru o singura platforma la un moment dat!
Tot ce sporeste complexitatea codului sursa trebuie prevenit, interzis cu orice pret, pentru a nu spori timpul necesar scrierii si depanarii acestuia. De asemenea dezvoltarea multiplatforma simultana genereaza nesiguranta si īntārziere mai mare decāt orice tactica. Īn final compromisurile si confuzia vor avea ca rezultat micsorarea calitatii produsului. La o prima privire nu ar fi prea greu sa mai adaugam cāteva instructiuni if-then-else pe ici pe colo, pentru ca programul sa poata fi utilizat pe doua platforme diferite, dar nu trebuie sa uitam ca trebuie sa luam fiecare decizie de proiectare pentru ambele platforme. Compromisurile īsi vor face loc īn produs pentru a explica diferentele dintre cele doua. Cresterea volumului de cod datorita introducerii unei a doua platforme este de 5% si poate creste īnca pe atāt pentru o a treia platforma.
Sunt disponibile cāteva biblioteci de cod comercial care permit sa dezvoltam simultan pe mai multe platforme. Pentru aceasta e necesar sa proiectam o interfata grafica utilizator generica pe care biblioteca o va executa pe fiecare platforma. Inconvenientele acestei metode - utilizatorii nu vor aprecia acest lucru deoarece cei ce utilizeaza Macintosh prefera programele cu sensibilitate Mac, cei de Windows doresc aplicatii Windows.
Programatorii se pot amuza dezvoltānd īn stil multiplatforma considerānd-o ca pe o competitie īn care participi si cāstigi , indiferent de numarul de linii moarte din program. Dar o modalitate mai simpla si mai sigura este de a dezvolta pentru o singura platforma si anume cea a pietii principale (Windows). Se evita deci complexitatile multiplatforma, se finalizeaza prima versiune cu cea mai mare viteza posibila si se lanseaza pe cea mai extinsa piata posibila. Din veniturile rezultate se va īncepe dezvoltarea pentru alte platforme. Nu se vor neglija īnsa nici pietele secundare. Avānd un model functional al produsului (executabil sub Winndows) pe care-l folosim ca prototip, putem aranja o echipa de programatori cu aptitudini dovedite pentru noua platforma, Daca se porneste de la un model clar, vizibil timpul de proiectare se reduce vizibil.
4 Mitul interoperabilitatii
De multe ori elaboratorii de Windows au fost pusi īn fata unor programe DOS reusite, multe dintre acestea fiind aduse sub Windows dupa ce si-au facut stagiul īn DOS - meniu tip linie de comanda. Windows trebuia sa emuleze DOS cāt mai mult posibil, astfel īncāt trecerea de la unul la altul sa se realizeze mai usor, sa nu fie prea diferit de ceea ce a fost īnainte si utilizatorii sa nu fie prea dezamagiti. Multi utilizatori lucrau īn domenii eterogene si doreau ca versiunea Windows sa lucreze ca si sistemele DOS - acest concept se numeste interoperabilitate.
Cei care sunt īmpotriva interoperabilitatii sunt motivati de teama de un nou sistem, teama de a trebui sa se adapteze la ceva, sa īnvete ceva. Practic cel mai mult sperie procesul de īnvatare. Solicitānd interoperabilitate ei spera ca vor fi capabili sa ia cu ei īn noul sistem cunostintele dobāndite din utilizarea celuilat.
Īn ciuda numeroaselor simularitati vizuale Mac si Windows sunt doua culturi diferite iar mutarea de la una la alta nu este un proces usor. Chiar daca īntr-o firma exista atāt PC-uri cāt si Mac-uri putini sunt acei indivizi care sa-si petreaca timpul lucrānd cu amāndoua. Daca se examineaza si piata se constata ca sunt putine firmele care fac aplicatii interoperabile reusite pe ambele platforme. Īn general acestea au un client local bazat pe una dintre platforme- cea nativa, īn timp ce clientii de pe alte platforme asteapta un produs usor de utilizat pe platforma lor.
|