Zahtevi za specifikaciju - SRS

Objavljeno:

09.09.2012.

Kategorija:

Softverski Zahtevi



"It's not enough that we do our best; sometimes we have to do what's required."

— Winston Churchill


Osobine dobre specifikacije

Ciljevi procesa zahteva, nevolje koje čekaju i uloga specifikacije u disciplinovanom procesu su osobine dobre specifikacije zahteva. Ove osobine ne utiču na izbor ni jedne metode, ali opisuju karakteristike na koje metoda mora da obrati pažnju.


Kada govorimo o osobinama dobre specifikacije, korisno je napraviti razliku između semantičkih osobina i osobina pakovanja. Semantičke osobine su rezultat onoga šta specifikacija govori (značenje ili semantika), a osobine pakovanja su rezulat onoga kako su zahtevi zapisani – format, organizacija i prezentovanje informacija. Semantičke osobine određuju koliko je precizno specifikacija uhvatila zahteve, a osobine pakovanja određuju koliko je dobijena specifikacija upotrebljiva.


Semantičke osobine

Specifikacija koja zadovoljava semantičke osobine je dobra, ukoliko je:


  • Kompletna – specifikacije definiše skup prihvatljive implementacije i trebalo bi da sadrži sve informacije potrebne za pisanje softvera koje su prihvatljive klijentu i ništa više. Bilo koja implementacija koja zadovoljava svaku stavku specifikacije je prihvatljiv proizvod, a informacije koje nisu dostupne pre početka razvoja, moraju biti jasno naznačene.

  • Nezavisna od implentacije – specifikacija bi trebalo da bude nezavisna od odluka o dizajnu i implementaciji, osim u slučaju da su te odluke rezultat zahteva.

  • Nedvosmislena i konzistentna – Ukoliko specifikacija sadrži konfliktna tumačenja, različite strane se neće složiti oko toga šta treba da se napravi ili oko toga da je napravljeno tačno ono što je bilo traženo. Zbog toga bi svaki zahtev trebalo da ima samo jedno moguće tumačenje. Slično tome, svako zahtevano ponašanje ne bi smelo da ima dva konfliktna stanja.

  • Precizna – specifikacija bi trebalo da tačno definiše očekivano ponašanje. Za svako izalzno stanje, mora se definisati opseg svih mogućih vrednosti ulaznog stanja, a trebalo bi da definiše sva moguća vremenska ograničenja, kao što je minimalno ili maksimalno vreme kašnjenja.

  • Proverljiva – zahtev je proverljiv ukoliko je moguće nedvosmisleno odrediti da li data implementacija zadovoljava zahtev ili ne. Na primer, funkcionalni zahtev je proverljiv ukoliko je moguće odrediti, za bilo koji slučaj testiranja, da li izlaz prikazuje prihvatljivo ponašanje softvera za dati ulaz i stanje sistema.


Osobine pakovanja

Specifikacija koja zadovoljava osobine pakovanja je dobra, ukoliko je:


  • Podložna izmenama – specifikacija mora biti tako organizovana da je lako moguće promeniti je. Kako nijedna organizacija ne može lako da promeni sve moguće izmene, proces analize zahteva mora da identifikuje očekivane probeme i relativnu verovatnoću njihovog dešavanja. Takva specifikacija je oranizovana da ograniči efekte mogućih izmena

  • Čitka – specifikacija mora biti razumljiva stranama koje je kriste. Trebalo bi da se jasno odnosi na elemente iz zone problema od toga da bude razumljiva za klijenta do toga da pokazje ono ponašanje softvera na koje se odnose zahtevi ponašanja.

  • Organizovana za referencu i pregled – U pitanju je primarno tehnička specifikacija softverskih zateva i sve odluke o tome šta treba da se napravi se donose u fazi analize. Taj dokument bi trebalo da bude pregledan od strane klijenta ili njegovog predstavnika, a pošto je podložan promenama potrebno je da bude organizovan tako da je lako dodavati primedbe. Potrebno je da bude jasno čemu pripada koja odluka, a mora biti moguće da se lako i brzo da odgovor na posebna pitanja u vezi sa zahtevima.


Da bi se odgovorilo na poteškoće koje se javljaju prilikom pisanja i korišćenja specifikacije, zahtevima se mora pristupiti i sa strane semantičkih osobina i sa strane osobina pakovanja. Potrebno je te osobine posmatrati što je moguće nezavisnije, što dozvoljava da se promeni prezentacija specifikacije bez promene njenog značenja.


Ideal?

Kada se sve sabere, osobine dobre specifikacije prestavljaju ideal. Neke od osobina mogu biti nedostižne, naročito kratkročno, kao što je uobičajena situacija u kojoj se ne mogu razviti svi zahtevi pre nego što se napravi dizajn jer klijent obično ne razume u potpunosti šta želi ili još uvek pravi izmene. Zahtevi za specifikacijom često dovode do konfliktnih rešenja. Jedan od najviše korišćenih primera je korišćenje govornog jezika za opis zahteva – jezik koji se lako čita i razume, ali je veoma dvosmislen i neprecizan. Sa druge strane formalni jezici su recizni i nedvosmisleni, ali često veoma teški za čitanje.


Iako je idealna specifikacija teško ostvariva, ipak je potrebno težiti da SRS:


  • – obezbeđuje osnovu za standardizaciju procesa i proizvoda organizacije

  • – obezbeđuje standard na osnovu kog se može meriti napredak

  • – obezbeđuje vodilju – pomaže developerima da razumeju šta treba da se uradi i da znaju kada su gotovi


Pošto se veoma često dešava da (1) zahtevi ne mogu u potpunosti da se razumeju pre nego što počne da se pravi sistem i (2) savršena specifikacija ne može da se napravi čak ni kada su zahtevi jasni, neki pristupi navedeni u literaturi idu odmah sa modela problema na dizajn ili od izrade prototipa na kodiranje. Dok takvi pristupi mogu biti efektni kod nekih razvoja, nisu stalni kada se razvoj softvera posmatra kao inžinjerska disciplina jer je razvoj tehničke specifikacije osnovni deo kontrolisanog inžinjerskog procesa. Ovo ne znači da specifikacija mora da bude upotpunjena ili savešena pre nego što bilo šta drugo počne da se radi, nego da je razvoj osnovni cilj procesa kao celine.


To što možda trenutno nismo u stanju da napišemo dobru specifikaciju u nekim slučajevima, ne menja činjenicu da je korisno i neophodno to pokušati.




FB Komentari: