Analiza softverskih zahtjeva s primjerom

โšก Pametni saลพetak

Analiza softverskih zahtjeva rastavlja potrebe dionika na funkcionalne i nefunkcionalne izjave, rangira ih na poslovnoj, arhitektonskoj i sistemskoj razini, a zatim svaku provjerava u odnosu na atribute kvalitete kako bi se jamฤila provjerljivost, tracjednostavnu, prioritetnu specifikaciju.

  • ๐Ÿ“ Vrste zahtjeva: Poslovni, arhitektonski i dizajnerski te sistemski i integracijski zahtjevi tvore tri razine koje strukturiraju svaku softversku specifikaciju.
  • ๐Ÿ”€ Funkcionalno vs. nefunkcionalno: Funkcionalne izjave opisuju ลกto sustav mora raditi, dok nefunkcionalne izjave postavljaju mjerljive ciljeve performansi, sigurnosti i upotrebljivosti.
  • ๐Ÿ“š Alternativni izvori: Kolege, prethodna izdanja, stariji dokumenti o zahtjevima, izvjeลกฤ‡a o greลกkama i vodiฤi za instalaciju pruลพaju zahtjeve kada nedostaju formalni saลพeci.
  • โœ… Atributi kvalitete: Atomiฤan, jedinstveno identificiran, potpun, konzistentan, tracMoguฤ‡e, prioritetno i provjerljivo su sedam atributa koje svaki zahtjev mora ispunjavati.
  • ๐Ÿ”— End-to-End Tracmoguฤ‡nost: Poslovni zahtjevi se preslikavaju na dizajn, dizajn na kod, a kod na testne sluฤajeve, tako da opseg i pokrivenost ostaju vidljivi tijekom cijelog projekta.
  • ๐ŸŽฏ Testibilna formulacija: Zamijenite nejasne pojmove poput โ€žsvaka stranicaโ€œ i โ€žprihvatljivo vrijemeโ€œ imenovanim stranicama i mjerljivim ciljevima poput 5 sekundi.

Analiza softverskih zahtjeva

Softverski zahtjev je funkcionalna ili nefunkcionalna potreba koja se mora implementirati u sustavu. Funkcionalno znaฤi pruลพanje odreฤ‘ene usluge korisniku.

Na primjer, u kontekstu bankarske aplikacije, funkcionalni zahtjev je da kada korisnik odabere "Prikaลพi stanje", treba moฤ‡i vidjeti svoje najnovije stanje raฤuna.

Softverski zahtjev moลพe biti i nefunkcionalan, poput zahtjeva za performansama. Na primjer, nefunkcionalni zahtjev moลพe navoditi da se svaka stranica sustava treba uฤitati za korisnike unutar 5 sekundi.

Dakle, u osnovi softverski zahtjev je a

  • Funkcionalno ili
  • Nefunkcionalno

trebati koji se mora implementirati u sustav. Softverski zahtjevi se obiฤno izraลพavaju kao izjave.

Vrste zahtjeva

Poslovni zahtjeviOvo su zahtjevi visoke razine preuzeti iz poslovnog sluฤaja projekta. Na primjer, sustav mobilnog bankarstva pruลพa bankarske usluge jugoistoฤnoj Aziji. Poslovni zahtjev odreฤ‘en za Indiju je saลพetak raฤuna i prijenos sredstava, dok je za Kinu to saลพetak raฤuna i plaฤ‡anje raฤuna.

Drลพava Tvrtka koja pruลพa bankarske funkcije ili usluge
Indija Saลพetak raฤuna i prijenos sredstava
Kina Saลพetak raฤuna i Bill Plaฤ‡anje

Archizahtjevi strukture i dizajnaOvi zahtjevi su detaljniji od poslovnih zahtjeva i pokreฤ‡u arhitekturu rjeลกenja. Oni odreฤ‘uju cjelokupni dizajn potreban za implementaciju poslovnog zahtjeva. Za obrazovnu organizaciju, tipiฤni arhitektonski i dizajnerski sluฤajevi upotrebe ukljuฤuju prijavu, detalje o teฤaju i upis. Zahtjev bi bio prikazan u nastavku.

Sluฤaj koriลกtenja u bankarstvu Zahtjev
Bill Plaฤ‡anje Ovaj sluฤaj upotrebe opisuje kako se klijent moลพe prijaviti u net banking i koristiti Bill Moguฤ‡nost plaฤ‡anja. Korisnik moลพe vidjeti nadzornu ploฤu s nepodmirenim raฤunima za registrirane platitelje. Korisnik moลพe dodavati, mijenjati i brisati podatke o platiteljima. Korisnik moลพe konfigurirati SMS i e-mail upozorenja za razliฤite radnje naplate. Korisnik moลพe pregledati povijest proลกlih plaฤ‡enih raฤuna. Akteri koji zapoฤinju ovaj sluฤaj upotrebe su bankovni klijenti ili osoblje za podrลกku.

