You are on page 1of 123

D

r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Inginerie Web
Aspecte privind dezvoltarea aplicatiilor Web







detalii in [PSW, 197-298]
http://delicious.com/stacks/view/BDLBYG
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Viitorul este suma pasilor pe care-i faceti,
inclusiv a celor mici, ignorati sau luati in ras.



Henri Coanda

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Aplicatii Web sisteme software complexe,
in evolutie permanenta
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Realitate

mijloace multiple de interaciune Web cu utilizatorul

mobil laptop PC tableta TV ecran urban
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Realitate

suportul oferit de platforma hardware/software
la nivel de server(e) si/sau de client(i)
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Realitate

creterea masei de utilizatori,
avnd ateptri tot mai mari din partea software-ului
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

de la continut textual si interactiune in linia de comanda
la hipermedia si interactiune Web prin gesturi
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Realitate

neadaptare la cerintele de tip business

development vs. marketing vs. management
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Realitate

privind proiectele Web de anvergura

intarzieri in lansare
neincadrare in buget
lipsa functionalitatii
calitatea precara a aplicatiei
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Asigurarea calitatii aplicatiilor Web

corectitudine & robustete (reliability)
extindere + reutilizare (modularitate)
compatibilitate
eficienta (asigurarea performantei)
portabilitate
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Asigurarea calitatii aplicatiilor Web

facilitarea interactiunii cu utilizatorul (usability)
functionalitate
relevanta momentului lansarii (timeliness)
mentenabilitate
securitate
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Asigurarea calitatii aplicatiilor Web

alte aspecte de interes:
integritate
reparabilitate
verificabilitate inclusiv monitorizare (logging)
economie
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Necesitati

scopuri & cerinte clar specificate

dezvoltarea sistematica, in faze, a aplicatiilor Web

planificarea judicioasa a etapelor de dezvoltare

controlul permanent al intregului proces de dezvoltare
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Necesitati

scopuri & cerinte clar specificate

dezvoltarea sistematica, in faze, a aplicatiilor Web

planificarea judicioasa a etapelor de dezvoltare

controlul permanent al intregului proces de dezvoltare

inginerie Web
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Categorii de aplicatii Web

Centrate pe documente
Interactive
Tranzactionale
Colaborative
Orientate spre portaluri
De tip ubicuu
Web social
Web al datelor interconectate (semantic Web)
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Categorii de aplicatii Web
Centrate pe documente
Interactive
Tranzactionale
Colaborative
Orientate spre portaluri
De tip ubicuu
Web social
Web semantic
evolutia in timp
a complexitatii
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Centrate pe documente document centric

continut/pagini static(e):
situri de companii, personale
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Interactive

expozitii virtuale
situri de stiri/turism

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Tranzactionale

online banking
solutii B2B (business-to-business)
fluxuri de activitati (workflow-uri)
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Colaborative

tele-conferinte Web
wiki-uri
servicii e-learning
aplicatii Web peer-to-peer
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Orientate spre portaluri

localizare unitara a informatiilor:
tehnice, de afaceri, guvernamentale,



specie: Web-ul cetatenesc
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
De tip ubicuu

servicii mobile bazate pe locatia utilizatorului,
disponibile pe mai multe plaforme:
desktop, dispozitive mobile, tablet,


Web-ul mobil
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Web social

(micro)blog-uri
spatii virtuale de lucru
filtrare colaborativa
divertisment social social (game) computing

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Web semantic (Web of data)

modelarea cunostintelor
pentru a fi intelese de calculatoare


dateinformaiicunotine

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

aspecte de interes
Web semantic (Web of data)

modelarea cunostintelor
pentru a fi intelese de calculatoare


dateinformaiicunotine
Dezvoltarea aplicatiilor Web la nivel de client (anul III, optional)
+ Dezvoltarea aplicatiilor Web (master)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Web semantic

management avansat de cunotine
recomandare inteligent de resurse
clasificarea, regsirea i reutilizarea datelor
etc.
aspecte de interes

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

