Proiectarea Web - Dezvoltarea Sistematica a Aplicatiilor Web

Embed Size (px)

Citation preview

Proiectarea web - dezvoltarea sistematica a aplicaiilor web orientarea actual n domeniul dezvoltrii aplicaiilor web - abordare ad-hoc i o lips a metodelor de dezvoltare > calitate construirea unui ciclu de via a aplicaiilor web, prezentarea conceptelor, tehnicilor, metodelor i utilitarelor pentru dezvoltarea sistematic a aplicaiilor web > evolutie, infrastructura Proiectarea web ca disciplin tiinific este influenat de dezvoltarea aplicaiilor web. Orientarea actual n domeniul dezvoltrii aplicaiilor web este deseori caracterizat printr-o abordare ad-hoc i o lips a metodelor de dezvoltare. Datorit complexitii i ritmului proliferrii aplicaiilor web, aceast abordare are un impact negativ asupra calitii. Aplicaiile web reprezint un nou domeniu de aplicaii cu propriile sale provocri asupra dezvoltrii software-ului. Este necesar construirea unui ciclu de via a aplicaiilor web, prezentarea conceptelor, tehnicilor, metodelor i utilitarelor pentru dezvoltarea sistematic a aplicaiilor web. Web-ul, aplicaiile web i comunitatea web n ansamblu au evoluat de la apariia Internet-ului la Web 2.0 i la viziunea web-ului semantic, din acest motiv fiind esenial renunarea la abordarea de tip ad-hoc i adoptarea principiilor proiectrii web. La nivel de infrastructur, web-ul este un spaiu creat prin intermediul unor limbaje i protocoale specificate formal. Dei oamenii sunt implicai n crearea paginilor i utilizarea legturilor dintre acestea, interaciunea acestora formeaz un model web la scar macroscopic. Aceste interaciuni umane sunt guvernate de convenii sociale, politici i legi. Dezvoltarea aplicaiilor web este rezultatul unei afaceri complexe i este esenial ca proiectarea care sprijin aceast dezvoltare s fie bine realizat. Acest lucru va permite studenilor i specialitilor s proiecteze aplicaii web de o calitate superioar pe baza principiilor de proiectare software experimentate i de ncredere. I. Introducere n proiectarea aplicaiilor web Proiectarea web - utilizarea unei abordri sistematice i cuantificabile pentru realizarea specificaiilor, implementrii, operaiilor i ntreinerii aplicaiilor web de calitate superioar > tipuri de aplicaii web Aplicaiile web de astzi - sisteme software complexe care ofer servicii interactive i personalizabile accesibile prin intermediul diferitelor dispozitive Aplicaie web = sistem software bazat pe tehnologiile i standardele W3C, care ofer resurse web specifice (coninut i servicii) prin intermediul unei interfee utilizator numit browser web Aplicaiile web moderne sunt sisteme software complexe, iar dezvoltarea acestora necesit o abordare metodologic. Similar cu proiectarea aplicaiilor software, proiectarea web implic utilizarea unei abordri sistematice i cuantificabile pentru realizarea specificaiilor, implementrii, operaiilor i ntreinerii aplicaiilor web de calitate superioar. Din punct de vedere al istoricului dezvoltrii i complexitii distingem anumite tipuri de aplicaii web: orientate pe documente, interactive, tranzacionale, cu caracteristici ubicue sau trsturi ale web-ului semantic. Cerinele particulare ale proiectrii aplicaiilor web rezult din caracteristicile lor speciale din sfera produselor software, precum i din dezvoltarea i utilizarea lor. World Wide Web are o influen enorm i permanent asupra vieii noastre. Economia, industria, educaia, sntatea, administraia public, divertismentul majoritatea componentelor vieii noastre au fost ptrunse de World Wide Web. Motivul acestei omniprezene const n special n natura web-ului, caracterizat prin disponibilitatea global i permanent dar i prin accesul omogen la informaiile distribuite la nivel global sub forma paginilor web[1]. Dei iniial web-ul a fost proiectat ca un mediu pur informaional, n prezent el evolueaz ntr-un mediu al aplicaiilor. Aplicaiile web de astzi sunt sisteme software complexe care ofer servicii interactive i personalizabile accesibile prin intermediul diferitelor dispozitive; ele ofer posibilitatea realizrii tranzaciilor ntre utilizatori i de obicei stocheaz datele ntr-o baz de date. Elementul distinctiv al aplicaiilor web comparativ cu aplicaiile software tradiionale este modul n care este utilizat web-ul: 1

tehnologiile i standardele sale sunt utilizate ca o platform de dezvoltare i ca platform utilizator n acelai timp. O aplicaie web poate fi definit astfel: O aplicaie web este un sistem software bazat pe tehnologiile i standardele consoriului World Wide Web (W3C), care ofer resurse web specifice (coninut i servicii) prin intermediul unei interfee utilizator numit browser web. Aceast definiie include n mod explicit tehnologiile i interaciunea cu utilizatorul. De aici putem deduce c tehnologii precum serviciile web nu sunt aplicaii web, dar pot fi o parte a acestora, iar siturile web lipsite de componente software (cum sunt paginile HTML statice) nu sunt considerate aplicaii web. [1] Berners-Lee, T., WWW: Past, Present, and Future, IEEE Computer, 29 (10), 1996, pp. 6977 Schimbri fundamentale ale web-ului - de la un mediu informaional la un mediu al aplicaiilor Dezvoltarea aplicaiiilor web - eveniment spontan, de obicei bazat pe cunoaterea, experiena i practicile de dezvoltare ale dezvoltatorilor individuali, greu de reutilizat la modul Copy&Paste i avnd o documentare necorespunztoare a deciziilor de proiectare > probleme de calitate i dificulti de operare i ntreinere n ciuda schimbrilor fundamentale ale web-ului de la un mediu informaional la un mediu al aplicaiilor, situaia actual a dezvoltrii ad-hoc a aplicaiilor web ne amintete de practicile de dezvoltare a softwareului din anii 60, nainte s se realizeze c dezvoltarea aplicaiilor necesit mai mult dect experien n programare[1]. Dezvoltarea aplicaiilor web este deseori privit ca un eveniment spontan, de obicei bazat pe cunoaterea, experiena i practicile de dezvoltare ale dezvoltatorilor individuali, greu de reutilizat la modul Copy&Paste i avnd o documentare necorespunztoare a deciziilor de proiectare. Dei acest procedeu poate prea pragmatic, astfel de metode de dezvoltare rapide i superficiale conduc deseori la probleme serioase privitoare la calitate i implicit la dificulti de exploatare i ntreinere. Aplicaiile dezvoltate sunt deseori dependente de tehnologie, predispuse la erori i sunt caracterizate prin lipsa performanei, siguranei, accesibilitii i deci a acceptrii de ctre utilizatori[2]. Legtura strns dintre aplicaiile web sporete pericolul rspndirii problemelor de la o aplicaie la alta. Cauza acestei situaii este complex i poate fi abordat din mai multe perspective: [1] Pressman, R. S., Can WebApps Be Engineered?, SPC Essentials, Software Productivity Center, May 2000a, la http://www.spc.ca/essentials/may0300.htm , [vizitat la: 2007-10-01] [2] Fraternali, P., Tools and Approaches for Data-intensive Web Applications: A Survey, ACM Computing Surveys, 31 (3), September, 1999, pp. 227263 Cauza acestei situaii abordarea centrat pe document (authoring) presupusa simplitate a dezvoltrii aplicaiilor web (editoare, generatoare) cunotinele specifice din discipline relevante nu pot aplicate sau utilizate Legtura strns dintre aplicaiile web sporete pericolul rspndirii problemelor de la o aplicaie la alta. Cauza acestei situaii este complex i poate fi abordat din mai multe perspective: - abordarea centrat pe document. Dezvoltarea aplicaiilor web este nc deseori considerat a fi centrat pe document o activitate de authoring care include crearea i realizarea legturilor din siturile web i includerea elementelor grafice. Dei anumite tipuri de aplicaii web (de exemplu paginile principale, ziarele online) aparin acestei categorii, o abordare de tip authoring nu este adecvat pentru dezvoltarea de aplicaii web concentrate pe software; - presupusa simplitate a dezvoltrii aplicaiilor web. Disponibilitatea larg a diferitelor utilitare, (cum ar fi editoarele HTML sau generatoarele de formulare) permite crearea de aplicaii web simple, fr a fi necesare cunotine de specialitate. De obicei, accentul se pune pe proiectarea vizual i nu pe structurarea intern sau programare. Aceasta duce la inconsistene i redundan; - cunotinele specifice din discipline relevante nu pot fi aplicate sau nu sunt utilizate. Exist o concepie greit conform creia dezvoltarea aplicaiilor web este similar cu dezvoltarea aplicaiilor tradiionale i din acest motiv pot fi utilizate metodele din Ingineria Software, n sensul abordrii 2

sistematice, cu msuri adecvate de control a calitii. Acest lucru este neadecvat n majoritatea cazurilor datorit caracteristicilor speciale ale aplicaiilor web. n plus, concepte i tehnici din domenii relevante (cum ar fi hypertext-ul sau interaciunea om-calculator) nu sunt aplicate ntr-o manier consecvent. Standardele de dezvoltare pentru aplicaiile web de calitate sunt inexistente, acest lucru datorndu-se i relativ scurtei istorii a web-ului. Proiectarea web - nu este un eveniment imediat Abordare disciplinar aplicarea unei abordri sistematice i cuantificabile (concepte, metode, tehnici i utilitare) n analiza, proiectarea, implementarea, testarea, operarea i ntreinerea aplicaiilor web de calitatea superioar; o disciplin tiinific implicat n studiul acestei abordri Termeni din literatur asociai - proiectarea siturilor web, proiectarea hipermedia, proiectarea documentelor, proiectarea coninutului i proiectarea software-lui Internet. >> PROIECTAREA WEB Proiectarea web nu este un eveniment imediat; este un proces realizat pe tot parcursul ciclului de via al aplicaiei web, similar celor din ingineria software. n ce mod difer proiectarea web fa de proiectarea software-ului i pot fi ele considerate discipline separate? O disciplin poate fi definit ca un domeniu de studiu al tiinei, mai mult sau mai puin independent, care include cercetarea, nvarea i diseminarea informaiei tiinifice sub forma publicaiilor. Numrul mare de publicaii, cursuri, programe analitice, seminarii tiinifice i conferine demonstreaz c, n acord cu aceast definiie, Proiectarea web poate fi considerat o ramur independent a ingineriei software. Proiectarea reprezint n general o aplicaie practic a tiinei (n comer sau industrie) folosit n scopul dezvoltrii aplicaiilor ntr-un mod mai bun, mai rapid, mai ieftin i mai sigur. Ingineria software este definit ca o aplicaie a tiinei i matematicii prin care capacitile unui sistem de calcul sunt pot fi utilizate de oameni prin intermediul programelor, procedurilor i documentaiei asociate. Pe baza acestei definiii i a celei lui Deshpande[1], putem defini Proiectarea web n dou moduri: - Proiectarea web reprezint aplicarea unor abordri sistematice i cuantificabile (concepte, metode, tehnici, utilitare) n analiza cerinelor, proiectarea, implementarea, testarea, exploatarea i ntreinerea aplicaiilor web de calitate superioar; - Proiectarea web reprezint i disciplina tiinific implicat n studiul acestor abordri. Termenii din literatur asociai sunt Proiectarea siturilor web, Proiectarea hipermedia, Proiectarea documentelor, Proiectarea coninutului i Proiectarea software-lui Internet. Prin comparaie, Proiectarea web este un termen concis, dei dac vorbim n mod strict nu este foarte precis: nu web-ul este proiectat, ci aplicaiile web. Din punct de vedere al Ingineriei Software, dezvoltarea aplicaiilor web este un nou domeniu al aplicaiilor. n ciuda anumitor similitudini cu aplicaiile tradiionale, caracteristicile speciale ale aplicaiilor web necesit o adaptare a multor abordri ale Ingineriei Software sau chiar dezvoltarea unor abordri complet noi. Principiile de baz ale Proiectrii web pot fi descrise totui n mod similar celor din Ingineria Software: - obiective i cerine clar definite; - dezvoltarea sistematic, n faze, a aplicaiilor web; - planificarea foarte atent a acestor faze; - auditul continuu al ntregului proces de dezvoltare. Proiectarea web face posibil planificarea i repetarea proceselor de dezvoltare, facilitnd astfel evoluia continu a aplicaiilor web. Aceasta permite nu doar reducerea costurilor i minimizarea riscului pe parcursul dezvoltrii i ntreinerii, ci i creterea calitii i msurarea calitii rezultatelor fiecrei faze[2]. [1] Deshpande, Y., Murugesan, S., Ginige, A., Hansen, S., Schwabe, D., Gaedke, M., White, B., Web Engineering, Journal of Web Engineering, 1 (1), 2002, pp. 317 [2] Mendes, E., Mosley, N., Web Engineering, Springer, 2006

