osio_08.1_procesi_odrzavanja_softvera_2015.0_3.11

46
Univerzitet u Kragujevcu FAKULTET TEHNIČKIH NAUKA ČAČAK Predmetni nastavnik: dr dr Živadin Micić Živadin Micić 11. III 2015. - Procesi održavanja u živ. ciklusu softvera, modeli procesa i zadaci održavanja IT Predmet: OS i OS i održavaje održavaje Softverski inženjering

Upload: acikamvulovic

Post on 21-Dec-2015

213 views

Category:

Documents


0 download

DESCRIPTION

OSiO_08.1_Procesi_odrzavanja_softvera_2015.0_3.11

TRANSCRIPT

Univerzitet u Kragujevcu FAKULTET TEHNIČKIH

NAUKA ČAČAK

Predmetni nastavnik:drdr Živadin Micić Živadin Micić

11. III 2015.

- Procesi održavanja u živ. ciklusu softvera, modeli

procesa i zadaci održavanja

IT

Predmet: OS i održavajeOS i održavaje

Softverski inženjering

IT - Ž. Micić ---/ 2015FTN 2/48

1 Sadržajni okvir i zadaci nastavne/ temastke jedinice

2 Osnovni pojmovi, definicije, koncepti, proces održavanja

u životnom ciklusu softvera (ŽCS) – aktivnosti – zadaci Klasični razvojni modeli softvera

(ŽCS - IS održavanja – IV deo) Problem održavanja i evolucije softvera Evolutivni modeli održavanja softvera

11 Aktivnosti studenata i kontrolna pitanja12 Literatura

SadržajSadržaj

1 Sadržajni okvir i zadaci nastavne/tematske jedinice

8. Procesi održavanja, zadaci i efikasnost – potrebe za praćenjem efikasnosti održavanja - u fokusu

su procesi održavanja (tematski) aktivnosti i procesi održavanja: “управљање садржајем, распоређивање садржаја (фајл систем, структура...), администрација сервера, упутства и група за управљање, Backup, менаџмент безбедности, управљање ресурсима, аутоматизација управљања (аутоматско заказивање посла), системска подршка, корисничка подршка и образовање za odžavanje.”

3/48

Funkcija ZA UPRAVLJANJE

KONTROLERIMA I/O UREĐAJA

Funkcija ZA UPRAVLJANJE

PROCESOROM

Funkcija ZA UPRAVLJANJE MEMORIJOM

Funk

cija

ZA

UPR

AVLJ

ANJE

DAT

OTE

KAM

A

Zadatak OPERATIVNOG SISTEMA je da upravlja fizičkim

(procesor, kontroleri i radna memorija) i logičkim (datoteke i procesi) delovima računara, pa

se OS može posmatrati sa aspekta upravljačkih funkcija:

VIII

IX

XI

II

Funkcija ZA UPRAVLJANJE PROCESIMA

III

Funkcija ZA UPRAVLJANJE

KONFIGURACIJOM/ ARHITEKTUROM

X

Funkcija ZA PODRŠKU

APLIKACIJAMA

XII

Funkcija ZA UPRAVLJANJE PREKIDIMA

V-VIFunkcija ZA RAD U

LOKALNIM MREŽAMAFunkcija ZA

PODRŠKU GLOBALNIM MREŽAMA

1 Sadržajni okvir i zadaci

nastavne/ temastke jedinice

Funkcija ZA UPRAVLJANJE

KONTROLERIMA I/O UREĐAJA

Funkcija ZA UPRAVLJANJE

PROCESOROM

Funkcija ZA UPRAVLJANJE MEMORIJOM

Funk

cija

ZA

UPR

AVLJ

ANJE

DAT

OTE

KAM

A

Funkcija ZA UPRAVLJANJE PROCESIMA

Funkcija ZA UPRAVLJANJE

KONFIGURACIJOM/ ARHITEKTUROM

Funkcija ZA PODRŠKU

APLIKACIJAMA

XII

Funkcija ZA

UPRAVLJANJE

PREKIDIMA

Funkcija ZA RAD U

LOKALNIM

MREŽAMAFunkcija ZA PODRŠKU

GLOBALNIM MREŽAMA

2.

Man

agem

ent -

Rukov

odst

vo

3. Men - Čovek

4. Method/model –

Metod/model razvoja softvera

5. Metrics – Merenje (9126-

x)

6. Milieu – Okruženje

10. Measurement -

Merenje9. Material - Materijal

7. Maintenance - Održavanje

11. Memory - Memorija

8. Machine - Mašina

10M10M

Analogija: OS – IS u održavanju?

Funkcija ZA UPRAVLJANJE

KONTROLERIMA I/O UREĐAJA

Funkcija ZA UPRAVLJANJE MEMORIJOM

Funk

cija

ZA

UPR

AVLJ

ANJE

DAT

OTE

KAM

A

VIII

IX

XI

II

Funkcija ZA UPRAVLJANJE PROCESIMA

III

Funkcija ZA UPRAVLJANJE

KONFIGURACIJOM/ ARHITEKTUROM

X

Funkcija ZA PODRŠKU

APLIKACIJAMA

XII

Funkcija ZA UPRAVLJANJE PREKIDIMA

V-VI Funkcija ZA RAD U LOKALNIM MREŽAMA

Funkcija ZA PODRŠKU

GLOBALNIM MREŽAMA

MODUL ZA UPRAVLJANJE PROCESOROMPROCESOROM

Uvodi operaciju preključivanja čiji poziv dovodi do preključivanja

procesora sa jedne niti na drugu, koje mogu pripadati istom ili raznim

procesima.U toku preključivanja procesora između niti istog procesa ne dolazi

do izmene adresnog prostora procesa, pa je ovakvo

preključivanje brže (kraće) nego preključivanje procesora između

niti raznih procesa.

Po analogiji: kreirati IS u održavanju?

Funkcija ZA UPRAVLJANJE

KONTROLERIMA I/O UREĐAJA

Funkcija ZA UPRAVLJANJE MEMORIJOM

Funk

cija

ZA

UPR

AVLJ

ANJE

DAT

OTE

KAM

A

VIII

IX

XI

II

Funkcija ZA UPRAVLJANJE PROCESIMAPROCESIMA

Funkcija ZA UPRAVLJANJE

KONFIGURACIJOM/ ARHITEKTUROM

X

Funkcija ZA PODRŠKU

APLIKACIJAMA

XII

Funkcija ZA UPRAVLJANJE PREKIDIMA

V-VIFunkcija ZA RAD U

LOKALNIM MREŽAMAFunkcija ZA

PODRŠKU GLOBALNIM MREŽAMA

MODUL ZA MODUL ZA UPRAVLJANJE UPRAVLJANJE

PROCESOROMPROCESOROM

Omogućava stvaranje i uništavanje procesa, kao i stvaranje i

uništavanje njihovih niti, odnosno omogućava istovremeno postojanje

više procesa (višeprocesni režim rada), tj. više niti. Poziva operaciju čitanja, radi

preuzimanja sadržaja izvršnih datoteka, koje su potrebne za

stvaranje slike procesa, a pošto je za stvaranje slike procesa potrebna radna memorija,

pozivaju se i operacije zauzimanja, odnosno oslobađanja.

III

Elementi IS-a i podsistem održavanja u okruženju poslovnog sistema

Marketing

Alati

Naabavka CAP

Zahtevi Planiranje

PROIZVODNI PROCESI Podaci o kvalitetu

CAM

Korisnici

ULAZ

Doba - vljači

Korisnic Dokumentac

K

V

A

L

I

T

E

T

Ciljevi, strategija i upravljanje PPCS

QA

QA

QA

QA

C A L

(PPS) CAL

Održavanje

Nabavka

Arhiva

Izveštaji

Tehnološki procesi

Audit

Ekonomika i resursi

TQM

I

N

F O R

M

A

C

I O N

I

S

I

S

T

E

M

Upravljanje

Dokumentac.

Razvoj

IZLAZ

FMEA QDM

QPM

QAM

QMB

QPB

QCM

RMS

SPC

CCSE

QFD

QT

Ishikawa

CAQ

-

EDM

I S

QTM

SISTEM ZA OBRADU

INFORMACIJA ORGANIZA-

CIONI RESURSI

TEHNIKA LJUDI