In ce mod dezvoltam o aplicatie Web?
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

modelare
Uzual, se recurge la o metodologie
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

modelare
Uzual, se recurge la o metodologie


se prefera abordarile conduse de modele
(MDA model-driven architecture)


www.omg.org/mda/
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

modelare
Metodologii orientate spre modele referitoare la:
date RMM (Relationship Management Methodology),
Hera, WebML
interactiune HDM (Hypertext Design Model),
WSDM (Web Site Design Method), UsiXML
obiecte OOHDM (Object-Oriented HDM),
UWE (UML-based Web Engineering),
OOWS (Object-Oriented Web Solutions)
software WAE (Web Application Extension)


avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o


avansat
Robert Baxley
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o


avansat
Jesse James Garrett
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

dezvoltarea aplicatiilor Web
Cerinte (requirements)
Analiza & proiectare (software design)
Implementare (build)
Testare (testing)
Exploatare (deployment)
Mentenanta (maintenance)
Evolutie (evolution)

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Aspecte importante

stabilirea standardelor de calitate
cerinte
context
con-
tent
users
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Aspecte importante

licitare + negociere a continutului/codului-sursa

copyright

Open Source Licenses
www.opensource.org/licenses/category
Creative Commons
www.creativecommons.org/licenses/

cerinte
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Aspecte importante

documentare privind domeniul aplicatiei Web
cerinte
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

cerinte
Aspecte specifice aplicatiilor Web

Lipsa unei structuri reale (tangibile)
Multi-disciplinaritate
Necunoasterea publicului-tinta real
Volatilitatea cerintelor & constrangerilor
Mediul de operare impredictibil
Impactul sistemelor traditionale (legacy)
Aspecte calitative diferite
Inexperienta vizitatorilor
Termenul de lansare
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

cerinte: exemplu
Punctele de plecare in dezvoltarea Flickr

presupuneri initiale (assumptions):

oamenilor le place sa-si impartaseasca amintirile

folosirea succesului blogging-ului

partajarea nu doar a insemnarilor,
ci si fotografiilor (personale)

suport pentru realizarea de comentarii + tagging
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

cerinte: exemplu
Punctele de plecare in dezvoltarea Flickr

declaratia scopului (claim):

Flickr.com is almost certainly the best online photo
management and sharing application in the world.
pretindea Flickr in 2005
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

noi tipuri de cerinte
Privitoare la continut

audienta e.g., internationalizare
context de navigare
preferinte
disponibilitate permanenta (7 zile, 24 de ore/zi)
recurgerea la surse eterogene de date
etc.
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

noi tipuri de cerinte
Interactiunea cu utilizatorul in contextul Web


inclusiv vizand Web-ul social

content mash-up

its yours to take, re-arrange and re-use
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

noi tipuri de cerinte
Calitative

functionalitate
fiabilitate
utilizabilitate
eficienta
mentenabilitate
independenta de platforma
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

noi tipuri de cerinte
Privitoare la mediul de executie

(in)dependenta de navigatorul Web

wired vs. wireless
on-line vs. off-line
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

noi tipuri de cerinte
Referitoare la evolutie

utilizatorul final exploateaza aplicatia Web
fara a trebui s-o (re)instaleze pe calculator


perpetual beta
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Calitatea aplicatiilor Web este influentata
de arhitectura pe care se bazeaza
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Dezvoltarea unei arhitecturi software ia in calcul:

cerinte functionale

impuse de clienti, vizitatori, concurenta,
management, evolutie sociala/tehnologica,
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Dezvoltarea unei arhitecturi software ia in calcul:

factori calitativi

vizand utilizabilitatea, performanta,
securitatea, refolosirea codului etc.
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Dezvoltarea unei arhitecturi software ia in calcul:

aspecte tehn(olog)ice

platforma hardware/software (sistem de operare)
infrastructura middleware
servicii disponibile e.g., via API-uri publice
limbaj(e) de programare
sisteme traditionale (legacy)

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Dezvoltarea unei arhitecturi software ia in calcul:

