evolucija softvera

Download Evolucija softvera

Post on 04-Jan-2016

54 views

Category:

Documents

2 download

Embed Size (px)

DESCRIPTION

Evolucija softvera. Uvod. Sadržaj. Definicija održavanja i evolucije softvera Tipovi održavanja i evolucije Zašto softver evoluira Otpornost na promene Klasifikacija aktivnosti rein ženjeringa softvera. Održavanje softvera. Održavanje softvera je - PowerPoint PPT Presentation

TRANSCRIPT

  • Evolucija softvera

    Uvod

    Evolucija softvera

    SadrajDefinicija odravanja i evolucije softveraTipovi odravanja i evolucijeZato softver evoluiraOtpornost na promeneKlasifikacija aktivnosti reinenjeringa softvera

    Evolucija softvera

    Odravanje softveraOdravanje softvera jeProces modifikacije softverskog sistema ili komponente nakon isporuke radi ispravljanja greaka, poboljanja performansi ili drugih atrubuta ili prilagodjenja novoj sredini [IEEE Std 610.12-1999]Softverski proizvod podlee modifikaciji koda i odgovarajue dokumentacije usled nekog problema ili potrebe za poboljanjem. Cilj toga je da se modifikuje postojei softverski proizvod a da se u isto vreme sauva njegov integritet. [ISO Std 12207]

    Evolucija softvera

    Odravanje softveraModifikacija programa nakon to je ve stavljen u upotrebuOdravanje obino ne obuhvata promenu osnovne konstrukcije sistema.Promene se implementiraju modifikacijom postojeih i dodavanjem novih komponenti u sistem

    Evolucija softvera

    Evolucija softveraEvolucija softvera jeniz aktivnosti, tehnikih i rukovodstvenih, koje obezbeuju da softver nastavlja da ispunjava organizacione i poslovne ciljeve pritom iskoriavajui poverena sredstva na najbolji nain (Institut za istraivanja na polju evolucije softvera)[Research Inst. On Sw. Evolution]svaka programerska delatnost koja je namenjena stvaranju nove verzije softvera od neke ranije verzije (Lehman i Ramil 2000) primena mera(aktivnosti) i procesa odravanja softvera koji stvaraju novu radnu verziju softvera sa promenjenom funkcionalnou (prema iskustvima korisnika) ili sa svojstvima prethodne radne verzije, zajedno sa odgovarajuim merama i procesima koje osiguravaju kvalitet, i rukovoenjem tim merama i procesima (Ned Chappin 1999)

    Evolucija softvera

    SadrajDefinicija odravanja i evolucije softveraTipovi odravanja i evolucijeZato softveri evoluirajuOtpornost na promeneKlasifikacija aktivnosti reinenjeringa softvera

    Evolucija softvera

    Tipovi odravanja softveraPrema standardu ISO/IEC 14674 za softverski inenjering - odravanje softveraAdaptivno odravanjeModifikacija softverskog proizvoda koja se izvodi nakon isporuke, a sa ciljem da se tom softverskom proizvodu sauva upotrebna vrednost u promenjenoj sredini ili sredini koja se upravo menja."Korektivno odravanje"Reaktivna modifikacija softverskog proizvoda koja se vri nakon isporuke, radi popravke otkrivenih greaka."

    Evolucija softvera

    Tipovi odravanja softveraPrema standardu ISO/IEC 14674()Perfektivno odravanje"Modifikacija softverskog proizvoda nakon isporuke radi unapreenja performansi ili odrivosti."(takoe ukljuuje i dodavanje novih karakteristika)Preventivno odravanje"Modifikacija softverskog proizvoda nakon isporuke, sa ciljem da se detektuju i isprave skrivene greke u tom softverskom proizvodu pre nego da postanu delotvorne."

    Evolucija softvera

    Tipovi odravanja softveraPrema standardu ISO/IEC 14674 za softverski inenjering - odravanje softvera

    Zato?Kada?IspravkaUnapreenjeProaktivnaPreventivnaPerfektivnaReaktivnaKorektivnaAdaptivna

    Evolucija softvera

    Tipovi odravanja softveraKlasifikacija zasnovna na objektivnom dokazu [Chapin i drugi 2001]Klasifikuje evoluciju softvera i mere i procese odravanja unutarsoftvera (ukljuujui dokumentaciju)kodafunkcionalnosti za korisnikaporedei softver pre i posle evolucije12 identifikovanih tipova odravanja softvera.

    Evolucija softvera

    Tipovi odravanja softveraDa li je softver promenjen ?ObukaKonsultacijaVrednovanjeNeDa li je izvorni kod promenjen?4. Reforma5. OsavremenjivanjeDaNeDa li je funkcija promenjena?6. Pospremanje7. Preventiva8. Performanse9. AdaptacijaDaNe10. Redukcija11. Popravka12. UnapreenjeDa

    Evolucija softvera

    Tipovi odravanja softveraDa li su ove mere izmenile softver ? Ne.(1. Obuka) Da li su ove aktivnosti upotrebile softver kao predmet obuke korisnika?(2. Konsultacija) Da li su ove aktivnosti upotrebile softver kao osnovu konsultacija?(3. Vrednovanje) Da li su ove aktivnosti obuhvatile i vrednovanje softvera?Da li su ove aktivnosti izmenile kod? Ne.(4. Reforma) Da li su ove aktivnosti uinile da se nekodska dokumentacija bolje prilagoava korisnicima?(5. Auriranje) Da li su ove aktivnosti uinile da je nekodska dokumentacija bolje prilagoena implementaciji?

    Evolucija softvera

    Tipovi odravanja softveraDa li su ove aktivnosti promenile stepen funkcionalnosti za korisnika? Ne.(6. Pospremanje) Da li su ove aktivnosti promenile ergonomske aspekte ili bezbednost?(7. Preventiva) Da li su ove aktivnosti zaobile ili smanjile posao odravanja u budunosti?(8. Performanse) Da li su ove aktivnosti promenile performanse softvera?(9. Adaptacija) Jesu li ove aktivnosti promenile tehnologiju ili resurse koji se koriste?

    Evolucija softvera

    Tipovi odravanja softveraAko je odgovor na "C" DA.(10. Redukcija) Da li su aktivnosti ograniile ili smanjile funkcionalnost za korisnika? (11. Korekcija) Da li su ove aktivnosti ispravile funkcionalnost za korisnika? (12. Unapreivanje) Da li su ove aktivnosti zamenile, dodale ili proirile funkcionalnost za korisnika?

    Evolucija softvera

    SadrajDefinicija odravanja i evolucije softveraTipovi odravanja i evolucijeZato softver evoluiraOtpornost na promeneTaksonomija delatnosti reinenjeringa softvera

    Evolucija softvera

    Trokovi odravanja/evolucije

    Evolucija softvera

    Glavni razlozi evolucije softveraPromene u zahtevima korisnika(potroaa) Modifikacije i proiranja na osnovu zahteva od strane korisnikaOtklanjanje greakaRedovne popravkeVanredne popravke - koje vie kotaju usled velikog pritiskaPromene u formatima podatakaY2K, Euro, poreske stope, potanski kodovi, telefonski brojevi...Novi standardi: UML, XML, wsdl, json,...promene hardveraUnapreenja efikasnosti

    Evolucija softvera

    SadrajDefinicija odravanja i evolucije softveraTipovi odravanja i evolucijeZato softver evoluiraOtpornost na promeneKlasifikacija aktivnosti reinenjeringa softvera

    Evolucija softvera

    Starenje softveraMoramo nauiti kako da ponitimo efekte(posledice) starenja.Programi, kao i ljudi, stare. Ne moemo da spreimo zastarevanje, ali moemo razumeti njegove razloge, preduzeti korake da ograniimo njegove posledice, s vremena na vreme ponititi neke od oteenja koje je prouzrokovalo i pripremiti se za dan kada taj softver nee vie biti odriv. (Parnas, 1994.)

    Evolucija softvera

    Starenje softvera (...)Razlozi starenja softveraOdravanjeNeuka nadogradnja i razgradnja njegove konstrukcijenefleksibilnost od samog poetkanedovoljna ili nesaglasna dokumentacijapritisak rokovadvostruka funkcionalnost (duplikacija koda)odsustvo modularnosti...Mogue reenje: reinenjering

    Evolucija softvera

    Nasleeni sistemi - definicijeSvaki informacioni sistem koji odoleva promenama. [program-transformation.org]Postojei raunarski sistem ili aplikacioni program koji nastavlja da se koristi i dalje, zbog toga to korisnik (obino neka organizacija) da ga zameni ili ga redizajnira. Mnogi ljudi koriste ovaj izraz da oznae "zastarele" sisteme. (wikipedia)

    Evolucija softvera

    Nasleeni sistemi - definicijeIz perspektive "novih trendova u tehnologiji" ak i potpuno funkcionalan i dobro odravan sistem se samtra nasleenim ako je zasnovan na zastareloj tehnologiji. (Pogledi na reizgradnju nasleenih sistema, SEI CMU 1995) Iz ekonomske perspektive sistem se smatra nasleenim ako ne moe da prati stopu promena u domenu biznisa. (Alderson, Cacm, 1999)

    Evolucija softvera

    Problemi sa nasleenim sistemimaesto rade na zastarelom hardveruTeko ih je odravati, poboljati i proiritiOpte odsustvo razumevanja sistema:Nema nikoga da objasni kako sistem radiDokumentacija i uputstva za upotrebu se s vremenom izgube Teko ih je integrisati sa mlaim sistemima

    Evolucija softvera

    Razlozi uvanja nasleenih sistemaTrokovi redizajniranja sistema su faktor koji ga (redizajniranje) spreava upravo zato to je ono veliko, monolitno i/ili sloeno.Sistem mora biti dostupan skoro 100%, pa ne moe tek tako da se iskljuiLjudi ne razumeju nain na koji sistem radi Korisnik oekuje da se sistem moe lako zameniti novim kada to postane neophodno.Sistem radi zadovoljavajue, i vlasnik ne vidi razloga da ga menja.

    Evolucija softvera

    Nasleeni sistemi - Mogue reenjeReinenjering jeste sistematsko transformisanje postojeeg sistema u nov oblik radia) ustanovljenja poboljanja u kvalitetu rada, sposobnosti sistema, funkcionalnosti i svojstvima ilib) mogunosti sistema da se razvija (evolventnosti) uz manje trokove, manje planiranje ili manji rizik za korisnika.

    Evolucija softvera

    SadrajDefinicija odravanja i evolucije softveraTipovi odravanja i evolucijeZato softver evoluiraOtpornost na promeneKlasifikacija aktivnosti reinenjeringa softvera

    Evolucija softvera

    Domen reinenjeringa softveraNormalan razvoj softvera (forward engineering)Reverzni inenjeringRedokumentacijaObnova projektaRazumevanje programaRestrukturiranjeReinenjeringReverzna specifikacija Rekodiranje (ponovno kodiranje)Redizajn (otkrivanje projekta)Respecifikacija (ponovna specifikacija)

    Evolucija softvera

    Normalan razvojUobiajeni softverski proces koji tee od funkcionalne specifikacije i dizajna ka fizikoj implementaciji sistema

    Evolucija softvera

    Softversko reverzno inenjerstvoDef. Dvofazni procesIzvlaenje informacijaApstrakcija informacijaDef. Trofazni proces [Tilley95]Prikupljanje informacijaOrganizacija znanjaUpravljanje, analiza i prezentacija informacijamaDef. Sistem koji anlizira temu [CC90]Da bi se identifikovale njegove trenutne komponente i njihova meuzavisnostda bi se izvukle i stvorile sistemske apstrakcije i informacija za dizajnDotini sistem se ne menja: meutim, menja se dodatno znanje o sistemu koji se proizvodi

    Evolucija softvera

    Reverzni inenjering u odnosu na druge delatnosti

    Evolucija softvera

    Razumevanje