You are on page 1of 4

RAZVOJ WEB APLIKACIJA I SOFTVERSKO INENJERSTVO

Janakovi Lj. Goran 1, Krsti D. Predrag 2


1
Fakultet zatite na radu, Ni
2
Nitex, Ni
I UVOD
World Wide Web (WWW) je danas postao globalna
infrastruktura za ponudu usluga i prenos podataka. Zahtevi i
oekivanja korisnika vezana za informacione sisteme su
visok nivo kvaliteta prezentacije, postojanje aktivnih sadraja
poboljano korienje multimedijalnih sadraja i distribuirane
arhitekture uopte. Meutim, ovaj tehnoloki napredak nije
podran odgovarajuom metodologijom razvoja samih
aplikacija. Razvoj Web sadraja se odvija obino bez
praenja strogih i precizno definisanih procesa, kao i
adekvatne programske podrke za iste. Zbog toga se obino
kae da su Web tehnologije vrlo mone, ali sa najee
nedovoljno specificiranom semantikom. To ima za posledicu
teku razumljivost sloenih Web stranica i velike probleme
kod njihovog odravanja i osveavanja novim sadrajem.
Proces razvoja Web prezentacije prolazi kroz sve faze
razvoja kroz koje i bilo koji drugi softver, a to su: analiza i
specifikacija zahteva, projektovanje i implementacija koja se
odvija primenom jezika visokog nivoa.
Od trenutka svoje pojave, World Wide Web
(WWW) se razvija brzim tempom. Broj WWW stranica je
porastao kada su Internet korisnici shvatili prednosti ovakvog
globalnog sistema. Kompanije, organizacije i akademske
institucije koriste WWW infrastrukturu za pruanje
informacija i usluga krajnjim korisnicima. Oekivanja
korisnika su znaajan reper za stalni razvoj WWW
tehnologije. Primeri su uvoenje aktivnog sadraja u statike
HTML stranice korienjem jezika kao to su Java i
JavaScript, zatim Servlet tehnologija za podeavanje
ponaanja Web servera.
Postojee
WWW
tehnologije
obezbeuju
mehanizme niskog nivoa kao, na primer, posebne vizuelne
efekte ili integraciju aplikacije. Korienje ovih mehanizama
nije voeno sistematskom metodologijom koja bi
projektantima Web stranice obezbedila pogled na strukturu
sistema na visokom nivou, kao i dobro definisani razvojni
proces podran odgovarakuim alatima. Veina danas u
praksi primenjivanih postupaka se iskljuivo zasniva na
znanju i iskustvu projektanata. Ova situacija veoma podsea
na softversku krizu i poetke razvoja softverskog
inenjerstva, kada su se aplikacije razvijale bez adekvatne
metodoloke podrke, bez pravih alata, jednostavno na bazi
oseaja i iskustva projektanata.
Razvoj WWW stranica pati od slinih problema.
Veina WWW projektanata prelazi odmah na fazu
implementacije, ne vodei preterano mnogo rauna o
prikupljanju korisnikih zahteva i specifikaciji same Web
aplikacije i prolazei veoma brzo kroz neformalnu fazu
projektovanja, ukoliko ona postoji. U veini sluajeva,
implementacija se izvrava korienjem tehnologije vrlo
niskog nivoa, kao to je Hypertext Markup Language
(HTML) i razne njegove varijacije. Korienjem analogije sa

konvencionalnim softverskim razvojem, ovakav pristup


odgovara kreiranju aplikacija direktnim preslikavanjem
veoma neformalnih projekata u kod na asembleskom jeziku.
Dalje, nedostatak odgovarajuih apstrakcija ini tekim za
ponovno korienje ranije kreiranih komponenti i ostalih
delova Web aplikacije, ili formiranje okvira za obuhvatanje
zajednike strukture aplikacija i omoguavanje razvoja samo
izborom konkretnih vrednosti parametara. Konano,
upravljanje takvom Web stranicom je veoma teko i
podlono grekama, poto sve promene prate i promene u
strukturi, a sve se to obavlja na implementacionom nivou.
Ovaj problem je posebno kritian poto su WWW sisitemi po
svojoj prirodi podloni veoma estim promenama sadraja i
izgleda. U softverskom inenjerstvu su kreirane razliite
tehnologije, metodologije (projektne paradigme) i integrisana
razvojna okruenja koja podravaju proces razvoja softvera.
Uz pomo adekvatne razvojne podrke, projektanti softvera
mogu da isporue kvalitetne proizvode koji su efikasno
odraeni kako po pitanju vremena, tako i po pitanju utroenih
sredstava. Slian pristup mora da se prati i u razvoju Web
aplikacija.
II SOFTVERSKI PROCES ZA WEB APLIKACIJE
Problem razvoja Web aplikacija moe se reiti
metodolokom i tehnolokom podrkom za svaku fazu
procesa. Dok se za konceptualno modeliranje takve
aplikacije, nezavisno od implementacione tehnologije, moe
koristiti odgovarajua grafika notacija razvijena za
multimedijalne sisteme, ne postoji velika potreba za
implementacionom metodologijom i odgovarajuom
tehnikom podrkom koja bi premostila jaz izmeu projekta
na visokom nivou i implementacije na niskom nivou.
Razvoj Web stranice koji obezbeuje strukturni
pristup velikoj koliini informacija, sa razliitim pogledima
na iste i razliitim kontekstima, je kompleksna aktivnost. Da
bi se kreirala Web aplikacija iole dobrih osobina, sa
ogranienim budetom i vremenom razvoja, projektanti treba
da prate precizno definisani razvojni proces, po mogustvu
podran pogodnim alatima i notacijama. Web stranice su
strukturirani skupovi multimedijalnih informacija obogaeni
vezama izmeu delova istih. Proces razvoja ovakvog sistema
informacija je slian softverskom razvoju. To znai, poto
Web stranice mogu da ukljue u sebi programe koji kreiraju
dinamiki sadraj (CGI skriptovi, Java apleti, JavaScript,
JScript, VBScript) razvojni procesi mogu biti vrlo slini
onima koji se koriste za standardni softver. Dobici usled
korienja kvalitetnog razvojnog procesa su poznati. Sam
proces kreiranja Web stranice se moe podeliti u nekoliko
faza: analiza i specifikacija zahteva, projektovanje i
implementacija. Nakon to se stranica implementira i
isporui, njena struktura i sadraj se menja i razvija. Kod
definisanja ovih osnovnih faza nije se vodilo rauna o bilo

kakvom konkretnom razvojnom procesu i njegovoj strukturi.


Razliiti modeli procesa (model vodopada, spiralni model,
prototipni model) mogu se prilagoditi i iskoristiti za potrebe
razvoja aplikacije.
ANALIZA I SPECIFIKACIJA ZAHTEVA
Za vreme analize zahteva, projektant prikuplja
neophodne informacije od naruilaca i buduih korisnika
sistema vezane za sadraj, strukturu, pristup i izgled. Zahtevi
vezani za sadraj definiu informacije specifine za domen
aplikacije koje moraju biti raspoloive na samoj Web stranici.
Strukturni zahtevi definiu kako sadraj mora da se
organizuje. Ovo ukljuuje definiciju veza i pogleda. Veza
istie odreenu semantiku spregu izmeu odgovarajuih
sadraja. Na primer, tipine veze su generalizacija
kompozicija ili veza zavisna od samog domena aplikacije.
Pogledi su perspektive nad strukturama informacija koje
prilagoavaju sadraj i vezu prema razliitim situacijama
korienja. Razliiti pogledi na isti sadraj mogu
obezbeivati razliite klase korisnika.
Zahtevi vezani za pristup definiu stil pristupa
informacijama koje mora koristiti Web stranica. Ovo
ukljuuje prioritete vezane za predstavljanje informacija,
indeksiranje sadraja, postavljanje razliitih upita, kao i
podrku pregledu skupa povezanih informacija.
Zahtevi vezani za izgled opte vizuelne
karakteristike Web stranice, kao to su naglasak na grafikim
efektima umesto izgleda baziranog na tekstualnim
informacijama.
Moe se rei da svi postojei alati koji podravaju
specificiranje zahteva mogunost praenja zahteva kroz sve
razvojne faze mogu da se koriste i ovde. Neophodan je dalji
razvoj tih alata kako bi se odgovorilo na specifine zahteve
koje je neophodno da podrava alat za projektovanje Web
aplikacija zbog njihove posebne strukture.
PROJEKTOVANJE
Bazirana na zahtevaima, faza projektovanja definie
celokupnu strukturu Web stranice, opisujui nain na koji e
ona biti organizovana i kako e se korisnici kretati kroz nju.
Paljiva projektna aktivnost treba da istakne osnovne
sastavne elemente stranice apstrahujui implementacione
detalje niskog nivoa i omogui projektantu da identifikuje
neophodne strukture i ablone za navigaciju koje moe
viestruko da koristi. Kao posledica prethodno reenog, dobar
projekat moe da preivi este promene u implementaciji,
prouzrokovane pojavama novih tehnologija.
Zbog toga to ne zavisi od implementacije,
identifikovanje gradivnih elemenata stranice se moe izvesti
notacijama i metodologijama koje nisu izriito definisane za
primenu na Web tehnologije. Bilo koja projektna
metodologija se moe koristiti, kao to su HDM, RMDM ili
OOHDM. Kod projektovanja Web aplikacija HDM razlikuje
sloj podataka i sloj pristupa. Sloj podataka je sr aplikacije i
modelira strukturu informacije koja predstavlja domen, sloj
pristupa obezbeuje ulazne take za svaki multimedijalni
dokument. Multimedijalni dokument se sastoji od entiteta
povezanih linkovima. Entiteti se koriste za predstavljanje
konceptualnog ili fizikog objekta iz domena aplikacije.

Kompleksne komponente se moraju struktuirati


rekurzivno pomou drugih komponenti. Informacija koja je
sadrana u komponenti modelira se pomou vorova. Obino
komponente sadre samo jedan vor, dok se vie vorova
moe koristiti da bi se ukazalo na razliite prespektive (u
HDM) informacije koju sadri komponenta (npr. za opis dela
sadraja u razliitim jezicima, ili predstavljanja razliitih
vezija sistema). Putevi navigacije unutar entiteta se definiu
pomou strukturnih veza, koje predstavljaju strukturne
relacije izmeu komponenti. Strukturne veze mogu definisati
strukturu stabla koje dozvoljava korisniku da krene od
osnovne komponente koja je u korenu do bilo koje druge
komponente. Kada se definiu komponente, kao i njihove
unutranje i spoljanje veze, sloj pristupa definie skup
kolekcija koje korisnici koriste zajedno sa strukturama za
pristup multimedijalnom hipertekst dokumentu. Kolekcija
grupie skup lanova, kako bi omoguila pristup njima.
lanovi mogu biti bilo neki elementi hiperbaze ili kolekcije,
inei tako ugnjedene kolekcije. Svaka kolekcija poseduje
poseban element koji se zove centar kolekcije i predstavlja
polaznu taku kolekcije. Primeri kolekcija su takozvane ture
kroz stranice koje podravaju linearno voenje kroz elemente
lanove putem veza prethodni/sledei, prvi/poslednji, ili
putem indeksa, gde se navigacija obavlja od centra ka
lanovima i obrnuto.
IMPLEMENTACIJA
Faza implementacije kreira Web stranicu na osnovu
projekta. U prvom koraku, elementi i veze koji su naznaeni
u fazi projektovanja se preslikavaju u odgovarajue
konstrukcije koje poseduje izabrana implementaciona
tehnologija. Entiteti, komponente, veze i strukture pristupa se
pridruuju posebnim primitivama koje obezbeuje konkretna
tehnologija ili njihovim kombinacijama. U drugom koraku,
stranica se postavlja. Tekue informacije se ubacuju
instanciranjem odgovarajuih struktura koje definie
prethodni korak i definisanjem strukturalnih i aplikacionih
veza meu elementima. Tada se kreiraju kolekcije da bi
obezbedile struktuirane pristupe do sadraja Web aplikacije.
Trei korak ukljuuje modifikovanje aplikacije da bi
zadovoljila posebne zahteve koje koriste Web itai koji
komuniciraju sa Web serverom korienjem HTTP. Ovo se
moe postii prevoenjem implementacije stranice u skup
datoteka i direktorijuma koje koristi niz standardnih WWW
servera.
Implementacija Web stranice se izvodi korienjem
standardnih WWW tehnologija i alata, kao to su editori slika
ili teksta i prevodici iz jednog formata u drugi. Ovo je uzrok
velikih problema prilikom razvoja. Zapravo, standardna Web
tehnologija je tehnologija vrlo niskog nivoa i semantiki
siromana. Osnovne apstrakcije koje Web projektanti koriste
su:
HTML stranice, tekstualne datoteke formatirane
korienjem nekog tipa jezika za oznaavanje;
direktorijumi,skladita stranica;
reference, stringovi teksta ukljueni u HTML tagove koji
oznaavaju resurse korienjem standardne eme za
oznaavanje.
Ne postoji konstrukcija za definisanje sloenih
struktura informacija kao to su skupovi stranica sa posebnim
navigacionim zahtevima, kao to su liste stranica ili indeksi.
Takvi skupovi informacija se moraju kreirati runo

kompozicijom postojeih konstrukcija i primitiva. To znai


da ne postoji nain za kreiranje ablona dokumenata i
mehanizmi za proirenje postojee strukture izborom
konkretnih vrenosti parametara sistema. Razvoj skupa
dokumenata koji poseduju istu strukturu se izvodi runim
kreiranjem prototipova. Ne postoji mehanizam za definisanje
razliitih pogleda na istu informaciju i rpedstavljanje takvih
pogleda zavisno od konteksta pristupa. Ovo spreava
efikasno viestruko korienje informacija. Jedina forma
ponovnog korienja je kopiranje. Neki alati za kreiranje
Web stranica, kao to su Microsoft FrontPage, Net Object
Fusion i Macromedia Dreamweaver pokuavaju da prevaziu
ova ogranienja. I pored toga, svi oni sustriktno zasnovani na
konceptima niskog nivoa koje prua HTML. To ima za
posledicu da su projektanti suoeni sa jazom izmeu
koncepata visokog nivoa definisanih u fazi projektovanja i
konstrukcija niskog nivoa raspoloivih u implementaciji.
ODRAVANJE
Web stranice po svojoj prirodi dinamiki karakter.
Njihov sadraj i strukturna organizacija mogu da se stalno
menjaju. Zbog toga, odravanje predstavlja kljunu fazu, ak
puno vaniju u odnosu na konvencionalni softver. Kao i kod
konvencionalnog softvera, moemo podeliti odravanje u tri
kategorije: korektivno, adaptivno i perfekciono odravanje.
Korektivno odravanje je proces popravljanja
greaka koje postoje u implementaciji Web stranice. To mogu
biti pogreno refencirane stranice, greke u indeksiranju
resursa ili pristupi zastarelim informacijama u sluaju
objavljivanja podataka kod kojih je rok vaenja ogranien.
Adaptivno odravanje ukljuuje podeavanje Web
stranice u odnosu na spoljanje okruenje. Tipian primer je
provera referenci u dokumentu i resursa lociranih na
razliitim stranicama. Zato je odravanje kontinualan proces.
Perfekciono odravanje ukljuuje promenu Web
stranice kako bi se poboljao nain na koji su informacije
struktuirane ili predstavljene krajnjim korisnicima. Promene
mogu biti izazavane uvoenjem novih informacija ili
raspoloivih tehnologija. Perfekciono odravanje treba da
oslika promene na zahtevima i projektnim dokumentima. U
optem sluaju odravanje, a posebno perfekciono, jeste
aktivnost koja uzima najvie projektnih napora.
Danas se odravanje Web stranica izvodi alata kao
to su verifikatori veza ili sintaksni analizatori koji rade
direktno na niskom nivou implementacije. Ovaj pristup je
pogodan za neke sluajeve korektivnog i adaptivnog
odravanja, ali ne obezbeuje efikasnu podrku za zadatke
koji ukljuuju znanje o strukturi Web stranice visokog nivoa.
Na primer, poto se viestruko korienje komponenti moe
obezbediti kopiranjem istih, modifikovanje viestruko
koriene komponente, ukljuuje identifikaciju svakog
njenog korienja i modifikaciju svih instanci, kako bi sistem
ostao konzistentan. Na slian nain, modifikacija strukture ili
stila skupa slinih dokumenata zahteva viestruko
modifikovanjesvih instanci.
Poto perfekciono odravanje zahteva modifikaciju
strukture i organizacije informacija, treba da bude podrano
strukturnim pogledom na stranicu veze izmeu projektnih
dokumenata i njho vih implementacionih elemenata. Ove veze
su od kljunih svojstava jer omoguavaju projektantima da
oslikavaju promene u projektu u implementaciju i obrnuto.
Standardne Web tehnologije ne obezbeuju nain za

predstavljanje ovih veza i njihovu organizaciju na vrlo


visokom nivou. Drugi problem je samo odravanje referenci.
U standardnoj WWW tehnologiji, reference su samo nizovi
karaktera ukljuenih u HTML kod stranice i nemaju status
objekata tagova. Zbog toga je njihovo modifikovanje i
odravanje aktivnost podlona grkama.
III TEHNOLOGIJE ZA IMPLEMENTACIJU
Standardna WWW tehnologija ne obezbeuje
adekvatna sredstva za podrku implementaciji Web stranice i
njenom odravanju. Tehnologija koja se koristi za
implementaciju Web stranice treba da obezbedi visoki nivo
apstrakcije koji podrava preslikavanje projektnih entiteta u
implementacione konstrukcije i upravljanje strukturama
visokog nivoa. U isto vrme, poto se koristi standardni
korisniki interfejs za pristup sadraju, implementaciona
tehnologija mora da obezbedi alate za automatsko
preslikavanje sadraja visokog nivoa u osnovne elemente kao
to su HTML stranice i direktorijumi. Zahtevi koje treba da
obezbedi informaciona tehnologija za implementaciju Web
stranice proistiu iz osnovnih principa softverskog
inenjerstva:
1. Strogost i formalnost,
2. Odvajanje sadraja od izgleda,
3. Modularnost,
4. Apstrakcija,
5. Predvianje mogunosti promene,
6. Optost mehanizma za podrku razvoju.
Svi prethodno navedeni principi neophodno je da se nau u
samoj implementacionoj tehnologiji kako bi se zahtevi
definisani projektom sistema mogli na adekvatan nain
preslikati u konkretnu fiziku realizaciju u vidu Web
aplikacije koja sadri sve one funkcionalne zahteve koji su
definisani samom specifikacijom sistema.
SINTAKSNI ELEMENTI ZA PROJEKTOVANJE WEB
STRANICA
Jedna od karakteristika OOHDM pristupa
projektovanju je injenica da je veina navigacionih objekata
(vorova i veza) precizno definisana u vidu pogleda na
konceptulane objekte i u odnosu na svaki korisniki profil
[2]. Ovi pogledi su ugraeni korienjem objektno
orijentisane definicije jezika koji dozvoljava funkciju
kopiranja i filtriranja atributa razliitih povezanih
konceptualnih klasa u iste vorove klase i kreiranje klase
veze selektovanjem odgovarajuih veza.
Na primer, u sluaju Web stranice fakulteta moe se
eleti da vor koji predstavlja predmete ima atribut sa
imenom profesora koji vodi taj kurs, eventualno ime kao
vezu na Web stranicu tog profesora. Jasno je da u
konceptualnom modelu ime profesora predstavlja atribut
entiteta profesora i ne moe biti deo bilo koje druge klase.
Nasuprot tome, moemo filtrirati neke atribute (kao to je na
primer profesorova zarada) ili ukljuiti nove veze.
Klase vorova mogu da se definiu pomou
odgovarajuih upitnih jezika. vorovi poseduju atribute, veze
i mogu biti prosti ili sloeni. vorovi su parametrizovani
tipom veze koju realizuju [3]. Objektno orijentisani karakter
vorova i veza dozvoljava redefinisanje semantike njihovog
ponaanja prilikom aktiviranja za razliite domene aplikacije.

Sintaksa kojom se moe definisati vor data je sledeim


kodom:
CVOR ime [FROM klasaIme: varIme]
[INHERITS FROM nodeKlasa]
atr1: tip1 [SELECT ime1]
[FROM klasa1:varIme1, klasaj: varImej
WHERE logicki izraz]
atr2: tip2 [SELECT ime2]...
...,
atrn: tipn [imem]
....
veza1: Veza [linkTip1]
veza2: Veza [linkTip2]
...
END
gde je
ime ime klase vora koji se kreira.
klasaIme ime konceptualne klase iz koje se vor preslikava.
cvorKlasa is the name of the super-class
atr imena atributa klase odreenog tipa.
-logicki izraz omoguava definisnje klasa ije su instance
kombinacije objekata definisanih u konceptualnoj emi u
sluaju da su zadovoljeni odreeni uslovi nad atributima.
-veza imena promenljivih veza.
vezaTip tip veze koji definie konkretnu vezu.
Linkovi povezuju navigacione objekte i mogu biti
tipa jedan prema jedan ili jedan prema vie. Rezultat prelaska
korienjem veze je izraen ili definisanjem navigacione
semantike proceduralno kao rezultat ponaanja same veze, ili
objektno orijentisane maine (ili dijagrama) stanja sline
Statechart dijagramima iz UML. Web aplikacije obino
implementiraju
jednostavnu
navigacionu
semantiku
(zatvaranje izvornog vora i otvaranje odredita.
Strukture pristupa se definiu kao alternativni putevi
navigacije unutar aplikacije. Veze u aplikaciji se takoe
definiu kao linkovi na koceptualnom nivou. Strukture
pristupa se obino definiu unutar navigacionog konteksta, a
specificiraju se definisanjem odredinog objekta i selektora
(obino atributa odredita). Sintaksa koja definie vezu je
oblika:
LINK ime
SOURCE: izvorCvor: izvorProm
TARGET: odredisteCvor: odredisteProm
WHERE logicki izraz
END
ime definie ime klase veza
izvorCvor ime izvorinog vora
odredisteCvor ime odredinog vora
izvorProm, odredisteProm promenljive koje se koriste u
logikom izrazu
logicki izraz uslov koji treba da bude ispunjen da bi se
obavio prelazak sa izvora na odredite.
U ovom opisu je izbegnuto prikazivanje atributa veza i
ponaanja radi jednostavnosti. U realnom sluaju i njih treba
uzeti u razmatranje, jer oni znaajno utiu na ponaanje
aplikacije.

IV ZAKLJUAK
Razvoj i evolucija Web stranice je veoma
kompleksna i vremenski zahtevna aktivnost. Naalost,
dosadanji pristupi razvoju Web stranica ne samo da su
panju posveivali samo fazi razvoja, ve im nedostaju
koncepti visokog nivoa kao i strog razvojni proces. U ovom
radu, predstavljen je proces razvoja Web stranica koji je
nezavisan od izabrane tehnologije za implementaciju. Bilo da
je re o obinom HTML kodu, JSP ili ASP tehnologiji, on se
moe primenjivati uz minimalne modifikacije. Lino iskustvo
pokazuje da semantiki slabe apstrakcije i mehanizmi niskog
nivoa koje nudi veina postojeih tehnologija nemaju sva
neophodna programska sredstva.
Objektno orijentisani pristup razvoju moe da
proiri radni okvir i obogati osnovne apstrakcije Web jezika i
upotpuni ih mehanizmima visokog nivoa. Ove konstrukcije bi
se koristile za projektovanje entiteta visokog nivoa pruile
projektantu mone i prilagodive ablone koji se mogu
viestruko koristiti. Zbog toga, model treba da podrava
kompleksne upravljake zadatke i eksplicitne reprezentacije
veza izmeu sastavnih elemenata stranica.
LITERATURA
[1] Sun Microsystems Inc, JavaServer Pages Technology Powering the Web Experience with Dynamic Content,
Palo Alto, California, 1999
[2] D. Schwabe, G. Rossi: An object-oriented approach to
web-based application design. Theory and Practice of
object Systems (TAPOS), October 1998.
[3] G. Rossi, D. Schwabe, A. Garrido, Design Reuse in
Hypermedia Applications Development, Proceedings of
ACM International Conference on Hypertext
(Hypertext97), Southampton, April 7-11, 1997, ACM
Press.
Abstract: The development and evolution of Web sites is a
very complex and time-consuming task. The current
approaches to Web site development are centered on
implementation phase and do not have high-level language
abstractions as well as a methodological development
framework. In this paper, it is presented Web site
development process being independent on any technology
used for implementation. Some experiences showed that the
semantically poor abstractions and low-level mechanisms
offered by the current technologies for Web publishing are
inadequate to support the implementation requirements.

SOFTWARE ENGINEERING AND WEB


APPLICATION DEVELOPMENT
Janakovi Lj. Goran, Krsti D. Predrag

You might also like