experienta

recurgerea la arhitecturi existente
sabloane de proiectare (design patterns)
folosirea unor solutii la cheie: biblioteci, framework-uri
management de proiecte
etc.
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Arhitecturi Web generice componente tipice:
client(i)
firewall
proxy
middleware
server(e) Web
server(e) de stocare persistenta (fisiere, baze de date)
server(e) de continut multimedia
server(e) de management al continutului
server(e) de aplicatii + framework-uri/componente
aplicatii traditionale
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

arhitecturi
Uzual, se adopta arhitecturi stratificate
(N-tier Web applications)
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Exista anumite retete
privind dezvoltarea de aplicatii Web?
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
O problema oricare ar fi aceasta
poate aparea frecvent
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Cei experimentati au gasit diverse solutii
pentru problema in cauza, reusind sa recunoasca
problema si sa aleaga solutia (optima)
care poate fi aplicata intr-un anumit context
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Pattern (sablon)

regula ce exprima o relatie
dintre un context, o problema si o solutie


initial, cu utilizare in arhitectura
Christopher Alexander, 1979
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Pattern (sablon)

regula ce exprima o relatie
dintre un context, o problema si o solutie

context


problema solutie
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Traditional, pattern-urile se utilizeaza in
proiectarea de software


pattern mind sized chunk of information
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Traditional, pattern-urile se utilizeaza in
proiectarea de software


pattern mind sized chunk of information


lucrarea de referinta:
E. Gamma et al., Design Patterns, Addison-Wesley, 1995
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Pattern-uri de proiectare au fost folosite,
ulterior, in alte arii

interactiune dintre om-calculator
design si interactiune Web, mobile computing

modelare conceptuala
proiectarea bazelor de date, ontologii,

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Un pattern poate descrie cunostintele unui expert
(pe baza experientei sale personale)
in domeniul problemei in ceea ce priveste
recunoasterea problemei, a contextului si
a solutiei la acea problema
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Un pattern nu reprezinta o regula ferma



uneori nu trebuie aplicat!anti-patterns
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Este necesara adoptarea unui vocabular comun
corespunzator domeniului problemei

pattern language
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Pattern-uri privitoare la:
proiectare
arhitectura
analiza
dezvoltare
structura
comportament

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Specificarea si/sau recunoaterea unui pattern poate
avea loc la diverse niveluri:

prezentare a datelor (UI, user interaction, visualization,)
procesare (business logic, scripting etc.)
integrare a componentelor (code library development)
stocare a datelor (database queries, database design,)
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Sablon de specificare a unui pattern:
numele
rezumatul
problema
contextul
solutia
exemplele
utilizarile
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Exemple de colectii de sabloane
(patterns repositories)

privind proiectarea de software
http://c2.com/cgi/wiki?DesignPatterns
patterns of enterprise application architecture
http://martinfowler.com/eaaCatalog/
interactiunea cu utilizatorul
www.hcipatterns.org

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Web Patterns

Model View Controller
Page Controller
Front Controller
Template View
Transform View
Application Controller
M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley (2003)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Session State Patterns

Client Session State
Server Session State
Database Session State
M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley (2003)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

proiectare
Data Source Architectural Patterns

Table Data Gateway
Row Data Gateway
Active Record
Data Mapper
M. Fowler, Patterns of Enterprise Application Architecture, Addison-Wesley (2003)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
Model View Controller

sablon arhitectural

descris in premiera in 1979 in contextul interactiunii
dintre om si calculator Smalltalk (Xerox PARC)

poate fi implementat si intr-un limbaj neorientat-obiect

incurajat/impus de framework-uri specifice
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
Controller

responsabil cu preluarea cererilor de la client
(cereri GET/POST emise pe baza actiunilor utilizatorului)

gestioneaza resursele necesare satisfacerii cererilor

uzual, va apela un model conform actiunii solicitate
si va selecta un view corespunzator
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
Model

resursele gestionate de software utilizatori, mesaje,
produse etc. au modele specifice

desemneaza datele si regulile (i.e. restrictiile)
referitoare la dateconcepte vizand aplicatia Web

ofera controller-ului o reprezentare a datelor solicitate si
e responsabil cu validarea datelor menite a fi stocate
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
View

furnizeaza diverse maniere de prezentare a datelor
furnizate de model via controller

pot exista view-uri multiple,
alegerea lor fiind realizata de controller
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
etape tipice:
(1) cerere trimisa de client e.g., navigator Web,
(2) dirijare cerere catre controller,
(3) recurgerea la un model, (4) furnizarea reprezentarii,
(5) selectarea unui view, (6) prezentare continut la client
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
Arhitectura generica a unei aplicatii Web
va consta dintr-un set de resurse referitoare la
controller, model si view



uzual, framework-ul Web folosit impune o anumita
structura a fisierelor aplicatiei ce va fi implementata
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
structura de directoare in cazul ASP.NET MVC 3
http://www.asp.net/mvc
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

app
Config
Console
Controller
Lib
Locale
Model
Behavior
Datasource
Plugin
Test
tmp
Vendor
View
Elements
Errors
Helper
Layouts
Pages
Scaffolds
webroot
css
files
img
js
lib
plugins
vendors
structura de directoare
in cazul framework-ului
CakePHP 2.1
http://cakephp.org/
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

app
assets
javascripts
stylesheets
apps
libs
main
controllers
models
views
projects
tasks
conf
evolutions
default
project
public
images
icons
javascripts
structura de directoare in cazul framework-ului
Play! 2.0 pentru Java si Scala
http://www.playframework.org/
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

mvc
Variante derivate:

MVP (Model View Presenter)
Passive View
Supervising Controller
PAC (Presentation Abstraction Control)
Model View ViewModel


http://aspiringcraftsman.com/2007/08/25/interactive-application-architecture/


avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

testare
Teste specifice in contextul aplicatiilor Web

privind continutul structura, meta-date

probleme la nivel de hipertext (e.g., broken links)

utilizabilitate inclusiv accesibilitate, multi-lingvism

estetica interfetei Web dificil de evaluat/testat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

testare
Teste specifice in contextul aplicatiilor Web

integrare a componentelor

gradul de disponibilitate permanenta si de flexibilitate
(evolutie continua)

gradul de independenta de dispozitiv multi-screen
(numar mare de dispozitive & caracteristici potentiale)
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

testare
Alte tipuri de testari:
privind performanta
incarcare (load)
stressing
testare continua
scalabilitate
referitoare la securitate
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

testare
Poate fi realizata:

manual

semi-automat

automat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

testare: exemplu codul-sursa
Documente (X)HTML validator.w3.org, Tidy
Documente CSS
Documente XML bine-formatate / valide
Script-uri pe partea client (JavaScript) via JSLint
Programe rulate la nivel de server (JSP, PHP,): xUnit
Integritatea si accesul la sistemul de fisiere
Integritatea si accesul la bazele de date
Rezolvarea independentei de navigator
Prevenirea/solutionarea problemelor de securitate
Rezolvarea scalabilitatii aplicatiei Web
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: aspecte de interes
Disponibilitatea imediata & globala:
24 h 7 zile, numar nelimitat de utilizatori

suport permanent acordat clientilor

continua dezvoltare a aplicatiei Web
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: aspecte de interes
Includerea aplicatiei Web in fluxul de activitati
(workflow-ul) deja existent al organizatiei

asteptari:
cresterea productivitatii, asigurarea calitatii,
reducerea ciclurilor de activitati etc.

efect posibil:
redefinirea workflow-urilor
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: aspecte de interes
Publicarea sitului

server dedicat

furnizor de gazduire Web (hosting)
solutie gratuita vs. comerciala



fara Under construction ori 404 Not found nicaieri!
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare
Mentinerea (administrarea) continutului

obtinerea, crearea, pregatirea, managementul,
prezentarea, procesarea, publicarea si reutilizarea
continuturilor in maniera sistematica si structurata
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare
Mentinerea (administrarea) continutului

obtinerea, crearea, pregatirea, managementul,
prezentarea, procesarea, publicarea si reutilizarea
continuturilor in maniera sistematica si structurata

puncte de vedere:
organizational
tehnic
referitoare la utilizator
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: management
In nivel organizational:
managementul cunostintelor (knowledge management)

managementul relatiilor cu clientii
(CRM Client Relationship Management)

planificarea resurselor
(ERP Enterprise Resource Planning)

managementul workflow-urilor + business rules

integrarea aplicatiilor (EAI Enterprise App Integration)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: management
In nivel tehnic:

managementul continutului de catre personal non-tehnic
pe baza principiului separation of concerns


sisteme de management al continutului
(CMS Content Management Systems)

instrumente colaborative (e.g., enterprise wiki)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: management
Privind utilizatorul:

utilizabilitate Web

mediatizare, agregare, mixare

cresterea performantei
8090% of the end-user response time is spent
on the front-end (Steve Souders)

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: analiza utilizarii
Usage analysis

metode explicite (offline) vs. metode implicite (online)


metode explicite bazate pe date oferite de utilizator
exemple: chestionare, analiza mesajelor de e-mail

metode implicite colectare automata a datelor de interes

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

exploatare: analiza utilizarii
Usage analysis

construirea profilului utilizatorilor: Web usage mining

analiza fisierelor de jurnalizare a accesului
(e.g., access.log la Apache, AWStats,)

masurarea popularitatii sitului: viteza de incarcare,
numarul de accesari, timpul de vizitare etc.

servicii de monitorizare/raportare
e.g., Google Analytics, WordPress Statistics

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

obiectiv principal
resurse umane
durata
cost
abordare
tehnologii
procese
rezultat
profilul echipei
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

obiectiv principal

crearea unui produs utilizabil
in cat mai scurt timp posibil
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

resurse umane

uzual, 39 persoane
strategii: in-house, outsourcing (offshore), near-shore
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

durata

aproximativ 26 luni

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

cost

de ordinul miilor de Euro
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

abordare

metode agile
asamblare de componente
prototipizare inclusiv wireframes, mock-ups
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

tehnologii

bazate pe componente (servicii Web, API-uri publice,
framework-uri, biblioteci, plugin-uri, extensii etc.)
proiectare/programare vizuala
multimedia

si altele
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

procese

ad-hoc (agile)
programare (server + client)





creare/adaptare
de continut



mentenanta
testare


documentare


arhitectura info
+ navigare
cerinte
public beta lansare
h
t
t
p
:
/
/
s
i
x
r
e
v
i
s
i
o
n
s
.
c
o
m
/
w
e
b
-
d
e
v
e
l
o
p
m
e
n
t
/
a
g
i
l
e
/

D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

rezultat

reutilizabilitate mare a codului,
recurgerea la componente/limbaje/platforme standard,
aplicatii implementate uzual conform standardelor


designul vizual este, de cele mai multe ori, unicat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Parametrii unui proiect Web:

profilul echipei

specialisti in interactiune e.g., designeri Web
+
dezvoltatori (programatori) Web
+
arhitecti de baze de date
+
specialisti in marketing si/sau relatii cu publicul
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Personal aplicatii Web de anvergura
Management: Site editor, Project manager
Dezvoltare: System architect, Creative lead,
Security architect, Data (DB/XML) modeler & developer,
Component developer, Web interface developer,
Graphic artist(s), HCI engineer
Programare: Server-side programmers, Client-side
programmers, Data/component integration programmers
Testare: Testing lead, Client-side tester, Server-side tester,
Component tester, Application integration tester
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Personal aplicatii Web de anvergura
Operatii tehnice asupra serverului Web:
Webmaster, Hardware & network technicians,
Network administrator(s), Database administrator(s),
Backup operator, Uptime monitor, Security monitor(s)

Marketing: Content producers & editors,
Branding & advertising experts, Direct e-marketer
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

echipa proiectului Web
management
Web Project
Manager
functionalitate
Software
Engineer(s)
Multimedia
Designer(s)
continut (date)
Domain
Expert
Business
Expert
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Caracteristici:

multi-disciplinaritate

paralelism al activitatilor

dimensiuni reduse
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Web Designer: mainly a front-end developer

graphics applications, (X)HTML, CSS,
cross-browser compatibility, experienta in design vizual,
cunostinte privind interactiunea Web, JavaScript (jQuery),
familiar cu paradigme de interactiune naturala
(gestures, touch, augmented reality),
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Web Developer: mainly a back-end developer

cel putin 1 limbaj obiectual, server-side scripting,
protocoale & standarde Internet/Web,
cunostinte de baze de date (inclusiv XML si/sau NoSQL),
familiaritate cu sisteme CMS/wiki,
cunostinte privitoare la servicii Web (in special REST),
familiar cu alte paradigme de programare
(e.g., functionala, logica, distribuita),
cunostinte referitoare la securitate & performanta Web,
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Web Technician: junior Web developer

asistent (ajutor) al webmaster-ului,
designerului sau dezvoltatorului Web

in formare de abilitati
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management: personal
Web Maintainer: maintains information

actualizeaza continutului disponibil pe Web
via o interfata WYSIWYG, uzual
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Evidenta riscurilor factori importanti:
definirea neclara a obiectivelor

focalizarea asupra unei audiente nereprezentative
(e.g., conducerea organizatiei)

procese bazate pe organigrama, nu pe abilitati reale

lipsa consistentei datorata outsourcing-ului

lipsa bugetului alocat mentenantei
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Evidenta riscurilor factori importanti:
preluarea inflexibila a continutului
stocat in cadrul documentelor traditionale

lipsa mijloace de navigare prin sit

neintelegerea diferentei Internet/intranet

subestimarea semnificatiei prezentei pe Web
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Evidenta riscurilor factori importanti:
marketing vs. usability

probleme cauzate de continutul generat de utilizatori

aspectele vizand securitatea aplicatiilor Web

probleme referitoare la performanta
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

management
Supravietuirea dupa dezastru


probleme de securitate
probleme de performanta
aspecte privind continutul
campania negativa
construirea
unui
dark site
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

concluzii
Actualmente, aplicatiile Web
sunt exploatate si integrate continuu
(continuous integration & deployment)

fenomenul perpetual beta


a se vizita The Museum of Modern Betas:
http://momb.socio-kybernetics.net/
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

concluzii
Actualmente, aplicatiile Web
sunt exploatate si integrate continuu
(continuous integration & deployment)



aplicatia trebuie sa reactioneze e.g., adapteze
in timp-real la interactiunea cu utilizatorul
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Development as a Service
A
.

I
q
b
a
l
,

M
.

H
a
u
n
s
e
n
b
l
a
s
,

S
.

D
e
c
k
e
r

(
2
0
1
2
)


avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

Web: CodeRun, Cloud9, eXo Cloud
desktop: Eclipse, <oXygen/>, Visual Studio
Google App Engine, Heroku,
Jelastic, Windows Azure
BitBucket, GitHub,
SourceForge, Unfuddle

avansat
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

concluzii
Un numar tot mai mare de aplicatii (servicii)
populare disponibile on-line se bazeaza
pe continut generat de utilizatori



de consultat statisticile oferite de Alexa:
http://www.alexa.com/topsites
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

rezumat
Inginerie Web
dezvoltare, testare & exploatare
managementul aplicatiilor Web
D
r
.

S
a
b
i
n

B
u
r
a
g
a

w
w
w
.
p
u
r
l
.
o
r
g
/
n
e
t
/
b
u
s
a
c
o

?

You might also like