FINANSIJE

Obezbeđ. distribucije informacija

S I S T E M Z A O B R A D U P O D A T A K A

Mera i količina

Teorija inform.

Osobine informac.

Komunikacije i oprema (uređaji)

Tokovi informacija

Vrste informacija

Nosioci informacija

Troškovi i ekonomičnost informacija

Obrada i prenos informacija

M I S QSD

CAT

QMM

Sadržaj1 Sadržajni okvir i zadaci nastavne/ temastke jedinice

2 Osnovni pojmovi, definicije, koncepti, proces održavanja

u životnom ciklusu softvera (ŽCS) – aktivnosti – zadaci Klasični razvojni modeli softvera (IS održavanja – IV deo) Problem održavanja i evolucije softvera Evolutivni modeli održavanja softvera

11 Aktivnosti studenata i kontrolna pitanja12 Literatura

9/48

10/48

Održavanje u prosecima životnog ciklusa softvera

SRPS ISO/IEC 12207

1 PPrimarnirimarni procesi životnog ciklusa softvera 1.5 Proces održavanja iz aktivnosti: 1.5.1) Implementacija procesa; 1.5.2) Analiza problema i modifikacija; 1.5.3) Implementacija modifikacije; 1.5.4) Pregled/ prijem održavanja; 1.5.5) Migracija; 1.5.6) Povlačenje softvera.

sa p

rošl

og

časa

2 Procesi podrškepodrške u životnom ciklusu  2.1 Proces dokumentovanja 1.projektovanje i razvoj, 2.izrada, 3.implementacija i 4.održavanje 3 OrganizacioniOrganizacioni procesi životnog ciklusa 3.1 Proces upravljanja

3.2 Proces infrastrukture (akt. održavanja infrastrukture) 3.3 Proces poboljšanja (održavati podatke o troškovima) 3.4 Proces obuke (održavanje obučenosti osoblja)

Proces održavanja

5.5 Proces održavanja (5.5 u [110])• Sadrži aktivnosti i zadatke projektanta održavanja; • Aktivira se zbog nekog problema ili potrebe za poboljšanjem

ili prilagođavanjem, kada se softverski proizvod podvrgne modifikacijama koda i prateće dokumentacije;

• Cilj je modifikacija postojećeg softverskog proizvoda i da se pri tom očuva njegov integritet;

• Obuhvata migraciju i povlačenje softverskog proizvoda;• Završava se povlačenjem softverskog proizvoda;• Može koristiti procese podrške i procese organizacije;• Ako se koristi proces razvoja (5.3 u [110]), izraz projektant

treba tumačiti kao projektant održavanja.

11/48

SRPS ISO/IEC 12207 [110]

Proces održavanja

5.5 Proces održavanja• Projektant održavanja upravlja procesom održavanja na

nivou projekta pridržavajući se:– procesa upravljanja (7.1 u [110]); – uspostavlja infrastrukturu pridržavajući se procesa

infrastrukture (7.2 u [110]); – prilagođava proces prema projektu služeći se procesom

prilagođavanja (4 aktivnosti) održava podatke o troškovima i

* upravlja procesom na organizacionom nivou sledeći proces poboljšanja (7.3 u [110]) i

– proces obuke za održavanje (7.4 u [110]).

Kada je projektant održavanja isporučilac usluge održavanja, on obavlja proces isporuke (5.2 u [110]). 12/48

SRPS ISO/IEC 12207, [110]

Proces održavanja – kroz 6 aktivnosti 24 zadataka

5.5 Proces održavanja

Sledi spisak 6 aktivnosti primarnog procesa održavanja sa pratećim zadacima.

Ovaj proces se sastoji od sledećih aktivnosti (∑24 zadat): 

• 1) Implementacija procesa ... 3 zadatka (PO*);

• 2) Analiza problema i modifikacija5 zadataka (PO);

• 3) Implementacija modifikacije ... 2 zadatka (PO);

• 4) Pregled/ prijem održavanja ... 2 zadatka (PO);

• 5) Migracija ... ... ... 7 zadataka;

• 6) Povlačenje softvera ... ... 5 zadataka.

* PO – Projektant održavanja (nadležan za zadatke)13/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci implementacije procesa

