Razvoj softvera

S Vikipedije, slobodne enciklopedije

Razvoj softvera (poznat i kao razvoj aplikacija, dizajn softvera, dizajniranje softvera, razvoj softverskih aplikacija)[1] predstavlja razvoj softverskog proizvoda. Izraz „razvoj softvera“ može da se koristi i za računarsko programiranje, što predstavlja proces pisanja i održavanja izvornog koda, ali u širem smislu uključuje sve korake u izradi softvera, počev od dizajna željenog softvera, pa sve do konačnog proizvoda. Razvoj softvera stoga može da uključi istraživanje, novi razvoj, prototipove, izmene, ponovnu upotrebu, održavanje, ili bilo koju drugu aktivnost koja dovodi do softverskog proizvoda.[2]

Ciljevi razvoja softvera mogu biti razni, od kojih su tri najčešća - ispunjavanje određenih zahteva klijenata, ispunjavanje uočenih potreba određene grupe potencijalnih korisnika, ili lična upotreba.

Potreba za boljom kontrolom kvaliteta procesa razvoja softvera je dovela do razvoja discipline softverskog inženjerstva, koja za cilj ima primenu sistematskog pristupa svojstvenog inženjerskoj paradigmi u procesu razvoja softvera.

Pregled[uredi | uredi izvor]

Postoji nekoliko različitih pristupa razvoju softvera. Nekad se u razvoju poslovnih rešenja koristi više strukturirani, inženjersko-bazirani pristup, a nekad se može koristiti više inkrementalni pristup, u kom se softver razvija deo po deo. Većina metodologija ima neku kombinaciju navedenih koraka softverskog razvoja:

  • Analiziranje problema
  • Istraživanje tržišta
  • Prikupljanje zahteva za predloženo poslovno rešenje
  • Smišljanje plana ili dizajna za softverski-bazirano rešenje
  • Implementacija (programiranje) softvera
  • Testiranje softvera
  • Diplojment
  • Održavanje i otklanjanje grešaka

Zavisno od pristupa razvoju softvera, ovi koraci se mogu sprovesti u drugačijem redosledu, a vreme koje im se posvećuje može da varira, kao i opsežnost dokumentacije vezane za svaki od njih. Ovi koraci se mogu izvršavati sukcesivno ("vodopad“ pristup), ili se mogu ponavljati kroz nekoliko ciklusa ili iteracija ("ekstremniji“ pristup). U ekstremnijem pristupu se obično manje vremena troši na planiranje i dokumentaciju, dok se više vremena troši na programiranje i razvoj automatizovanih testova. Ovaj pristup takođe podstiče testiranje tokom celog procesa razvoja softvera, kao i neprekidno postojanje radne verzije (verzije bez bagova) proizvoda. U „vodopad“ pristupu, koji je više strukturiran, se nastoji da se proceni većina rizika, te da se napravi detaljan plan za softver pre nego što počne implementacija (programiranje), i da se izbegnu značajnije promene dizajna i ponovno kodiranje u kasnijim koracima razvoja softvera.

Postoje značajne prednosti i mane različitih metodologija, te je najbolje na osnovu tipa problema odabrati pristup za rešavanje problema korišćenjem softvera. U slučaju dobrog razumevanja problema, i mogućnosti efektivnog planiranja unapred, najbolji pristup može biti onaj zasnovan na „vodopadu“. Sa druge strane, ako je problem jedinstven (barem iz ugla tima koji radi razvoj), i ako strukturu softverskog rešenja nije lako predvideti, „ekstremni“ inkrementalni pristup bi možda najviše odgovarao.

Reference[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]