evolucija softvera n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Evolucija softvera PowerPoint Presentation
Download Presentation
Evolucija softvera

Loading in 2 Seconds...

play fullscreen
1 / 31

Evolucija softvera - PowerPoint PPT Presentation


  • 122 Views
  • Uploaded on

Evolucija softvera. Procena troškova Predikcija izmena Analiza uticaja. Sadržaj. Uvod Procena troškova Predikcija izmena Analiza uticaja. Održavanje softvera.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Evolucija 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
evolucija softvera

Evolucija softvera

Procena troškova

Predikcija izmena

Analiza uticaja

sadr aj
Sadržaj
  • Uvod
  • Procena troškova
  • Predikcija izmena
  • Analiza uticaja
odr avanje softvera
Održavanje softvera
  • Održavanje softvera se definiše kao: “Promene koje trebaizvršiti na računarskom programu nakon što je on isporučen korisniku.”
  • Održavanje softvera obuhvata:
    • Održavanje ispravnosti (engl. Corrective maintenance)
    • Adaptivno održavanje (engl. Adaptive maintenance)
    • Održavanje savršenosti (engl. Perfective maintenance)
    • Povećanja (engl.Enhancements)
  • Svaka nova promena utiče na ukupne troškove projekta
sadr aj1
Sadržaj
  • Uvod
  • Procena troškova
  • Predikcija izmena
  • Analiza uticaja
procena tro kova 1
Procena troškova (1)
  • Procene troškova se bazirana na jednostavnoj pretpostavci da što više posla mora da se uradi, veći će biti troškovi
  • Troškovi održavanja predstavljaju značajan deo ukupnih troškova tokom celokupnog životnog veka projekta
  • Obično su veći od troškova razvoja projekta:
    • Sa faktorom 2 do 100 zavisno od aplikacije
  • Uvećavaju se tokom održavanja softvera:
    • Održavanje kvari strukturu softvera čineći dalje održavanje još težim
    • Ovo se potvrđuje Lemanovim zakonima evolucije softvera:
      • Uvećanje kompleksnosti
      • Nastavak rasta
      • Smanjenje kvaliteta
procena tro kova 2
Procena troškova (2)
  • Spoljni faktori koji utiču na troškove održavanja:
    • Stabilnost tima
      • Troškovi održavanja su smanjeni ako isti tim programera održava softver duže vreme
    • Ugovorena odgovornost
      • Ako programeri koji razvijaju softver nemaju ugovorenu odgovornost za održavanje, tada ne postoji podsticaj za dizajniranje koje se odnosi na buduće promene. Ovo rezultira loše struktuiranim softverom
    • Iskustvo tima
      • Tim za održavanje obično čine neiskusni programeri koji imaju ograničen domen znanja, uopšteno i u vezi sa samim softverom koji se održava
    • Starost i struktura programa
      • Kako programi stare, njihova struktura degradira i postaje sve teža za razumevanje i modifikaciju
procena tro kova 3
Procena troškova (3)
  • U 2001. g., više od 50 posto softverske populacije bilo je zaduženo u modifikovanju postojećih aplikacija, nego na pisanju novih
  • Procene troškova održavanja i uloženog napora pomažu da se adekvatno isplanira i tim za održavanje softvera
modeli procene tro kova odr avanja 1
Modeli procene troškova održavanja (1)
  • COCOMO model održavanja (procena uloženog napora)
    • (MM)AM= (ACT)(MM)DEV

(MM)AM: godišnji napor održavanja

(MM)DEV: napor razvoja

ACT : (engl. annual change traffic)deo softvera koji je podložan promenama tokom jedne godina

  • Koeficijent troškova održavanja/razvoja
    • (MM)M = (M/D)(MM)DEV

(MM)M : napor održavanja tokom celog životnog veka

(MM)DEV: napor razvoja

M/D : koeficijent troškova održavanja/razvoja

modeli procene tro kova odr avanja 2
Modeli procene troškova održavanja (2)
  • Koeficijen produktivnosti održavanja
    • (DSI)MOD/YR = (ACT)(DSI)DEV

(DSI)MOD/YR

    • (MM)AM= ------------------

(DSI/MM)MOD

(DSI)MOD/YR : broj izvornih instrukcija modifikovanih tokom jedne godine