.1 Implementacija procesa. Aktivnost se sastoji od tri zadatka Projektanta održavanja:

.1.1 razvija, dokumentuje i izvršava planove i procedure za sprovođenje aktivnosti i zadataka iz procesa održavanja;

.1.2 utvrđuje procedure za prijem i praćenje izveštaja o problemima i zahtevima za modifikaciju koje korisnik dostavlja i uspostavlja povratnu spregu sa korisnicima. Uvek kada se naiđe na probleme, oni se moraju registrovati i uneti u proces rešavanja problema (6.8 u [110]);

.1.3 implementira proces upravljanja konfiguracijom (6.2 u [110]) (ili uspostavlja organizacioni interfejs sa njim) radi upravljanja modifikacijama postojećeg sistema.

14/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci analize problema i modifikacije

.2 Analiza problema i modifikacija. Aktivnost se sastoji od sledećih pet zadataka Projektanta održavanja:

.2.1 analizira izveštaj o problemu ili zahtev za modifikacijom u pogledu njegovog uticaja na organizaciju, postojeći sistem i sisteme sa kojima se sučeljava u pogledu sledećeg:

•  a) tip: na primer, korektivan, poboljšavajući, preventivan ili prilagođavajući novom okruženju;

• b) obim: na primer, veličina modifikacije, troškovi, potrebno vreme;

• c) kritičnost: na primer, uticaj na performanse, bezbednost ili sigurnost.

15/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci analize problema i modifikacije

.2 Analiza problema i modifikacija. Aktivnost se sastoji od pet zadataka Projektanta održavanja:

.2.2 osporava ili potvrđuje postojanje problema;

.2.3 razvija opcije za implementiranje modifikacije (na osnovu analize);

.2.4 mora da dokumentuje zahtev o problemu/ modifikaciji, rezultate analize i opcije implementacije;

.2.5 mora da dobija/ traži odobrenje za izabranu opciju modifikacije kao što je naznačeno u ugovoru.

16/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci implementacije modifikacije

.3 Implementacija modifikacije. Aktivnost se sastoji od sledeća dva zadatka Projektanta održavanja:

.3.1 sprovodi opširnu analizu i određuje koja dokumentacija, softverske jedinice i verzije treba da se modifikuju (ovo se mora dokumentovati);

.3.2 ulazi u proces razvoja (5.3 u [110]) da implementira modifikaciju.

17/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci implementacije modifikacije

.3 Implementacija modifikacije. Aktivnost se sastoji od sledećih zadataka i zahteva procesa razvoja:

.3.2. Zahtevi procesa razvoja dopunjuju se:• a) kriterijumima za ispitivanje i vrednovanje kojima se

ispituju i vrednuju modifikovani i nemodifikovani delovi sistema (softverske jedinice, komponente i elementi konfiguracije) i koji moraju biti definisani i dokumentovani;

• b) potpunom i ispravnom implementacijom novih i modifikovanih zahteva.

• Sem toga, proverava se da li su ostali neizmenjeni originalni, nemodifikovani zahtevi.

• Rezultati ispitivanja moraju da se dokumentuju. 18/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci pregleda/prijema održavanja

.4 Pregled/ prijem održavanja. Aktivnost se sastoji od sledeća dva zadatka Projektanta održavanja (C-faza u PDCA konceptu):

 

.4.1 izvršava pregled(e) sa organizacijom koja je odobrila modifikaciju u cilju utvrđivanja celovitosti modifikovanog sistema;

 

.4.2 dobija saglasnost o zadovoljavajućem završetku modifikacije kao što je naznačeno u ugovoru.

19/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci migracije

.5 Migracija. Aktivnost se sastoji od sledećih 7 zadataka:

.5.1 Ako se jedan sistem ili softverski proizvod (uključujući podatke) prenese iz starog u novo radno okruženje, treba proveriti da li su softverski proizvod ili podaci koji su modifikovani za vreme migracije i dalje u skladu sa standardom SRPS ISO/IEC 1207.

.5.2 Plan migracije se izrađuje, dokumentuje i izvršava. U aktivnosti planiranja uključeni su i korisnici. Plan sadrži:

