2. Analiza zahtjeva - hjembrek48/progi GitHub Wiki

Funkcionalni zahtjevi

ID zahtjeva Opis Prioritet Izvor Kriteriji prihvaćanja
F-001 Aplikacija omogućuje korisniku Guest mode za pregled Homepage stranice. Visok Zahtjev dionika Korisnik može pristupati Homepage-u bez registracije ili prijave što mu omogućuje samo pregled objavljenih zahtjeva za razmjene.
F-002 Aplikacija omogućuje registraciju i prijavu u sustav korištenjem OAuth2.0. Visok Zahtjev dionika Korisniku se omogućuje registracija u sustav korištenjem Google računa. Ako navedeni korak registracije uspije, korisnika se preusmjerava na sljedeći korak registracije - odabir lokacije korisnika. Google račun se kasnije koristi i za login korisnika.
F-003 Sustav omogućuje odabir lokacije korisnika na karti tijekom registracije. Visok Zahtjev dionika Korisnik može na interaktivnoj mapi postaviti pin na svoju lokaciju i ju unijeti u sustav. Lokacija se sprema u bazu te se koirsnik preusmjerava na profile page.
F-004 Sustav omogućuje pregled podataka o profilu i naknadno mijenjanje nekih. Umjeren Zahtjev dionika Korisnik preko sučelja može vidjeti podatke o svojem profilu preuzete preko Google API-ja (email, username, sliku) te one koje on zadaje (lokaciju na karti, opis, kategorije za koje je iskazao interes). Kategorije za koje je pokazao interes, opis i sliku profila korisnik može naknadno uređivati.
F-005 Aplikacija omogućuje prikaz društvenih igara prema kategorijama. Umjeren Postojeći sustav Korisnici na Homepage-u mogu odabrati kategoriju društvenih igara koja ih zanima te prema odabiru dobiti igre samo iz te kategorije.
F-006 Postojanje moderatora aplikacije. Visok Zahtjev dionika Moderator sustava ima ovlasti pregledavati, uređivati te po potrebi brisati objave koje krše politiku stranice i lijepog ponašanja. Dodatno, moderatori po potrebi, preko sučelja mogu deaktivirati korisničke račune.
F-007 Filtracija po zadanim kriterijima. Visok Zahtjev dionika Mora postojati sučelje preko kojega se na jednostavan način omogućuje filtracija po jednom ili više kriterija.
F-008 Mogućnost prijave objave. Visok Zahtjev dionika Mora postojati mogućnost da korisnici aplikacije prijave objave koje smatraju neprimjerenima kako bi ih sistemski moderatori lakše uočili.
F-009 Sustav ima uputstva za korištenje. Nizak Postojeći sustav Aplikacija mora imati segment koji nudi pregled uputstva za korištenje.
F-010 Sustav mora omogućiti pregled najnovijih objava za zamjenu. Umjeren Zahtjev dionika Aplikacija mora filtrirati najnovije objave i prikazivati ih na posebnom segmentu Homepage-a.
F-011 Mogućnost pregleda oglasa za zamjenu igara koje bi se korisniku mogle svidjeti. Umjeren Zahtjev dionika Ako korisnik na profilu zada kategorije igara koje ga zanimaju, onda sustav mora korisniku nuditi igre te kategorije.
F-012 Sustav mora omogućiti listu želja. Umjeren Zahtjev dionika Mora postojati lista želja u koju korisnik može stavljati igre koje ga zanimaju. Ona mora biti dostupna sa svih stranica, a mora postojati i ikona koja će prikazivati broj igara na korisnikovoj listi želja.
F-013 Sustav mora omogućiti logout iz aplikacije. Visok Zahtjev dionika Sa svih stranica aplikacije mora biti dostupno dugme za logout iz aplikacije.
F-014 Mora biti moguće uređivanje zamjene. Umjeren Zahtjev dionika Aplikacija mora omogućavati strankama zainteresiranima za zamjenu igara uređivanje ponude tako promjenom jedne igre ili kombinacije igara koje ponuditelj posjeduje ili one koje on/ona nudi u zamjenu.
F-015 Aplikacija mora slati obavijesti za ponude te za promijene zahtjeva i dolazak igre s liste želja na lager korisniku. Visok Zahtjev dionika Aplikacija mora u pregled "Ponude" te na e-mail poslati obavijest svaki put kada netko pošalje zahtjev za zamjenom, kada netko uredi njihovu ponudu za zamjenu ili kada neka od igara koju korisnik želi, a dodana je na popis želja dođe u optjecaj (netko ju ponudi).
F-016 Aplikacija se može pokrenuti na svim vrstama uređaja. Visok Zahtjev dionika Aplikacija mora biti responzivna i shema aplikacije mora biti postojana na svim veličinama zaslona.
F-017 Aplikacija arhivira izvršene zamjene. Visok Zahtjev dionika Aplikacija mora omogućavati pregled izvršenih zamjena za svakog korisnika koji se može vidjeti u pregledu "Moje zamjene".

Tablica 2.1. Funkcionalni zahtjevi

Ostali zahtjevi

