PSI/Jun 2019

Izvor: SI Wiki
Pređi na navigaciju Pređi na pretragu

Junski ispit 2019. godine održan je 18. juna. Trajao je 180 minuta, ukupno je nosio 60 bodova (teorijski deo 16, praktični 44). Štampana literatura nije bila dozvoljena, a radni okviri koji su se koristili na praktičnom delu bili su CodeIgniter i Laravel. Tekst ispita, kao i fajlovi za implementaciju i skript baze dostupni su sa stranice predmeta.

1. zadatak

Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Postavka

  1. Napraviti mapu dijaloga za dati dijalog pretrage sadržaja sa nekog sajta.
  2. Opisati koristeći jezik Gherkin neke scenarije pretrage iz navedenog dijaloga.

Rešenje

2. zadatak

Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Postavka

Informacioni sistem neke škole ima 4 kategorije ljudskih aktera koji interaguju sa sistemom kroz grafički korisnički interfejs i sledeće slučajeve upotrebe:

Slučajevi upotrebe
Slučaj korišćenja Kategorija
Ažuriranje liste predavača prosečan
Ažuriranje liste predmeta prosečan
Ažuriranje plana angažovanja kompleksan
Kreiranje nove školske godine jednostavan
Ažuriranje održane nastave prosečan
Računanje varijabile prosečan
Kreiranje rasporeda časova kompleksan
  1. Odrediti UUCP.
  2. Ako je TCP=0.89, a ECF=1.22, dok je PHM=28, odrediti UCP i Effort.

Rešenje

3. zadatak

Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.

Postavka

Prikazati dijagram sekvence korišćenja unit of work u varijanti kada pozivalac registruje promenjeni objekat. Kratko objasniti dijagram.

Rešenje

4. zadatak

Postavka

Data je specifikacija informacionog sistema za vinske kuće i ljubitelje vina. U sistemu postoje tri tipa korisnika: neregistrovani korisnici, registrovane vinske kuće (vinarije) i osobe koje su ljubitelji vina. Za vinarije se u sistemu čuvaju naziv, grad, zemlja porekla, poreski identifikacioni broj (PIB, devetocifreni ceo broj), adresa epošte, koja je jedinstveno korisničko ime, i lozinka. Za osobe koje su ljubitelji vina u sistemu treba čuvati korisničko ime (odnosno adresu e-pošte), lozinku, ime, prezime, zemlju, grad, adresu i jedinstveni matični broj građana (13-cifreni broj, od kojih prve dve cifre predstavljaju cifre dana rođenja, sledeće dve cifre meseca rođenja, a naredne tri cifre poslednje tri cifre iz godine rođenja).

Vinarije mogu unositi u sistem svoja vina koja proizvode. Svako vino ima naziv (koji ne mora biti jedinstven), tip (belo, crveno, roze, penušavo), tačno jednu sortu grožđa (od koje se pravi), godinu berbe, broj proizvedeih flaša i cenu u RSD (po flaši). Sorte grožđa se čuvaju u šifrarniku sorti u bazi. Tip vina se ne čuva zasebno u bazi. Takođe, vinarije mogu da učestvuju na nekom događaju tako što se prijave za učešće na istom. Postoje 2 tipa događaja: sajmovi i turističke manifestacije. Događaji ne moraju imati jedinstvene nazive. Sajam ima mesto održavanja, datum održavanja i vreme od kada do kada je otvoren. Za učešće na svakom sajmu, vinarija mora uplatiti kotizaciju (cenu učešća). Manifestacije imaju svoj naziv, mesto održavanja, datum početka i datum kraja (obično traju nekoliko dana) i adresu izložbenog prostora. Učešće na manifestaciji je besplatno za vinarije (kotizacija = 0 RSD). Vinarija kada popuni prijavu za sajam ili turističku manifestaciju, mora odabrati i sa kojim svojim vinima će učestvovati na događaju za koji se prijavljuje. Uz prijavu učešća, vinarija mora prijaviti najmanje 3 svoja vina.

Osobe koje su ljubitelji vina mogu nakon što se uloguju na sistem da vrše pretraživanje vina po nazivu, po tipu i/ili po zemlji porekla. Treba omogućiti osobama da pretraživanje vrše samo po jednom ili po više kriterijumu istovremeno. Kada dobije listu dobijenih rezultata pretrage, osoba može da odabere određeno vino i vidi osnovne detalje o njemu. Osoba može na toj strani da vidi prosečnu ocenu odabranog vina i komentare koje su pisale druge osobe. Takođe, on može na posebnoj veb strani da unese svoju ocenu (od 1 do 5) i opciono doda svoj komentar. Pored svakog komentare treba prikazati ime osobe koja je ostavila komentar, zemlju odakle je ta osoba, ocenu koju je osoba dala, kao i datum i vreme ostavljanja komentara. Srednju ocenu vina ispisati iznad svih komentara. Korisnik može samo jednom oceniti vino i dati komentar, a za svaki sledeći pokušaj treba mu to onemogućiti, ispisivanjem odgovarajuće poruke ili prostom zabranom takve mogućnosti (i na nivou baze i sistema). Vina koja se osobi sviđaju mogu biti dodata u njegovu listu omiljenih vina, odabirom dugmeta „Dodaj u moja omiljena“.

Ljubitelj vina može na zasebnoj veb strani na osnovu adrese e-pošte ili na osnovu imena i prezimena, da pronađe druge osobe ljubitelje, korisnike sistema. Nakon popunjene i izvršene forme za pretraživanje korisnika, pored svake osobe koja se nalazi u dobijenoj tabeli rezultata pretrage, postoji dugme „Dodaj prijatelja“, kojim osoba počinje da prati tu odabranu osobu i može pogledati njegov/njen profil sa svim ocenama i komentarima vina, za koje je taj prijatelj dao ocenu ili komentar.

  1. Realizovati dijagram slučajeva korišćenja prema opisanoj specifikaciji sistema. Očekivani rezultat zad. 4a): nacrtati realizovan dijagram na priloženom papiru ili u alatu StarUML.
  2. Na nivou relacione baze podataka, date u SQL skriptajun.sql, utvrditi da li je baza i da li su podaci u bazi u skladu sa gore opisanom specifikacijom. Uraditi sve izmene, kako bi baza podataka odgovarala ovim korisničkim zahtevima. Modifikovanu bazu podataka popuniti podacima, neophodnim za testiranje tačke c). Očekivani rezultat zad. 4b): skript modifikovane baze podataka skriptajunGGGGBBBB.sql
  3. U alatu NetBeans IDE, realizovati MVC (Model-View-Controller) aplikaciju korišćenjem programskog jezika PHP. Implementaciju je moguće raditi korišćenjem objektno-orijentisanog PHP koda ili korišćenjem CodeIgniter ili Laravel okvira. Potrebno je implementirati isključivo deo sistema koji se odnosi na pretraživanje vina od strane osoba ljubitelja vina i dodavanje ocene i komentara odabranom vinu, nakon uspešne pretrage i odlaska na veb stranu tog odabranog vina. U ovoj tački se podrazumeva da osoba već postoji u sistemu. Obuhvatiti sve scenarije i za uspešna i za neuspešna pretraživanja. Očekivani rezultat zad. 4v): projekat PHP implementacije opisanog dela aplikacije (ukoliko se radi u radnom okviru, prekopirati takođe čitav projekat)
  4. Nacrtati dijagram ovog veb softverskog sistema (WAE) koji prikazuje serverske komponente (M,C) i klijentske komponente (V), kao i sve potrebne HTML forme opisane specifikacije za oba tipa korisnika sistema. Očekivani rezultat zad. 4g): nacrtati realizovan dijagram na priloženom papiru ili u alatu StarUML.

Rešenje

  • CodeIgniter projekat i SQL skripta
    • Za pokretanje potrebno je sledeće:
      1. Pokrenuti SQL skriptu koja će naprarviti bazu i popuniti je podacima
      2. U app/Config/Database.php izmeniti kredencijale za bazu sa is1 / tubic na koristnika koji postoji i njegovu lozinku
      3. Imati Composer instaliran
      4. Pokrenuti composer install kako bi se instalirali potrebni paketi za projekat
      5. Pokrenuti php spark serve
      6. Posetiti http://127.0.0.1:8080