• a) analizu zahteva i definiciju migracije;• b) razvoj alata za migraciju;• c) konverziju softvera i podataka;• d) izvršenje migracije;• e) proveru migracije;• f) podršku za staro okruženje u budućnosti.

20/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci migracije

.5.3 Korisnici se obaveštavaju o planovima migracije i aktivnostima migracije.

Obaveštenja sadrže:• a) Iskaz zašto se staro okuženje više ne podržava;• b) Opis novog okruženja i kada će biti na raspolaganju;• c) Opis drugih raspoloživih opcija za podršku, ako postoje,

kada se podrška starom okruženju povuče.

 

.5.4 Paralelni rad starog i novog okruženja može se sprovoditi radi lakšeg prelaza u novo okruženje.

Za vreme ovog perioda treba sprovesti neophodnu obuku, kako je utvrđeno ugovorom.

21/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci migracije

.5.5 Kada se planirana migracija približi, mora se poslati svima zainteresovanim obaveštenje o tome.

Treba da se arhivira sva pripadajuća dokumentacija o starom okruženju, registri i kod.

 

.5.6 Posle korišćenja se obavi pregled kako bi se procenio uticaj prelaska u novo okruženje.

Rezultati pregleda moraju se poslati nadležnima radi informacije, upravljanja i akcije.

.5.7 Podaci koji su korišćeni ili povezani sa starim okruženjem moraju da budu dostupni u skladu sa zahtevima ugovora o zaštiti podataka i proverama koje se primenjuju na podatke.

22/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci povlačenja softvera

.6 Povlačenje softvera. Softverski proizvod se povlači na zahtev vlasnika. Aktivnost se sastoji od sledećih pet zadataka:

.6.1 Plan povlačenja softvera kojim se uskraćuje aktivna podrška organizacija koje izrađuju i održavaju softver mora da se izradi i dokumentuje. Aktivnosti plana moraju da obuhvate i korisnike. Plan mora da sadrži niže navedene elemente. Plan mora da bude izvršen.

• a) Prestanak potpune ili delimične podrške posle izvesnog vremena;

• b) Arhiviranje softverskog proizvoda i pripadajuće dokumentacije;

• c) Odgovornost za bilo koju buduću podršku;• d) Prelaz na novi softverski proizvod, ako je primenjiv;• e) Mogućnost pristupa arhivskim kopijama podataka.

23/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci povlačenja softvera

.6.2 Korisnicima se upućuju obaveštenja o planu povlačenja softvera i aktivnostima.

Obaveštenja obuhvataju:• a) Opis zamene ili nadgradnje s naznakom datuma

raspoloživosti;• b) Izjavu o tome zašto se softverski proizvod ne može dalje

podržavati;• c) Opis drugih opcija za podršku koje stoje na raspolaganju,

kada podrška prestane.  

.6.3 Paralelni rad softverskog proizvoda koji se povlači i novog softverskog proizvoda sprovodi se radi lakšeg prelaza na novi sistem. Tokom ovog perioda mora da se obezbedi obuka korisnika, kako je utvrđeno ugovorom. 24/48

SRPS ISO/IEC 12207

Proces održavanja – zadaci povlačenja softvera

 

.6.4 Kada dođe vreme planiranog povlačenja, svima zainteresovanima se šalje obaveštenje o tome. Sva pripadajuća razvojna dokumentacija, registri i kod treba da se arhiviraju kada to bude pogodno.

 

.6.5 Podaci koji su korišćeni ili povezani sa povučenim softverskim proizvodom moraju da budu i dalje pristupačni u skladu sa zahtevima ugovora o zaštiti podataka i proverama koje se primenjuju na podatke.

25/48

SRPS ISO/IEC 12207

26

Sadržaj1 Sadržajni okvir i zadaci nastavne/ temastke jedinice

2 Osnovni pojmovi, definicije, koncepti,

proces održavanja softvera – aktivnosti – zadaci Klasični razvojni modeli softvera (IS održavanja – IV deo) Problem održavanja i evolucije softvera Evolutivni modeli održavanja softvera

11 Aktivnosti studenata i kontrolna pitanja12 Literatura

27

Problem održavanja i evolucije Softver stalno evoluira, jer evoluiraju problemi koje on