Zahtjevi za održavanje:

ID zahtjeva Opis Prioritet
NF-3.1.1 Kod mora biti pisan razumljivo i prema standardima kako bi buduće održavanje bilo što jednostavnije. Umjeren
NF-3.1.2 API mora biti kompatibilan s JSON formatom. Visok
NF-3.1.3 Dokumentacija sustava treba olakšavati njegovo korištenje, unaprijeđivanje i razumijevanje. Visok

Tablica 2.2. Zahtjevi za održavanje

Zahtjevi performansi:

ID zahtjeva Opis Prioritet
NF-3.2.1 Sustav mora omogućiti nesmetano djelovanje više korisnika bez smanjenja brzine aplikacije. Visok
NF-3.2.2 Sustav mora podržavati velik broj korisničkih objava te uspješno i brzo filtrirati po istima. Visok
NF-3.2.3 Aplikacija mora biti kompatibilna sa svim preglednicima Visok

Tablica 2.3. Zahtjevi performansi

Zahtjevi sigurnosti:

ID zahtjeva Opis Prioritet
NF-3.3.1 Registracija i autentifikacija korisnika moraju biti sigurni i pouzdani. Visok
NF-3.3.2 Aplikacija mora štititi objave korisnika od mogućih nedozvoljenih promijena. Visok
NF-3.3.3 Određene rute aplikacije moraju biti zaštićene od nedozvoljenih pristupa. Visok
NF-3.3.4 Sustav ne smije pasti zbog pogrešnog korisničkog unosa. Umjeren

Tablica 2.4. Zahtjevi sigurnosti

UI/UX zahtjevi:

ID zahtjeva Opis Prioritet
NF-3.4.1 Sučelje aplikacije mora biti jednostavno i intuitivno za snalaženje. Umjeren
NF-3.4.2 Sustav mora jasno prikazivati korisniku razloge zašto pojedine akcije nisu uspjele ili zašto njegov unos podataka nije prihvaćen. Visok
NF-3.4.3 Dizajn sustava mora biti privlačan i nikako ne smije narušavati iskustvo korištenja aplikacije Nizak
NF-3.4.4 Snalaženje s mapama u aplikaciji mora biti jednostavno. Umjeren

Tablica 2.5. UI/UX zahtjevi

Zahtjevi na pouzdanost i testiranje:

ID zahtjeva Opis Prioritet
NF-3.5.1 Sve značajke sustava moraju biti unaprijed testirane. Visok
NF-3.5.2 Sustav mora biti ispravno deployan bez dodatnih zahtjeva kod korištenja. Visok

Tablica 2.6. Zahtjevi na pouzdanost i testiranje

Dionici

Dionik 1 - Vlasnik

Dionik 2 - Neregistrirani korisnici

Dionik 3 - Registrirani korisnici

Dionik 4 - Sistemski moderatori

Dionik 5 - Razvojni tim

Aktori i njihovi funkcionalni zahtjevi:

Aktor 1 - Neregistrirani korisnik (inicijator) može:

  • pregledavati Homepage i objavljene igre
  • pregledavati igre po kategorijama
  • filtrirati igre po svim kriterijima

Aktor 2 - Registrirani korisnik (inicijator) može:

  • sve što može i neregistrirani korisnik
  • uređivati svoj profil i vidjeti svoje podatke
  • davati zahtjeve za razmjenama
  • objavljivati svoje igre koje nudi za razmjenu
  • uređivati ponuđene zahtjeve za razmjene
  • prijavljivati objave koje smatra da krše pravila stranice ili pravila lijepog ponašanja
  • stavljati igre na listu želja
  • vidjeti svoje zamjene
  • vidjeti svoje objave
  • vidjeti igre koje mu aplikacija predlaže prema kategorijama koje je iskazao interes
  • izvršiti logout iz aplikacije

Aktor 3 - Sistemski moderator (inicijator) može:

  • uređivati i brisati objave korisnika po potrebi
  • vidjeti objave koje su korisnici prijavili
  • po potrebi deaktivirati korisničke račune

Aktor 4 - Baza podataka (sudionik):

  • pohranjuje sve korisnike
  • pohranjuje sve igre
  • pohranjuje sve zahtjeve
  • pohranjuje sve objave
  • pohranjuje deaktivirane račune

Aktor 5 - Deploy platforma (sudionik):

  • omogućava pokretanje i dostupnost aplikacije korisnicima

Aktor 6 - Google (sudionik):

  • autentificira korisnike pomoću njihovih Google računa tijekom registracije i logina

Aktor 7 - OpenStreetMap (sudionik):

  • služi za geolociranje u filtriranju i odabiru lokacije korisnika
  • prikazuje mape i pinove na mapama

Aktor 8 - Notifikacijski servis (sudionik):

  • šalje obavijesti i emailove korisnicima kod zahtjeva za zamijenom, uređivanja zahtjeva i dolaska igre s liste želja na lager

Predložak temeljen na wiki materijalima projekta Programsko inženjerstvo autora Vlado Sruk, pod licencom CC BY-NC-SA 4.0.