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.