Kurs User requirements for software development

U 21. veku se bez softvera više ne može zamisliti svakodnevica. Softver je postao najzaslužniji za uspeh većine računarskih sistema i ujedno faktor diferencijacije organizacija koje ga poseduju. Sa druge strane, oblast softverskog zahteva predstavlja temelj od koga polaze ostale oblasti i razvoj kompletnog softvera. Upravo iz tih razloga ova oblast je široko prihvaćena i priznata u softverskoj industriji. 

Softverski zahtev možemo definisati i kao osobinu koja mora biti predstavljena u cilju rešavanja nekog problema iz realnog sveta. Može se reći i da je ova oblast veza između realnog sveta i informacionih tehnologija, jer adresira pitanja prilagođavanja i rešavanja realnih poslovnih situacija putem izgradnje softverskog rešenja. Najčešći primeri realnih problema koji se mogu zabeležiti su automatizacija procesa pomoću softvera, podrška poslovnim procesima organizacije koja je naručila softver, ispravljanje nedostaka postojećeg softvera, upravljanje nekim uređajima i drugi. 

Softverski projekti su posebno osetljivi kada se ove aktivnosti prikupljanja softverskih zahteva realizuju na loš način i zato se veštine koje ćete steći na ovom kursu smatraju veoma važnim u čitavoj disciplini softverskog inženjerstva. Softverski zahtevi predstavljaju sistematsko rukovanje zahtevima i podrazumevane osobine koje moraju biti ispitane kako bi se rešio problem u realnom svetu. Važno je istaći i da postoje razlike u pristupu i modelovanju komponenti softverskih zahteva, jer se koriste i termini inženjer zahteva, specijalista zahteva, softver inženjer i slično.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa:Software Engineering Program.

Opis i cilj kursa User Requirements for Software Development

Tokom kursa User Requirements for Software Development, koji možete pohađati kao online kurs ili tradicionalno – u učionici, a koji je deo pripadajućih programa, imaćete priliku da se detaljno upoznate sa analizom, specifikacijom, validacijom i izvlačenjem softverskih zahteva. 

Fokus kursa biće na obrađivanju tehnika i praksi prikupljanja softverskih zahteva. Celokupno gradivo kursa podeljeno je na tematske celine, odnosno module, koje će vam omogućiti da usvajate nova znanja bez poteškoća. Na početku kursa očekuju vas jednostavnije nastavne jedinice, dok ćete, kako predavanja budu odmicala, biti u prilici da stičete sve kompleksnije veštine. 

Prvi modul akcenat će staviti na uvođenje polaznika u pojam softverskih zahteva. U sklopu tih predavanja saznaćete koje su opšte karakteristike izvođenja zahteva, kao i zašto je ovaj proces veoma važan. Naredna tematska celina obrađivaće tehnike za prikupljanje softverskih zahteva prema SWEBOK-u. Na ovim predavanjima naučićete kako se utvrđuju i analiziraju softverski zahtevi, kao i kako se vrši njihova specifikacija i validacija. Drugi deo kursa baviće se praksom i tehnikama prikupljanja softverskih zahteva, dok ćete u poslednjem modulu imati priliku da se upoznate sa specifikacijom softverskih zahteva. 

Cilj kursa je da svaki polaznik savlada tehnike i preporučene prakse prikupljanja softverskih zahteva. Uz to, stečena znanja će vam omogućiti da prepoznate i razumete važnost ispravne identifikacije i specifikacije softverskih zahteva, kao najvažnije mesto u razvoju softvera, u smislu ispravnog postavljanja softverskog projekta i rane prevencije i identifikacije mogućih grešaka. 

Kurs User Requirements for Software Development na ITAcademy moguće je pohađati samo kao deo programa po kome se školuju buduću softverski inženjeri. Ovaj kurs omogućiće vam da steknete specijalizovana znanja koja će zajedno sa korisnim veštinama sa drugih kurseva predstavljati vaš najznačajniji alat za započinjanje nove karijere. Kao školovanom softverskom inženjeru pruža vam se širok spektar mogućnosti za nalaženje odlično plaćenog posla. Uz znanja sa ovog kursa i ostalih u sklopu pomenutog programa do novog zanimanja možete stići već nakon godinu dana.