(DSI)DEV : veličina softvera u izvornim instrukcijama

(MM)AM: godišnji napor održavanja

ACT : annual change traffic

(DSI/MM)MOD : koeficijen produktivnosti održavanja (broj izvornih instrukcija modifikovanih po uloženom naporu jednog programera za jedan mesec)

sadr aj2
Sadržaj
  • Uvod
  • Procena troškova
  • Predikcija izmena
  • Analiza uticaja
predikcija izmena 1
Predikcija izmena (1)
  • Zadaci predikcije izmena su da predvidi:
    • Koje sistemske izmene će se sa najvećom verovatnoćom ostvariti
    • Koji delovi sistema će najpre da izazovu najveće poteškoće za tim koji održava softver
    • Ukupne troškove održavanja sistema u datom vremenskom periodu
predikcija izmena 2
Predikcija izmena (2)
  • Ove različite predikcije su usko povezane sa:
    • Da li da bude ili ne prihvaćena izmena u sistemu zavisi, do određene mere, od stepena održavanja komponenti sistema koje su pogođene tom izmenom
    • Implementacija izmena sistema često degradira strukturu sistema i time smanjuje njegov stepene održavanja
    • Troškovi održavanja zavise od broja promena, a cene implementacija izmena zavise od stepena održavanja komponenti sistema
sistem i njegova okolina
Sistem i njegova okolina
  • Predikcija izmena zahteva razumevanje odnosa između sistema i njegove okoline
  • Usko povezani sistemi imaju potrebe za promenama svaki put kada se i okolina menja
  • Faktori koji utiču na ovaj odnos su:
    • Broj i kompleksnost interfejsa sistema
    • Broj nerazdvojivo “halapljivih” sistemskih zahteva
    • Biznis procesi u kojima se sistem koristi
te h nike predikcije izmena
Tehnike predikcije izmena
  • Predikcija izmena zahteva tehnike:
    • Analiza uticaja
      • Da bi predvidela koje će sve komponente sistema biti pogođene izmenom
    • Procena uloženog napora
      • Da bi predvidela napor koji je potreban za modifikaciju ovih komponenti
      • Zavisi od kvaliteta ovih komponenti
    • Procena troškova
      • Da bi predvidela ukupne troškove implementacije izmena
predikcija stepena odr avanja
Predikcija stepena održavanja
  • Istraživanja pokazuju da se najveći deo uloženog napora za održavanje odnosi na mali broj komponenti sistema, koje imaju veliki stepen kompleksnosti
  • Predikcija stepena održavanja se može bazirati na određivanju kompeksnosti
  • Metrike kompleksnosti:
    • Kompleksnost kontrolnih struktura
    • Kompleksnost struktura podataka
    • Veličina procedura i modula
  • Bilo bi korisno zameniti kompleksne komponete jednostavnijim
predikcija stepena odr avanja pomo u procesne metrike
Predikcija stepena održavanja pomoću procesne metrike
  • Merenje procesa može se koristiti za procenu stepena održavanja
    • Broj zahteva vezanih za održavanje ispravnosti
    • Prosečno vreme neophodno za analizu uticaja
    • Prosečno vreme potrebno za implementaciju zahteva za promenom
    • Broj nerešenih zahteva za promenom
  • Ako bilo koji ili svi od ovih parametara počnu da se uvećavaju, to može značiti da dolazi do smanjenja stepena održavanja
predikcija stepena odr avanja odre ivanjem nivoa kohezije i sparivanja
Predikcija stepena održavanja određivanjem nivoa kohezije i sparivanja
  • Dobar dizajn treba da obezbedi lako:
    • Razumevanje, promene, ponovnu upotrebu, testiranje, integraciju i kodiranje
  • Da bi se sve ovo postiglo neophodno je razmotriti:
    • Koheziju jedinice, modula ili komponente koja se definiše kao “stepen povezanosti” unutar date jedinice, modulaili komponente
    • Sparivanjekoje se definiše kao “stepen međuzavisnosti” između softverskih jedinica, modula ili komponenti
slide20

Kohezija

Što viši

to

bolji nivo

slide21

Sparivanje

Što niži

to

bolji nivo

metrike kohezije i sparivanja
Metrike kohezije i sparivanja

