Menadžment Softverskih Zahteva

Objavljeno:

15.04.2012.

Kategorija:

Softverski Zahtevi



"The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements... No other part of the work so cripples the resulting system if done wrong. No other part is as difficult to rectify later."

— Fred Brooks


Razvoj softvera

Cilj razvoja svakog pojedinačnog softvera je da bude kvalitetan, završen na vreme, u okviru zadatog budžeta i da ispunjava sve stvarne zahteve klijenta. Ovaj, na prvi pogled naivan zahtev, uopšte nije lako ispuniti.


Bez obzira o kakvom se softveru radi - bilo da je u pitanju poslovna aplikacija, program za lansiranje rakete u svemir ili običan veb sajt - oni koji treba da ga naprave znaju veoma malo o domenu, zbog čega zavise od klijenata i njihovih zahteva. Sa druge strane, klijenti često znaju veoma malo o računarima i radu softvera, zbog čega zavise od nas koji prevodimo njihove potrebe na jezik tehničkih zahteva.


Iako uvek postoji (malo) iskušenje da se zahtevi jednostavno izmisle, jer posao koji je pred nama podseća na već urađen, klijentu se moraju postavljati pitanja. Kako klijenti, u biti, znaju šta žele, ali teško to mogu da iskažu tehničkim jezikom, potrebno je znati kako se postavljaju prava pitanja u pravo vreme i dobiti prave odgovore.


Ovaj blog bi to trebalo da približi čitaocima.


Da bi se moglo krenuli u izradu softvera, pre početka bilo kakvog rada, potrebno postaviti dva ključna pitanja:

Pitanje 1: Šta bi, tačno, ovaj softver trebalo da radi?

Kada uspemo da damo odgovor na ovo pitanje, što neće biti nimalo lako, postavlja se sledeće pitanje.

Pitanje 2: Kako ćemo, sa sigurnošću, znati kada softver radi tačno ono šta treba da radi i ništa drugo?

Tehnike za odgovor na ova dva pitanja, i sva potpitanja koja se u međuvremenu pojave, daje disciplina koja je tema Majti Bloga.


Menadžment softverskih zahteva

Menadžment softverskih zahteva je sistematski pristup prikupljanju, organizovanju i dokumentovanju zahteva klijenta i proces koji uspostavlja i održava dogovor između klijenta i projektnog tima po pitanju osobina sistema koji treba da se izgradi.


U razvoju softvera menadžment zahteva igra različite uloge. Na primer, zahtevi tipično dokumentuju očekivanja klijenta i mogu da pruže ugovorenu bazu za razvoj; za menadžere projekta mogu da čine osnovu za planiranje rasporeda aktivnosti; za sistem inžinjere definišu ulogu softvera u okviru čitavog sistema i u kakvoj su korelaciji sa hardverom; za dizajnere određuju ograničenja u ponašanju i performansama; za programere definišu opseg očekivanog ponašanja i poslednja su instanca za izlazne rezultate; za testere su osnova za planiranje testiranja, verifikaciju i validaciju.


U nekim slučajevima zahtevi se koriste i za ne-softverske svrhe, poput planiranja marketinških aktivnosti ili regulisanja pravnih pitanja između klijenta i projektnog tima.


Faze menadžmenta softverskih zahteva

Analiza problema - u ovoj fazi se koristi skup tehnika pomoću kojih se pravilno razume problem koji bi novi softver trebalo da reši.


Razumevanje potreba korisnika - koriste se različite tehnike za prikupljanje zahteva od korisnika i zainteresovanih strana. Ne postoji skup tehnika koji je upotrebljiv u svim situacijama, niti je neophodno da se ovlada svim tehnikama. Uz malo vežbe i mudrog izbora, projektni tim će imati mnogo veću mogućnost da razume stvarne potrebe koje softver mora da ispuni.


Definisanje sistema - koriste se inicijalni procesi prema kojima se razumevanje problema i potreba korisnika pretvara u početnu definiciju sistema koji će se odnositi na te potrebe.


Upravljanje opsegom - potrebna je sposobnost da se uradi što bolji posao upravljanja opsegom projekta. Na kraju krajeva, bez obzira koliko dobro razumemo potrebe, razvojni tim ne može da uradi nemoguće i često je neophodno da se pregovara oko prihvatljivog krajnjeg rezultata pre nego što može da se postigne uspeh.


Proćišćenje definicije sistema - u ovoj fazi se organizuju sve prikupljene informacije o zahtevima, pri čemu se koristi skup tehnika koji bi pojasnio definiciju sistema ili je pročistio do nivoa prikladnog za početak dizajna i implementacije, kako bi ceo prošireni tim znao tačno kakav sistem treba da se izgradi.


Kreiranje ispravnog sistema - tehnički aspekti osiguranja dizajna, verifikacije, testiranja, validacije i neizbežnog menadžmenta promenama. Koristi se sledljivost da bi se osigurao kvalitetan izlazni rezultat.


Ukoliko se sve faze obave kako treba i sve prođe u redu, krajnji rezultat bi trebalo da bude zadovoljavajući za sve.



FB Komentari: