Što je inženjering zahtjeva?

Veliki hardverski ili softverski sustavi, kao što je svemirska letjelica, imaju složene zahtjeve. Zahtjevi su specifikacija onoga što bi trebalo izgraditi, kako bi se sustav trebao ponašati ili ograničenja u procesu izgradnje sustava. Inženjering zahtjeva je korištenje dobrih inženjerskih praksi za razumijevanje zahtjeva prije izgradnje sustava. To postaje važno jer dionici sustava sami nisu jasni o svojim potrebama i imaju različite potrebe.

Složeni sustav može imati mnogo dionika kao što su ljudi koji naručuju sustav, korisnici koji koriste jedan ili više aspekata sustava i ljudi koji imaju koristi od sustava. Također je moguće da među dionicima spadaju i građani na koje utječu određene osobitosti sustava. Dionici imaju svoje posebne potrebe. S druge strane, ljudi koji razvijaju sustav mogu biti tehnički sposobni, ali možda ne razumiju u potpunosti stajalište dionika. Inženjering zahtjeva osnovna je sposobnost koja povezuje ove strane.

Formalno, djelatnost inženjeringa zahtjeva dijeli se na razvoj zahtjeva i upravljanje zahtjevima. Razvoj zahtjeva sastoji se od traženja, analize, specifikacije i verifikacije. Upravljanje zahtjevima je kontrola cjelokupnog procesa zahtjeva, posebno rukovanja svim promjenama u zahtjevima. Neki praktičari, nasuprot tome, cijelu aktivnost nazivaju analizom zahtjeva.

Izazivanje zahtjeva od dionika postaje neophodno jer dionici često ne specificiraju u potpunosti svoje potrebe i ne razumiju implikacije novog sustava. Dionici se možda neće otvoriti jer bi se mogli bojati utjecaja na njihova trenutna radna mjesta. Izvlačenje je stoga pažljiv i, moguće, dug proces u kojem je potrebna empatija i suptilna psihologija. Treba paziti da se premoste kulturne razlike između različitih dionika, kao i developera.

Za izazivanje zahtjeva koristi se nekoliko tehnika. Zahtjevi se mogu utvrditi kroz individualne intervjue, grupne sastanke i promatranje ljudi na njihovim zadacima. Tehnike koje mogu donijeti zahtjeve uključuju fokus grupe, kreiranje prioritetnih popisa, izradu prototipa i usporedbu s drugim sustavima u radu. Zahtjevi za izvlačenje uključuju poslovne potrebe sustava, poslovne procese korisnika dok koriste sustav i funkcionalne značajke sustava. Osim toga, potrebno je istaknuti nefunkcionalne zahtjeve kao što su vrijeme odziva, dostupnost sustava i jednostavnost korištenja.

Korak analize u inženjeringu zahtjeva formira zahtjeve niske razine koji će zadovoljiti izvorne zahtjeve visoke razine. To uključuje stvaranje konceptualnih modela i prototipova kako bi se utvrdila potpunost zahtjeva. Sukobi u potrebama različitih dionika češće se pronalaze prema modelima i prototipovima nego na pukoj listi zahtjeva. Poželjne karakteristike sustava kao što su sigurnost, fleksibilnost i mogućnost održavanja moraju se dodati zahtjevima od strane analitičara.

Zahtjevi su navedeni u dokumentu radi lakšeg razumijevanja svih dionika. U polju softvera, dokument se naziva SRS, što je skraćenica za specifikaciju softverskih zahtjeva. Zahtjeve provjeravaju ključni dionici. To je uglavnom putem prezentacija i dokumenta sa specifikacijama, ali ponekad i s testnim slučajevima koji odgovaraju zahtjevima.

Inženjering zahtjeva je prvenstveno komunikacija, aktivnost, a ne tehnički. Potrebne su multidisciplinarne vještine. Inženjering zahtjeva pomaže dionicima i programerima u rješavanju sukoba i ujedinjuje ih u njihovim ciljevima; To dovodi do robusnog sustava.