3

Categorii de aplicaii web grade variate de complexitate - pur informaionale sau aplicaii de comer electronic complexe - 24 / 7

Remarcm faptul c exist o corelaie ntre cronologia dezvoltrii i complexitate. De exemplu, aplicaiile bazate pe fluxuri de lucru sunt bazate pe tranzacii, adic nivelul superior de dezvoltare necesit o dezvoltare anterioar a unei categorii mai puin complexe. Exist i excepii de la aceast regul pentru anumite categorii (de exemplu aplicaiile orientate pe portaluri), care sunt recente din punct de vedere istoric dar au un grad sczut de complexitate. Aplicaiile web ale organizaiilor care au fost pe web nc de la nceputuri au avut deseori un istoric al dezvoltrii similar cu cel descris n figura 1.1. Dezvoltarea unei aplicaii web poate fi nceput n oricare din aceste categorii i ulterior continuat ctre un nivel sporit de complexitate. Noile categorii sunt n general mult mai complexe, dar aceasta nu nseamn c ele pot nlocui n totalitate vechea generaie. Aplicaiile web complexe pot fi n mod tipic alocate mai multor categorii odat: de exemplu, magazinele online de cumprturi integreaz diferii furnizori de servicii, dar ofer i diferite posibiliti de cutare, monitorizarea strii comenzilor i n anumite cazuri chiar licitaii online. Putem sesiza c diferite categorii de aplicaii web acoper mai multe domenii tradiionale ale aplicaiilor, cum ar fi bncile online, dar n acelai timp creeaz noi domenii ale aplicaiilor, cum ar fi serviciile de localizare (location-aware services). n cele ce urmeaz vom descrie trsturile relevante ale acestor categorii. Siturile web axate pe documente sun t precursoare ale aplicaiilor web. Paginile web sunt stocate pe un server web ca documente HTML statice i sunt trimise clientului web ca rspuns la o cerere. Aceste pagini web sunt de obicei actualizate manual folosind utilitare corespunztoare. Pentru siturile web care impun schimbri frecvente sau pentru cele cu un numr mare de pagini aceast actualizare crete semnificativ costurile i adesea are drept consecin prezentarea unor informaii depite. n plus exist pericolul apariiei inconsistenelor atunci cnd un anumit coninut este prezentat frecvent, redundant pe mai 4

multe pagini web pentru a uura accesul. Principalele beneficii sunt simplitatea i stabilitatea unui astfel de sit web dar i timpul scurt de rspuns, paginile fiind deja stocate pe serverul web. Paginile principale statice i paginile simple pentru micile afaceri aparin acestei categorii. Odat cu apariia standardului Common Gateway Interface (http://hoohoo.ncsa.uiuc.edu/cgi/interface.html) i formularelor HTML, s-au dezvoltat i aplicaiile web interactive, oferind o prim form de interactivitate prin intermediul formularelor, butoanelor radio i meniurilor de selecie. Paginile web i legturile ctre alte pagini sunt generate n mod dinamic n funcie de datele introduse de utilizator. Exemple de astfel de categorii sunt expoziiile virtuale, siturile de tiri sau de planificare a cltoriilor. Aplicaiile web tranzacionale ofer mai mult interactivitate, utilizatorul avnd posibilitatea de a interaciona cu aplicaia n modul citire dar i de a realiza actualizri ale coninutului de baz. De exemplu, un sistem informaional pentru turism permite actualizarea coninutului ntr-un mod descentralizat sau face posibil rezervarea camerelor. Premisa necesar pentru un astfel de sistem implic existena unor sisteme de baze de date care permit manevrarea eficient a unui coninut n continu cretere n cadrul aplicaiilor web i ofer posibilitatea unor interogri structurate. Bncile online, magazinele online i sistemele de rezervare online pentru hoteluri aparin acestei categorii. Aplicaiile web bazate pe fluxuri de lucru permit manevrarea fluxurilor de lucru n interiorul sau ntre diferite companii, autoriti publice i utilizatori privai. Pentru aceste aplicaii este esenial disponibilitatea unor servicii web adecvate pentru asigurarea interoperabilitii[1]. Complexitatea acestor servicii, autonomia companiilor participante i necesitatea ca fluxurile de lucru s fie robuste i flexibile reprezint principalele provocri. Aplicaii ce fac parte din aceast categorie sunt soluiile B2B (Business-toBusiness) din comerul electronic, aplicaiile e-government n domeniul administraiei publice sau suportul web pentru fluxurile de date ale pacienilor n sectorul sntii. n timp ce aplicaiile bazate pe fluxuri de lucru necesit o anumit structurare a proceselor i operaiilor automatizate, aplicaiile web colaborative sunt folosite ndeosebi n scopul cooperrii n operaiile nestructurate (groupware), unde exist o nevoie foarte pentru comunicaie ntre utilizatori. Aplicaiile web n colaborare suport distribuirea informaiei i spaiile de lucru (ex. WikiWiki http://c2.com/cgi/wiki - sau BSCW - http://bscw.gmd.de/ -) pentru a genera, edita i administra informaiile distribuite. Acestea sunt utilizate i pentru a pstra log-urile unor mesaje scurte (ca n Weblog-uri), pentru medierea ntlnirilor sau luarea deciziilor (ex. sisteme de argumentare precum QuestMap sau simple camere de discuii), ca sisteme de planificare sau ca platforme de e-learning. Dei web-ul a fost iniial caracterizat prin anonimitate, el a avut o orientare ctre web-ul social, n care utilizatorii i declin identitatea unei mici comuniti cu interese similare. Weblog-urile sau sistemele de filtrare colaborative precum friendster (http://friendster.com), care ofer posibilitatea de a gsi att obiecte de interes similare ct i persoane cu interese asemntoare, aparin acestei categorii de aplicaii. Aplicaiile web orientate pe portaluri ofer un singur punct de acces la surse de informaie i servicii separate/potenial eterogene. Realizatorii de browsere (Microsoft, Netscape), motoarele de cutare (Yahoo), serviciile online (AOL), conglomeratele media i alte companii au sesizat cererea existent pentru astfel de aplicaii i au oferit hub-uri centrale (aa numitele portaluri) ca punct de acces la web. Pe lng aceste portaluri generale, exist diverse portaluri specializate cum ar fi portalurile pentru afaceri, portalurile pentru comer (sub forma mall-urilor online) i portalurile pentru comuniti. Portalurile pentru afaceri ofer angajailor i/sau partenerilor afacerii un acces focalizat la diferite surse de informaie i servicii prin intranet sau extranet. Portalurile pentru comer sunt mprite n piee orizontale i verticale. Pieele orizontale funcioneaz pe piaa B2C oferind bunuri de consum direct ctre public, i n B2B, prin vnzarea de produse proprii unor companii din alte sectoare de activitate. Pieele verticale sunt formate de companiile dintr-un singur sector de activitate, cum ar fi furnizorii pe de o parte i productorii pe de alt parte. Portalurile pentru comuniti se adreseaz unor grupuri int specifice (de ex. tinerii) i ncearc s creeze o loialitate a clienilor prin intermediul interaciunilor cu utilizatorii sau s asigure oferte individuale printr-un management al utilizatorilor adecvat (marketing unu-la-unu). O categorie important este reprezentat de aplicaiile web omniprezente, care ofer servicii personalizate oricnd, oriunde i pentru orice dispozitiv, facilitnd astfel accesul peste tot. Un exemplu poate fi afiarea meniului zilei pe dispozitivele mobile ale tuturor utilizatorilor care intr n restaurant ntre 11 am i 2 pm. Pentru acest tip de sistem este important s lum n calcul limitrile dispozitivelor mobile (limea de band, dimensiunea ecranului, memoria, lipsa de maturitate a software-ului) i contextul n care aplicaia web este utilizat n mod curent. 5

Dezvoltrile prezente i n special convergena sporit a industriei TIMES (telecomunicaii, tehnologia informaiei, multimedia, educaie i divertisment, securitate), vor conduce, n viitorul apropiat, la o situaie n care aplicaiile omniprezente vor domina piaa. Una dintre aceste dezvoltri este web-ul semantic, al crui obiectiv este prezentarea informaiei pe web nu doar pentru oameni ci i ntr-o form care poate fi interpretat de sistemele de calcul[2]. Aceasta va facilita managementul cunotinelor pe web i n particular conectarea i reutilizarea cunotinelor (mediatizarea coninutului), dar i localizarea cunotinelor noi relevante (de exemplu cu ajutorul sistemelor de recomandare). Datorit interactivitii crescute la nivel semantic i posibilitii de automatizare a sarcinilor (prin intermediul agenilor inteligeni), putem afirma c web-ul va deveni mai rspndit i mai relevant n viaa de zi cu zi. [1] Weerawarana, S., Curbera, F., Leymann, F., Storey, T., Ferguson, D. F., Web Services Platform Architecture, Prentice Hall, 2005 [2] Berners-Lee, T., Hendler, J., Lassila, O., The Semantic Web, Scientific American, May, 2001 Caracteristicile aplicaiilor web - Generaliti Aplicaiile web # aplicaiile tradiionale navigarea non-liniar frecvena actualizrilor Prezenta unei caracteristici- dependenta de tipul aplicatiei web> Aplicaiile web tranzacionale focalizare asupra actualizrii i consistenei coninutului Aplicaiile web difer de aplicaiile tradiionale (non-web), prin anumite caracteristici: unele lipsesc complet n aplicaiile tradiionale (de exemplu navigarea non-liniar), iar altele au o importan deosebit n cadrul aplicaiilor web (de exemplu frecvena actualizrilor). Dac i n ce msur este prezent o anumit caracteristic depinde parial de tipul de aplicaie web: dezvoltarea aplicaiilor web tranzacionale (cum ar fi sistemele de comer electronic) necesit o focalizare mai atent asupra actualizrii i consistenei coninutului comparativ cu sistemele informaionale pure (de exemplu expoziiile virtuale). Aceste caracteristici sunt motivul pentru care numeroase concepte, metode, tehnici i utilitare ale Ingineriei Software tradiionale trebuie adaptate la cerinele proiectrii web, dei n unele situaii acestea pot fi total neadecvate. Figura 1.2 prezint o imagine de ansamblu a acestor caracteristici, acestea fiind mprite pe trei dimensiuni: produs, utilizare i dezvoltare,evoluia lor fiind o dimensiune comun.

6

Dimensiunile conform cu standardul ISO/IEC 9126-1 pentru clasificarea caracteristicilor aplicaiilor web (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=22749) Aceste dimensiuni se bazeaz pe standardul ISO/IEC 9126-1 pentru evaluarea caracteristicilor de calitate ale software-ului (http://www.iso.org). Prin atribuirea diferitelor caracteristici ale aplicaiilor web acestor dimensiuni putem observa influena acestora asupra calitii aplicaiilor i astfel s considerm caracteristicile ca un punct de pornire pentru definirea necesarului proiectrii web. Pe lng caracteristicile asociate produselor, utilizrii i dezvoltrii exist i evoluia ca o a patra dimensiune care guverneaz cele trei dimensiuni. Produsele trebuie s fie adaptabile, noul context informaional trebuie luat n considerare pe durata utilizrii, iar modalitile de dezvoltare vor modifica n mod continuu schimbrile care vor apare. n continuare, vom prezenta caracteristicile individuale conform acestor dimensiuni. Caracteristicile produselor coninut, structur hipertextual i prezentare > aspecte structurale sau statice ci i aspecte comportamentale sau dinamice Caracteristicile legate de produs formeaz blocurile principale de dezvoltare a unei aplicaii web i constau n coninut, structur hipertextual (structur de navigare) i prezentare (interfaa utilizator). Conform paradigmei orientat-obiect, fiecare din aceste pri nu are doar aspecte structurale sau statice ci i aspecte comportamentale sau dinamice. Coninut Coninutul este regele - programatori i autori - Caracterul axat pe document i multimedia- coninutul este oferit sub forma tabelelor, textului, elementelor grafice, animaiilor, elementelor audio sau video Caracterul "axat pe document" n aplicaiile web - documentele sunt generate n mod adecvat pentru anumite grupuri de utilizatori - generat i actualizat dinamic - coninut multimedia - Cererile de calitate - actualitate, exactitate, consisten i ncredere > Siturile de tiri, personalizare, aplicaiile inteligente, contiente de locaie - calitatea superioar este necesar pentru preul i utilitatea informaiei n sistemele de cumprare online Coninutul Generarea coninutului, disponibilizarea acestuia, integrarea i actualizarea lui sunt la fel de importante precum dezvoltarea software-ului pentru o aplicaie web. Aplicaiile web sunt utilizate n special datorit coninutului pe care l ofer, fiind valabil motto-ul Coninutul este regele, iar dezvoltatorii lor trebuie s se comporte att ca programatori ct i ca autori. Aspectele importante sunt gradul variat al structurii coninutului i cererile de calitate fcute de utilizatori asupra coninutului. * Caracterul axat pe document i multimedia. n funcie de modul de structurare, coninutul este oferit sub forma tabelelor, textului, elementelor grafice, animaiilor, elementelor audio sau video. Caracterul "axat pe document" n aplicaiile web se refer la faptul c sunt generate documente care prezint informaia n mod adecvat pentru anumite grupuri de utilizatori (de exemplu informaii pentru turitii aflai n vacan ntr-o anumit regiune). Aceasta implic i anumite cerine speciale privitoare la uurina n folosire. Coninutul este ntr-o anumit proporie generat i actualizat dinamic (de exemplu numrul de camere disponibile ntrun sistem informaional pentru turism). Mai mult, web-ul poate fi folosit ca infrastructur pentru transmiterea coninutului multimedia (de exemplu videoconferine sau aplicaii Real Audio). * Cererile de calitate. n funcie de domeniul aplicaiei, coninutul unei aplicaii web nu este supus doar actualizrilor cu o anumit frecven, ci i diferitelor msurtori de calitate privitoare la actualitate, exactitate, consisten i ncredere. Aceste cereri de calitate trebuie luate n considerare att la stabilirea cerinelor, ct i la evaluarea complianei cu aceste principii. 7

Siturile de tiri, de exemplu, necesit o frecven sporit a actualizrilor i trebuie s fac fa cererilor utilizatorilor privind caracterul de ultim or al coninutului. Ca mediu de distribuire a informaiei, alturi de televiziune, radio i pres, web-ul ofer un potenial mult mai mare dect mijloacele de informare tradiional pentru adresarea acestor cereri, datorit personalizrii. Pe de alt parte, exist opinii conform crora aplicaiile personalizate "inteligente" ("contiente" de locaie), necesit dezvoltarea unor noi genuri de aplicaii; motivul este acela c aplicaiile noi bazate pe coninut (ex. podcasting sau coninut mobil) sunt un mediu foarte diferit, greu de adaptat la coninutul existent. O calitate superioar este necesar ndeosebi pentru informaiile privind preul i disponibilitatea produselor n sistemele de cumprare online, acestea formnd baza tranzaciilor unei afaceri. Preurile incorecte pot duce la anularea vnzrii, iar informaiile vechi privind disponibilitatea pot conduce la incapacitatea de a vinde produsele din stoc sau la probleme de livrare deoarece produsele afiate drept disponibile nu exist n stoc. Indiferent de scopul cu care este utilizat o aplicaie web, calitatea coninutului este un factor esenial pentru acceptarea ei. Marea provocare o reprezint capacitatea de a garanta calitatea datelor n ciuda volumului mare i frecvenei crescute a actualizrilor. Hipertext - natura non-liniar a documentelor hipertextuale Elementele de baz ale modelelor hipertext nod - unitate de informaie unic identificat legtur - calea de la un nod la altul ancor - coninutul unui nod Non-liniaritatea - stereotipuri privind citirea sistematic relativ - indicat pentru dezvoltarea abilitii de nvare - Ancorele i legturile statice/dinamice Dezorientarea i supra-ncrcarea cognitiv - pierde poziia ntr-un document non-liniar - concentrarea suplimentar solicitat de memorarea simultan a diverselor ci sau sarcini > Hrile, cutarea prin cuvintele cheie, cile (modul history), afiarea timpului de accesare i a timpului petrecut pe sit, legturile pline de neles, folosirea abloanelor de proiectare Hipertext Una dintre caracteristicile specifice aplicaiilor web este natura non-liniar a documentelor hipertextuale. Paradigma hipertext, folosit ca baz pentru structurarea i prezentarea informaiei, a fost menionat pentru prima dat de Vannevar Bush. Elementele de baz ale modelelor hipertext sunt nodurile, legturile i ancorele. Un nod este o unitate de informaie unic identificabil, autonom. Pe web acesta poate fi un document HTML care poate fi accesat printr-un URL (Uniform Resource Locator). O legtur este calea de la un nod la altul. Pe web aceste ci sunt ntotdeauna unidirecionale, scopul acestora nefiind clar definit (poate fi urmtorul nod n acord cu ordinea de citire recomandat). O ancor este zona din coninutul unui nod care este sursa sau destinaia unei legturi (de exemplu o secven de cuvinte dintr-un text sau un obiect grafic dintr-un desen). Pe web, ancorele sunt posibile doar n documentele HTML. Trsturile eseniale ale paradigmei hipertext sunt non-liniaritatea coninutului produs de autori i a coninutul receptat de utilizatori, alturi de problemele poteniale de dezorientare i supra-ncrcare cognitiv. * Non-liniaritatea. Hipertextele implic stereotipuri privind citirea relativ sistematic, prin aceasta aplicaiile web difereniindu-se n mod evident de aplicaiile software tradiionale. Acest stil de citire individual, adaptabil la nevoile i comportamentul utilizatorilor, este cel mai potrivit pentru capacitatea de nvare uman. Utilizatorii se pot mica liberi n spaiul informaional, n funcie de interesele i cunotinele anterioare. Ancorele i legturile nu sunt doar predefinite n mod static de autori, ci pot fi generate dinamic ca o reacie predefinit la modelele de comportament al utilizatorilor. * Dezorientarea i supra-ncrcarea cognitiv. Este foarte important, n dezvoltarea aplicaiilor web, s facem fa acestor dou probleme fundamentale ale paradigmei hipertext. Dezorientarea reprezint tendina de a pierde direcia ntr-un document non-liniar. Supra-ncrcarea cognitiv este cauzat de concentrarea suplimentar necesar pentru memorarea simultan a diverselor ci sau sarcini. Hrile 8

siturilor, cutrile prin intermediul cuvintelor cheie, urmrirea cilor (modul history) i afiarea timpului de accesare i a timpului petrecut pe sit ajut utilizatorii s-i pstreze orientarea n cadrul aplicaiei. Crearea unor legturi cu neles i denumirea inteligent a legturilor reduc supra-ncrcarea cognitiv. n plus, folosirea abloanelor de proiectare n modelarea aspectului hipertext poate ajuta la contracararea acestei probleme. Prezentarea Estetica - look and feel - succesul sau eecul (e-comm) Auto-explicarea - utilizare, sistemul de navigare Prezentarea Dou trsturi speciale ale aplicaiilor web la nivelul prezentare (interfa utilizator) sunt estetica i auto-explicarea. Estetica. Spre deosebire de aplicaiile tradiionale, estetica nivelului prezentare al unei aplicaii web este un factorul important, i datorit presiunii competitive ridicate de pe web. Prezentarea vizual a paginilor web este supus tendinelor n mod i deseori determin succesul sau eecul, n special pentru aplicaiile de comer electronic. Auto-explicarea. Dincolo de estetic, este esenial ca aplicaiile web s fie auto-explicative: s fie posibil utilizarea aplicaiei web fr a consulta o documentaie n prealabil. Sistemul de navigare sau cel de interaciune trebuie s fie consecvent n ntreaga aplicaie, astfel nct utilizatorii s se poat familiariza rapid cu utilizarea aplicaiei web. Caracteristici asociate utilizrii - utilizarea aplicaiilor web este extrem de eterogen > utilizatorii - difer prin prisma numrului i culturii generale > dispozitivele - caracteristici hardware i software diferite Contextul social: utilizatorii Spontaneitatea - utilizatorul poate vizita i prsi o aplicaie web oricnd dorete, chiar dac este situl unui competitor. Multiculturalitatea - aplicaiile web sunt dezvoltate pentru diferite grupuri de utilizatori - abilitile (sau incapacitile), cunoaterea (expertiza aplicaiei) i preferinele (interesele). - personalizare adecvat- reduceri speciale (adaptarea contextului), ghid pentru aplicaia web (adaptarea hipertextului) , dimensiuni adecvate ale fontului (adaptarea prezentrii) ) Comparativ cu aplicaiile tradiionale, utilizarea aplicaiilor web este extrem de eterogen. Cultura general i numrul utilizatorilor variaz, dispozitivele folosite au caracteristici hardware i software diferite, iar ora i locaia de unde este accesat aplicaia nu pot fi prevzute. n plus, dezvoltatorii nu au posibilitatea de a cunoate dinainte poteniala diversitate a acestor factori contextuali i nu-i pot influena n nici un mod datorit naturii lor autonome.Prin urmare, utilizarea aplicaiilor web trebuie s se adapteze continuu la situaii de utilizare specifice (contexte). Adaptarea la aceste contexte poate fi necesar pentru toate prile aplicaiei web (coninut, hipertext i prezentare). Datorit semnificaiei adaptrii la contexte, caracteristicile asociate utilizrii sunt mprite n trei grupuri: contextul social, contextul tehnic i contextul natural. Contextul social: utilizatorii Contextul social se refer la aspecte specifice utilizatorului; spontaneitatea i multiculturalitatea n special creeaz un grad nalt de eterogenitate. Spontaneitatea. Utilizatorii pot vizita o aplicaie web i o pot prsi oricnd doresc - posibil pentru un sit competitor. Utilizatorul web nu trebuie s fie loial nici unui furnizor de coninut, web-ul fiind un mediu care nu atrage nici o obligaie. Deoarece gsirea unor aplicaii concurente este uor de realizat cu ajutorul motoarelor de cutare, utilizatorii vor utiliza o aplicaie web doar dac le va aduce un avantaj imediat. Multiculturalitatea. Aplicaiile web sunt dezvoltate pentru diferite grupuri de utilizatori. Dac grupul luat n discuie este cunoscut (poate fi cazul intranet-ului sau extranet-ului) situaia poate fi comparabil cu 9

aplicaiile tradiionale. La dezvoltarea unei aplicaii web pentru un grup anonim de utilizatori, vor exista numeroase elemente eterogene greu de anticipat n ceea ce privete abilitile (ex. dizabiliti), cunotinele (ex. expertiza aplicaiei) i preferinele (ex. interesele). Pentru a permite o personalizare adecvat, ipotezele privind contextele utilizatorilor trebuie construite n stadiul de dezvoltare al aplicaiei web. Acest aspect va fi luat n considerare cnd se adapteaz componentele aplicaiei. Clienii obinuii pot beneficia de reduceri speciale (adaptarea coninutului), noii clieni pot primi un tur ghidat prin aplicaia web (adaptarea hipertextului), iar utilizatorii cu deficiene vizuale pot fi ajutai prin folosirea unor dimensiuni adecvate ale fontului (adaptarea prezentrii). Personalizarea necesit deseori specificarea preferinelor utilizatorilor (de exemplu metoda preferat de plat pe http://www.amazon.com). Contextul tehnic: Reeaua i dispozitivele Calitatea serviciului. tehnic - aplicaiile web - principiul client/server > caracteristicile mediului de transmisie (limea de band, sigurana i stabilitatea conexiunii) limea maxim de band -ajustat pentru a optimiza cantitatea de date transferat dezvoltatorii trebuie s fac supoziii Distribuirea multi-plaform. Aplicaiile web ofer de obicei servicii nu doar unui anumit tip de dispozitiv browserele - nu implementeaz specificaiile presupuse utilizatorii pot configura browserele n mod autonom presupuneri privind clasele tipice de dispozitive Contextul tehnic: Reeaua i dispozitivele Contextul tehnic include proprieti legate de conexiunea n reea (privitoare la calitatea serviciului) i componentele hardware i software ale dispozitivelor utilizate pentru a accesa aplicaia web, pentru distribuirea multi-platform. Calitatea serviciului. Din punct de vedere tehnic, aplicaiile web sunt bazate pe principiul client/server. Caracteristicile mediului de transmisie, cum ar fi limea de band, sigurana i stabilitatea conexiunii sunt factori independeni care trebuie luai n considerare cnd dezvoltm o aplicaie web pentru a garanta o calitate adecvat a serviciului. De exemplu, parametrul lime de band maxim poate fi modificat pentru a optimiza cantitatea de date transferat, astfel nct coninutul multimedia (clipuri video) s poat fi transferat la o rezoluie sczut n situaia unei limi de band mici. n timp ce pentru aplicaiile tradiionale specificaiile reelei sunt cunoscute dinainte, dezvoltatorii aplicaiilor web trebuie s fac supoziii privitor la aceste proprieti. Datorit tendinei de orientare ctre aplicaiile web mobile, acest aspect are o importan sporit, reelele convergente necesitnd i mai mult adaptare la nivelul aplicaie. Distribuirea multi-plaform. Aplicaiile web ofer de obicei servicii nu doar unui anumit tip de dispozitiv ci i dispozitivelor mobile cu specificaii diferite (dimensiunea monitorului, capacitatea memoriei, software-ul instalat). Numrul mare de versiuni ale browserului reprezint i el o provocare datorit diferitelor funcionaliti i restricii ale acestora (deseori acestea nu implementeaz specificaiile presupuse). Acest lucru determin dificulti n crearea unei interfee utilizator consecvente i n testarea aplicaiilor web. n plus, utilizatorii pot configura browserele n mod autonom. Prezentarea (ex. ascunderea imaginilor), drepturile de acces (ex. pentru applet-urile Java) i o serie de funcii ex. (cookies, caching) pot fi toate configurate individual, avnd astfel influene asupra performanei, funcionalitii tranzaciilor i posibilitilor de interaciune. Pe baza presupunerilor privind clasele tipice de dispozitive, dezvoltatorii aplicaiilor web pot adapta coninutul la PDA-uri (personal digital assistants) prin transmiterea legturilor i textului descriptiv n locul imaginilor sau clipurilor video. La nivel hipertext, se poate oferi versiunea pentru listare a documentelor hipertext. Pentru a lua n calcul diferitele versiuni de JavaScript din diferite browsere, pot fi utilizate biblioteci independente de platform n procesul de dezvoltare (vezi http://www.domapi.com ). Contextul natural: locaia si durata Globalitatea 10

Locaia - important pentru internaionalizarea aplicaiilor web relativ la diferenele regionale, culturale i lingvistice. locaia fizic - utilizat mpreun cu modelele locaiei pentru a defini poziia logic >> a oferi servicii contiente de locaie. Disponibilitatea. Mecanismul de distribuire instantanee = natura web-ului Contextul natural: locaia i timpul Contextul natural include aspecte privind locaia i timpul de accesare. Globalitatea i disponibilitatea creeaz un nivel nalt de eterogenitate. Globalitatea. Locaia din care o aplicaie web este accesat (poziia geografic) este important pentru internaionalizarea aplicaiilor web referitor la diferenele regionale, culturale i lingvistice. n plus, locaia fizic poate fi utilizat mpreun cu modelele locaiei pentru a defini o poziie logic (cum ar fi locul de reziden sau locul de munc) pentru a oferi servicii de localizare. Capacitatea de furnizare a informaiilor privind locaia determin dificulti suplimentare pentru testarea aplicaiilor web, deseori fiind dificil simularea locaiilor care se schimb i/sau testarea tuturor locaiilor posibile. Disponibilitatea global sporete de asemenea cererile privind securizarea aplicaiilor web pentru a preveni accesul deliberat sau accidental al utilizatorilor n zone private sau confideniale. Disponibilitatea. Mecanismul de distribuire instantanee inerent naturii web-ului face aplicaiile imediat disponibile. Aplicaiile web devin imediat utilizabile, de aceea calitatea produsului dezvoltat trebuie s fie garantat. Disponibilitatea permanent (24/7) sporete de asemenea preteniile privind stabilitatea aplicaiilor web. n plus, serviciile dependente de timp sunt posibile prin luarea n considerare a aspectului timp (de exemplu informaii privind programul ce depind de ora din zi i ziua din sptmn). Caracteristici asociate dezvoltrii Echipa de dezvoltare Caracterul multidisciplinar - combinaie ntre publicistica tiprit i dezvoltarea software, marketing i tiina calculatoarelor, art i tehnologie Disciplina dominant este dependent de tipul de aplicaie web Media de vrst sczut - dezvoltatori tineri i mai puin experimentai Dezvoltarea n comunitate - Dezvoltarea de software open-source disponibil gratuit pe web i integrarea acestuia n aplicaiile reale este un fenomen relativ recent. Dezvoltatorii folosesc acest software pentru crearea propriilor aplicaii, pe care le fac disponibile comunitii open source. Dezvoltarea aplicaiilor web implic existena resurselor necesare (echipa de dezvoltare i infrastructura tehnic), procesul de dezvoltare n sine i integrarea soluiilor deja existente. Echipa de dezvoltare Dezvoltarea aplicaiilor web este puternic influenat de faptul c echipele de dezvoltare sunt multidisciplinare i n general formate din tineri. Aceti factori i metodele comunitii de dezvoltare contribuie la apariia unui nou mod de organizare a colaborrii ntre diferite grupuri de dezvoltatori. Caracterul multidisciplinar. Aplicaiile web pot fi caracterizate ca o combinaie ntre publicistic i dezvoltarea software, marketing i tiina calculatoarelor, art i tehnologie. De aceea, dezvoltarea aplicaiilor web trebuie perceput ca o abordare multidisciplinar ce necesit cunotine i expertiz din diferite domenii. Pe lng experii IT responsabili de implementarea tehnic a sistemului, trebuie s fie angajai experi n hipertext i proiectani pentru proiectarea hipertextului i prezentrii, n timp ce experii n domeniu trebuie s fie responsabili pentru coninut. Se observ deci o varietate mai mare a competenelor i cunotinelor n echipa de dezvoltare fa de dezvoltarea software tradiional. Care disciplin va dominant depinde de tipul de aplicaie web. De exemplu, aplicaiile comer electronic sunt bazate mai mult pe baze de date tradiionale i expertiz n programare, n timp ce dezvoltarea unei expoziii virtuale va pune mai mult accent pe expertiza n domeniu i n proiectare. Media de vrst sczut. Dezvoltatorii de aplicaii web sunt n medie mult mai tineri i deci mai puin experimentai dect dezvoltatorii de software tradiional. 11

Dezvoltarea n comunitate. Dezvoltarea de software open-source disponibil gratuit pe web i integrarea acestuia n aplicaiile reale este un fenomen relativ recent. Dezvoltatorii folosesc acest software pentru crearea propriilor aplicaii, pe care le fac disponibile comunitii open source. Infrastructura tehnic Eterogenitatea - dou componente externe: server i browser. Imaturitate - creterii presiunii de a ajunge pe pia Procese procesul de dezvoltare este influenat de flexibilitate i paralelism. Infrastructura tehnic Eterogenitatea i imaturitatea componentelor folosite sunt caracteristici importante ale infrastructurii tehnice a aplicaiilor web. Eterogenitatea. Dezvoltarea aplicaiilor web depinde de dou componente externe: server i browser. n timp ce serverul web poate fi configurat i folosit dup cum doresc programatorii aplicaiei, browserele web ale utilizatorilor i preferinele lor individuale nu pot fi influenate. Situaia este complicat i de diferitele versiuni de browser i interaciunea lor cu plugin-urile. Imaturitatea. Datorit creterii presiunii de a ajunge pe pia ct mai rapid, componentele utilizate n aplicaiile web sunt deseori imature - au bug-uri sau lipsuri n privina funcionalitii. Procesul Procesul de dezvoltare este influenat de flexibilitate i paralelism. - Flexibilitatea. n dezvoltarea aplicaiilor web aderarea la un plan de proiect rigid i predefinit este imposibil; o reacie flexibil la modificarea condiiilor este vital. - Paralelismul. Datorit necesitii de a dezvolta aplicaiile web ntr-un timp scurt i faptului c ele pot fi deseori mprite n componente autonome (de exemplu autentificare, funcie de cutare, notificarea tirilor), majoritatea aplicaiilor web sunt dezvoltate n paralel de diferite subgrupuri ale echipei de dezvoltare. Spre deosebire de dezvoltarea software-ului tradiional, aceste subgrupuri sunt structurate n funcie de componente i nu n funcie de expertiza membrilor proiectului (de exemplu dezvoltatori GUI, modelatori de date etc.). Integrarea Integrarea intern - aplicaiile web trebuie integrate cu sistemele de motenire existente cnd coninutul existent (de ex. cataloagele de produse) va fi fcut disponibil aplicaiei web Integrarea extern - Integrarea coninutului i a servicilor aplicaiilor web externe Integrarea intern. Aplicaiile web trebuie integrate frecvent cu sistemele de motenire existente cnd coninutul existent (de ex. cataloagele de produse) va fi fcut disponibil prin intermediul unei aplicaii web. Integrarea extern. Integrarea coninutului i a serviciilor aplicaiilor web externe reprezint o caracteristic special a aplicaiilor web. Dintre particularitile integrrii pe web menionm: - existena unui numr mare de surse care se schimb frecvent i au un grad nalt de autonomie n ceea ce privete disponibilitatea i evoluia schemei; - se cunosc puine detalii privitoare la proprietile acestor surse (ex. coninutul sau funcionalitile lor); - sursele diferite sunt adesea foarte eterogene la diverse nivele (nivelul datelor, schemei sau modelului de date). Integrarea serviciilor externe (de ex. n aplicaiile web orientate pe portaluri) se bazeaz pe forma de dezvoltare din ce n ce mai comun a furnizrii i utilizrii serviciilor web. n acest context, un serviciu web este o component reutilizabil cu o interfa i funcionalitate foarte clar definite. Interaciunea diferitelor servicii web, evitnd efectele secundare nedorite, i garantarea calitii serviciilor sunt cteva dintre problemele relevante ale acestui context. Evoluia Schimbarea continu = schimbare constant a cerinelor sau condiiilor - utilizatorii doresc ultimile aplicaii web; 12

- instrumentele utilizate sunt condiionate de tehnologie Presiunea competiiei Ritmul rapid de dezvoltare - presiunea timpului

Evoluia Evoluia este o caracteristic ce guverneaz toate cele trei dimensiuni: produsul, utilizarea i dezvoltarea. Nevoia de progres poate fi argumentat prin schimbarea continu a cerinelor i condiiilor, presiunea competiiei i ritmul rapid de dezvoltare. Schimbarea continu Aplicaiile web se modific rapid i sunt n consecin ntr-o evoluie permanent datorit schimbrii constante a cerinelor sau condiiilor Scharl, A., Evolutionary Web Development Automated Analysis, Adaptive Design, and Interactive Visualization of Commercial Web Information Systems, Springer-Verlag, 2000 . Schimbarea rapid i permanent a tehnologiilor web i a standardelor n particular necesit o adaptare continu a aplicaiilor web la acestea. Aceast schimbare are dou cauze: - utilizatorii doresc cele mai noi aplicaii web; - instrumentele utilizate sunt condiionate de tehnologie. Schimbrile constante ale cerinelor i condiiilor reprezint o caracteristic esenial a aplicaiilor web, acestea putnd afecta toate cele trei dimensiuni ale unei aplicaii web produsul nsui, utilizarea acestuia i, n particular, dezvoltarea lui. Presiunea competiiei Presiunea competiiei extrem de ridicate de pe web, presiunea de lansare rapid pe pia i necesitatea unei prezene pe web sporesc nevoia unui ciclu de via scurt al produsului, al unui ciclu de dezvoltare extrem de scurt i nu las loc pentru un proces de dezvoltare sistematic. Prezena imediat pe web este considerat mai important dect perspectiva pe termen lung. Ritmul rapid de dezvoltare Presiunea timpului n dezvoltarea aplicaiilor web se datoreaz schimbrilor rapide de pe web, ce duc scurtarea duratei de via a aplicaiilor web sau la actualizri frecvente. n timp ce n aplicaiile software tradiionale evoluia are loc sub forma seriilor planificate de versiuni, n aplicaiile web aceasta este continu. Aplicaiile web sunt ntr-o continu ntreinere, ciclul schimbrii fiind deseori de doar cteva zile sau sptmni.

13

Principalele aspecte abordate n continuare sunt prezentate n Figura 3. Principalele componente luate n discuie sunt grupate pe doi piloni: - dezvolt area produsului; - aspecte privind calitatea. Elementul de baz este partea introductiv prezentat anterior, web-ul social i web-ul semantic fiind "acoperiul", perspectiva de viitor. Principalele provocri ale proiectrii cerinelor aplicaiilor web includ: parteneri indisponibili, schimbarea dinamic a condiiilor, medii de aciune impredictibile, importana deosebit a calitii i frecventa lips de experien n utilizarea tehnologiilor. Modelarea se refer la dezvoltarea aplicaiilor web pe baz de modele, cu focalizare asupra coninutului i hipertextului, i implic o dezvoltare de sus n jos. Este necesar o prezentare a metodelor existente pentru modelarea aplicaiilor web i a unor instrumente de modelare care s ajute proiectantul n alegerea metodei adecvate. Arhitectura este un factor decisiv pentru o aplicaie web de calitate. Performanele slabe, ntreinerea neadecvat i disponibilitatea redus se datoreaz deseori unei arhitecturi necorespunztoare. Folosirea arhitecturilor flexibile, pe mai multe nivele, oferirea unui coninut multimedia i integrarea aplicaiilor i depozitelor de date existente influeneaz pozitiv dezvoltarea aplicaiilor web. Proiectarea bazat pe tehnologie descrie alternativa dezvoltrii de jos n sus a aplicaiilor web. Proiectarea hipertext/hipermedia, a informaiei i a software-ului orientat-obiect nu ofer o soluie satisfctoare, fiind necesare abordri de proiectare specifice web-ului, cum ar fi: - proiectarea vizual, n care aspectul este hotrtor i n care se iau n considerare multiple interfee utilizator; - proiectarea interaciunii - a cilor de navigare i a "dialogului" cu componentele; - proiectarea funcional fixeaz esena aplicaiei web. Pe msur ce proiectarea fiecrui nivel devine mai concret, trebuie utilizate instrumente pentru proiectarea hipertext-ului, informaiei i software-ului. Tehnologiile au anumite caracteristici care trebuie cunoscute n detaliu, pentru a putea fi utilizate n etapa adecvat. Implementarea aplicaiilor web necesit o cunoatere aprofundat a diferitelor tehnologii i a interaciunii acestora cu o anumit arhitectur. Astfel, este necesar o prezentare a diferitelor tehnologii i o exemplificare a interaciunii i utilizrii lor mpreun cu anumite arhitecturi. Recomandrile consoriului web (W3C) necesit o atenie deosebit. Metodele actuale de testare se focalizeaz pe cerinele funcionale ale aplicaiilor web. Multe dintre cerinele de calitate non-funcionale importante pentru utilizatori (uurina n folosire, sigurana i securitatea) nu sunt luate n considerare suficient. Exploatarea i ntreinerea: multe sarcini care ar trebui rezolvate n timpul fazei de proiectare i dezvoltare sunt deseori amnate spre faza de exploatare i ntreinere, ceea ce crete i mai mult importan acestei etape. Exist de asemenea o tendin de a automatiza sarcinile ct timp sistemul este operaional. De exemplu, sarcini de rutin pentru ntreinerea coninutului sunt n mare msur automatizate, eliminndu-se astfel sursele de erori i garantnd o exploatare stabil. Uurina n folosire, performana i securitatea reprezint trei dintre aspectele de calitate ale aplicaiilor web. Uurina n folosire subliniaz faptul c aplicaiile web greu de utilizat nu sunt acceptate de ctre utilizatori. Noile dezvoltri precum aplicaiile web mobile i facilitile speciale pentru utilizatorii cu deficiene pun un accent deosebit pe uurina n folosire; aceasta nu poate fi dobndit ntr-o singur etap ci trebuie luat n considerare pe durata ntregului proces de dezvoltare. Performana implic folosirea unor metode, ncepnd cu cele de modelare pentru verificarea performanei i terminnd cu cele de msurare. Dintre metodele de modelare menionm modelele operaionale i modelele de simulare generale. Metodele de msurare necesit accesul la un sistem existent i au avantajul c sistemul poate fi urmrit n timp real. Dac sunt identificate probleme de performan prin msurare sau modelare, aceasta va trebui mbuntit prin extinderea hardware-ului, optimizarea software-ului, prin caching sau replicri. Securitatea implic abordarea unor probleme privind confidenialitatea datelor, prevenirea interceptrii mesajelor schimbate pe canalele accesibile public i oferirea unor servicii de ncredere. Web-ul social indic o form mbuntit a World Wide Web, susintorii lui sugernd faptul c tehnologii precum weblog-urile, wiki-urile, podcast-urile, feed-urile RSS, software-ul social, API-urile web, 14

standardele i serviciile web online implic o schimbare semnificativ a modului n care Internetul este utilizat. Generaii diferite de oameni i-au schimbat dramatic percepia i participarea la web, n ultimul timp acesta fiind privit ca un mediu de comunicare, o platform de socializare, un mecanism de stocare a jurnalelor sau o enciclopedie n continu expansiune. Web-ul semantic reprezint urmtorul pas logic n evoluia web-ului. Pentru a se realiza acest pas, n primul rnd, paginile web trebuie extinse (fie manual fie prin intermediul unor instrumente) cu etichete semantice, cu ajutorul crora paginile vor avea un coninut interpretabil de sistemele de calcul. n al doilea rnd, utilizatorii care caut informaia ar trebui s foloseasc ageni software inteligeni capabili s proceseze paginile web care au aceast facilitate. n cele din urm, productorii de coninut i agenii software trebuie s adopte un vocabular comun al conceptelor o ontologie. Web-ul semantic este nc la nceputuri, dar opinia general este c acesta implic tehnologii promitoare care vor influena profund mediul de lucru al "lucrtorilor n domeniul cunoaterii".

Proiectarea cerinelor aplicaiilor web activiti care sunt critice pentru proiectarea web >Cerine incomplete, ambigue sau incorecte >Principii, metode i utilitarele pentru extragerea, descrierea, validarea i managementul cerinelorProiectarea cerinelor implic activiti care sunt eseniale pentru succesul proiectrii web. Cerine incomplete, ambigue sau incorecte pot conduce la dificulti majore n dezvoltare sau chiar la anularea proiectelor. Proiectarea cerinelor presupune luarea n discuie a principiilor, metodelor i utilitarelor pentru extragerea, stabilirea, descrierea, validarea i managementul cerinelor. Dei cerinele joac un rol cheie n dezvoltarea aplicaiilor web, ele sunt deseori descrise n mod neadecvat, consecinele tipice fiind acceptarea sczut din partea utilizatorilor, eecul planificrii sau arhitecturi software neadecvate. Exist un acord general privitor la importana cerinelor pentru dezvoltarea cu succes a sistemelor, de-a lungul anilor oferindu-se numeroase standarde, abordri, modele, limbaje de descriere i utilitare. n continuare vom discuta principiile proiectrii cerinelor pentru dezvoltarea aplicaiilor web i vom studia modul n care metodele existente de proiectare a cerinelor pot fi adaptate la particularitile proiectelor web. Obiectivele individuale i ateptrile prilor interesate Prile interesate pentru aplicaiile web - autorii de coninut, experii n domeniu, experi n caracterul utilizabil sau profesionitii n domeniul marketing-ului Obiective > constrngerea clientului, obiectiv de calitate a clientului, perspectiva tehnologic a dezvoltatorilor, obiectiv de calitate al utilizatorului, obiectiv de calitate al clientului, obiectiv al clientului privind uurina n folosire, obiectiv al utilizatorului privind capacitatea Obiectivele individuale i ateptrile prilor interesate reprezint punctul de pornire al procesului de stabilire a cerinelor. Prile interesate sunt oameni sau organizaii care au o influen direct sau indirect asupra cerinelor n dezvoltarea sistemului[1]. Pri interesate importante sunt clienii, utilizatorii i dezvoltatorii; cele tipice pentru aplicaiile web includ autorii de coninut, experii n anumite domenii, 15

profesionitii n marketing sau n uurina n folosire. Obiectivele i ateptrile prilor interesate sunt de obicei diverse, dup cum demonstreaz i urmtoarele exemple: - aplicaia web trebuie s fie disponibil online pn la 1 septembrie 2009 (constrngere din partea clientului); - aplicaia web trebuie s suporte minim 2500 utilizatori concureni (obiectiv de calitate al clientului); - PHP trebuie folosit ca platform de dezvoltare (perspectiva tehnologic a dezvoltatorilor); - toate datele clienilor trebuie trimise securizat (obiectiv de calitate al utilizatorului); - interfaa utilizator trebuie s suporte layout-uri pentru diferite grupuri de clieni (obiectiv de calitate al clientului); - orice utilizator trebuie s poat gsi produsul dorit n mai puin de trei minute (obiectiv al clientului privind uurina n folosire); - utilizatorul trebuie s aib posibilitatea s selecteze o iconi care s afieze articolele incluse n coul de cumprturi n orice moment (obiectiv al utilizatorului privind capacitatea). [1] Kotonya, G., Sommerville, I., Requirements Engineering: Processes and Techniques, John Wiley & Sons, 1998 Cerina - descrie o proprietate care trebuie ndeplinit sau un serviciu care trebuie furnizat de ctre un sistem. IEEE 610.12 definete o cerin ca: - o condiie sau aptitudine necesar unui utilizator pentru a rezolva o problem sau a ndeplini un obiectiv ; - o condiie sau capacitate care trebuie ndeplinit sau posedat de un sistem sau component a sa pentru a satisface un contract, un standard, o specificaie sau alte documente solicitate formal ; Identificarea i implicarea prilor interesate reprezint obiectivele principale ale managementului proiectului. O mare provocare o constituie nelegerea i aplanarea frecventelor conflicte privind obiectivele, ateptrile i ordinea de zi. De exemplu, pot exista conflicte ntre setul dorit de funcionaliti i bugetul disponibil; ntre setul de funcionaliti, programul proiectului i calitatea dorit; sau ntre tehnologia de dezvoltare dorit i aptitudinile i experienele dezvoltatorilor. nelegerea i rezolvarea din timp a acestor contradicii i conflicte este esenial i are o contribuie important la managementul riscului. Au fost propuse diferite tehnici de negociere pentru a susine acest obiectiv, dezvoltarea unei viziuni comune ntre prile interesate fiind o condiie pentru succes. Obiectivele prilor interesate sunt deseori reprezentate informal, oferind baza pentru cerinele derivate mai detaliate. O cerin descrie o proprietate care trebuie ndeplinit sau un serviciu care trebuie furnizat de ctre un sistem. IEEE 610.12 definete o cerin ca: - o condiie sau aptitudine necesar unui utilizator pentru a rezolva o problem sau a ndeplini un obiectiv; - o condiie sau capacitate care trebuie ndeplinit sau posedat de un sistem sau component a sa pentru a satisface un contract, un standard, o specificaie sau alte documente solicitate formal. Cerinele sunt clasificate deseori n cerine funcionale, cerine non-funcionale i constrngeri[1]. Cerinele funcionale definesc capacitile i serviciile unui sistem, iar cerinele non-funcionale descriu nivelele de calitate dorite (Ct este de securizat?, Ct este de uor de folosit?). Constrngerile sunt condiii nonnegociabile care afecteaz un proiect. Exemple de constrngeri sunt nivelul de calificare a echipei de dezvoltare, bugetul disponibil, data livrrii sau infrastructura de calculatoare existent n zona de dezvoltare. Toate cerinele i constrngerile dintre contractor i client sunt sintetizate ntr-un document. Abordrile uzitate n proiectarea cerinelor pun accentul pe identificarea i implicarea prilor interesate, negocierea i descoperirea cerinelor pe baz de scenarii, analizarea contextului organizaional i social anterior modelrii detaliate i definirea clar a constrngerilor care afecteaz dezvoltarea[2]. [1] Robertson, S., Robertson, J., Mastering the Requirements Process, Addison-Wesley, 1999 [2] Boehm, B. W., Requirements that Handle IKIWISI, COTS, and Rapid Change, IEEE Computer, 33 (7), July, 2000, pp. 99102 Proveniena cerinelor 16

Cerine - funcionale non-funcionale constrngeri Cerinele sunt clasificate deseori n cerine funcionale, cerine non-funcionale i constrngeri[1]. Cerinele funcionale definesc capacitile i serviciile unui sistem, iar cerinele non-funcionale descriu nivelele de calitate dorite (Ct este de securizat?, Ct este de uor de folosit?). Constrngerile sunt condiii nonnegociabile care afecteaz un proiect. Exemple de constrngeri sunt nivelul de calificare a echipei de dezvoltare, bugetul disponibil, data livrrii sau infrastructura de calculatoare existent n zona de dezvoltare. Toate cerinele i constrngerile dintre contractor i client sunt sintetizate ntr-un document. Abordrile uzitate n proiectarea cerinelor pun accentul pe identificarea i implicarea prilor interesate, negocierea i descoperirea cerinelor pe baz de scenarii, analizarea contextului organizaional i social anterior modelrii detaliate i definirea clar a constrngerilor care afecteaz dezvoltarea[1]. [1] Boehm, B. W., Requirements that Handle IKIWISI, COTS, and Rapid Change, IEEE Computer, 33 (7), July, 2000, pp. 99102 [1] Robertson, S., Robertson, J., Mastering the Requirements Process, Addison-Wesley, 1999 [1] Robertson, S., Robertson, J., Mastering the Requirements Process, Addison-Wesley, 1999 [2] Boehm, B. W., Requirements that Handle IKIWISI, COTS, and Rapid Change, IEEE Computer, 33 (7), July, 2000, pp. 99102 Activitile proiectrii cerinelor Extragerea cerintelor i negocierea - rezultatul procesului de nvare i construirii pe baz de consens > metode i utilitare colaborative Documentarea cerintelor detaliere si formalism Verificarea cerintelor i validarea feedback-uri Managementul cerinelor

Proiectarea cerinelor implic extragerea, documentarea, verificarea i validarea, dar i managementul cerinelor pe parcursul procesului de dezvoltare. Extragerea cerinelor i negocierea Lowe i Eklund[1] au demonstrat c cerinele nu pot fi colectate prin ntrebri adecvate ci sunt rezultatul unui proces de nvare i de creare a unui consens. n acest proces comunicarea ntre prile interesate este esenial, doar punerea n comun a expertizei lor putnd duce la soluii acceptabile mutual. Un set larg de metode i utilitare de colaborare sunt disponibile pentru a facilita comunicarea i schimbul de informaii n proiectarea cerinelor: tehnici de creativitate, metode bazate pe scenarii, interviuri sau analiza documentelor. Documentarea cerinelor Dac prile interesate ajung la un consens, acordurile dintre acetia trebuie finisate i descrise ntr-un document al cerinelor, avnd un grad de detaliere i formalism adecvat contextului proiectului. Alegerea gradului adecvat de detaliere i formalism depinde de riscurile identificate ale proiectului i de experiena i aptitudinile presupuilor cititori. Descrierile informale precum relatrile utilizatorilor i cele semi-formale precum cazurile de utilizare sunt relevante pentru proiectarea web. Verificarea cerinelor i validarea Cerinele trebuie validate (S-au specificat cerinele corecte?) i verificate (S-au specificat corect cerinele?). Exist o serie de metode convenionale pentru acest scop (cum ar fi revizuirile, verificrile sau prototipizarea). n proiectarea web, deschiderea pe care o ofer Internetul faciliteaz noi forme de participare direct a utilizatorilor n validarea cerinelor (de exemplu prin colectarea online a feedback-urilor utilizatorilor)[2]. Managementul cerinelor Una dintre principalele caracteristici ale proiectelor web este modificarea continu a cerinelor i constrngerilor. Metodele i instrumentele folosite pentru managementul cerinelor suport att integrarea de 17

noi cerine ct i modificarea celor existente; ele ajut i la evaluarea impactului acestor schimbri prin administrarea interdependenelor dintre cerine i alte artefacte de dezvoltare. [1] Lowe, D. B., Eklund, J., Client Needs and the Design Process in Web Projects, Journal of Web Engineering, 1 (1), October, 2002, pp. 2336 [2] Deshpande, Y., Murugesan, S., Ginige, A., Hansen, S., Schwabe, D., Gaedke, M., White, B., Web Engineering, Journal of Web Engineering, 1 (1), 2002, pp. 317 Cerine specifice proiectrii web Caracterul multidisciplinar - experi multimedia, autorii de coninut, arhiteci software, experi n uurina de folosire, specialiti n baze de date sau experi ntr-un anumit domeniu Indisponibilitatea prilor interesate- potenialii utilizatori web, sunt necunoscui pe parcursul activitilor de proiectare a cerinelor Caracterul schimbtor al cerinelor i constrngerilor Mediul operaional imprevizibil- modificarea limii de band La suprafa, diferenele dintre proiectarea cerinelor pentru proiectarea web i proiectarea cerinelor pentru sistemele software tradiionale par a fi neglijabile. Dei exist multe diferene ntre dezvoltarea web i dezvoltarea software, exist i multe similariti (de exemplu extragerea cerinelor). n cele ce urmeaz vom insista pe diferenele dintre acestea, pe baza caracteristicilor aplicaiilor web prezentate n capitolul anterior. Caracterul multidisciplinar Dezvoltarea aplicaiilor web necesit participarea experilor din diferite discipline: experi multimedia, autori de coninut, arhiteci software, experi n uzabilitate, specialiti n baze de date sau experi ntr-un anumit domeniu. Eterogenitatea i caracterul multidisciplinar al prilor interesate fac dificil obinerea unui consens la definirea cerinelor, cu att mai mult cu ct oamenii din diferite discipline vorbesc limbi i jargoane diferite. Indisponibilitatea prilor interesate De multe ori prile interesate, (cum ar fi potenialii utilizatori web), sunt necunoscute pe parcursul activitilor de proiectare a cerinelor. Managementul proiectului trebuie s gseasc reprezentani potrivii care s ofere cerine ct mai realiste. De exemplu, deseori exist un spectru larg de posibili utilizatori n proiectele web i gsirea unui grup de reprezentani adecvai este dificil. Caracterul schimbtor al cerinelor i constrngerilor Cerinele i constrngerile (ex. proprietile platformelor de lucru sau protocoalele de comunicaie) sunt adesea mai uor de definit pentru sistemele software tradiionale comparativ cu aplicaiile web. Aplicaiile web i mediul n care acestea funcioneaz sunt extrem de dinamice, din acest motiv cerinele i constrngerile fiind greu de stabilizat. Cele mai frecvente exemple de astfel de schimbri sunt inovaiile tehnologice cum ar fi introducerea de noi platforme i standarde de dezvoltare sau noi dispozitive pentru utilizatorii finali. Mediul operaional imprevizibil Mediul operaional al unei aplicaii web este de asemenea foarte dinamic i greu de anticipat. Pentru dezvoltatori este dificil sau chiar imposibil s controleze factori importani, decisivi pentru calitatea aplicaiei web perceput de utilizator. De exemplu, modificarea limii de band afecteaz timpul de rspuns pentru aplicaiile mobile dar acest lucru nu depinde de echipa de dezvoltare. Impactul sistemelor de motenire - integrarea componentelor software existente cum ar fi produsele comerciale autonome sau software-ul open source Importana aspectelor calitative - performana unei aplicaii web, securitatea n sistemele de ecommerce, disponibilitatea sau uurina n folosire Impactul sistemelor de motenire 18

Dezvoltarea aplicaiilor web este caracterizat prin integrarea componentelor software existente cum ar fi produsele comerciale autonome/universale sau software-ul open source. n particular, dezvoltatorii web se confrunt frecvent cu integrarea sistemelor de motenire, de exemplu atunci cnd vor s fac accesibile pe web sistemele IT existente ntr-o companie. Dezvoltatorii sunt deseori ndemnai s utilizeze componentele existente i din motive economice. Componentele care trebuie integrate influeneaz cerinele i arhitectura viitorului sistem. n aceste situaii o abordare n cascad n care arhitectura sistemului deriv din cerine nu va avea succes, deoarece componentele, infrastructura i serviciile existente stabilesc o serie de posibiliti i limitri pentru dezvoltatori (atunci cnd se identific i definesc cerinele, dezvoltatorii web trebuie s fie contieni de arhitectura sistemului i de constrngerile arhitecturale. O abordare iterativ precum cea propus de modelul Twin Peaks este mai adecvat ntr-un asemenea context (vezi figura). Importana aspectelor calitative Aspectele calitative sunt decisive pentru succesul aplicaiilor web. Exemple: performana unei aplicaii web, securitatea n sistemele de e-commerce, disponibilitatea, uurina n folosire. n ciuda importanei aspectelor calitative, dezvoltatorii trebuie s se confrunte cu faptul c specificarea exact a cerinelor de calitate este dificil naintea construirii sistemului. De exemplu timpul de rspuns al unei aplicaii web depinde de muli factori, care nu pot fi controlai de echipa de dezvoltare. O abordare realizabil pentru definirea cerinelor de calitate implic specificarea criteriilor pentru testul de acceptare, specificnd dac o cerin a fost ndeplinit sau nu. (vezi de asemenea un exemplu al unui criteriu de acceptare pentru o cerin a calitii n tabelul 2-1). Atribut ID Tip Descriere Raionament Criteriu de acceptare Exemplu 1.2.5 Uurina n nvare Aplicaia web X trebuie s fie utilizabil de utilizatori web ocazionali, fr o instruire prealabil Managerii de marketing sunt utilizatori frecveni ai sistemului 90% din membrii unui grup-test (selectat aleator) de utilizatori web ocazionali pot folosi Cazurile de Utilizare 2.3, 2.6 i 2.9 fr o instruire preliminar Foarte important; greu de implementat 2.3.4, 2.3.6

Prioritate Cerine dependente

Cerine contradictorii 4.5.6 Informaii adiionale Istoricul versiunii Recomandri privind uurina n folosire v1.2 1.06

Specificaii de formatare Comentariu Identificator unic Element din taxonomia cerinei O explicaie scurt n limbaj natural Explic de ce este important cerina O condiie msurabil care trebuie ndeplinit pentru acceptare O expresie a importanei i fezabilitii cerinei Lista cerinelor care depind de aceast cerin Lista cerinelor care sunt n conflict cu aceast cerin Trimiteri la informaii adiionale Un numr al reviziei pentru a documenta istoricul dezvoltrii Calitatea interfeei utilizator - adugarea unor prototipuri pentru scenariile importante ale aplicaiei 19

Calitatea coninutului - acurateea, obiectivitatea, credibilitatea, relevana, actualitatea, caracterul complet sau claritatea CMS Lipsa de experien a dezvoltatorilor tehnologii de baz din aplicaiile web relativ noi Date fixe de livrare - termen limit > negocierea i stabilirea unei ordini de prioritate a cerinelor Calitatea interfeei utilizator Calitatea interfeei utilizator este un alt aspect hotrtor pentru succesul aplicaiilor web. Cnd realizeaz aplicaii web dezvoltatorii trebuie s fie contieni de urmtorul fenomen: utilizatorii nu vor fi capabili s neleag i s aprecieze o aplicaie web uitndu-se la modele i specificaii abstracte; ei trebuie s experimenteze. De aceea, este foarte important s se completeze definirea i descrierea cerinelor prin adugarea unor prototipuri pentru scenariile importante ale aplicaiei[1]. Calitatea coninutului Majoritatea metodelor tradiionale de proiectare a cerinelor neglijeaz coninutul web, dei este un aspect extrem de important al aplicaiilor web. Pe lng problemele legate de tehnologia software, dezvoltatorii trebuie s aib n vedere coninutul i n special crearea i ntreinerea acestuia. n contextul proiectrii cerinelor este esenial specificarea nivelul dorit de calitate a coninutului. Cele mai importante caracteristici de calitate includ acurateea, obiectivitatea, credibilitatea, relevana, actualitatea, caracterul complet sau claritatea. Sistemele de management al coninutului (CMS) au devenit importante i permit reprezentarea concis i consistent a coninutului prin separarea coninutului de layout i oferirea utilitarelor de editare a coninutului. Lipsa de experien a dezvoltatorilor Majoritatea tehnologiilor de baz din aplicaiile web sunt relativ noi. Lipsa de experien cu instrumentele de dezvoltare, standardele i limbajele acestor tehnologii pot conduce la estimri greite cnd se ia n discuie fezabilitatea i costul implementrii cerinelor. Datele fixe de livrare Multe proiecte web au o dat fix de livrare, toate activitile i deciziile trebuind s fie finalizate pn la un termen limit. Negocierea i stabilirea unei ordini de prioritate a cerinelor sunt eseniale n aceste condiii. [1] Constantine, L., Lockwood, L., Software for Use: A Practical Guide to Models and Methods for UsageCentered Design, ACM Press, 2001 Principii pentru proiectarea cerinelor aplicaiilor web Principiile deriv din stabilitatea modelului n spiral win-win nelegerea contextului sistemului - obiectivele afacerii clientului Implicarea prilor interesate - cooperarea acestora activ i direct pentru identificarea i negocierea cerinelor, situaii ctig-pierdere conduc adesea la situaii pierdere-pierdere n aceast seciune vom descrie principiile de baz ale proiectrii cerinelor pentru aplicaiile web. Aceste principii deriv din stabilitatea modelului n spiral n care ctig toi partenerii (modelul win-win), un model de ciclu de via iterativ i orientat pe risc care pune accentul pe implicarea prilor interesate i pe extragerea i punerea de acord asupra cerinelor. Modelul n spiral win-win a influenat multe modele bazate pe procese, inclusiv Procesul Unificat Raional (RUP) de la IBM. Dezvoltatorii web trebuie s aib n vedere urmtoarele principii pe parcursul activitilor de proiectare a cerinelor: nelegerea contextului sistemului Multe aplicaii web sunt nc dezvoltate ca soluii tehnice izolate, fr o nelegere a rolului i impactului acestora ntr-un context general. O aplicaie web nu poate fi o finalitate prin ea nsi; ea trebuie s in cont de obiectivele afacerii clientului. Pentru ca aplicaia web s aib succes este important s clarificm contextul sistemului (de exemplu prin analizarea i descrierea proceselor de afaceri existente) i motivul pentru care sistemul va fi dezvoltat (Pentru ce facem acest lucru?). Dezvoltatorii trebuie s neleag modul n care sistemul este implementat n mediul su. Analiza afacerii poate stabili valoarea unei aplicaii 20

web n raport cu resursele pe care le utilizeaz cerinele. nelegerea contextului sistemului ajut i la identificarea prilor interesate, familiarizarea cu scopul aplicaiei i analizarea constrngerilor[1]. Implicarea prilor interesate Prile interesate sau reprezentanii lor se afl n centrul proiectrii cerinelor, iar cooperarea acestora activ i direct pentru identificarea i negocierea cerinelor este important pentru fiecare faz a proiectului. Managerii de proiect trebuie s evite situaiile n care participanii la proiecte individuale ctig pe seama altora. S-a demonstrat c asemenea situaii ctig-pierdere evolueaz adesea n situaii pierdere-pierdere, determinnd n final eecul ntregului proiect. Obiectivele, ateptrile i cerinele prilor interesate trebuie stabilite i negociate n mod repetat pentru a se adapta schimbrilor dinamice care apar n proiecte. Anterior am artat c indisponibilitatea prilor interesate i caracterul multidisciplinar sunt specifice proiectrii cerinelor pentru ingineria web. Aceste caracteristici conduc la stabilirea urmtoarelor cerine pentru contextul aplicaiilor web: identificarea prilor interesate sau a reprezentanilor acestora nelegerea obiectivelor i ateptrilor prilor interesate negocierea perspectivelor, experienelor i cunotinelor (caracter multidisciplinar). Metodele i utilitarele de proiectare a cerinelor trebuie s fie n concordan cu aceste cerine i trebuie s contribuie la schimbul efectiv de cunotine dintre participanii la proiect, s permit un proces de instruire n echip, dezvoltarea unei viziuni comune a prilor interesate i s ajute la detectarea din timp a cerinelor contradictorii. [1] Biffl, S., Aurum, A., Boehm, B. W., Erdogmus, H., Grunbacher, P., Value-based Software Engineering, Springer-Verlag, September 2005 Definirea iterativ a cerinelor - n concordan cu alte rezultate ale dezvoltrii (arhitectur, interfa utilizator, coninut, cazuri de testare etc.); abordare iterativ - necesar n special ntr-un mediu n care cerinele i constrngerile sunt schimbtoare Focalizarea pe arhitectura sistemului - inelegerea soluiilor tehnice mpreun cu posibilitile i limitrile lor sunt eseniale Riscuri - problemele nedetectate, cele nerezolvate i conflictele dintre cerine; Diminuarea riscului prototipizarea, lansarea rapid a unor versiuni ale aplicaiei web pentru a colecta feedback-ul utilizatorilor sau ncorporarea precoce a componentelor externe pentru a elimina problemele majore ale integrrii tardive. Definirea iterativ a cerinelor Abordarea n cascad a definirii cerinelor nu funcioneaz n medii dinamice, iar cerinele trebuie dobndite n mod iterativ n dezvoltarea aplicaiilor web. Cerinele trebuie s fie n concordan cu alte rezultate ale dezvoltrii (arhitectur, interfa utilizator, coninut, cazuri de testare etc.). La iniierea proiectului, cerinele cheie sunt de obicei definite la un nivel nalt de abstractizare. Aceste cerine preliminare pot fi utilizate pentru a dezvolta arhitecturi fezabile, scenarii de utilizare a sistemului i planurile iniiale ale proiectului. Pe msur ce proiectul progreseaz rezultatele dezvoltrii pot fi perfecionate gradat prin specificarea unor termeni mai concrei, asigurnd n continuare consistena lor. O abordare iterativ este necesar, n special ntr-un mediu n care cerinele i constrngerile sunt schimbtoare, pentru a putea reaciona ntr-un mod flexibil pe msur ce proiectul evolueaz. Dac echipa de dezvoltare primete termeni limit fici, atunci o abordare de dezvoltare iterativ permite selectarea cerinelor cheie care trebuie implementate primele. Focalizarea pe arhitectura sistemului Tehnologiile existente i soluiile de motenire au un impact sporit asupra cerinelor aplicaiilor web. nelegerea soluiilor tehnice mpreun cu posibilitile i limitrile lor este esenial. Extragerea cerinelor nu poate avea loc fr a se ine seama de arhitectur, n special la definirea cerinelor. Luarea n considerare a arhitecturii sistemului permite dezvoltatorilor s neleag mai bine impactul soluiilor existente asupra cerinelor i s estimeze fezabilitatea acestora. Modelul Twin-Peaks (vezi figura) propune att perfecionarea cerinelor ct i a arhitecturii sistemului ntr-o manier iterativ, sporind continuu nivelul de detaliere. Riscuri Problemele nedetectate, cele nerezolvate i conflictele dintre cerine reprezint riscuri majore ale proiectului. Problemele obinuite de risc sunt integrarea componentelor existente n aplicaia web, anticiparea aspectelor 21

de calitate a sistemului sau lipsa de experien a dezvoltatorilor. De aceea evaluarea riscului trebuie realizat pentru toate cerinele, iar riscurile identificate trebuie controlate pe parcursul proiectului, pentru a ne asigura c nu sunt urmate alternativele riscante pentru sistem. Diminuarea riscului trebuie realizat ct mai devreme posibil, putnd include de exemplu prototipizarea, lansarea rapid a unor versiuni ale aplicaiei web pentru a colecta feedback-ul utilizatorilor sau ncorporarea precoce a componentelor externe pentru a evita problemele majore ale integrrii tardive. Adaptarea metodelor de proiectare a cerinelor dezvoltrii aplicaiilor web Ce tipuri de cerine sunt importante pentru aplicaia web? - Cum vor fi descrise i documentate cerinele pentru aplicaia web? - Care sunt gradele utile ale detalierii i formalismului? - Trebuie avut n vedere folosirea utilitarelor? Care dintre acestea sunt potrivite pentru nevoile specifice ale proiectului? n prezent sunt disponibile numeroase metode, ghiduri, notaii, cataloage i utilitare pentru toate activitile de proiectare a cerinelor. Totui, dezvoltatorii trebuie s evite o abordare unitar, metodele de proiectare a cerinelor trebuind adaptate permanent specificului proiectrii web i situaiilor care apar n anumite proiecte. Principiile descrise anterior ne conduc la definirea unei abordri de proiectare a cerinelor specific proiectelor pentru web. Dezvoltatorii trebuie s clarifice urmtoarele aspecte pe parcursul procesului de adaptare: - Ce tipuri de cerine sunt importante pentru aplicaia web? - Cum vor fi descrise i documentate cerinele pentru aplicaia web? Care sunt gradele utile ale detalierii i formalismului? - Trebuie avut n vedere folosirea utilitarelor? Care dintre acestea sunt potrivite pentru nevoile specifice ale proiectului? Tipuri de cerine Cerinele funcionale - capacitile i serviciile pe care un sistem ar trebui s le ofere - transferul de bani > scenariile de tip utilizare de caz (use case) i specificaiile de formatare Cerine privind coninutul - specific coninutul care trebuie s-l prezinte aplicaia web Cerine privind calitatea - nivelul calitii serviciilor Funcionalitatea - prezena funciilor > concordana, precizia, interoperabilitatea, compliana i securitatea Sigurana - meninere nivel de performan > maturitatea, tolerana la erori i capacitatea de recuperare Uurina n folosire - efortul necesar pentru a utiliza un produs software > uurina n nelegere, nvare i operare Eficiena - raportul dintre nivelul de performan i resursele utilizate > comportamentul n timp, comportamentul resurselor ntreinerea - efortul pentru a implementa modificri prestabilite > posibilitatea de analiz, schimbare, stabilitate i testare Portabilitatea - capacitatea produsului software de a fi mutat dintr-un mediu n altul > capacitatea de adaptare, instalare, potrivire i nlocuire Organizaiile de standardizare i cele comerciale au dezvoltat un numr mare de taxonomii pentru definirea i clasificarea diferitelor tipuri de cerine (de exemplu Volere[1] sau IEEE 830-1998). Majoritatea taxonomiilor fac distincie ntre cerinele funcionale i cele non-funcionale. Cerinele funcionale descriu capacitile i serviciile unui sistem (de exemplu Utilizatorul poate selecta o iconi pentru a vizualiza articolele din coul de cumprturi n orice moment.). Cerinele non-funcionale descriu proprietile capacitilor i nivelul dorit al serviciilor (de exemplu Aplicaia web va suporta cel puin 2500 de utilizatori concureni.). Alte cerine non-funcionale se refer la constrngerile proiectului i interfeele sistemului. n continuare vom discuta pe scurt tipurile de cerine relevante pentru proiectele de dezvoltare web: 22

Cerine funcionale Cerinele funcionale specific capacitile i serviciile pe care un sistem ar trebui s le ofere (de exemplu transferul de bani ntr-o aplicaie de online banking). Cerinele funcionale sunt frecvent descrise utiliznd scenariile de utilizare de caz i specificaiile de formatare[2]. Cerine privind coninutul Cerinele privind coninutul specific coninutul care ar trebui prezentat de aplicaia web. Coninutul poate fi descris, de exemplu, sub forma unui glosar. Cerine privind calitatea Cerinele privind calitatea descriu nivelul de calitate al serviciilor i capacitilor i specific proprieti importante ale sistemului cum ar fi securitatea, performana sau uurina n folosire[3]. Standardul internaional ISO/IEC 9126 definete un model independent de tehnologie pentru calitatea softului, care cuprinde 6 caracteristici de calitate, fiecare avnd propriile trsturi. Cele ase caracteristici sunt: Funcionalitatea descrie prezena funciilor care ndeplinesc proprietile definite. Trsturi le sunt concordana, precizia, interoperabilitatea, compliana i securitatea. Sigurana descrie capacitatea unui produs software de a-i menine nivelul de performan n anumite condiii pe o perioad definit de timp. Trsturile sunt maturitatea, tolerana la erori i capacitatea de recuperare. Uurina n folosire descrie efortul necesar pentru a utiliza un produs software i evaluarea sa individual de ctre un grup de utilizatori definit sau presupus. Trsturi: uurina n nelegere, nvare i operare. Eficiena - descrie raportul ntre nivelul de performan al unui produs software i resursele pe care acesta le utilizeaz n anumite condiii. Trsturi: comportamentul n timp, comportamentul resurselor. ntreinerea descrie efortul necesar pentru a implementa modificri prestabilite ntr-un produs software. Trsturi: posibilitatea de analiz, schimbare, stabilitate i testare. Portabilitatea descrie capacitatea unui produs software de a fi mutat dintr-un mediu n altul. Trsturi: capacitatea de adaptare, instalare, potrivire i nlocuire. Au fost fcute diverse ncercri de ctre cercettori pentru a extinde acest model de baz la caracteristicile specifice web-ului. n capitolele ulterioare vom insista asupra uurinei n folosire, performanei i securitii, care reprezint aspecte de calitate eseniale pentru succesul aplicaiilor web. [1] Robertson, S., Robertson, J., Mastering the Requirements Process, Addison-Wesley, 1999 [2] Cockburn, A., Writing Effective Use Cases, Addison-Wesley, 2001 [3] Chung, L., Nixon, B. A., Yu, E., Mylopoulos, J., Non-Functional Requirements in Software Engineering, Kluwer Academic Publishers, 2000 Cerinele mediului sistem - modul n care o aplicaie web este inclus n mediul int i interacioneaz cu componentele externe - hardware Cerinele interfeei utilizator - ghidarea intuitiv i autoexplicativ a utilizatorilor - hipertextul (structura de navigare proces de modelare) i prezentarea (interfaa utilizator) > prototipuri Cerine posibile pe parcursul dezvoltrii - anticipare cerine care ar putea apare dup folosirea pe termen scurt a aplicaiei (utilizatori concurenti - arhitecturi a sistemului scalabile) Constrngerile proiectului - bugetul i planul, limitrile tehnice, standardele, tehnologia de dezvoltare folosit Cerinele mediului sistemului Aceste cerine descriu modul n care o aplicaie web este inclus n mediul int i interacioneaz cu componentele externe, incluznd de exemplu sistemele de motenire, componentele comerciale autonome sau un hardware special. De exemplu, dac o aplicaie web se presupune c va fi disponibil global, atunci n cerinele de mediu trebuie s se specifice detaliile. Cerinele interfeei utilizator Deoarece se presupune c utilizatorii web folosesc aplicaia web fr o instruire formal, ghidarea intuitiv i auto-explicativ a utilizatorilor este esenial pentru acceptarea aplicaiei. Cerinele privitoare la interfaa utilizator definesc modul n care o aplicaie web interacioneaz cu diferite tipuri de clase de utilizatori. Principalele aspecte sunt hipertextul (structura de navigare) i prezentarea (interfaa utilizator). Detaliile de 23

navigare i prezentare sunt definite n mod normal n procesul de modelare, dar deciziile iniiale privind proiectarea interfeei utilizator trebuie luate pe parcursul extragerii cerinelor. Prototipurile sunt cele mai potrivite n aceast situaie. Constantine i Lockwood sugereaz c utilizatorii trebuie s coopereze n proiectarea scenariilor pentru anumite sarcini. Proiectarea centrat pe utilizare se bazeaz pe crearea i reglarea/mbuntirea iterativ a modelelor pentru roluri, sarcini i interaciuni[1]. Cerine posibile pe parcursul dezvoltrii Produsele software n general i aplicaiile web n particular sunt subiectul unei evoluii i mbuntiri continue. Din acest motiv dezvoltatorii web trebuie s anticipeze cerinele care ar putea apare dup folosirea planificat pe termen scurt a aplicaiei. De exemplu, o cerin de calitate care solicit suplimentarea cu 5000 de utilizatori concureni n doi ani trebuie avut n vedere, prin definirea unei arhitecturi a sistemului scalabile. Cerinele ce pot aprea n evoluie sunt posibile pentru toate tipurile de cerine discutate (de exemplu capacitile viitoare, cerinele de securitate viitoare). Constrngerile proiectului Constrngerile proiectului nu sunt negociabile pentru prile interesate ale proiectului i includ de obicei bugetul i planul, limitrile tehnice, standardele, tehnologia de dezvoltare folosit, regulile de desfurare, aspectele de ntreinere, constrngerile operaionale i aspectele legale sau culturale care afecteaz proiectul. [1] Constantine, L., Lockwood, L., Software for Use: A Practical Guide to Models and Methods for UsageCentered Design, ACM Press, 2001 Notaii Relatrile - descrieri colocviale ale proprietilor dorite > exemplu de scenariu Cerinele specificate - simple specificaii n limbajul natural Specificaiile de formatare - sintax precis definit, dar permit i descrieri n limbajul natural. Exemple: descrierile de utilizare de caz din UML Specificaiile formale - scrise ntr-un limbaj care utilizeaz o sintax i semantic definite formal Sunt disponibile variate notaii pentru specificarea cerinelor la diferite nivele de detaliere i formalitate. Exemple: relatri, specificaii de formatare, specificaii formale. Relatrile Relatrile - sunt descrieri colocviale ale proprietilor dorite; ele sunt utilizate pentru a stabili o nelegere ntre clieni i dezvoltatori. Exemple: relatrile utilizatorilor din Extreme Programming[1]. Relatarea unui utilizator este formulat de ctre un client folosind terminologia i limbajul propriu i descrie problemele pe care sistemul ar trebui s le rezolve pentru acel client. Un exemplu de scenariu din perspectiva clientului poate fi urmtorul: Un utilizator verific produsele adugate n coul de cumprturi online. Datele de intrare sunt validate atunci cnd utilizatorul face clic pe . Dac nu sunt gsite erori comanda va fi acceptat i va fi trimis utilizatorului o confirmare prin e-mail. Cerinele specificate Cerinele specificate sunt simple specificaii n limbajul natural. Fiecare cerin are un identificator unic. Un bun exemplu este descrierea unui element de tip dat specificat n IEEE/EIA-J-STD- 016. Specificaiile de formatare Specificaiile de formatare utilizeaz o sintax precis definit, dar permit i descrieri n limbajul natural. Exemple: descrierile de utilizare de caz din UML (Unied Modeling Language), RDD-100 Requirements Specication Language, ghidurile MBASE SSRD sau Volere Shell. Tabelul 2.1 prezint un exemplu al unei specificaii de formatare, principalele atribute fiind: descriere, prioritate, raionament i istoricul versiunii. Fiecare cerin este identificat individual i poate fi referit pe parcursul procesului n orice moment utiliznd un ID unic. Interdependenele cu alte cerine i rezultate ale dezvoltrii (cum ar fi documentele sau planurile arhitecturii) sunt reinute pentru a susine trasabilitatea. Cazurile de utilizare UML sunt utile pentru a descrie cerinele funcionale. Un caz de utilizare descrie o funcie a sistemului din perspectiva actorilor acestuia i conduce la un rezultat perceptibil de ctre actori. Un 24

actor este o entitate