rešava i realni sistemi koje modeluje. Potreba za posebnom pažnjom koju treba posvetiti

održavanju softvera najbolje se vidi kroz primere. Udeo cene održavanja softvera u ukupnoj ceni životnog ciklusa: - uvek preko 50% (varira zavisno od vrste softvera i načina merenja

troškova). Trend rasta udela cene održ. tokom vremena, može da iznosi preko 90%!

Zbog greške u računarskom sistemu za naplatu kazni vlasnicima kućnih ljubimaca, Toronto je 2000. godine izgubio oko 700 000 dolara jer je jedini inženjer koji je u potpunosti razumeo sistem otpušten nešto ranije u sklopu akcije smanjenja gradske administracije!

Otklanjanje “nasleđenih” problema, na primer, Y2K: - Nokia je potrošila oko 90 miliona dolara, a - vlada SAD čak oko 8,38 milijardi za otklanjanje Y2K...

28

Problem održavanja i evolucije Održavanje softvera podeljeno je na 4 tipa: Korektivno – ispravljanje bagova nastalih u nekoj fazi razvoja Adaptivno – prilagođavanje softvera promenama u okruženju

(operativni sistem, pravna regulativa, Y2K problem, hardver itd) Perfektivno – prilagođavanje izmenjenim korisničkim

zahtevima (poboljšanje performansi, nove funkcionalnosti, bolji interfejs)

Preventivno – aktivnosti čiji je cilj povećanje održivosti softverskog sistema (poboljšanje dokumentacije, komentarisanje i refaktorisanje koda).

Samo je korektivno održavanje održavanje u bukvalnom smislu, ostali tipovi se mogu podvesti pod evoluciju softvera.

29

Problem održavanja i evolucije Raspodela vremena i truda posvećenog održavanju po

tipovima (orijentacione vrednosti): plansko 50%, adaptivno 25%, korektivno 20% i perfektivno svega 5%.

Posebno je upadljiv mali udeo perfektivnog održavanja, iako je to jedini tip održavanja koji smanjuje kompleksnost koda i pozitivno utiče na održivost i dužinu životnog veka sistema.

Neophodna je daleko veća svest o značaju održavanja i održivosti softverskih projekata, kao i mogućnosti njihovog unapređivanja.

Ovo moraju znati kako programeri, tako i klijenti, a posebno menadžment softverskih projekata.

30

Problem održavanja i evolucije U softverskom inženjeringu su i dalje suviše česte pojave

koje su nezamislive u drugim inženjerskim oblastima (na primer, građevini ili mašinstvu):

- dizajnu, planiranju i testiranju - nedovoljna pažnja; - dokumentacija - često nije adekvatna; - održavanje se zanemaruje dok ne postane kritično, a

onda se sprovodi stihijski; - odluke o tehničkim pitanjima donose netehnička lica,

umesto inženjera. Sve ovo zbog specifične, apstraktne, prirode softvera, koja

stvara privid jednostavnosti realizacije bilo koje ideje. Razvojni modeli nisu primenljivi u održavanju softvera (nije

isto softver napraviti od nule ili dodati na postojeći sistem), a da bi se prevazišli opisani problemi, razvijeni su mnogi modeli procesa održavanja i evolucije softvera.

31

Sadržaj1 Sadržajni okvir i zadaci nastavne/ temastke jedinice

2 Osnovni pojmovi, definicije, koncepti,

proces održavanja softvera – aktivnosti – zadaci Klasični razvojni modeli softvera (IS održavanja – IV deo) Problem održavanja i evolucije softvera Evolutivni modeli održavanja softvera

11 Aktivnosti studenata i kontrolna pitanja12 Literatura

32

Evolutivni modeli održavanja softvera Sledi opis nekih od najvažnijih modela održavanja softvera

i razvojnih modela koji posebnu pažnju obraćaju na evoluciju.

Reč je o sledećim modelima: 1- Brza popravka - Quick fix 2- Boehm-ov model - Boehm's model 3- Model iterativnog poboljšanja –

Iterative enhancement model 4- Model ponovnog iskorišćenja - Reuse oriented model 5- Model otvorenog izvornog koda - Open source model 6- Osborne-ov model - Osborne's model