Zahtjevi sustava i integracijeNa najniลพoj razini imamo sistemske i integracijske zahtjeve. Pruลพa detaljan opis svakog zahtjeva. Moลพe se prikazati kao korisniฤke priฤe napisane svakodnevnim poslovnim jezikom. Zahtjevi sadrลพe obilje detalja tako da programeri mogu zapoฤeti s kodiranjem. Bill Primjer modula za plaฤ‡anje u nastavku prikazuje zahtjev za dodavanje izdavatelja raฤuna.

Bill Plaฤ‡anje Zahtjevi
dodati BillERS Naziv pruลพatelja komunalnih usluga, broj korisnika, automatska plaฤ‡anja โ€“ Da/Ne, plaฤ‡anje u cijelosti Bill โ€“ Da/Ne, Ograniฤenje automatskog plaฤ‡anja โ€“ Ne plaฤ‡ajte ako Bill je iznad navedenog iznosa

Ponekad za projekt moลพda neฤ‡ete dobiti nikakve zahtjeve ili dokumente za rad. ฤŒak i tada, postoje drugi izvori informacija o zahtjevima na koje se moลพete osloniti kao osnovu za dizajn softvera ili testiranja. Ostali izvori zahtjeva na koje se moลพete osloniti navedeni su u nastavku.

Drugi izvori zahtjeva

  • Prijenos znanja od kolega ili zaposlenika koji veฤ‡ rade na tom projektu
  • Razgovarajte o projektu s poslovnim analitiฤarom, voditeljem proizvoda, voditeljem projekta i razvojnim inลพenjerima
  • Analizirajte prethodnu verziju sustava koja je veฤ‡ implementirana
  • Analizirajte starije dokumente zahtjeva iz projekta
  • Revpregledajte proลกla izvjeลกฤ‡a o greลกkama; neka izvjeลกฤ‡a o greลกkama pretvaraju se u zahtjeve za poboljลกanja koja se mogu implementirati u trenutnoj verziji
  • Provjerite vodiฤ za instalaciju, ako je dostupan, kako biste vidjeli koje su instalacije potrebne
  • Analizirajte znanje domene ili industrije koje tim pokuลกava implementirati

Bez obzira na izvor zahtjeva koji koristite, dokumentirajte ih u zajedniฤkom formatu i neka ih pregledaju iskusni ฤlanovi tima.

Kako analizirati zahtjeve

Razmotrimo primjer obrazovnog softverskog sustava u kojem se student moลพe prijaviti za razliฤite teฤajeve.

Prouฤimo kako analizirati zahtjeve. Svaki zahtjev mora odrลพavati skup standardnih atributa kvalitete, koji ukljuฤuju sljedeฤ‡e:

  • Atomic
  • Jedinstveno identificiran
  • potpun
  • Dosljedno i nedvosmisleno
  • Tracmoguฤ‡e
  • Prioriteti
  • Moลพe se testirati

Analizirajte zahtjeve

Sljedeฤ‡a tablica ilustrira svaki atribut s tri stupca:

  1. Prvi stupac oznaฤava - "kvaliteta zahtjeva"
  2. Drugi stupac oznaฤava - "loลก zahtjev s nekim problemom"
  3. Treฤ‡i stupac prikazuje isti zahtjev โ€žpretvoren u dobar zahtjevโ€œ.
Kvaliteta zahtjeva Primjer loลกeg zahtjeva Primjer dobrog zahtjeva
Atomic Studenti ฤ‡e moฤ‡i upisivati โ€‹โ€‹preddiplomske i poslijediplomske studije Studenti ฤ‡e se moฤ‡i upisati na preddiplomske studije. Studenti ฤ‡e se moฤ‡i upisati na poslijediplomske studije.
Jedinstveno identificiran 1- Studenti ฤ‡e se moฤ‡i upisati na preddiplomske studije. 1- Studenti ฤ‡e se moฤ‡i upisati na poslijediplomske studije. Upis na teฤajeve. Studenti ฤ‡e se moฤ‡i upisati na preddiplomske teฤajeve. Studenti ฤ‡e se moฤ‡i upisati na poslijediplomske teฤajeve.
potpun Korisnik profesor prijavit ฤ‡e se u sustav unosom svog korisniฤkog imena, lozinke i drugih relevantnih podataka Korisnik profesor prijavit ฤ‡e se u sustav unosom svog korisniฤkog imena, lozinke i ลกifre odjela
Dosljedno i nedvosmisleno Student ฤ‡e imati ili dodiplomske ili poslijediplomske teฤajeve, ali ne oboje. Neki teฤajevi bit ฤ‡e otvoreni i za preddiplomske i za poslijediplomske Student ฤ‡e imati ili dodiplomski ili postdiplomski studij, ali ne oboje
Tracmoguฤ‡e Odrลพavati informacije o studentima mapirane na BRD req.ID? Odrลพavajte informacije o studentima - mapirano na BRD req ID 4.1
Prioriteti Registrirani student - Prioritet 1. Odrลพavanje korisniฤkih podataka - Prioritet 1. Upis teฤajeva - Prioritet 1. Pregled svjedodลพbe - Prioritet 1 Registracija uฤenika - Prioritet 1. Odrลพavanje korisniฤkih podataka - Prioritet 2. Upis teฤajeva - Prioritet 1. Pregled svjedodลพbe - Prioritet 3
Moลพe se testirati Svaka stranica sustava ฤ‡e se uฤitati u prihvatljivom vremenskom okviru Stranice sustava za registraciju uฤenika i upis teฤajeva uฤitat ฤ‡e se unutar 5 sekundi

