Se afișează postările cu eticheta Java. Afișați toate postările
Se afișează postările cu eticheta Java. Afișați toate postările

miercuri, 26 noiembrie 2008

Proiectarea unei aplicatii: definirea interactiunii utilizatorului cu aplicatia

Prima intrebare care se pune in proiectarea unei aplicatii este... evident... ce ar trebui sa faca aplicatia.
Inca din aceasta faza incipienta, se traseaza, in linii mari, interactiunea dintre om si aplicatie. Practic se concep informatiile ce trebuie introduse de catre utilizator (fie elemente de autentificare, fie informatii relevante etc) si cum reactioneaza aplicatia la primirea acestor informatii.
In acest stadiu se pot stabili elementele de proiectare ce nu tin neaparat de design ci mai mult de functionalitate. Astfel se pot construi propozitii cum ar fi: Utilizatorul apasa pe butonul de login, introduce username-ul si parola, apasa pe butonul de submit, iar aplicatia ii afiseaza pagina lui personala.
Este clar ca aceste constructii sunt esentiale in proiectarea aplicatiei, acestea ajutand atat pe partea de design (stabilind elementele ce vor trebui sa fie prezente in design) cat si pe partea de implementare (definind elemntele de implementare, stabilind functionarea elementelor, oferind detalii despre interfetele publice ce trebuie sa fie implementate pentru fiecare element etc.).
Solutia de a scrie astfel de propozitii intr-un document si salvarea lor pe disk este una viabila. Totusi pot aparea (mai ales in cazul unor aplicatii mari) o serie de ambiguitati si inadvertente ce vor ingreuna dezvolatarea aplicatiei. Astfel se simte nevoia folosirii unei aplicatii care sa ajute la translatarea acestor propozitii intr-o forma standardizata.
Un astfel de utilitar este CCTE. Aplicatia este implementata in java, deci functioneaza pe orice sistem de operare, este gratuita si poate fi descarcata de pe http://giove.cnuce.cnr.it/ctte.html. Aceasta aplicatie ofera posibilitatea de a defini vizual elementele de interactiune a utilizatorului cu calculatorul precum si raspunsurile calculatorului. Definirea se face sub forma unui arbore ce se detaliaza pe masura ce se avanseaza pe nivel inferioare. De asemenea este obligatorie stabilirea de relatii intre nodurile de pe acelasi nivel cu acelasi parinte (aceste relatii ajuta la implementare ele stabilind ordinea si modul in care utilizatorul poate executa actiunile dorite). De asemenea CCTE ofera si mecanisme de verificare si de testare a diverselor scenarii posibile. Astfel se elimina inca din aceasta faza de proiectare ambiguitatile si inadvertentele ce pot aparea ceea ce reduce riscurile aparitiei de situatii neprevazute

luni, 10 noiembrie 2008

Analiza unei comunitati web

Acesta a fost subiectul primei teme la IOM.. Mi-am dat seama imediat ca nu este ceva asa complicat precum suna: trebuiau extrase doar niste link-uri din pagini web sau XML-uri, pe post de prieteni sau fani.
Primul pas.. sa caut o aplicatie, cat se poate de rapid, fiindca nu e timp de pierdut. M-am oprit la Yahoo 360. Pagina parea destul de simpla: comentarii, prieteni, id-uri utile sa poata fi parsata repede. Dar surpriza.. SAX parser insira o groaza de erori deoarece paginile nu erau validate. Google peste Google, dar degeaba.. nu am gasit nicio metoda sa determin parserul sa ignore problemele de sintaxa HTML.
Mi-au venit in cap doua solutii: sa validez intreaga pagina folosind o librarie jar ce trebuia atasata proiectului sau, mai interesant, sa gasesc eu o solutie direct pe codul HTML. Am ales sa parsez cu SAX doar anumite portiuni din pagina web care ma interesau. Citind linie cu linie fluxul de text am corectat pe aceste portiuni cele cateva probleme de validare: tag-uri img invalide, atribute neinchise in ghilimele etc. Si, spre bucuria mea, a mers..
Care ar fi concluzia? Ce fel de anagajati are Yahoo care scriu un cod HTML atat de oribil? Tocmai ei care gestioneaza un motor de cautare... Surprinzator totusi...