-
Notifications
You must be signed in to change notification settings - Fork 0
2. zadaća
U ovom dijelu opisujemo slučajeve korištenja koji predstavljaju funkcionalne zahtjeve sustava, uključujući interakcije između različitih tipova korisnika kao što su zaposlenika, administratora ili krajnjeg korisnika i sustava. Pristup naprednim funkcionalnostima aplikacije koje se odnose na upravljanje sustavom, poput generiranja izvještaja ili upravljanja narudžbama imaju tipovi korisnika poput administratora ili zaposlenika. S druge strane, krajnji korisnik koristi aplikaciju za pristup svim funkcijama koje su mu dostupne, kao što su pregledavanje jelovnika, naručivanje hrane, recenziranje obroka i slično.
Opis slučajeva korištenja:
Prikaz trenutnog jelovnika (FZ01)
- Korisniku se omogućuje pregled trenutnog jelovnika s dostupnim opcijama za obroke uz ograničenje da su prikazani samo aktualni jelovnici za određeni dan i vrijeme.
Naručivanje hrane putem aplikacije (FZ02)
- Korisnik pregledava dostupne obroke s jelovnika, odabire željene obroke, vrši narudžbu, te prati status svoje narudžbe.
Recenziranje obroka (FZ03)
- Korisnik ocjenjuje i ostavlja komentare o obrocima koje je konzumirao, pružajući povratne informacije za poboljšanje usluge.
Praćenje statusa narudžbi (FZ04)
- Korisnik prati status svojih narudžbi u sustavu, od trenutka narudžbe do isporuke.
Prijava u sustav (FZ05)
- Korisnik se prijavljuje u sustav putem identifikacijske kartice ili ručno putem korisničkog identifikatora i lozinke.
Evidentiranje narudžbi (FZ06)
- Zaposlenici evidentiraju nove narudžbe i povezuju ih s odgovarajućim korisnicima.
Generiranje izvještaja (FZ07)
- Zaposlenici generiraju izvještaje o popularnosti jela, brzini pripreme i drugim relevantnim statističkim podacima.
Provjera valjanosti studentskih prava (FZ08)
- Sustav provjerava valjanost studentskih prava prilikom prijave korisnika.
Dobivanje bodova za ocijenjene narudžbe (FZ09)
- Korisnici dobivaju bodove za svaku ocijenjenu narudžbu kako bi se potaknula aktivna participacija i povratne informacije.
U ovom slučaju korištenja, opisujemo postupak narudžbe hrane putem aplikacije, što je ključna funkcionalnost sustava. Korisnik, u ulozi krajnjeg korisnika, koristi aplikaciju kako bi pregledao dostupne obroke, odabrao željene opcije, izvršio narudžbu te pratio status narudžbe. Ovaj proces omogućuje korisnicima brzo i jednostavno naručivanje hrane te praćenje njezine isporuke. Osim toga, razmatramo i moguće iznimke koje se mogu pojaviti tijekom procesa narudžbe te načine kako sustav reagira na njih.
Naziv | Opis |
---|---|
Naručivanje hrane putem aplikacije | Korisnik pregledava dostupne obroke s jelovnika, odabire željene obroke, vrši narudžbu, te prati status svoje narudžbe. |
Sudionici | Korisnik (krajnji korisnik) |
Okidači | Korisnik pokreće aplikaciju i odabire opciju za narudžbu hrane. |
Preduvjeti | - Korisnik je prijavljen u aplikaciju. - Jelovnik s dostupnim obrocima je ažuriran i dostupan u sustavu. |
Stanje sustava nakon uspješnog izvršenja | Narudžba je zaprimljena od strane sustava i proslijeđena na obradu. |
Iznimke | - Korisnikova narudžba ne može biti obrađena zbog tehničkih problema s aplikacijom ili sustavom za prihvaćanje narudžbi. - Odabrani obrok nije dostupan u trenutnom jelovniku. - Narudžba nije uspjela biti procesirana zbog neispravnih podataka ili komplikacija s plaćanjem. |
Stanje sustava nakon pojave iznimke | Sustav obavještava korisnika o problemu koji je nastao te pruža instrukcije ili alternativne opcije ako su dostupne. |
Standardni proces | (1) Korisnik pristupa opciji za narudžbu hrane unutar aplikacije. (2) Korisnik pregledava dostupne obroke na jelovniku. (3) Korisnik odabire željene obroke i dodaje ih u košaricu. (4) Korisnik unosi podatke za dostavu i plaćanje. (5) Korisnik potvrđuje narudžbu. (6) Sustav zaprima i potvrđuje narudžbu. (7) Sustav obrađuje narudžbu i šalje je na dostavu. (8) Korisnik prati status svoje narudžbe. |
Alternativni procesi | - Narudžba se otkazuje ili mijenja prije nego što je poslana na obradu. |
Na takozvanoj početnoj stranici se nalaze tri opcije između kojih krajnji korisnik može birati, a to su Ručak, Večera i Narudžbe.
Nakon što krajnji korisnik odabere jednu od opcija, što je u ovom slučaju ručak, ispisuju mu se tri meni od kojih su dva mesna i jedan vegetarijanski.
Kad krajnji korisnik stisne tipku Detalji ispod Meni 1 otvara mu cijena i sastojci u Meniju 1. Korisnik izlazi iz ove opcije sa strelicom u gornjem lijevom uglu.
Nakon što je krajnji korisnik odabrao opciju Meni 1 otvara mu se prozor Košarica u kojoj on može vidjeti stavke koje je odabrao, a isto tako može odabrati želi li povećati ili smanjiti količinu te želi li dodati još koju stavku.
Nakon što je stisnu tipku Plaćanje otvara mu se novi prozor u kojem bira način kojim želi platiti. Kad odabere način potrebno je unijeti podatke, ako prije nisu već uneseni.
Na kraju je Potvrda narudžbe u kojoj se šalje obavijest kupcu da je račun plaćen i da je narudžba u pripravi. Također ispisuje što je naručio i kolika je cijena.
No ako na početnoj stranici krajnji kupac odabere Narudžbe onda je postupak malo drugačiji za razliku od ručka i večere jer je ponuda drugačija. Tako se može birat između Pizze i Mesa koje je slično menijima.
Nakon što kupac odabere Pizzu tad mu se ispišu sve dostupne pizze i također je moguće vidjeti detalje o pizzi odnosno sastojke i cijenu, a zatim postupak je isti.
Na dijagramu slijeda "Naručivanje hrane putem aplikacije" započinje interakcija korisnika s aplikacijom kada korisnik odabere jednu od opciju na početnom zaslonu. Nakon toga, aplikacija prikazuje korisniku dostupne obroke koje može pregledati. Korisnik zatim odabire željeni obrok i dodaje ga u košaricu pritiskom na odgovarajuću opciju. Aplikacija omogućuje korisniku pregled sadržaja košarice, uključujući odabrane obroke i njihovu količinu. Korisniku je također omogućeno dodavanje dodatnih stavki prije nego što nastavi s postupkom plaćanja. Nakon što korisnik pregleda sadržaj košarice, pritisne tipku "Plaćanje". Aplikacija tada prikazuje korisniku opcije plaćanja. Korisnik odabire željeni način plaćanja i unosi potrebne podatke, kao što su podaci o kartici. Kada korisnik uspješno unese potrebne podatke za plaćanje, aplikacija provjerava valjanost podataka i zaprima potvrdu plaćanja. Ako plaćanje bude uspješno, korisnik prima potvrdu o uspješnoj narudžbi, a aplikacija šalje narudžbu na pripremu. U suprotnom, korisnik prima obavijest o neuspješnom plaćanju i može ponoviti postupak plaćanja. Nakon uspješne narudžbe, aplikacija osvježava sučelje kako bi prikazala status narudžbe i obavijestila korisnika o daljnjim koracima.
Na početnoj stranici korisnik ima tri mogućnosti odabira: "Ručak", "Večera" ili "Narudžbe". Kada korisnik odabere jednu od mogućnosti, otvaraju mu se tri menija. Nakon što odabere željeni meni, može pritisnuti opciju "Detalji" kako bi vidio sastojke i cijenu odabranog menija, a ako želi izaći iz te opcije stisne strelicu u gornjem lijevom uglu. Kada korisnik odabere meni, otvara se košarica koja prikazuje odabrani meni i nudi opciju dodavanja dodatnih stavki. Na košarici se nalazi i tipka "Plaćanje". Kada korisnik pritisne tipku "Plaćanje", otvara se stranica s odabirom između plaćanja Visa karticom ili PayPal-om. Nakon odabira, korisnik unosi podatke potrebne za kartično plaćanje. Nakon što unese podatke, potvrđuje ih i šalje zahtjev za plaćanje. Kada je plaćanje uspješno naplaćeno, korisnik prima obavijest da je narudžba u pripremi.
Korisnik može pregledavati različite menije, ali svaki meni nije nužno vezan uz određenog korisnika. Korisnik može dodavati stavke u košaricu, ali košarica nije nužno vezana uz određenog korisnika. Korisnik može izvršiti plaćanje, ali metoda plaćanja nije nužno vezana uz određenog korisnika. Narudžba je čvrsto povezana s tim korisnikom; ako korisnik prestane postojati, također i njegova narudžba. Meni sadrži stavke, ali stavke mogu postojati i neovisno o meniju. Košarica sadrži stavke, ali stavke mogu postojati i neovisno o košarici. Plaćanje nema dodatnih veza s drugim klasama. Narudžba sadrži stavke, koje su čvrsto povezane s tom narudžbom; ako narudžba prestane postojati, također i njene stavke.
Naziv | Opis |
---|---|
Naziv slučaja korištenja | Generiranje izvještaja |
Kratki opis | Postupak generiranja izvještaja o različitim statističkim podacima vezanim uz uslugu naručivanja hrane. |
Sudionici | Osoblje aplikacije za naručivanje hrane |
Okidači | Potreba za dobivanjem relevantnih statističkih informacija o usluzi naručivanja hrane |
Preduvjet | Osoblje je prijavljeno u sustav |
Postupak | 1. Osoblje otvara funkcionalnost za generiranje izvještaja unutar aplikacije. 2. Sustav prikazuje opcije dostupnih izvještaja koje osoblje može generirati. 3. Osoblje odabire željeni tip izvještaja. 4. Sustav izračunava relevantne statističke podatke na temelju odabranog izvještaja. 5. Generirani izvještaj prikazuje se osoblju u obliku tablice, grafikona ili drugog prikladnog formata. 6. Osoblje ima mogućnost spremanja ili ispisivanja izvještaja za daljnju analizu ili distribuciju. |
Alternativni tokovi | - Ako nema dovoljno podataka za generiranje određenog izvještaja, sustav obavještava osoblje o nedostatku podataka i predlaže ponovno izvršavanje izvještaja kasnije kada će biti dostupni potrebni podaci. |
Iznimke | - U slučaju tehničkih poteškoća ili nedostupnosti podataka, sustav obavještava osoblje o problemu i pruža upute za rješavanje ili kontaktiranje tehničke podrške. |
Korisnik stišće gumb Generiraj izvještaj u izborniku.
Aplikacija generira izvještaj.
Dijagram slijeda za Generiranje izvještaja prikazuje postupak generiranja izvještaja putem aplikacije. Korisnik, nakon što odabere opciju za generiranje izvještaja, interagira s aplikacijom putem sučelja koje omogućuje odabir parametara izvještaja. Nakon što korisnik odabere željene parametre, aplikacija generira izvještaj koristeći te parametre i prikazuje ga korisniku. Korisnik tada ima mogućnost pregleda izvještaja, te opcije za spremanje. U slučaju eventualnih grešaka ili problema prilikom generiranja izvještaja, aplikacija obavještava korisnika o tome i pruža odgovarajuće upute za rješavanje problema. Nakon što korisnik završi s pregledom ili obradom izvještaja, završava se interakcija s aplikacijom.
Korisnik započinje proces odabirom željenog tipa izvještaja iz ponuđenih opcija. Nakon što korisnik odabere tip izvještaja, aplikacija prikazuje formu ili sučelje putem kojeg korisnik može dodatno specificirati parametre izvještaja, ako je potrebno. Korisnik unosi ili odabire opcije i parametre koji će biti korišteni prilikom generiranja izvještaja, kao što su vremenski raspon, kategorije podataka ili filtri. Na temelju odabranih opcija, aplikacija generira izvještaj koristeći dostupne podatke i algoritme za obradu informacija. Generirani izvještaj prikazuje se korisniku na sučelju aplikacije, omogućujući mu pregled sadržaja i analizu podataka. Nakon pregleda izvještaja, korisnik može odabrati opciju spremanja izvještaja na uredaj ili brisanja.
Dijagram klasa Generiranje izvještaja sastoji se od tri osnovne klase: Korisnik, Izvještaj i Aplikacija. Klasa Korisnik predstavlja korisnika aplikacije koji ima ovlasti za generiranje izvještaja. Klasa Izvještaj predstavlja sam izvještaj koji je generiran od strane aplikacije. Klasa Aplikacija predstavlja centralni dio aplikacije koji omogućuje korisniku generiranje izvještaja. Između klase Korisnik i Aplikacija postoji asocijacija koja označava da korisnik koristi aplikaciju za generiranje izvještaja. Između klase Aplikacija i Izvještaj također postoji asocijacija koja označava da aplikacija generira izvještaje na zahtjev korisnika. Klasa Izvještaj je agregirana u klasu Aplikacija što znači da Aplikacija sadrži Izvještaj kao svoj dio, ali Izvještaj može postojati i neovisno o Aplikaciji.
Aplikacija sadrži funkcionalnosti za upravljanje narudžbama, generiranje izvještaja i interakciju s korisnicima. Uz Aplikaciju, postoje još dvije klase: Izvještaj i Narudžba. Izvještaj je odgovoran za generiranje izvještaja o narudžbama i prodaji hrane, dok Narudžba predstavlja pojedinačnu narudžbu koju je korisnik izvršio putem aplikacije. S druge strane, korisnici interakciju s aplikacijom ostvaruju putem klase Korisnik, koja omogućuje pregled menija, dodavanje stavki u košaricu, izvršenje plaćanja i praćenje statusa narudžbe. Meni se sastoji od stavki, što je predstavljeno klasama Meni i Stavka. Meni sadrži različite opcije obroka koje korisnik može pregledati, dok Stavka predstavlja pojedinačnu stavku u meniju s nazivom, sastojcima i cijenom. Košarica je također važan dio sustava, a omogućuje prikaz odabranih obroka i dodavanje dodatnih stavki.
Ovo je ERA model napravljen na temelju dvaju funkcionalnih zahtjeva, a to su Narucivanje hrane putem aplikacije i Generiranje izvjestaja. Entitet Izvjestaj sastoji se od izvjestajID koji je primary key i od datuma, sadrzaja i korisnikID koji sluzi kao vanjski kljuc za entitet Korisnik. U Entitetu Korisnik korisnikID je primarni kljuc dok su ostali ime, adresa i email tipa podatka varchar. Korisnik i Izvjestaj su u vezi jedan naprema više. U entitetu Meni primarni kljuc je meniID te također nalaze tipObroka i dva vanjska kljuca kosaricaID i korisnikID. Korisnik i Meni su u vezi jedan naprema više. Entitet košarica se sastoji od samo primarnog kljuca kosaricaID. Meni i Kosarica su u vezi više naprema jedan. Entitet Stavka se sastoji od stavkaID koji je primarni kljuc te od naziv, sastojci, cijena i meniID koji je vanjski kljuc. Meni i Stavka su u vezi jedan naprema više. Entitet NarudzbaStavka se sastoji od dva vanjsk kljuca narudzbaID i stavkaID. Stavka i NarudzbaStavka su u vezi jedan naprema više. Zatim je Entitet Narudzba u kojoj se nalazi narudzbaID kao primarni kljuc te datum, status, stavkeNarudzbe i korisnikID kao vanjski kljuc. Korisnik i Narudzba su u vezi jedan naprema vise. NarudzbaStavka i Narudzba su u vezi vise naprema jedan.