Što je funkcionalni zahtjev u softverskom inženjerstvu?
⚡ Pametni sažetak
Funkcionalni zahtjevi opisuju svaku uslugu koju softverski sustav mora ponuditi, bilježeći ulaze, ponašanje i izlaze kako bi programeri, testeri i poslovni dionici dijelili jednu, provjerljivu definiciju onoga što proizvod zapravo mora raditi.
Što je funkcionalni zahtjev?
A Funkcionalni zahtjev (FR) je opis usluge koju softver mora ponuditi. Opisuje softverski sustav ili njegovu komponentu. Funkcija je definirana ulazima, ponašanjem i izlazima. To može biti izračun, manipulacija podacima, poslovni proces ili interakcija s korisnikom koja definira što sustav mora učiniti. Funkcionalni zahtjevi u softverskom inženjerstvu nazivaju se i Funkcionalne specifikacije.
Funkcionalni zahtjev kreće se od potrebe visokorazinske zainteresirane strane do detaljne matematičke specifikacije. Funkcionalni softver zahtjevi obuhvaćaju namjeravano ponašanje sustava.
Što uključiti u dokument funkcionalnih zahtjeva
Evo što bi dokument s funkcionalnim zahtjevima trebao obuhvaćati:
Primjer funkcionalnih zahtjeva
Dokument funkcionalnih zahtjeva obično uključuje:
- Detalji operacija provedenih na svakom zaslonu
- Logika rukovanja podacima koju sustav mora primijeniti
- Descriptizvješća sustava i drugih rezultata
- Potpune informacije o tijekovima rada koje sustav izvršava
- Tko smije kreirati, mijenjati ili brisati podatke u sustavu
- Kako sustav ispunjava primjenjive regulatorne i usklađene potrebe
Prednosti funkcionalnih zahtjeva
Glavne prednosti dobro napisanog dokumenta funkcionalnih zahtjeva su:
- Potvrđuje da aplikacija isporučuje svaku navedenu funkciju
- Definira funkcionalnost sustava i njegovih podsustava na jednom mjestu
- U kombinaciji s analizom zahtjeva, funkcionalni zahtjevi pomažu u identificiranju nedostajućih potreba i razjašnjavanju očekivanog ponašanja sustava
- Greške uočene u fazi zahtjeva najjeftinije se ispravljaju
- Podržava korisničke ciljeve, zadatke i aktivnosti
Vrste funkcionalnih zahtjeva
Uobičajene kategorije funkcionalnih zahtjeva uključuju:
- Rukovanje transakcijom
- Poslovna pravila
- Certifikacija Zahtjevi
- Zahtjevi za izvješćivanjem
- Upravne funkcije
- Razine autorizacije
- Revizija Tracking
- Vanjska sučelja
- Upravljanje povijesnim podacima
- Pravni i regulatorni zahtjevi
Primjeri funkcionalnih zahtjeva
U nastavku su navedeni praktični primjeri funkcionalnih zahtjeva:
- Softver će automatski provjeravati identitet korisnika u sustavu za upravljanje kontaktima ABC.
- Prodajni sustav mora omogućiti korisnicima evidentiranje prodaje kupaca.
- Boja pozadine za sve prozore u aplikaciji mora biti plava s heksadecimalnom RGB vrijednošću 0x0000FF.
- Samo zaposlenici na rukovodećoj razini imaju pravo pregleda podataka o prihodima.
- Softverski sustav će se integrirati s bankarskim API-jem.
- Softverski sustav mora ispunjavati Odjeljak 508 zahtjevi za pristupačnost.
Funkcionalni i nefunkcionalni zahtjevi
Evo ključnih razlika između funkcionalnih i nefunkcionalnih zahtjeva u Programsko inženjerstvo:
| Parametri | Funkcionalni zahtjev | Nefunkcionalni zahtjev |
|---|---|---|
| Što je | Glagol | Značajke |
| Zahtjev | To je obavezno | Nije obavezan |
| Tip hvatanja | Hvata se u slučaju upotrebe. | Uhvaćen je kao atribut kvalitete. |
| Krajnji rezultat | Značajka proizvoda | Svojstva proizvoda |
| snimanje | Lako za snimanje | Teško za uhvatiti |
| Cilj | Pomaže vam provjeriti funkcionalnost softvera. | Pomaže vam da provjerite učinkovitost softvera. |
| Područje fokusa | Usredotočite se na zahtjeve korisnika | Koncentrira se na očekivanja korisnika. |
| Dokumentacija | Opišite čemu proizvod služi | Opisuje kako proizvod radi |
| Vrsta testiranja | Funkcionalno testiranje poput sustava, integracije, end to end, API testiranje, Itd | Nefunkcionalna testiranja kao što su izvedba, stres, upotrebljivost, Ispitivanje sigurnosti, Itd |
| Izvršenje testa | Izvršavanje testiranja se vrši prije nefunkcionalnog testiranja. | Nakon funkcionalnog ispitivanja |
| Informacije o proizvodu | Značajke proizvoda | Svojstva proizvoda |
Najbolje prakse za pisanje funkcionalnih zahtjeva
Najvažnije najbolje prakse za pisanje dokumenta funkcionalnih zahtjeva su:
- Nemojte kombinirati dva zahtjeva u jedan; svaki zahtjev treba biti detaljan.
- Učinite svaki zahtjev što potpunijim i točnijim.
- Nacrtajte sve tehničke zahtjeve u dokumentu.
- Povežite svaki zahtjev s ciljevima i principima koji pokreću uspješnu isporuku softvera.
- Utvrdite zahtjeve putem intervjua, radionica i neformalnih razgovora.
- Dokumentirajte svako poznato, provjereno ograničenje koje materijalno utječe na zahtjev.
- Zabilježite svaku pretpostavku u dokumentu.
Uobičajene pogreške pri pisanju funkcionalnih zahtjeva
Uobičajene pogreške koje se događaju prilikom izrade dokumenta funkcionalnih zahtjeva uključuju:
- Dodavanje neopravdanih dodatnih informacija koje zbunjuju razvojne programere
- Izostavljanje detalja koje programeri trebaju za izgradnju značajke.
- Pravila miješanja, primjeri, scoping izjave ili ciljeve u sam zahtjev.
- Izostavljanje informacija koje su bitne za potpuno i točno navođenje zahtjeva.
- Braniti postojeći zahtjev kada stigne zahtjev za promjenom, umjesto pronaći točan odgovor.
- Zahtjevi za pisanje koji nisu povezani s bilo kojim ciljem ili načelom.


