seminarski_bv_tp

Upload: simon-janos

Post on 08-Apr-2018

220 views

Category:

Documents


0 download

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