Razvoj softvera

Razvoj bilo kakve složenije aplikacije danas nije posao koji se prepušta slučaju. U pitanju je proces koji sve više podleže standardizaciji i kome se i te kako ozbiljno i planski pristupa.

Sam tok razvoja softvera može se podeliti na nekoliko etapa, a jedna podela bila bi na:

Prve tri etape predstavljaju pripremne faze, kojima se određuju plan i metodologija rada i oblikuje koncept aplikacije. Sledi programiranje koje rezultuje radnom verzijom programa. Program se tada testira i ispravljaju mu se greške, da bi potom počelo njegovo korišćenje u probnom periodu, tokom koga se ocenjuje koliko program odgovara početnim zahtevima. Čak i kada program potpuno odgovara zahtevima, angažman programera se nastavlja na održavanju i unapređenju softvera. Suštinski, ove etape predstavljaju 4 faze klasičnog razvoja – definisanje šta program radi, definisanje kako program to treba da radi, programiranje i korišćenje.[3]

Postoji veliki broj metodologija rada koje u manjoj ili većoj meri mogu biti efikasne prilikom razvoja softvera, a dve osnovne su metod vodopada i agilno programiranje.

Metod vodopada predstavlja metodologiju prema kojoj etape u razvoju softvera doslovno prate jedna drugu, počev od analize zahteva, preko dizajna, programiranja, testiranja, pa do instalacije i održavanja. Svaka faza se kompletira i predstavlja osnov za sledeću. Pri tome se svaka etapa realizuje veoma pažljivo kako se ne bi desile greške koje bi bile skupo plaćene u kasnijim fazama. Metod vodopada predstavlja klasičan, disciplinovani način razvoja softvera, koji se u velikoj meri oslanja na detaljnu dokumentaciju u svakoj etapi.[1]

Agilno programiranje predstavlja metodologiju koja nastaje kao odgovor na rigidni metod vodopada. Zagovornici agilnog programiranja smatraju da je nemoguće apsolutno kompletirati ijednu fazu a da ne dođe do grešaka. Kod ove metodologije kreira se veliki broj međuverzija softvera koje prolaze kroz sve navedene etape razvoja, što rezultira malim brojem grešaka i brzim razvojem aplikacije koja odgovara potrebama naručioca. Razvojni tim izbegava uplitanje u hijerarhijske strukture nadređenih i podređenih, a članovi redovno međusobno komuniciraju. U svakom timu učestvuje bar jedan predstavnik klijenta koji je naručio softver. Ova metodologija se zasniva na komunikaciji, a ne na papirologiji i birokratiji. Na ovaj način postiže se visoka fleksibilnost i efikasnost u radu.[2]

U neke od vidova agilnog programiranja spadaju i ekstremno programiranje (XP – eXtreme Programming), rapidni razvoj aplikacija (RAD – Rapid Application Development), minimalističko programiranje (LD – Lean softvare Development), itd.

  1. Waterfall Model, All About the Waterfall Model
  2. Coplien, J.O. and Bjornvig, G. (2010), Lean Architecture for Agile Software Development, Chichester: John Wiley & Sons
  3. Donaldson, S.E. (2001), Successful Software Development, 2nd ed. New Jersey: Prentice Hall
Svi elementi sajta Web'n'Study, osim onih za koje je navedeno da su u javnom vlasništvu, vlasništvo su autora i ne smeju se koristiti, u celosti ili delimično bez pismenog odobrenja autora. To uključuje tekstove, slike, ilustracije, animacije, prateći grafički materijal i programski kod.
Ovaj sajt koristi tehnologiju kolačića (cookies). Detaljnije o tome možete pročitati u tekstu o našoj politici privatnosti.