Razumijemo svaki od ovih atributa detaljnije, poฤevลกi s Atomik.

Atomic

Atomic

Svaki zahtjev treba biti atomski, ลกto znaฤi da mora biti na najniลพoj razini detalja i ne moลพe se dalje raลกฤlaniti na komponente. Sljedeฤ‡i primjeri usporeฤ‘uju atomske i neatomske zahtjeve.

Nastavak s primjerom sustava obrazovne domene: Ovdje je loลก zahtjev โ€žStudenti ฤ‡e se moฤ‡i upisati na preddiplomske i poslijediplomske studijeโ€œ. Ovo je loลก zahtjev jer nije atomski - mijeลกa dva razliฤita entiteta, preddiplomske i poslijediplomske studije. Odgovarajuฤ‡i dobar zahtjev dijeli ga na dva zahtjeva. Jedan zahtjev pokriva upis na preddiplomske studije, a drugi pokriva upis na poslijediplomske studije.

Jedinstveno identificiran

Jedinstveno identificiran

Sljedeฤ‡i atribut kvalitete je jedinstvena identifikacija. U loลกem primjeru, dva odvojena zahtjeva dijele isti ID#1. Ako tim referencira zahtjev prema njegovom ID-u, postaje nejasno na koji se od ta dva misli. Dobar zahtjev ih pregrupira pod Odjeljak 1 - Upis na kolegije, s podzahtjevima 1.1 (upis na preddiplomske kolegije) i 1.2 (upis na poslijediplomske kolegije).

potpun

potpun

Svaki zahtjev mora biti potpun. Na primjer, ovdje loลก zahtjev kaลพe da ฤ‡e se โ€žprofesor korisnik prijaviti u sustav unosom svog korisniฤkog imena, lozinke i drugih relevantnih informacijaโ€œ. โ€žOstale relevantne informacijeโ€œ su nejasne. Potpuni zahtjev navodi toฤna polja, poput ลกifre odjela, koja profesor mora navesti.

Dosljedno i nedvosmisleno

Dosljedno i nedvosmisleno

Svaki zahtjev treba biti dosljedan i nedvosmislen. U loลกem primjeru, jedan zahtjev navodi โ€žStudent ฤ‡e imati ili preddiplomske ili poslijediplomske kolegije, ali ne obojeโ€œ, dok drugi navodi โ€žNeki kolegiji bit ฤ‡e otvoreni i za preddiplomske i za poslijediplomske studenteโ€œ.

Prvi zahtjev podrazumijeva da su kolegiji podijeljeni u dvije ekskluzivne kategorije, ali drugi zahtjev mu proturjeฤi otvarajuฤ‡i neke kolegije objema skupinama.

Dobar zahtjev rjeลกava sukob jasno navodeฤ‡i da je svaki kolegij oznaฤen ili kao preddiplomski ili kao poslijediplomski, a student se moลพe upisati samo na kolegije jedne kategorije.

Tracmoguฤ‡e

Tracmoguฤ‡e

Svaki zahtjev mora biti tracmoguฤ‡e jer zahtjevi postoje na viลกe razina: poslovnoj, arhitektonskoj i dizajnerskoj te sistemskoj i integracijskoj.

Kada pretvorite poslovni zahtjev u arhitektonske i dizajnerske zahtjeve ili arhitektonske i dizajnerske zahtjeve u sistemske i integracijske zahtjeve, tracMoguฤ‡nost rada mora se oฤuvati. Svaki poslovni zahtjev trebao bi se mapirati na jedan ili viลกe arhitektonskih i dizajnerskih zahtjeva. U loลกem primjeru โ€žOdrลพavati podatke o studentima โ€“ mapirano na BRD ID zahtjeva?โ€œ, nedostaje ID zahtjeva.

