18
-METODOLOGIJE RAZVOJA SISTEMA- POBOLJŠANJE EFIKASNOSTI PROCESA RAZVOJA I ODRŽAVANJA SOFTVERA Predmetni profesor: dr Živadin Micić Predmetni asistent: mr Marjan Milošević Student: Stefan Mršević 521/2014 IT

Metodologije razvoja softvera

  • Upload
    -

  • View
    40

  • Download
    1

Embed Size (px)

DESCRIPTION

Metodologije razvoja softvera

Citation preview

Page 1: Metodologije razvoja softvera

-METODOLOGIJE RAZVOJA SISTEMA- POBOLJŠANJE EFIKASNOSTI PROCESA RAZVOJA I ODRŽAVANJA SOFTVERA

Predmetni profesor: dr Živadin Micić

Predmetni asistent: mr Marjan Milošević

Student: Stefan Mršević 521/2014 IT

Page 2: Metodologije razvoja softvera

DANAŠNJI TRENDOVI U RAZVOJU SISTEMA

Slika 1. - Trendovi u razvoju modernih informacionih sistema

Page 3: Metodologije razvoja softvera

ČINJENICE Dobar deo IT kompanija koriste zastarele tehnologije i napuštene metodologije

Zbog toga nisu konkurentne na dinamičnom i dinamičnom tržištu IT usluga

Ogroman deo ovih preduzeća i kompanija čine firme koje su davno izradile aplikacije po meri za svoje korisnike

Umesto unapređivanja i dodavanja funkcionalnosti, poboljšanja infrastrukture i efikasnosti aplikacije ove firme se, zahvaljujući dobrim i dugotrajnim ugovorima bave poslovima održavanja starih(legacy) sistema

Brojne kompanije i državna preduzeća su prinuđene da koriste njihove usluge pre svega zbog kompatibilnosti i bezbednosti

Jedan od razloga je i praćenje globalne enterprise politike

Page 4: Metodologije razvoja softvera

POSLOVI NADOGRAĐIVANJA Za poslove nadograđivanja se koriste stari alati i iste metodologije

Nema ulaganja niti istraživanja u nove metode rada ili sistemske i razvojne alate

Stari alati i metode nisu uvek loši, štoviše neke treba i dalje primenjivati ali neophodna je primena najboljih praksi u IT

To se radi na osnovu praćenja rezultata primene novih metodologija

Slika 2 - Statusi html5 specifikacija koje će biti forsirane za primenu u kompanijama standardima u budućnosti.

Page 5: Metodologije razvoja softvera

ANALIZA NOVIH TRENDOVA POMOĆU KLJUČNIH REČI

Slika 3- Planirani trend razvoja modernih sistema

Page 6: Metodologije razvoja softvera

PREDUSLOVI ZA PROMENE

Prihvatanje osnovnih principa agilnog razvoja pri kome prihvatamo stanje konstantnih promena u odnosu na definisane zadatke kao nešto uobičajeno, čak i poželjno.

Kod nekih preduzeća iako postoji želja, problem je u implementaciji.

Pored toga jedan od najčešće spominjanih procesa koji se pokušava implementirati jeste DevOps.

Potporni stubovi ove metodologije leže u olakšavanju komunikacije developera i IT profesionalaca a što se ogleda u efikasnijem procesu isporuke proizvoda

Page 7: Metodologije razvoja softvera

NAJČEŠĆE KORIŠĆENE AGILNE METODE PRILIKOM RAZVOJA I ODRŽAVANJA SOFTVERA

Page 8: Metodologije razvoja softvera

AGILNI RAZVOJ Veoma često korišćen termin

Projektovan sa namenom da reši tradicionalne probleme prilikom razvoja softvera

Dosadašnje metodologije stalno su pokušavale egzaktnom, procesno-sistemskom metodom definisati načine kako razvijati softver

To su npr. metode poput SSADM, Rational Unified Process i dr.

Svaka od ovih metoda analitički je pokušala dati set koraka, odnosno aktivnosti, koje su tipične u razvoju softvera

Međutim i pored toga nastali su problemi koji su se ogledali uglavnom u nemogućnosti detaljnog planiranja vremena razvoja određenog proizvoda kao i nerazumevanja potreba i očekivanja korisnika

Page 9: Metodologije razvoja softvera

AGILNI RAZVOJ(II)

Zbog svega ovoga nastao je skup principa, metoda i tehnika koje zajedničkim imenom možemo nazvati agilnim razvojem.

Osnovna osobina agilnog razvoja jest prihvatanje činjenice da uz aktivnost planiranja razvoja nekog proizvoda prihvatamo promene kao nešto što je normalno i na kraju krajeva dobro za proizvod.

Mnogo puta i pored detaljnog planiranja dešavaju se nepredviđeni troškovi.

Iako su stare metodologije imale u sebi uključenu komponentu upravljanja promenama u sebi metode agilnog razvoja na ovo stavljaju glavni fokus.

Page 10: Metodologije razvoja softvera

OSNOVNI STUB AGILNOG MODELA – KAIZEN

Definicija

Filozofija ili praksa usmerena ka kontinuiranom poboljšanju proizvoda ili procesa proizvodnje.

Reč kaizen zapravo znači „promena je dobra“,

Korišćen je u nekoliko japanskih firmi nakon Drugog svetskog rata

Tu je postigao odlične rezultate kojima su japanske kompanije stekle konkurentsku prednost u odnosu na slične kompanije iz SAD-a ili Evrope. Ovaj princip pretpostavlja kontinuirano poboljšanje u bilo kojoj aktivnosti procesa proizvodnje i bilo kada, odnosno svakodnevno.

Naravno da se ljudi, koliko god žele da se promene, tome i odupiru pa je najveći problem uvođenja Kaizen principa naučiti ljude prihvatiti kulturu svakodnevnog razmišljanjima o poboljšanju kao i prihvatanjem promena.

Primeri su SCRUM, Extreme programming, KANBAN i drugi…

Page 11: Metodologije razvoja softvera

NAJVEĆE KORISTI OD IMPLEMENTIRANJA AGILNOG RAZVOJA

Brža i bolja reakcija na promene zahteva Veći kvalitet krajnjeg proizvoda Veća produktivnost i delotvornost Bolja saradnja između poslovnog dela organizacije i IT-a Prijatnija i produktivnija radna atmosfera

Page 12: Metodologije razvoja softvera

Slika 3 - Primer agilnog razvoja na osnovu Kanban modela u svakodnevnom okruženju prosečnog korisnika na desktopu

Page 13: Metodologije razvoja softvera

DEVOPS

Skraćenica od procesa razvoja i operacija (engl. Development & Operations)

Uz ova dva procesa podrazumevamo I treći a to je osiguranje kvaliteta

Korene DevOps pravca započeo je Belgijanac Patrik Debois koji je radeći u mnogobrojnim kompanijama zatekao mnoge probleme u razvoju informacionih sistema

Veliki broj njih je upravo nastao zbog loše komunikacije između razvojnih i sistemskih inženjera

Pokušao je da nađe rešenje pokrenuvši DevOps konferenciju 2009. godine

Page 14: Metodologije razvoja softvera

KLJUČNE KOMPONENTE DEVOPS PRAVCA

Tri ključne komponente DevOps pravca su razvoj, operacije i osiguranje kvaliteta

Page 15: Metodologije razvoja softvera

DEFINICIJA

• Definicija ovog pravca govori o DevOpsu kao softverskoj razvojnoj metodi koja naglašava komunikaciju, kolaboraciju i integraciju između razvojnih softverskih inženjera i sistemskih inženjera.

• Radi se o skupu tehnika koje kao rezultat imaju kvalitetan kontinuirani razvoj, održavanje i isporuke softvera.

• DevOps naglašava kolaboraciju između različitih radnih jedinica odnosno radnih mesta.

• Danas je čest slučaj da programeri i sistem administratori, data manager-i ne sede zajedno u istom prostoru, i da čak iako ponekad zajedno rade sama komunikacija je neretko spora i slaba, nepotpomognuta zajedničkim razvojnim i operacijskim alatima.

• DevOps ovde vidi veliki prostor za poboljšanje te forsira upotrebu kolaborativnih alata i zajedničkih razvojnih alata čije parametre prate i jedni i drugi.

• Zbog ovoga su svađe među raznim projektnim ulogama ređe, a prekovremeni rad znatno smanjen, što kao rezultat ima češće isporuke sa znatno manje grešaka nego što je uobičajeno (sličnost s agilnim metodama razvoja).

• Ovakav način rada podrazumeva da se mnoge razvojne aktivnosti, koje bi se inače ručno radile, automatiziraju.

• Ovo su prepoznale mnoge kompanije sa izbacivanjem raznih softverskih alata sa DevOps funkcionalnostima, a većina njih pomaže u automatizaciji procesa isporučivanja (engl. release management), upravljanju konfiguracijama (engl. configuration management) i nadzoru rada isporučenih proizvoda.

Page 16: Metodologije razvoja softvera

NOVA ZANIMANJA

Sve ovo dovelo je do stvaranja novih zanimanja u IT svetu poznatijih kao DevOps engineer.

To su osobe koje znaju dosta o razvoju informacionih sistema a istovremeno su tehnički potkovani za rad na mnogobrojnim platformama.

Page 17: Metodologije razvoja softvera

KONTROLNA PITANJA

Nabrojati razloge korišćenja starih softverskih metodologija Osnovni problem implementacije novih softverskih metodologija Šta je agilni razvoj? Šta je kaizen? Koje su najveće koristi od implementiranja novih softverskih metodologija? Koje su osnovne karakteristike DevOps pravca?

Page 18: Metodologije razvoja softvera

LITERATURA

[1] Robert Maurer Ph.D., “One Small Step Can Change Your Life: The Kaizen Way”, Amazon Kindle direct publishing, 2014[2] dr. Živadin Micić, Autorizovana predavanja, Fakultet tehničkih nauka u Čačku, 2015[3] Karl Wiegers, Joy Beatty, Software Requirements (3rd Edition) (Developer Best Practices), Amazon Kindle direct publishing, 2013