33

Evolutivni modeli održavanja softvera

1 Brza popravka - Quick fix

Odgovara code and fix razvojnom modelu.

Jednostavan i brz – samo dve faze:otkrivanje i ispravljanje problema.

Ne predviđa analizu posledica izmene.

Koristi se i dalje za privremena, brza rešenja, zbog nedostatka resursa i vremena za zahtevnije modele.

Može biti efikasan za male sisteme, ali ga treba ga izbegavati a rešenja treba detaljno proveriti kasnije u sklopu nekog ozbiljnijeg modela.

34

Evolutivni modeli održavanja softvera2 Boehm-ov model - Boehm's model 1/2

Definišu se tri faze u životnom ciklusu softverskog sistema: – niska isplativost softvera, uglavnom se ispravljaju defekti

(Investment) – softver donosi veliku dobit, dodaju se nove funkcionalnosti

(High payoff) – sve manja dobit, isplativost izmena opada

(Diminishing returns)

35

Evolutivni modeli održavanja softvera2 Boehm-ov model - Boehm's model 2/2

Model je zasnovan na ekonomskim principima.

Izmene se odobravaju na osnovu analize isplativosti i svakoj se dodeljuje poseban budžet koji utiče na implementaciju.

Menadžer održavanja dređuje prioritete i budžet na osnovu ciljeva i ograničenja, pa on ima centralnu ulogu u ovom modelu.

Odluke menadžmenta su pokretač ciklusa.

36

Evolutivni modeli održavanja softvera

Bazira se na ideji da izmene tokom životnog veka softvera treba dodavati na iterativan način.

Nastao od iterativnih razvojnih modela (spiral i sličnih). Svaka iteracija (realizacija jedne izmene) se sastoji od 3 faze:

1- analize, 2- karakterizacije predloženih izmena, 3- redizajna sistema i implementacije izmena.

Model može “obuhvatiti” neki jednostavniji (kao quick fix) koji se može primeniti kod potrebe za hitnom izmenom, dok se detaljnija analiza izmene i eventualne prepravke, kao i ažuriranje dokumentacije, ostavljaju za narednu iteraciju.

Model iterativnog poboljšanja - Iterative enhancement model (1/2)

37

Evolutivni modeli održavanja softvera

U svakoj iteraciji analiza se oslanja na postojeću dokumentaciju, a redizajn sistema i implementacija izmene započinju njenim izmenama i to od vrha (tj. najopštijeg dokumenta) naniže, do samog koda.

U idealnom svetu, ovo bi funkcionisalo savršeno i ostavljalo ne samo prepravljen kod, već i uvek ažurnu dokumentaciju posle svake iteracije.

Model se primenjuje u slučajevima kada: - u realnosti ne postoji uvek potpuna i kvalitetna

dokumentacija o postojećem sistemu, - održavalac nema vremena za ažuriranje dokumentacije

u iterativnom postupku održavanja.

Model iterativnog poboljšanja - Iterative enhancement model (2/2)

38

Evolutivni modeli održavanja softvera

Zasniva se na filozofiji ponovnog iskorišćavanja postojećih resursa.

Kandidati za re-upotrebu ne moraju biti samo komponente koda, već to može biti i deo dokumentacije, deo test podataka, skup znanja o domenu problema itd.

Postoje 4 glavna koraka u primeni ovog modela: 1- identifikacija delova postojećeg sistema čija je re-

upotreba moguća, 2- potpuno razumevanje tih delova, 3- njihova modifikacija u skladu sa novim zahtevima, 4- integracija modifikovanih delova u novi sistem.

4 Model ponovnog iskorišćenja - Reuse oriented model

39

Evolutivni modeli održavanja softvera

U pitanju je pre filozofija nego model razvoja softvera. Često poenta nije u ceni, već u slobodi. Model razvoja je najčešće neka vrsta iterativnog u okviru

zajednice okupljene oko projekta, gde svako može postati član zajednice i doprineti napretku projekta (sav kod mora ostati javno dostupan).

Značaj release-ova je smanjen, jer je celokupan kod dostupan i pre i posle zvaničnog objavljivanja neke verzije, a najčešće ne postoji jedan klijent za koga se razvija softver.