Zahtjev za dobar sadrลพaj biljeลพi istu izjavu, ali se eksplicitno preslikava na BRD zahtjev ID 4.1. Svaki zahtjev mora imati trackarta moguฤ‡nostipingSistemski i integracijski zahtjevi takoฤ‘er bi se trebali preslikavati na kod koji ih implementira i na testne sluฤajeve koji ih provjeravaju.

TracStoga se jednostavnost provodi od poฤetka do kraja kroz cijeli projekt.

Prioriteti

Svaki zahtjev mora imati prioritet kako bi tim znao ลกto prvo implementirati, a ลกto moลพe priฤekati. U loลกem primjeru, Registracija uฤenika, Odrลพavanje korisniฤkih podataka, Upis teฤajeva i Pregled izvjeลกฤ‡a postavljeni su na Prioritet 1. Sve ne moลพe biti Prioritet 1, stoga zahtjevi moraju biti realno rangirani. Dobar primjer daje Registraciji uฤenika i Upisu teฤajeva najviลกi Prioritet 1, Odrลพavanju korisniฤkih podataka Prioritet 2 i Pregledu izvjeลกฤ‡a Prioritet 3.

Moลพe se testirati

Svaki zahtjev treba biti testiran. Loลก primjer, โ€žsvaka stranica sustava ฤ‡e se uฤitati u prihvatljivom vremenskom okviruโ€œ, nije testiran iz dva razloga. Prvo, โ€žsvaka stranicaโ€œ moลพe znaฤiti desetke stranica, ลกto dodatno poveฤ‡ava napor testiranja. Drugo, โ€žprihvatljiv vremenski okvirโ€œ je nedefiniran - prihvatljiv kome i u odnosu na koju referentnu vrijednost? Dobar zahtjev rjeลกava oba problema imenovanjem odreฤ‘enih stranica (โ€žstranice za registraciju studenata i upis teฤajevaโ€œ) i postavljanjem mjerljivog cilja od 5 sekundi.

Pitanja i odgovori

Alati umjetne inteligencije grupiraju povratne informacije dionika, oznaฤavaju dvosmislen jezik i otkrivaju duplicirane ili nedostajuฤ‡e zahtjeve u velikim osnovnim linijama. Poslovni analitiฤari i dalje provjeravaju svaki prijedlog u odnosu na zapis o izmamljivanju podataka prije nego ลกto uฤ‘e u odobreni skup zahtjeva.

GitHub Copilot i GPT izraฤ‘uju korisniฤke priฤe, kriterije prihvaฤ‡anja i poslovna pravila iz kratkih upita. Poslovni analitiฤar pregledava svaki izlaz u odnosu na atribute kvalitete kao ลกto su atomski, testiran i tracmoguฤ‡e prije nego ลกto postane odobreni zahtjev.

Specifikacija softverskih zahtjeva je formalni dokument koji navodi funkcionalne zahtjeve, nefunkcionalne zahtjeve, suฤelja i ograniฤenja za sustav. IEEE 830 i ISO 29148 su standardi koje veฤ‡ina timova slijedi prilikom pisanja SRS-a.

Prikupljanje zahtjeva, ili izvlaฤenje, prikuplja sirove potrebe od dionika. Analiza zahtjeva zatim organizira, proฤiลกฤ‡ava i provjerava te potrebe u odnosu na sedam atributa kvalitete kako bi tim za isporuku dobio jasne, provjerljive izjave.

Koristite tehnike kao ลกto su MoSCoW (Mora, Trebao bi, Mogao bi, ลฝelio bi), Kano analiza, ponderirano bodovanje ili troลกak kaลกnjenja. Kombinirajte poslovnu vrijednost s naporom i rizikom isporuke, a zatim dogovorite redoslijed sa sponzorom i vlasnikom proizvoda prije poฤetka razvoja.

Zahtjevi TracMatrica jednostavnosti povezuje svaki zahtjev s njegovim elementom dizajna, komponentom koda i testnim sluฤajem. Daje unaprijed, unatrag i dvosmjerno tracjednostavnost tako da se niลกta ne propusti, previลกe ne nadogradi ili ne isporuฤi bez odgovarajuฤ‡eg testa.

Dvosmislena formulacija, neprioritetni zaostaci, nedostaci tracJednostavnost, mijeลกanje ideja za rjeลกenja s poslovnim potrebama i zamrzavanje opsega bez kontrole promjena su pogreลกke koje uzrokuju najviลกe prerada, proklizavanja u rasporedu i nedostataka u proizvodnji.

Popularni alati ukljuฤuju Jama Connect, IBM VRATA, Modern Requirements za Azure DevOps, Jira s Xray, Visure Requirements ALM i Blueprint. Timovi biraju platformu na temelju regulatornih potreba, veliฤine tima i dubine tracpotrebna je lakoฤ‡a.

Saลพmite ovu objavu uz: