1 / 26

Razvoj softvera

Razvoj softvera. Software evolution. Sanja Petrovi ć 1110/2012. Uvod u razvoj softvera. Ovde ćemo govoriti zašto je razvoj softvera bitan deo softverskog inženjerstva i objasniti procese razvoja softvera

odeda
Download Presentation

Razvoj softvera

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Razvojsoftvera Software evolution SanjaPetrović 1110/2012

  2. Uvod u razvojsoftvera • Ovde ćemo govoriti zašto je razvoj softvera bitan deo softverskog inženjerstva i objasniti procese razvoja softvera • Bitno je napomenuti da razvoj softvera ne prestaje nakon njegove isporuke već se on nastavlja tokom čitavog životnog ciklusa softvera • Razvoj softvera je veoma bitan jer kompanije ulažu velike količine novca u njiž s obzirom da uglavnom dosta zavise od tog softvera • Takodje mnogo više novca se ulaže u održavanje tog softvera nego u sam razvoj softvera

  3. Razvojsoftveramože bitipokrenutusledizmeneposlovnihzahteva, prilikompojavegrešaka u radusoftverailipromenomsistemanakojem se radi • Kvalitetniikorisnisoftveriuglavnomimaju dug život. Sistemiobicnokoštajudostanovca pa kompanijeteže ka tome da ihšto duže koristekako bi se ulaganjaisplatila

  4. O razvojusoftvera treba da razmišljamokaospiralnomprocesukojipodrazumevazahteve, dizajn, implementacijeitestiranjakoji se dešavajutokomživotnogvekasistema. • Počinjemotakošto pravimoprvoizdanjesistema. • Kada je jednomisporučen, izmene isporučenogizdanjakaoirazvojdrugogizdanjakreću istovremeno. • Potrebazarazvojemmože da se javiipre negošto se sistemisporučišto može dovesti do toga da nekakasnijaizdanjasoftverabudu u fazirazvojaipre negošto je tekuća verzijaobjavljena.

  5. Ovaj model razvojasoftverapodrazumeva da je jednaorganizacijaodgovornaizapočetnirazvojsoftverakaoizakasnijirazvoj • Kupac softveramože napravitidogovorsa nekomdrugomkompanijomkojaće kasnijevršitiodržavanjeirazvojsistema, u ovomslučajuoni bi prekinulitajspiralniproces • Procesmenjanjasoftveranakonisporuke se čestonaziva “održavanjesoftvera”

  6. RajlichiBannett (2000) uvodenovipoglednaodvijanjerazvojasoftvera. U ovommodelu, onipraverazlikuizmeđu razvojaiservisiranja. • Razvoj je fazakojapodrazumevaznačajnepromenekojemogu da se obavenasoftveru. • Servisiranjeje faza u kojoj se vrše neke male, suštinskepromene. • Prilikomrazvoja, softver se uspešno koristiipostojikonstantantokizvršavanja promena na na njemu

  7. Procesrazvojasoftvera • Procesrazvojasoftveradostazavisi od vrstesoftverakoji se održava, procesakoji je korišćen zarazvoj tog softveraiod veštine ljudikojisuuključeniu procesrazvijanja • Predlozipromenasistemasuputokaz u razvojusistema u svimorganizacijama • Procesuočavanjapromenairazvojasistema je cikličan inastavlja se krozživotniveksistema • Arthur (1988) – proces razvoja softvera

  8. Velika razlikaje ta da prvistadijumimplementacijepromena na softverumože da dovede do proučavanjaprograma, pogotovuakoprvobitnirazvijaocsistemanijeodgovoranzaimplementacijupromena • Razumevanjeprograma je neophodno da bi bilisigurni da implementiranapromenaneće prouzrokovatinoveproblemekada se uključiu sistem • Tokomprocesarazvoja, zahtevi se analiziraju do detaljai nekada jepotrebnorazgovaratisaklijentom pre negosto se promene implementiraju

  9. Zahtevizapromenama se nekadodnosenasistemskeproblemekoje je potrebnohitnoresavati. U ovimslučajevimamožda nećemobiti u mogućnostida pratimoprocesformalneanalizepromena • Opasnost je ta što zahtevi, dizajnsoftveraikod ne ostaju u skladu • Ovde se uvek birabrže iefektivnijerešenjenegonajboljemoguće svedok je sistem u kritičnojfazi • Ovoubrazavaprocesstarenjasoftveratako da kasnijepromenepostajusvekomplikovanijeiodržavanjesistemapostajeskuplje

  10. Agilnemetodeiprocesise mogukoristitizarazvojprograma • Problemise mogujaviti u situacijamakada se vršipredajasoftvera od timakojinapraviosoftvertimukojiučestvujeu kasnijemrazvoju tog softvera • stvaralačkitimkoristiagilnipristup,a razvojnitimne • zaizradusoftvera sekoristipristupzasnovannaplaniranju, a za kasniji razvoj agilne metode

  11. Dinamikarazvojaprograma • Dinamikarazvojaprograma je studija o promenamasistema • Lehman iBeladysusprovelinekolikoempirijskistudija o promenisistemasaciljem da što više uzmu u obzirkarakteristikerazvojasoftvera • Iz ovih studija potekli su „Lehmanovizakoni“

  12. Prvizakonkaže da je održavanjesistemaneizbežan proces • Drugizakonkaže da ako je sistempromenjen, njegovastruktura je degradirana • Trećizakon je najzanimljiviji. Predlaže da velikisistemiimajusopstvenudinamikukoja je osnovana u ranojfazirazvoja • Lehmanovčetvrtizakongovori o tome dapromenaresursailipromenaosobljaimaminimalanefekatnadugoročan razvojsistema • Lehmanovpetizakongovori da što se više funkcionalnostidodajeviše je iproblemakojinastajuikoji se morajurešiti • Seštiisedmizakonsusličniiu suštinikažu da će korisnicisoftverabitijakonesrećnisvedok je softver u fazirazvojaidok se dodajunovefunkcionalnosti

  13. Održavanjesoftvera • Održavanjesoftverapodrazumevapromenesistemanakonnjegovogisporučivanja. • Promenenasoftverumogubitipromenekojesu se pojavile u koduprilikomkodiranja, maloveća promenabi bilapromena u dizajnu, promeneradiispravljanjagrešaka u specifikacijiilipromeneusledubacivanjanovihzahteva • Promene se implementirajumenjajućipostojećisistemigde je to potrebno, dodavanjenovihkomponenata u sistem

  14. Postoje tri različitatipaodržavanjasistema: • Popravkegrešaka- jeftinezakorekciju • Adaptacijanaokruženje- kada ne postojiskladsasistemskimokruženjemkaošto je hardver • Dodavanjefunkcionalnosti- kadadođe do promena u sistemskimzahtevima • Softverskegreškesučestapojavajerkorisnicičestokoristesofvernanekineočekivaninačin. Promenasistemakakobi seolakšaorad nanjimaje najboljinačin zarešavanjeovihproblema.

  15. Rad tokomrazvojasoftverana tome da softveručinimolakšimzarazumevanjeimenjanjenajverovatnijedovodi do kasnijegsmanjenjatroškovaprilikomrazvoja • To je razlogzarefaktorisanje u agilnomrazvoju. • Bezrefaktorisanjakodpostajesveviše i više komplikovaniskupzapromene • U razvojuzasnovanomnaplaniranjurealnost je da je dodatnoulaganje u poboljšanjekodavrloretkoprilikomrazvoja

  16. Obično je mnogoskupljedodavatifunkcionalnostikada je sistemvećisporučen: • Stabilnosttima • Loša praksarazvoja • Starostprogramaistruktura • Veštine osoblja

  17. Prognozeodržavanja • Što suprogramikompleksniji to je skupljekasnijeodržavanjesistema • Kako bi se smanjilitroskoviodržavanjatreba se truditi da kompleksnedeloveprogramazamenimomanjekompleksnimalternativama • Nakonšto sistempustimo u korišćenje, možemoiskoristiti to da pogledamorezultateradakako bi predvideliprocesodržavanjasistema

  18. Softverskireinženjering • Mnogisistemi, pogotovustarijisistemi, suteškizarazumevanjeimenjanje • Kako bi učinilida starijisoftveribudulakšizaodržavanje, možemose bavitireinženjeringomovihsistemainatajnačin unapreditinjihovustrukturuirazumljivost • Reinženjeringmože obuhvatitipreuređivanjedokumentacije, refaktorisanjearhitekturesistema, prevođenjeprogramanamoderneprogramskejezikeimodifikacijui ažuriranjestruktureivrednostisistemskihpodataka

  19. Prednostireinženjeringau odnosunazamenusoftvera: • Smanjenaopasnost • Smanjenitroškovi • Ulaz u procesuglavnomobuhvatanekistarisoftver, dokizlazizprocesaobuhvataistitajsoftversamopoboljšan

  20. Osnovnikoraci u reinženjeringu: • Prevođenjeizvornogkoda • Prepravljanjesoftvera • Unapređivanjeprogramskestrukture • Rekonstruisanjepodataka • Programskireinženjeringne morasadržatisveprethodnonavedenekorake • Problem kodsoftverskogreinženjeringaje tajšto postojegranice u tome kolikomožemoda unapredimosistemkoristeći inženjering

  21. Preventivnoodržavanjesistemarefaktorisanjem • Refaktorisanje je procesuvođenjapoboljšanja u sistemradiusporavanjadegradacijeprilikompromena. To podrazumevamodifikovanjeprogramakako bi se unapredilanjegovastruktura, kako bi se smanjilanjegovakompleksnostilikako bi gaučinilijednostavnijimzarazumevanje • Refaktorisanjenanekinačin smanjujeprobleme u budućimizmenama • Refaktorisanje je kontinuiranprocesunapređivanjazavremerazvojasoftvera • Refaktorisanje je sastavnideoagilnihmetodaaline zavisi od drugihagilnihmetodaimože se primenitibilogde

  22. Primerikoda “kojismrdi” a koji se može unapreditirefaktorisanjem: • Ponavljajućikod • Dugačkimetodi • Switch-case naredba • Lanciporuka (data clumping) • Spekulativnouopštavanje

  23. Upravljanjezastarelimsistemom • Mnogefirmeimajujošuvekzastarelesistemezakojeimajuograničene budžetezaodržavanjeiunapređivanjesistema. • Postoje4 strategijskemogućnosti za unapređenje ovih sistema: • Uništitisistemkompletno • Ostavitisistemneizmenjenikrenutisaregularnimodržavanjem • Rekonstruisanjesistemakako bi se unapredilonjegovoodržavanje • Zamenitideoiliceostarisistemnovimsistemom

  24. KadaprocenjujemostarisistemmoramogaposmatratiizposlovneitehničkeperspektiveKadaprocenjujemostarisistemmoramogaposmatratiizposlovneitehničkeperspektive • Tada kombinujemoposlovnevrednostiikvalitetsistemakako bi lakše odlučilišta da radimosazastarelimsistemom • Loškvalitet, niskaposlovnavrednost • Loškvalitet, visokaposlovnavrednost • Visokkvalitet, niskaposlovnavrednost • Visokkvalitet, visokaposlovnavrednost

  25. Kako bi proceniliposlovnuvrednostsistemaneophodno je odreditiakteresistema, kaostosukrajnjikorisniciinjihovimenadžeriipostavitiimserijupitanja o sistemu • Koliko je sistemkoristan • Kojeposlovneprocesesoftverpodrzava • Pouzdanostsistema • Rezultatiradasistema

  26. Kako bi procenilitehničkikvalitetaplikativnogsistemamoramoproučitinizfaktorakoji se prvenstvenoodnosenapouzdanost, kompleksnostodržavanjasistemakaoinanjegovudokumentaciju • Podacikojimogubitikorisni u procenikvaliteta: • Brojzahtevazaizmenusistema • Brojkorisnickihinterfejsa • Kolicinapodatakakojekoristisistem

More Related