Ne postoji jasna granica između razvoja i održavanja – proizvod se stalno unapređuje (Linux filozofija “release early, release often”).

5 Model otvorenog izvornog koda - Open Source model (1/3)

40

Evolutivni modeli održavanja softvera

Softverski sistemi su sve složeniji, pa nije uvek jednostavno izmeniti kod, iako je Open Source svakom dostupan.

Korisnici (kompanije, organizacije) ne žele da izdvajaju resurse za samostalno unapređivanje i održavanje koda.

Postoje (uslužno-komercijalne) kompanije koje se bave pružanjem podrške za unapređivanje koda, obukom korisnika za Open Source projekte.

U smislu održavanja Open Source model je u prednosti utoliko što je svaki korisnik ne samo tester, već i potencijalni programer, što dovodi do bržeg pronalaženja i otklanjanja nedostataka.

Korisnici nisu zavisni od proizvođača softvera kada je održavanje u pitanju, jer imaju kompletan izvorni kod.

5 Model otvorenog izvornog koda - Open Source model (2/3)

41

Evolutivni modeli održavanja softvera

Značajna većina velikih softverskih kompanija ima neku vrstu Open Source licenciranja nekih ili svojih proizvoda (Sun, Google, pa i Microsoft).

Mnoge kompanije koriste Open Source projekte kao razvojne poligone za nove tehnologije koje uključuju u svoje (komercijalne) proizvode (OpenSuse - Suse, Fedora - Red Hat Enterprise Linux, OpenSolaris – Solaris itd).

Primeri najuspešnijih Open Source projekata: Firefox, OpenOffice, Linux...

5 Model otvorenog izvornog koda - Open Source model (3/3)

42

Evolutivni modeli održavanja softvera

Uzima u obzir realnost softverske industrije. Ne pretpostavlja postojanje idealnih uslova i svih neophodnih

preduslova za uspešno održavanje softverskog sistema (na primer, neograničene količine vremena ili potpune dokumentacije).

Osborne tvrdi da većina tehničkih problema u održavanju softvera nastaje zbog loše komunikacije sa menadžmentom i loše kontrole projekta i predlaže sledeće mere:

- uključivanje zahteva za održavanje u svaku izmenu, - postojanje jasnog programa kontrole kvaliteta softvera, - postojanje načina za proveru zahteva za održavanje, - stalan uvid menadžmenta u stanje projekta kroz redovne

prikaze (performance reviews).

6 Osborne-ov model - Osborne's model (1/3)

43

Evolutivni modeli održavanja softvera

Slika prikazuje predloženi životni ciklus jedne izmene (od otkrivanja potrebe za izmenom do pojave izmene u produkcionoj verziji softvera).

Da bi se uzeli u obzir mogući propusti u prethodnim fazama razvoja i održavanja, ciklus uključuje mnoštvo povratnih petlji.

Moguće je i više iteracija kroz pojedine petlje. Na primer: tokom implementacije mogu se uočiti nedostaci

u komentarima i dokumentaciji, tokom testiranja moguće je otkrivanje nepoznatih problema koji dovode do novih zahteva za izmenu itd.

6 Osborne-ov model - Osborne's model (2/3)

44

Evolutivni modeli održavanja softvera6 Osborne-ov model - Osborne's model (3/3)

IT - Ž. Micić & stud.---/2014 FTN 45/48

Literatura

Домаћи задатак 3:

студент ---/2014

-студира дати материјал

-допуњује материјал (слајдове), литературу,

-презентира исти следећег часа

-предлаже контролна питања...

11 Aktivnosti studenata i kontrolna pitanja

IT - Ž. Micić & stud.---/2014 FTN 46/48

12 Literatura

[81] Dragan Bojić, Marko Mitrović, Evolucija softvera, Modeli procesa u održavanju i evoluciji softvera, Elektrotehnički fakultet u Beogradu, 2009.

[109] SRPS ISO/IEC 9126-1: 2011. Софтверски инжењеринг — Квалитет производа — Део 1: Модел квалитета

[110] SRPS ISO/IEC 12207: 1997. Informaciona tehnologija - Procesi životnog ciklusa softvera