Visok nivo

  • Chidamber and Kemerer (C-K) OO metrike:
    • Weighted Methods per class (WMC)
    • Depth of Inheritance Tree (DIT)
    • Number of Children (NOC)
    • Coupling Between Object Classes (CBO)
    • Response for a Class (RFC)
    • Lack of Cohesion in Methods (LCOM)
  • Bieman and Ott metrika:
    • Using Program and Data Slices

Jaka

Tesno

Kohezija

Sparivanje

Slaba

Labavo

Nizak nivo

sadr aj3
Sadržaj
  • Uvod
  • Procena troškova
  • Predikcija izmena
  • Analiza uticaja
analiza uticaja 1
Analiza uticaja (1)
  • Analiza uticaja jepostupak koji predviđa i određuje delove softverskog sistema koji mogu biti pogođeni promenama tog sistema
  • Skup promena: Delovi softverskog sistema koji će biti promenjeni
  • Skup uticaja:Delovi softverskog sitema koji će biti pogođeni tim novim promenama
  • Dva tipa analize:
    • Statička
    • Dinamička
analiza uticaja 2
Analiza uticaja (2)
  • Analiza uticaja je sistematski pristup shvatanja uticaja izmena u softveru i bitan je za:
    • Identifikaciju delova nad kojima je neophodno ponovo pokrenuti testove
    • Poboljšanje procenjenog vremena, rada i novca za održavanje softvera
    • Smanjenje broja potencijalnih grešaka nastalih usled neodkrivenih uticaja izmena
    • Poboljšanje ukupne efikasnosti održavanja softvera
stati ka analiza uticaja
Statička analiza uticaja
  • Zasniva se na analizi izvornog koda
  • Bazirana na predpostavci o svim mogućim ponašanjima softvera u vreme izvršavanja

Može se desiti da rezultati neefikasno uključe veliki deo

softverskog sistema u skup uticaja

Ispitivanje izvornog koda

Analiziranje zavisnosti među programaskim entitetima

Zahtevi za promenama

Skup uticaja

Zapisivanje mogućih ponašanja sistema

dinami ka analiza uticaja
Dinamička analiza uticaja
  • Bazirana na podacima iz vremena izvršavanja softvera i dinamičkim interaktivnim ponašanjima softverskog sistema
  • Zavisi od skupa izvršavanja datog sistema

Teži da proizvede preciznije rezultate nego statička analiza

Izvršavanje softverskog sistema

Analiziranje zavisnosti među programaskim entitetima iz vremenu izvršavanja

Zahtevi za promenama

Skupljanje podataka iz vremena izvršavanja sistema

Skup uticaja

efekat talasa
Efekat talasa
  • Efekat talasa (engl. Ripple effect)
    • Pojava gde promena u jednom delu softverskog sistema utiče na još bar jednu oblast istog softverskog sistema (direktno ili indirektno)

Promena

komponente

Propagacija

izmena

propagacija izmene
Propagacija izmene
  • Propagacija izmene
    • Javlja se kada pravljenje izmene jednog dela softverskog sistema zahteva da ostali delovi sistema koji zavise od njega takođe budu izmenjeni
    • Ovi zavisni delovi sistema, posle izmene, takođe mogu zahtevati promene u drugim delovima softvera
    • Na taj način, jedna izmena u jednom delu sistema može dovesti do propagacije promena kroz čitav softverski sistem
analiza uticaja i propagacija izmena
Analiza uticaja i propagacija izmena
  • Obići komponentu po komponentu sistema
  • Ako je posećena komponenta promenjena, moguće je da više ne odgovara kao takva u sistemu:
    • Sekundarne izmene moraju biti načinjene u susednim komponentama, tj. komponentama sa kojima postoji interakcija
    • Sekundarne izmene mogu pokrenuti nove dodatne izmene:
      • “efekat talasa”
  • Softver nije konzistentan tokom propagacije
  • Skrivena propagacija
    • Sama klasa se ne menja, ali propagira promenu
reference
Reference
  • Seminar on Software Cost Estimation, WS 02/03, Arun Mukhija
  • Software Engineering, 6th Edition, Ian Sommerville
  • Essentials of Software Engineering, Frank F. Tsui, Orlando Karam
  • Object-oriented Software Change Dynamic Impact Analysis, Lulu Huang and Yeong-Tae Song