Kurs User Requirements for Software Development odgovoriće vam na pitanja:

1. Zašto je proces prikupljanja zahteva važan?

Cilj faze definisanja zahteva je razumevanje problema i potreba naručioca. Zahtevi su okrenuti naručiocu i problemu, a ne rešenju ili implementaciji. Zahtevi označavaju kakvo ponašanje naručilac želi, bez izražavanja kako će to ponašanje biti ostvareno. Rasprava o rešenju je preuranjena sve dok se problem jasno ne definiše.

Najteži segment u izgradnji softvera jeste precizno odlučivanje šta da se razvija. Nijedan drugi deo aktivnosti na konceptualnom nivou nije tako težak kao uspostavljanje detaljnih tehničkih zahteva. Nijedan drugi deo aktivnosti ne može u tom stepenu učiniti lošim rezultujući sistem kao loše formulisani zahtevi.

2. Ko su stakeholderi?

Stakeholderi (Stakeholders) su zainteresovani subjekti koji doprinose zahtevima novog sistema, ali i subjekti koji utiču na dalji razvoj već postojećeg sistema. Najčešće su to pojedinci, grupe ili organizacije koji finansijski odlučuju o softverskom proizvodu. Međutim, često su to i ljudi stručni za oblast softvera koji se razvija, pa mogu biti i:

  • Korisnici – oni koji poznaju postojeći i koji će koristiti budući sistem. Oni su stručni za rad postojećeg sistema, poznaju njegove najkorisnije odlike, kao i delove sistema koji zahtevaju poboljšanje. 
  • Stručnjaci iz konkretne oblasti primene – oni kojima je problem koji softver treba da automatizuje blizak. Na primer, konsultovaćemo se sa meteorologom ako softver treba da modeluje vremenske prilike. Te osobe mogu da učestvuju u definisanju zahteva ili poseduju znanja o karakteristikama okruženja u kojima će proizvod funkcionisati.
  • Istraživači tržišta, koji sprovode istraživanja radi određivanja budućih trendova i potencijalnih potreba korisnika. Oni mogu da pretpostave ulogu kupca ako se softver razvija za široko tržište, pri čemu nije identifikovan nijedan poseban kupac.
  • Advokati ili revizori, kojima su bliski validni, bezbednosni i pravni zahtevi. Na primer, možemo da se konsultujemo sa stručnjacima za standarde relevantne za funkcionisanje proizvoda.
  • Softverski inženjeri i drugi tehnolozi. Ovi stručnjaci osiguravaju da proizvod bude tehnički i ekonomski izvodljiv. Oni mogu da informišu naručioca o novim hardverskim i softverskim tehnologijama i preporuče nove funkcionalnosti koje koriste prednosti tih tehnologija. Oni mogu takođe da procene troškove i vreme potrebno za razvoj proizvoda.

3. Šta je intervju?

Intervjui se koriste za prikupljanje informacija. Međutim, predispozicije, iskustvo, razumevanje i pristrasnost osoba koje se intervjuišu mogu uticati na dobijene informacije. Upotreba pitanja bez konteksta od voditelja intervjua pomaže u izbegavanju prejudiciranja odgovora. Pitanja bez konteksta su pitanja koja ne sugerišu određeni odgovor. Na primer, ko je klijent ovog sistema? Šta je pravi razlog zbog kojeg se želi rešavanje ovog problema? U kojem okruženju će ovakav proizvod koristiti? Koji nivo preciznosti kvaliteta proizvoda je potreban?

Kurs User Requirements for Software Development

4. Šta je brainstorming?

Brainstorming uključuje generisanje ideja i njihovo smanjivanje. Cilj generisanja ideja je da se identifikuje što je više moguće ideja, a zatim se vrši rangiranje onih najkorisnijih. Brainstorming je moćna tehnika, jer je većina kreativnih i efektivnih ideja često rezultat kombinacije naizgled nepovezanih ideja. Takođe, ovom tehnikom se podstiču originalno razmišljanje i neobične ideje.

5. Šta predstavlja inženjering zahteva?

Inženjering zahteva (eng. Requirements Engineering) je proces izvlačenja, dokumentovanja, analize, validacije i upravljanja zahtevima. Postoje različiti pristupi u procesima inženjeringa zahteva (neki od njih su kompletniji od drugih). Bez obzira na to koji je pristup primenjen, presudno je da postoji dobro definisana metodologija i da postoji dokumentacija za svaku fazu razvoja.

Modelovanje zahteva (eng. Requirements Modeling) uključuje tehnike koje se upotrebljavaju da predstave zahteve na način koji izražava potrebe korisnika. Modelovanje zahteva koristi tehnike koje idu od apstraktnih iskaza visokog nivoa do pseudokod specifikacija, formalne logike i grafičkih reprezentacija. Koja god da se reprezentativna tehnika koristi, inženjer uvek mora nastojati da sakupi kompletnu, preciznu i detaljnu specifikaciju sistemskih zahteva.

6. Koja je razlika između funkcionalnih i nefunkcionalnih zahteva?

Funkcionalni zahtevi opisuju servise koje sistem treba da pruži. Ponekad funkcionalni zahtevi sadrže i ono što sistem ne treba da radi. Funkcionalni zahtevi mogu biti visokog nivoa i opšti zahtevi ili detaljni kada izražavaju ulaz, izlaz, izuzetke itd.

Nefunkcionalne zahteve nameće okruženje u kom se nalazi sistem. Ovi zahtevi mogu uključiti vremenska ograničenja, osobine kvaliteta, poštovanje standarda, programske jezike koji će se koristiti, usaglašenost sa zakonima itd.

Zahtevi domena (eng. Domain Requirements) su tip nefunkcionalnih zahteva. Zahtev domena može nametnuti nove funkcionalne zahteve ili ograničenja na postojeće funkcionalne zahteve. Na primer, u sistemu za pregled prtljaga, industrijski standardi i ograničenja na veličinu i oblik prtljaga uzrokovaće određena ograničenja u samom sistemu.

7. Zašto je bitna specifikacija zahteva?

Cilj aktivnosti specifikacije softverskih zahteva i rezultujuće dokumentacije je da pruži potpuni opis ponašanja sistema bez opisivanja njegove unutrašnje strukture. Ovaj aspekt je lako zadati, ali se teško postiže, posebno u onim sistemima gde mora biti opisano i privremeno ponašanje.

Precizne softverske specifikacije pružaju osnovu za analizu zahteva, validaciju namera stakeholdera, definišu šta dizajneri treba da izgrade i verifikuju da je sve to urađeno korektno.

Specifikacija zahteva nam omogućava da saznamo motivaciju za razvoj softverskog sistema. Softverski zahtevi takođe pomažu softver inženjerima u upravljanju evolucijom softvera tokom vremena i kroz familiju srodnih softverskih proizvoda. Ovaj pristup odražava realnost u svetu promena i potrebu ponovnog korišćenja određenih specifikacija.

Plan i program predavanja:

1. Uvod u softverske zahteve

  • Važnost procesa uzimanja zahteva
  • Upoznavanje polaznika sa opštim karakteristikama izvođenja zahteva
  • Rešavanje konflikata i karakteristike zahteva. Predstavljanje prioriteta i klasifikacije zahteva

2. Prikupljanje softverskih zahteva prema SWEBOK-u

  • Šta je oblast software requirements prema SWEBOK-u i koje su njegove podoblasti
  • Utvrđivanje i analiza softverskih zahteva
  • Specifikacija i validacija softverskih zahteva

3. Prakse i tehnike prikupljanja softverskih zahteva

  • Upoznavanje polaznika sa tehnikama prikupljanja zahteva i njihovim karakteristikama 
  • Preporučena praksa prikupljanja zahteva i predstavljanje svih ostalih faktora koji utiču na nju 

4. Specifikacija softverskih zahteva

  • Upoznavanje polaznika sa inženjeringom softverskih zahteva
  • Software Requirements Specification Template deo 1
  • Software Requirements Specification Template deo 2
  • Automatizacija upravljanja zahtevima 

Polaznici kursa User requirements for software development

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Jesenji upisni rok je otvoren!

Da saznate sve o upisu, kliknite ovde