Tuesday 18 November 2008

CTTE & Tema 2

Saptamana aceasta s-a afisat enuntul cu tema 2 la Interfete Evoluate care, spre surprinderea mea este extrem de scurt (colegii care fac LPD stiu la ce ma refer :D), cerinta fiind formulata succint si la obiect: proiectarea interfetei utilizatorului uman cu siteul blogger.com folosind CTTE.
Pentru aceia dintre voi care nu ati fost saptamana trecuta la laborator, dar si pentru cei care vor sa afle mai multe despre acest utilitar o sa incerc sa ofer in cateva randuri o serie de informatii suplimentare... poate va ajuta in rezolvarea temei.

Pentru inceput "Ce este CTTE"?
Abrevierea provine de la ConcurTaskTreesEnvironment si este un editor care ofera posibilitatea dezvoltarii de modele de sarcini. Este scris in java si momentan a ajuns la versiunea 2.3 desi ultimul update s-a facut acum 2 ani, in decembrie 2006.

Cum fac rost de el?
Utilitarul este free source si poate fi downloadat de la urmatoarea adresa. Pentru a putea obtine ultima versiune trebuie sa completati un mic formular (nume, prenume, resedinta, scopul in care doriti sa folositi aplicatia) si veti primi in schimb un link de la care puteti downloada o arhiva continand clasele necesare rularii acesteia. In interiorul arhivei se gaseste un script , ctte.bat, cu ajutorul caruia puteti porni aplicatia.Trebuie amintit insa ca ultima versiune are si o limitare: functioneaza doar cu Java 1.5 and above, de aceea este posibil sa fie necesara instalarea acesteia inainte de a rula scriptul respectiv.

Cum il folosesc?
Aici ar fi multe de spus. Interfata CTTE este una destul de prietenoasa dupa cum se poate observa din imaginea de mai jos:


Avand la baza notatia CTT, utilitarul ofera o gama intreaga de simboluri pentru reprezentarea task-urilor si a relatiilor dintre ele. In CTTE putem avea 4 tipuri de sarcini(tasks):
  • user tasks : efectuate integral de catre utilizator, care nu interactioneaza cu sistemul => spre exemplu cand utilizatorul analizeaza o serie de informatii primite de la sistem pentru a lua o decizie
  • application tasks : executatate integral de catre sistem, care furnizeaza informatii utilzatorului => de exemplu executia unui program si trimiterea de mesaje catre user
  • interaction tasks : efectuate de utilizator cu sistemul => ex. formularea unei interogari catre o baza de date, selectarea(simpla sau multipla) a unor actiuni
  • abstract tasks : sarcini care necesita actiuni complexe si nu se pot incadra in nici una din categoriile de mai sus
Sarcinile au asociate obiecte (entitati manipulate de acestea) si atribute. In CTTE atributele pot fi de trei feluri :
  • generale (ex numele sarcini, categoria, tipul si frecventa acesteia etc)
  • referitoare la obiectele folosite de sarcina respectiva
  • referitoare la constrangerile de timp asociate cu sarcina curenta: timpul minim, maxim sau mediu de executie
Puteti sa accesati si sa editati atributele unei sarcini foarte usor : un "simplu" double click pe sarcina dorita va deschide un panel cu Task Propreties (panelul se poate accesa si din meniul principal de la optiunea View -> Task Proprieties - aveti grija sa fie selectat taskul dorit ca task curent).

Aplicatia ofera de altfel suport pentru vizualizarea nu numai a unei singure sarcini ci a a intregului arbore de task-uri construit (este o fereastra in partea dreapta sus a interfetei care permite un overview al arborelui realizat deja). Exista, de asemenea, si o serie de operatori care facilitateaza modificarea modului de vizualizare prin aranjarea nodurilor, afisarea unui singur nivel din arbore sau prin condensarea unor subarbori cu numar mare de noduri si afisarea doar a parintelui insotit de simbolul + etc. In plus se pot vizualiza si statistici asupra modelului construit folosind optiunea Info -> Task Model Statistics din meniul principal.

Partea mea favorita ramane insa cea de verificare si simulare a modelului implementat. Toate optiunile din submeniul Tools sunt extrem de utile pentru a va asigura de corectitudinea modelului vostru (sunt afisate eventualele erori insotite de explicatii) si va permit sa faceti si o simulare a acestuia fie prin stabilirea sarcinilor de inceput si de sfarsit si urmarirea task flow-lui, fie prin crearea unui scenariu propriu de executie. In plus, pentru a va face munca mai usoara, un scenariu o data creat se poate salva si poate fi incarcat ori de cate ori aveti nevoie :).

Tips and tricks utile la realizarea temei 2
Here are some tips that helped me get started:
  • cititi laboratorul 7 de la IE (pdf-ul despre CTT de pe curs.cs) -> nu va ia mai mult de 20 de minute si va familiarizeaza cu notiunile de baza. Exista un mic tutorial si pe site-ul de download iar link-ul urmator poate fi util
  • daca nu ati fost data trecuta la laborator: deschideti si rulati exemplul cu infofer -> o sa va ajute sa intelegeti "ce se vrea de la voi"
  • incercati sa identificati si sa descompuneti ierarhic sarcinile : va veti creea o imagine de ansamblu despre "cum trebuie sa arate" modelul vostru si va va ajuta sa stabiliti mai usor ce sarcini sunt pe fiecare nivel si tipul de relatii existent intre acestea
  • un F7 din cand in cand este util pentru verificarile de consistenta :D
  • dupa ce ati construit partial arborele puteti face o serie de simulari pentru a vedea daca abordarea voastra este corecta si ordinea de executie a task-urilor corespunde cazului real (recomand Tools->Reachability Analysis).
Sper ca informatiile de mai sus sa ii ajute pe cei care inca nu s-au apucat de tema. Momentan si eu sunt la inceput, dar o sa revin pe masura ce tema avanseaza si o sa ma lovesc de alte probleme...

No comments: