seminarski_bv_tp
TRANSCRIPT
-
8/6/2019 Seminarski_BV_TP
1/30
TEHNIKI FAKULTET MIHAJLO PUPINZRENJANIN
Seminarski rad iz predmeta
PROJEKTOVANJE INFORMACIONIHSISTEMA
INFORMACIONI SISTEM STUDENTSKI SERVISI(PRIJAVA ISPITA)
Profesor: dr Biljana Radulovi Vuini Biljana, 83/03-11
Pandurov Tijana, 84/03-11
-
8/6/2019 Seminarski_BV_TP
2/30
Zrenjanin, decembar 2006.
UVOD
Institucije kao to su kole pravi su primer organizacija u kojima je uvoenje
jedinstvenog informacionog sistema od izuzetne vanosti. Ogromna koliinapodataka, pristup i korienje istih dovoljan su motiv za pokretanje takvog projekta.
Podaci vezani za studenta jedinstveni su, ali mesto i vreme unoenja tih podatakarazliiti su i obrada distribuirana. Pristup podacima studentima i zaposlenima uStudentskoj slubi omoguen je preko Interneta i Intraneta, to je velika vremenska iprostorna olakica. Student moe bez dodatne papirologije i od kue prijaviti ispit ilikolokvijum, ili proveriti podatke o prijavi ili izabranim predmetima. Naravno, tanost ibrzina izrade zapisnika su s druge strane od velike vanosti za zaposlene uStudentskoj slubi. U ovom radu predstaviemo nae reenje ovih problema, kako sastrane organizacije i realizacije, tako i sa strane postupka korisnika.
Cilj ovog seminarskog rada je projektovanje jednog softverskog sistema objektnoorijentisanom metodom korienjem UML - objedinjenog jezika za objektnoprojektovanje i implementiranje delova sistema.
Tema seminarskog rada je projektovanje Web aplikacije namenjene za prijavu ispitastudenata na Vioj elektrotehnikoj koli u Beogradu (deo aplikacije Studentskiservisi). Sama aplkiacija sadri i druge aktivnosti, od kojih e u ovom seminarskomradu biti analiziran i pregled prijavljenih ispita.
Svrha sistema je automatizovanje odnosno pojednostavljivanje procesa prijavljivanjaispita.
Krajnji korisnici sistema su studenti. Da bi studentima bilo omogueno prijavljivanjeispita preko Interneta, svi potrebni podaci se unose u bazu putem aplikacijenamenjene zaposlenima u Studentskoj slubi kole.
Konkretni zahtevi za studenta koji su detaljno obraeni u ovom radu su:
1. Prijava na sistem2. Izbor aktivnosti prijava ispita3. Dobijanje liste predmeta koji su na raspolaganju za prijavu4. Izbor predmeta koji se priajvljuju u aktuelnom ispitnom roku5. Pregled prijavljenih ispita6. Odjava sa sistema
2. OPIS APLIKACIJE STUDENTSKIH SERVISA
Realizacija aplikacije Studentski servisi za prijavu kolokvijuma, ispita i laboratorijskihvebi predstavlja deo Informacionog sistema Vie elektrotehnike kole u Beogradu.Pristup aplikaciji mogu je preko Interneta i Intraneta (lokalne mree Vieelektrotehnike kole u Beogradu).
2.1. Baza podataka
Za ovu aplikaciju kreirana je baza podataka u SQL serveru, a neke od osnovnihtabela su:
2
-
8/6/2019 Seminarski_BV_TP
3/30
Student sadri osnovne podatke o studentu, Studira tabela u kojoj se uvaju podaci o studiranju studenta za svaki
semestar i kolsku godinu, Predmet podaci o predmetima, Plan tabela koja sadri sve planove studiranja po smerovima i godinama
uvoenja, PredmetPlan tabela sa podacima koji se predmeti sluaju i po kom planu, Profesor sadri osnovne podatke o profesorima, PredmetProfesor sadri podatke koji profesor predaje koji predmet za
odreenu kolsku godinu, StudentPredmet sadri podatke koje je predmete student izabrao, Tabele za unos prijava ispita, kolokvijuma i laboratorijskih vebi, Tabele za unos podataka o kolokvijumima, laboratorijskim vebama, ispitima, Tabele sa podacima o kolskoj godini, smeru, semestru i druge pomone
tabele.
Za postavljanje aplikacije Studentskih servisa na elektronsku platformu i mogunostprimene potrebno je realizovati unos i adekvatno auriranje svih podataka koji trebada budu pohranjeni u bazi (podaci o studentima, studiranju, unos izabranihpredmeta, unos ocena ...).
Podacima iz baze podataka pristupa se preko linka Studentski servisi sa Internetprezentacije Vie elektrotehnike kole. Pozivanjem prve stranice prikazuje se JSPstranica za autentifikaciju korisnika. Ova stranica sadri HTML formu sa dva polja zaunos korisnikog imena i lozinke. U njih korisnik unosi svoje podatke i pritiskom nataster Prijavi se prosleuje ih na proveru (j_security_check). U sluaju uspeneautentifikacije student moe da koristi sve funkcije Studentskih servisa dok se neodjavi sa sistema. U sluaju da student unese pogreno korisniko ime i/ili lozinkuvraa se na stranicu za ponovnu autentifikaciju.
Nakon uspene autentifikacije prikazuje se stranica sa podacima o studentu:korisniko ime, prezime, ime roditelja, ime, broj indeksa, smer, semestar koji jestudent upisao, koji put upisuje semestar i status studiranja. Ovi podaci postajuelementi Java promenljive tipa Vector koja postaje objekat sesije (Session object) istoji na raspolaganju aplikaciji do kraja sesije. Ako korisnik 30 minuta nije imaonikakvu aktivnost objekat sesije se unitava i korisnik ponovo mora pristupiti procesuautentifikacije.
2.2 Aplikacija Studentski servisi
Aplikacijom Studentski servisi za sada je mogue realizovati sledee funkcije:
prijava laboratorijskih vebi, prijava kolokvijuma, prijava ispita, promena podataka, pregled izabranih predmeta, pregled prijavljenih ispita pomo u korienju aplikacije, povratak na poetnu stranu sajta Vie elektrotehnike kole, i odjava iz aplikacije.
3
-
8/6/2019 Seminarski_BV_TP
4/30
2.2.1.Prijava laboratorijskih vebi i kolokvijuma
Izborom servisa za prijavu laboratorijskih vebi ili servisa za prijavu kolokvijumadobija se prozor koji studentu nudi sve predmete iz kojih ima mogunost da prijavilaboratorijske vebe ili kolokvijume (slika 2). Da bi student imao mogunost te prijavepotrebno je da predmete za koje eli da izvri odgovarajuu prijavu kolokvijuma/laboratorijskih vebi ima u listi izabranih predmeta, da odgovaraju njegovom trenutnooverenom smeru i semestru i da ih nije poloio. Osim toga da bi prijava odreenihlaboratorijskih vebi ili kolokvijuma iz nekog predmeta bila aktivna, znai da bistudent dobio mogunost prijave, oni moraju biti definisani kao tekui uodgovarajuoj tabeli baze podataka (tabele o podacima za kolokvijume, odnosnolaboratorijske vebe). Ako trenutno nije aktivna ni jedna prijava kolokvijuma/laboratorijskih vebi za predmete koje je student izabrao dobija se obavetenje otome.
Student prijavljuje kolokvijum/laboratorijske vebe tako to pored naziva predmeta za
koji eli da izvri prijavu oznai check box, a kada zavri sa izborom pritisne na tasterPrijavi, nakon ega mu se prikazuje stranica sa listom kolokvijuma/ laboratorijskihvebi koje je izabrao.
2.2.2 Prijava ispita
Opcija za prijavu ispita dostupna je studentima samo u periodu prijave ispita zatekui ispitni rok, to se definie u tabeli Rok postavljanjem polja tekui na vrednost1.
Izborom opcije za Prijavu ispita student dobija stranicu (slika 3) koja mu omoguavada prijavi dozvoljene ispite, tj. samo ispite iz predmeta koje je izabrao, a nije poloio.Pored svakog naziva predmeta nalazi se check box ijim oznaavanjem se ispit bira.
Takoe u istom redu sa nazivom predmeta nalazi se i ime profesora koji taj predmetpredaje na smeru koji student studira. U sluaju da jedan predmet predaje vieprofesora student ima mogunost da bira kod kog profesora e polagati ispit.
Nakon izbora svih ispita koje student eli da prijavi u tekuem ispitnom roku pritiskomna dugme Prijavi student je prijavio izabrane ispite i kao odgovor dobija stranicu salistom prijavljenih ispita.
2.2.3. Pregled izabranih predmeta
Izborom opcije Pregled prijavljenih ispita student moe da proveri koje je ispiteprijavljivao u kom roku u tekuoj kolskoj godini.
2.2.4. Promena podataka
Aktiviranjem opcije Promena podataka student ima mogunost da samostalno menjasvoje podatke koji se odnose na adresu stanovanja, broj telefona i slino, tako da ubazi budu najaktuelniji podaci to moe biti od koristi ako je potrebno studentuproslediti neko obavetenje.
2.2.5. Pregled izabranih predmeta
Studenti imaju mogunost biranja predmeta koje ele da sluaju i polau. Svakipredmet ima odreeni broj ECTS bodova, a student je duan u toku studiranja dasakupi odreeni broj bodova, s tim to u svakom semestru treba da ima neki
minimum.
4
-
8/6/2019 Seminarski_BV_TP
5/30
Izborom stavke menija Pregled izabranih predmeta student moe da proveri kojepredmete je izabrao, tj. otvara mu se lista izabranih predmeta sa nazivom predmeta,skraenicom za taj predmet, semestrom u kome se predmet slua i brojem ECTSbodova za taj predmet. Podaci su ureeni u rastuem redosledu po semestru.
2.2.6. Pomo u korienju aplikacije
Izborom opcije Pomo otvara se HTML stranica koja sadri uputstvo za korienjeaplikacije. Tako studenti koji prvi put koriste aplikaciju imaju mogunost da seupoznaju sa opcijama i nainom upotrebe Studentskih servisa. Ova stavka menijadostupna je korisnicima i pre autentifikacije.
2.2.7. Poetna strana
Izborom opcije Poetna strana student se vraa na poetnu stranu Internetprezentacije Vie elektrotehnike kole.
2.2.8. Odjavi se (Logout)
Izborom opcije Odjavi se unitava se objekat sesije.
Pored ovih funkcija, s obzirom na fleksibilnost i laku nadogradivost sistema mogue je dodavanje novih funkcija za koje se vremenom ukae potreba. Svaki studentskiservis implementiran je u vidu jednog servleta i jedne JSP stranice za koje postojeabloni.
3. DIZAJN APLIKACIJE
Web aplikacija Studentski servisi grafiki i dizajnerski je osmiljena i realizovanatehnologijama koje nudi Macromedia Dreamweaver i Adobe PhotoShop.
Kompletan direktorijum Studentski servisi kreiran je i organizovan kao Internetprezentacija sa svojim poddirektorijumima.
Sve stranice aplikacije kreirane su na osnovu ablona (template fajlova saekstenzijom .dwt) koji se uvaju u direktorijumu Templates koji jepoddirektorijum direktorijuma Studentski servisi.
Template osnovniPrijava.dwt je kreiran iz dva dela: nepromenljivog, i promenljivog.
Nepromenljivi deo template sastoji se od funkcija aplikacije Studentski servisi,zaglavlja stranice (naslovna slika) i podnoja stranice (Via elektrotehnika kolaBeograd, [email protected]).Promenljivi deo stranice (editable region) kao to i samo ime kae promenljiv je izavisi od stranice do stranice.
Sve stranice, osim stranice koja prikazuje greku, kreirane su na osnovu templateaosnovniPrijava.dwt. Zbog prethodno navedenog, ako je potrebno izvriti nekupromenu na delu templatea koji je nepromenljiv, promena se vri u templateu iodraava se na sve ostale stranice kreirane na osnovu njega.
Pored templatea pri dizajniranju Web aplikacije Studentski servisi koriena sutehnoloka reenja CSS (predefinisani stilovi) i matrice koje obezbeuju
5
-
8/6/2019 Seminarski_BV_TP
6/30
jednoobrazan izgled svih stranica i mogunost brzih intervencija i izmena sadrajazajednikih elemenata aplikacije.
4. TROSLOJNA ARHITEKTURA APLIKACIJE
Aplikacija Studentskih servisa implementirana je po three-tier modelu pristupabazama podataka. U three-tier modelu, komande se alju middle-tieru (u naemsluaju servletu), koji posle prosleuje SQL naredbe bazi podataka. Baza podatakaprocesira SQL naredbe i alje rezultate nazad middle-tieru, koji ih posle prosleujeka korisniku. Ovakav model veoma je atraktivan zato to middle-tier omoguavaodravanje kontrole pristupa. U veini sluajeva middle-tier arhitektura omoguavapoboljanje performansi. Sve do sada se middle-tier tipino pisao u jezicima kao tosu C ili C++, koji nude veoma brz rad. Sa predstavljanjem optimizovanih kompajlerakoji prevode Java bajt kd u efikasan, mainsko-specifian kd, postalo je praktinoimplementirati middle-tier u Javi. To je donelo velike prednosti, s obzirom na Javinurobustnost, sigurnost, platformsku nezavisnost i mogunost pisanja kodova koji se
paralelno izvrvaju (multithreading).
Sam proces komunikacije klijenta sa bazom podataka (slika 1) odvija se u sledeimkoracima:
1) korisnik pritiskom na dugme HTML forme ili hiperlink poziva Java servlet kojise nalazi na Web serveru. Servlet koji se poziva specificiran je u actionatributu HTML forme,
2) sigurnosni mehanizam proverava da li je dati korisnik autorizovan za pristupservletu,
3) ako je korisnik autorizovan, servlet se pomou JDBC drajvera i JNDIconnection poola konektuje na bazu podataka gde u zavisnosti od zahtevakorisnika ita podatke (iz pogleda-viewa) ili upisuje podatke (izvravanjemstored procedura),
4) servlet na osnovu podataka iz baze prosleuje parametre odgovarajuoj JSPstranici. Razmena parametara izmeu servleta i JSP stranice vri se pomouSession objekata, i
5) ovako izgenerisana JSP stranica prikazuje se korisniku.
Server baze podataka
SQL server
Domen kontroler
WEB Server
Tomcat
Klijent 1
Klijent N
web xml
jsp
servlet
1
4
2'
3
2
5
Slika 4.1. Troslojna arhitektura aplikacije
6
-
8/6/2019 Seminarski_BV_TP
7/30
Aplikacija Studentski servisi napisana je u Java Servlet/JSP tehnologiji. Za podrkuovakvoj tehnologiji upotrebljavaju se tzv. servlet kontejneri. Servlet kontejneri mogupostojati u vidu ekstenzije ve postojeeg Web servera (Internet Information Server,Apache i drugi) ili kao samostalni (stand-alone) Web serveri. Aplikacija Studentskiservisi kao servlet kontejner koristi stand-alone Tomcat servlet kontejner.Konfiguracija ovog servlet kontejnera svodi se na editovanje fajla server.xml, toprua izuzetnu fleksibilnost i portabilnost sa sistema na sistem. Za svaku aplikacijukoja se izvrava na Tomcat servlet kontejneru definisan je fajl koji opisuje okruenjedate aplikacije (tzv. Deployment descriptor). Ovaj fajl ima naziv web.xml i sastoji seod elemenata koji opisuju delove konkretne aplikacije, kao to su relativne putanje doservleta aplikacije, podrazumevana prva Web strana aplikacije, podeavanja vezanaza sesije, podeavanja vezana za sigurnost sistema.
U aplikaciji je kao nain autentifikacije korisnika upotrebljen jedan od mehanizamasigurnosti koji su ugraeni u sam servlet kontejner Tomcat. To je takozvani formautentification. Ideja realizacije ovakvog naina autentifikacije je sledea: za pokuajpristupu bilo kog zatienog resursa sistema koji podlee autorizaciji (servletu ili JSP
stranici) ne poziva se direktno taj resurs, ve JSP stranica sa HTML formom za unoskorisnikog imena i lozinke. Tek nakon korektno unetog korisnikog imena i lozinke,odgovarajui resurs se poziva. U sluaju pogreno unetog korisnikog imena i/ililozinke, korisniku se prikazuje stranica sa grekom.
5. MODELIRANJE FUNKCIONALNOSTI SISTEMA
Sluajevi korienja predstavljaju tehniku kojom se modeliraju zahtevi ifunkcionalnosti sistema. Na ovom nivou se prepoznaju uesnici i sluajevi upotrebesistema od strane uesnika.
5.1. Uesnici
Uesnici su neko ili neto to uestvuje u izgradnji sistema. Uesnici su iznadsistemskog domena i ne modeliraju se. Predstavljaju se figuricama oveka. Mogu bitifizika linost korisnik ili drugi sistem koji e vriti komunikaciju sa posmatranim.
Na osnovu zahteva za ovaj seminarski rad definisan je uesnik student.
Student je korisnik sistema koji je u datoj kolskoj godini upisao prvi put odreenugodinu studija (semestar), obnovio godinu ili se prepisao sa nekog drugog fakulteta.Njegova uloga je da se prijavi na sistem i izabere neku od aktivnosti koje su mu
dostupne (prijava ispita i pregled prijavljenih ispita su obraeni u ovom seminarskomradu).
5.2. Sluajevi korienja (Use case)
Sluajevima korienja se definie zahtevana funkcionalnost sa aspekta korisnikasistema i pri tome se ne ulazi u detalje realizacije. Kompletno ponaanje sistemaopisano je sluajevima korienja. Sluaj korienja definie niz akcija koje sistemizvrava na zahtev spoljanjeg korisnika u cilju ostvarivanja odreene funkcionalnostisistema i rezultat vraa spoljanjem korisniku.
Komunikacija izmeu korisnikih funkcija i izvoaa je ilustrovana relacijom binarneasocijacije. Asocijacija moe biti prohodna u oba smera ili samo u jednom smeru pri
7
-
8/6/2019 Seminarski_BV_TP
8/30
emu smer prohodnosti relacije ukazuje ko inicira komunikaciju. Pri definisanju tiparelacije koriste se stereotipi koji ukazuju na tip veze izmeu izvoaa i korisnikihfunkcija.Ukoliko vie funkcija koriste delove iste funkcionalnosti onda se taj odnos opisujestereotipom include i on ukazuje da je u funkcionalnost posmatrane funkcijeukljuena i funkcionalnost koju obezbeuje druga funkcija sistema. Proirenomvezom extend se omoguava da jedan sluaj proiri svoju funkcionalnostkorienjem funkcionalnosti koju prua drugi sluaj upotrebe.
5.2.1. Prijava korisnika na sistem
Korisnik student se prijavljuje na sistem koristei dodeljeno korisniko ime i lozinku.
prijavljivanje na sistem
student
prijava na sistem
Slika 5.2.1.1. Dijagram sluaja korienja Prijava na sistem
Slika 5.2.1.2. Stranica za prijavu na sistem
Normalno funkcionisanje: Korisnik unosi u odgovarajua polja svoje korisniko ime i
lozinku i pritiskom na dugme Prijavi se vri se provera validnosti unetih podataka ikorisnik se prijavljuje na sistem. Otvara mu se stranica sa njegovim optim podacima(slika 5.2.1.3).
Alternativno funkcionisanje: Ukoliko je student uneo pogreno korisniko ime ililozinku, dobija poruku o tome.
8
-
8/6/2019 Seminarski_BV_TP
9/30
Slika 5.2.1.3 Prikaz optih podataka o studentu
5.2.2. Izbor aktivnosti prijava ispita
Student nakon prijave na sistem, bira ponuenu opciju za prijavu ispita.
prijavljuje i spite
student
prijava ispita
Slika 5.2.2.1 Dijagram sluaja korienja Prijava ispita
Normalno funkcionisanje: Student izborom opcije Prijava ispita otvara stranicu zaprijavu ispita (slika 5.2.2.3.). Izabere ispite koje eli da prijavi iz liste koja mu jeponuena (ekiranjem opcije Izaberi) i pritiskom na dugme Prijavi prijavljujeizabrane ispite (podaci se pamte u tabeli PrijavIspita). Nakon toga mu se prikazujestranica sa spiskom predmeta koje je prijavio (slika 5.2.2.4).
Alternativno funkcionisanje: Student izborom opcije Prijava ispita dobija
obavetenje da ne postoji aktuelan ispitni rok (slika 5.2.2.2.) ukoliko nije aktivannijedan ispitni rok.
Pritiskom na dugme Odustani ponitava se izbor predmeta za prijavu.
9
-
8/6/2019 Seminarski_BV_TP
10/30
Slika 5.2.2.2. Stranica koja obavetava o nepostojanju aktuelnog ispitnog roka
Slika 5.2.2.3. Prikazliste predmeta koje
student moe prijaviti
10
-
8/6/2019 Seminarski_BV_TP
11/30
-
8/6/2019 Seminarski_BV_TP
12/30
Slika 5.2.3.3 Stranica koja prikazuje prijavljene ispite
5.2.4. Odjava sa sistema
Student se odjavljuje sa sistema nakon zavrenog rada.
odjavljuje se
student
odjava sa sistema
Slika 5.2.4.1 Dijagram sluaja korienja Odjava sa sistema
6. STATIKI MODEL SISTEMA
Statikim modelom se opisuju entiteti sistema. Entiteti i meusobne vezepredstavljeni su klasama i vezama izmeu klasa prikazanim na dijagramu klasa. Sadijagrama klasa i objekata koji se instanciraju iz klasa moe se sagledatifunkcionalnost sistema kroz poruke koje oni razmenjuju.
Statikim modelom se prikazuje i struktura klase, odnosi izmeu klasa, interfejsisistema i objekti kao i statiki dijagram objekata kao konkretnih primeraka klase saodreenim stanjima.
6.1.Klase sistema
Klase objedinjuju informacije i ponaanje objekata sistema. Korienjem opisastrukture i ponaanja datog u klasi iz nje se izvodi pojava klase tj. objekat.
12
-
8/6/2019 Seminarski_BV_TP
13/30
U UML-u klase se predstavljaju pravougaonicima podeljenim na odeljke. Modeliklasa, graninih ili entitetskih u sebi sadre sve atribute i operacije kao i kratke opisenjihove funkcionalnosti. Gornji odeljak modela klase sadri ime klase, srednji odeljaksadri strukturu klase (atribute), a dolji odeljak sadri ponaanje klase (operacije).Stereotipi se mogu staviti iznad imena klase i daju opis vrste klase, a u podnojumodela se daju imena instanciranih objekata iz modula klase.
6.2. Struktura klasa sistema
Klasa u sebi inkapsulira stanja i ponaanja neophodna za rad sa korisnicimasistema. Svi atributi klase su zatieni tako da su vidljivi u izvedenim klasama, ali ne ispolja. Metode klase su javne tako da su dostupne kroz instance objekata izvedeneklase. Klasa omoguuje osnovna stanja i operacije korisnika sistema, kao to suprovera identiteta, pronalaenje korisnika itd.
Na dijagramu klasa se vide klase i njihova meusobna povezanost. Veze izmeuklasa mogu biti veze generalizacije, asocijacije, agregacije, kompozicije, zavisnosti,
realizacije.
6.2.1. Dijagram klasa za aktivnost prijava na sistem
Dijagram klasa za aktivnost prijava na sistem obuhvata sledee klase: formlogin.jsp,login.jsp, Login i klasu Student_podaci, koja sadri podatke koji se nalaze u razliitimtabelama baze podataka. Klase su povezane vezama asocijacije. Klasaformlogin.jsp, predstavljajava server page, sa dva tekst polja, za unos podataka, idugmetom, koje poziva servlet Login. Klasa Login je u extends vezi sa klasom
HttpServlet i implementira interfejs SingleThreadModel. Ova klasa predstavlja vezuizmeu korisnikog interfejsa i baze podataka. Svi atributi klasa su privatni, ime sepostie enkapsulacija podataka, a metode klase su javne. Svaka klasa imapodrazumevani konstruktor, a funkciju destruktora obavlja javin garbage collector.
1..1
1..1
1..11..1
0..1
0..*
Login
*
*
*
**
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
username
password
akcija
upitgreska
JSPName
id_student
id_godina
godina
vrste_studenti
vrste_studira
con
stmt
rs
rsmd
out
ctx
ds
session
sc
rd
karakterset
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: int
: int
: java.sql.Connection
: java.sql.Statement
: java.sql.ResultSet
: java.sql.ResultSetMetaData
: java.io.PrintWriter
: javax.naming.Context
: javax.sql.DataSource
: ja vax.servlet.http.HttpSession
: javax.servlet.ServletContext
: javax.servlet.RequestDispatcher
: java.lang.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Login ()
service (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
proslediGresku (java.lang.String Parameter_1, javax.servlet.http.HttpServletRequest Parameter_2, javax.servlet.http.HttpServletResponse Parameter_3)
poveziMe (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
zatvoriKonekciju (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
resetujPromenljive ()
pozoviJSP (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
tekucaSkolskaGodina (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
tekuciRok(javax.servlet.http.HttpServletRequ est Paramete r_1, javax.servlet.http.HttpServletResponse Parameter_2)
opstiPodaci (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
podaciStudiranje (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
citajKakoPise (java.io.InputStream Parameter_1, java.lang.String Parameter_2)
toCharset (java.lang.String Parameter_1, java.lang.String Parameter_2)
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: java.lang.String
: java.lang.String
Student_podaci
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
id_student
id_semestar
id_plan
id_vrstastud
koji_put
id_status
id_skolgod
skol_god
tekuca
username
password
ime
prezime
ime_roditel ja
naziv_smera
indeks
status
: int
: int
: int
: int
: int
: int
: int
: string
: boolean
: String
: String
: String
: String
: String
: String
: String
: String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
StudentPodaci ()
setIdStudent (int newId_student)
setIdSemestar (int newId_semestar)
setIdPlan (int newId_plan)
setIdVrstastud (int newId_vrstastud)
setKojiPut (int newKoji_put)
setIdStatus(int newId_status)
setIdSkolgod (int newId_skolgod)
setSkolGod (string newSkol_god )
setTekuca (boolean newTekuca)
setIme (String newIme)
setPrezime (String newPrezime)
setImeRoditelja (String newIme_roditelja)
setNazivSmera (String newNaziv_smera)
setIndeks (String ne wIndeks)
setStatus (String newStatus)
getPassword ()
setPassword (String newPassword)
getUsername ()
setUsername (String newUsername)
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: String
: void
: String
: void
formLogin.jsp
-
-
username
password
: int
: int
login.jsp
-
-
-
-
-
-
-
prezime
ime
indeks
status
smer
godina_studija
semestar
: int
: int
: int
: int
: int
: int
: int
13
-
8/6/2019 Seminarski_BV_TP
14/30
Slika 6.2.1.1 Dijagram klasa za aktivnost prijava na sistem
6.2.2. Dijagram klasa za aktivnost prijava ispita
Dijagram klasa za aktivnost prijava ispita obuhvata sledee klase: PrijavaIspita.jsp,UnosPrijaveIspita.jsp, servlete PrijavaIspita i UnosPrijaveIspita i klaseStudent_predemet i Prijavljeni_ispit, koje sadre podatke o predmetima koje jestudent izabrao i podatke o ispitima koje je student prijavio.
0..1
0..*
0..1
0..*0..1
0..* 0..1
0..*
0..1
0..*
0..1
0..*
PrijavaIspita
*
**
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
username
passwordakcija
upit
greska
JSPName
id_student
id_godina
godina
vrste_studenti
vrste_studira
con
stmt
rs
rsmd
out
ctx
ds
session
sc
rd
karakterset
: java.lang.String
: java.lang.String: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: int
: int
: j ava.sql.Connection
: java.sql.Statement
: java.sql.ResultSet
: java.sql.ResultSetMetaData
: j ava.io.PrintWriter
: javax.naming.Context
: javax.sql.DataSource
: javax.servlet.http.HttpSession
: javax.servlet.ServletContext
: javax.servlet.RequestDispatcher
: java.lang.String
+
+
+
+
+
+
++
+
+
+
+
+
+
PrijavaIspita ()
service (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
proslediGresku (java.lang.String Parameter_1, javax.servlet.http.HttpServletRequest Parameter_2, javax.servlet.http.HttpServletResponse Parameter_3)
poveziMe (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
zatvoriKonekciju (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
resetujPromenljive ()
pozoviJSP (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)tekucaSkolskaGodina (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
tekuciRok (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
opstiPodaci (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
podaciStudiranje (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
spisakPredmeta (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
citajKakoPise (java.io.InputStream Parameter_1, java.lang.String Parameter_2)
toCharset (java.lang.String Parameter_1, j ava.lang.String Parameter_2)
PrijavaIspita.jsp
UnosPrijaveIspita.jsp
UnosPrijaveIspita
*
**
*
*
*
*
*
*
*
*
*
*
*
*
con
stmtrs
rsmd
out
JSPName
greska
poruka
upit
ctx
ds
session
sc
rd
karakterset
: j ava.sql.Connection
: java.sql.Statement: java.sql.ResultSet
: java.sql.ResultSetMetaData
: j ava.io.PrintWriter
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: javax.naming.Context
: javax.sql.DataSource
: javax.servlet.http.HttpSession
: javax.servlet.ServletContext
: javax.servlet.RequestDispatcher
: java.lang.String
+
+
+
+
+
+
+
+
+
+
+
+
+
UnosPrijaveIspita ()
service (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpS
proslediGresku (java.lang.String Parameter_1, javax.servlet.http.HttpServletReques , . . .
poveziMe (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.Htt
zatvoriKonekciju (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet. .
resetujPromenljive ()
pozoviJSP (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.Ht
prijavio (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.Http
daLiJeVecPrijavljeno (int Parameter_1, int Parameter_2, int Parameter_3, int Para , , ,
unesiPrijavu (java.util.Vector Parameter_1, int Parameter_2, javax.servlet.http.Http , . .
brojPrijave (int Parameter_1, javax.servlet.http.HttpServletRequest Parameter_2, ja . . .
citajKakoPise (java.io.InputStream Parameter_1, java.lang.String Parameter_2)
toCharset (java.lang.String Parameter_1, java.lang.String Parameter_2)
template
Prijavljeni_Ispit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
id_prijava
id_student
id_predmet
id_plan
id_semestar
id_predavac
id_skolgod
id_rok
username
ime
prezime
ime_oca
smer
broj_indeks
semestar
koji_put
predmet
profesor
rok
: int
: int
: int
: int
: int
: int
: int
: int
: String
: String
: String
: String
: String
: String
: String
: int
: String
: String
: String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
setIdPrijava (int newId_prijava)
setIdStudent (int newId_student)
setIdPredmet (int newId_predmet)
setIdPlan (int newId_plan)
setIdSemestar (int newId_semestar)
setIdPredavac (int newId_predavac)
setIdSkolgod (int newId_skolgod)
setIdRok (int newId_rok)
Prijava_Ispita ()
setRok (String newRok)
setIme (String newIme)
setPrezime (String newPrezime)
setImeOca (String newIme_oca)
setSmer (String newSmer)
setBrojIndeks (String newBroj_i ndeks)
setSemestar (String newSemestar)
setKojiPut (int newKoji_put)
setPredmet (String newPredmet)
setProfesor (String newProfesor)
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
Student_Predmet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--
-
-
-
id_student
id_semestar
id_plan
id_vrstastud
koji_put
id_status
id_skolgod
skol_god
tekuca
username
ime
prezime
ime_roditelja
naziv_smera
indeksstatus
predmet
profesor
ispitni_rok
: int
: int
: int
: int
: int
: int
: int
: string
: boolean
: String
: String
: String
: String
: String
: String: String
: String
: String
: string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
StudentPredmet ()
setIdStudent (int newId_student)
setIdSemestar (int newId_semestar)
setIdPlan (int newId_plan)
setIdVrstastud (int newId_vrstastud)
setKojiPut (int newKoji_put)
setIdStatus (int newId_status)
setIdSkolgod (int newId_skolgod)
setSkolGod (string newSkol_god)
setTekuca (boolean newTekuca)
setUsername (String newUsername)
setIme (String newIme)
setPrezime (String newPrezime)
setImeRoditelja (String newIme_roditelja)
setNazivSmera (String newNaziv_smera)
setIndeks (String ne wIndeks)
setStatus (String newStatus)
setPredmet (String newPredmet)
setProfesor (String newProfesor)
setIspitniRok (string newIspitni_rok)
getUsername ()
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: String
Slika 6.2.2.1 Dijagram klasa za aktivnost prijava ispita
14
-
8/6/2019 Seminarski_BV_TP
15/30
6.2.3 Dijagram klasa za aktivnost pregled prijavljenih ispita
Dijagram klasa za aktivnost pregled prijavljenih ispita obuhvata sledee klase:PregledPrijavljenihIspita.jsp, servlet PregledPrijavljenihIspita i klasu Student_Prijavakoja sadri podatke o predmetima koje je student prijavio.
0..1
0..*
0..1
0..*
0..1
0..*
PregledPrijavljenihIspita
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**
*
username
password
akcija
upit
greska
JSPName
id_student
id_godina
godina
vrste_studenti
vrste_studira
con
stmt
rs
rsmd
out
ctx
ds
session
scrd
karakterset
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: java.lang.String
: int
: int
: java.sql.Connection
: java.sql.Statement
: java.sql.ResultSet
: java.sql.ResultSetMetaData
: java.io.PrintWriter
: javax.naming.Context
: javax.sql.DataSource
: javax.servlet.http.HttpSession
: javax.servlet.ServletContext: javax.servlet.RequestDispatcher
: java.lang.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
PregledPrijavl jenihI spita ()
service (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
proslediGresku (java.lang.String Parameter_1, javax.servlet.http.HttpServletRequest Parameter_2, javax.servlet.http.HttpServletResponse Parameter_3)
poveziMe (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
zatvoriKonekciju (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
resetujPromenljive ()
pozoviJSP (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
tekucaSkolskaGodina (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
tekuciRok(javax.servlet.h ttp.HttpServletRequest Parameter_1, javax.servlet.http. HttpServletResponse Parameter_2)
opstiPodaci (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
podaciStudiranje (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
spisakPredmeta (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
citajKakoPise (java.io.InputStream Parameter_1, java.lang.String Parameter_2)
toCharset (java.lang.String Parameter_1, java.lang.String Parameter_2)
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: java.lang.String
: java.lang.String
template2
Student_Prijava
-
-
-
-
-
-
-
-
-
-
-
id_prijava
id_student
id_predmet
id_plan
id_semestar
id_predavac
id_skolgod
id_rok
predmet
profesor
naziv_rok
: int
: int
: int
: int
: int
: int
: int
: int
: String
: String
: String
+
+
+
+
+
+
+
+
+
+
+
+
+
getIdPrijava ()
setIdPrijava (int newId_prijava)
setIdStudent (int newId_student)
setIdPredmet (int newId_predmet)
setIdPlan (int newId_plan)
setIdSemestar (int newId_semestar)
setIdPredavac (int newId_predavac)
setIdSkolgod (int newId_skolgod)
setIdRok(int newId_rok)
Prijava_Ispita2 ()
setPredmet (String newPredmet)
setProfesor (String ne wProfesor)
setNazivRok(String newNaziv_rok)
: int
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
: void
PregledPrijavljenihIspitaJSP
Slika 6.2.3.1 Dijagram klasa za aktivnost pregled prijavljenih ispita
6.2.4. Dijagram klasa za odjavu sa sistema
0..10..*0..1
0..*
Logout
*
*
*
*
*
*
session
sc
rd
JSPName
greska
karakterset
: javax.servlet.http.HttpSession
: javax.servlet.ServletContext
: javax.servlet.RequestDispatcher
: j ava.lang.String
: j ava.lang.String
: j ava.lang.String
+
+
+
+
Logout ()
service (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
proslediGresku (java.lang.String Parameter_1, javax.servlet.http.HttpServletRequest Parameter_2, javax.servlet.http.HttpServletResponse Parameter_3)
pozoviJSP (javax.servlet.http.HttpServletRequest Parameter_1, javax.servlet.http.HttpServletResponse Parameter_2)
: void
: void
: void
logout.jsptemplate2
15
-
8/6/2019 Seminarski_BV_TP
16/30
Slika 6.2.4.1 Dijagram klasa za odjavu sa sistema
7. DINAMIKI MODEL SISTEMA
Dinamiki model opisuje pojedinano ponaanje objekata u sistemu, kao i ponaanjekompletnog sistema. Objekti se mogu nalaziti u razliitim ulogama, meusobno supovezani i preko tih veza razmenjuju poruke. Prilikom razmene poruka oni menjajusvoja stanja, a time menjaju i stanje sistema.
Interakcijama objekata opisuje se nain na koji objekti meusobno komuniciraju. Onapredstavlja specifikaciju poruka koje objekti meusobno razmenjuju.
Poruke koje se razmenjuju mogu biti sinhrone i asinhrone. Sinhrona porukapodrazumeva zahtev za izvrenje operacije i tok kontrole se vraa poiljaocu tekpoto primaoc obradi poruku na odgovarajui nain. Kod asinhrone poruke tok
kontrole se vraa poiljaocu odmah nakon prosleivanja porke.Dinamika sistema se modeluje pomou dijagrama aktivnosti, stanja, saradnje isekvenci.
7.1.Dijagram sekvence (Sequence diagram)
Dijagramom sekvenci prikazuje se komunikacija izmeu skupa objekata prekoporuka koje meusobno razmnenjuju u cilju ostvarivanja oekivanog ponaanja.Akcenat je na prikazivanju sekvence poruka i njihovog redosleda. U dijagram jeuneena i vremenska komponenta kojom se vremenski specificira redosledizvravanja operacija i ivotni vek objekta.
7.1.1 Dijagram sekvenci za aktivnost prijava na sistem
16
-
8/6/2019 Seminarski_BV_TP
17/30
2: forma za logovanje
7: podaci o studentu
8: stranica login
1: http zahtev
3: unos korisnickog imena i lozinke4: autenti fikacija korisnika
5: daj podatke o studentima
6: podaci o studentu
student
jsp stranica servlet baza
Slika 7.1.1.1 Dijagram sekvenci za aktivnost prijava na sistem
7.1.2. Dijagram sekvenci za aktivnosti prijava ispita
17
-
8/6/2019 Seminarski_BV_TP
18/30
6: izabrani predmeti
4: rok postoji
7: izabrani predmeti
8: prikaz predmeta koji se mogu prijaviti
9: izbor predmeta za prijavu
13: prijavljeni i spiti
14: prijavljeni i spiti
15: prikaz prijavljenih ispita
1: izbor opcije prijava ispita
2: daj podatke o izabranim predmetima
3: provera aktuelnog ispitnog roka
5: daj predmete
10: potvrda prijave
11: izabrani predmeti za prijavu
12: unos prijave ispita
student
bazaservletjsp stranica
Slika 7.1.2.1. Dijagram sekvenci za aktivnosti prijava ispita
7.1.3. Dijagram sekvenci za aktivnost pregled prijavljenih ispita
4: prijavljeni i spiti[]5: prijavljeni i spiti[]
6: prikaz prijavljenih ispita
1: izbor opcije prijavljeni ispiti
2: daj prijavljene ispite
3: prijavljeni ispiti studenta
student
bazajsp stranica servlet
Slika 7.1.3.1. Dijagram sekvenci za aktivnost pregled prijavljenih ispita
7.1.4. Dijagram sekvenci za odjavu sa sistema
18
-
8/6/2019 Seminarski_BV_TP
19/30
4: sesij a zatvorena
5: korisnik uspesno odjavl jen
1: izbor opcije odjava sa sistema
2: odj ava sa sistema
3: zatvaranje sesije
student
bazajsp stranica servlet
Slika 7.1.4.1. Dijagram sekvenci za odjavu sa sistema
7.2.Dijagram kolaboracije
Dijagram kolaboracije prikazuje saradnju izmeu objekta u cilju ostvarivanjaodreene funkcionalnosti. Ovaj dijagram naglaava vezu izmeu objekata i tokovarazmene poruka izmeu njih. Sekvence tokova i konkuretnih tokova oznaavajuse sekvencama brojeva i na taj nai se dobija redosled razmene poruka usistemu. Dijagram kolaboracije predstavlja dinamiki dijagram objekata i kao takavsaglasan je sa dijagramima klasa.
7.3. Dijagram stanja
Dijagram stanja je jo jedan od dijagrama za opisivanje dinamikih karakteristikasistema. Svakoj klasi ije je ponaanje znaajno pridruuje se dijagram stanja
kojim se opisuje ponaanje pojava date klase. Dijagram stanja daje sva stanjajedne klase i dogaaje koji iniciraju prelazak iz jednog u drugo stanje. Promenastanja predstavlja odgovor objekta na poruku prosleenu od nekog drugog objektaunutar ili van sistema.
7.4. Dijagram aktivnosti
19
-
8/6/2019 Seminarski_BV_TP
20/30
Jo jedan od dijagrama kojim se modelira dinamika sistema. Moe se pridruitipaketu, klasi odnosno implementaciji njene operacije ili sluaju korienja. Uovom radu prilikom opisa sluajeva korienja sistema za svaki je dat dijagramaktivnosti kojim se prikazuje primarni tok funkcionalnosti sluaja.
Aktivnost se modelira akcijama koje su atomarne akcije, odnosno kao akcije ije
se izvravanje ne moe prekinuti nekim dogaajem.Na dijagramu aktivnosti mogu se koristiti pseudo stanja kojima se prikazuju uslovi.
[da]
[da]
[ne]
[ne]
[da]
[ne]
Unesi korisnicko ime i sifru
Provera korisnickog imena i sifre
da li korisnik postoji
izbor aktivnosti
izbor ispita za prijavu
da li postoji ispitni rok
prikaz prijavljenih ispita
prikaz stranice prijavlj eni ispiti
upis prijavljenih ispita
potvrda prijave ispita
izbor prijave ispita izbor odjavi seizbor pregled prijavljenih ispita
Slika 7.4.1 Dijagram aktivnosti
FIZIKI MODEL SISTEMA
20
-
8/6/2019 Seminarski_BV_TP
21/30
Obuhvata opis softverskih i hardverskih komponenata sistema. Implementacijaelemenata modela klasa i veza izmeu njih predstavljena je softverskimkomponentama. Prikazani su moduli, odnosno biblioteke klasa, u kojima su klaseiz modela implementirane.
Pored toga prikazane su procesne jedinice raunari na kojima se softverske
komponente izvravaju kao i pratei ureaji skeneri, modemi... potrebni zaizvravanje programa.
Fiziki model se predstavlja dijagramima implementacije dijagramomkomponenti i dijagramom razmetaja.
8.1. Dijagram komponenti
Dijagramom komponenti se prikazuje struktura koda. Predstavlja se grafomkomponenata koje su povezane vezama zavisnosti ili kompozicije.
Posmatrani sistem se realizuje kao Web aplikacija kroz vie softverskih
komponenti, u zavisnosti od sloja aplikacije.Klase poslovnog sloja su razvijene u jeziku JAVA i smetene u biblioteku klasa.Ovom bibliotekom je realizovana poslovna logika sistema koju koristiprezentacioni sloj prilikom pruanja funkcionalnosti korisnicima sistema. Webaplikacija koristi biblioteku klasa preko reference na nju.
Biblioteka klasa
Web aplikacija
Slika 8.1.1. Povezanost sklopova komponenata
Prezentaciona logika je realizovana preko web aplikacije korienjem aktivnihserverskih strana. Takoe za prezentaciju podataka web strane koriste se JSPstrane i klase stilova.
21
-
8/6/2019 Seminarski_BV_TP
22/30
Serverska strana
Bibl ioteka klasa
Web strane Klase sti lova
JSP stranica za prikaz klijentu
Slika 8.1.2. Dijagram komponenti
8.2. Dijagram razmetaja
Dijagram razmetaja predstavlja razmetaj hardverskih elemenata neophodnih zafunkcionisanje sistema. Predstvaljaju se procesorske jedinice kao i drugi ureaji usistemu.
Takoe se mogu prikazati i izvrne softverske komponente koje se izvravaju naposmatranim procesorima.
Za posmatranu aplikaciju dijagram razmetaja izgleda:
Klijent
Server
TCP/IP
Slika 8.1.2. Dijagram razmetaja
Na serverskoj strani se izvravaju serverske strane i biblioteka klasa, a na straniklijenta se izvrava JavaScript i klase stilova. Server i klijent su povezani TCP/IPmrenim protokolom preko koga se alju zahtevi sa klijenta i odgovori sa servera.
22
-
8/6/2019 Seminarski_BV_TP
23/30
9. FIZIKI MODEL BAZE (E-R Dijagram)
Baza podataka za aplikaciju Studentski servisi je isprojektovana tako da se podaci seefikasno dodaju, menjaju i briu, a da se uva njihov integritet i izbegne redudansaImplementirana je u MS SQL serveru. Dodatno je obraena panja na sigurnost
podataka.
FK_predavac_predmet_plan
FK_predavac_profesor
FK_predavac_skol_god
FK_predmet_plan_planovi
FK_predmet_plan_predmet
FK_predmet_plan_semestar
FK_prijava_ispita_ispitni_rok
FK_prijava_ispita_predavac
FK_prijava_ispita_skol_god
FK_prijava_ispita_student_predmet
FK_student_skol_god
FK_student_predmet_ispitni_rok
FK_student_predmet_predavac
FK_student_predmet_predmet_plan
FK_student_predmet_skol_god
FK_student_predmet_studentFK_student_sv_obrazac_student
FK_studira_planovi
FK_studira_semestar
FK_studira_skol_god
FK_studira_student
FK_studira_vrsta_studija
FK_prijava_ispita_smer
FK_PRIJAVA__REFERENCE_SMER
FK_STUDENT__REFERENCE_SMER
FK_PREDAVAC_REFERENCE_SMER
FK_PREDMET__REFERENCE_SMER
FK_STUDIRA_REFERENCE_SMER
FK_STUDENT_REFERENCE_SMER
ispitni_rok
id_rok
rok
redovan
apsolventski
broji_se
tekuci
rok_za_prijavu
sys_ime
sys_datum
smallint
varchar(20)
bit
bit
bit
bit
datetime
varchar(40)
datetime
planovi
id_plan
id_smer
sifra_plana
naziv
id_godina_uvod
sys_ime
sys_datum
smallint
smallint
char(4)
varchar(7)
smallint
varchar(40)
datetime
predavac
id_predavac
id_predmet
id_plan
id_smer
id_semestar
id_profesor
id_skolgod
sme_id_smer
sys_ime
sys_datum
int
int
smallint
smallint
smallint
smallint
int
smallint
varchar(40)
datetime
predmet
id_predmet
sifra_predmeta
naziv_pred
skracenica
sys_ime
sys_datum
int
varchar(15)
nvarchar(70)
varchar(10)
varchar(40)
datetime
predmet_plan
id_predmetid_plan
id_smer
id_semestar
sme_id_smer
pismeno
usmeno
prakticno
ECTS
obavezan
predznanje
fond_predavanja
fond_vezbe
fond_lab_vezbe
fond_seminarski
sys_ime
sys_datum
intsmallint
smallint
smallint
smallint
bit
bit
bit
smallint
bit
bit
smallint
smallint
smallint
smallint
varchar(40)
datetime
prijava_ispita
id_prijava
id_student
id_predmet
id_plan
id_smer
id_semestar
id_predavac
id_skolgod
id_rok
sme_id_smer
pismeno
usmeno
prakticno
datum_prijave
ocena_pismeni
ocena_usmeni
ocena_prakticni
konacna_ocena
polagao
datum_polaganja
sys_ime
sys_datum
int
int
int
smallint
smallint
smallint
int
int
smallint
smallint
bit
bit
bit
datetime
smallint
smallint
smallint
smallint
bit
datetime
varchar(40)
datetime
profesor
id_profesor
prezime
ime
titula
zvanje
sys_ime
sys_datum
smallint
nvarchar(20)
nvarchar(20)
varchar(10)
varchar(30)
varchar(40)
datetime
semestar
id_semestar
sifra_semestra
semestar
sys_ime
sys_datum
smallint
varchar(5)
nvarchar(15)
varchar(40)
datetime
skol_god
id_skolgod
skol_god
tekuca
sys_ime
sys_datum
int
char(7)
bit
varchar(40)
datetime
smer
id_smer
id_prijava
id_student
naziv
skracenica
sys_ime
sys_datum
smallint
int
int
varchar(50)
varchar(5)
varchar(40)
datetime
student
id_student
sifra_studenta
indeks
broj
id_plan
id_smer
id_godina_upisa
upisni_rok
datum_upisa
prezime
ime_oca
ime
korisnicko_ime
lozinka
id_kandidat
prelaznik
diplomirao
ispisan
sys_ime
sys_datum
ima_nalog
nedovrseno
iznos_uplate
int
char(8)
varchar(15)
smallint
smallint
smallint
int
varchar(15)
datetime
nvarchar(20)
nvarchar(20)
nvarchar(20)
varchar(20)
varchar(20)
varchar(10)
bit
bit
bit
varchar(40)
datetime
bit
bit
int
student_predmet
id_student
id_predmet
id_plan
id_smer
id_semestar
id_predavac
id_skolgod
id_rok
sme_id_smer
ocena_pismeni
ocena_usmeni
ocena_prakticnikonacna_ocena
datum_polaganja
naziv_priznatog_ispita
naziv_fakulteta
polozen
priznat
zamena
sys_ime
sys_datum
privremeno
int
int
smallint
smallint
smallint
int
int
smallint
smallint
smallint
smallint
smallintsmallint
datetime
nvarchar(50)
nvarchar(50)
bit
bit
bit
varchar(40)
datetime
bit
student_sv_obrazac
id_student
jmbg
datum_rod
mesto_stanov
adresa_stanov
ptt_stanov
drzava_porekla
mesto_boravka
adresa_boravka
ptt_boravka
strani_jezik
e_mail
kucni_tel
int
char(13)
datetime
nvarchar(30)
nvarchar(30)
char(5)
nvarchar(30)
nvarchar(30)
nvarchar(30)
char(5)
nvarchar(15)
varchar(30)
varchar(20)
-
8/6/2019 Seminarski_BV_TP
24/30
10.1. Instalacija baze podataka
1. Iz Enterprise Manager-a SQL Servera 2000 napraviti novu bazu podataka.Nazvati je info-proba. Napraviti joj 2 data file-a: info-proba_Data (naPRIMARY fajl grupi) I info-proba_nData (na SECONDARY fajl grupi).
2. Uraditi restore baze podataka iz fajla \\INSTALL\baza \info-proba.bak.3. Dodati korisnika student sa password-om student I dodati mu prava pristupadbdatareader I dbdatawritter nad info-proba bazom podataka.
10.2. Instalacija Java programskog okruenja
Program se izvrava na Apache Tomcat Web serveru, koji, da bi radio, zahtevanajpre instalaciju Java programskog okruenja.
1. Na disku iz foldera \\ INSTALL\j2sdk-1_4_2-nb-3_5_1-bin-windows pokrenuti fajlj2sdk-1_4_2-nb-3_5_1-bin-windows.exe. Pojavie se wizard za instalaciju i pratitikorake do kraja.
10.3. Instalacija JDBC drajvera za SQL Server
Za povezivanje sa bazom podataka na SQL Serveru Stdentski servisi koriste JDBCdrajver, koji se instalira na sledei nain:
1. Na disku iz foldera \\INSTALL\jdbcDriverForSQLServer pokrenuti fajlsetup.exe. Pojavie se wizard za instalaciju i pratiti korake do kraja.
10.4. Instalacija Apache Tomcat Web servera
Kao podrka Java Servlet-JSP tehnologiji potreban je adekvatan Web server kojipodrava ovu tehnologiju. Najbolje reenje prua Apache Tomcat Web server koji seinstalira na sledei nain:
1. Na disku iz foldera \ \INSTALL\jakarta-tomcat-4.1.18pokrenuti fajl tomcat-4.1.18.exe.
U sluaju da instalacija Apache Tomcat Web servera ne moe da pronae instalacijuJava programskog okruenja, javie Vam greku. Ova greka nastaje u sluaju daJAVA_HOME environment varijabla nije dobro definisana. JAVA_HOME environmentvarijabla predstavlja putanju do foldera instalacije Java programskog okruenja I
postavlja se na sledei nain:1. Desnim tasterom mia izaberite My Computer, pa zatim properties. Pojavie seprozor za podeavanje kao na slici 10.4.1.
24
http://smb//INSTALL/bazahttp://smb//INSTALL/baza -
8/6/2019 Seminarski_BV_TP
25/30
Slika 10.4.1. Podeavanje svojstava sistema Apache Tomcat Web servera
2. U prozoru (slika 10.4.2.) izaberite karticu Advanced, a zatim EnvironmentVariables. Otvorie se prozor za podeavanje kao na slici:
Slika 10.4.2. Podeavanje varijabli okruenja
Ako ne postoji varijabla JAVA_HOME, pritisnite dugme NEW i u prozoru zadefinisanje varijable unesite sledee podatke:
Slika 10.4.3. Podeavanje sistemskih promenljivih
25
-
8/6/2019 Seminarski_BV_TP
26/30
Ako ve postoji JAVA_HOME varijabla, pritisnite dugme EDIT, a zatim unesitekorektnu putanju do instalacije Jave. NAPOMENA: Ako ste prilikom instalacije Javaprogramskog okruenja izabrali neki drugi folder za instalaciju, umesto putanje naslici unesite putanju koja odgovara folderu nstalacije u Vaem sluaju.
10.5. Kopiranje programa na server
Apache Tomcat Web server ima strogo definisan file-sistem, odnosno svaki folder ifajl u ovom sistemu ima svoju ulogu.Svaka aplikacija koja treba da se izvrava na Apache Tomcat Web serveru, mora bitipostavljena u folder webapps. U ovom sluaju je potrebno sa diska iz foldera\\INSTALL iskopirati kompletan folder StudentskiServisi na lokaciju \\webappsApache Tomcat Web servera.
10.6. Podeavanje parametara aplikacije i konfigurisanje Apache Tomcat
Web servera
10.6.1.Kopiranje potrebnih .jar fajlova
Da bi Tomcat Web server imao na raspolaganju biblioteke koje se koriste uprogramu, potrebno je da one postoje u njegovom folderu \\conf\lib . Sve bibliotekekoje koristi program se nalaze na instalacionom disku u folderu\\INSTALL\JAR_FAJLOVI. U sluaju da neka od ovih boblioteka nedostaje uTomcat-ovom \\conf\lib folderu, potrebno je iskopirati sa diska. Biblioteke imajuekstenziju .jar.
10.6.2.Podeavanje fajla server.xml
Tomcat Web server se konfigurie editovanjem fajla server.xml koji se nalazi ufolderu \\ conf. Svaka aplikacija koja se izvrava na Tomcat Web serveru mora bitidefinisana u fajlu server.xml kao novi context.
10.6.3.Definisanje korisnika sistema - Implementacija JNDI Realma
JNDIRealm je implementacija Tomcat Realm interfejsa i trai korisnike u LDAPdirectory serveru, kome se pristupa pomou JNDI provajdera (tipino, standardnogLDAP provajdera koji je dostupan u okviru JNDI API klasa). Ovakav Realm podravavie naina pristupa upotrebi direktorijuma za autentifikaciju.
Konekcija ka direktorijumu definie se pomou connectionURL konfiguracionogatributa. To je URL iji je format definisan od strane JNDI provajdera. To je najeeLDAP URL koji specificira ime domena directory servera na koji se konektujemo iopcionalno broj porta.
-
8/6/2019 Seminarski_BV_TP
27/30
roleName="cn"roleSearch="(uniqueMember={0})"/>
U opisanom sistemu je kao Realm upotrebljen Active Directory (baza podataka
korisnika na domen kontroleru lokalne raunarske mree), s obzirom da studentprilikom upisa u kolu odmah dobija nalog na lokalnoj raunarskoj mrei. Ovakavnain autentifikacije je izuzetno praktian, jer student ima istu lozinku za pristuplokalnoj mrei i Studentskim servisima (ne mora da pamti vie lozinki), dok s drugestrane, administracija je olakana i svedena na odravanje naloga studenata nalokalnoj mrei.
Na lokalnoj mrei svi studenti pripadaju grupi studentiVETS, koja je ujedno i jedinaautorizovana da pristupi Studentskim servisima. Veza izmeu Active directorya isame baze informacionog sistema uspostavlja se preko atributa "korisnicko_ime" utabeli "student" baze podataka, koji se formira po ablonu ime-smer-indeks iidentian je studentovom korisnikom imenu na lokalnoj mrei. Ovaj atribut je
jedinstven (ne mogu se uneti dva ista korisnika imena), pa je time osigurano da zasvakog autentifikovanog studenta postoji najvie jedan student u bazi podataka.Kada se student prijavi na studentske servise, najpre se Java metodomgetRemoteUser() dolazi do njegovog imena, a zatim se to ime uporeuje sa imenomu bazi. Ovo poreenje moe da rezultuje sa dva odgovora:1. Student je pronaen u bazi i prikazuju se podaci o njemu (prezime, ime, indeks,smer, semestar...) i2. Student nije pronaen u bazi (ima nalog na lokalnoj mrei, ali podaci o njemu nisuuneti u bazu podataka).
Kada se jednom autentifikuje korisniku su na raspolaganju svi studentski servisi dokraja sesije. Sesija se zavrava kada korisnik pozove servis Odjavi se (Logout) koji
unitava objekat sesije, kao i sve atribute koji su upotrebljeni u sesiji. Ako korisnik 30minuta nije imao nikakvu aktivnost objekat sesije se unitava i korisnik ponovo morapristupiti procesu autentifikacije.
10.6.4. Podeavanje fajla Web.xml
Fajl web.xml se nalazi u folderu ROOT APLIKACIJE\WEB-INF i slui zakonfigurisanje same aplikacije. U ovom fajlu se, izmeu ostalog, definiu nazivi klasaservleta koje program ima na raspolaganju, klase servleta koje podleu sigurnosnimproverama, nain implementacije sigurnosti.
11. ZAKLJUAK
Strukturno programiranje je do skora bilo osnova za razvoj softvera. Programeri supisali standardne linije koda kako bi izveli neke operacije, a zatim su taj kod kopirali usve aplikacije koje su pisali kad im je bilo potrebno da izvedu tu operaciju. Ovako seuspevalo smanjiti vreme za pisanje aplikacija ali su problemi nastajali kada je bilopotrebno izmeniti kod jer je to podrazumevalo izmenu u svim aplikacijama u koje jetaj kod kopiran.
27
-
8/6/2019 Seminarski_BV_TP
28/30
Objektno-orijentisano programiranje ima za cilj da ovaj problem rei. Primenjujuikoncepte objektno-orijentisanog programiranja programeri kreiraju blokove koda kojise zovu objektima. Ovo objekti se koriste od strane razliitih apliakcija. Ako nekiobjekat treba promeniti, programer to ini samo jednom, na posmatranom objektu, apromene su vidljive svuda gde se taj objekat koristi.
Tradicionalno, pristup u razvoju aplikacija vodi brigu o tome koje e informacijesistem da uva i obrauje. Primenom ovog pristupa dizajnira se baza podataka kojae te informacije da smeta i dalje se izrauju ekranske forme za unos podataka iizvetaji iz baze. Ovaj pristup se zove pristup orijentisan ka podacima.
Sistem koji je orijentisan ka podacima moe promene u bazi podataka da podneselako, ali promene u poslovnim pravilima ili u ponaanju sistema nije lakoimplementirati.
Objektno-orijentisana paradigma daje odgovor na ovaj problem. Objektno-orijentisani pristup razvoju se fokusira i na informacije i na ponaanje sistema. Naovaj nain se razvija sistem koji je fleksibilan i na promene informacije i ponaanja.
Opis klase u sebi sadri i informacije i ponaanje objekata nastalih iz klase.
28
-
8/6/2019 Seminarski_BV_TP
29/30
LITERATURA
[1] J. Hunter, W. Crawford: Java Servlet Programming, OREILLY, October1998.
[2] R. Viera, Programiranje SQL Server 2000, CET Computer Equipment and Trade,2001.
[3] I. Stojanovi, D. Surla: Uvod u objedinjeni jezik modeliranja, Grupa zainformacione tehnologije Novi Sad, 1999
[4] http://jakarta.apache.org/
[5] http://java.sun.com/j2se/
29
http://jakarta.apache.org/http://java.sun.com/j2se/http://jakarta.apache.org/http://java.sun.com/j2se/ -
8/6/2019 Seminarski_BV_TP
30/30
SADRAJUVOD ....................................................................................................................................................... .22. OPIS APLIKACIJE STUDENTSKIH SERVISA ................................................................................ .2
2.1. Baza podataka ............................................................................................................................... ..2
2.2 Aplikacija Studentski servisi ............................................................................................................32.2.1.Prijava laboratorijskih vebi i kolokvijuma..............................................................................42.2.2 Prijava ispita .............................................................................................................................42.2.3. Pregled izabranih predmeta......................................................................................................42.2.4. Promena podataka....................................................................................................................42.2.5. Pregled izabranih predmeta......................................................................................................42.2.6. Pomo u korienju aplikacije.................................................................................................52.2.7. Poetna strana..........................................................................................................................52.2.8. Odjavi se (Logout)...................................................................................................................5
3. DIZAJN APLIKACIJE ...................................................................................................................... ....54. TROSLOJNA ARHITEKTURA APLIKACIJE ....................................................................................65. MODELIRANJE FUNKCIONALNOSTI SISTEMA ...........................................................................7
5.1. Uesnici ...........................................................................................................................................75.2. Sluajevi korienja (Use case) .......................................................................................................75.2.1. Prijava korisnika na sistem......................................................................................................85.2.2. Izbor aktivnosti prijava ispita...................................................................................................95.2.3. Izbor aktivnosti pregled prijavljenih ispita............................................................................115.2.4. Odjava sa sistema...................................................................................................................12
6. STATIKI MODEL SISTEMA ..........................................................................................................126.1.Klase sistema ..................................................................................................................................126.2. Struktura klasa sistema ..................................................................................................................13
6.2.1. Dijagram klasa za aktivnost prijava na sistem.......................................................................136.2.2. Dijagram klasa za aktivnost prijava ispita.............................................................................146.2.3 Dijagram klasa za aktivnost pregled prijavljenih ispita..........................................................156.2.4. Dijagram klasa za odjavu sa sistema......................................................................................15
7. DINAMIKI MODEL SISTEMA .......................................................................................... ........ ....167.1.Dijagram sekvence (Sequence diagram) ........................................................................................16
7.1.1 Dijagram sekvenci za aktivnost prijava na sistem..................................................................167.1.2. Dijagram sekvenci za aktivnosti prijava ispita......................................................................177.1.3. Dijagram sekvenci za aktivnost pregled prijavljenih ispita...................................................187.1.4. Dijagram sekvenci za odjavu sa sistema................................................................................18
7.2.Dijagram kolaboracije ....................................................................................................................197.3. Dijagram stanja ........................................................................................................................... ..197.4. Dijagram aktivnosti .......................................................................................................................19
FIZIKI MODEL SISTEMA ..................................................................................................................208.1. Dijagram komponenti .......................................................................................................... ........218.2. Dijagram razmetaja ............................................................................................................. ........22
9. FIZIKI MODEL BAZE (E-R Dijagram) ...........................................................................................2310. INSTALACIJA PROGRAMA STUDENTSKI SERVISI .................................................................2310.1. Instalacija baze podataka ................................................................................................... ........ .2410.2. Instalacija Java programskog okruenja ................................................................................ .....2410.3. Instalacija JDBC drajvera za SQL Server ...................................................................................2410.4. Instalacija Apache Tomcat Web servera .....................................................................................2410.5. Kopiranje programa na server ....................................................................................................26
10.6.1.Kopiranje potrebnih .jar fajlova............................................................................................2610.6.2.Podeavanje fajla server.xml.................................................................................................2610.6.3.Definisanje korisnika sistema - Implementacija JNDI Realma............................................2610.6.4. Podeavanje fajla Web.xml..................................................................................................27
11. ZAKLJUAK ............................................................................................................................. .......27LITERATURA ...................................................................................................................... ......... ........ .29